diff --git a/frontend/package.json b/frontend/package.json index fec3e335..e405a99d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -96,6 +96,7 @@ "react-native-svg": "15.15.5", "react-native-tts": "^4.1.1", "react-native-version-check": "^3.5.0", + "react-native-view-shot": "^5.1.0", "react-native-web": "~0.21.0", "react-native-webview": "13.15.0", "react-native-worklets": "0.5.1", diff --git a/frontend/src/components/ArticleShareCard.tsx b/frontend/src/components/ArticleShareCard.tsx new file mode 100644 index 00000000..049c79aa --- /dev/null +++ b/frontend/src/components/ArticleShareCard.tsx @@ -0,0 +1,310 @@ +/** + * ArticleShareCard.tsx + * + * A reusable component that renders a visually rich article preview card + * intended to be captured as an image and shared on social media. + * + * Usage: + * import ArticleShareCard from '../components/ArticleShareCard'; + * // Attach a ref and call captureRef(ref) to get a shareable image URI. + */ + +import React from 'react'; +import { + View, + Text, + Image, + StyleSheet, + ImageBackground, + Dimensions, +} from 'react-native'; + +// ─── Types ─────────────────────────────────────────────────────────────────── + +export interface ArticleShareCardProps { + /** Article title */ + title: string; + /** Author display name */ + authorName: string; + /** Category / topic tag (e.g. "Mental Health") */ + category: string; + /** Optional URL of the cover image */ + coverImageUrl?: string | null; + /** Optional URL of the author's avatar */ + authorAvatarUrl?: string | null; + /** + * Forward this ref to the outermost View so callers can + * capture the card with react-native-view-shot. + */ + cardRef?: React.RefObject; +} + +// ─── Constants ──────────────────────────────────────────────────────────────── + +const CARD_WIDTH = 360; +const CARD_HEIGHT = 480; + +/** Brand colours used throughout the card */ +const BRAND = { + teal: '#00B4A2', + tealDark: '#008F7E', + white: '#FFFFFF', + offWhite: '#F7FAF9', + textDark: '#1A2E2B', + textMid: '#4A6B65', + overlay: 'rgba(0,30,26,0.55)', + badgeBg: 'rgba(0,180,162,0.18)', +}; + +// ─── Component ──────────────────────────────────────────────────────────────── + +const ArticleShareCard: React.FC = ({ + title, + authorName, + category, + coverImageUrl, + authorAvatarUrl, + cardRef, +}) => { + const hasCover = Boolean(coverImageUrl); + + return ( + + {/* ── Cover Section ─────────────────────────────────────────────── */} + {hasCover ? ( + + {/* dark overlay so text is always readable */} + + + + ) : ( + + + + + )} + + {/* ── Body Section ─────────────────────────────────────────────── */} + + {/* Title */} + + {title} + + + {/* Divider */} + + + {/* Author row */} + + {authorAvatarUrl ? ( + + ) : ( + + + {authorName.charAt(0).toUpperCase()} + + + )} + + Written by + + {authorName} + + + + + {/* Branding footer */} + + + UltimateHealth + · Trusted Wellness Content + + + + ); +}; + +// ─── Sub-component ──────────────────────────────────────────────────────────── + +const CategoryBadge: React.FC<{ category: string; light: boolean }> = ({ + category, + light, +}) => ( + + + {category.toUpperCase()} + + +); + +// ─── Styles ─────────────────────────────────────────────────────────────────── + +const styles = StyleSheet.create({ + card: { + width: CARD_WIDTH, + height: CARD_HEIGHT, + borderRadius: 20, + overflow: 'hidden', + backgroundColor: BRAND.offWhite, + // Subtle elevation for when rendered on-screen + shadowColor: '#000', + shadowOffset: { width: 0, height: 8 }, + shadowOpacity: 0.18, + shadowRadius: 16, + elevation: 10, + }, + + // ── Cover ──────────────────────────────────────────────────────────── + coverBg: { + height: 220, + width: '100%', + justifyContent: 'flex-end', + padding: 16, + }, + coverBgImage: { + borderTopLeftRadius: 20, + borderTopRightRadius: 20, + }, + coverOverlay: { + ...StyleSheet.absoluteFillObject, + backgroundColor: BRAND.overlay, + }, + coverPlaceholder: { + backgroundColor: BRAND.tealDark, + justifyContent: 'flex-end', + }, + coverPlaceholderPattern: { + ...StyleSheet.absoluteFillObject, + // Subtle cross-hatch feel via repeating diagonal teal gradient — using + // opacity layering since RN doesn't support CSS gradients directly. + opacity: 0.12, + backgroundColor: BRAND.teal, + }, + + // ── Badge ───────────────────────────────────────────────────────────── + badge: { + alignSelf: 'flex-start', + paddingHorizontal: 10, + paddingVertical: 4, + borderRadius: 6, + marginBottom: 4, + }, + badgeLight: { + backgroundColor: 'rgba(255,255,255,0.22)', + borderWidth: 1, + borderColor: 'rgba(255,255,255,0.45)', + }, + badgeDark: { + backgroundColor: BRAND.badgeBg, + borderWidth: 1, + borderColor: BRAND.teal, + }, + badgeText: { + fontSize: 10, + fontWeight: '700', + letterSpacing: 1.4, + }, + badgeTextLight: { + color: BRAND.white, + }, + badgeTextDark: { + color: BRAND.teal, + }, + + // ── Body ────────────────────────────────────────────────────────────── + body: { + flex: 1, + paddingHorizontal: 20, + paddingTop: 18, + paddingBottom: 16, + justifyContent: 'space-between', + }, + title: { + fontSize: 20, + fontWeight: '700', + color: BRAND.textDark, + lineHeight: 28, + letterSpacing: -0.3, + }, + divider: { + height: 2, + width: 36, + backgroundColor: BRAND.teal, + borderRadius: 2, + marginTop: 12, + marginBottom: 16, + }, + + // ── Author row ──────────────────────────────────────────────────────── + authorRow: { + flexDirection: 'row', + alignItems: 'center', + flex: 1, + }, + avatar: { + width: 44, + height: 44, + borderRadius: 22, + borderWidth: 2, + borderColor: BRAND.teal, + marginRight: 12, + }, + avatarPlaceholder: { + backgroundColor: BRAND.teal, + justifyContent: 'center', + alignItems: 'center', + }, + avatarInitial: { + color: BRAND.white, + fontSize: 18, + fontWeight: '700', + }, + authorInfo: { + flex: 1, + }, + authorLabel: { + fontSize: 11, + color: BRAND.textMid, + letterSpacing: 0.5, + marginBottom: 2, + }, + authorName: { + fontSize: 15, + fontWeight: '600', + color: BRAND.textDark, + }, + + // ── Brand footer ────────────────────────────────────────────────────── + brandFooter: { + flexDirection: 'row', + alignItems: 'center', + marginTop: 4, + }, + brandDot: { + width: 8, + height: 8, + borderRadius: 4, + backgroundColor: BRAND.teal, + marginRight: 6, + }, + brandText: { + fontSize: 12, + fontWeight: '700', + color: BRAND.teal, + letterSpacing: 0.3, + }, + brandTagline: { + fontSize: 12, + color: BRAND.textMid, + }, +}); + +export default ArticleShareCard; diff --git a/frontend/src/components/ArticleShareModal.tsx b/frontend/src/components/ArticleShareModal.tsx new file mode 100644 index 00000000..2532054a --- /dev/null +++ b/frontend/src/components/ArticleShareModal.tsx @@ -0,0 +1,262 @@ +/** + * ArticleShareModal.tsx + * + * A bottom-sheet-style modal that shows the article preview card and + * a "Share" button. Triggered from an article screen's share action. + * + * Usage: + * setShareModalVisible(false)} + * article={{ + * title: 'How Stress Affects Your Body', + * authorName: 'Dr. Priya Mehta', + * category: 'Mental Health', + * coverImageUrl: 'https://...', + * authorAvatarUrl: 'https://...', + * }} + * /> + */ + +import React, { useEffect, useRef } from 'react'; +import { + Modal, + View, + Text, + TouchableOpacity, + StyleSheet, + Animated, + ActivityIndicator, + Dimensions, + SafeAreaView, +} from 'react-native'; +import ArticleShareCard, { ArticleShareCardProps } from './ArticleShareCard'; +import { useArticleShare } from '../hooks/useArticleShare'; + +// ─── Types ──────────────────────────────────────────────────────────────────── + +interface ArticleShareModalProps { + visible: boolean; + onClose: () => void; + article: Omit; +} + +// ─── Constants ──────────────────────────────────────────────────────────────── + +const { height: SCREEN_HEIGHT } = Dimensions.get('window'); +const MODAL_HEIGHT = SCREEN_HEIGHT * 0.72; + +const COLORS = { + teal: '#00B4A2', + tealDark: '#008F7E', + white: '#FFFFFF', + textDark: '#1A2E2B', + textMid: '#5A7370', + backdrop: 'rgba(0,0,0,0.45)', + sheet: '#FFFFFF', + handle: '#CBD5D3', +}; + +// ─── Component ──────────────────────────────────────────────────────────────── + +const ArticleShareModal: React.FC = ({ + visible, + onClose, + article, +}) => { + const { cardRef, isCapturing, shareArticleCard } = useArticleShare(); + + // ── Slide-up animation ────────────────────────────────────────────── + const slideAnim = useRef(new Animated.Value(MODAL_HEIGHT)).current; + + useEffect(() => { + if (visible) { + Animated.spring(slideAnim, { + toValue: 0, + useNativeDriver: true, + tension: 60, + friction: 10, + }).start(); + } else { + Animated.timing(slideAnim, { + toValue: MODAL_HEIGHT, + duration: 220, + useNativeDriver: true, + }).start(); + } + }, [visible, slideAnim]); + + const handleShare = () => { + shareArticleCard(article.title); + }; + + return ( + + {/* ── Backdrop ─────────────────────────────────────────────────── */} + + + {/* ── Sheet ────────────────────────────────────────────────────── */} + + + {/* Handle */} + + + {/* Header */} + + Share Article + + + + + + + Preview your shareable card below. + + + {/* Card preview — centred, slightly scaled down so it fits */} + + + + + {/* Share button */} + + {isCapturing ? ( + + ) : ( + <> + + Share Card + + )} + + + + + ); +}; + +// ─── Styles ─────────────────────────────────────────────────────────────────── + +const styles = StyleSheet.create({ + backdrop: { + ...StyleSheet.absoluteFillObject, + backgroundColor: COLORS.backdrop, + }, + sheet: { + position: 'absolute', + bottom: 0, + left: 0, + right: 0, + height: MODAL_HEIGHT, + backgroundColor: COLORS.sheet, + borderTopLeftRadius: 24, + borderTopRightRadius: 24, + overflow: 'hidden', + }, + safeArea: { + flex: 1, + paddingHorizontal: 20, + paddingTop: 12, + paddingBottom: 24, + alignItems: 'center', + }, + + // Handle + handle: { + width: 40, + height: 4, + borderRadius: 2, + backgroundColor: COLORS.handle, + marginBottom: 16, + }, + + // Header row + header: { + flexDirection: 'row', + width: '100%', + alignItems: 'center', + justifyContent: 'space-between', + marginBottom: 6, + }, + headerTitle: { + fontSize: 18, + fontWeight: '700', + color: COLORS.textDark, + letterSpacing: -0.2, + }, + closeBtn: { + padding: 6, + }, + closeBtnText: { + fontSize: 16, + color: COLORS.textMid, + }, + + subheading: { + alignSelf: 'flex-start', + fontSize: 13, + color: COLORS.textMid, + marginBottom: 20, + }, + + // Card preview area + cardWrapper: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + transform: [{ scale: 0.88 }], + }, + + // Share button + shareBtn: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + backgroundColor: COLORS.teal, + borderRadius: 14, + paddingVertical: 15, + width: '100%', + marginTop: 8, + shadowColor: COLORS.teal, + shadowOffset: { width: 0, height: 4 }, + shadowOpacity: 0.35, + shadowRadius: 8, + elevation: 6, + }, + shareBtnDisabled: { + backgroundColor: COLORS.tealDark, + opacity: 0.7, + }, + shareBtnIcon: { + fontSize: 16, + color: COLORS.white, + }, + shareBtnLabel: { + fontSize: 16, + fontWeight: '700', + color: COLORS.white, + letterSpacing: 0.2, + }, +}); + +export default ArticleShareModal; diff --git a/frontend/src/hooks/useArticleShare.ts b/frontend/src/hooks/useArticleShare.ts new file mode 100644 index 00000000..d7436d48 --- /dev/null +++ b/frontend/src/hooks/useArticleShare.ts @@ -0,0 +1,102 @@ +/** + * useArticleShare.ts + * + * Custom hook that: + * 1. Captures an ArticleShareCard view ref as a PNG image + * using react-native-view-shot. + * 2. Opens the native share sheet (react-native Share API) so the + * user can send the card image to any app. + * + * Dependencies (add to package.json if not present): + * yarn add react-native-view-shot + * + * Usage: + * const { cardRef, isCapturing, shareArticleCard } = useArticleShare(); + * // Pass `cardRef` to + * // Call `shareArticleCard()` from a share button's onPress. + */ + +import { useRef, useState, useCallback } from 'react'; +import { Share, Platform, Alert, View } from 'react-native'; +import ViewShot, { captureRef } from 'react-native-view-shot'; + +// ─── Types ──────────────────────────────────────────────────────────────────── + +interface UseArticleShareReturn { + /** Attach to the ArticleShareCard's cardRef prop */ + cardRef: React.RefObject; + /** True while the capture + share flow is in progress */ + isCapturing: boolean; + /** Call this to trigger capture → share sheet */ + shareArticleCard: (articleTitle?: string) => Promise; +} + +// ─── Hook ───────────────────────────────────────────────────────────────────── + +export function useArticleShare(): UseArticleShareReturn { + const cardRef = useRef(null); + const [isCapturing, setIsCapturing] = useState(false); + + const shareArticleCard = useCallback( + async (articleTitle?: string) => { + if (!cardRef.current) { + Alert.alert('Share', 'Unable to generate preview card.'); + return; + } + + setIsCapturing(true); + + try { + // Capture the card view as a high-quality PNG + const uri = await captureRef(cardRef, { + format: 'png', + quality: 1, + // Use a higher pixel density for crisp cards on retina displays + result: 'tmpfile', + snapshotContentContainer: false, + }); + + // Open the native share sheet + const shareContent = + Platform.OS === 'android' + ? { + // Android — share the image file URI directly + title: articleTitle ?? 'UltimateHealth Article', + url: uri, + message: articleTitle + ? `Check out this article on UltimateHealth: "${articleTitle}"` + : 'Check out this article on UltimateHealth!', + } + : { + // iOS — Share.share accepts url for images + url: uri, + message: articleTitle + ? `Check out this article on UltimateHealth: "${articleTitle}"` + : 'Check out this article on UltimateHealth!', + }; + + await Share.share(shareContent, { + dialogTitle: 'Share Article', + subject: articleTitle ?? 'UltimateHealth Article', + }); + } catch (error: unknown) { + // User dismissed the share sheet — not an error worth surfacing + if ( + error instanceof Error && + error.message !== 'User did not share' + ) { + console.warn('[useArticleShare] Share error:', error); + Alert.alert( + 'Share failed', + 'Could not generate the preview card. Please try again.', + ); + } + } finally { + setIsCapturing(false); + } + }, + [], + ); + + return { cardRef, isCapturing, shareArticleCard }; +} diff --git a/frontend/src/screens/article/ArticleScreen.tsx b/frontend/src/screens/article/ArticleScreen.tsx index 12662d8c..690c0000 100644 --- a/frontend/src/screens/article/ArticleScreen.tsx +++ b/frontend/src/screens/article/ArticleScreen.tsx @@ -10,6 +10,7 @@ import { Share, useColorScheme, } from 'react-native'; +import ArticleShareModal from '../components/ArticleShareModal'; import React, {useCallback, useEffect, useRef, useState} from 'react'; import FontAwesome from '@expo/vector-icons/FontAwesome'; import {PRIMARY_COLOR} from '../../helper/Theme'; @@ -76,6 +77,7 @@ const ArticleScreen = ({navigation, route}: ArticleScreenProp) => { const [playerVisible, setPlayerVisible] = useState(false); const [summary, setSummary] = useState(null); const [summaryLoading, setSummaryLoading] = useState(false); + const [shareModalVisible, setShareModalVisible] = useState(false); const chunkIndexRef = useRef(0); const wordsRef = useRef([]); @@ -874,6 +876,17 @@ const ArticleScreen = ({navigation, route}: ArticleScreenProp) => { )} + setShareModalVisible(false)} + article={{ + title: article.title, // string + authorName: article.author?.name, // string — adjust to your model shape + category: article.category ?? 'Health', // string + coverImageUrl: article.cover_image ?? null, + authorAvatarUrl: article.author?.profile_picture ?? null, + }} + /> {/* Action Bar Row */} @@ -967,29 +980,8 @@ const ArticleScreen = ({navigation, route}: ArticleScreenProp) => { styles.actionButtonFooter, {backgroundColor: footerColors.pillBackground}, ]} - onPress={async () => { - try { - if (article) { - const result = await Share.share({ - message: `Check out this article: ${article.title}\n\n${article.description}`, - title: article.title, - }); - - if (result.action === Share.sharedAction) { - Snackbar.show({ - text: 'Article shared successfully!', - duration: Snackbar.LENGTH_SHORT, - }); - } - } - } catch (error) { - console.log('Error sharing:', error); - Snackbar.show({ - text: 'Failed to share article', - duration: Snackbar.LENGTH_SHORT, - }); - } - }}> + onPress={async () => {() => setShareModalVisible(true)}}> + Share diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 17ae0f59..326a5ad7 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -28,7 +28,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz" integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.0", "@babel/core@^7.21.3", "@babel/core@^7.23.9", "@babel/core@^7.25.2": +"@babel/core@^7.0.0", "@babel/core@^7.0.0 || ^8.0.0-0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.20.0", "@babel/core@^7.21.3", "@babel/core@^7.23.9", "@babel/core@^7.25.2", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.8.0": version "7.29.7" resolved "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz" integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA== @@ -730,7 +730,7 @@ "@babel/plugin-transform-modules-commonjs" "^7.29.7" "@babel/plugin-transform-typescript" "^7.29.7" -"@babel/runtime@^7.18.6", "@babel/runtime@^7.20.0", "@babel/runtime@^7.25.0": +"@babel/runtime@*", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.0", "@babel/runtime@^7.25.0": version "7.29.7" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz" integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== @@ -1082,7 +1082,13 @@ parse-png "^2.1.0" semver "^7.6.0" -"@expo/json-file@^10.0.16", "@expo/json-file@^10.0.8", "@expo/json-file@^10.2.0": +"@expo/json-file@^10.0.16": + version "10.0.16" + dependencies: + "@babel/code-frame" "~7.10.4" + json5 "^2.2.3" + +"@expo/json-file@^10.0.8", "@expo/json-file@^10.2.0": version "10.2.0" resolved "https://registry.npmjs.org/@expo/json-file/-/json-file-10.2.0.tgz" integrity sha512-S6XzKe3R9GQeHiUPXc3xJjOv2VJhOEwFYf7xdC2z2cUqt3kZJ9mSO877sNQloVdnW/SUCtPY3bexlM7nwq+CAQ== @@ -1153,56 +1159,6 @@ metro-transform-plugins "0.83.3" metro-transform-worker "0.83.3" -"@expo/ngrok-bin-darwin-arm64@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-darwin-arm64/-/ngrok-bin-darwin-arm64-2.3.41.tgz#d6b4a15be00f1166dc1d8dc99d0c773dc5e72048" - integrity sha512-TPf95xp6SkvbRONZjltTOFcCJbmzAH7lrQ36Dv+djrOckWGPVq4HCur48YAeiGDqspmFEmqZ7ykD5c/bDfRFOA== - -"@expo/ngrok-bin-darwin-x64@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-darwin-x64/-/ngrok-bin-darwin-x64-2.3.41.tgz#ff006f92c01887070d2302c67455c53d43ccb9f1" - integrity sha512-29QZHfX4Ec0p0pQF5UrqiP2/Qe7t2rI96o+5b8045VCEl9AEAKHceGuyo+jfUDR4FSQBGFLSDb06xy8ghL3ZYA== - -"@expo/ngrok-bin-freebsd-ia32@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-freebsd-ia32/-/ngrok-bin-freebsd-ia32-2.3.41.tgz#c488ce27823c199e2876eb80c5049856a0541b1d" - integrity sha512-YYXgwNZ+p0aIrwgb+1/RxJbsWhGEzBDBhZulKg1VB7tKDAd2C8uGnbK1rOCuZy013iOUsJDXaj9U5QKc13iIXw== - -"@expo/ngrok-bin-freebsd-x64@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-freebsd-x64/-/ngrok-bin-freebsd-x64-2.3.41.tgz#9e17cf0b4cd76dd1050db40463dfc9fc9b43938c" - integrity sha512-1Ei6K8BB+3etmmBT0tXYC4dyVkJMigT4ELbRTF5jKfw1pblqeXM9Qpf3p8851PTlH142S3bockCeO39rSkOnkg== - -"@expo/ngrok-bin-linux-arm64@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-linux-arm64/-/ngrok-bin-linux-arm64-2.3.41.tgz#dc7c761b7f12d8baae997565c360939b34da78f0" - integrity sha512-eC8GA/xPcmQJy4h+g2FlkuQB3lf5DjITy8Y6GyydmPYMByjUYAGEXe0brOcP893aalAzRqbNOAjSuAw1lcCLSQ== - -"@expo/ngrok-bin-linux-arm@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-linux-arm/-/ngrok-bin-linux-arm-2.3.41.tgz#c914a3e86d166e0595d13b3e501535bf441834ca" - integrity sha512-B6+rW/+tEi7ZrKWQGkRzlwmKo7c1WJhNODFBSgkF/Sj9PmmNhBz67mer91S2+6nNt5pfcwLLd61CjtWfR1LUHQ== - -"@expo/ngrok-bin-linux-ia32@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-linux-ia32/-/ngrok-bin-linux-ia32-2.3.41.tgz#5079fc5aa2f886d6e33a25e913ec240be57eac73" - integrity sha512-w5Cy31wSz4jYnygEHS7eRizR1yt8s9TX6kHlkjzayIiRTFRb2E1qD2l0/4T2w0LJpBjM5ZFPaaKqsNWgCUIEow== - -"@expo/ngrok-bin-linux-x64@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-linux-x64/-/ngrok-bin-linux-x64-2.3.41.tgz#34c117c14b3d82f6d51cd25df025d9679d866577" - integrity sha512-LcU3MbYHv7Sn2eFz8Yzo2rXduufOvX1/hILSirwCkH+9G8PYzpwp2TeGqVWuO+EmvtBe6NEYwgdQjJjN6I4L1A== - -"@expo/ngrok-bin-sunos-x64@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-sunos-x64/-/ngrok-bin-sunos-x64-2.3.41.tgz#8ab01f96344d5c2aae2944009fbea67aed74c022" - integrity sha512-bcOj45BLhiV2PayNmLmEVZlFMhEiiGpOr36BXC0XSL+cHUZHd6uNaS28AaZdz95lrRzGpeb0hAF8cuJjo6nq4g== - -"@expo/ngrok-bin-win32-ia32@2.3.41": - version "2.3.41" - resolved "https://registry.yarnpkg.com/@expo/ngrok-bin-win32-ia32/-/ngrok-bin-win32-ia32-2.3.41.tgz#b5fbcd49f2ae38fdb4105f8248159dc75c9ba9e3" - integrity sha512-0+vPbKvUA+a9ERgiAknmZCiWA3AnM5c6beI+51LqmjKEM4iAAlDmfXNJ89aAbvZMUtBNwEPHzJHnaM4s2SeBhA== - "@expo/ngrok-bin-win32-x64@2.3.41": version "2.3.41" resolved "https://registry.npmjs.org/@expo/ngrok-bin-win32-x64/-/ngrok-bin-win32-x64-2.3.41.tgz" @@ -1412,7 +1368,7 @@ "@firebase/util" "1.14.0" tslib "^2.1.0" -"@firebase/app-compat@0.5.9": +"@firebase/app-compat@0.5.9", "@firebase/app-compat@0.x": version "0.5.9" resolved "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.9.tgz" integrity sha512-e5LzqjO69/N2z7XcJeuMzIp4wWnW696dQeaHAUpQvGk89gIWHAIvG6W+mA3UotGW6jBoqdppEJ9DnuwbcBByug== @@ -1423,12 +1379,12 @@ "@firebase/util" "1.14.0" tslib "^2.1.0" -"@firebase/app-types@0.9.3": +"@firebase/app-types@0.9.3", "@firebase/app-types@0.x": version "0.9.3" resolved "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz" integrity sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw== -"@firebase/app@0.14.9": +"@firebase/app@0.14.9", "@firebase/app@0.x": version "0.14.9" resolved "https://registry.npmjs.org/@firebase/app/-/app-0.14.9.tgz" integrity sha512-3gtUX0e584MYkKBQMgSECMvE1Dwzg+eONefDQ0wxVSe5YMBsZwdN5pL7UapwWBlV8+i8QCztF9TP947tEjZAGA== @@ -1721,7 +1677,7 @@ "@firebase/util" "1.14.0" tslib "^2.1.0" -"@firebase/util@1.14.0": +"@firebase/util@1.14.0", "@firebase/util@1.x": version "1.14.0" resolved "https://registry.npmjs.org/@firebase/util/-/util-1.14.0.tgz" integrity sha512-/gnejm7MKkVIXnSJGpc9L2CvvvzJvtDPeAEq5jAwgVlf/PeNxot+THx/bpD20wQ8uL5sz0xqgXy1nisOYMU+mw== @@ -1811,7 +1767,7 @@ "@hookform/resolvers@^5.4.0": version "5.4.0" - resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-5.4.0.tgz#89ff709a08576766fbef849e5ec60e549a888006" + resolved "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.4.0.tgz" integrity sha512-EIsqr/t/qbinPIhGjMdtvutIN1Kk4uwbROE9/UQ93CAVGR7GkA7Y92+fX80OzXi/OB67jVFYwKGO1WzkxmkFZw== dependencies: "@standard-schema/utils" "^0.3.0" @@ -2027,6 +1983,11 @@ dependencies: "@sinclair/typebox" "^0.27.8" +"@jest/schemas@30.4.1": + version "30.4.1" + dependencies: + "@sinclair/typebox" "^0.34.0" + "@jest/source-map@^29.6.3": version "29.6.3" resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz" @@ -2131,16 +2092,16 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@lottiefiles/dotlottie-react@^0.19.4": +"@lottiefiles/dotlottie-react@^0.13.5", "@lottiefiles/dotlottie-react@^0.19.4": version "0.19.4" - resolved "https://registry.yarnpkg.com/@lottiefiles/dotlottie-react/-/dotlottie-react-0.19.4.tgz#5fc537945c0c1bc8c93b090eac804ebc42ed1e2e" + resolved "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.19.4.tgz" integrity sha512-YgX1Ie0gK9MEA89Ap7Ic/lOv85sOzELV3y3RAQ4GrB79+wJ4gLga9Ge59mWzBqjlbT8bZNhNPEm+jYyV8kMYqg== dependencies: "@lottiefiles/dotlottie-web" "0.74.0" "@lottiefiles/dotlottie-web@0.74.0": version "0.74.0" - resolved "https://registry.yarnpkg.com/@lottiefiles/dotlottie-web/-/dotlottie-web-0.74.0.tgz#4f0dd338aa6a8f3f5571a44a8bc2fa12e2be5e1b" + resolved "https://registry.npmjs.org/@lottiefiles/dotlottie-web/-/dotlottie-web-0.74.0.tgz" integrity sha512-rG12+dJSVhQDdleGr9epR7zU/UJ6hh8jzBDHAurClHP5t5dSrOh3eP3UCFxolpVPcobaRVYsBnYg4HQokQewpg== "@nolyfill/is-core-module@1.0.39": @@ -2215,7 +2176,7 @@ resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.1.tgz" integrity sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg== -"@react-native-async-storage/async-storage@2.2.0": +"@react-native-async-storage/async-storage@^2.2.0", "@react-native-async-storage/async-storage@2.2.0": 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== @@ -2232,7 +2193,7 @@ resolved "https://registry.npmjs.org/@react-native-community/slider/-/slider-5.0.1.tgz" integrity sha512-K3JRWkIW4wQ79YJ6+BPZzp1SamoikxfPRw7Yw4B4PElEQmqZFrmH9M5LxvIo460/3QSrZF/wCgi3qizJt7g/iw== -"@react-native-firebase/app@^23.4.1": +"@react-native-firebase/app@^23.4.1", "@react-native-firebase/app@23.8.8": version "23.8.8" resolved "https://registry.npmjs.org/@react-native-firebase/app/-/app-23.8.8.tgz" integrity sha512-9KeKToqsEPhaL+KlTYIdUB0bsXYAcKk0Zzpu608zf2qsXbyTscuYs1caLWxk8AdGtt3+j7ZsoOFt/8qnlo4Ugg== @@ -2376,6 +2337,9 @@ resolved "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.89.tgz" integrity sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg== +"@react-native/normalize-colors@0.81.5": + version "0.81.5" + "@react-native/virtualized-lists@0.81.5": version "0.81.5" resolved "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.81.5.tgz" @@ -2416,7 +2380,7 @@ use-latest-callback "^0.2.4" use-sync-external-store "^1.5.0" -"@react-navigation/native@^7.1.8": +"@react-navigation/native@^7.1.8", "@react-navigation/native@^7.2.5": version "7.2.5" resolved "https://registry.npmjs.org/@react-navigation/native/-/native-7.2.5.tgz" integrity sha512-01AAUQiiHQAfTabq+ZyU1/ZWq+AbB/J3v0CB0UTJSON6M6cuadWNsbChzrZUdqQvHrXvg96U5i2PQLJzK3+zpg== @@ -2562,7 +2526,7 @@ "@sentry/browser" "10.53.1" "@sentry/core" "10.53.1" -"@shopify/flash-list@2.0.2": +"@shopify/flash-list@>=1.0.0", "@shopify/flash-list@2.0.2": version "2.0.2" resolved "https://registry.npmjs.org/@shopify/flash-list/-/flash-list-2.0.2.tgz" integrity sha512-zhlrhA9eiuEzja4wxVvotgXHtqd3qsYbXkQ3rsBfOgbFA9BVeErpDE/yEwtlIviRGEqpuFj/oU5owD6ByaNX+w== @@ -2667,7 +2631,7 @@ "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" "@svgr/babel-plugin-transform-svg-component" "8.0.0" -"@svgr/core@^8.1.0": +"@svgr/core@*", "@svgr/core@^8.1.0": version "8.1.0" resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz" integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== @@ -2792,7 +2756,7 @@ "@tamagui/use-presence" "1.144.4" "@tamagui/web" "1.144.4" -"@tamagui/animations-react-native@1.144.4", "@tamagui/animations-react-native@^1.135.6": +"@tamagui/animations-react-native@^1.135.6", "@tamagui/animations-react-native@1.144.4": version "1.144.4" resolved "https://registry.npmjs.org/@tamagui/animations-react-native/-/animations-react-native-1.144.4.tgz" integrity sha512-l83+Y9IpXZoI7Pyylop5tDrVGBRxxf9ZQLoxhhZyhGJMQBQVZith1SxpawmvMdEA4lxbl/W+R3wM3cjce14kyg== @@ -3355,7 +3319,7 @@ "@tamagui/stacks" "1.144.4" "@tamagui/web" "1.144.4" -"@tamagui/sheet@1.144.4", "@tamagui/sheet@^1.135.6": +"@tamagui/sheet@^1.135.6", "@tamagui/sheet@1.144.4": version "1.144.4" resolved "https://registry.npmjs.org/@tamagui/sheet/-/sheet-1.144.4.tgz" integrity sha512-wffx7+Pn+lRqPPBKjvTdiCicg2hg36Km5bgJ8XZskiXXdIBuYU3v49tYbLkEd6jKUciKQYrzJ7pF8KuSsMBL1g== @@ -3877,7 +3841,7 @@ dependencies: "@types/node-fetch" "*" -"@types/react@~19.1.0": +"@types/react@*", "@types/react@^18.2.25 || ^19", "@types/react@^19.1.0", "@types/react@~19.1.0": version "19.1.17" resolved "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz" integrity sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA== @@ -4019,115 +3983,6 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz" integrity sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ== -"@unrs/resolver-binding-android-arm-eabi@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz#98a9fee62c01f209747a4ab5855f1ced38a6d03a" - integrity sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w== - -"@unrs/resolver-binding-android-arm64@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz#46b7e8a1393f907462324f1576e8883529acf066" - integrity sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ== - -"@unrs/resolver-binding-darwin-arm64@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz#0ea07b00e2583ab004b853d4c02ec5f0745d490c" - integrity sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w== - -"@unrs/resolver-binding-darwin-x64@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz#a2a6901ed58449b91b4438e582f6890cba956049" - integrity sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA== - -"@unrs/resolver-binding-freebsd-x64@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz#ebe6fe7f6706b7378ea4a48a024602e9c2f48f89" - integrity sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg== - -"@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz#e6040fedaa240124419d35b25b69c5fa15ddb499" - integrity sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A== - -"@unrs/resolver-binding-linux-arm-musleabihf@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz#d217a8fb59f659c131539326c140e7b62e3e3c6a" - integrity sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g== - -"@unrs/resolver-binding-linux-arm64-gnu@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz#edab13c46a45783a7e01351e113825c04f352e24" - integrity sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg== - -"@unrs/resolver-binding-linux-arm64-musl@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz#e5e195db1130f7d3b6aa2fd67b3c9fe1ea4859a0" - integrity sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA== - -"@unrs/resolver-binding-linux-loong64-gnu@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz#f01d22e091bae13016f4636698d9dcbbda775c3e" - integrity sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q== - -"@unrs/resolver-binding-linux-loong64-musl@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz#7d23efcb98adf076bfbcecc27b4212c36aa6697d" - integrity sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew== - -"@unrs/resolver-binding-linux-ppc64-gnu@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz#1f35f1eaa322f33cf2d96dac27f0626a93ffe2f6" - integrity sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg== - -"@unrs/resolver-binding-linux-riscv64-gnu@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz#674faa696f5ce96f214873946a1e2d6ca96723dd" - integrity sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A== - -"@unrs/resolver-binding-linux-riscv64-musl@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz#37835fdd0b472ecdcffccd4288f19018454b138c" - integrity sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w== - -"@unrs/resolver-binding-linux-s390x-gnu@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz#b6edf13db4bb0accdcd1ad482a4eea0301de9224" - integrity sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw== - -"@unrs/resolver-binding-linux-x64-gnu@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz#daddad00bf65a405202284da1eb1db8eb83b218f" - integrity sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ== - -"@unrs/resolver-binding-linux-x64-musl@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz#dfdff1e0c2bad25420b41c76a746011c3983b9bb" - integrity sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A== - -"@unrs/resolver-binding-openharmony-arm64@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz#ce07c4f5e7b42f7bfce45e7629b8659063aefefe" - integrity sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ== - -"@unrs/resolver-binding-wasm32-wasi@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz#82514f0506cfaf65f17fe16095f92d450e487183" - integrity sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A== - dependencies: - "@emnapi/core" "1.10.0" - "@emnapi/runtime" "1.10.0" - "@napi-rs/wasm-runtime" "^1.1.4" - -"@unrs/resolver-binding-win32-arm64-msvc@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz#521427dd59a8f4740ddd1dc7c3bc6af1aa1d260d" - integrity sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g== - -"@unrs/resolver-binding-win32-ia32-msvc@1.12.2": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz#05b63286ff2da37e0ce3083b8390884385efff62" - integrity sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g== - "@unrs/resolver-binding-win32-x64-msvc@1.12.2": version "1.12.2" resolved "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz" @@ -4207,11 +4062,14 @@ acorn-walk@^8.0.2: dependencies: acorn "^8.11.0" -acorn@^8.1.0, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.8.1: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.1.0, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.8.1: version "8.16.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz" integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== +agent-base@^7.1.2: + version "7.1.4" + agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" @@ -4285,7 +4143,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0, ansi-styles@^5.2.0: +ansi-styles@^5.0.0: version "5.2.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== @@ -4447,6 +4305,9 @@ asynckit@^0.4.0: resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +"audio-module@file:C:\\Users\\Swara Mishra\\UltimateHealth\\frontend\\modules\\audio-module": + version "1.0.0" + resolved "file:modules/audio-module" available-typed-arrays@^1.0.7: version "1.0.7" @@ -4535,7 +4396,7 @@ babel-plugin-react-native-web@~0.21.0: resolved "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.21.2.tgz" integrity sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA== -babel-plugin-syntax-hermes-parser@0.29.1, babel-plugin-syntax-hermes-parser@^0.29.1: +babel-plugin-syntax-hermes-parser@^0.29.1, babel-plugin-syntax-hermes-parser@0.29.1: version "0.29.1" resolved "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz" integrity sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA== @@ -4631,6 +4492,11 @@ base-64@^0.1.0: resolved "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz" integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" @@ -4665,6 +4531,11 @@ bplist-creator@0.1.0: dependencies: stream-buffers "2.2.x" +bplist-parser@^0.3.1: + version "0.3.2" + dependencies: + big-integer "1.6.x" + bplist-parser@0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz" @@ -4701,7 +4572,7 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" -browserslist@^4.24.0, browserslist@^4.25.0, browserslist@^4.28.1: +browserslist@^4.24.0, browserslist@^4.25.0, browserslist@^4.28.1, "browserslist@>= 4.21.0": version "4.28.2" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz" integrity sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg== @@ -4801,7 +4672,7 @@ caniuse-lite@^1.0.30001782: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz" integrity sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA== -chalk@^2.0.1, chalk@^2.4.2: +chalk@^2.0.1: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4937,13 +4808,6 @@ color-convert@^1.9.0, color-convert@^1.9.3: dependencies: color-name "1.1.3" -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" @@ -4951,16 +4815,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + color-string@^1.6.0, color-string@^1.9.0: version "1.9.1" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" @@ -4985,6 +4849,9 @@ color@^4.2.3: color-convert "^2.0.1" color-string "^1.9.0" +color2k@^2.0.2: + version "2.0.3" + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -5105,6 +4972,13 @@ css-in-js-utils@^3.1.0: dependencies: hyphenate-style-name "^1.0.3" +css-line-break@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz" + integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w== + dependencies: + utrie "^1.0.2" + css-select@^5.1.0: version "5.2.2" resolved "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" @@ -5220,27 +5094,41 @@ dayjs@^1.11.19: resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.21.tgz" integrity sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA== -debug@2.6.9, debug@^2.6.9: +debug@^2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.3, debug@~4.4.1: - version "4.4.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: - ms "^2.1.3" + ms "^2.1.1" -debug@^3.1.0, debug@^3.2.7: +debug@^3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.3, debug@~4.4.1, debug@4: + version "4.4.3" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + decimal.js@^10.4.2: version "10.6.0" resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz" @@ -5323,7 +5211,7 @@ delayed-stream@~1.0.0: resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@2.0.0, depd@~2.0.0: +depd@~2.0.0, depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -5426,11 +5314,14 @@ dotenv-expand@~11.0.6: dependencies: dotenv "^16.4.5" -dotenv@*, dotenv@^16.4.5, dotenv@~16.4.5: +dotenv@*, dotenv@~16.4.5: version "16.4.7" resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz" integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== +dotenv@^16.4.5: + version "16.6.1" + dunder-proto@^1.0.0, dunder-proto@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" @@ -5740,7 +5631,7 @@ eslint-plugin-expo@^1.0.0: "@typescript-eslint/utils" "^8.29.1" eslint "^9.24.0" -eslint-plugin-import@^2.30.0: +eslint-plugin-import@*, eslint-plugin-import@^2.30.0: version "2.32.0" resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz" integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== @@ -5817,7 +5708,7 @@ eslint-visitor-keys@^5.0.0: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== -eslint@^9.24.0, eslint@^9.25.0: +eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^8.57.0 || ^9.0.0 || ^10.0.0", eslint@^9.24.0, eslint@^9.25.0, eslint@>=8.10: version "9.39.4" resolved "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz" integrity sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ== @@ -5941,7 +5832,7 @@ expo-application@~7.0.8: resolved "https://registry.npmjs.org/expo-application/-/expo-application-7.0.8.tgz" integrity sha512-qFGyxk7VJbrNOQWBbE09XUuGuvkOgFS9QfToaK2FdagM2aQ+x3CvGV2DuVgl/l4ZxPgIf3b/MNh9xHpwSwn74Q== -expo-asset@^12.0.9, expo-asset@~12.0.13: +expo-asset@*, expo-asset@^12.0.9, expo-asset@~12.0.13: version "12.0.13" resolved "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.13.tgz" integrity sha512-x/p7WvQUnkn6K43b9eL6SPeq5Vnf1E8BDe9bDrWrvMqzyUvJnUFvl+ctg3034s/+UHe7Ne2pAmc0+yzbl8CrDQ== @@ -6014,7 +5905,7 @@ expo-file-system@~19.0.23: resolved "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.23.tgz" integrity sha512-MeGkid9OeNILfT/qonaXHp4f2c15xaB28U/bcN7pqZej0Kx0+6+V7e9ZIXpPHm07zVatxA+QkMTPQEGfmvVOxA== -expo-font@~14.0.12, expo-font@~14.0.9: +expo-font@>=14.0.4, expo-font@~14.0.12, expo-font@~14.0.9: version "14.0.12" resolved "https://registry.npmjs.org/expo-font/-/expo-font-14.0.12.tgz" integrity sha512-QQzunE2Mxk45AsCWm3tK7OpVljbtVnKD58q4/qliev+cbye1IOduUnRIdD+P7DyButw17G9MTX795kgaQiz5hQ== @@ -6143,7 +6034,7 @@ expo-web-browser@~15.0.8: resolved "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-15.0.11.tgz" integrity sha512-r2LS4Ro6DgUPZkcaEfgt8mp9eJuoA93x11Jh7S6utFe0FEzvUNn2yFhxg8XVwESaaHGt2k5V8LuK36rsp0BeIw== -expo@~54.0.19: +expo@*, expo@>=47.0.0, expo@>=49.0.0, expo@~54.0.19: version "54.0.35" resolved "https://registry.npmjs.org/expo/-/expo-54.0.35.tgz" integrity sha512-E+tXpQwjGm5fK/uwa55p0Xx/kuo5dXDKfVJ95IargTNa5KiFt26lSTXXa9KnHbI4EDLwFD38/xTKZvzPTlGTdg== @@ -6279,14 +6170,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - find-up@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" @@ -6397,11 +6280,6 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -6637,7 +6515,14 @@ hermes-estree@0.35.0: resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.35.0.tgz" integrity sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg== -hermes-parser@0.29.1, hermes-parser@^0.29.1: +hermes-parser@^0.29.1: + version "0.29.1" + resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz" + integrity sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA== + dependencies: + hermes-estree "0.29.1" + +hermes-parser@0.29.1: version "0.29.1" resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz" integrity sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA== @@ -6684,6 +6569,14 @@ html-escaper@^2.0.0: resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +html2canvas@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz" + integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA== + dependencies: + css-line-break "^2.1.0" + text-segmentation "^1.0.3" + http-cache-semantics@^4.0.0: version "4.2.0" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz" @@ -6821,7 +6714,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4: +inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4, inherits@2: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6847,7 +6740,7 @@ internal-slot@^1.1.0: hasown "^2.0.2" side-channel "^1.1.0" -invariant@*, invariant@2.2.4, invariant@^2.2.4: +invariant@*, invariant@^2.2.4, invariant@2.2.4: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -7262,16 +7155,6 @@ jest-config@^29.7.0: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@30.4.1: - version "30.4.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-30.4.1.tgz" - integrity sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA== - dependencies: - "@jest/diff-sequences" "30.4.0" - "@jest/get-type" "30.1.0" - chalk "^4.1.2" - pretty-format "30.4.1" - jest-diff@^29.0.1, jest-diff@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz" @@ -7282,6 +7165,16 @@ jest-diff@^29.0.1, jest-diff@^29.7.0: jest-get-type "^29.6.3" pretty-format "^29.7.0" +jest-diff@30.4.1: + version "30.4.1" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-30.4.1.tgz" + integrity sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA== + dependencies: + "@jest/diff-sequences" "30.4.0" + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + pretty-format "30.4.1" + jest-docblock@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz" @@ -7440,7 +7333,7 @@ jest-resolve-dependencies@^29.7.0: jest-regex-util "^29.6.3" jest-snapshot "^29.7.0" -jest-resolve@^29.7.0: +jest-resolve@*, jest-resolve@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz" integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== @@ -7606,7 +7499,7 @@ jest-worker@^29.7.0: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.2.1: +"jest@^27.0.0 || ^28.0.0 || ^29.0.0", jest@^29.2.1, jest@>=29.0.0: version "29.7.0" resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz" integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== @@ -7793,56 +7686,6 @@ lighthouse-logger@^1.0.0: debug "^2.6.9" marky "^1.2.2" -lightningcss-android-arm64@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz#f033885116dfefd9c6f54787523e3514b61e1968" - integrity sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg== - -lightningcss-darwin-arm64@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz#50b71871b01c8199584b649e292547faea7af9b5" - integrity sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ== - -lightningcss-darwin-x64@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz#35f3e97332d130b9ca181e11b568ded6aebc6d5e" - integrity sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w== - -lightningcss-freebsd-x64@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz#9777a76472b64ed6ff94342ad64c7bafd794a575" - integrity sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig== - -lightningcss-linux-arm-gnueabihf@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz#13ae652e1ab73b9135d7b7da172f666c410ad53d" - integrity sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw== - -lightningcss-linux-arm64-gnu@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz#417858795a94592f680123a1b1f9da8a0e1ef335" - integrity sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ== - -lightningcss-linux-arm64-musl@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz#6be36692e810b718040802fd809623cffe732133" - integrity sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg== - -lightningcss-linux-x64-gnu@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz#0b7803af4eb21cfd38dd39fe2abbb53c7dd091f6" - integrity sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA== - -lightningcss-linux-x64-musl@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz#88dc8ba865ddddb1ac5ef04b0f161804418c163b" - integrity sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg== - -lightningcss-win32-arm64-msvc@1.32.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz#4f30ba3fa5e925f5b79f945e8cc0d176c3b1ab38" - integrity sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw== - lightningcss-win32-x64-msvc@1.32.0: version "1.32.0" resolved "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz" @@ -8113,16 +7956,7 @@ metro-cache@0.84.4: https-proxy-agent "^7.0.5" metro-core "0.84.4" -metro-config@0.83.3: - version "0.83.3" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.83.3.tgz#007e93f7d1983777da8988dfb103ad897c9835b8" - integrity sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw== - dependencies: - flow-enums-runtime "^0.0.6" - lodash.throttle "^4.1.1" - metro-resolver "0.83.3" - -metro-config@0.83.7, metro-config@^0.83.1: +metro-config@^0.83.1: version "0.83.7" resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.83.7.tgz" integrity sha512-83mjWFbFOt2GeJ6pFIum5mSnc1uTsZJAtD8o4ej0s4NVsYsA7fB+pHvTfHhFrpeMONaobu2riKavkPei05Er/Q== @@ -8136,7 +7970,7 @@ metro-config@0.83.7, metro-config@^0.83.1: metro-runtime "0.83.7" yaml "^2.6.1" -metro-config@0.84.4, metro-config@^0.84.4: +metro-config@^0.84.4, metro-config@0.84.4: version "0.84.4" resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.84.4.tgz" integrity sha512-PMotGDjXcXLWo2TMRH+VR99phFNgYTwqh4OoieIKK3yTJa1Jmkl+fZJxDO0jfBvNF+WESHciHvpNuBtXaF3B0Q== @@ -8150,7 +7984,7 @@ metro-config@0.84.4, metro-config@^0.84.4: metro-runtime "0.84.4" yaml "^2.6.1" -metro-core@0.83.3: +metro-config@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz" integrity sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw== @@ -8159,7 +7993,21 @@ metro-core@0.83.3: lodash.throttle "^4.1.1" metro-resolver "0.83.3" -metro-core@0.83.7, metro-core@^0.83.1: +metro-config@0.83.7: + version "0.83.7" + resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.83.7.tgz" + integrity sha512-83mjWFbFOt2GeJ6pFIum5mSnc1uTsZJAtD8o4ej0s4NVsYsA7fB+pHvTfHhFrpeMONaobu2riKavkPei05Er/Q== + dependencies: + connect "^3.6.5" + flow-enums-runtime "^0.0.6" + jest-validate "^29.7.0" + metro "0.83.7" + metro-cache "0.83.7" + metro-core "0.83.7" + metro-runtime "0.83.7" + yaml "^2.6.1" + +metro-core@^0.83.1, metro-core@0.83.7: version "0.83.7" resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.83.7.tgz" integrity sha512-6yn3w1wnltT6RQl7p7YES2l95ArC+mWrOssEiH8p5/DDrJS65/szf9LsC9JrBv8c5DdvSY3V3f0GRYg0Ox7hCg== @@ -8168,6 +8016,15 @@ metro-core@0.83.7, metro-core@^0.83.1: lodash.throttle "^4.1.1" metro-resolver "0.83.7" +metro-core@0.83.3: + version "0.83.3" + resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz" + integrity sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw== + dependencies: + flow-enums-runtime "^0.0.6" + lodash.throttle "^4.1.1" + metro-resolver "0.83.3" + metro-core@0.84.4: version "0.84.4" resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.84.4.tgz" @@ -8267,7 +8124,7 @@ metro-resolver@0.84.4: dependencies: flow-enums-runtime "^0.0.6" -metro-runtime@0.83.3, metro-runtime@^0.83.1: +metro-runtime@^0.83.1, metro-runtime@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz" integrity sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw== @@ -8291,7 +8148,7 @@ metro-runtime@0.84.4: "@babel/runtime" "^7.25.0" flow-enums-runtime "^0.0.6" -metro-source-map@0.83.3, metro-source-map@^0.83.1: +metro-source-map@^0.83.1, metro-source-map@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz" integrity sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg== @@ -8466,6 +8323,49 @@ metro-transform-worker@0.84.4: metro-transform-plugins "0.84.4" nullthrows "^1.1.1" +metro@^0.83.1, metro@0.83.7: + version "0.83.7" + dependencies: + "@babel/code-frame" "^7.29.0" + "@babel/core" "^7.25.2" + "@babel/generator" "^7.29.1" + "@babel/parser" "^7.29.0" + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.29.0" + "@babel/types" "^7.29.0" + accepts "^2.0.0" + ci-info "^2.0.0" + connect "^3.6.5" + debug "^4.4.0" + error-stack-parser "^2.0.6" + flow-enums-runtime "^0.0.6" + graceful-fs "^4.2.4" + hermes-parser "0.35.0" + image-size "^1.0.2" + invariant "^2.2.4" + jest-worker "^29.7.0" + jsc-safe-url "^0.2.2" + lodash.throttle "^4.1.1" + metro-babel-transformer "0.83.7" + metro-cache "0.83.7" + metro-cache-key "0.83.7" + metro-config "0.83.7" + metro-core "0.83.7" + metro-file-map "0.83.7" + metro-resolver "0.83.7" + metro-runtime "0.83.7" + metro-source-map "0.83.7" + metro-symbolicate "0.83.7" + metro-transform-plugins "0.83.7" + metro-transform-worker "0.83.7" + mime-types "^3.0.1" + nullthrows "^1.1.1" + serialize-error "^2.1.0" + source-map "^0.5.6" + throat "^5.0.0" + ws "^7.5.10" + yargs "^17.6.2" + metro@0.83.3: version "0.83.3" resolved "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz" @@ -8570,6 +8470,9 @@ mime-db@^1.54.0: resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz" integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== +"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: + version "1.52.0" + mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" @@ -8701,6 +8604,9 @@ negotiator@~0.6.4: resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz" integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== +negotiator@0.6.3: + version "0.6.3" + nested-error-stacks@~2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz" @@ -9239,6 +9145,14 @@ pretty-format@^29.0.0, pretty-format@^29.0.3, pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^30.0.5, pretty-format@30.4.1: + version "30.4.1" + dependencies: + "@jest/schemas" "30.4.1" + ansi-styles "^5.2.0" + react-is-18 "npm:react-is@^18.3.1" + react-is-19 "npm:react-is@^19.2.5" + proc-log@^4.0.0: version "4.2.0" resolved "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz" @@ -9338,6 +9252,9 @@ qrcode-terminal@^0.12.0: resolved "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== +qrcode-terminal@0.11.0: + version "0.11.0" + query-string@^7.1.3: version "7.1.3" resolved "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz" @@ -9388,7 +9305,7 @@ react-devtools-core@^6.1.5: shell-quote "^1.6.1" ws "^7" -react-dom@19.1.0: +react-dom@*, "react-dom@^18.0.0 || ^19.0.0", react-dom@>=16.8.0, react-dom@>=17.0.0, react-dom@19.1.0: version "19.1.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz" integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g== @@ -9400,9 +9317,9 @@ react-freeze@^1.0.0, react-freeze@^1.0.3: resolved "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz" integrity sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA== -react-hook-form@^7.78.0: +react-hook-form@^7.55.0, react-hook-form@^7.78.0: version "7.78.0" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.78.0.tgz#b5a7d496d9077a71f36c8f2cacd3990464af2643" + resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.78.0.tgz" integrity sha512-EEZqc+N23moyzTlz61Pj+JvcXo76ICkpfOZo8JZw+sM4+wLQGh6nI2Ms+PdMOYNluFu0ghlM7B8mCzhRYtJCnA== "react-is-18@npm:react-is@^18.3.1": @@ -9467,7 +9384,7 @@ react-native-fs@^2.20.0: base-64 "^0.1.0" utf8 "^3.0.0" -react-native-gesture-handler@~2.28.0: +"react-native-gesture-handler@>= 2.0.0", react-native-gesture-handler@>=2.0.0, react-native-gesture-handler@>=2.16.1, react-native-gesture-handler@~2.28.0: version "2.28.0" resolved "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.28.0.tgz" integrity sha512-0msfJ1vRxXKVgTgvL+1ZOoYw3/0z1R+Ked0+udoJhyplC2jbVKIJ8Z1bzWdpQRCV3QcQ87Op0zJVE5DhKK2A0A== @@ -9502,7 +9419,7 @@ react-native-is-edge-to-edge@^1.2.1: resolved "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.3.1.tgz" integrity sha512-NIXU/iT5+ORyCc7p0z2nnlkouYKX425vuU1OEm6bMMtWWR9yvb+Xg5AZmImTKoF9abxCPqrKC3rOZsKzUYgYZA== -react-native-keyboard-controller@1.18.5: +react-native-keyboard-controller@>=1.0.0, react-native-keyboard-controller@1.18.5: version "1.18.5" resolved "https://registry.npmjs.org/react-native-keyboard-controller/-/react-native-keyboard-controller-1.18.5.tgz" integrity sha512-wbYN6Tcu3G5a05dhRYBgjgd74KqoYWuUmroLpigRg9cXy5uYo7prTMIvMgvLtARQtUF7BOtFggUnzgoBOgk0TQ== @@ -9514,7 +9431,7 @@ react-native-mmkv@^4.3.1: resolved "https://registry.npmjs.org/react-native-mmkv/-/react-native-mmkv-4.3.1.tgz" integrity sha512-APyGGaaHtayVgT18dBM8QGGZKr9pGfSTiBwbbPNzhGGfJQSU7awLGRGq879OqYl31HmVks9hOBLCs+qfgacRZg== -react-native-nitro-modules@^0.35.9: +react-native-nitro-modules@*, react-native-nitro-modules@^0.35.9: version "0.35.9" resolved "https://registry.npmjs.org/react-native-nitro-modules/-/react-native-nitro-modules-0.35.9.tgz" integrity sha512-yCO6eJ85SPPUo4a4an7H5oj6wPCSIT72fbjr5WZ/20n6zswaJ2gNNpnWtg2We0AZwkAOjSqkOJ0Vjc05p6kGiA== @@ -9538,7 +9455,7 @@ react-native-pell-rich-editor@^1.10.0: resolved "https://registry.npmjs.org/react-native-pell-rich-editor/-/react-native-pell-rich-editor-1.10.0.tgz" integrity sha512-MRL7lokAQOIxcZ900FxHeVA0B3ZRcFlIhZ9FSQIrjHmutN2at+hax139xV0AQ1DwvJ3fYwlUuTr7Pf4hHpy/PA== -react-native-reanimated@~4.1.1: +react-native-reanimated@>=3.0.0, "react-native-reanimated@>=3.0.0 || ^4.0.0", "react-native-reanimated@>=3.16.0 || >=4.0.0-", react-native-reanimated@>=3.8.1, react-native-reanimated@~4.1.1: version "4.1.7" resolved "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.1.7.tgz" integrity sha512-Q4H6xA3Tn7QL0/E/KjI86I1KK4tcf+ErRE04LH34Etka2oVQhW6oXQ+Q8ZcDCVxiWp5vgbBH6XcH8BOo4w/Rhg== @@ -9546,12 +9463,12 @@ react-native-reanimated@~4.1.1: react-native-is-edge-to-edge "^1.2.1" semver "^7.7.2" -react-native-safe-area-context@~5.6.0: - version "5.6.2" - resolved "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.6.2.tgz" - integrity sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg== +react-native-safe-area-context@*, "react-native-safe-area-context@>= 4.0.0", react-native-safe-area-context@>=5.0.0, react-native-safe-area-context@~5.8.0: + version "5.8.0" + resolved "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.8.0.tgz" + integrity sha512-t+ZsAVzY/wWzzx34vqGbo3/as9EEESJdbyZNL7Yg5EYX+toYMtMqFoDDCvqZUi35eeGVsXc6pAaEk4edMwbuCQ== -react-native-screens@~4.16.0: +"react-native-screens@>= 4.0.0", react-native-screens@~4.16.0: version "4.16.0" resolved "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.16.0.tgz" integrity sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q== @@ -9580,9 +9497,9 @@ react-native-svg-transformer@^1.5.1: "@svgr/plugin-svgo" "^8.1.0" path-dirname "^1.0.2" -react-native-svg@15.15.5: +"react-native-svg@> 6.4.1", react-native-svg@>=12.0.0, react-native-svg@15.15.5: version "15.15.5" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-15.15.5.tgz#822805c14481b8ec16d5fbac1e3ce2b27a5509d7" + resolved "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.15.5.tgz" integrity sha512-L4go5jA+GWutdJ/JucuN20cjAbMg1HmMtAP+wZ+3JLCf6Jd0bhXQHxciRP/AQm/FlrIEZwkMcHNZP+FXAiic0w== dependencies: css-select "^5.1.0" @@ -9601,7 +9518,14 @@ react-native-version-check@^3.5.0: lodash "^4.17.21" semver "^6.1.1" -react-native-web@~0.21.0: +react-native-view-shot@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/react-native-view-shot/-/react-native-view-shot-5.1.0.tgz" + integrity sha512-JZgElCD82aO+hejIF/leUzI7JufL9mgJ6ChzGWIcdZ2ajpaEvvSnvIcw0qD32XWkrbId8wfSbyz/4u/ulTQzQA== + dependencies: + html2canvas "^1.4.1" + +react-native-web@*, react-native-web@~0.21.0: version "0.21.2" resolved "https://registry.npmjs.org/react-native-web/-/react-native-web-0.21.2.tgz" integrity sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg== @@ -9615,7 +9539,7 @@ react-native-web@~0.21.0: postcss-value-parser "^4.2.0" styleq "^0.1.3" -react-native-webview@13.15.0: +react-native-webview@*, "react-native-webview@>= 13.13.2", react-native-webview@>=7.5.2, react-native-webview@13.15.0: version "13.15.0" resolved "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.15.0.tgz" integrity sha512-Vzjgy8mmxa/JO6l5KZrsTC7YemSdq+qB01diA0FqjUTaWGAGwuykpJ73MDj3+mzBSlaDxAEugHzTtkUQkQEQeQ== @@ -9623,7 +9547,7 @@ react-native-webview@13.15.0: escape-string-regexp "^4.0.0" invariant "2.2.4" -react-native-worklets@0.5.1: +"react-native-worklets@0.5 - 0.8", react-native-worklets@0.5.1: version "0.5.1" resolved "https://registry.npmjs.org/react-native-worklets/-/react-native-worklets-0.5.1.tgz" integrity sha512-lJG6Uk9YuojjEX/tQrCbcbmpdLCSFxDK1rJlkDhgqkVi1KZzG7cdcBFQRqyNOOzR9Y0CXNuldmtWTGOyM0k0+w== @@ -9645,7 +9569,7 @@ react-native-zoom-reanimated@^1.5.2: resolved "https://registry.npmjs.org/react-native-zoom-reanimated/-/react-native-zoom-reanimated-1.5.3.tgz" integrity sha512-IuaRbzs/Ku2lyOcG0p1xMro+1K1bCC+jtWoQecUaqK8/ME97uRwNgwi6k/Fx8cEsx/R60HLA/mqpbw8pfrUECw== -react-native@0.81.5: +react-native@*, "react-native@^0.0.0-0 || >=0.65 <1.0", "react-native@>= 0.50.0", react-native@>=0.46, react-native@>=0.48.0, react-native@>=0.50.0, react-native@>=0.59, react-native@>=0.59.0, react-native@>=0.60, react-native@>=0.64.0, react-native@>=0.65.0, react-native@>=0.71, react-native@>=0.76.0, "react-native@0.78 - 0.82", react-native@0.81.5: version "0.81.5" resolved "https://registry.npmjs.org/react-native/-/react-native-0.81.5.tgz" integrity sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw== @@ -9685,7 +9609,7 @@ react-native@0.81.5: ws "^6.2.3" yargs "^17.6.2" -react-redux@^9.2.0: +"react-redux@^7.2.1 || ^8.1.3 || ^9.0.0", react-redux@^9.2.0: version "9.3.0" resolved "https://registry.npmjs.org/react-redux/-/react-redux-9.3.0.tgz" integrity sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g== @@ -9693,21 +9617,11 @@ react-redux@^9.2.0: "@types/use-sync-external-store" "^0.0.6" use-sync-external-store "^1.4.0" -react-refresh@^0.14.0, react-refresh@^0.14.2: - version "0.14.2" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" - integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== - -react-refresh@^0.14.2: +react-refresh@^0.14.0, react-refresh@^0.14.2, "react-refresh@>=0.14.0 <1.0.0": version "0.14.2" resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== -"react-refresh@>=0.14.0 <1.0.0": - version "0.18.0" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz" - integrity sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw== - react-test-renderer@>=16.0.0, react-test-renderer@>=18.2.0, react-test-renderer@19.1.0: version "19.1.0" resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-19.1.0.tgz" @@ -9716,7 +9630,7 @@ react-test-renderer@>=16.0.0, react-test-renderer@>=18.2.0, react-test-renderer@ react-is "^19.1.0" scheduler "^0.26.0" -react@19.1.0: +react@*, "react@^16.14.0 || 17.x || 18.x || 19.x", "react@^16.8.0 || ^17 || ^18 || ^19", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.9.0 || ^17.0.0 || ^18 || ^19", "react@^17 || ^18 || ^19", "react@^18 || ^19", "react@^18.0 || ^19", "react@^18.0.0 || ^19.0.0", react@^19.1.0, "react@> 16.7.0", "react@>= 18.2.0", react@>=16, react@>=16.0.0, react@>=16.3.0, react@>=16.8, react@>=16.8.0, react@>=17.0.0, react@>=18.0.0, react@>=18.2.0, react@19.1.0: version "19.1.0" resolved "https://registry.npmjs.org/react/-/react-19.1.0.tgz" integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg== @@ -9734,7 +9648,7 @@ redux-thunk@^3.1.0: resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz" integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw== -redux@^5.0.1: +redux@^5.0.0, redux@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz" integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w== @@ -9882,7 +9796,7 @@ resolve@^1.20.0, resolve@^1.22.11, resolve@^1.22.2: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.5, resolve@^2.0.0-next.6: +resolve@^2.0.0-next.5: version "2.0.0-next.7" resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz" integrity sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ== @@ -9951,7 +9865,7 @@ safe-array-concat@^1.1.3: has-symbols "^1.1.0" isarray "^2.0.5" -safe-buffer@5.2.1, safe-buffer@>=5.1.0: +safe-buffer@>=5.1.0, safe-buffer@5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -9978,7 +9892,7 @@ safe-regex-test@^1.1.0: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@>=0.6.0, sax@^1.5.0: +sax@^1.5.0, sax@>=0.6.0: version "1.6.0" resolved "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz" integrity sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA== @@ -9990,27 +9904,27 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -scheduler@0.26.0, scheduler@^0.26.0: +scheduler@^0.26.0, scheduler@0.26.0: version "0.26.0" resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz" integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== -semver@7.7.2: - version "7.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz" - integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== +semver@^6.1.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^6.1.1, semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.3: - version "7.8.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz" - integrity sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.5: +semver@^7.1.3: version "7.8.2" resolved "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz" integrity sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ== @@ -10025,6 +9939,11 @@ semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.1, semver@^7.7.2, semve resolved "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz" integrity sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg== +semver@7.7.2: + version "7.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + send@^0.19.0, send@~0.19.1: version "0.19.2" resolved "https://registry.npmjs.org/send/-/send-0.19.2.tgz" @@ -10244,14 +10163,6 @@ source-map-js@^1.0.1, source-map-js@^1.2.1: resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-support@~0.5.20, source-map-support@~0.5.21: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" @@ -10267,21 +10178,32 @@ source-map-support@0.5.13: dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" - integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA== source-map@^0.5.6: version "0.5.7" resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA== + split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" @@ -10692,6 +10614,13 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-segmentation@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz" + integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw== + dependencies: + utrie "^1.0.2" + thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" @@ -10850,7 +10779,7 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.1.0" reflect.getprototypeof "^1.0.10" -typescript@~5.9.2: +"typescript@^5.0.0 || ^5.0.0-0", typescript@>=4.8.4, "typescript@>=4.8.4 <6.1.0", typescript@>=4.9.5, typescript@~5.9.2: version "5.9.3" resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== @@ -11014,6 +10943,13 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +utrie@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz" + integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw== + dependencies: + base64-arraybuffer "^1.0.2" + uuid@^3.3.2: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" @@ -11259,7 +11195,12 @@ ws@^7, ws@^7.5.10: resolved "https://registry.npmjs.org/ws/-/ws-7.5.11.tgz" integrity sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA== -ws@^8.11.0, ws@^8.12.1: +ws@^8.11.0: + version "8.21.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz" + integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== + +ws@^8.12.1: version "8.21.0" resolved "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz" integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== @@ -11330,12 +11271,7 @@ yaml@^1.10.0: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz" integrity sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA== -yaml@^2.6.1: - version "2.9.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz" - integrity sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA== - -yaml@^2.9.0: +yaml@^2.6.1, yaml@^2.9.0: version "2.9.0" resolved "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz" integrity sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA== @@ -11366,4 +11302,4 @@ yocto-queue@^0.1.0: zod@^4.1.11, zod@^4.4.3: version "4.4.3" resolved "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz" - integrity sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ== \ No newline at end of file + integrity sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==