Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto

Merge pull request #59 from teal-fm/prettier-config

prettier config

authored by kyle loveless and committed by GitHub 6ee615ca 5773273d

Changed files
+3033 -3195
.vscode
apps
packages
+3 -3
.vscode/settings.json
··· 1 - { 2 - "deno.enable": false 3 - } 1 + { 2 + "deno.enable": false 3 + }
+9 -8
CONTRIBUTING.md
··· 1 1 # Contributing 2 2 3 - Hi, thanks for showing interest in our project, we appreciate you wanting to be 3 + Hi, thanks for showing interest in our project, we appreciate you wanting to be 4 4 a part of it! 5 5 6 6 > ###### Do you accept external contributions? 7 - > Yes, we welcome external contributions! The only request we have is that you 8 - > check with us before working on a large feature, as we'd prefer to avoid duplicating effort. 7 + > 8 + > Yes, we welcome external contributions! The only request we have is that you 9 + > check with us before working on a large feature, as we'd prefer to avoid duplicating effort. 9 10 > 10 - > You can do this by either creating an issue that we can communicate through, or 11 - > popping into the Discord channel and asking in the #development channel. 11 + > You can do this by either creating an issue that we can communicate through, or 12 + > popping into the Discord channel and asking in the #development channel. 12 13 > Whatever works best for you! 13 14 > 14 15 > Other than that, feel free to contribute however you'd like! ··· 38 39 turbo dev --filter=<service_path> 39 40 ``` 40 41 41 - Open http://localhost:3000/ with your browser to see the home page. You will need 42 - to login with Bluesky to test the posting functionality of the app. Note: if the 43 - redirect back to the app after you login isn't working correctly, you may need to 42 + Open http://localhost:3000/ with your browser to see the home page. You will need 43 + to login with Bluesky to test the posting functionality of the app. Note: if the 44 + redirect back to the app after you login isn't working correctly, you may need to 44 45 replace the `127.0.0.1` with `localhost`. 45 46 46 47 Push to your fork and [submit a pull request][pr].
+2
README.md
··· 1 1 ## Getting Started 2 2 3 3 ### Prerequisites 4 + 4 5 - Node (>= v21.0.0) 5 6 - Go 6 7 - Bun ··· 12 13 pnpm install && pnpm install -g turbo && cp apps/aqua/.env.example apps/aqua/.env && 13 14 pnpm run db:migrate 14 15 ``` 16 + 15 17 Running on a Mac may also require adding @libsql/darwin-x64 dependency 16 18 17 19 ## Development
+6 -7
apps/amethyst/.eslintrc.js
··· 1 1 // https://docs.expo.dev/guides/using-eslint/ 2 2 module.exports = { 3 - extends: 'expo', 4 - plugins: ['eslint-plugin-react-compiler'], 5 - rules: { 6 - 'react-compiler/react-compiler': 'error', 7 - }, 8 - }; 9 - 3 + extends: "expo", 4 + plugins: ["eslint-plugin-react-compiler"], 5 + rules: { 6 + "react-compiler/react-compiler": "error", 7 + }, 8 + };
+1 -1
apps/amethyst/app/(tabs)/(stamp)/_layout.tsx
··· 1 - import { Stack } from "expo-router"; 2 1 import { useMemo } from "react"; 2 + import { Stack } from "expo-router"; 3 3 4 4 const Layout = ({ segment }: { segment: string }) => { 5 5 const rootScreen = useMemo(() => {
+2 -2
apps/amethyst/app/(tabs)/(stamp)/stamp/_layout.tsx
··· 1 - import { MusicBrainzRecording, PlaySubmittedData } from "@/lib/oldStamp"; 2 - import { Slot, Stack } from "expo-router"; 3 1 import { createContext, useState } from "react"; 2 + import { Slot, Stack } from "expo-router"; 3 + import { MusicBrainzRecording, PlaySubmittedData } from "@/lib/oldStamp"; 4 4 5 5 export enum StampStep { 6 6 IDLE = "IDLE",
+31 -33
apps/amethyst/app/(tabs)/(stamp)/stamp/index.tsx
··· 1 - import { Button } from "@/components/ui/button"; 2 - import { Icon } from "@/lib/icons/iconWithClassName"; 3 - import { Link, Stack, useRouter } from "expo-router"; 4 - import { Check, ChevronDown, ChevronRight } from "lucide-react-native"; 5 - 6 1 import React, { useContext, useEffect, useRef, useState } from "react"; 7 2 import { 8 3 FlatList, ··· 11 6 TouchableOpacity, 12 7 View, 13 8 } from "react-native"; 14 - 9 + import { Link, Stack, useRouter } from "expo-router"; 10 + import { ExternalLink } from "@/components/ExternalLink"; 11 + import { Button } from "@/components/ui/button"; 12 + import { Input } from "@/components/ui/input"; 13 + import SheetBackdrop, { SheetHandle } from "@/components/ui/sheetBackdrop"; 15 14 import { Text } from "@/components/ui/text"; 15 + import { Icon } from "@/lib/icons/iconWithClassName"; 16 16 import { 17 17 MusicBrainzRecording, 18 18 MusicBrainzRelease, ··· 22 22 SearchResultProps, 23 23 } from "@/lib/oldStamp"; 24 24 import { BottomSheetModal, BottomSheetScrollView } from "@gorhom/bottom-sheet"; 25 - import SheetBackdrop, { SheetHandle } from "@/components/ui/sheetBackdrop"; 26 - import { StampContext, StampContextValue, StampStep } from "./_layout"; 27 - import { ExternalLink } from "@/components/ExternalLink"; 25 + import { Check, ChevronDown, ChevronRight } from "lucide-react-native"; 28 26 29 - import { Input } from "@/components/ui/input"; 27 + import { StampContext, StampContextValue, StampStep } from "./_layout"; 30 28 31 29 export default function StepOne() { 32 30 const router = useRouter(); ··· 80 78 }; 81 79 82 80 return ( 83 - <ScrollView className="flex-1 justify-start items-center w-min bg-background pt-2"> 81 + <ScrollView className="w-min flex-1 items-center justify-start bg-background pt-2"> 84 82 <Stack.Screen 85 83 options={{ 86 84 title: "Stamp a play manually", ··· 146 144 </View> 147 145 148 146 {/* Search Results */} 149 - <View className="flex gap-4 max-w-2xl w-screen px-4"> 147 + <View className="flex w-screen max-w-2xl gap-4 px-4"> 150 148 {searchResults.length > 0 ? ( 151 149 <View className="mt-4"> 152 - <Text className="text-lg font-bold mb-2"> 150 + <Text className="mb-2 text-lg font-bold"> 153 151 Search Results ({searchResults.length}) 154 152 </Text> 155 153 ··· 175 173 ) : ( 176 174 hasSearched && ( 177 175 <View className="mt-4"> 178 - <Text className="text-lg text-muted-foreground mb-2 text-center"> 176 + <Text className="mb-2 text-center text-lg text-muted-foreground"> 179 177 No search results found. 180 178 </Text> 181 - <Text className="text-lg text-muted-foreground mb-2 text-center"> 179 + <Text className="mb-2 text-center text-lg text-muted-foreground"> 182 180 Please try importing with{" "} 183 181 <ExternalLink 184 182 href="https://harmony.pulsewidth.org.uk/" ··· 201 199 202 200 {/* Submit Button */} 203 201 {selectedTrack && ( 204 - <View className="mt-4 sticky bottom-0"> 202 + <View className="sticky bottom-0 mt-4"> 205 203 <Button 206 204 onPress={() => { 207 205 setState({ ··· 212 210 pathname: "/stamp/submit", 213 211 }); 214 212 }} 215 - className="w-full flex flex-row align-middle" 213 + className="flex w-full flex-row align-middle" 216 214 > 217 215 <Text>{`Submit "${selectedTrack.title}" as Play`}</Text> 218 216 <ChevronRight className="ml-2 inline" /> ··· 295 293 }, 296 294 ); 297 295 }} 298 - className={`px-4 py-2 mb-2 rounded-lg ${ 296 + className={`mb-2 rounded-lg px-4 py-2 ${ 299 297 isSelected ? "bg-primary/20" : "bg-secondary/10" 300 298 }`} 301 299 > 302 - <View className={`flex-row justify-between items-center gap-4`}> 300 + <View className={`flex-row items-center justify-between gap-4`}> 303 301 <Image 304 - className="w-16 h-16 rounded-lg bg-gray-500/50" 302 + className="h-16 w-16 rounded-lg bg-gray-500/50" 305 303 source={{ 306 304 uri: `https://coverartarchive.org/release/${currentRelease?.id}/front-250`, 307 305 }} 308 306 /> 309 307 <View className="flex-1"> 310 - <Text className="font-bold text-sm line-clamp-2">{result.title}</Text> 308 + <Text className="line-clamp-2 text-sm font-bold">{result.title}</Text> 311 309 <Text className="text-sm text-muted-foreground"> 312 310 {result["artist-credit"]?.[0]?.artist?.name ?? "Unknown Artist"} 313 311 </Text> ··· 316 314 {result.releases && result.releases?.length > 0 && ( 317 315 <TouchableOpacity 318 316 onPress={() => showModal()} 319 - className="p-1 bg-secondary/10 rounded-lg flex md:flex-row items-start md:items-center justify-between md:gap-1 w-full" 317 + className="flex w-full items-start justify-between rounded-lg bg-secondary/10 p-1 md:flex-row md:items-center md:gap-1" 320 318 > 321 - <View className="flex-1 flex md:flex-row items-start gap-1 overflow-hidden w-full"> 322 - <Text className="text-sm text-gray-500 whitespace-nowrap"> 319 + <View className="flex w-full flex-1 items-start gap-1 overflow-hidden md:flex-row"> 320 + <Text className="whitespace-nowrap text-sm text-gray-500"> 323 321 Release: 324 322 </Text> 325 - <Text className="text-sm line-clamp-1"> 323 + <Text className="line-clamp-1 text-sm"> 326 324 {currentRelease?.title} 327 325 {currentRelease?.date ? ` (${currentRelease.date})` : ""} 328 326 {currentRelease?.country ··· 331 329 </Text> 332 330 </View> 333 331 {/* the chevron looks odd in the other layout so I'm just hiding it for now. -mm */} 334 - <ChevronDown className="md:ml-1 md:block hidden w-6 h-6" /> 332 + <ChevronDown className="hidden h-6 w-6 md:ml-1 md:block" /> 335 333 </TouchableOpacity> 336 334 )} 337 335 </View> ··· 342 340 </View> 343 341 </Link> */} 344 342 {isSelected ? ( 345 - <View className="bg-primary rounded-full p-1"> 343 + <View className="rounded-full bg-primary p-1"> 346 344 <Icon icon={Check} size={20} /> 347 345 </View> 348 346 ) : ( 349 - <View className="border-2 border-secondary rounded-full p-3"></View> 347 + <View className="rounded-full border-2 border-secondary p-3"></View> 350 348 )} 351 349 </View> 352 350 ··· 358 356 backdropComponent={SheetBackdrop} 359 357 handleComponent={SheetHandle} 360 358 > 361 - <View className="pb-4 border-b -mt-2 border-x border-neutral-500/30 bg-card"> 362 - <Text className="text-lg font-bold text-center">Select Release</Text> 359 + <View className="-mt-2 border-x border-b border-neutral-500/30 bg-card pb-4"> 360 + <Text className="text-center text-lg font-bold">Select Release</Text> 363 361 <TouchableOpacity 364 362 className="absolute right-4 top-1.5" 365 363 onPress={() => dismissModal()} ··· 367 365 <Text className="text-primary">Done</Text> 368 366 </TouchableOpacity> 369 367 </View> 370 - <BottomSheetScrollView className="bg-card min-h-64 border-x border-neutral-500/30"> 368 + <BottomSheetScrollView className="min-h-64 border-x border-neutral-500/30 bg-card"> 371 369 {result.releases?.map((release) => ( 372 370 <TouchableOpacity 373 371 key={release.id} 374 - className={`p-4 border-b border-gray-100 ${ 372 + className={`border-b border-gray-100 p-4 ${ 375 373 selectedRelease?.id === release.id ? "bg-primary/10" : "" 376 374 }`} 377 375 onPress={() => { ··· 396 394 )} 397 395 </View> 398 396 {release.disambiguation && ( 399 - <Text className="text-sm text-gray-400 italic"> 397 + <Text className="text-sm italic text-gray-400"> 400 398 {release.disambiguation} 401 399 </Text> 402 400 )}
+23 -23
apps/amethyst/app/(tabs)/(stamp)/stamp/submit.tsx
··· 1 + import { ExternalLink } from "@/components/ExternalLink"; 1 2 import VerticalPlayView from "@/components/play/verticalPlayView"; 2 3 import { Button } from "@/components/ui/button"; 4 + import { Text } from "@/components/ui/text"; 5 + import { MusicBrainzRecording, PlaySubmittedData } from "@/lib/oldStamp"; 3 6 import { useStore } from "@/stores/mainStore"; 4 7 import { 5 8 Agent, ··· 7 10 ComAtprotoRepoCreateRecord, 8 11 RichText, 9 12 } from "@atproto/api"; 13 + import { Redirect, Stack, useRouter } from "expo-router"; 14 + import { useContext, useEffect, useState } from "react"; 15 + import { Image, Switch, View } from "react-native"; 16 + 17 + import { Textarea } from "@/components/ui/textarea"; 18 + import { cn } from "@/lib/utils"; 19 + import { Artist } from "@teal/lexicons/src/types/fm/teal/alpha/feed/defs"; 10 20 import { 11 21 Record as PlayRecord, 12 22 validateRecord, 13 23 } from "@teal/lexicons/src/types/fm/teal/alpha/feed/play"; 14 - import { Redirect, Stack, useRouter } from "expo-router"; 15 - import { useContext, useEffect, useState } from "react"; 16 - import { Switch, View } from "react-native"; 17 - import { MusicBrainzRecording, PlaySubmittedData } from "@/lib/oldStamp"; 18 - import { Text } from "@/components/ui/text"; 19 - import { Textarea } from "@/components/ui/textarea"; 20 - import { ExternalLink } from "@/components/ExternalLink"; 21 24 import { StampContext, StampContextValue, StampStep } from "./_layout"; 22 - import { Image } from "react-native"; 23 - import { Artist } from "@teal/lexicons/src/types/fm/teal/alpha/feed/defs"; 24 - import { cn } from "@/lib/utils"; 25 25 26 26 type CardyBResponse = { 27 27 error: string; ··· 309 309 }; 310 310 311 311 return ( 312 - <View className="flex-1 p-4 bg-background items-center h-screen-safe"> 312 + <View className="h-screen-safe flex-1 items-center bg-background p-4"> 313 313 <Stack.Screen 314 314 options={{ 315 315 title: "Submit Stamp", 316 316 }} 317 317 /> 318 - <View className="flex justify-between align-middle gap-4 max-w-2xl w-screen min-h-full px-4"> 318 + <View className="flex min-h-full w-screen max-w-2xl justify-between gap-4 px-4 align-middle"> 319 319 <View /> 320 320 <View> 321 321 <VerticalPlayView ··· 330 330 .join(", ")} 331 331 releaseTitle={selectedTrack?.selectedRelease?.title} 332 332 /> 333 - <Text className="text-sm text-gray-500 text-center mt-4"> 333 + <Text className="mt-4 text-center text-sm text-gray-500"> 334 334 Any missing info?{" "} 335 335 <ExternalLink 336 336 className="text-blue-600 dark:text-blue-400" ··· 343 343 344 344 <View className="flex-col gap-4 items-center w-full"> 345 345 {blueskyEmbedCard && shareWithBluesky ? ( 346 - <View className="gap-2 w-full"> 347 - <Text className="text-sm text-muted-foreground text-center"> 346 + <View className="w-full gap-2"> 347 + <Text className="text-center text-sm text-muted-foreground"> 348 348 Card Preview: 349 349 </Text> 350 - <View className="flex-col items-start rounded-xl bg-card border border-border"> 350 + <View className="flex-col items-start rounded-xl border border-border bg-card"> 351 351 <Image 352 352 source={{ 353 353 uri: blueskyEmbedCard.external.cardyThumbUrl, 354 354 }} 355 - className="rounded-t-xl aspect-video w-full" 355 + className="aspect-video w-full rounded-t-xl" 356 356 /> 357 - <View className="p-2 items-start"> 358 - <Text className="text-card-foreground text-start font-semibold"> 357 + <View className="items-start p-2"> 358 + <Text className="text-start font-semibold text-card-foreground"> 359 359 {blueskyEmbedCard.external.title} 360 360 </Text> 361 - <Text className="text-muted-foreground text-start"> 361 + <Text className="text-start text-muted-foreground"> 362 362 {blueskyEmbedCard.external.description} 363 363 </Text> 364 364 </View> ··· 366 366 </View> 367 367 ) : ( 368 368 shareWithBluesky && ( 369 - <Text className="text-sm text-muted-foreground text-center"> 369 + <Text className="text-center text-sm text-muted-foreground"> 370 370 jsyk: there won't be an embed card on your post. 371 371 </Text> 372 372 ) ··· 398 398 value={shareWithBluesky} 399 399 onValueChange={setShareWithBluesky} 400 400 /> 401 - <Text className="text-lg text-muted-foreground text-center"> 401 + <Text className="text-center text-lg text-muted-foreground"> 402 402 Share with Bluesky? 403 403 </Text> 404 404 </View> 405 - <View className="flex-row gap-2 w-full"> 405 + <View className="w-full flex-row gap-2"> 406 406 <Button 407 407 className="flex-1" 408 408 onPress={handleSubmit}
+9 -8
apps/amethyst/app/(tabs)/(stamp)/stamp/success.tsx
··· 1 + import { useContext, useEffect } from "react"; 2 + import { View } from "react-native"; 3 + import { Redirect, Stack, useRouter } from "expo-router"; 1 4 import { ExternalLink } from "@/components/ExternalLink"; 2 - import { Redirect, Stack, useRouter } from "expo-router"; 5 + import { Button } from "@/components/ui/button"; 6 + import { Text } from "@/components/ui/text"; 3 7 import { Check, ExternalLinkIcon } from "lucide-react-native"; 4 - import { View } from "react-native"; 5 - import { Text } from "@/components/ui/text"; 8 + 6 9 import { StampContext, StampContextValue, StampStep } from "./_layout"; 7 - import { useContext, useEffect } from "react"; 8 - import { Button } from "@/components/ui/button"; 9 10 10 11 export default function StepThree() { 11 12 const router = useRouter(); ··· 23 24 return <Redirect href="/stamp" />; 24 25 } 25 26 return ( 26 - <View className="flex-1 p-4 bg-background items-center h-screen-safe"> 27 + <View className="h-screen-safe flex-1 items-center bg-background p-4"> 27 28 <Stack.Screen 28 29 options={{ 29 30 title: "Play Successfully Submitted", 30 31 }} 31 32 /> 32 - <View className="flex justify-center items-center gap-2 max-w-screen-md w-screen min-h-full px-4"> 33 + <View className="flex min-h-full w-screen max-w-screen-md items-center justify-center gap-2 px-4"> 33 34 <Check size={48} className="text-green-600 dark:text-green-400" /> 34 35 <Text className="text-xl">Play Submitted!</Text> 35 36 <Text> ··· 40 41 > 41 42 on PDSls 42 43 </ExternalLink> 43 - <ExternalLinkIcon className="inline mb-0.5 ml-0.5" size="1rem" /> 44 + <ExternalLinkIcon className="mb-0.5 ml-0.5 inline" size="1rem" /> 44 45 </Text> 45 46 {state.submittedStamp.blueskyPostUrl && ( 46 47 <Text>
+1 -2
apps/amethyst/app/(tabs)/_layout.tsx
··· 1 1 import React from "react"; 2 - 3 2 import { 4 3 FilePen, 5 4 Home, ··· 72 71 {({ pressed }) => ( 73 72 <Icon 74 73 icon={LogOut} 75 - className="text-2xl mr-4 text-muted-foreground" 74 + className="mr-4 text-2xl text-muted-foreground" 76 75 name="log-out" 77 76 /> 78 77 )}
+19 -23
apps/amethyst/app/(tabs)/index.tsx
··· 1 + import * as React from "react"; 2 + import { useEffect, useState } from "react"; 3 + import { ActivityIndicator, ScrollView, View } from "react-native"; 4 + import { Redirect, Stack, useRouter } from "expo-router"; 5 + import ActorView from "@/components/actor/actorView"; 6 + import { useStore } from "@/stores/mainStore"; 1 7 2 - import * as React from 'react'; 3 - import { ActivityIndicator, ScrollView, View } from 'react-native'; 4 - 5 - import { useStore } from '@/stores/mainStore'; 6 - import AuthOptions from '../auth/options'; 7 - 8 - import { Redirect, Stack } from 'expo-router'; 9 - import ActorView from '@/components/actor/actorView'; 10 - import { useEffect, useState } from 'react'; 11 - import { useRouter } from 'expo-router'; 8 + import AuthOptions from "../auth/options"; 12 9 13 10 export default function Screen() { 14 11 const router = useRouter(); 15 12 const j = useStore((state) => state.status); 16 13 // @me 17 14 const agent = useStore((state) => state.pdsAgent); 18 - const profile = useStore((state) => state.profiles[agent?.did ?? '']); 15 + const profile = useStore((state) => state.profiles[agent?.did ?? ""]); 19 16 const tealDid = useStore((state) => state.tealDid); 20 17 const [hasTealProfile, setHasTealProfile] = useState<boolean | null>(null); 21 18 ··· 26 23 try { 27 24 if (!agent || !tealDid) return; 28 25 let res = await agent.call( 29 - 'fm.teal.alpha.actor.getProfile', 26 + "fm.teal.alpha.actor.getProfile", 30 27 { actor: agent?.did }, 31 28 {}, 32 - { headers: { 'atproto-proxy': tealDid + '#teal_fm_appview' } }, 29 + { headers: { "atproto-proxy": tealDid + "#teal_fm_appview" } }, 33 30 ); 34 31 if (isMounted) { 35 32 setHasTealProfile(true); 36 33 } 37 34 } catch (error) { 38 35 setHasTealProfile(false); 39 - console.error('Error fetching profile:', error); 36 + console.error("Error fetching profile:", error); 40 37 if ( 41 38 error instanceof Error && 42 - error.message.includes('could not resolve proxy did') 39 + error.message.includes("could not resolve proxy did") 43 40 ) { 44 - router.replace('/offline'); 41 + router.replace("/offline"); 45 42 } 46 43 } 47 44 }; ··· 53 50 }; 54 51 }, [agent, tealDid, router]); 55 52 56 - if (j !== 'loggedIn') { 53 + if (j !== "loggedIn") { 57 54 return <AuthOptions />; 58 55 } 59 56 60 57 if (hasTealProfile !== null && !hasTealProfile) { 61 58 return ( 62 - <View className="flex-1 justify-center items-center gap-5 p-6 bg-background"> 59 + <View className="flex-1 items-center justify-center gap-5 bg-background p-6"> 63 60 <Redirect href="/onboarding" /> 64 61 </View> 65 62 ); ··· 68 65 // TODO: replace with skeleton 69 66 if (!profile || !agent) { 70 67 return ( 71 - <View className="flex-1 justify-center items-center gap-5 p-6 bg-background"> 68 + <View className="flex-1 items-center justify-center gap-5 bg-background p-6"> 72 69 <ActivityIndicator size="large" /> 73 70 </View> 74 71 ); 75 72 } 76 73 77 74 return ( 78 - <ScrollView className="flex-1 justify-start items-center gap-5 bg-background w-full"> 75 + <ScrollView className="w-full flex-1 items-center justify-start gap-5 bg-background"> 79 76 <Stack.Screen 80 77 options={{ 81 - title: 'Home', 82 - headerBackButtonDisplayMode: 'minimal', 78 + title: "Home", 79 + headerBackButtonDisplayMode: "minimal", 83 80 headerShown: false, 84 81 }} 85 82 /> 86 83 <ActorView actorDid={agent.did!} pdsAgent={agent} /> 87 - 88 84 </ScrollView> 89 85 ); 90 86 }
+1 -1
apps/amethyst/app/(tabs)/profile/[handle].tsx
··· 30 30 if (!did) return <ActivityIndicator size="large" color="#0000ff" />; 31 31 32 32 return ( 33 - <ScrollView className="flex-1 justify-start items-center gap-5 bg-background w-full"> 33 + <ScrollView className="w-full flex-1 items-center justify-start gap-5 bg-background"> 34 34 <Stack.Screen 35 35 options={{ 36 36 title: "Home",
+25 -25
apps/amethyst/app/(tabs)/search/index.tsx
··· 1 - import React, { useEffect, useState } from 'react'; 2 - import { ScrollView, View } from 'react-native'; 3 - import { Link, Stack } from 'expo-router'; 4 - import { Input } from '@/components/ui/input'; 5 - import { Text } from '@/components/ui/text'; 6 - import { useStore } from '@/stores/mainStore'; 1 + import React, { useEffect, useState } from "react"; 2 + import { ScrollView, View } from "react-native"; 3 + import { Link, Stack } from "expo-router"; 4 + import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; 5 + import { Input } from "@/components/ui/input"; 6 + import { Text } from "@/components/ui/text"; 7 + import getImageCdnLink from "@/lib/atp/getImageCdnLink"; 8 + import { useStore } from "@/stores/mainStore"; 7 9 8 - import { OutputSchema as SearchActorsOutputSchema } from '@teal/lexicons/src/types/fm/teal/alpha/actor/searchActors'; 9 - import { MiniProfileView } from '@teal/lexicons/src/types/fm/teal/alpha/actor/defs'; 10 - import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; 11 - import getImageCdnLink from '@/lib/atp/getImageCdnLink'; 10 + import { MiniProfileView } from "@teal/lexicons/src/types/fm/teal/alpha/actor/defs"; 11 + import { OutputSchema as SearchActorsOutputSchema } from "@teal/lexicons/src/types/fm/teal/alpha/actor/searchActors"; 12 12 13 13 export default function Search() { 14 - const [searchQuery, setSearchQuery] = React.useState(''); 14 + const [searchQuery, setSearchQuery] = React.useState(""); 15 15 const [searchResults, setSearchResults] = useState<MiniProfileView[]>([]); 16 16 17 17 const tealDid = useStore((state) => state.tealDid); ··· 28 28 } 29 29 try { 30 30 let res = await agent.call( 31 - 'fm.teal.alpha.actor.searchActors', 31 + "fm.teal.alpha.actor.searchActors", 32 32 { q: searchQuery }, 33 33 {}, 34 - { headers: { 'atproto-proxy': tealDid + '#teal_fm_appview' } }, 34 + { headers: { "atproto-proxy": tealDid + "#teal_fm_appview" } }, 35 35 ); 36 36 if (isMounted) { 37 37 setSearchResults( 38 - res.data['actors'] as SearchActorsOutputSchema['actors'], 38 + res.data["actors"] as SearchActorsOutputSchema["actors"], 39 39 ); 40 40 } 41 41 } catch (error) { 42 - console.error('Error fetching profile:', error); 42 + console.error("Error fetching profile:", error); 43 43 } 44 44 }; 45 45 ··· 51 51 }, [agent, tealDid, searchQuery]); 52 52 53 53 return ( 54 - <ScrollView className="flex-1 justify-start items-center gap-5 bg-background w-full"> 54 + <ScrollView className="w-full flex-1 items-center justify-start gap-5 bg-background"> 55 55 <Stack.Screen 56 56 options={{ 57 - title: 'Search', 58 - headerBackButtonDisplayMode: 'minimal', 57 + title: "Search", 58 + headerBackButtonDisplayMode: "minimal", 59 59 headerShown: false, 60 60 }} 61 61 /> 62 - <View className="max-w-2xl flex-1 w-screen flex flex-col p-4 divide-y divide-muted-foreground/50 gap-4 rounded-xl my-2 mt-5"> 62 + <View className="my-2 mt-5 flex w-screen max-w-2xl flex-1 flex-col gap-4 divide-y divide-muted-foreground/50 rounded-xl p-4"> 63 63 <Input 64 64 placeholder="Search for users..." 65 65 value={searchQuery} 66 66 onChangeText={setSearchQuery} 67 67 /> 68 68 </View> 69 - <View className="my-2 mx-5"> 69 + <View className="mx-5 my-2"> 70 70 {searchResults.map((user) => ( 71 71 <Link 72 - href={`/profile/${user.handle?.replace('at://', '')}`} 72 + href={`/profile/${user.handle?.replace("at://", "")}`} 73 73 key={user.did} 74 - className="flex flex-row items-center gap-4 hover:bg-muted-foreground/20 p-2 rounded-xl" 74 + className="flex flex-row items-center gap-4 rounded-xl p-2 hover:bg-muted-foreground/20" 75 75 > 76 76 <Avatar 77 77 alt={`${user.displayName}'s profile`} 78 - className="w-14 h-14 border border-border" 78 + className="h-14 w-14 border border-border" 79 79 > 80 80 <AvatarImage 81 81 source={{ ··· 91 91 <Text> 92 92 {user.displayName?.substring(0, 1) ?? 93 93 user.handle?.substring(0, 1) ?? 94 - 'R'} 94 + "R"} 95 95 </Text> 96 96 </AvatarFallback> 97 97 </Avatar> 98 98 <View className="flex flex-col"> 99 99 <Text className="font-semibold">{user.displayName}</Text> 100 100 <Text className="text-muted-foreground"> 101 - {user.handle?.replace('at://', '@')} 101 + {user.handle?.replace("at://", "@")} 102 102 </Text> 103 103 </View> 104 104 </Link>
+8 -8
apps/amethyst/app/(tabs)/settings/index.tsx
··· 1 - import React, { useState } from "react"; 1 + import { Button } from "@/components/ui/button"; 2 2 import { Text } from "@/components/ui/text"; 3 - import { ScrollView, Switch, View } from "react-native"; 4 - import { Link, Stack } from "expo-router"; 5 3 import { useColorScheme } from "@/lib/useColorScheme"; 6 4 import { cn } from "@/lib/utils"; 7 - import { Button } from "@/components/ui/button"; 5 + import { Link, Stack } from "expo-router"; 6 + import React, { useState } from "react"; 7 + import { ScrollView, Switch, View } from "react-native"; 8 8 9 + import { Input } from "@/components/ui/input"; 9 10 import pkg from "@/package.json"; 10 11 import { useStore } from "@/stores/mainStore"; 11 - import { Input } from "@/components/ui/input"; 12 12 13 13 export default function Settings() { 14 14 const { colorScheme, setColorScheme } = useColorScheme(); ··· 22 22 ]; 23 23 24 24 return ( 25 - <ScrollView className="flex-1 justify-start items-center gap-5 bg-background w-full"> 25 + <ScrollView className="w-full flex-1 items-center justify-start gap-5 bg-background"> 26 26 <Stack.Screen 27 27 options={{ 28 28 title: "Settings", ··· 30 30 headerShown: true, 31 31 }} 32 32 /> 33 - <View className="max-w-2xl flex-1 w-screen flex flex-col p-4 divide-y divide-muted-foreground/50 gap-4 rounded-xl my-2 mx-5"> 33 + <View className="mx-5 my-2 flex w-screen max-w-2xl flex-1 flex-col gap-4 divide-y divide-muted-foreground/50 rounded-xl p-4"> 34 34 <ButtonSelector 35 35 text="Theme" 36 36 values={colorSchemeOptions} ··· 107 107 <Button 108 108 key={value} 109 109 onPress={() => setSelectedValue(value)} 110 - className={`flex-1 w-full h-8`} 110 + className={`h-8 w-full flex-1`} 111 111 variant={selectedValue === value ? "secondary" : "ghost"} 112 112 > 113 113 <Text
+5 -2
apps/amethyst/app/+html.tsx
··· 1 - import { ScrollViewStyleReset } from 'expo-router/html'; 1 + import { ScrollViewStyleReset } from "expo-router/html"; 2 2 3 3 // This file is web-only and used to configure the root HTML for every 4 4 // web page during static rendering. ··· 10 10 <head> 11 11 <meta charSet="utf-8" /> 12 12 <meta httpEquiv="X-UA-Compatible" content="IE=edge" /> 13 - <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> 13 + <meta 14 + name="viewport" 15 + content="width=device-width, initial-scale=1, shrink-to-fit=no" 16 + /> 14 17 15 18 {/* 16 19 Disable body scrolling on web. This makes ScrollView components work closer to how they do on native.
+1
apps/amethyst/app/+not-found.tsx
··· 1 1 import { Link, Stack } from "expo-router"; 2 2 import { StyleSheet, View } from "react-native"; 3 3 4 + import React from "react"; 4 5 import { Text } from "../components/ui/text"; 5 6 6 7 export default function NotFoundScreen() {
+7 -6
apps/amethyst/app/_layout.tsx
··· 1 + import { useEffect } from "react"; 2 + import { useFonts } from "expo-font"; 3 + import { Stack } from "expo-router"; 4 + import * as SplashScreen from "expo-splash-screen"; 1 5 import FontAwesome from "@expo/vector-icons/FontAwesome"; 2 6 import { 3 7 DarkTheme, ··· 6 10 ThemeProvider, 7 11 } from "@react-navigation/native"; 8 12 import { PortalHost } from "@rn-primitives/portal"; 9 - import { useFonts } from "expo-font"; 10 - import { Stack } from "expo-router"; 11 - import * as SplashScreen from "expo-splash-screen"; 12 - import { useEffect } from "react"; 13 + 13 14 import "react-native-reanimated"; 14 15 15 16 import { GestureHandlerRootView } from "react-native-gesture-handler"; 16 - 17 - import { verifyInstallation, useColorScheme } from "nativewind"; 17 + import { useColorScheme, verifyInstallation } from "nativewind"; 18 18 19 19 import { GlobalTextClassContext } from "../components/ui/text"; 20 + 20 21 import "../global.css"; 21 22 22 23 import { BottomSheetModalProvider } from "@gorhom/bottom-sheet";
+7 -7
apps/amethyst/app/auth/callback.tsx
··· 1 - import { Link, Stack, router } from "expo-router"; 1 + import React, { useEffect } from "react"; 2 2 import { View } from "react-native"; 3 + import { Link, router, Stack } from "expo-router"; 4 + import { useLocalSearchParams } from "expo-router/build/hooks"; 3 5 import { Text } from "@/components/ui/text"; 4 - import React, { useEffect } from "react"; 5 6 import { Icon } from "@/lib/icons/iconWithClassName"; 6 - import { PencilLine } from "lucide-react-native"; 7 - import { useLocalSearchParams } from "expo-router/build/hooks"; 8 7 import { useStore } from "@/stores/mainStore"; 8 + import { PencilLine } from "lucide-react-native"; 9 9 10 10 interface CallbackSearchParams { 11 11 iss: string; ··· 44 44 ); 45 45 } 46 46 return ( 47 - <View className="flex-1 justify-center items-center gap-5 p-6 bg-background"> 47 + <View className="flex-1 items-center justify-center gap-5 bg-background p-6"> 48 48 <Stack.Screen 49 49 options={{ 50 50 title: "Processing", ··· 52 52 }} 53 53 /> 54 54 <Icon icon={PencilLine} size={64} /> 55 - <Text className="text-3xl font-semibold text-center text-foreground"> 55 + <Text className="text-center text-3xl font-semibold text-foreground"> 56 56 {status === "loggedIn" ? "Success!" : "Fetching your data..."} 57 57 </Text> 58 58 <Text className="text-sm text-muted-foreground"> 59 59 This may take a few seconds {status} 60 60 </Text> 61 - <Text className="text-sm text-muted-foreground font-mono bg-muted-foreground/30 py-1 px-2 rounded-full"> 61 + <Text className="rounded-full bg-muted-foreground/30 px-2 py-1 font-mono text-sm text-muted-foreground"> 62 62 {state} 63 63 </Text> 64 64 </View>
+12 -12
apps/amethyst/app/auth/login.tsx
··· 1 - import { Link, Stack, router } from "expo-router"; 2 - import { AlertCircle, AtSign, Check, ChevronRight } from "lucide-react-native"; 3 - import React, { useState, useEffect, useCallback, useRef } from "react"; // Added useCallback, useRef 4 - import { Platform, TextInput, View } from "react-native"; 5 - import { SafeAreaView } from "react-native-safe-area-context"; 6 1 import { Button } from "@/components/ui/button"; 7 2 import { Input } from "@/components/ui/input"; 8 3 import { Text } from "@/components/ui/text"; 9 4 import { Icon } from "@/lib/icons/iconWithClassName"; 10 5 import { capFirstLetter, cn } from "@/lib/utils"; 11 - 6 + import { Link, router, Stack } from "expo-router"; 12 7 import { openAuthSessionAsync } from "expo-web-browser"; 13 - import { useStore } from "@/stores/mainStore"; 8 + import { AlertCircle, AtSign, Check, ChevronRight } from "lucide-react-native"; 9 + import React, { useCallback, useEffect, useRef, useState } from "react"; // Added useCallback, useRef 10 + import { Platform, TextInput, View } from "react-native"; 11 + import { SafeAreaView } from "react-native-safe-area-context"; 12 + 14 13 import { resolveFromIdentity } from "@/lib/atp/pid"; 14 + import { useStore } from "@/stores/mainStore"; 15 15 16 + import { FontAwesome6, MaterialCommunityIcons } from "@expo/vector-icons"; 16 17 import Animated, { 18 + interpolate, 19 + useAnimatedStyle, 17 20 useSharedValue, 18 - useAnimatedStyle, 19 21 withTiming, 20 - interpolate, 21 22 } from "react-native-reanimated"; 22 - import { MaterialCommunityIcons, FontAwesome6 } from "@expo/vector-icons"; 23 23 24 24 type Url = URL; 25 25 ··· 210 210 }; 211 211 212 212 return ( 213 - <SafeAreaView className="flex-1 flex items-center justify-center w-full"> 213 + <SafeAreaView className="flex w-full flex-1 items-center justify-center"> 214 214 <Stack.Screen 215 215 options={{ 216 216 title: "Sign in", ··· 222 222 <View className="flex items-center"> 223 223 <Icon icon={AtSign} className="color-bsky" name="at" size={64} /> 224 224 </View> 225 - <Text className="text-3xl text-center text-foreground"> 225 + <Text className="text-center text-3xl text-foreground"> 226 226 Sign in with your PDS 227 227 </Text> 228 228 <View>
+8 -10
apps/amethyst/app/auth/logoutModal.tsx
··· 1 + import { Platform, TouchableOpacity, View } from "react-native"; 2 + import { router } from "expo-router"; 1 3 import { StatusBar } from "expo-status-bar"; 2 - import { Platform, TouchableOpacity } from "react-native"; 3 - 4 - import { View } from "react-native"; 4 + import { Button } from "@/components/ui/button"; 5 5 import { Text } from "@/components/ui/text"; 6 + import { Icon } from "@/lib/icons/iconWithClassName"; 6 7 import { useStore } from "@/stores/mainStore"; 7 - import { Button } from "@/components/ui/button"; 8 - import { router } from "expo-router"; 9 8 import { X } from "lucide-react-native"; 10 - import { Icon } from "@/lib/icons/iconWithClassName"; 11 9 12 10 // should probably be a WebModal component or something? 13 11 export default function ModalScreen() { ··· 18 16 }; 19 17 return ( 20 18 <TouchableOpacity 21 - className="flex justify-center items-center bg-muted/60 w-full h-screen backdrop-blur-sm fade-in animate-in" 19 + className="flex h-screen w-full items-center justify-center bg-muted/60 backdrop-blur-sm animate-in fade-in" 22 20 onPress={() => handleGoBack()} 23 21 > 24 - <View className="flex-1 relative items-center justify-center gap-2 bg-background w-full max-w-96 max-h-80 shadow-xl rounded-xl"> 22 + <View className="relative max-h-80 w-full max-w-96 flex-1 items-center justify-center gap-2 rounded-xl bg-background shadow-xl"> 25 23 <Icon 26 24 icon={X} 27 - className="top-2 right-2 absolute text-muted-foreground hover:text-foreground" 25 + className="absolute right-2 top-2 text-muted-foreground hover:text-foreground" 28 26 name="x" 29 27 /> 30 28 <Text className="text-4xl">Surprise!</Text> 31 29 <Text className="text-xl">You can sign out here!</Text> 32 - <Text className="text-xl -mt-2">but... are you sure?</Text> 30 + <Text className="-mt-2 text-xl">but... are you sure?</Text> 33 31 <Button 34 32 onPress={() => { 35 33 logOut();
+8 -8
apps/amethyst/app/auth/options.tsx
··· 1 - import { Link, Stack } from "expo-router"; 1 + import React from "react"; 2 2 import { View } from "react-native"; 3 - import { Text } from "@/components/ui/text"; 3 + import { Link, Stack } from "expo-router"; 4 4 import { Button } from "@/components/ui/button"; 5 - import React from "react"; 5 + import { Text } from "@/components/ui/text"; 6 6 7 7 export default function AuthOptions() { 8 8 return ( 9 - <View className="flex-1 justify-center items-center gap-5 p-6 bg-background"> 9 + <View className="flex-1 items-center justify-center gap-5 bg-background p-6"> 10 10 <Stack.Screen 11 11 options={{ 12 12 title: "Sign in", ··· 16 16 }} 17 17 /> 18 18 <View className="gap-2"> 19 - <Text className="text-5xl text-center text-foreground"> 19 + <Text className="text-center text-5xl text-foreground"> 20 20 Get started with 21 21 </Text> 22 22 <Text className="text-center text-5xl text-foreground"> 23 23 teal 24 - <Text className="text-5xl font-serif-old-italic">.fm</Text> 24 + <Text className="font-serif-old-italic text-5xl">.fm</Text> 25 25 </Text> 26 26 </View> 27 27 <Link href="/auth/login" className="text-secondary"> 28 28 <Button 29 - className="flex flex-row justify-center items-center rounded-full dark-blue-800 dark:bg-blue-400 gap-2" 29 + className="dark-blue-800 flex flex-row items-center justify-center gap-2 rounded-full dark:bg-blue-400" 30 30 size="lg" 31 31 > 32 32 <Text>Sign in with ATProto</Text> ··· 34 34 </Link> 35 35 <Link href="/auth/signup" className="text-secondary"> 36 36 <Button 37 - className="flex flex-row justify-center items-center rounded-full" 37 + className="flex flex-row items-center justify-center rounded-full" 38 38 size="lg" 39 39 > 40 40 <Text>Sign up</Text>
+25 -26
apps/amethyst/app/auth/signup.tsx
··· 1 - import React from 'react'; 2 - import { Platform, View } from 'react-native'; 3 - import { SafeAreaView } from 'react-native-safe-area-context'; 4 - import { Text } from '@/components/ui/text'; 5 - import { Button } from '@/components/ui/button'; 6 - import { Icon } from '@/lib/icons/iconWithClassName'; 7 - import { ArrowRight, AtSignIcon } from 'lucide-react-native'; 8 - 9 - import { Stack, router } from 'expo-router'; 1 + import React from "react"; 2 + import { Platform, View } from "react-native"; 3 + import { SafeAreaView } from "react-native-safe-area-context"; 4 + import { router, Stack } from "expo-router"; 5 + import { Button } from "@/components/ui/button"; 6 + import { Text } from "@/components/ui/text"; 7 + import { Icon } from "@/lib/icons/iconWithClassName"; 8 + import { ArrowRight, AtSignIcon } from "lucide-react-native"; 10 9 11 10 const LoginScreen = () => { 12 11 return ( 13 - <SafeAreaView className="flex-1 flex justify-center items-center"> 12 + <SafeAreaView className="flex flex-1 items-center justify-center"> 14 13 <Stack.Screen 15 14 options={{ 16 - title: 'Sign in', 17 - headerBackButtonDisplayMode: 'minimal', 15 + title: "Sign in", 16 + headerBackButtonDisplayMode: "minimal", 18 17 headerShown: false, 19 18 }} 20 19 /> 21 - <View className="flex-1 justify-center p-8 gap-4 pb-32 w-screen max-w-md"> 22 - <Text className="text-3xl text-center text-foreground -mb-2"> 23 - Sign up via <br /> the{' '} 20 + <View className="w-screen max-w-md flex-1 justify-center gap-4 p-8 pb-32"> 21 + <Text className="-mb-2 text-center text-3xl text-foreground"> 22 + Sign up via <br /> the{" "} 24 23 <Icon 25 24 icon={AtSignIcon} 26 - className="color-bsky inline mb-2 mr-1.5" 25 + className="mb-2 mr-1.5 inline color-bsky" 27 26 size={32} 28 27 /> 29 28 Atmosphere 30 29 </Text> 31 - <Text className="text-foreground text-xl text-center"> 30 + <Text className="text-center text-xl text-foreground"> 32 31 No account? No problem. 33 32 </Text> 34 - <View className="flex flex-col justify-center items-center"> 35 - <Text className="mb-2 text-center -mx-3"> 33 + <View className="flex flex-col items-center justify-center"> 34 + <Text className="-mx-3 mb-2 text-center"> 36 35 To use teal.fm, you’ll need a PDS—your personal data storage on the 37 36 Atmosphere. Signing up with Bluesky is a great way to begin. 38 37 </Text> 39 - <Text className="text-center mb-4 text-xs text-muted-foreground"> 38 + <Text className="mb-4 text-center text-xs text-muted-foreground"> 40 39 Sign up with Bluesky, then return here to start exploring. 41 40 </Text> 42 41 {/* on click, open tab, then in the background navigate to /login */} 43 42 <Button 44 43 onPress={() => { 45 44 // on web, open new tab 46 - if (Platform.OS === 'web') { 47 - window.open('https://bsky.app/signup', '_blank'); 45 + if (Platform.OS === "web") { 46 + window.open("https://bsky.app/signup", "_blank"); 48 47 } else { 49 - router.navigate('https://bsky.app'); 48 + router.navigate("https://bsky.app"); 50 49 } 51 50 setTimeout(() => { 52 - router.replace('/auth/login'); 51 + router.replace("/auth/login"); 53 52 }, 1000); 54 53 }} 55 - className="flex flex-row justify-center items-center gap-2 bg-bsky" 54 + className="flex flex-row items-center justify-center gap-2 bg-bsky" 56 55 > 57 - <Text className="text-sm ml-2 text-secondary">To Bluesky</Text> 56 + <Text className="ml-2 text-sm text-secondary">To Bluesky</Text> 58 57 <Icon icon={ArrowRight} /> 59 58 </Button> 60 59 </View>
+9 -8
apps/amethyst/app/error.tsx
··· 1 1 import React from "react"; 2 - import { View, TouchableOpacity } from "react-native"; 2 + import { TouchableOpacity, View } from "react-native"; 3 3 import { SafeAreaView } from "react-native-safe-area-context"; 4 - import { Text } from "../components/ui/text"; 4 + import { router, Stack } from "expo-router"; 5 + import { AlertCircle, Home } from "lucide-react-native"; 6 + 5 7 import { Button } from "../components/ui/button"; 8 + import { Text } from "../components/ui/text"; 6 9 import { Icon } from "../lib/icons/iconWithClassName"; 7 - import { Home, AlertCircle } from "lucide-react-native"; 8 - import { Stack, router } from "expo-router"; 9 10 10 11 const ErrorScreen = () => { 11 12 return ( ··· 17 18 headerShown: false, 18 19 }} 19 20 /> 20 - <View className="flex-1 justify-center align-center p-8 gap-4 pb-32 max-w-screen-sm"> 21 + <View className="align-center max-w-screen-sm flex-1 justify-center gap-4 p-8 pb-32"> 21 22 <View className="flex items-center"> 22 23 <Icon icon={AlertCircle} className="color-destructive" size={64} /> 23 24 </View> 24 - <Text className="text-4xl font-semibold text-center text-foreground"> 25 + <Text className="text-center text-4xl font-semibold text-foreground"> 25 26 Oops! Something went wrong 26 27 </Text> 27 28 <Text className="text-center text-muted-foreground"> 28 29 We couldn't complete your request. Please try again later. 29 30 </Text> 30 - <View className="flex flex-row justify-center items-center mt-4"> 31 + <View className="mt-4 flex flex-row items-center justify-center"> 31 32 <Button className="bg-primary" onPress={() => router.push("/")}> 32 33 <> 33 - <Text className="font-semibold text-lg">Return Home</Text> 34 + <Text className="text-lg font-semibold">Return Home</Text> 34 35 <Icon icon={Home} /> 35 36 </> 36 37 </Button>
+17 -17
apps/amethyst/app/onboarding/descriptionPage.tsx
··· 1 - import React, { useState } from 'react'; 2 - import { View } from 'react-native'; 3 - import { Text } from '@/components/ui/text'; 4 - import { Button } from '@/components/ui/button'; 5 - import { Textarea } from '@/components/ui/textarea'; 6 - import { Icon } from '@/lib/icons/iconWithClassName'; 7 - import { CheckCircle } from 'lucide-react-native'; 1 + import React, { useState } from "react"; 2 + import { View } from "react-native"; 3 + import { Button } from "@/components/ui/button"; 4 + import { Text } from "@/components/ui/text"; 5 + import { Textarea } from "@/components/ui/textarea"; 6 + import { Icon } from "@/lib/icons/iconWithClassName"; 7 + import { CheckCircle } from "lucide-react-native"; 8 8 9 9 interface DescriptionPageProps { 10 10 onComplete: (description: string) => void; ··· 17 17 initialDescription, 18 18 onBack, 19 19 }) => { 20 - const [description, setDescription] = useState(initialDescription || ''); 20 + const [description, setDescription] = useState(initialDescription || ""); 21 21 22 22 const handleComplete = () => { 23 23 if (description) { ··· 26 26 }; 27 27 28 28 return ( 29 - <View className="flex-1 justify-between items-center px-5"> 29 + <View className="flex-1 items-center justify-between px-5"> 30 30 <View /> 31 - <View className="gap-4 max-w-lg"> 32 - <Text className="text-2xl font-semibold text-center"> 31 + <View className="max-w-lg gap-4"> 32 + <Text className="text-center text-2xl font-semibold"> 33 33 Tell us about yourself! 34 34 </Text> 35 - <Text className="text-sm text-center text-muted-foreground -mt-2"> 35 + <Text className="-mt-2 text-center text-sm text-muted-foreground"> 36 36 Your bio is your chance to shine. Let your creativity flow and tell 37 37 the world who you are. You can always edit it later. 38 38 </Text> 39 39 <Textarea 40 - className="border border-gray-300 rounded px-3 py-2 mb-5 min-h-[150px]" 40 + className="mb-5 min-h-[150px] rounded border border-gray-300 px-3 py-2" 41 41 placeholder="A short bio or description" 42 42 multiline 43 43 value={description} 44 44 onChangeText={setDescription} 45 45 /> 46 46 </View> 47 - <View className="flex-row justify-between w-full"> 47 + <View className="w-full flex-row justify-between"> 48 48 {onBack && ( 49 - <Button variant="outline" onPress={onBack} className="flex-1 mr-2"> 49 + <Button variant="outline" onPress={onBack} className="mr-2 flex-1"> 50 50 <Text>Back</Text> 51 51 </Button> 52 52 )} 53 53 <Button 54 54 onPress={handleComplete} 55 55 disabled={!description} 56 - className="flex-1 ml-2" 56 + className="ml-2 flex-1" 57 57 > 58 - <Text>Next</Text>{' '} 58 + <Text>Next</Text>{" "} 59 59 <Icon icon={CheckCircle} size={18} className="ml-2" /> 60 60 </Button> 61 61 </View>
+14 -14
apps/amethyst/app/onboarding/displayNamePage.tsx
··· 1 - import React, { useState } from 'react'; 2 - import { View } from 'react-native'; 3 - import { Text } from '@/components/ui/text'; 4 - import { Button } from '@/components/ui/button'; 5 - import { Input } from '@/components/ui/input'; 1 + import React, { useState } from "react"; 2 + import { View } from "react-native"; 3 + import { Button } from "@/components/ui/button"; 4 + import { Input } from "@/components/ui/input"; 5 + import { Text } from "@/components/ui/text"; 6 6 7 7 interface DisplayNamePageProps { 8 8 onComplete: (displayName: string) => void; ··· 15 15 initialDisplayName, 16 16 onBack, 17 17 }) => { 18 - const [displayName, setDisplayName] = useState(initialDisplayName || ''); 18 + const [displayName, setDisplayName] = useState(initialDisplayName || ""); 19 19 20 20 const handleNext = () => { 21 21 if (displayName) { ··· 24 24 }; 25 25 26 26 return ( 27 - <View className="flex-1 justify-between items-center px-5"> 27 + <View className="flex-1 items-center justify-between px-5"> 28 28 <View /> 29 - <View className="gap-4 max-w-lg"> 30 - <Text className="text-2xl font-semibold text-center"> 29 + <View className="max-w-lg gap-4"> 30 + <Text className="text-center text-2xl font-semibold"> 31 31 Welcome! What should we call you? 32 32 </Text> 33 - <Text className="text-sm text-center text-muted-foreground -mt-2"> 33 + <Text className="-mt-2 text-center text-sm text-muted-foreground"> 34 34 Choose something unique, memorable, and something others will easily 35 35 recognise. It can be your real name or a nickname you like. 36 36 </Text> 37 37 <Input 38 - className="border border-gray-300 rounded px-3 py-2 mb-5" 38 + className="mb-5 rounded border border-gray-300 px-3 py-2" 39 39 placeholder="Your Display Name" 40 40 value={displayName} 41 41 onChangeText={setDisplayName} 42 42 /> 43 43 </View> 44 - <View className="flex-row justify-between w-full"> 44 + <View className="w-full flex-row justify-between"> 45 45 {onBack && ( 46 - <Button variant="outline" onPress={onBack} className="flex-1 mr-2"> 46 + <Button variant="outline" onPress={onBack} className="mr-2 flex-1"> 47 47 <Text>Back</Text> 48 48 </Button> 49 49 )} 50 50 <Button 51 51 onPress={handleNext} 52 52 disabled={!displayName} 53 - className="flex-1 ml-2" 53 + className="ml-2 flex-1" 54 54 > 55 55 <Text>Next</Text> 56 56 </Button>
+19 -19
apps/amethyst/app/onboarding/imageSelectionPage.tsx
··· 1 - import React, { useState } from 'react'; 2 - import { View, Pressable, Image, ActivityIndicator } from 'react-native'; 3 - import { Text } from '@/components/ui/text'; 4 - import { Button } from '@/components/ui/button'; 5 - import * as ImagePicker from 'expo-image-picker'; 6 - import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; 7 - import { Icon } from '@/lib/icons/iconWithClassName'; 8 - import { Pen } from 'lucide-react-native'; 1 + import React, { useState } from "react"; 2 + import { ActivityIndicator, Image, Pressable, View } from "react-native"; 3 + import * as ImagePicker from "expo-image-picker"; 4 + import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; 5 + import { Button } from "@/components/ui/button"; 6 + import { Text } from "@/components/ui/text"; 7 + import { Icon } from "@/lib/icons/iconWithClassName"; 8 + import { Pen } from "lucide-react-native"; 9 9 10 10 interface ImageSelectionPageProps { 11 11 onComplete: (avatarUri: string, bannerUri: string) => void; ··· 18 18 initialAvatar, 19 19 initialBanner, 20 20 }) => { 21 - const [avatarUri, setAvatarUri] = useState(initialAvatar || ''); 22 - const [bannerUri, setBannerUri] = useState(initialBanner || ''); 21 + const [avatarUri, setAvatarUri] = useState(initialAvatar || ""); 22 + const [bannerUri, setBannerUri] = useState(initialBanner || ""); 23 23 const [loading, setLoading] = useState(false); 24 24 25 25 const pickImage = async ( ··· 27 27 ) => { 28 28 setLoading(true); 29 29 let result = await ImagePicker.launchImageLibraryAsync({ 30 - mediaTypes: ['images'], 30 + mediaTypes: ["images"], 31 31 allowsEditing: true, 32 32 aspect: setType === setAvatarUri ? [1, 1] : [3, 1], 33 33 quality: 1, ··· 45 45 }; 46 46 47 47 return ( 48 - <View className="flex-1 justify-center items-center h-screen min-h-full px-5"> 49 - <Text className="text-2xl font-bold mb-5 text-center"> 48 + <View className="h-screen min-h-full flex-1 items-center justify-center px-5"> 49 + <Text className="mb-5 text-center text-2xl font-bold"> 50 50 What do you look like? 51 51 </Text> 52 52 <Pressable 53 53 onPress={() => pickImage(setBannerUri)} 54 - className="w-full aspect-[3/1] mb-5" 54 + className="mb-5 aspect-[3/1] w-full" 55 55 > 56 - <View className="flex-1 bg-gray-200 rounded-lg justify-center items-center relative"> 56 + <View className="relative flex-1 items-center justify-center rounded-lg bg-gray-200"> 57 57 {loading && !bannerUri && <ActivityIndicator />} 58 58 {bannerUri ? ( 59 59 <> 60 60 <Image 61 61 source={{ uri: bannerUri }} 62 - className="w-full h-full rounded-lg object-cover" 62 + className="h-full w-full rounded-lg object-cover" 63 63 /> 64 - <View className="absolute -bottom-2 -right-2 bg-gray-500/50 rounded-full p-1"> 64 + <View className="absolute -bottom-2 -right-2 rounded-full bg-gray-500/50 p-1"> 65 65 <Icon icon={Pen} size={18} className="fill-white" /> 66 66 </View> 67 67 </> ··· 73 73 <Pressable onPress={() => pickImage(setAvatarUri)} className="mb-10"> 74 74 <View className="relative"> 75 75 {loading && !avatarUri && <ActivityIndicator />} 76 - <Avatar className="w-24 h-24" alt="User Avatar"> 76 + <Avatar className="h-24 w-24" alt="User Avatar"> 77 77 {avatarUri ? ( 78 78 <> 79 79 <AvatarImage source={{ uri: avatarUri }} /> 80 - <View className="absolute bottom-0 right-0 bg-gray-500/50 rounded-full p-1"> 80 + <View className="absolute bottom-0 right-0 rounded-full bg-gray-500/50 p-1"> 81 81 <Icon icon={Pen} size={18} className="fill-white" /> 82 82 </View> 83 83 </>
+45 -43
apps/amethyst/app/onboarding/index.tsx
··· 1 - import React, { useState } from 'react'; 2 - import { ActivityIndicator, View } from 'react-native'; 3 - import { Text } from '@/components/ui/text'; // Your UI components 4 - import ImageSelectionPage from './imageSelectionPage'; // Separate page components 5 - import DisplayNamePage from './displayNamePage'; 6 - import DescriptionPage from './descriptionPage'; 7 - import { SafeAreaView } from 'react-native-safe-area-context'; 8 - import ProgressDots from '@/components/onboarding/progressDots'; 1 + import React, { useState } from "react"; 2 + import { ActivityIndicator, View } from "react-native"; 3 + import { SafeAreaView } from "react-native-safe-area-context"; 4 + import { useRouter } from "expo-router"; 5 + import ProgressDots from "@/components/onboarding/progressDots"; 6 + import { Text } from "@/components/ui/text"; // Your UI components 9 7 10 - import { Record as ProfileRecord } from '@teal/lexicons/src/types/fm/teal/alpha/actor/profile'; 11 - import { useStore } from '@/stores/mainStore'; 12 - import { useRouter } from 'expo-router'; 8 + import { useStore } from "@/stores/mainStore"; 9 + 10 + import { Record as ProfileRecord } from "@teal/lexicons/src/types/fm/teal/alpha/actor/profile"; 11 + 12 + import DescriptionPage from "./descriptionPage"; 13 + import DisplayNamePage from "./displayNamePage"; 14 + import ImageSelectionPage from "./imageSelectionPage"; // Separate page components 13 15 14 16 const OnboardingSubmissionSteps: string[] = [ 15 - '', 16 - 'Double checking everything', 17 - 'Submitting Profile Picture', 18 - 'Submitting Header Image', 19 - 'Submitting Profile', 20 - 'Done!', 17 + "", 18 + "Double checking everything", 19 + "Submitting Profile Picture", 20 + "Submitting Header Image", 21 + "Submitting Profile", 22 + "Done!", 21 23 ]; 22 24 23 25 export default function OnboardingPage() { 24 26 const [step, setStep] = useState(1); 25 - const [displayName, setDisplayName] = useState(''); 26 - const [description, setDescription] = useState(''); 27 - const [avatarUri, setAvatarUri] = useState(''); 28 - const [bannerUri, setBannerUri] = useState(''); 27 + const [displayName, setDisplayName] = useState(""); 28 + const [description, setDescription] = useState(""); 29 + const [avatarUri, setAvatarUri] = useState(""); 30 + const [bannerUri, setBannerUri] = useState(""); 29 31 30 32 const [submissionStep, setSubmissionStep] = useState(0); 31 - const [submissionError, setSubmissionError] = useState(''); 33 + const [submissionError, setSubmissionError] = useState(""); 32 34 33 35 const router = useRouter(); 34 36 ··· 58 60 ) => { 59 61 if (!agent) return; 60 62 // Implement your save logic here (e.g., update your database or state) 61 - console.log('Saving profile:', updatedProfile, newAvatarUri, newBannerUri); 63 + console.log("Saving profile:", updatedProfile, newAvatarUri, newBannerUri); 62 64 63 65 setSubmissionStep(1); 64 66 ··· 66 68 let currentUser: ProfileRecord | undefined; 67 69 let cid: string | undefined; 68 70 try { 69 - const res = await agent.call('com.atproto.repo.getRecord', { 71 + const res = await agent.call("com.atproto.repo.getRecord", { 70 72 repo: agent.did, 71 - collection: 'fm.teal.alpha.actor.profile', 72 - rkey: 'self', 73 + collection: "fm.teal.alpha.actor.profile", 74 + rkey: "self", 73 75 }); 74 76 currentUser = res.data.value; 75 77 cid = res.data.cid; 76 78 } catch (error) { 77 - console.error('Error fetching user profile:', error); 79 + console.error("Error fetching user profile:", error); 78 80 } 79 81 80 82 // upload blobs if necessary ··· 83 85 if (newAvatarUri) { 84 86 console.log(newAvatarUri); 85 87 // if it is http/s url then do nothing 86 - if (!newAvatarUri.startsWith('http')) { 88 + if (!newAvatarUri.startsWith("http")) { 87 89 setSubmissionStep(2); 88 - console.log('Uploading avatar'); 90 + console.log("Uploading avatar"); 89 91 // its a b64 encoded data uri, decode it and get a blob 90 92 const data = await fetch(newAvatarUri).then((r) => r.blob()); 91 - const fileType = newAvatarUri.split(';')[0].split(':')[1]; 93 + const fileType = newAvatarUri.split(";")[0].split(":")[1]; 92 94 console.log(fileType); 93 95 const blob = new Blob([data], { type: fileType }); 94 96 newAvatarBlob = (await agent.uploadBlob(blob)).data.blob; 95 97 } 96 98 } 97 99 if (newBannerUri) { 98 - if (!newBannerUri.startsWith('http')) { 100 + if (!newBannerUri.startsWith("http")) { 99 101 setSubmissionStep(3); 100 - console.log('Uploading banner'); 102 + console.log("Uploading banner"); 101 103 const data = await fetch(newBannerUri).then((r) => r.blob()); 102 - const fileType = newBannerUri.split(';')[0].split(':')[1]; 104 + const fileType = newBannerUri.split(";")[0].split(":")[1]; 103 105 console.log(fileType); 104 106 const blob = new Blob([data], { type: fileType }); 105 107 newBannerBlob = (await agent.uploadBlob(blob)).data.blob; 106 108 } 107 109 } 108 110 109 - console.log('done uploading'); 111 + console.log("done uploading"); 110 112 111 113 setSubmissionStep(4); 112 114 ··· 121 123 122 124 if (cid) { 123 125 post = await agent.call( 124 - 'com.atproto.repo.putRecord', 126 + "com.atproto.repo.putRecord", 125 127 {}, 126 128 { 127 129 repo: agent.did, 128 - collection: 'fm.teal.alpha.actor.profile', 129 - rkey: 'self', 130 + collection: "fm.teal.alpha.actor.profile", 131 + rkey: "self", 130 132 record, 131 133 swapRecord: cid, 132 134 }, 133 135 ); 134 136 } else { 135 137 post = await agent.call( 136 - 'com.atproto.repo.createRecord', 138 + "com.atproto.repo.createRecord", 137 139 {}, 138 140 { 139 141 repo: agent.did, 140 - collection: 'fm.teal.alpha.actor.profile', 141 - rkey: 'self', 142 + collection: "fm.teal.alpha.actor.profile", 143 + rkey: "self", 142 144 record, 143 145 }, 144 146 ); ··· 148 150 setSubmissionStep(5); 149 151 //redirect to / after 2 seconds 150 152 setTimeout(() => { 151 - router.replace('/'); 153 + router.replace("/"); 152 154 }, 2000); 153 155 }; 154 156 ··· 170 172 171 173 if (submissionStep) { 172 174 return ( 173 - <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}> 175 + <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}> 174 176 <ActivityIndicator size="large" color="#0000ff" /> 175 177 <Text>{OnboardingSubmissionSteps[submissionStep]}</Text> 176 178 </View> ··· 210 212 211 213 return ( 212 214 <SafeAreaView className="flex-1 p-5 pt-5"> 213 - <View className="flex-1 flex min-h-max h-full">{renderPage()}</View> 215 + <View className="flex h-full min-h-max flex-1">{renderPage()}</View> 214 216 <ProgressDots totalSteps={3} currentStep={step} /> 215 217 </SafeAreaView> 216 218 );
+1 -1
apps/amethyst/components.json
··· 3 3 "components": "~/components", 4 4 "lib": "~/lib" 5 5 } 6 - } 6 + }
+2 -2
apps/amethyst/components/ExternalLink.tsx
··· 1 + import React from "react"; 2 + import { Platform } from "react-native"; 1 3 import { Link } from "expo-router"; 2 4 import * as WebBrowser from "expo-web-browser"; 3 - import React from "react"; 4 - import { Platform } from "react-native"; 5 5 6 6 export function ExternalLink( 7 7 props: Omit<React.ComponentProps<typeof Link>, "href"> & { href: string },
+3 -3
apps/amethyst/components/__tests__/StyledText-test.js
··· 1 - import * as React from 'react'; 2 - import renderer from 'react-test-renderer'; 1 + import * as React from "react"; 2 + import renderer from "react-test-renderer"; 3 3 4 - import { MonoText } from '../StyledText'; 4 + import { MonoText } from "../StyledText"; 5 5 6 6 it(`renders correctly`, () => { 7 7 const tree = renderer.create(<MonoText>Snapshot test!</MonoText>).toJSON();
+56 -56
apps/amethyst/components/actor/actorView.tsx
··· 1 - import { View, Image } from 'react-native'; 2 - import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; 3 - import { CardTitle } from '../../components/ui/card'; 4 - import { Text } from '@/components/ui/text'; 5 - import { useStore } from '@/stores/mainStore'; 1 + import { useEffect, useState } from "react"; 2 + import { Image, View } from "react-native"; 3 + import ActorPlaysView from "@/components/play/actorPlaysView"; 4 + import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; 5 + import { Button } from "@/components/ui/button"; 6 + import { Text } from "@/components/ui/text"; 7 + import getImageCdnLink from "@/lib/atp/getImageCdnLink"; 8 + import { Icon } from "@/lib/icons/iconWithClassName"; 9 + import { useStore } from "@/stores/mainStore"; 10 + import { Agent } from "@atproto/api"; 11 + import { MoreHorizontal, Pen, Plus } from "lucide-react-native"; 6 12 7 - import ActorPlaysView from '@/components/play/actorPlaysView'; 8 - import { Button } from '@/components/ui/button'; 9 - import { Icon } from '@/lib/icons/iconWithClassName'; 10 - import { MoreHorizontal, Pen, Plus } from 'lucide-react-native'; 11 - import { Agent } from '@atproto/api'; 12 - import { useState, useEffect } from 'react'; 13 - import EditProfileModal from './editProfileView'; 13 + import { OutputSchema as GetProfileOutputSchema } from "@teal/lexicons/src/types/fm/teal/alpha/actor/getProfile"; 14 + import { Record as ProfileRecord } from "@teal/lexicons/src/types/fm/teal/alpha/actor/profile"; 14 15 15 - import { Record as ProfileRecord } from '@teal/lexicons/src/types/fm/teal/alpha/actor/profile'; 16 - import { OutputSchema as GetProfileOutputSchema } from '@teal/lexicons/src/types/fm/teal/alpha/actor/getProfile'; 17 - import getImageCdnLink from '@/lib/atp/getImageCdnLink'; 16 + import { CardTitle } from "../../components/ui/card"; 17 + import EditProfileModal from "./editProfileView"; 18 18 19 19 const GITHUB_AVATAR_URI = 20 - 'https://i.pinimg.com/originals/ef/a2/8d/efa28d18a04e7fa40ed49eeb0ab660db.jpg'; 20 + "https://i.pinimg.com/originals/ef/a2/8d/efa28d18a04e7fa40ed49eeb0ab660db.jpg"; 21 21 22 22 export interface ActorViewProps { 23 23 actorDid: string; ··· 27 27 export default function ActorView({ actorDid, pdsAgent }: ActorViewProps) { 28 28 const [isEditing, setIsEditing] = useState(false); 29 29 const [profile, setProfile] = useState< 30 - GetProfileOutputSchema['actor'] | null 30 + GetProfileOutputSchema["actor"] | null 31 31 >(null); 32 32 33 33 const tealDid = useStore((state) => state.tealDid); ··· 41 41 } 42 42 try { 43 43 let res = await pdsAgent.call( 44 - 'fm.teal.alpha.actor.getProfile', 44 + "fm.teal.alpha.actor.getProfile", 45 45 { actor: actorDid }, 46 46 {}, 47 - { headers: { 'atproto-proxy': tealDid + '#teal_fm_appview' } }, 47 + { headers: { "atproto-proxy": tealDid + "#teal_fm_appview" } }, 48 48 ); 49 49 if (isMounted) { 50 - setProfile(res.data['actor'] as GetProfileOutputSchema['actor']); 50 + setProfile(res.data["actor"] as GetProfileOutputSchema["actor"]); 51 51 } 52 52 } catch (error) { 53 - console.error('Error fetching profile:', error); 53 + console.error("Error fetching profile:", error); 54 54 } 55 55 }; 56 56 ··· 61 61 }; 62 62 }, [pdsAgent, actorDid, tealDid]); 63 63 64 - const isSelf = actorDid === (pdsAgent?.did || ''); 64 + const isSelf = actorDid === (pdsAgent?.did || ""); 65 65 66 66 const handleSave = async ( 67 67 updatedProfile: { displayName: any; description: any }, ··· 72 72 return; 73 73 } 74 74 // Implement your save logic here (e.g., update your database or state) 75 - console.log('Saving profile:', updatedProfile, newAvatarUri, newBannerUri); 75 + console.log("Saving profile:", updatedProfile, newAvatarUri, newBannerUri); 76 76 77 77 // Update the local profile data 78 78 setProfile((prevProfile) => ({ ··· 87 87 let currentUser: ProfileRecord | undefined; 88 88 let cid: string | undefined; 89 89 try { 90 - const res = await pdsAgent.call('com.atproto.repo.getRecord', { 90 + const res = await pdsAgent.call("com.atproto.repo.getRecord", { 91 91 repo: pdsAgent.did, 92 - collection: 'fm.teal.alpha.actor.profile', 93 - rkey: 'self', 92 + collection: "fm.teal.alpha.actor.profile", 93 + rkey: "self", 94 94 }); 95 95 currentUser = res.data.value; 96 96 cid = res.data.cid; 97 97 } catch (error) { 98 - console.error('Error fetching user profile:', error); 98 + console.error("Error fetching user profile:", error); 99 99 } 100 100 101 101 // upload blobs if necessary ··· 103 103 let newBannerBlob = currentUser?.banner ?? undefined; 104 104 if (newAvatarUri) { 105 105 // if it is http/s url then do nothing 106 - if (!newAvatarUri.startsWith('http')) { 107 - console.log('Uploading avatar'); 106 + if (!newAvatarUri.startsWith("http")) { 107 + console.log("Uploading avatar"); 108 108 // its a b64 encoded data uri, decode it and get a blob 109 109 const data = await fetch(newAvatarUri).then((r) => r.blob()); 110 - const fileType = newAvatarUri.split(';')[0].split(':')[1]; 110 + const fileType = newAvatarUri.split(";")[0].split(":")[1]; 111 111 console.log(fileType); 112 112 const blob = new Blob([data], { type: fileType }); 113 113 newAvatarBlob = (await pdsAgent.uploadBlob(blob)).data.blob; 114 114 } 115 115 } 116 116 if (newBannerUri) { 117 - if (!newBannerUri.startsWith('http')) { 118 - console.log('Uploading banner'); 117 + if (!newBannerUri.startsWith("http")) { 118 + console.log("Uploading banner"); 119 119 const data = await fetch(newBannerUri).then((r) => r.blob()); 120 - const fileType = newBannerUri.split(';')[0].split(':')[1]; 120 + const fileType = newBannerUri.split(";")[0].split(":")[1]; 121 121 console.log(fileType); 122 122 const blob = new Blob([data], { type: fileType }); 123 123 newBannerBlob = (await pdsAgent.uploadBlob(blob)).data.blob; 124 124 } 125 125 } 126 126 127 - console.log('done uploading'); 127 + console.log("done uploading"); 128 128 129 129 let record: ProfileRecord = { 130 130 displayName: updatedProfile.displayName, ··· 137 137 138 138 if (cid) { 139 139 post = await pdsAgent.call( 140 - 'com.atproto.repo.putRecord', 140 + "com.atproto.repo.putRecord", 141 141 {}, 142 142 { 143 143 repo: pdsAgent.did, 144 - collection: 'fm.teal.alpha.actor.profile', 145 - rkey: 'self', 144 + collection: "fm.teal.alpha.actor.profile", 145 + rkey: "self", 146 146 record, 147 147 swapRecord: cid, 148 148 }, 149 149 ); 150 150 } else { 151 151 post = await pdsAgent.call( 152 - 'com.atproto.repo.createRecord', 152 + "com.atproto.repo.createRecord", 153 153 {}, 154 154 { 155 155 repo: pdsAgent.did, 156 - collection: 'fm.teal.alpha.actor.profile', 157 - rkey: 'self', 156 + collection: "fm.teal.alpha.actor.profile", 157 + rkey: "self", 158 158 record, 159 159 }, 160 160 ); ··· 171 171 <> 172 172 {profile.banner ? ( 173 173 <Image 174 - className="w-full max-w-[100vh] h-32 md:h-44 scale-[1.32] rounded-xl -mb-6" 174 + className="-mb-6 h-32 w-full max-w-[100vh] scale-[1.32] rounded-xl md:h-44" 175 175 source={{ 176 176 uri: 177 177 getImageCdnLink({ did: profile.did!, hash: profile.banner }) ?? ··· 179 179 }} 180 180 /> 181 181 ) : ( 182 - <View className="w-full max-w-[100vh] h-32 md:h-44 scale-[1.32] rounded-xl -mb-6 bg-background" /> 182 + <View className="-mb-6 h-32 w-full max-w-[100vh] scale-[1.32] rounded-xl bg-background md:h-44" /> 183 183 )} 184 - <View className="flex flex-col items-left justify-start text-left max-w-2xl w-screen gap-1 p-4 px-8"> 185 - <View className="flex flex-row justify-between items-center"> 184 + <View className="items-left flex w-screen max-w-2xl flex-col justify-start gap-1 p-4 px-8 text-left"> 185 + <View className="flex flex-row items-center justify-between"> 186 186 <View className="flex justify-between"> 187 - <Avatar alt="Rick Sanchez's Avatar" className="w-24 h-24"> 187 + <Avatar alt="Rick Sanchez's Avatar" className="h-24 w-24"> 188 188 <AvatarImage 189 189 source={{ 190 190 uri: ··· 197 197 }} 198 198 /> 199 199 <AvatarFallback> 200 - <Text>{profile.displayName?.substring(0, 1) ?? 'R'}</Text> 200 + <Text>{profile.displayName?.substring(0, 1) ?? "R"}</Text> 201 201 </AvatarFallback> 202 202 </Avatar> 203 - <CardTitle className="text-left flex w-full justify-between mt-2"> 204 - {profile.displayName ?? ' Richard'} 203 + <CardTitle className="mt-2 flex w-full justify-between text-left"> 204 + {profile.displayName ?? " Richard"} 205 205 </CardTitle> 206 206 </View> 207 207 <View className="mt-2 flex-row gap-2"> ··· 209 209 <Button 210 210 variant="outline" 211 211 size="sm" 212 - className="rounded-xl flex-row gap-2 justify-center items-center" 212 + className="flex-row items-center justify-center gap-2 rounded-xl" 213 213 onPress={() => setIsEditing(true)} 214 214 > 215 215 <Icon icon={Pen} size={18} /> ··· 219 219 <Button 220 220 variant="outline" 221 221 size="sm" 222 - className="rounded-xl flex-row gap-2 justify-center items-center" 222 + className="flex-row items-center justify-center gap-2 rounded-xl" 223 223 > 224 224 <Icon icon={Plus} size={18} /> 225 225 <Text>Follow</Text> ··· 228 228 <Button 229 229 variant="outline" 230 230 size="sm" 231 - className="text-white aspect-square p-0 rounded-full flex flex-row gap-2 justify-center items-center" 231 + className="flex aspect-square flex-row items-center justify-center gap-2 rounded-full p-0 text-white" 232 232 > 233 233 <Icon icon={MoreHorizontal} size={18} /> 234 234 </Button> ··· 236 236 </View> 237 237 <View> 238 238 {profile 239 - ? profile.description?.split('\n').map((str, i) => ( 239 + ? profile.description?.split("\n").map((str, i) => ( 240 240 <Text 241 - className="text-start self-start place-self-start" 241 + className="place-self-start self-start text-start" 242 242 key={i} 243 243 > 244 244 {str} 245 245 </Text> 246 246 )) || <Text>'A very mysterious person'</Text> 247 - : 'Loading...'} 247 + : "Loading..."} 248 248 </View> 249 249 </View> 250 - <View className="max-w-2xl w-full gap-4 py-4 pl-8"> 251 - <Text className="text-left text-2xl border-b border-b-muted-foreground/30 -ml-2 pl-2 mr-6"> 250 + <View className="w-full max-w-2xl gap-4 py-4 pl-8"> 251 + <Text className="-ml-2 mr-6 border-b border-b-muted-foreground/30 pl-2 text-left text-2xl"> 252 252 Stamps 253 253 </Text> 254 254 <ActorPlaysView repo={actorDid} pdsAgent={pdsAgent} />
+41 -40
apps/amethyst/components/actor/editProfileView.tsx
··· 1 - import * as React from 'react'; 2 - import { useState } from 'react'; 1 + import * as React from "react"; 2 + import { useState } from "react"; 3 3 import { 4 + ActivityIndicator, 5 + Image, 4 6 Modal, 5 7 Pressable, 6 - View, 7 - Image, 8 - ActivityIndicator, 9 8 Touchable, 10 9 TouchableWithoutFeedback, 11 - } from 'react-native'; 12 - import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; 13 - import { Text } from '@/components/ui/text'; 14 - import { Button } from '@/components/ui/button'; 15 - import * as ImagePicker from 'expo-image-picker'; 16 - import { Card } from '../ui/card'; 17 - import { Input } from '../ui/input'; 18 - import { Textarea } from '../ui/textarea'; 19 - import { cn } from '@/lib/utils'; 20 - import { useOnEscape } from '@/hooks/useOnEscape'; 21 - import { Icon } from '@/lib/icons/iconWithClassName'; 22 - import { Pen } from 'lucide-react-native'; 23 - import getImageCdnLink from '@/lib/atp/getImageCdnLink'; 10 + View, 11 + } from "react-native"; 12 + import * as ImagePicker from "expo-image-picker"; 13 + import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; 14 + import { Button } from "@/components/ui/button"; 15 + import { Text } from "@/components/ui/text"; 16 + import { useOnEscape } from "@/hooks/useOnEscape"; 17 + import getImageCdnLink from "@/lib/atp/getImageCdnLink"; 18 + import { Icon } from "@/lib/icons/iconWithClassName"; 19 + import { cn } from "@/lib/utils"; 20 + import { Pen } from "lucide-react-native"; 21 + 22 + import { Card } from "../ui/card"; 23 + import { Input } from "../ui/input"; 24 + import { Textarea } from "../ui/textarea"; 24 25 25 26 const GITHUB_AVATAR_URI = 26 - 'https://i.pinimg.com/originals/ef/a2/8d/efa28d18a04e7fa40ed49eeb0ab660db.jpg'; 27 + "https://i.pinimg.com/originals/ef/a2/8d/efa28d18a04e7fa40ed49eeb0ab660db.jpg"; 27 28 28 29 export interface EditProfileModalProps { 29 30 isVisible: boolean; ··· 49 50 setLoading(true); // Start loading 50 51 51 52 let result = await ImagePicker.launchImageLibraryAsync({ 52 - mediaTypes: ['images'], 53 + mediaTypes: ["images"], 53 54 allowsEditing: true, 54 55 aspect: setType === setAvatarUri ? [1, 1] : [3, 1], 55 56 quality: 1, ··· 71 72 72 73 if (!profile) { 73 74 return ( 74 - <View className="flex-1 justify-center items-center gap-5 p-6 bg-background"> 75 + <View className="flex-1 items-center justify-center gap-5 bg-background p-6"> 75 76 <ActivityIndicator size="large" /> 76 77 </View> 77 78 ); ··· 80 81 return ( 81 82 <Modal animationType="fade" transparent={true} visible={isVisible}> 82 83 <TouchableWithoutFeedback onPress={() => onClose()}> 83 - <View className="flex-1 justify-center items-center bg-black/50 backdrop-blur"> 84 + <View className="flex-1 items-center justify-center bg-black/50 backdrop-blur"> 84 85 <TouchableWithoutFeedback> 85 - <Card className="bg-card rounded-lg p-4 w-11/12 max-w-md"> 86 - <Text className="text-xl font-bold mb-4">Edit Profile</Text> 86 + <Card className="w-11/12 max-w-md rounded-lg bg-card p-4"> 87 + <Text className="mb-4 text-xl font-bold">Edit Profile</Text> 87 88 <Pressable onPress={() => pickImage(setBannerUri)}> 88 89 {loading && !bannerUri && <ActivityIndicator />} 89 90 {bannerUri ? ( 90 - <View className="relative group"> 91 + <View className="group relative"> 91 92 <Image 92 93 source={{ 93 - uri: bannerUri?.includes(';') 94 + uri: bannerUri?.includes(";") 94 95 ? bannerUri 95 96 : getImageCdnLink({ 96 97 did: editedProfile.did, 97 98 hash: bannerUri, 98 99 }), 99 100 }} 100 - className="w-full h-24 rounded-lg" 101 + className="h-24 w-full rounded-lg" 101 102 /> 102 - <View className="absolute -right-2 -bottom-2 rounded-full bg-muted/70 group-hover:bg-muted/90 text-foreground transition-colors duration-300 border border-border p-1"> 103 + <View className="absolute -bottom-2 -right-2 rounded-full border border-border bg-muted/70 p-1 text-foreground transition-colors duration-300 group-hover:bg-muted/90"> 103 104 <Icon icon={Pen} size={18} className="fill-muted" /> 104 105 </View> 105 106 </View> 106 107 ) : ( 107 - <View className="w-full max-w-[100vh] h-32 md:h-44 rounded-xl -mb-6 bg-muted" /> 108 + <View className="-mb-6 h-32 w-full max-w-[100vh] rounded-xl bg-muted md:h-44" /> 108 109 )} 109 110 </Pressable> 110 111 111 112 <Pressable 112 113 onPress={() => pickImage(setAvatarUri)} 113 - className={cn('mb-4 relative group', bannerUri && 'pl-4 -mt-8')} 114 + className={cn("group relative mb-4", bannerUri && "-mt-8 pl-4")} 114 115 > 115 116 {loading && !avatarUri && <ActivityIndicator />} 116 - <View className="relative group w-min"> 117 + <View className="group relative w-min"> 117 118 <Avatar 118 - className="w-20 h-20" 119 - alt={`Avatar for ${editedProfile?.displayName ?? 'User'}`} 119 + className="h-20 w-20" 120 + alt={`Avatar for ${editedProfile?.displayName ?? "User"}`} 120 121 > 121 122 <AvatarImage 122 123 source={{ 123 - uri: avatarUri?.includes(';') 124 + uri: avatarUri?.includes(";") 124 125 ? avatarUri 125 126 : getImageCdnLink({ 126 127 did: editedProfile.did, ··· 130 131 /> 131 132 <AvatarFallback> 132 133 <Text> 133 - {editedProfile?.displayName?.substring(0, 1) ?? 'R'} 134 + {editedProfile?.displayName?.substring(0, 1) ?? "R"} 134 135 </Text> 135 136 </AvatarFallback> 136 137 </Avatar> 137 - <View className="absolute right-0 bottom-0 rounded-full bg-muted/70 group-hover:bg-muted/90 text-foreground transition-colors duration-300 border border-border p-1"> 138 + <View className="absolute bottom-0 right-0 rounded-full border border-border bg-muted/70 p-1 text-foreground transition-colors duration-300 group-hover:bg-muted/90"> 138 139 <Icon icon={Pen} size={18} className="fill-muted" /> 139 140 </View> 140 141 </View> 141 142 </Pressable> 142 143 143 - <Text className="text-sm font-semibold text-muted-foreground pl-1"> 144 + <Text className="pl-1 text-sm font-semibold text-muted-foreground"> 144 145 Display Name 145 146 </Text> 146 147 <Input 147 - className="border border-gray-300 rounded px-3 py-2 mb-4" 148 + className="mb-4 rounded border border-gray-300 px-3 py-2" 148 149 placeholder="Display Name" 149 150 value={editedProfile.displayName} 150 151 onChangeText={(text) => 151 152 setEditedProfile({ ...editedProfile, displayName: text }) 152 153 } 153 154 /> 154 - <Text className="text-sm font-semibold text-muted-foreground pl-1"> 155 + <Text className="pl-1 text-sm font-semibold text-muted-foreground"> 155 156 Description 156 157 </Text> 157 158 <Textarea 158 - className="border border-gray-300 rounded px-3 py-2 mb-4" 159 + className="mb-4 rounded border border-gray-300 px-3 py-2" 159 160 placeholder="Description" 160 161 multiline 161 162 value={editedProfile.description}
+4 -10
apps/amethyst/components/onboarding/progressDots.tsx
··· 1 - import React from 'react'; 2 - import { View } from 'react-native'; 1 + import React from "react"; 2 + import { View } from "react-native"; 3 3 4 4 interface ProgressDotsProps { 5 5 totalSteps: number; ··· 17 17 dots.push( 18 18 <View 19 19 key={i} 20 - className={` 21 - w-4 22 - h-4 23 - rounded-full 24 - m-2 25 - ${isActive ? `bg-accent` : `bg-muted`} 26 - `} 20 + className={`m-2 h-4 w-4 rounded-full ${isActive ? `bg-accent` : `bg-muted`} `} 27 21 />, 28 22 ); 29 23 } 30 24 31 - return <View className="flex-row justify-center items-center">{dots}</View>; 25 + return <View className="flex-row items-center justify-center">{dots}</View>; 32 26 }; 33 27 34 28 export default ProgressDots;
+5 -5
apps/amethyst/components/play/playView.tsx
··· 1 - import { View, Image } from "react-native"; 1 + import { Image, View } from "react-native"; 2 2 import { Text } from "@/components/ui/text"; 3 3 import { timeAgo } from "@/lib/utils"; 4 4 ··· 14 14 dateListened?: Date; 15 15 }) { 16 16 return ( 17 - <View className="flex flex-row gap-2 max-w-full"> 17 + <View className="flex max-w-full flex-row gap-2"> 18 18 <Image 19 - className="w-16 h-16 rounded-lg bg-gray-500/50" 19 + className="h-16 w-16 rounded-lg bg-gray-500/50" 20 20 source={{ 21 21 uri: 22 22 releaseMbid && 23 23 `https://coverartarchive.org/release/${releaseMbid}/front-250`, 24 24 }} 25 25 /> 26 - <View className="shrink flex flex-col justify-center"> 27 - <Text className=" text-foreground line-clamp-1 overflow-ellipsis -mt-0.5"> 26 + <View className="flex shrink flex-col justify-center"> 27 + <Text className="-mt-0.5 line-clamp-1 overflow-ellipsis text-foreground"> 28 28 {trackTitle} 29 29 </Text> 30 30 {artistName && (
+3 -3
apps/amethyst/components/play/verticalPlayView.tsx
··· 1 - import { View, Image } from "react-native"; 1 + import { Image, View } from "react-native"; 2 2 import { Text } from "@/components/ui/text"; 3 3 import { cn } from "@/lib/utils"; // Assuming you have a utils file with cn function like in shadcn 4 4 ··· 64 64 <Text 65 65 className={cn( 66 66 secondaryTextSizes[size], 67 - "text-muted-foreground text-center", 67 + "text-center text-muted-foreground", 68 68 )} 69 69 > 70 70 {artistName} ··· 74 74 <Text 75 75 className={cn( 76 76 secondaryTextSizes[size], 77 - "text-muted-foreground text-center", 77 + "text-center text-muted-foreground", 78 78 )} 79 79 > 80 80 {releaseTitle}
+1 -1
apps/amethyst/components/toggleTheme.tsx
··· 1 - import { useColorScheme } from "nativewind"; 2 1 import { Text } from "@/components/ui/text"; 2 + import { useColorScheme } from "nativewind"; 3 3 4 4 export default function ToggleTheme() { 5 5 const { colorScheme, setColorScheme } = useColorScheme();
+9 -9
apps/amethyst/components/ui/ago.tsx
··· 1 - import { Text } from './text'; 1 + import { Text } from "./text"; 2 2 3 3 const Ago = ({ time }: { time: Date }) => { 4 4 return ( 5 - <Text className="text-gray-500 text-sm">{timeAgoSinceDate(time)}</Text> 5 + <Text className="text-sm text-gray-500">{timeAgoSinceDate(time)}</Text> 6 6 ); 7 7 }; 8 8 ··· 27 27 const days = Math.floor(hours / 24); 28 28 29 29 if (seconds < 5) { 30 - return 'Just now'; 30 + return "Just now"; 31 31 } else if (seconds <= 60) { 32 32 return `${seconds} seconds ago`; 33 33 } else if (minutes <= 1) { 34 - return numericDates ? '1 minute ago' : 'A minute ago'; 34 + return numericDates ? "1 minute ago" : "A minute ago"; 35 35 } else if (minutes <= 60) { 36 36 return `${minutes} minutes ago`; 37 37 } else if (hours <= 1) { 38 - return numericDates ? '1 hour ago' : 'An hour ago'; 38 + return numericDates ? "1 hour ago" : "An hour ago"; 39 39 } else if (hours <= 60) { 40 40 return `${hours} hours ago`; 41 41 } else if (days <= 1) { 42 - return numericDates ? '1 day ago' : 'Yesterday'; 42 + return numericDates ? "1 day ago" : "Yesterday"; 43 43 } else if (days <= 6) { 44 44 return `${days} days ago`; 45 45 } else if (Math.ceil(days / 7) <= 1) { 46 - return numericDates ? '1 week ago' : 'Last week'; 46 + return numericDates ? "1 week ago" : "Last week"; 47 47 } else if (Math.ceil(days / 7) <= 4) { 48 48 return `${Math.ceil(days / 7)} weeks ago`; 49 49 } else if (Math.ceil(days / 30) <= 1) { 50 - return numericDates ? '1 month ago' : 'Last month'; 50 + return numericDates ? "1 month ago" : "Last month"; 51 51 } else if (Math.ceil(days / 30) <= 30) { 52 52 return `${Math.ceil(days / 30)} months ago`; 53 53 } else if (Math.ceil(days / 365) <= 1) { 54 - return numericDates ? '1 year ago' : 'Last year'; 54 + return numericDates ? "1 year ago" : "Last year"; 55 55 } else { 56 56 return `${Math.floor(days / 365)} years ago`; 57 57 }
+2 -1
apps/amethyst/components/ui/avatar.tsx
··· 1 + import * as React from "react"; 1 2 import * as AvatarPrimitive from "@rn-primitives/avatar"; 2 - import * as React from "react"; 3 + 3 4 import { cn } from "../../lib/utils"; 4 5 5 6 const AvatarPrimitiveRoot = AvatarPrimitive.Root;
+2 -1
apps/amethyst/components/ui/button.tsx
··· 1 - import { cva, type VariantProps } from "class-variance-authority"; 2 1 import * as React from "react"; 3 2 import { Pressable } from "react-native"; 3 + import { cva, type VariantProps } from "class-variance-authority"; 4 + 4 5 import { TextClassContext } from "../../components/ui/text"; 5 6 import { cn } from "../../lib/utils"; 6 7
+4 -3
apps/amethyst/components/ui/card.tsx
··· 1 - import type { TextRef, ViewRef } from "@rn-primitives/types"; 2 1 import * as React from "react"; 3 2 import { TextProps, View, ViewProps } from "react-native"; 4 - import { TextClassContext, Text } from "../../components/ui/text"; 3 + import type { TextRef, ViewRef } from "@rn-primitives/types"; 4 + 5 + import { Text, TextClassContext } from "../../components/ui/text"; 5 6 import { cn } from "../../lib/utils"; 6 7 7 8 const Card = React.forwardRef<ViewRef, ViewProps>( ··· 38 39 aria-level={3} 39 40 ref={ref} 40 41 className={cn( 41 - "text-2xl text-card-foreground font-semibold leading-none tracking-tight", 42 + "text-2xl font-semibold leading-none tracking-tight text-card-foreground", 42 43 className, 43 44 )} 44 45 {...props}
+14 -13
apps/amethyst/components/ui/hover-card.tsx
··· 1 - import * as React from 'react'; 2 - import { Platform, StyleSheet } from 'react-native'; 3 - import Animated, { FadeIn } from 'react-native-reanimated'; 4 - import { TextClassContext } from '../../components/ui/text'; 5 - import * as HoverCardPrimitive from '@rn-primitives/hover-card'; 6 - import { cn } from '../../lib/utils'; 1 + import * as React from "react"; 2 + import { Platform, StyleSheet } from "react-native"; 3 + import Animated, { FadeIn } from "react-native-reanimated"; 4 + import * as HoverCardPrimitive from "@rn-primitives/hover-card"; 5 + 6 + import { TextClassContext } from "../../components/ui/text"; 7 + import { cn } from "../../lib/utils"; 7 8 8 9 const HoverCard = HoverCardPrimitive.Root; 9 10 ··· 12 13 const HoverCardContent = React.forwardRef< 13 14 HoverCardPrimitive.ContentRef, 14 15 HoverCardPrimitive.ContentProps 15 - >(({ className, align = 'center', sideOffset = 4, ...props }, ref) => { 16 + >(({ className, align = "center", sideOffset = 4, ...props }, ref) => { 16 17 const { open } = HoverCardPrimitive.useRootContext(); 17 18 return ( 18 19 <HoverCardPrimitive.Portal> 19 20 <HoverCardPrimitive.Overlay 20 - style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined} 21 + style={Platform.OS !== "web" ? StyleSheet.absoluteFill : undefined} 21 22 > 22 23 <Animated.View entering={FadeIn}> 23 - <TextClassContext.Provider value='text-popover-foreground'> 24 + <TextClassContext.Provider value="text-popover-foreground"> 24 25 <HoverCardPrimitive.Content 25 26 ref={ref} 26 27 align={align} 27 28 sideOffset={sideOffset} 28 29 className={cn( 29 - 'z-50 w-64 rounded-md border border-border bg-popover p-4 shadow-md shadow-foreground/5 web:outline-none web:cursor-auto data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', 30 + "z-50 w-64 rounded-md border border-border bg-popover p-4 shadow-md shadow-foreground/5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 web:cursor-auto web:outline-none", 30 31 open 31 - ? 'web:animate-in web:fade-in-0 web:zoom-in-95' 32 - : 'web:animate-out web:fade-out-0 web:zoom-out-95 ', 33 - className 32 + ? "web:animate-in web:fade-in-0 web:zoom-in-95" 33 + : "web:animate-out web:fade-out-0 web:zoom-out-95", 34 + className, 34 35 )} 35 36 {...props} 36 37 />
+3 -2
apps/amethyst/components/ui/input.tsx
··· 1 1 import * as React from "react"; 2 2 import { TextInput, type TextInputProps } from "react-native"; 3 + 3 4 import { cn } from "../../lib/utils"; 4 - import { TextClassContext, GlobalTextClassContext } from "./text"; 5 + import { GlobalTextClassContext, TextClassContext } from "./text"; 5 6 6 7 const Input = React.forwardRef< 7 8 React.ElementRef<typeof TextInput>, ··· 14 15 ref={ref} 15 16 className={cn( 16 17 gc, 17 - "web:flex h-10 native:h-12 web:w-full rounded-md border border-input bg-background px-3 web:py-2 text-base lg:text-sm native:text-lg native:leading-[1.25] text-foreground placeholder:text-muted-foreground web:ring-offset-background file:border-0 file:bg-transparent file:font-medium web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2", 18 + "native:h-12 native:text-lg native:leading-[1.25] h-10 rounded-md border border-input bg-background px-3 text-base text-foreground file:border-0 file:bg-transparent file:font-medium placeholder:text-muted-foreground web:flex web:w-full web:py-2 web:ring-offset-background web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 lg:text-sm", 18 19 cc, 19 20 props.editable === false && "opacity-50 web:cursor-not-allowed", 20 21 className,
+3 -2
apps/amethyst/components/ui/progress.tsx
··· 1 - import * as ProgressPrimitive from "@rn-primitives/progress"; 2 1 import * as React from "react"; 3 2 import { Platform, View } from "react-native"; 4 3 import Animated, { ··· 8 7 useDerivedValue, 9 8 withSpring, 10 9 } from "react-native-reanimated"; 10 + import * as ProgressPrimitive from "@rn-primitives/progress"; 11 + 11 12 import { cn } from "../../lib/utils"; 12 13 13 14 const Progress = React.forwardRef< ··· 61 62 style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }} 62 63 > 63 64 <ProgressPrimitive.Indicator 64 - className={cn("h-full w-full ", className)} 65 + className={cn("h-full w-full", className)} 65 66 /> 66 67 </View> 67 68 );
+4 -4
apps/amethyst/components/ui/sheetBackdrop.tsx
··· 1 1 import React, { useMemo } from "react"; 2 - import { BottomSheetBackdropProps } from "@gorhom/bottom-sheet"; 2 + import { StyleProp, View, ViewStyle } from "react-native"; 3 3 import Animated, { 4 4 AnimatedStyle, 5 5 Extrapolation, 6 6 interpolate, 7 7 useAnimatedStyle, 8 8 } from "react-native-reanimated"; 9 - import { StyleProp, View, ViewStyle } from "react-native"; 9 + import { BottomSheetBackdropProps } from "@gorhom/bottom-sheet"; 10 10 11 11 export default function SheetBackdrop({ 12 12 animatedIndex, ··· 50 50 style, 51 51 }: BottomSheetBackdropProps) => { 52 52 return ( 53 - <View className="w-full items-center h-6 bg-card rounded-t-xl border-t border-x border-neutral-500/30"> 54 - <View className="w-16 bg-muted-foreground/50 hover:bg-muted-foreground/70 transition-colors h-1.5 m-1 rounded-xl" /> 53 + <View className="h-6 w-full items-center rounded-t-xl border-x border-t border-neutral-500/30 bg-card"> 54 + <View className="m-1 h-1.5 w-16 rounded-xl bg-muted-foreground/50 transition-colors hover:bg-muted-foreground/70" /> 55 55 </View> 56 56 ); 57 57 };
+3 -2
apps/amethyst/components/ui/text.tsx
··· 1 + import * as React from "react"; 2 + import { Text as RNText } from "react-native"; 1 3 import * as Slot from "@rn-primitives/slot"; 2 4 import type { SlottableTextProps, TextRef } from "@rn-primitives/types"; 3 - import * as React from "react"; 4 - import { Text as RNText } from "react-native"; 5 + 5 6 import { cn } from "../../lib/utils"; 6 7 7 8 const TextClassContext = React.createContext<string | undefined>(undefined);
+13 -10
apps/amethyst/components/ui/tooltip.tsx
··· 1 - import * as TooltipPrimitive from '@rn-primitives/tooltip'; 2 - import * as React from 'react'; 3 - import { Platform, StyleSheet } from 'react-native'; 4 - import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; 5 - import { cn } from '../../lib/utils'; 6 - import { TextClassContext } from '../../components/ui/text'; 1 + import * as React from "react"; 2 + import { Platform, StyleSheet } from "react-native"; 3 + import Animated, { FadeIn, FadeOut } from "react-native-reanimated"; 4 + import * as TooltipPrimitive from "@rn-primitives/tooltip"; 5 + 6 + import { TextClassContext } from "../../components/ui/text"; 7 + import { cn } from "../../lib/utils"; 7 8 8 9 const Tooltip = TooltipPrimitive.Root; 9 10 const TooltipTrigger = TooltipPrimitive.Trigger; ··· 13 14 TooltipPrimitive.ContentProps & { portalHost?: string } 14 15 >(({ className, sideOffset = 4, portalHost, ...props }, ref) => ( 15 16 <TooltipPrimitive.Portal hostName={portalHost}> 16 - <TooltipPrimitive.Overlay style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}> 17 + <TooltipPrimitive.Overlay 18 + style={Platform.OS !== "web" ? StyleSheet.absoluteFill : undefined} 19 + > 17 20 <Animated.View 18 21 entering={Platform.select({ web: undefined, default: FadeIn })} 19 22 exiting={Platform.select({ web: undefined, default: FadeOut })} 20 23 > 21 - <TextClassContext.Provider value='text-sm native:text-base text-popover-foreground'> 24 + <TextClassContext.Provider value="text-sm native:text-base text-popover-foreground"> 22 25 <TooltipPrimitive.Content 23 26 ref={ref} 24 27 sideOffset={sideOffset} 25 28 className={cn( 26 - 'z-50 overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 shadow-md shadow-foreground/5 web:animate-in web:fade-in-0 web:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', 27 - className 29 + "z-50 overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 shadow-md shadow-foreground/5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 web:animate-in web:fade-in-0 web:zoom-in-95", 30 + className, 28 31 )} 29 32 {...props} 30 33 />
+1 -1
apps/amethyst/components/useClientOnlyValue.web.ts
··· 1 - import React from 'react'; 1 + import React from "react"; 2 2 3 3 // `useEffect` is not invoked during server rendering, meaning 4 4 // we can use this to determine if we're on the server or not.
+8 -8
apps/amethyst/constants/Colors.ts
··· 1 - const tintColorLight = '#2f95dc'; 2 - const tintColorDark = '#fff'; 1 + const tintColorLight = "#2f95dc"; 2 + const tintColorDark = "#fff"; 3 3 4 4 export default { 5 5 light: { 6 - text: '#000', 7 - background: '#fff', 6 + text: "#000", 7 + background: "#fff", 8 8 tint: tintColorLight, 9 - tabIconDefault: '#ccc', 9 + tabIconDefault: "#ccc", 10 10 tabIconSelected: tintColorLight, 11 11 }, 12 12 dark: { 13 - text: '#fff', 14 - background: '#000', 13 + text: "#fff", 14 + background: "#000", 15 15 tint: tintColorDark, 16 - tabIconDefault: '#ccc', 16 + tabIconDefault: "#ccc", 17 17 tabIconSelected: tintColorDark, 18 18 }, 19 19 };
+1 -1
apps/amethyst/ios/amethyst/Images.xcassets/AppIcon.appiconset/Contents.json
··· 11 11 "version": 1, 12 12 "author": "expo" 13 13 } 14 - } 14 + }
+3 -3
apps/amethyst/ios/amethyst/Images.xcassets/Contents.json
··· 1 1 { 2 - "info" : { 3 - "version" : 1, 4 - "author" : "expo" 2 + "info": { 3 + "version": 1, 4 + "author": "expo" 5 5 } 6 6 }
+1 -1
apps/amethyst/ios/amethyst/Images.xcassets/SplashScreenBackground.colorset/Contents.json
··· 17 17 "version": 1, 18 18 "author": "expo" 19 19 } 20 - } 20 + }
+1 -1
apps/amethyst/ios/amethyst/Images.xcassets/SplashScreenLogo.imageset/Contents.json
··· 38 38 "version": 1, 39 39 "author": "expo" 40 40 } 41 - } 41 + }
+3 -3
apps/amethyst/lib/atp/getImageCdnLink.tsx
··· 1 - const DEFAULT_IMAGE_TEMPLATE = 'https://at.uwu.wang/{did}/{hash}'; 1 + const DEFAULT_IMAGE_TEMPLATE = "https://at.uwu.wang/{did}/{hash}"; 2 2 3 3 export default function getImageCdnLink({ 4 4 did, ··· 9 9 }): string | undefined { 10 10 if (!did || !hash) return undefined; 11 11 // if hash is actually a data url return it 12 - if (hash.startsWith('data:')) return hash; 13 - return DEFAULT_IMAGE_TEMPLATE.replace('{did}', did).replace('{hash}', hash); 12 + if (hash.startsWith("data:")) return hash; 13 + return DEFAULT_IMAGE_TEMPLATE.replace("{did}", did).replace("{hash}", hash); 14 14 }
+2 -2
apps/amethyst/lib/atp/oauth.tsx
··· 1 + import { Platform } from "react-native"; 2 + import Constants from "expo-constants"; 1 3 import { 2 4 ClientMetadata, 3 5 clientMetadataSchema, 4 6 ReactNativeOAuthClient, 5 7 } from "@aquareum/atproto-oauth-client-react-native"; 6 - import Constants from "expo-constants"; 7 - import { Platform } from "react-native"; 8 8 9 9 export type AquareumOAuthClient = Omit< 10 10 ReactNativeOAuthClient,
+1
apps/amethyst/lib/icons/CalendarDays.tsx
··· 1 1 import { CalendarDays } from "lucide-react-native"; 2 + 2 3 import { iconWithClassName } from "./iconWithClassName"; 3 4 4 5 iconWithClassName(CalendarDays);
+1
apps/amethyst/lib/icons/Info.tsx
··· 1 1 import { Info } from "lucide-react-native"; 2 + 2 3 import { iconWithClassName } from "./iconWithClassName"; 3 4 4 5 iconWithClassName(Info);
+1
apps/amethyst/lib/icons/Moon.tsx
··· 1 1 import { Moon } from "lucide-react-native"; 2 + 2 3 import { iconWithClassName } from "./iconWithClassName"; 3 4 4 5 iconWithClassName(Moon);
+1
apps/amethyst/lib/icons/Sun.tsx
··· 1 1 import { Sun } from "lucide-react-native"; 2 + 2 3 import { iconWithClassName } from "./iconWithClassName"; 3 4 4 5 iconWithClassName(Sun);
+7 -3
apps/amethyst/lib/icons/iconWithClassName.tsx
··· 1 + import React from "react"; 2 + import type { FontAwesome6 } from "@expo/vector-icons"; 1 3 import type { LucideIcon } from "lucide-react-native"; 2 - import type { FontAwesome6 } from "@expo/vector-icons"; 3 4 import { cssInterop } from "nativewind"; 5 + 6 + import { 7 + GlobalTextClassContext, 8 + TextClassContext, 9 + } from "../../components/ui/text"; 4 10 import { cn } from "../utils"; 5 - import { GlobalTextClassContext, TextClassContext } from "../../components/ui/text"; 6 - import React from "react"; 7 11 8 12 /// This type is used to support multiple icon libraries. 9 13 type SupportedIcons = LucideIcon | typeof FontAwesome6;
-1
apps/amethyst/lib/oldStamp.tsx
··· 72 72 queryParts.push(`release:"${searchParams.release}"`); 73 73 } 74 74 75 - 76 75 const query = queryParts.join(" AND "); 77 76 78 77 const res = await fetch(
+1 -1
apps/amethyst/nativewind-env.d.ts
··· 1 1 /// <reference types="nativewind/types" /> 2 2 3 - // NOTE: This file should not be edited and should be committed with your source code. It is generated by NativeWind. 3 + // NOTE: This file should not be edited and should be committed with your source code. It is generated by NativeWind.
+1 -1
apps/amethyst/package.json
··· 18 18 }, 19 19 "dependencies": { 20 20 "@aquareum/atproto-oauth-client-react-native": "^0.0.1", 21 - "@atproto/api": "^0.15.6", 21 + "@atproto/api": "^0.15.14", 22 22 "@atproto/lex-cli": "^0.8.1", 23 23 "@atproto/oauth-client": "^0.3.16", 24 24 "@babel/plugin-transform-export-namespace-from": "^7.27.1",
+1
apps/amethyst/readme.md
··· 1 1 # Amethyst 2 + 2 3 The teal.fm app. 3 4 4 5 ## What?
+41 -38
apps/amethyst/stores/authenticationSlice.tsx
··· 1 - import { StateCreator } from './mainStore'; 2 - import createOAuthClient, { AquareumOAuthClient } from '../lib/atp/oauth'; 3 - import { OAuthSession } from '@atproto/oauth-client'; 4 - import { ProfileViewDetailed } from '@atproto/api/dist/client/types/app/bsky/actor/defs'; 5 - import { OutputSchema as GetProfileOutputSchema } from '@teal/lexicons/src/types/fm/teal/alpha/actor/getProfile'; 6 - import { Agent } from '@atproto/api'; 7 - import * as Lexicons from '@teal/lexicons/src/lexicons'; 8 - import { resolveFromIdentity } from '@/lib/atp/pid'; 1 + import { resolveFromIdentity } from "@/lib/atp/pid"; 2 + import { Agent } from "@atproto/api"; 3 + import { ProfileViewDetailed } from "@atproto/api/dist/client/types/app/bsky/actor/defs"; 4 + import { OAuthSession } from "@atproto/oauth-client"; 5 + 6 + import * as Lexicons from "@teal/lexicons/src/lexicons"; 7 + import { OutputSchema as GetProfileOutputSchema } from "@teal/lexicons/src/types/fm/teal/alpha/actor/getProfile"; 8 + 9 + import createOAuthClient, { AquareumOAuthClient } from "../lib/atp/oauth"; 10 + import { StateCreator } from "./mainStore"; 9 11 10 12 export interface AllProfileViews { 11 13 bsky: null | ProfileViewDetailed; 12 - teal: null | GetProfileOutputSchema['actor']; 14 + teal: null | GetProfileOutputSchema["actor"]; 13 15 // todo: teal profile view 14 16 } 15 17 16 18 export interface AuthenticationSlice { 17 19 auth: AquareumOAuthClient; 18 - status: 'start' | 'loggedIn' | 'loggedOut'; 20 + status: "start" | "loggedIn" | "loggedOut"; 19 21 oauthState: null | string; 20 22 oauthSession: null | OAuthSession; 21 23 pdsAgent: null | Agent; ··· 43 45 get, 44 46 ) => { 45 47 // check if we have CF_PAGES_URL set. if not, use localhost 46 - const baseUrl = process.env.EXPO_PUBLIC_BASE_URL || 'http://localhost:8081'; 47 - const initialAuth = createOAuthClient(baseUrl, 'bsky.social'); 48 + const baseUrl = process.env.EXPO_PUBLIC_BASE_URL || "http://localhost:8081"; 49 + console.log("Using base URL:", baseUrl); 50 + const initialAuth = createOAuthClient(baseUrl, "bsky.social"); 48 51 49 - console.log('Auth client created!'); 52 + console.log("Auth client created!"); 50 53 51 54 return { 52 55 auth: initialAuth, 53 - status: 'start', 56 + status: "start", 54 57 oauthState: null, 55 58 oauthSession: null, 56 59 pdsAgent: null, ··· 79 82 }); 80 83 return url; 81 84 } catch (error) { 82 - console.error('Failed to get login URL:', error); 85 + console.error("Failed to get login URL:", error); 83 86 return null; 84 87 } 85 88 }, 86 89 87 90 oauthCallback: async (state: URLSearchParams) => { 88 91 try { 89 - if (!(state.has('code') && state.has('state') && state.has('iss'))) { 90 - throw new Error('Missing params, got: ' + state); 92 + if (!(state.has("code") && state.has("state") && state.has("iss"))) { 93 + throw new Error("Missing params, got: " + state); 91 94 } 92 95 // are we already logged in? 93 - if (get().status === 'loggedIn') { 96 + if (get().status === "loggedIn") { 94 97 return; 95 98 } 96 99 const { session, state: oauthState } = ··· 100 103 // TODO: fork or update auth lib 101 104 oauthSession: session as any, 102 105 oauthState, 103 - status: 'loggedIn', 106 + status: "loggedIn", 104 107 pdsAgent: addDocs(agent), 105 108 isAgentReady: true, 106 109 }); 107 110 get().populateLoggedInProfile(); 108 111 } catch (error: any) { 109 - console.error('OAuth callback failed:', error); 112 + console.error("OAuth callback failed:", error); 110 113 set({ 111 - status: 'loggedOut', 114 + status: "loggedOut", 112 115 login: { 113 116 loading: false, 114 117 error: 115 118 (error?.message as string) || 116 - 'Unknown error during OAuth callback', 119 + "Unknown error during OAuth callback", 117 120 }, 118 121 }); 119 122 } ··· 130 133 let sess = await initialAuth.restore(did); 131 134 132 135 if (!sess) { 133 - throw new Error('Failed to restore session'); 136 + throw new Error("Failed to restore session"); 134 137 } 135 138 136 139 const agent = new Agent(sess); ··· 138 141 set({ 139 142 pdsAgent: addDocs(agent), 140 143 isAgentReady: true, 141 - status: 'loggedIn', 144 + status: "loggedIn", 142 145 }); 143 146 get().populateLoggedInProfile(); 144 - console.log('Restored agent'); 147 + console.log("Restored agent"); 145 148 } catch (error) { 146 - console.error('Failed to restore agent:', error); 149 + console.error("Failed to restore agent:", error); 147 150 get().logOut(); 148 151 } 149 152 }, 150 153 logOut: () => { 151 - console.log('Logging out'); 154 + console.log("Logging out"); 152 155 let profiles = { ...get().profiles }; 153 156 // TODO: something better than 'delete' 154 - delete profiles[get().pdsAgent?.did ?? '']; 157 + delete profiles[get().pdsAgent?.did ?? ""]; 155 158 set({ 156 - status: 'loggedOut', 159 + status: "loggedOut", 157 160 oauthSession: null, 158 161 oauthState: null, 159 162 profiles, ··· 163 166 }); 164 167 }, 165 168 populateLoggedInProfile: async () => { 166 - console.log('Populating logged in profile'); 169 + console.log("Populating logged in profile"); 167 170 const agent = get().pdsAgent; 168 171 if (!agent) { 169 - throw new Error('No agent'); 172 + throw new Error("No agent"); 170 173 } 171 174 if (!agent.did) { 172 - throw new Error('No agent did! This is bad!'); 175 + throw new Error("No agent did! This is bad!"); 173 176 } 174 177 try { 175 178 let bskyProfile = await agent ··· 183 186 let tealDid = get().tealDid; 184 187 let tealProfile = await agent 185 188 .call( 186 - 'fm.teal.alpha.actor.getProfile', 189 + "fm.teal.alpha.actor.getProfile", 187 190 { actor: agent?.did }, 188 191 {}, 189 - { headers: { 'atproto-proxy': tealDid + '#teal_fm_appview' } }, 192 + { headers: { "atproto-proxy": tealDid + "#teal_fm_appview" } }, 190 193 ) 191 194 .then((profile) => { 192 195 console.log(profile); ··· 199 202 }, 200 203 }); 201 204 } catch (error) { 202 - console.error('Failed to get teal profile:', error); 205 + console.error("Failed to get teal profile:", error); 203 206 // insert bsky profile 204 207 set({ 205 208 profiles: { ··· 208 211 }); 209 212 } 210 213 } catch (error) { 211 - console.error('Failed to get profile:', error); 214 + console.error("Failed to get profile:", error); 212 215 } 213 216 }, 214 217 }; ··· 216 219 217 220 function addDocs(agent: Agent) { 218 221 Lexicons.schemas 219 - .filter((schema) => !schema.id.startsWith('app.bsky.')) 222 + .filter((schema) => !schema.id.startsWith("app.bsky.")) 220 223 .map((schema) => { 221 224 try { 222 225 agent.lex.add(schema); 223 226 } catch (e) { 224 - console.error('Failed to add schema:', e); 227 + console.error("Failed to add schema:", e); 225 228 } 226 229 }); 227 230 return agent;
+8 -7
apps/amethyst/stores/mainStore.tsx
··· 1 - import { create, StateCreator as ZustandStateCreator } from 'zustand'; 2 - import { persist, createJSONStorage } from 'zustand/middleware'; 1 + import AsyncStorage from "@react-native-async-storage/async-storage"; 2 + import { create, StateCreator as ZustandStateCreator } from "zustand"; 3 + import { createJSONStorage, persist } from "zustand/middleware"; 4 + 3 5 import { 4 6 AuthenticationSlice, 5 7 createAuthenticationSlice, 6 - } from './authenticationSlice'; 7 - import AsyncStorage from '@react-native-async-storage/async-storage'; 8 - import { createTempSlice, TempSlice } from './tempSlice'; 9 - import { createPreferenceSlice, PreferenceSlice } from './preferenceSlice'; 8 + } from "./authenticationSlice"; 9 + import { createPreferenceSlice, PreferenceSlice } from "./preferenceSlice"; 10 + import { createTempSlice, TempSlice } from "./tempSlice"; 10 11 11 12 /// Put all your non-shared slices here 12 13 export type Slices = AuthenticationSlice & TempSlice & PreferenceSlice; ··· 29 30 onRehydrateStorage: () => (state) => { 30 31 state?.restorePdsAgent(); 31 32 }, 32 - name: 'mainStore', 33 + name: "mainStore", 33 34 storage: createJSONStorage(() => AsyncStorage), 34 35 }, 35 36 ),
+4 -4
apps/amethyst/stores/preferenceSlice.tsx
··· 1 - import { StateCreator } from './mainStore'; 1 + import { StateCreator } from "./mainStore"; 2 2 3 3 export interface PreferenceSlice { 4 - colorTheme: 'dark' | 'light' | 'system'; 5 - setColorTheme: (theme: 'dark' | 'light' | 'system') => void; 4 + colorTheme: "dark" | "light" | "system"; 5 + setColorTheme: (theme: "dark" | "light" | "system") => void; 6 6 tealDid: string; 7 7 setTealDid: (url: string) => void; 8 8 } 9 9 10 10 export const createPreferenceSlice: StateCreator<PreferenceSlice> = (set) => { 11 11 return { 12 - colorTheme: 'system', 12 + colorTheme: "system", 13 13 setColorTheme: (theme) => set({ colorTheme: theme }), 14 14 tealDid: process.env.EXPO_PUBLIC_DID_WEB ?? 'did:web:rina.z.teal.fm', 15 15 setTealDid: (url) => set({ tealDid: url }),
+7 -10
apps/amethyst/stores/tempSlice.tsx
··· 1 - 2 1 import { StateCreator } from "./mainStore"; 3 2 4 3 export interface TempSlice { 5 - hello: () => string; 4 + hello: () => string; 6 5 } 7 6 8 - export const createTempSlice: StateCreator<TempSlice> = ( 9 - set 10 - ) => { 11 - return { 12 - hello: () => { 13 - return "world"; 14 - } 15 - }; 7 + export const createTempSlice: StateCreator<TempSlice> = (set) => { 8 + return { 9 + hello: () => { 10 + return "world"; 11 + }, 12 + }; 16 13 };
+3 -3
apps/amethyst/tailwind.config.js
··· 1 - import { platformSelect, hairlineWidth } from "nativewind/theme"; 1 + import { hairlineWidth, platformSelect } from "nativewind/theme"; 2 2 3 3 /** @type {import('tailwindcss').Config} */ 4 4 export const darkMode = "class"; ··· 10 10 sans: "DM Sans", 11 11 "serif-old": "CrimsonPro", 12 12 "serif-old-italic": "CrimsonPro Italic", 13 - "serif": "Fraunces", 13 + serif: "Fraunces", 14 14 // serif: platformSelect({ 15 15 // android: "Fraunces", 16 16 // ios: "Fraunces", 17 17 // web: 'Fraunces, Georgia, Cambria, "Times New Roman", Times, serif', 18 18 // }), 19 - mono: "PlexMono" 19 + mono: "PlexMono", 20 20 // mono: platformSelect({ 21 21 // android: "PlexMono", 22 22 // ios: ["PlexMono"],
+50 -46
apps/aqua/public/latex.css
··· 6 6 */ 7 7 8 8 @font-face { 9 - font-family: 'Latin Modern'; 9 + font-family: "Latin Modern"; 10 10 font-style: normal; 11 11 font-weight: normal; 12 12 font-display: swap; 13 - src: url('./fonts/LM-regular.woff2') format('woff2'), 14 - url('./fonts/LM-regular.woff') format('woff'), 15 - url('./fonts/LM-regular.ttf') format('truetype'); 13 + src: 14 + url("./fonts/LM-regular.woff2") format("woff2"), 15 + url("./fonts/LM-regular.woff") format("woff"), 16 + url("./fonts/LM-regular.ttf") format("truetype"); 16 17 } 17 18 18 19 @font-face { 19 - font-family: 'Latin Modern'; 20 + font-family: "Latin Modern"; 20 21 font-style: italic; 21 22 font-weight: normal; 22 23 font-display: swap; 23 - src: url('./fonts/LM-italic.woff2') format('woff2'), 24 - url('./fonts/LM-italic.woff') format('woff'), 25 - url('./fonts/LM-italic.ttf') format('truetype'); 24 + src: 25 + url("./fonts/LM-italic.woff2") format("woff2"), 26 + url("./fonts/LM-italic.woff") format("woff"), 27 + url("./fonts/LM-italic.ttf") format("truetype"); 26 28 } 27 29 28 30 @font-face { 29 - font-family: 'Latin Modern'; 31 + font-family: "Latin Modern"; 30 32 font-style: normal; 31 33 font-weight: bold; 32 34 font-display: swap; 33 - src: url('./fonts/LM-bold.woff2') format('woff2'), 34 - url('./fonts/LM-bold.woff') format('woff'), 35 - url('./fonts/LM-bold.ttf') format('truetype'); 35 + src: 36 + url("./fonts/LM-bold.woff2") format("woff2"), 37 + url("./fonts/LM-bold.woff") format("woff"), 38 + url("./fonts/LM-bold.ttf") format("truetype"); 36 39 } 37 40 38 41 @font-face { 39 - font-family: 'Latin Modern'; 42 + font-family: "Latin Modern"; 40 43 font-style: italic; 41 44 font-weight: bold; 42 45 font-display: swap; 43 - src: url('./fonts/LM-bold-italic.woff2') format('woff2'), 44 - url('./fonts/LM-bold-italic.woff') format('woff'), 45 - url('./fonts/LM-bold-italic.ttf') format('truetype'); 46 + src: 47 + url("./fonts/LM-bold-italic.woff2") format("woff2"), 48 + url("./fonts/LM-bold-italic.woff") format("woff"), 49 + url("./fonts/LM-bold-italic.ttf") format("truetype"); 46 50 } 47 51 48 52 @font-face { 49 - font-family: 'Libertinus'; 53 + font-family: "Libertinus"; 50 54 font-style: normal; 51 55 font-weight: normal; 52 56 font-display: swap; 53 - src: url('./fonts/Libertinus-regular.woff2') format('woff2'); 57 + src: url("./fonts/Libertinus-regular.woff2") format("woff2"); 54 58 } 55 59 56 60 @font-face { 57 - font-family: 'Libertinus'; 61 + font-family: "Libertinus"; 58 62 font-style: italic; 59 63 font-weight: normal; 60 64 font-display: swap; 61 - src: url('./fonts/Libertinus-italic.woff2') format('woff2'); 65 + src: url("./fonts/Libertinus-italic.woff2") format("woff2"); 62 66 } 63 67 64 68 @font-face { 65 - font-family: 'Libertinus'; 69 + font-family: "Libertinus"; 66 70 font-style: normal; 67 71 font-weight: bold; 68 72 font-display: swap; 69 - src: url('./fonts/Libertinus-bold.woff2') format('woff2'); 73 + src: url("./fonts/Libertinus-bold.woff2") format("woff2"); 70 74 } 71 75 72 76 @font-face { 73 - font-family: 'Libertinus'; 77 + font-family: "Libertinus"; 74 78 font-style: italic; 75 79 font-weight: bold; 76 80 font-display: swap; 77 - src: url('./fonts/Libertinus-bold-italic.woff2') format('woff2'); 81 + src: url("./fonts/Libertinus-bold-italic.woff2") format("woff2"); 78 82 } 79 83 80 84 @font-face { 81 - font-family: 'Libertinus'; 85 + font-family: "Libertinus"; 82 86 font-style: normal; 83 87 font-weight: 600; 84 88 font-display: swap; 85 - src: url('./fonts/Libertinus-semibold.woff2') format('woff2'); 89 + src: url("./fonts/Libertinus-semibold.woff2") format("woff2"); 86 90 } 87 91 88 92 @font-face { 89 - font-family: 'Libertinus'; 93 + font-family: "Libertinus"; 90 94 font-style: italic; 91 95 font-weight: 600; 92 96 font-display: swap; 93 - src: url('./fonts/Libertinus-semibold-italic.woff2') format('woff2'); 97 + src: url("./fonts/Libertinus-semibold-italic.woff2") format("woff2"); 94 98 } 95 99 96 100 /* Box sizing rules */ ··· 135 139 } 136 140 137 141 @media (prefers-color-scheme: dark) { 138 - .latex-dark-auto { 142 + .latex-dark-auto { 139 143 --body-color: hsl(0, 0%, 86%); 140 144 --body-bg-color: hsl(0, 0%, 16%); 141 145 --link-visited: hsl(196 80% 77%); ··· 178 182 } 179 183 180 184 body.libertinus { 181 - font-family: 'Libertinus', Georgia, Cambria, 'Times New Roman', Times, serif; 185 + font-family: "Libertinus", Georgia, Cambria, "Times New Roman", Times, serif; 182 186 } 183 187 184 188 body { 185 - font-family: 'Latin Modern', Georgia, Cambria, 'Times New Roman', Times, serif; 189 + font-family: 190 + "Latin Modern", Georgia, Cambria, "Times New Roman", Times, serif; 186 191 line-height: 1.8; 187 192 188 193 max-width: 80ch; ··· 274 279 code, 275 280 pre, 276 281 kbd { 277 - font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', 278 - monospace; 282 + font-family: 283 + Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 279 284 font-size: 85%; 280 285 hyphens: none; 281 286 } ··· 312 317 counter-increment: caption; 313 318 } 314 319 /* add bottom border on column table headings */ 315 - table:not(.borders-custom) tr > th[scope='col'] { 320 + table:not(.borders-custom) tr > th[scope="col"] { 316 321 border-bottom: var(--border-width-thin) solid var(--table-border-color); 317 322 } 318 323 /* add right border on row table headings */ 319 - table:not(.borders-custom) tr > th[scope='row'] { 324 + table:not(.borders-custom) tr > th[scope="row"] { 320 325 border-right: var(--border-width-thin) solid var(--table-border-color); 321 326 } 322 327 table:not(.borders-custom) > tbody > tr:first-child > td, ··· 345 350 } 346 351 347 352 caption::before { 348 - content: 'Table ' counter(caption) '. '; 353 + content: "Table " counter(caption) ". "; 349 354 font-weight: bold; 350 355 } 351 356 ··· 452 457 margin-left: 0; 453 458 } 454 459 figcaption::before { 455 - content: 'Figure ' counter(figcaption) '. '; 460 + content: "Figure " counter(figcaption) ". "; 456 461 font-weight: bold; 457 462 } 458 463 ··· 470 475 display: block; 471 476 } 472 477 nav li::before { 473 - content: counters(item, '.') ' '; 478 + content: counters(item, ".") " "; 474 479 counter-increment: item; 475 480 padding-right: 0.85rem; 476 481 } ··· 488 493 font-style: italic; 489 494 } 490 495 .theorem::before { 491 - content: 'Theorem ' counter(theorem) '. '; 496 + content: "Theorem " counter(theorem) ". "; 492 497 font-weight: bold; 493 498 font-style: normal; 494 499 } ··· 501 506 font-style: italic; 502 507 } 503 508 .lemma::before { 504 - content: 'Lemma ' counter(theorem) '. '; 509 + content: "Lemma " counter(theorem) ". "; 505 510 font-weight: bold; 506 511 font-style: normal; 507 512 } ··· 514 519 position: relative; 515 520 } 516 521 .proof::before { 517 - content: 'Proof. ' attr(title); 522 + content: "Proof. " attr(title); 518 523 font-style: italic; 519 524 } 520 525 .proof::after { 521 - content: '◾️'; 526 + content: "◾️"; 522 527 filter: var(--proof-symbol-filter); 523 528 position: absolute; 524 529 right: -12px; ··· 533 538 font-style: normal; 534 539 } 535 540 .definition::before { 536 - content: 'Definition ' counter(definition) '. '; 541 + content: "Definition " counter(definition) ". "; 537 542 font-weight: bold; 538 543 font-style: normal; 539 544 } ··· 567 572 /* (WIP) add border when a sidenote is clicked on */ 568 573 .sidenote:target { 569 574 border: var(--sidenote-target-border-color) 1.5px solid; 570 - padding: 0 .5rem; 575 + padding: 0 0.5rem; 571 576 scroll-margin-block-start: 10rem; 572 577 } 573 578 ··· 592 597 593 598 /* add number in front of the sidenote */ 594 599 .sidenote-number ~ .sidenote::before { 595 - content: counter(sidenote-counter) ' '; 600 + content: counter(sidenote-counter) " "; 596 601 font-size: 0.7rem; 597 602 top: -0.5rem; 598 603 } ··· 606 611 margin-right: -24vw; 607 612 width: 18vw; 608 613 } 609 - 610 614 611 615 label.sidenote-toggle { 612 616 display: inline;
+19 -18
apps/aqua/src/index.ts
··· 1 - import { env } from './lib/env'; 1 + import { serve } from "@hono/node-server"; 2 + import { serveStatic } from "@hono/node-server/serve-static"; 3 + import { Hono } from "hono"; 4 + import pino from "pino"; 5 + 6 + import { db } from "@teal/db/connect"; 2 7 3 - import { serve } from '@hono/node-server'; 4 - import { serveStatic } from '@hono/node-server/serve-static'; 5 - import { Hono } from 'hono'; 6 - import { db } from '@teal/db/connect'; 7 - import pino from 'pino'; 8 - import { EnvWithCtx, setupContext, TealContext } from './ctx'; 9 - import { getXrpcRouter } from './xrpc/route'; 10 - import { createDidWeb } from './did/web'; 8 + import { EnvWithCtx, setupContext, TealContext } from "./ctx"; 9 + import { createDidWeb } from "./did/web"; 10 + import { env } from "./lib/env"; 11 + import { getXrpcRouter } from "./xrpc/route"; 11 12 12 - const logger = pino({ name: 'server start' }); 13 + const logger = pino({ name: "server start" }); 13 14 14 15 const app = new Hono<EnvWithCtx>(); 15 16 ··· 56 57 } 57 58 `; 58 59 59 - app.get('/', (c) => 60 + app.get("/", (c) => 60 61 c.html( 61 62 `<html><head><style>${HOME_STYLES}</style></head><body><pre>${HOME_TEXT}</pre></body></html>`, 62 63 ), 63 64 ); 64 65 65 - app.route('/xrpc', getXrpcRouter()); 66 + app.route("/xrpc", getXrpcRouter()); 66 67 67 - app.get('/.well-known/did.json', (c) => 68 + app.get("/.well-known/did.json", (c) => 68 69 // assume public url is https! 69 - c.json(createDidWeb(env.PUBLIC_URL.split('://')[1], env.DID_WEB_PUBKEY)), 70 + c.json(createDidWeb(env.PUBLIC_URL.split("://")[1], env.DID_WEB_PUBKEY)), 70 71 ); 71 72 72 - app.use('/*', serveStatic({ root: '/public' })); 73 + app.use("/*", serveStatic({ root: "/public" })); 73 74 74 75 const run = async () => { 75 - logger.info('Running in ' + navigator.userAgent); 76 - if (navigator.userAgent.includes('Node')) { 76 + logger.info("Running in " + navigator.userAgent); 77 + if (navigator.userAgent.includes("Node")) { 77 78 serve( 78 79 { 79 80 fetch: app.fetch, ··· 87 88 ? `http://${env.HOST}` 88 89 : // TODO: below should probably be https:// 89 90 // but i just want to ctrl click in the terminal 90 - 'http://' + info.address 91 + "http://" + info.address 91 92 }:${info.port} (${info.family})`, 92 93 ); 93 94 },
+7 -7
apps/aqua/src/lib/env.ts
··· 9 9 10 10 export const env = cleanEnv(process.env, { 11 11 NODE_ENV: str({ 12 - devDefault: testOnly('test'), 13 - choices: ['development', 'production', 'test'], 12 + devDefault: testOnly("test"), 13 + choices: ["development", "production", "test"], 14 14 }), 15 - HOST: host({ devDefault: testOnly('0.0.0.0') }), 15 + HOST: host({ devDefault: testOnly("0.0.0.0") }), 16 16 PORT: port({ devDefault: testOnly(3000) }), 17 17 PUBLIC_URL: str({}), 18 - DID_WEB_PUBKEY: str({ devDefault: testOnly('did:key:z6Mk...') }), 19 - APP_URI: str({ devDefault: 'fm.teal.amethyst://' }), 20 - DATABASE_URL: str({ devDefault: 'file:./db.sqlite' }), 21 - COOKIE_SECRET: str({ devDefault: 'secret_cookie! very secret!' }), 18 + DID_WEB_PUBKEY: str({ devDefault: testOnly("did:key:z6Mk...") }), 19 + APP_URI: str({ devDefault: "fm.teal.amethyst://" }), 20 + DATABASE_URL: str({ devDefault: "file:./db.sqlite" }), 21 + COOKIE_SECRET: str({ devDefault: "secret_cookie! very secret!" }), 22 22 });
+7 -6
apps/aqua/src/xrpc/actor/getProfile.ts
··· 1 - import { TealContext } from '@/ctx'; 2 - import { db, profiles } from '@teal/db'; 3 - import { eq } from 'drizzle-orm'; 4 - import { OutputSchema } from '@teal/lexicons/src/types/fm/teal/alpha/actor/getProfile'; 1 + import { TealContext } from "@/ctx"; 2 + import { eq } from "drizzle-orm"; 3 + 4 + import { db, profiles } from "@teal/db"; 5 + import { OutputSchema } from "@teal/lexicons/src/types/fm/teal/alpha/actor/getProfile"; 5 6 6 7 export default async function getProfile(c: TealContext) { 7 8 const params = c.req.query(); 8 9 if (!params.actor) { 9 - throw new Error('actor is required'); 10 + throw new Error("actor is required"); 10 11 } 11 12 12 13 // Assuming 'user' can be either a DID or a handle. We'll try to resolve ··· 30 31 } 31 32 32 33 if (!profile) { 33 - throw new Error('Profile not found'); 34 + throw new Error("Profile not found"); 34 35 } 35 36 36 37 profile = profile[0];
+13 -12
apps/aqua/src/xrpc/actor/searchActors.ts
··· 1 - import { TealContext } from '@/ctx'; 2 - import { db, profiles } from '@teal/db'; 3 - import { like, or, sql, lt, gt, and } from 'drizzle-orm'; 4 - import { OutputSchema } from '@teal/lexicons/src/types/fm/teal/alpha/actor/searchActors'; 1 + import { TealContext } from "@/ctx"; 2 + import { and, gt, like, lt, or, sql } from "drizzle-orm"; 3 + 4 + import { db, profiles } from "@teal/db"; 5 + import { OutputSchema } from "@teal/lexicons/src/types/fm/teal/alpha/actor/searchActors"; 5 6 6 7 export default async function searchActors(c: TealContext) { 7 8 const params = c.req.query(); ··· 10 11 11 12 if (!params.q) { 12 13 c.status(400); 13 - c.error = new Error('q is required'); 14 + c.error = new Error("q is required"); 14 15 return; 15 16 } 16 17 ··· 40 41 41 42 if (params.cursor) { 42 43 // Decode the cursor 43 - const [createdAtStr, didStr] = Buffer.from(params.cursor, 'base64') 44 - .toString('utf-8') 45 - .split(':'); 44 + const [createdAtStr, didStr] = Buffer.from(params.cursor, "base64") 45 + .toString("utf-8") 46 + .split(":"); 46 47 47 48 const createdAt = new Date(createdAtStr); 48 49 ··· 74 75 if (results.length > limit) { 75 76 const lastResult = results[limit - 1]; // Get the *limit*-th, not limit+1-th 76 77 nextCursor = Buffer.from( 77 - `${lastResult.createdAt?.toISOString() || ''}:${lastResult.did}`, 78 - ).toString('base64'); 78 + `${lastResult.createdAt?.toISOString() || ""}:${lastResult.did}`, 79 + ).toString("base64"); 79 80 results.pop(); // Remove the extra record we fetched 80 81 } 81 82 const res: OutputSchema = { ··· 91 92 92 93 return res; 93 94 } catch (error) { 94 - console.error('Database error:', error); 95 + console.error("Database error:", error); 95 96 c.status(500); 96 - throw new Error('Internal server error'); 97 + throw new Error("Internal server error"); 97 98 } 98 99 }
+3 -2
apps/aqua/src/xrpc/feed/getPlay.ts
··· 1 1 import { TealContext } from "@/ctx"; 2 - import { db, plays, playToArtists, artists } from "@teal/db"; 3 - import { eq, and, lt, desc, sql } from "drizzle-orm"; 2 + import { and, desc, eq, lt, sql } from "drizzle-orm"; 3 + 4 + import { artists, db, plays, playToArtists } from "@teal/db"; 4 5 import { OutputSchema } from "@teal/lexicons/src/types/fm/teal/alpha/feed/getActorFeed"; 5 6 6 7 export default async function getActorFeed(c: TealContext) {
+1 -1
compose.yaml
··· 8 8 ports: 9 9 - "3000:3000" 10 10 env_file: 11 - - .env 11 + - .env
+6 -2
package.json
··· 10 10 "fix": "biome lint --apply . && biome format --write . && biome check . --apply", 11 11 "nuke": "rimraf node_modules */*/node_modules", 12 12 "lex:gen-server": "turbo lex:gen-server", 13 - "db:migrate": "cd ./packages/db && drizzle-kit migrate" 13 + "format": "prettier --write ." 14 + "db:migrate": "cd ./packages/db && drizzle-kit migrate"= 14 15 }, 15 16 "dependencies": { 16 - "@atproto/oauth-client": "^0.3.8" 17 + "@atproto/oauth-client": "^0.3.8", 18 + "@ianvs/prettier-plugin-sort-imports": "^4.4.1", 19 + "prettier": "^3.5.3", 20 + "prettier-plugin-tailwindcss": "^0.6.11" 17 21 }, 18 22 "devDependencies": { 19 23 "@types/node": "^20.17.10",
+10 -29
packages/db/.drizzle/meta/0000_snapshot.json
··· 65 65 "name": "play_to_artists_play_uri_plays_uri_fk", 66 66 "tableFrom": "play_to_artists", 67 67 "tableTo": "plays", 68 - "columnsFrom": [ 69 - "play_uri" 70 - ], 71 - "columnsTo": [ 72 - "uri" 73 - ], 68 + "columnsFrom": ["play_uri"], 69 + "columnsTo": ["uri"], 74 70 "onDelete": "no action", 75 71 "onUpdate": "no action" 76 72 }, ··· 78 74 "name": "play_to_artists_artist_mbid_artists_mbid_fk", 79 75 "tableFrom": "play_to_artists", 80 76 "tableTo": "artists", 81 - "columnsFrom": [ 82 - "artist_mbid" 83 - ], 84 - "columnsTo": [ 85 - "mbid" 86 - ], 77 + "columnsFrom": ["artist_mbid"], 78 + "columnsTo": ["mbid"], 87 79 "onDelete": "no action", 88 80 "onUpdate": "no action" 89 81 } ··· 91 83 "compositePrimaryKeys": { 92 84 "play_to_artists_play_uri_artist_mbid_pk": { 93 85 "name": "play_to_artists_play_uri_artist_mbid_pk", 94 - "columns": [ 95 - "play_uri", 96 - "artist_mbid" 97 - ] 86 + "columns": ["play_uri", "artist_mbid"] 98 87 } 99 88 }, 100 89 "uniqueConstraints": {}, ··· 198 187 "name": "plays_release_mbid_releases_mbid_fk", 199 188 "tableFrom": "plays", 200 189 "tableTo": "releases", 201 - "columnsFrom": [ 202 - "release_mbid" 203 - ], 204 - "columnsTo": [ 205 - "mbid" 206 - ], 190 + "columnsFrom": ["release_mbid"], 191 + "columnsTo": ["mbid"], 207 192 "onDelete": "no action", 208 193 "onUpdate": "no action" 209 194 }, ··· 211 196 "name": "plays_recording_mbid_recordings_mbid_fk", 212 197 "tableFrom": "plays", 213 198 "tableTo": "recordings", 214 - "columnsFrom": [ 215 - "recording_mbid" 216 - ], 217 - "columnsTo": [ 218 - "mbid" 219 - ], 199 + "columnsFrom": ["recording_mbid"], 200 + "columnsTo": ["mbid"], 220 201 "onDelete": "no action", 221 202 "onUpdate": "no action" 222 203 } ··· 303 284 "schemas": {}, 304 285 "tables": {} 305 286 } 306 - } 287 + }
+10 -29
packages/db/.drizzle/meta/0001_snapshot.json
··· 65 65 "name": "play_to_artists_play_uri_plays_uri_fk", 66 66 "tableFrom": "play_to_artists", 67 67 "tableTo": "plays", 68 - "columnsFrom": [ 69 - "play_uri" 70 - ], 71 - "columnsTo": [ 72 - "uri" 73 - ], 68 + "columnsFrom": ["play_uri"], 69 + "columnsTo": ["uri"], 74 70 "onDelete": "no action", 75 71 "onUpdate": "no action" 76 72 }, ··· 78 74 "name": "play_to_artists_artist_mbid_artists_mbid_fk", 79 75 "tableFrom": "play_to_artists", 80 76 "tableTo": "artists", 81 - "columnsFrom": [ 82 - "artist_mbid" 83 - ], 84 - "columnsTo": [ 85 - "mbid" 86 - ], 77 + "columnsFrom": ["artist_mbid"], 78 + "columnsTo": ["mbid"], 87 79 "onDelete": "no action", 88 80 "onUpdate": "no action" 89 81 } ··· 91 83 "compositePrimaryKeys": { 92 84 "play_to_artists_play_uri_artist_mbid_pk": { 93 85 "name": "play_to_artists_play_uri_artist_mbid_pk", 94 - "columns": [ 95 - "play_uri", 96 - "artist_mbid" 97 - ] 86 + "columns": ["play_uri", "artist_mbid"] 98 87 } 99 88 }, 100 89 "uniqueConstraints": {}, ··· 198 187 "name": "plays_release_mbid_releases_mbid_fk", 199 188 "tableFrom": "plays", 200 189 "tableTo": "releases", 201 - "columnsFrom": [ 202 - "release_mbid" 203 - ], 204 - "columnsTo": [ 205 - "mbid" 206 - ], 190 + "columnsFrom": ["release_mbid"], 191 + "columnsTo": ["mbid"], 207 192 "onDelete": "no action", 208 193 "onUpdate": "no action" 209 194 }, ··· 211 196 "name": "plays_recording_mbid_recordings_mbid_fk", 212 197 "tableFrom": "plays", 213 198 "tableTo": "recordings", 214 - "columnsFrom": [ 215 - "recording_mbid" 216 - ], 217 - "columnsTo": [ 218 - "mbid" 219 - ], 199 + "columnsFrom": ["recording_mbid"], 200 + "columnsTo": ["mbid"], 220 201 "onDelete": "no action", 221 202 "onUpdate": "no action" 222 203 } ··· 417 398 "schemas": {}, 418 399 "tables": {} 419 400 } 420 - } 401 + }
+10 -29
packages/db/.drizzle/meta/0002_snapshot.json
··· 65 65 "name": "play_to_artists_artist_mbid_artists_mbid_fk", 66 66 "tableFrom": "play_to_artists", 67 67 "tableTo": "artists", 68 - "columnsFrom": [ 69 - "artist_mbid" 70 - ], 71 - "columnsTo": [ 72 - "mbid" 73 - ], 68 + "columnsFrom": ["artist_mbid"], 69 + "columnsTo": ["mbid"], 74 70 "onDelete": "no action", 75 71 "onUpdate": "no action" 76 72 }, ··· 78 74 "name": "play_to_artists_play_uri_plays_uri_fk", 79 75 "tableFrom": "play_to_artists", 80 76 "tableTo": "plays", 81 - "columnsFrom": [ 82 - "play_uri" 83 - ], 84 - "columnsTo": [ 85 - "uri" 86 - ], 77 + "columnsFrom": ["play_uri"], 78 + "columnsTo": ["uri"], 87 79 "onDelete": "no action", 88 80 "onUpdate": "no action" 89 81 } ··· 91 83 "compositePrimaryKeys": { 92 84 "play_to_artists_play_uri_artist_mbid_pk": { 93 85 "name": "play_to_artists_play_uri_artist_mbid_pk", 94 - "columns": [ 95 - "play_uri", 96 - "artist_mbid" 97 - ] 86 + "columns": ["play_uri", "artist_mbid"] 98 87 } 99 88 }, 100 89 "uniqueConstraints": {}, ··· 204 193 "name": "plays_recording_mbid_recordings_mbid_fk", 205 194 "tableFrom": "plays", 206 195 "tableTo": "recordings", 207 - "columnsFrom": [ 208 - "recording_mbid" 209 - ], 210 - "columnsTo": [ 211 - "mbid" 212 - ], 196 + "columnsFrom": ["recording_mbid"], 197 + "columnsTo": ["mbid"], 213 198 "onDelete": "no action", 214 199 "onUpdate": "no action" 215 200 }, ··· 217 202 "name": "plays_release_mbid_releases_mbid_fk", 218 203 "tableFrom": "plays", 219 204 "tableTo": "releases", 220 - "columnsFrom": [ 221 - "release_mbid" 222 - ], 223 - "columnsTo": [ 224 - "mbid" 225 - ], 205 + "columnsFrom": ["release_mbid"], 206 + "columnsTo": ["mbid"], 226 207 "onDelete": "no action", 227 208 "onUpdate": "no action" 228 209 } ··· 423 404 "schemas": {}, 424 405 "tables": {} 425 406 } 426 - } 407 + }
+10 -29
packages/db/.drizzle/meta/0003_snapshot.json
··· 65 65 "name": "play_to_artists_artist_mbid_artists_mbid_fk", 66 66 "tableFrom": "play_to_artists", 67 67 "tableTo": "artists", 68 - "columnsFrom": [ 69 - "artist_mbid" 70 - ], 71 - "columnsTo": [ 72 - "mbid" 73 - ], 68 + "columnsFrom": ["artist_mbid"], 69 + "columnsTo": ["mbid"], 74 70 "onDelete": "no action", 75 71 "onUpdate": "no action" 76 72 }, ··· 78 74 "name": "play_to_artists_play_uri_plays_uri_fk", 79 75 "tableFrom": "play_to_artists", 80 76 "tableTo": "plays", 81 - "columnsFrom": [ 82 - "play_uri" 83 - ], 84 - "columnsTo": [ 85 - "uri" 86 - ], 77 + "columnsFrom": ["play_uri"], 78 + "columnsTo": ["uri"], 87 79 "onDelete": "no action", 88 80 "onUpdate": "no action" 89 81 } ··· 91 83 "compositePrimaryKeys": { 92 84 "play_to_artists_play_uri_artist_mbid_pk": { 93 85 "name": "play_to_artists_play_uri_artist_mbid_pk", 94 - "columns": [ 95 - "play_uri", 96 - "artist_mbid" 97 - ] 86 + "columns": ["play_uri", "artist_mbid"] 98 87 } 99 88 }, 100 89 "uniqueConstraints": {}, ··· 204 193 "name": "plays_recording_mbid_recordings_mbid_fk", 205 194 "tableFrom": "plays", 206 195 "tableTo": "recordings", 207 - "columnsFrom": [ 208 - "recording_mbid" 209 - ], 210 - "columnsTo": [ 211 - "mbid" 212 - ], 196 + "columnsFrom": ["recording_mbid"], 197 + "columnsTo": ["mbid"], 213 198 "onDelete": "no action", 214 199 "onUpdate": "no action" 215 200 }, ··· 217 202 "name": "plays_release_mbid_releases_mbid_fk", 218 203 "tableFrom": "plays", 219 204 "tableTo": "releases", 220 - "columnsFrom": [ 221 - "release_mbid" 222 - ], 223 - "columnsTo": [ 224 - "mbid" 225 - ], 205 + "columnsFrom": ["release_mbid"], 206 + "columnsTo": ["mbid"], 226 207 "onDelete": "no action", 227 208 "onUpdate": "no action" 228 209 } ··· 509 490 "schemas": {}, 510 491 "tables": {} 511 492 } 512 - } 493 + }
+10 -29
packages/db/.drizzle/meta/0004_snapshot.json
··· 65 65 "name": "play_to_artists_artist_mbid_artists_mbid_fk", 66 66 "tableFrom": "play_to_artists", 67 67 "tableTo": "artists", 68 - "columnsFrom": [ 69 - "artist_mbid" 70 - ], 71 - "columnsTo": [ 72 - "mbid" 73 - ], 68 + "columnsFrom": ["artist_mbid"], 69 + "columnsTo": ["mbid"], 74 70 "onDelete": "no action", 75 71 "onUpdate": "no action" 76 72 }, ··· 78 74 "name": "play_to_artists_play_uri_plays_uri_fk", 79 75 "tableFrom": "play_to_artists", 80 76 "tableTo": "plays", 81 - "columnsFrom": [ 82 - "play_uri" 83 - ], 84 - "columnsTo": [ 85 - "uri" 86 - ], 77 + "columnsFrom": ["play_uri"], 78 + "columnsTo": ["uri"], 87 79 "onDelete": "no action", 88 80 "onUpdate": "no action" 89 81 } ··· 91 83 "compositePrimaryKeys": { 92 84 "play_to_artists_play_uri_artist_mbid_pk": { 93 85 "name": "play_to_artists_play_uri_artist_mbid_pk", 94 - "columns": [ 95 - "play_uri", 96 - "artist_mbid" 97 - ] 86 + "columns": ["play_uri", "artist_mbid"] 98 87 } 99 88 }, 100 89 "uniqueConstraints": {}, ··· 204 193 "name": "plays_recording_mbid_recordings_mbid_fk", 205 194 "tableFrom": "plays", 206 195 "tableTo": "recordings", 207 - "columnsFrom": [ 208 - "recording_mbid" 209 - ], 210 - "columnsTo": [ 211 - "mbid" 212 - ], 196 + "columnsFrom": ["recording_mbid"], 197 + "columnsTo": ["mbid"], 213 198 "onDelete": "no action", 214 199 "onUpdate": "no action" 215 200 }, ··· 217 202 "name": "plays_release_mbid_releases_mbid_fk", 218 203 "tableFrom": "plays", 219 204 "tableTo": "releases", 220 - "columnsFrom": [ 221 - "release_mbid" 222 - ], 223 - "columnsTo": [ 224 - "mbid" 225 - ], 205 + "columnsFrom": ["release_mbid"], 206 + "columnsTo": ["mbid"], 226 207 "onDelete": "no action", 227 208 "onUpdate": "no action" 228 209 } ··· 515 496 "schemas": {}, 516 497 "tables": {} 517 498 } 518 - } 499 + }
+10 -29
packages/db/.drizzle/meta/0005_snapshot.json
··· 65 65 "name": "play_to_artists_artist_mbid_artists_mbid_fk", 66 66 "tableFrom": "play_to_artists", 67 67 "tableTo": "artists", 68 - "columnsFrom": [ 69 - "artist_mbid" 70 - ], 71 - "columnsTo": [ 72 - "mbid" 73 - ], 68 + "columnsFrom": ["artist_mbid"], 69 + "columnsTo": ["mbid"], 74 70 "onDelete": "no action", 75 71 "onUpdate": "no action" 76 72 }, ··· 78 74 "name": "play_to_artists_play_uri_plays_uri_fk", 79 75 "tableFrom": "play_to_artists", 80 76 "tableTo": "plays", 81 - "columnsFrom": [ 82 - "play_uri" 83 - ], 84 - "columnsTo": [ 85 - "uri" 86 - ], 77 + "columnsFrom": ["play_uri"], 78 + "columnsTo": ["uri"], 87 79 "onDelete": "no action", 88 80 "onUpdate": "no action" 89 81 } ··· 91 83 "compositePrimaryKeys": { 92 84 "play_to_artists_play_uri_artist_mbid_pk": { 93 85 "name": "play_to_artists_play_uri_artist_mbid_pk", 94 - "columns": [ 95 - "play_uri", 96 - "artist_mbid" 97 - ] 86 + "columns": ["play_uri", "artist_mbid"] 98 87 } 99 88 }, 100 89 "uniqueConstraints": {}, ··· 204 193 "name": "plays_recording_mbid_recordings_mbid_fk", 205 194 "tableFrom": "plays", 206 195 "tableTo": "recordings", 207 - "columnsFrom": [ 208 - "recording_mbid" 209 - ], 210 - "columnsTo": [ 211 - "mbid" 212 - ], 196 + "columnsFrom": ["recording_mbid"], 197 + "columnsTo": ["mbid"], 213 198 "onDelete": "no action", 214 199 "onUpdate": "no action" 215 200 }, ··· 217 202 "name": "plays_release_mbid_releases_mbid_fk", 218 203 "tableFrom": "plays", 219 204 "tableTo": "releases", 220 - "columnsFrom": [ 221 - "release_mbid" 222 - ], 223 - "columnsTo": [ 224 - "mbid" 225 - ], 205 + "columnsFrom": ["release_mbid"], 206 + "columnsTo": ["mbid"], 226 207 "onDelete": "no action", 227 208 "onUpdate": "no action" 228 209 } ··· 515 496 "schemas": {}, 516 497 "tables": {} 517 498 } 518 - } 499 + }
+1 -1
packages/db/.drizzle/meta/_journal.json
··· 52 52 "breakpoints": true 53 53 } 54 54 ] 55 - } 55 + }
+3 -2
packages/db/connect.ts
··· 1 + import path from "node:path"; 2 + import process from "node:process"; 1 3 import { drizzle } from "drizzle-orm/postgres-js"; 2 4 import postgres from "postgres"; 5 + 3 6 import * as schema from "./schema"; 4 - import process from "node:process"; 5 - import path from "node:path"; 6 7 7 8 /// Trim a password from a db connection url 8 9 function withoutPassword(url: string) {
+7 -7
packages/db/schema.ts
··· 1 + import { createDeflate } from "node:zlib"; 1 2 import { sql } from "drizzle-orm"; 2 3 import { 4 + foreignKey, 5 + integer, 6 + jsonb, 7 + pgEnum, 8 + pgMaterializedView, 3 9 pgTable, 10 + primaryKey, 4 11 text, 5 - pgEnum, 6 12 timestamp, 7 13 uuid, 8 - integer, 9 - jsonb, 10 - primaryKey, 11 - foreignKey, 12 - pgMaterializedView, 13 14 } from "drizzle-orm/pg-core"; 14 - import { createDeflate } from "node:zlib"; 15 15 16 16 export const artists = pgTable("artists", { 17 17 mbid: uuid("mbid").primaryKey(),
+85 -84
packages/lexicons/src/index.ts
··· 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 4 import { 5 - createServer as createXrpcServer, 6 - Server as XrpcServer, 7 - Options as XrpcOptions, 8 5 AuthVerifier, 6 + createServer as createXrpcServer, 9 7 StreamAuthVerifier, 10 - } from '@atproto/xrpc-server' 11 - import { schemas } from './lexicons' 12 - import * as FmTealAlphaActorGetProfile from './types/fm/teal/alpha/actor/getProfile' 13 - import * as FmTealAlphaActorGetProfiles from './types/fm/teal/alpha/actor/getProfiles' 14 - import * as FmTealAlphaActorSearchActors from './types/fm/teal/alpha/actor/searchActors' 15 - import * as FmTealAlphaFeedGetActorFeed from './types/fm/teal/alpha/feed/getActorFeed' 16 - import * as FmTealAlphaFeedGetPlay from './types/fm/teal/alpha/feed/getPlay' 8 + Options as XrpcOptions, 9 + Server as XrpcServer, 10 + } from "@atproto/xrpc-server"; 11 + 12 + import { schemas } from "./lexicons"; 13 + import * as FmTealAlphaActorGetProfile from "./types/fm/teal/alpha/actor/getProfile"; 14 + import * as FmTealAlphaActorGetProfiles from "./types/fm/teal/alpha/actor/getProfiles"; 15 + import * as FmTealAlphaActorSearchActors from "./types/fm/teal/alpha/actor/searchActors"; 16 + import * as FmTealAlphaFeedGetActorFeed from "./types/fm/teal/alpha/feed/getActorFeed"; 17 + import * as FmTealAlphaFeedGetPlay from "./types/fm/teal/alpha/feed/getPlay"; 17 18 18 19 export function createServer(options?: XrpcOptions): Server { 19 - return new Server(options) 20 + return new Server(options); 20 21 } 21 22 22 23 export class Server { 23 - xrpc: XrpcServer 24 - app: AppNS 25 - fm: FmNS 26 - xyz: XyzNS 24 + xrpc: XrpcServer; 25 + app: AppNS; 26 + fm: FmNS; 27 + xyz: XyzNS; 27 28 28 29 constructor(options?: XrpcOptions) { 29 - this.xrpc = createXrpcServer(schemas, options) 30 - this.app = new AppNS(this) 31 - this.fm = new FmNS(this) 32 - this.xyz = new XyzNS(this) 30 + this.xrpc = createXrpcServer(schemas, options); 31 + this.app = new AppNS(this); 32 + this.fm = new FmNS(this); 33 + this.xyz = new XyzNS(this); 33 34 } 34 35 } 35 36 36 37 export class AppNS { 37 - _server: Server 38 - bsky: AppBskyNS 38 + _server: Server; 39 + bsky: AppBskyNS; 39 40 40 41 constructor(server: Server) { 41 - this._server = server 42 - this.bsky = new AppBskyNS(server) 42 + this._server = server; 43 + this.bsky = new AppBskyNS(server); 43 44 } 44 45 } 45 46 46 47 export class AppBskyNS { 47 - _server: Server 48 - actor: AppBskyActorNS 49 - richtext: AppBskyRichtextNS 48 + _server: Server; 49 + actor: AppBskyActorNS; 50 + richtext: AppBskyRichtextNS; 50 51 51 52 constructor(server: Server) { 52 - this._server = server 53 - this.actor = new AppBskyActorNS(server) 54 - this.richtext = new AppBskyRichtextNS(server) 53 + this._server = server; 54 + this.actor = new AppBskyActorNS(server); 55 + this.richtext = new AppBskyRichtextNS(server); 55 56 } 56 57 } 57 58 58 59 export class AppBskyActorNS { 59 - _server: Server 60 + _server: Server; 60 61 61 62 constructor(server: Server) { 62 - this._server = server 63 + this._server = server; 63 64 } 64 65 } 65 66 66 67 export class AppBskyRichtextNS { 67 - _server: Server 68 + _server: Server; 68 69 69 70 constructor(server: Server) { 70 - this._server = server 71 + this._server = server; 71 72 } 72 73 } 73 74 74 75 export class FmNS { 75 - _server: Server 76 - teal: FmTealNS 76 + _server: Server; 77 + teal: FmTealNS; 77 78 78 79 constructor(server: Server) { 79 - this._server = server 80 - this.teal = new FmTealNS(server) 80 + this._server = server; 81 + this.teal = new FmTealNS(server); 81 82 } 82 83 } 83 84 84 85 export class FmTealNS { 85 - _server: Server 86 - alpha: FmTealAlphaNS 86 + _server: Server; 87 + alpha: FmTealAlphaNS; 87 88 88 89 constructor(server: Server) { 89 - this._server = server 90 - this.alpha = new FmTealAlphaNS(server) 90 + this._server = server; 91 + this.alpha = new FmTealAlphaNS(server); 91 92 } 92 93 } 93 94 94 95 export class FmTealAlphaNS { 95 - _server: Server 96 - actor: FmTealAlphaActorNS 97 - feed: FmTealAlphaFeedNS 96 + _server: Server; 97 + actor: FmTealAlphaActorNS; 98 + feed: FmTealAlphaFeedNS; 98 99 99 100 constructor(server: Server) { 100 - this._server = server 101 - this.actor = new FmTealAlphaActorNS(server) 102 - this.feed = new FmTealAlphaFeedNS(server) 101 + this._server = server; 102 + this.actor = new FmTealAlphaActorNS(server); 103 + this.feed = new FmTealAlphaFeedNS(server); 103 104 } 104 105 } 105 106 106 107 export class FmTealAlphaActorNS { 107 - _server: Server 108 + _server: Server; 108 109 109 110 constructor(server: Server) { 110 - this._server = server 111 + this._server = server; 111 112 } 112 113 113 114 getProfile<AV extends AuthVerifier>( ··· 117 118 FmTealAlphaActorGetProfile.HandlerReqCtx<ExtractAuth<AV>> 118 119 >, 119 120 ) { 120 - const nsid = 'fm.teal.alpha.actor.getProfile' // @ts-ignore 121 - return this._server.xrpc.method(nsid, cfg) 121 + const nsid = "fm.teal.alpha.actor.getProfile"; // @ts-ignore 122 + return this._server.xrpc.method(nsid, cfg); 122 123 } 123 124 124 125 getProfiles<AV extends AuthVerifier>( ··· 128 129 FmTealAlphaActorGetProfiles.HandlerReqCtx<ExtractAuth<AV>> 129 130 >, 130 131 ) { 131 - const nsid = 'fm.teal.alpha.actor.getProfiles' // @ts-ignore 132 - return this._server.xrpc.method(nsid, cfg) 132 + const nsid = "fm.teal.alpha.actor.getProfiles"; // @ts-ignore 133 + return this._server.xrpc.method(nsid, cfg); 133 134 } 134 135 135 136 searchActors<AV extends AuthVerifier>( ··· 139 140 FmTealAlphaActorSearchActors.HandlerReqCtx<ExtractAuth<AV>> 140 141 >, 141 142 ) { 142 - const nsid = 'fm.teal.alpha.actor.searchActors' // @ts-ignore 143 - return this._server.xrpc.method(nsid, cfg) 143 + const nsid = "fm.teal.alpha.actor.searchActors"; // @ts-ignore 144 + return this._server.xrpc.method(nsid, cfg); 144 145 } 145 146 } 146 147 147 148 export class FmTealAlphaFeedNS { 148 - _server: Server 149 + _server: Server; 149 150 150 151 constructor(server: Server) { 151 - this._server = server 152 + this._server = server; 152 153 } 153 154 154 155 getActorFeed<AV extends AuthVerifier>( ··· 158 159 FmTealAlphaFeedGetActorFeed.HandlerReqCtx<ExtractAuth<AV>> 159 160 >, 160 161 ) { 161 - const nsid = 'fm.teal.alpha.feed.getActorFeed' // @ts-ignore 162 - return this._server.xrpc.method(nsid, cfg) 162 + const nsid = "fm.teal.alpha.feed.getActorFeed"; // @ts-ignore 163 + return this._server.xrpc.method(nsid, cfg); 163 164 } 164 165 165 166 getPlay<AV extends AuthVerifier>( ··· 169 170 FmTealAlphaFeedGetPlay.HandlerReqCtx<ExtractAuth<AV>> 170 171 >, 171 172 ) { 172 - const nsid = 'fm.teal.alpha.feed.getPlay' // @ts-ignore 173 - return this._server.xrpc.method(nsid, cfg) 173 + const nsid = "fm.teal.alpha.feed.getPlay"; // @ts-ignore 174 + return this._server.xrpc.method(nsid, cfg); 174 175 } 175 176 } 176 177 177 178 export class XyzNS { 178 - _server: Server 179 - statusphere: XyzStatusphereNS 179 + _server: Server; 180 + statusphere: XyzStatusphereNS; 180 181 181 182 constructor(server: Server) { 182 - this._server = server 183 - this.statusphere = new XyzStatusphereNS(server) 183 + this._server = server; 184 + this.statusphere = new XyzStatusphereNS(server); 184 185 } 185 186 } 186 187 187 188 export class XyzStatusphereNS { 188 - _server: Server 189 + _server: Server; 189 190 190 191 constructor(server: Server) { 191 - this._server = server 192 + this._server = server; 192 193 } 193 194 } 194 195 195 196 type SharedRateLimitOpts<T> = { 196 - name: string 197 - calcKey?: (ctx: T) => string | null 198 - calcPoints?: (ctx: T) => number 199 - } 197 + name: string; 198 + calcKey?: (ctx: T) => string | null; 199 + calcPoints?: (ctx: T) => number; 200 + }; 200 201 type RouteRateLimitOpts<T> = { 201 - durationMs: number 202 - points: number 203 - calcKey?: (ctx: T) => string | null 204 - calcPoints?: (ctx: T) => number 205 - } 206 - type HandlerOpts = { blobLimit?: number } 207 - type HandlerRateLimitOpts<T> = SharedRateLimitOpts<T> | RouteRateLimitOpts<T> 202 + durationMs: number; 203 + points: number; 204 + calcKey?: (ctx: T) => string | null; 205 + calcPoints?: (ctx: T) => number; 206 + }; 207 + type HandlerOpts = { blobLimit?: number }; 208 + type HandlerRateLimitOpts<T> = SharedRateLimitOpts<T> | RouteRateLimitOpts<T>; 208 209 type ConfigOf<Auth, Handler, ReqCtx> = 209 210 | Handler 210 211 | { 211 - auth?: Auth 212 - opts?: HandlerOpts 213 - rateLimit?: HandlerRateLimitOpts<ReqCtx> | HandlerRateLimitOpts<ReqCtx>[] 214 - handler: Handler 215 - } 212 + auth?: Auth; 213 + opts?: HandlerOpts; 214 + rateLimit?: HandlerRateLimitOpts<ReqCtx> | HandlerRateLimitOpts<ReqCtx>[]; 215 + handler: Handler; 216 + }; 216 217 type ExtractAuth<AV extends AuthVerifier | StreamAuthVerifier> = Extract< 217 218 Awaited<ReturnType<AV>>, 218 219 { credentials: unknown } 219 - > 220 + >;
+265 -265
packages/lexicons/src/lexicons.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { LexiconDoc, Lexicons } from '@atproto/lexicon' 4 + import { LexiconDoc, Lexicons } from "@atproto/lexicon"; 5 5 6 6 export const schemaDict = { 7 7 AppBskyActorProfile: { 8 8 lexicon: 1, 9 - id: 'app.bsky.actor.profile', 9 + id: "app.bsky.actor.profile", 10 10 defs: { 11 11 main: { 12 - type: 'record', 13 - description: 'A declaration of a Bluesky account profile.', 14 - key: 'literal:self', 12 + type: "record", 13 + description: "A declaration of a Bluesky account profile.", 14 + key: "literal:self", 15 15 record: { 16 - type: 'object', 16 + type: "object", 17 17 properties: { 18 18 displayName: { 19 - type: 'string', 19 + type: "string", 20 20 maxGraphemes: 64, 21 21 maxLength: 640, 22 22 }, 23 23 description: { 24 - type: 'string', 25 - description: 'Free-form profile description text.', 24 + type: "string", 25 + description: "Free-form profile description text.", 26 26 maxGraphemes: 256, 27 27 maxLength: 2560, 28 28 }, 29 29 avatar: { 30 - type: 'blob', 30 + type: "blob", 31 31 description: 32 32 "Small image to be displayed next to posts from account. AKA, 'profile picture'", 33 - accept: ['image/png', 'image/jpeg'], 33 + accept: ["image/png", "image/jpeg"], 34 34 maxSize: 1000000, 35 35 }, 36 36 banner: { 37 - type: 'blob', 37 + type: "blob", 38 38 description: 39 - 'Larger horizontal image to display behind profile view.', 40 - accept: ['image/png', 'image/jpeg'], 39 + "Larger horizontal image to display behind profile view.", 40 + accept: ["image/png", "image/jpeg"], 41 41 maxSize: 1000000, 42 42 }, 43 43 labels: { 44 - type: 'union', 44 + type: "union", 45 45 description: 46 - 'Self-label values, specific to the Bluesky application, on the overall account.', 47 - refs: ['lex:com.atproto.label.defs#selfLabels'], 46 + "Self-label values, specific to the Bluesky application, on the overall account.", 47 + refs: ["lex:com.atproto.label.defs#selfLabels"], 48 48 }, 49 49 joinedViaStarterPack: { 50 - type: 'ref', 51 - ref: 'lex:com.atproto.repo.strongRef', 50 + type: "ref", 51 + ref: "lex:com.atproto.repo.strongRef", 52 52 }, 53 53 createdAt: { 54 - type: 'string', 55 - format: 'datetime', 54 + type: "string", 55 + format: "datetime", 56 56 }, 57 57 }, 58 58 }, ··· 61 61 }, 62 62 AppBskyRichtextFacet: { 63 63 lexicon: 1, 64 - id: 'app.bsky.richtext.facet', 64 + id: "app.bsky.richtext.facet", 65 65 defs: { 66 66 main: { 67 - type: 'object', 68 - description: 'Annotation of a sub-string within rich text.', 69 - required: ['index', 'features'], 67 + type: "object", 68 + description: "Annotation of a sub-string within rich text.", 69 + required: ["index", "features"], 70 70 properties: { 71 71 index: { 72 - type: 'ref', 73 - ref: 'lex:app.bsky.richtext.facet#byteSlice', 72 + type: "ref", 73 + ref: "lex:app.bsky.richtext.facet#byteSlice", 74 74 }, 75 75 features: { 76 - type: 'array', 76 + type: "array", 77 77 items: { 78 - type: 'union', 78 + type: "union", 79 79 refs: [ 80 - 'lex:app.bsky.richtext.facet#mention', 81 - 'lex:app.bsky.richtext.facet#link', 82 - 'lex:app.bsky.richtext.facet#tag', 80 + "lex:app.bsky.richtext.facet#mention", 81 + "lex:app.bsky.richtext.facet#link", 82 + "lex:app.bsky.richtext.facet#tag", 83 83 ], 84 84 }, 85 85 }, 86 86 }, 87 87 }, 88 88 mention: { 89 - type: 'object', 89 + type: "object", 90 90 description: 91 91 "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.", 92 - required: ['did'], 92 + required: ["did"], 93 93 properties: { 94 94 did: { 95 - type: 'string', 96 - format: 'did', 95 + type: "string", 96 + format: "did", 97 97 }, 98 98 }, 99 99 }, 100 100 link: { 101 - type: 'object', 101 + type: "object", 102 102 description: 103 - 'Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.', 104 - required: ['uri'], 103 + "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.", 104 + required: ["uri"], 105 105 properties: { 106 106 uri: { 107 - type: 'string', 108 - format: 'uri', 107 + type: "string", 108 + format: "uri", 109 109 }, 110 110 }, 111 111 }, 112 112 tag: { 113 - type: 'object', 113 + type: "object", 114 114 description: 115 115 "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').", 116 - required: ['tag'], 116 + required: ["tag"], 117 117 properties: { 118 118 tag: { 119 - type: 'string', 119 + type: "string", 120 120 maxLength: 640, 121 121 maxGraphemes: 64, 122 122 }, 123 123 }, 124 124 }, 125 125 byteSlice: { 126 - type: 'object', 126 + type: "object", 127 127 description: 128 - 'Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.', 129 - required: ['byteStart', 'byteEnd'], 128 + "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.", 129 + required: ["byteStart", "byteEnd"], 130 130 properties: { 131 131 byteStart: { 132 - type: 'integer', 132 + type: "integer", 133 133 minimum: 0, 134 134 }, 135 135 byteEnd: { 136 - type: 'integer', 136 + type: "integer", 137 137 minimum: 0, 138 138 }, 139 139 }, ··· 142 142 }, 143 143 FmTealAlphaActorDefs: { 144 144 lexicon: 1, 145 - id: 'fm.teal.alpha.actor.defs', 145 + id: "fm.teal.alpha.actor.defs", 146 146 defs: { 147 147 profileView: { 148 - type: 'object', 148 + type: "object", 149 149 properties: { 150 150 did: { 151 - type: 'string', 152 - description: 'The decentralized identifier of the actor', 151 + type: "string", 152 + description: "The decentralized identifier of the actor", 153 153 }, 154 154 displayName: { 155 - type: 'string', 155 + type: "string", 156 156 }, 157 157 description: { 158 - type: 'string', 159 - description: 'Free-form profile description text.', 158 + type: "string", 159 + description: "Free-form profile description text.", 160 160 }, 161 161 descriptionFacets: { 162 - type: 'array', 162 + type: "array", 163 163 description: 164 - 'Annotations of text in the profile description (mentions, URLs, hashtags, etc). May be changed to another (backwards compatible) lexicon.', 164 + "Annotations of text in the profile description (mentions, URLs, hashtags, etc). May be changed to another (backwards compatible) lexicon.", 165 165 items: { 166 - type: 'ref', 167 - ref: 'lex:app.bsky.richtext.facet', 166 + type: "ref", 167 + ref: "lex:app.bsky.richtext.facet", 168 168 }, 169 169 }, 170 170 featuredItem: { 171 - type: 'ref', 171 + type: "ref", 172 172 description: 173 173 "The user's most recent item featured on their profile.", 174 - ref: 'lex:fm.teal.alpha.actor.profile#featuredItem', 174 + ref: "lex:fm.teal.alpha.actor.profile#featuredItem", 175 175 }, 176 176 avatar: { 177 - type: 'string', 178 - description: 'IPLD of the avatar', 177 + type: "string", 178 + description: "IPLD of the avatar", 179 179 }, 180 180 banner: { 181 - type: 'string', 182 - description: 'IPLD of the banner image', 181 + type: "string", 182 + description: "IPLD of the banner image", 183 183 }, 184 184 createdAt: { 185 - type: 'string', 186 - format: 'datetime', 185 + type: "string", 186 + format: "datetime", 187 187 }, 188 188 }, 189 189 }, 190 190 miniProfileView: { 191 - type: 'object', 191 + type: "object", 192 192 properties: { 193 193 did: { 194 - type: 'string', 195 - description: 'The decentralized identifier of the actor', 194 + type: "string", 195 + description: "The decentralized identifier of the actor", 196 196 }, 197 197 displayName: { 198 - type: 'string', 198 + type: "string", 199 199 }, 200 200 handle: { 201 - type: 'string', 201 + type: "string", 202 202 }, 203 203 avatar: { 204 - type: 'string', 205 - description: 'IPLD of the avatar', 204 + type: "string", 205 + description: "IPLD of the avatar", 206 206 }, 207 207 }, 208 208 }, ··· 210 210 }, 211 211 FmTealAlphaActorGetProfile: { 212 212 lexicon: 1, 213 - id: 'fm.teal.alpha.actor.getProfile', 213 + id: "fm.teal.alpha.actor.getProfile", 214 214 description: 215 - 'This lexicon is in a not officially released state. It is subject to change. | Retrieves a play given an author DID and record key.', 215 + "This lexicon is in a not officially released state. It is subject to change. | Retrieves a play given an author DID and record key.", 216 216 defs: { 217 217 main: { 218 - type: 'query', 218 + type: "query", 219 219 parameters: { 220 - type: 'params', 221 - required: ['actor'], 220 + type: "params", 221 + required: ["actor"], 222 222 properties: { 223 223 actor: { 224 - type: 'string', 225 - format: 'at-identifier', 224 + type: "string", 225 + format: "at-identifier", 226 226 description: "The author's DID", 227 227 }, 228 228 }, 229 229 }, 230 230 output: { 231 - encoding: 'application/json', 231 + encoding: "application/json", 232 232 schema: { 233 - type: 'object', 234 - required: ['actor'], 233 + type: "object", 234 + required: ["actor"], 235 235 properties: { 236 236 actor: { 237 - type: 'ref', 238 - ref: 'lex:fm.teal.alpha.actor.defs#profileView', 237 + type: "ref", 238 + ref: "lex:fm.teal.alpha.actor.defs#profileView", 239 239 }, 240 240 }, 241 241 }, ··· 245 245 }, 246 246 FmTealAlphaActorGetProfiles: { 247 247 lexicon: 1, 248 - id: 'fm.teal.alpha.actor.getProfiles', 248 + id: "fm.teal.alpha.actor.getProfiles", 249 249 description: 250 - 'This lexicon is in a not officially released state. It is subject to change. | Retrieves the associated profile.', 250 + "This lexicon is in a not officially released state. It is subject to change. | Retrieves the associated profile.", 251 251 defs: { 252 252 main: { 253 - type: 'query', 253 + type: "query", 254 254 parameters: { 255 - type: 'params', 256 - required: ['actors'], 255 + type: "params", 256 + required: ["actors"], 257 257 properties: { 258 258 actors: { 259 - type: 'array', 259 + type: "array", 260 260 items: { 261 - type: 'string', 262 - format: 'at-identifier', 261 + type: "string", 262 + format: "at-identifier", 263 263 }, 264 - description: 'Array of actor DIDs', 264 + description: "Array of actor DIDs", 265 265 }, 266 266 }, 267 267 }, 268 268 output: { 269 - encoding: 'application/json', 269 + encoding: "application/json", 270 270 schema: { 271 - type: 'object', 272 - required: ['actors'], 271 + type: "object", 272 + required: ["actors"], 273 273 properties: { 274 274 actors: { 275 - type: 'array', 275 + type: "array", 276 276 items: { 277 - type: 'ref', 278 - ref: 'lex:fm.teal.alpha.actor.defs#miniProfileView', 277 + type: "ref", 278 + ref: "lex:fm.teal.alpha.actor.defs#miniProfileView", 279 279 }, 280 280 }, 281 281 }, ··· 286 286 }, 287 287 FmTealAlphaActorProfile: { 288 288 lexicon: 1, 289 - id: 'fm.teal.alpha.actor.profile', 289 + id: "fm.teal.alpha.actor.profile", 290 290 defs: { 291 291 main: { 292 - type: 'record', 292 + type: "record", 293 293 description: 294 - 'This lexicon is in a not officially released state. It is subject to change. | A declaration of a teal.fm account profile.', 295 - key: 'literal:self', 294 + "This lexicon is in a not officially released state. It is subject to change. | A declaration of a teal.fm account profile.", 295 + key: "literal:self", 296 296 record: { 297 - type: 'object', 297 + type: "object", 298 298 properties: { 299 299 displayName: { 300 - type: 'string', 300 + type: "string", 301 301 maxGraphemes: 64, 302 302 maxLength: 640, 303 303 }, 304 304 description: { 305 - type: 'string', 306 - description: 'Free-form profile description text.', 305 + type: "string", 306 + description: "Free-form profile description text.", 307 307 maxGraphemes: 256, 308 308 maxLength: 2560, 309 309 }, 310 310 descriptionFacets: { 311 - type: 'array', 311 + type: "array", 312 312 description: 313 - 'Annotations of text in the profile description (mentions, URLs, hashtags, etc).', 313 + "Annotations of text in the profile description (mentions, URLs, hashtags, etc).", 314 314 items: { 315 - type: 'ref', 316 - ref: 'lex:app.bsky.richtext.facet', 315 + type: "ref", 316 + ref: "lex:app.bsky.richtext.facet", 317 317 }, 318 318 }, 319 319 featuredItem: { 320 - type: 'ref', 320 + type: "ref", 321 321 description: 322 322 "The user's most recent item featured on their profile.", 323 - ref: 'lex:fm.teal.alpha.actor.profile#featuredItem', 323 + ref: "lex:fm.teal.alpha.actor.profile#featuredItem", 324 324 }, 325 325 avatar: { 326 - type: 'blob', 326 + type: "blob", 327 327 description: 328 328 "Small image to be displayed next to posts from account. AKA, 'profile picture'", 329 - accept: ['image/png', 'image/jpeg'], 329 + accept: ["image/png", "image/jpeg"], 330 330 maxSize: 1000000, 331 331 }, 332 332 banner: { 333 - type: 'blob', 333 + type: "blob", 334 334 description: 335 - 'Larger horizontal image to display behind profile view.', 336 - accept: ['image/png', 'image/jpeg'], 335 + "Larger horizontal image to display behind profile view.", 336 + accept: ["image/png", "image/jpeg"], 337 337 maxSize: 1000000, 338 338 }, 339 339 createdAt: { 340 - type: 'string', 341 - format: 'datetime', 340 + type: "string", 341 + format: "datetime", 342 342 }, 343 343 }, 344 344 }, 345 345 }, 346 346 featuredItem: { 347 - type: 'object', 348 - required: ['mbid', 'type'], 347 + type: "object", 348 + required: ["mbid", "type"], 349 349 properties: { 350 350 mbid: { 351 - type: 'string', 352 - description: 'The Musicbrainz ID of the item', 351 + type: "string", 352 + description: "The Musicbrainz ID of the item", 353 353 }, 354 354 type: { 355 - type: 'string', 355 + type: "string", 356 356 description: 357 - 'The type of the item. Must be a valid Musicbrainz type, e.g. album, track, recording, etc.', 357 + "The type of the item. Must be a valid Musicbrainz type, e.g. album, track, recording, etc.", 358 358 }, 359 359 }, 360 360 }, ··· 362 362 }, 363 363 FmTealAlphaActorSearchActors: { 364 364 lexicon: 1, 365 - id: 'fm.teal.alpha.actor.searchActors', 365 + id: "fm.teal.alpha.actor.searchActors", 366 366 description: 367 - 'This lexicon is in a not officially released state. It is subject to change. | Searches for actors based on profile contents.', 367 + "This lexicon is in a not officially released state. It is subject to change. | Searches for actors based on profile contents.", 368 368 defs: { 369 369 main: { 370 - type: 'query', 370 + type: "query", 371 371 parameters: { 372 - type: 'params', 373 - required: ['q'], 372 + type: "params", 373 + required: ["q"], 374 374 properties: { 375 375 q: { 376 - type: 'string', 377 - description: 'The search query', 376 + type: "string", 377 + description: "The search query", 378 378 maxGraphemes: 128, 379 379 maxLength: 640, 380 380 }, 381 381 limit: { 382 - type: 'integer', 383 - description: 'The maximum number of actors to return', 382 + type: "integer", 383 + description: "The maximum number of actors to return", 384 384 minimum: 1, 385 385 maximum: 25, 386 386 }, 387 387 cursor: { 388 - type: 'string', 389 - description: 'Cursor for pagination', 388 + type: "string", 389 + description: "Cursor for pagination", 390 390 }, 391 391 }, 392 392 }, 393 393 output: { 394 - encoding: 'application/json', 394 + encoding: "application/json", 395 395 schema: { 396 - type: 'object', 397 - required: ['actors'], 396 + type: "object", 397 + required: ["actors"], 398 398 properties: { 399 399 actors: { 400 - type: 'array', 400 + type: "array", 401 401 items: { 402 - type: 'ref', 403 - ref: 'lex:fm.teal.alpha.actor.defs#miniProfileView', 402 + type: "ref", 403 + ref: "lex:fm.teal.alpha.actor.defs#miniProfileView", 404 404 }, 405 405 }, 406 406 cursor: { 407 - type: 'string', 408 - description: 'Cursor for pagination', 407 + type: "string", 408 + description: "Cursor for pagination", 409 409 }, 410 410 }, 411 411 }, ··· 415 415 }, 416 416 FmTealAlphaActorStatus: { 417 417 lexicon: 1, 418 - id: 'fm.teal.alpha.actor.status', 418 + id: "fm.teal.alpha.actor.status", 419 419 defs: { 420 420 main: { 421 - type: 'record', 421 + type: "record", 422 422 description: 423 - 'This lexicon is in a not officially released state. It is subject to change. | A declaration of the status of the actor. Only one can be shown at a time. If there are multiple, the latest record should be picked and earlier records should be deleted or tombstoned.', 424 - key: 'literal:self', 423 + "This lexicon is in a not officially released state. It is subject to change. | A declaration of the status of the actor. Only one can be shown at a time. If there are multiple, the latest record should be picked and earlier records should be deleted or tombstoned.", 424 + key: "literal:self", 425 425 record: { 426 - type: 'object', 427 - required: ['time', 'item'], 426 + type: "object", 427 + required: ["time", "item"], 428 428 properties: { 429 429 time: { 430 - type: 'string', 431 - format: 'datetime', 432 - description: 'The unix timestamp of when the item was recorded', 430 + type: "string", 431 + format: "datetime", 432 + description: "The unix timestamp of when the item was recorded", 433 433 }, 434 434 expiry: { 435 435 type: 'string', ··· 438 438 'The unix timestamp of the expiry time of the item. If unavailable, default to 10 minutes past the start time.', 439 439 }, 440 440 item: { 441 - type: 'ref', 442 - ref: 'lex:fm.teal.alpha.feed.defs#playView', 441 + type: "ref", 442 + ref: "lex:fm.teal.alpha.feed.defs#playView", 443 443 }, 444 444 }, 445 445 }, ··· 448 448 }, 449 449 FmTealAlphaFeedDefs: { 450 450 lexicon: 1, 451 - id: 'fm.teal.alpha.feed.defs', 451 + id: "fm.teal.alpha.feed.defs", 452 452 description: 453 - 'This lexicon is in a not officially released state. It is subject to change. | Misc. items related to feeds.', 453 + "This lexicon is in a not officially released state. It is subject to change. | Misc. items related to feeds.", 454 454 defs: { 455 455 playView: { 456 456 type: 'object', 457 457 required: ['trackName', 'artists'], 458 458 properties: { 459 459 trackName: { 460 - type: 'string', 460 + type: "string", 461 461 minLength: 1, 462 462 maxLength: 256, 463 463 maxGraphemes: 2560, 464 - description: 'The name of the track', 464 + description: "The name of the track", 465 465 }, 466 466 trackMbId: { 467 - type: 'string', 468 - description: 'The Musicbrainz ID of the track', 467 + type: "string", 468 + description: "The Musicbrainz ID of the track", 469 469 }, 470 470 recordingMbId: { 471 - type: 'string', 472 - description: 'The Musicbrainz recording ID of the track', 471 + type: "string", 472 + description: "The Musicbrainz recording ID of the track", 473 473 }, 474 474 duration: { 475 - type: 'integer', 476 - description: 'The length of the track in seconds', 475 + type: "integer", 476 + description: "The length of the track in seconds", 477 477 }, 478 478 artists: { 479 479 type: 'array', ··· 484 484 description: 'Array of artists in order of original appearance.', 485 485 }, 486 486 releaseName: { 487 - type: 'string', 487 + type: "string", 488 488 maxLength: 256, 489 489 maxGraphemes: 2560, 490 - description: 'The name of the release/album', 490 + description: "The name of the release/album", 491 491 }, 492 492 releaseMbId: { 493 - type: 'string', 494 - description: 'The Musicbrainz release ID', 493 + type: "string", 494 + description: "The Musicbrainz release ID", 495 495 }, 496 496 isrc: { 497 - type: 'string', 498 - description: 'The ISRC code associated with the recording', 497 + type: "string", 498 + description: "The ISRC code associated with the recording", 499 499 }, 500 500 originUrl: { 501 - type: 'string', 502 - description: 'The URL associated with this track', 501 + type: "string", 502 + description: "The URL associated with this track", 503 503 }, 504 504 musicServiceBaseDomain: { 505 - type: 'string', 505 + type: "string", 506 506 description: 507 507 "The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided.", 508 508 }, 509 509 submissionClientAgent: { 510 - type: 'string', 510 + type: "string", 511 511 maxLength: 256, 512 512 maxGraphemes: 2560, 513 513 description: 514 514 "A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided.", 515 515 }, 516 516 playedTime: { 517 - type: 'string', 518 - format: 'datetime', 519 - description: 'The unix timestamp of when the track was played', 517 + type: "string", 518 + format: "datetime", 519 + description: "The unix timestamp of when the track was played", 520 520 }, 521 521 }, 522 522 }, ··· 541 541 }, 542 542 FmTealAlphaFeedGetActorFeed: { 543 543 lexicon: 1, 544 - id: 'fm.teal.alpha.feed.getActorFeed', 544 + id: "fm.teal.alpha.feed.getActorFeed", 545 545 description: 546 546 "This lexicon is in a not officially released state. It is subject to change. | Retrieves multiple plays from the index or via an author's DID.", 547 547 defs: { 548 548 main: { 549 - type: 'query', 549 + type: "query", 550 550 parameters: { 551 - type: 'params', 552 - required: ['authorDID'], 551 + type: "params", 552 + required: ["authorDID"], 553 553 properties: { 554 554 authorDID: { 555 - type: 'string', 556 - format: 'at-identifier', 555 + type: "string", 556 + format: "at-identifier", 557 557 description: "The author's DID for the play", 558 558 }, 559 559 cursor: { 560 - type: 'string', 561 - description: 'The cursor to start the query from', 560 + type: "string", 561 + description: "The cursor to start the query from", 562 562 }, 563 563 limit: { 564 - type: 'integer', 564 + type: "integer", 565 565 description: 566 - 'The upper limit of tracks to get per request. Default is 20, max is 50.', 566 + "The upper limit of tracks to get per request. Default is 20, max is 50.", 567 567 }, 568 568 }, 569 569 }, 570 570 output: { 571 - encoding: 'application/json', 571 + encoding: "application/json", 572 572 schema: { 573 - type: 'object', 574 - required: ['plays'], 573 + type: "object", 574 + required: ["plays"], 575 575 properties: { 576 576 plays: { 577 - type: 'array', 577 + type: "array", 578 578 items: { 579 - type: 'ref', 580 - ref: 'lex:fm.teal.alpha.feed.defs#playView', 579 + type: "ref", 580 + ref: "lex:fm.teal.alpha.feed.defs#playView", 581 581 }, 582 582 }, 583 583 }, ··· 588 588 }, 589 589 FmTealAlphaFeedGetPlay: { 590 590 lexicon: 1, 591 - id: 'fm.teal.alpha.feed.getPlay', 591 + id: "fm.teal.alpha.feed.getPlay", 592 592 description: 593 - 'This lexicon is in a not officially released state. It is subject to change. | Retrieves a play given an author DID and record key.', 593 + "This lexicon is in a not officially released state. It is subject to change. | Retrieves a play given an author DID and record key.", 594 594 defs: { 595 595 main: { 596 - type: 'query', 596 + type: "query", 597 597 parameters: { 598 - type: 'params', 599 - required: ['authorDID', 'rkey'], 598 + type: "params", 599 + required: ["authorDID", "rkey"], 600 600 properties: { 601 601 authorDID: { 602 - type: 'string', 603 - format: 'at-identifier', 602 + type: "string", 603 + format: "at-identifier", 604 604 description: "The author's DID for the play", 605 605 }, 606 606 rkey: { 607 - type: 'string', 608 - description: 'The record key of the play', 607 + type: "string", 608 + description: "The record key of the play", 609 609 }, 610 610 }, 611 611 }, 612 612 output: { 613 - encoding: 'application/json', 613 + encoding: "application/json", 614 614 schema: { 615 - type: 'object', 616 - required: ['play'], 615 + type: "object", 616 + required: ["play"], 617 617 properties: { 618 618 play: { 619 - type: 'ref', 620 - ref: 'lex:fm.teal.alpha.feed.defs#playView', 619 + type: "ref", 620 + ref: "lex:fm.teal.alpha.feed.defs#playView", 621 621 }, 622 622 }, 623 623 }, ··· 627 627 }, 628 628 FmTealAlphaFeedPlay: { 629 629 lexicon: 1, 630 - id: 'fm.teal.alpha.feed.play', 630 + id: "fm.teal.alpha.feed.play", 631 631 description: 632 632 "This lexicon is in a not officially released state. It is subject to change. | A declaration of a teal.fm play. Plays are submitted as a result of a user listening to a track. Plays should be marked as tracked when a user has listened to the entire track if it's under 2 minutes long, or half of the track's duration up to 4 minutes, whichever is longest.", 633 633 defs: { 634 634 main: { 635 - type: 'record', 636 - key: 'tid', 635 + type: "record", 636 + key: "tid", 637 637 record: { 638 638 type: 'object', 639 639 required: ['trackName'], 640 640 properties: { 641 641 trackName: { 642 - type: 'string', 642 + type: "string", 643 643 minLength: 1, 644 644 maxLength: 256, 645 645 maxGraphemes: 2560, 646 - description: 'The name of the track', 646 + description: "The name of the track", 647 647 }, 648 648 trackMbId: { 649 - type: 'string', 650 - description: 'The Musicbrainz ID of the track', 649 + type: "string", 650 + description: "The Musicbrainz ID of the track", 651 651 }, 652 652 recordingMbId: { 653 - type: 'string', 654 - description: 'The Musicbrainz recording ID of the track', 653 + type: "string", 654 + description: "The Musicbrainz recording ID of the track", 655 655 }, 656 656 duration: { 657 - type: 'integer', 658 - description: 'The length of the track in seconds', 657 + type: "integer", 658 + description: "The length of the track in seconds", 659 659 }, 660 660 artistNames: { 661 - type: 'array', 661 + type: "array", 662 662 items: { 663 - type: 'string', 663 + type: "string", 664 664 minLength: 1, 665 665 maxLength: 256, 666 666 maxGraphemes: 2560, ··· 669 669 "Array of artist names in order of original appearance. Prefer using 'artists'.", 670 670 }, 671 671 artistMbIds: { 672 - type: 'array', 672 + type: "array", 673 673 items: { 674 - type: 'string', 674 + type: "string", 675 675 }, 676 676 description: 677 677 "Array of Musicbrainz artist IDs. Prefer using 'artists'.", ··· 685 685 description: 'Array of artists in order of original appearance.', 686 686 }, 687 687 releaseName: { 688 - type: 'string', 688 + type: "string", 689 689 maxLength: 256, 690 690 maxGraphemes: 2560, 691 - description: 'The name of the release/album', 691 + description: "The name of the release/album", 692 692 }, 693 693 releaseMbId: { 694 - type: 'string', 695 - description: 'The Musicbrainz release ID', 694 + type: "string", 695 + description: "The Musicbrainz release ID", 696 696 }, 697 697 isrc: { 698 - type: 'string', 699 - description: 'The ISRC code associated with the recording', 698 + type: "string", 699 + description: "The ISRC code associated with the recording", 700 700 }, 701 701 originUrl: { 702 - type: 'string', 703 - description: 'The URL associated with this track', 702 + type: "string", 703 + description: "The URL associated with this track", 704 704 }, 705 705 musicServiceBaseDomain: { 706 - type: 'string', 706 + type: "string", 707 707 description: 708 708 "The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if unavailable or not provided.", 709 709 }, 710 710 submissionClientAgent: { 711 - type: 'string', 711 + type: "string", 712 712 maxLength: 256, 713 713 maxGraphemes: 2560, 714 714 description: 715 715 "A metadata string specifying the user agent where the format is `<app-identifier>/<version> (<kernel/OS-base>; <platform/OS-version>; <device-model>)`. If string is provided, only `app-identifier` and `version` are required. `app-identifier` is recommended to be in reverse dns format. Defaults to 'manual/unknown' if unavailable or not provided.", 716 716 }, 717 717 playedTime: { 718 - type: 'string', 719 - format: 'datetime', 720 - description: 'The unix timestamp of when the track was played', 718 + type: "string", 719 + format: "datetime", 720 + description: "The unix timestamp of when the track was played", 721 721 }, 722 722 }, 723 723 }, ··· 726 726 }, 727 727 XyzStatusphereStatus: { 728 728 lexicon: 1, 729 - id: 'xyz.statusphere.status', 729 + id: "xyz.statusphere.status", 730 730 defs: { 731 731 main: { 732 - type: 'record', 733 - key: 'tid', 732 + type: "record", 733 + key: "tid", 734 734 record: { 735 - type: 'object', 736 - required: ['status', 'createdAt'], 735 + type: "object", 736 + required: ["status", "createdAt"], 737 737 properties: { 738 738 status: { 739 - type: 'string', 739 + type: "string", 740 740 minLength: 1, 741 741 maxGraphemes: 1, 742 742 maxLength: 32, 743 743 }, 744 744 createdAt: { 745 - type: 'string', 746 - format: 'datetime', 745 + type: "string", 746 + format: "datetime", 747 747 }, 748 748 }, 749 749 }, 750 750 }, 751 751 }, 752 752 }, 753 - } as const satisfies Record<string, LexiconDoc> 753 + } as const satisfies Record<string, LexiconDoc>; 754 754 755 - export const schemas = Object.values(schemaDict) 756 - export const lexicons: Lexicons = new Lexicons(schemas) 755 + export const schemas = Object.values(schemaDict); 756 + export const lexicons: Lexicons = new Lexicons(schemas); 757 757 export const ids = { 758 - AppBskyActorProfile: 'app.bsky.actor.profile', 759 - AppBskyRichtextFacet: 'app.bsky.richtext.facet', 760 - FmTealAlphaActorDefs: 'fm.teal.alpha.actor.defs', 761 - FmTealAlphaActorGetProfile: 'fm.teal.alpha.actor.getProfile', 762 - FmTealAlphaActorGetProfiles: 'fm.teal.alpha.actor.getProfiles', 763 - FmTealAlphaActorProfile: 'fm.teal.alpha.actor.profile', 764 - FmTealAlphaActorSearchActors: 'fm.teal.alpha.actor.searchActors', 765 - FmTealAlphaActorStatus: 'fm.teal.alpha.actor.status', 766 - FmTealAlphaFeedDefs: 'fm.teal.alpha.feed.defs', 767 - FmTealAlphaFeedGetActorFeed: 'fm.teal.alpha.feed.getActorFeed', 768 - FmTealAlphaFeedGetPlay: 'fm.teal.alpha.feed.getPlay', 769 - FmTealAlphaFeedPlay: 'fm.teal.alpha.feed.play', 770 - XyzStatusphereStatus: 'xyz.statusphere.status', 771 - } 758 + AppBskyActorProfile: "app.bsky.actor.profile", 759 + AppBskyRichtextFacet: "app.bsky.richtext.facet", 760 + FmTealAlphaActorDefs: "fm.teal.alpha.actor.defs", 761 + FmTealAlphaActorGetProfile: "fm.teal.alpha.actor.getProfile", 762 + FmTealAlphaActorGetProfiles: "fm.teal.alpha.actor.getProfiles", 763 + FmTealAlphaActorProfile: "fm.teal.alpha.actor.profile", 764 + FmTealAlphaActorSearchActors: "fm.teal.alpha.actor.searchActors", 765 + FmTealAlphaActorStatus: "fm.teal.alpha.actor.status", 766 + FmTealAlphaFeedDefs: "fm.teal.alpha.feed.defs", 767 + FmTealAlphaFeedGetActorFeed: "fm.teal.alpha.feed.getActorFeed", 768 + FmTealAlphaFeedGetPlay: "fm.teal.alpha.feed.getPlay", 769 + FmTealAlphaFeedPlay: "fm.teal.alpha.feed.play", 770 + XyzStatusphereStatus: "xyz.statusphere.status", 771 + };
+20 -19
packages/lexicons/src/types/app/bsky/actor/profile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 5 - import { lexicons } from '../../../../lexicons' 6 - import { isObj, hasProp } from '../../../../util' 7 - import { CID } from 'multiformats/cid' 8 - import * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs' 9 - import * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { CID } from "multiformats/cid"; 6 + 7 + import { lexicons } from "../../../../lexicons"; 8 + import { hasProp, isObj } from "../../../../util"; 9 + import * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs"; 10 + import * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef"; 10 11 11 12 export interface Record { 12 - displayName?: string 13 + displayName?: string; 13 14 /** Free-form profile description text. */ 14 - description?: string 15 + description?: string; 15 16 /** Small image to be displayed next to posts from account. AKA, 'profile picture' */ 16 - avatar?: BlobRef 17 + avatar?: BlobRef; 17 18 /** Larger horizontal image to display behind profile view. */ 18 - banner?: BlobRef 19 + banner?: BlobRef; 19 20 labels?: 20 21 | ComAtprotoLabelDefs.SelfLabels 21 - | { $type: string; [k: string]: unknown } 22 - joinedViaStarterPack?: ComAtprotoRepoStrongRef.Main 23 - createdAt?: string 24 - [k: string]: unknown 22 + | { $type: string; [k: string]: unknown }; 23 + joinedViaStarterPack?: ComAtprotoRepoStrongRef.Main; 24 + createdAt?: string; 25 + [k: string]: unknown; 25 26 } 26 27 27 28 export function isRecord(v: unknown): v is Record { 28 29 return ( 29 30 isObj(v) && 30 - hasProp(v, '$type') && 31 - (v.$type === 'app.bsky.actor.profile#main' || 32 - v.$type === 'app.bsky.actor.profile') 33 - ) 31 + hasProp(v, "$type") && 32 + (v.$type === "app.bsky.actor.profile#main" || 33 + v.$type === "app.bsky.actor.profile") 34 + ); 34 35 } 35 36 36 37 export function validateRecord(v: unknown): ValidationResult { 37 - return lexicons.validate('app.bsky.actor.profile#main', v) 38 + return lexicons.validate("app.bsky.actor.profile#main", v); 38 39 }
+37 -36
packages/lexicons/src/types/app/bsky/richtext/facet.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 5 - import { lexicons } from '../../../../lexicons' 6 - import { isObj, hasProp } from '../../../../util' 7 - import { CID } from 'multiformats/cid' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { CID } from "multiformats/cid"; 6 + 7 + import { lexicons } from "../../../../lexicons"; 8 + import { hasProp, isObj } from "../../../../util"; 8 9 9 10 /** Annotation of a sub-string within rich text. */ 10 11 export interface Main { 11 - index: ByteSlice 12 - features: (Mention | Link | Tag | { $type: string; [k: string]: unknown })[] 13 - [k: string]: unknown 12 + index: ByteSlice; 13 + features: (Mention | Link | Tag | { $type: string; [k: string]: unknown })[]; 14 + [k: string]: unknown; 14 15 } 15 16 16 17 export function isMain(v: unknown): v is Main { 17 18 return ( 18 19 isObj(v) && 19 - hasProp(v, '$type') && 20 - (v.$type === 'app.bsky.richtext.facet#main' || 21 - v.$type === 'app.bsky.richtext.facet') 22 - ) 20 + hasProp(v, "$type") && 21 + (v.$type === "app.bsky.richtext.facet#main" || 22 + v.$type === "app.bsky.richtext.facet") 23 + ); 23 24 } 24 25 25 26 export function validateMain(v: unknown): ValidationResult { 26 - return lexicons.validate('app.bsky.richtext.facet#main', v) 27 + return lexicons.validate("app.bsky.richtext.facet#main", v); 27 28 } 28 29 29 30 /** Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID. */ 30 31 export interface Mention { 31 - did: string 32 - [k: string]: unknown 32 + did: string; 33 + [k: string]: unknown; 33 34 } 34 35 35 36 export function isMention(v: unknown): v is Mention { 36 37 return ( 37 38 isObj(v) && 38 - hasProp(v, '$type') && 39 - v.$type === 'app.bsky.richtext.facet#mention' 40 - ) 39 + hasProp(v, "$type") && 40 + v.$type === "app.bsky.richtext.facet#mention" 41 + ); 41 42 } 42 43 43 44 export function validateMention(v: unknown): ValidationResult { 44 - return lexicons.validate('app.bsky.richtext.facet#mention', v) 45 + return lexicons.validate("app.bsky.richtext.facet#mention", v); 45 46 } 46 47 47 48 /** Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL. */ 48 49 export interface Link { 49 - uri: string 50 - [k: string]: unknown 50 + uri: string; 51 + [k: string]: unknown; 51 52 } 52 53 53 54 export function isLink(v: unknown): v is Link { 54 55 return ( 55 56 isObj(v) && 56 - hasProp(v, '$type') && 57 - v.$type === 'app.bsky.richtext.facet#link' 58 - ) 57 + hasProp(v, "$type") && 58 + v.$type === "app.bsky.richtext.facet#link" 59 + ); 59 60 } 60 61 61 62 export function validateLink(v: unknown): ValidationResult { 62 - return lexicons.validate('app.bsky.richtext.facet#link', v) 63 + return lexicons.validate("app.bsky.richtext.facet#link", v); 63 64 } 64 65 65 66 /** Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags'). */ 66 67 export interface Tag { 67 - tag: string 68 - [k: string]: unknown 68 + tag: string; 69 + [k: string]: unknown; 69 70 } 70 71 71 72 export function isTag(v: unknown): v is Tag { 72 73 return ( 73 - isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.richtext.facet#tag' 74 - ) 74 + isObj(v) && hasProp(v, "$type") && v.$type === "app.bsky.richtext.facet#tag" 75 + ); 75 76 } 76 77 77 78 export function validateTag(v: unknown): ValidationResult { 78 - return lexicons.validate('app.bsky.richtext.facet#tag', v) 79 + return lexicons.validate("app.bsky.richtext.facet#tag", v); 79 80 } 80 81 81 82 /** Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets. */ 82 83 export interface ByteSlice { 83 - byteStart: number 84 - byteEnd: number 85 - [k: string]: unknown 84 + byteStart: number; 85 + byteEnd: number; 86 + [k: string]: unknown; 86 87 } 87 88 88 89 export function isByteSlice(v: unknown): v is ByteSlice { 89 90 return ( 90 91 isObj(v) && 91 - hasProp(v, '$type') && 92 - v.$type === 'app.bsky.richtext.facet#byteSlice' 93 - ) 92 + hasProp(v, "$type") && 93 + v.$type === "app.bsky.richtext.facet#byteSlice" 94 + ); 94 95 } 95 96 96 97 export function validateByteSlice(v: unknown): ValidationResult { 97 - return lexicons.validate('app.bsky.richtext.facet#byteSlice', v) 98 + return lexicons.validate("app.bsky.richtext.facet#byteSlice", v); 98 99 }
+29 -28
packages/lexicons/src/types/fm/teal/alpha/actor/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 5 - import { lexicons } from '../../../../../lexicons' 6 - import { isObj, hasProp } from '../../../../../util' 7 - import { CID } from 'multiformats/cid' 8 - import * as AppBskyRichtextFacet from '../../../../app/bsky/richtext/facet' 9 - import * as FmTealAlphaActorProfile from './profile' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { CID } from "multiformats/cid"; 6 + 7 + import { lexicons } from "../../../../../lexicons"; 8 + import { hasProp, isObj } from "../../../../../util"; 9 + import * as AppBskyRichtextFacet from "../../../../app/bsky/richtext/facet"; 10 + import * as FmTealAlphaActorProfile from "./profile"; 10 11 11 12 export interface ProfileView { 12 13 /** The decentralized identifier of the actor */ 13 - did?: string 14 - displayName?: string 14 + did?: string; 15 + displayName?: string; 15 16 /** Free-form profile description text. */ 16 - description?: string 17 + description?: string; 17 18 /** Annotations of text in the profile description (mentions, URLs, hashtags, etc). May be changed to another (backwards compatible) lexicon. */ 18 - descriptionFacets?: AppBskyRichtextFacet.Main[] 19 - featuredItem?: FmTealAlphaActorProfile.FeaturedItem 19 + descriptionFacets?: AppBskyRichtextFacet.Main[]; 20 + featuredItem?: FmTealAlphaActorProfile.FeaturedItem; 20 21 /** IPLD of the avatar */ 21 - avatar?: string 22 + avatar?: string; 22 23 /** IPLD of the banner image */ 23 - banner?: string 24 - createdAt?: string 25 - [k: string]: unknown 24 + banner?: string; 25 + createdAt?: string; 26 + [k: string]: unknown; 26 27 } 27 28 28 29 export function isProfileView(v: unknown): v is ProfileView { 29 30 return ( 30 31 isObj(v) && 31 - hasProp(v, '$type') && 32 - v.$type === 'fm.teal.alpha.actor.defs#profileView' 33 - ) 32 + hasProp(v, "$type") && 33 + v.$type === "fm.teal.alpha.actor.defs#profileView" 34 + ); 34 35 } 35 36 36 37 export function validateProfileView(v: unknown): ValidationResult { 37 - return lexicons.validate('fm.teal.alpha.actor.defs#profileView', v) 38 + return lexicons.validate("fm.teal.alpha.actor.defs#profileView", v); 38 39 } 39 40 40 41 export interface MiniProfileView { 41 42 /** The decentralized identifier of the actor */ 42 - did?: string 43 - displayName?: string 44 - handle?: string 43 + did?: string; 44 + displayName?: string; 45 + handle?: string; 45 46 /** IPLD of the avatar */ 46 - avatar?: string 47 - [k: string]: unknown 47 + avatar?: string; 48 + [k: string]: unknown; 48 49 } 49 50 50 51 export function isMiniProfileView(v: unknown): v is MiniProfileView { 51 52 return ( 52 53 isObj(v) && 53 - hasProp(v, '$type') && 54 - v.$type === 'fm.teal.alpha.actor.defs#miniProfileView' 55 - ) 54 + hasProp(v, "$type") && 55 + v.$type === "fm.teal.alpha.actor.defs#miniProfileView" 56 + ); 56 57 } 57 58 58 59 export function validateMiniProfileView(v: unknown): ValidationResult { 59 - return lexicons.validate('fm.teal.alpha.actor.defs#miniProfileView', v) 60 + return lexicons.validate("fm.teal.alpha.actor.defs#miniProfileView", v); 60 61 }
+27 -26
packages/lexicons/src/types/fm/teal/alpha/actor/getProfile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import express from 'express' 5 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 - import { lexicons } from '../../../../../lexicons' 7 - import { isObj, hasProp } from '../../../../../util' 8 - import { CID } from 'multiformats/cid' 9 - import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 - import * as FmTealAlphaActorDefs from './defs' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 6 + import express from "express"; 7 + import { CID } from "multiformats/cid"; 8 + 9 + import { lexicons } from "../../../../../lexicons"; 10 + import { hasProp, isObj } from "../../../../../util"; 11 + import * as FmTealAlphaActorDefs from "./defs"; 11 12 12 13 export interface QueryParams { 13 14 /** The author's DID */ 14 - actor: string 15 + actor: string; 15 16 } 16 17 17 - export type InputSchema = undefined 18 + export type InputSchema = undefined; 18 19 19 20 export interface OutputSchema { 20 - actor: FmTealAlphaActorDefs.ProfileView 21 - [k: string]: unknown 21 + actor: FmTealAlphaActorDefs.ProfileView; 22 + [k: string]: unknown; 22 23 } 23 24 24 - export type HandlerInput = undefined 25 + export type HandlerInput = undefined; 25 26 26 27 export interface HandlerSuccess { 27 - encoding: 'application/json' 28 - body: OutputSchema 29 - headers?: { [key: string]: string } 28 + encoding: "application/json"; 29 + body: OutputSchema; 30 + headers?: { [key: string]: string }; 30 31 } 31 32 32 33 export interface HandlerError { 33 - status: number 34 - message?: string 34 + status: number; 35 + message?: string; 35 36 } 36 37 37 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 38 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 38 39 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 39 - auth: HA 40 - params: QueryParams 41 - input: HandlerInput 42 - req: express.Request 43 - res: express.Response 44 - resetRouteRateLimits: () => Promise<void> 45 - } 40 + auth: HA; 41 + params: QueryParams; 42 + input: HandlerInput; 43 + req: express.Request; 44 + res: express.Response; 45 + resetRouteRateLimits: () => Promise<void>; 46 + }; 46 47 export type Handler<HA extends HandlerAuth = never> = ( 47 48 ctx: HandlerReqCtx<HA>, 48 - ) => Promise<HandlerOutput> | HandlerOutput 49 + ) => Promise<HandlerOutput> | HandlerOutput;
+27 -26
packages/lexicons/src/types/fm/teal/alpha/actor/getProfiles.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import express from 'express' 5 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 - import { lexicons } from '../../../../../lexicons' 7 - import { isObj, hasProp } from '../../../../../util' 8 - import { CID } from 'multiformats/cid' 9 - import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 - import * as FmTealAlphaActorDefs from './defs' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 6 + import express from "express"; 7 + import { CID } from "multiformats/cid"; 8 + 9 + import { lexicons } from "../../../../../lexicons"; 10 + import { hasProp, isObj } from "../../../../../util"; 11 + import * as FmTealAlphaActorDefs from "./defs"; 11 12 12 13 export interface QueryParams { 13 14 /** Array of actor DIDs */ 14 - actors: string[] 15 + actors: string[]; 15 16 } 16 17 17 - export type InputSchema = undefined 18 + export type InputSchema = undefined; 18 19 19 20 export interface OutputSchema { 20 - actors: FmTealAlphaActorDefs.MiniProfileView[] 21 - [k: string]: unknown 21 + actors: FmTealAlphaActorDefs.MiniProfileView[]; 22 + [k: string]: unknown; 22 23 } 23 24 24 - export type HandlerInput = undefined 25 + export type HandlerInput = undefined; 25 26 26 27 export interface HandlerSuccess { 27 - encoding: 'application/json' 28 - body: OutputSchema 29 - headers?: { [key: string]: string } 28 + encoding: "application/json"; 29 + body: OutputSchema; 30 + headers?: { [key: string]: string }; 30 31 } 31 32 32 33 export interface HandlerError { 33 - status: number 34 - message?: string 34 + status: number; 35 + message?: string; 35 36 } 36 37 37 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 38 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 38 39 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 39 - auth: HA 40 - params: QueryParams 41 - input: HandlerInput 42 - req: express.Request 43 - res: express.Response 44 - resetRouteRateLimits: () => Promise<void> 45 - } 40 + auth: HA; 41 + params: QueryParams; 42 + input: HandlerInput; 43 + req: express.Request; 44 + res: express.Response; 45 + resetRouteRateLimits: () => Promise<void>; 46 + }; 46 47 export type Handler<HA extends HandlerAuth = never> = ( 47 48 ctx: HandlerReqCtx<HA>, 48 - ) => Promise<HandlerOutput> | HandlerOutput 49 + ) => Promise<HandlerOutput> | HandlerOutput;
+26 -25
packages/lexicons/src/types/fm/teal/alpha/actor/profile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 5 - import { lexicons } from '../../../../../lexicons' 6 - import { isObj, hasProp } from '../../../../../util' 7 - import { CID } from 'multiformats/cid' 8 - import * as AppBskyRichtextFacet from '../../../../app/bsky/richtext/facet' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { CID } from "multiformats/cid"; 6 + 7 + import { lexicons } from "../../../../../lexicons"; 8 + import { hasProp, isObj } from "../../../../../util"; 9 + import * as AppBskyRichtextFacet from "../../../../app/bsky/richtext/facet"; 9 10 10 11 export interface Record { 11 - displayName?: string 12 + displayName?: string; 12 13 /** Free-form profile description text. */ 13 - description?: string 14 + description?: string; 14 15 /** Annotations of text in the profile description (mentions, URLs, hashtags, etc). */ 15 - descriptionFacets?: AppBskyRichtextFacet.Main[] 16 - featuredItem?: FeaturedItem 16 + descriptionFacets?: AppBskyRichtextFacet.Main[]; 17 + featuredItem?: FeaturedItem; 17 18 /** Small image to be displayed next to posts from account. AKA, 'profile picture' */ 18 - avatar?: BlobRef 19 + avatar?: BlobRef; 19 20 /** Larger horizontal image to display behind profile view. */ 20 - banner?: BlobRef 21 - createdAt?: string 22 - [k: string]: unknown 21 + banner?: BlobRef; 22 + createdAt?: string; 23 + [k: string]: unknown; 23 24 } 24 25 25 26 export function isRecord(v: unknown): v is Record { 26 27 return ( 27 28 isObj(v) && 28 - hasProp(v, '$type') && 29 - (v.$type === 'fm.teal.alpha.actor.profile#main' || 30 - v.$type === 'fm.teal.alpha.actor.profile') 31 - ) 29 + hasProp(v, "$type") && 30 + (v.$type === "fm.teal.alpha.actor.profile#main" || 31 + v.$type === "fm.teal.alpha.actor.profile") 32 + ); 32 33 } 33 34 34 35 export function validateRecord(v: unknown): ValidationResult { 35 - return lexicons.validate('fm.teal.alpha.actor.profile#main', v) 36 + return lexicons.validate("fm.teal.alpha.actor.profile#main", v); 36 37 } 37 38 38 39 export interface FeaturedItem { 39 40 /** The Musicbrainz ID of the item */ 40 - mbid: string 41 + mbid: string; 41 42 /** The type of the item. Must be a valid Musicbrainz type, e.g. album, track, recording, etc. */ 42 - type: string 43 - [k: string]: unknown 43 + type: string; 44 + [k: string]: unknown; 44 45 } 45 46 46 47 export function isFeaturedItem(v: unknown): v is FeaturedItem { 47 48 return ( 48 49 isObj(v) && 49 - hasProp(v, '$type') && 50 - v.$type === 'fm.teal.alpha.actor.profile#featuredItem' 51 - ) 50 + hasProp(v, "$type") && 51 + v.$type === "fm.teal.alpha.actor.profile#featuredItem" 52 + ); 52 53 } 53 54 54 55 export function validateFeaturedItem(v: unknown): ValidationResult { 55 - return lexicons.validate('fm.teal.alpha.actor.profile#featuredItem', v) 56 + return lexicons.validate("fm.teal.alpha.actor.profile#featuredItem", v); 56 57 }
+30 -29
packages/lexicons/src/types/fm/teal/alpha/actor/searchActors.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import express from 'express' 5 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 - import { lexicons } from '../../../../../lexicons' 7 - import { isObj, hasProp } from '../../../../../util' 8 - import { CID } from 'multiformats/cid' 9 - import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 - import * as FmTealAlphaActorDefs from './defs' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 6 + import express from "express"; 7 + import { CID } from "multiformats/cid"; 8 + 9 + import { lexicons } from "../../../../../lexicons"; 10 + import { hasProp, isObj } from "../../../../../util"; 11 + import * as FmTealAlphaActorDefs from "./defs"; 11 12 12 13 export interface QueryParams { 13 14 /** The search query */ 14 - q: string 15 + q: string; 15 16 /** The maximum number of actors to return */ 16 - limit?: number 17 + limit?: number; 17 18 /** Cursor for pagination */ 18 - cursor?: string 19 + cursor?: string; 19 20 } 20 21 21 - export type InputSchema = undefined 22 + export type InputSchema = undefined; 22 23 23 24 export interface OutputSchema { 24 - actors: FmTealAlphaActorDefs.MiniProfileView[] 25 + actors: FmTealAlphaActorDefs.MiniProfileView[]; 25 26 /** Cursor for pagination */ 26 - cursor?: string 27 - [k: string]: unknown 27 + cursor?: string; 28 + [k: string]: unknown; 28 29 } 29 30 30 - export type HandlerInput = undefined 31 + export type HandlerInput = undefined; 31 32 32 33 export interface HandlerSuccess { 33 - encoding: 'application/json' 34 - body: OutputSchema 35 - headers?: { [key: string]: string } 34 + encoding: "application/json"; 35 + body: OutputSchema; 36 + headers?: { [key: string]: string }; 36 37 } 37 38 38 39 export interface HandlerError { 39 - status: number 40 - message?: string 40 + status: number; 41 + message?: string; 41 42 } 42 43 43 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 44 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 44 45 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 45 - auth: HA 46 - params: QueryParams 47 - input: HandlerInput 48 - req: express.Request 49 - res: express.Response 50 - resetRouteRateLimits: () => Promise<void> 51 - } 46 + auth: HA; 47 + params: QueryParams; 48 + input: HandlerInput; 49 + req: express.Request; 50 + res: express.Response; 51 + resetRouteRateLimits: () => Promise<void>; 52 + }; 52 53 export type Handler<HA extends HandlerAuth = never> = ( 53 54 ctx: HandlerReqCtx<HA>, 54 - ) => Promise<HandlerOutput> | HandlerOutput 55 + ) => Promise<HandlerOutput> | HandlerOutput;
+11 -10
packages/lexicons/src/types/fm/teal/alpha/actor/status.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 5 - import { lexicons } from '../../../../../lexicons' 6 - import { isObj, hasProp } from '../../../../../util' 7 - import { CID } from 'multiformats/cid' 8 - import * as FmTealAlphaFeedDefs from '../feed/defs' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { CID } from "multiformats/cid"; 6 + 7 + import { lexicons } from "../../../../../lexicons"; 8 + import { hasProp, isObj } from "../../../../../util"; 9 + import * as FmTealAlphaFeedDefs from "../feed/defs"; 9 10 10 11 export interface Record { 11 12 /** The unix timestamp of when the item was recorded */ ··· 19 20 export function isRecord(v: unknown): v is Record { 20 21 return ( 21 22 isObj(v) && 22 - hasProp(v, '$type') && 23 - (v.$type === 'fm.teal.alpha.actor.status#main' || 24 - v.$type === 'fm.teal.alpha.actor.status') 25 - ) 23 + hasProp(v, "$type") && 24 + (v.$type === "fm.teal.alpha.actor.status#main" || 25 + v.$type === "fm.teal.alpha.actor.status") 26 + ); 26 27 } 27 28 28 29 export function validateRecord(v: unknown): ValidationResult { 29 - return lexicons.validate('fm.teal.alpha.actor.status#main', v) 30 + return lexicons.validate("fm.teal.alpha.actor.status#main", v); 30 31 }
+20 -19
packages/lexicons/src/types/fm/teal/alpha/feed/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 5 - import { lexicons } from '../../../../../lexicons' 6 - import { isObj, hasProp } from '../../../../../util' 7 - import { CID } from 'multiformats/cid' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { CID } from "multiformats/cid"; 6 + 7 + import { lexicons } from "../../../../../lexicons"; 8 + import { hasProp, isObj } from "../../../../../util"; 8 9 9 10 export interface PlayView { 10 11 /** The name of the track */ 11 - trackName: string 12 + trackName: string; 12 13 /** The Musicbrainz ID of the track */ 13 - trackMbId?: string 14 + trackMbId?: string; 14 15 /** The Musicbrainz recording ID of the track */ 15 - recordingMbId?: string 16 + recordingMbId?: string; 16 17 /** The length of the track in seconds */ 17 18 duration?: number 18 19 /** Array of artists in order of original appearance. */ 19 20 artists: Artist[] 20 21 /** The name of the release/album */ 21 - releaseName?: string 22 + releaseName?: string; 22 23 /** The Musicbrainz release ID */ 23 - releaseMbId?: string 24 + releaseMbId?: string; 24 25 /** The ISRC code associated with the recording */ 25 - isrc?: string 26 + isrc?: string; 26 27 /** The URL associated with this track */ 27 - originUrl?: string 28 + originUrl?: string; 28 29 /** The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided. */ 29 - musicServiceBaseDomain?: string 30 + musicServiceBaseDomain?: string; 30 31 /** A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided. */ 31 - submissionClientAgent?: string 32 + submissionClientAgent?: string; 32 33 /** The unix timestamp of when the track was played */ 33 - playedTime?: string 34 - [k: string]: unknown 34 + playedTime?: string; 35 + [k: string]: unknown; 35 36 } 36 37 37 38 export function isPlayView(v: unknown): v is PlayView { 38 39 return ( 39 40 isObj(v) && 40 - hasProp(v, '$type') && 41 - v.$type === 'fm.teal.alpha.feed.defs#playView' 42 - ) 41 + hasProp(v, "$type") && 42 + v.$type === "fm.teal.alpha.feed.defs#playView" 43 + ); 43 44 } 44 45 45 46 export function validatePlayView(v: unknown): ValidationResult { 46 - return lexicons.validate('fm.teal.alpha.feed.defs#playView', v) 47 + return lexicons.validate("fm.teal.alpha.feed.defs#playView", v); 47 48 } 48 49 49 50 export interface Artist {
+29 -28
packages/lexicons/src/types/fm/teal/alpha/feed/getActorFeed.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import express from 'express' 5 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 - import { lexicons } from '../../../../../lexicons' 7 - import { isObj, hasProp } from '../../../../../util' 8 - import { CID } from 'multiformats/cid' 9 - import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 - import * as FmTealAlphaFeedDefs from './defs' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 6 + import express from "express"; 7 + import { CID } from "multiformats/cid"; 8 + 9 + import { lexicons } from "../../../../../lexicons"; 10 + import { hasProp, isObj } from "../../../../../util"; 11 + import * as FmTealAlphaFeedDefs from "./defs"; 11 12 12 13 export interface QueryParams { 13 14 /** The author's DID for the play */ 14 - authorDID: string 15 + authorDID: string; 15 16 /** The cursor to start the query from */ 16 - cursor?: string 17 + cursor?: string; 17 18 /** The upper limit of tracks to get per request. Default is 20, max is 50. */ 18 - limit?: number 19 + limit?: number; 19 20 } 20 21 21 - export type InputSchema = undefined 22 + export type InputSchema = undefined; 22 23 23 24 export interface OutputSchema { 24 - plays: FmTealAlphaFeedDefs.PlayView[] 25 - [k: string]: unknown 25 + plays: FmTealAlphaFeedDefs.PlayView[]; 26 + [k: string]: unknown; 26 27 } 27 28 28 - export type HandlerInput = undefined 29 + export type HandlerInput = undefined; 29 30 30 31 export interface HandlerSuccess { 31 - encoding: 'application/json' 32 - body: OutputSchema 33 - headers?: { [key: string]: string } 32 + encoding: "application/json"; 33 + body: OutputSchema; 34 + headers?: { [key: string]: string }; 34 35 } 35 36 36 37 export interface HandlerError { 37 - status: number 38 - message?: string 38 + status: number; 39 + message?: string; 39 40 } 40 41 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 42 43 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA 44 - params: QueryParams 45 - input: HandlerInput 46 - req: express.Request 47 - res: express.Response 48 - resetRouteRateLimits: () => Promise<void> 49 - } 44 + auth: HA; 45 + params: QueryParams; 46 + input: HandlerInput; 47 + req: express.Request; 48 + res: express.Response; 49 + resetRouteRateLimits: () => Promise<void>; 50 + }; 50 51 export type Handler<HA extends HandlerAuth = never> = ( 51 52 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput 53 + ) => Promise<HandlerOutput> | HandlerOutput;
+28 -27
packages/lexicons/src/types/fm/teal/alpha/feed/getPlay.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import express from 'express' 5 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 - import { lexicons } from '../../../../../lexicons' 7 - import { isObj, hasProp } from '../../../../../util' 8 - import { CID } from 'multiformats/cid' 9 - import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 - import * as FmTealAlphaFeedDefs from './defs' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 6 + import express from "express"; 7 + import { CID } from "multiformats/cid"; 8 + 9 + import { lexicons } from "../../../../../lexicons"; 10 + import { hasProp, isObj } from "../../../../../util"; 11 + import * as FmTealAlphaFeedDefs from "./defs"; 11 12 12 13 export interface QueryParams { 13 14 /** The author's DID for the play */ 14 - authorDID: string 15 + authorDID: string; 15 16 /** The record key of the play */ 16 - rkey: string 17 + rkey: string; 17 18 } 18 19 19 - export type InputSchema = undefined 20 + export type InputSchema = undefined; 20 21 21 22 export interface OutputSchema { 22 - play: FmTealAlphaFeedDefs.PlayView 23 - [k: string]: unknown 23 + play: FmTealAlphaFeedDefs.PlayView; 24 + [k: string]: unknown; 24 25 } 25 26 26 - export type HandlerInput = undefined 27 + export type HandlerInput = undefined; 27 28 28 29 export interface HandlerSuccess { 29 - encoding: 'application/json' 30 - body: OutputSchema 31 - headers?: { [key: string]: string } 30 + encoding: "application/json"; 31 + body: OutputSchema; 32 + headers?: { [key: string]: string }; 32 33 } 33 34 34 35 export interface HandlerError { 35 - status: number 36 - message?: string 36 + status: number; 37 + message?: string; 37 38 } 38 39 39 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 40 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 40 41 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 41 - auth: HA 42 - params: QueryParams 43 - input: HandlerInput 44 - req: express.Request 45 - res: express.Response 46 - resetRouteRateLimits: () => Promise<void> 47 - } 42 + auth: HA; 43 + params: QueryParams; 44 + input: HandlerInput; 45 + req: express.Request; 46 + res: express.Response; 47 + resetRouteRateLimits: () => Promise<void>; 48 + }; 48 49 export type Handler<HA extends HandlerAuth = never> = ( 49 50 ctx: HandlerReqCtx<HA>, 50 - ) => Promise<HandlerOutput> | HandlerOutput 51 + ) => Promise<HandlerOutput> | HandlerOutput;
+16 -16
packages/lexicons/src/types/fm/teal/alpha/feed/play.ts
··· 9 9 10 10 export interface Record { 11 11 /** The name of the track */ 12 - trackName: string 12 + trackName: string; 13 13 /** The Musicbrainz ID of the track */ 14 - trackMbId?: string 14 + trackMbId?: string; 15 15 /** The Musicbrainz recording ID of the track */ 16 - recordingMbId?: string 16 + recordingMbId?: string; 17 17 /** The length of the track in seconds */ 18 18 duration?: number 19 19 /** Array of artist names in order of original appearance. Prefer using 'artists'. */ ··· 23 23 /** Array of artists in order of original appearance. */ 24 24 artists?: FmTealAlphaFeedDefs.Artist[] 25 25 /** The name of the release/album */ 26 - releaseName?: string 26 + releaseName?: string; 27 27 /** The Musicbrainz release ID */ 28 - releaseMbId?: string 28 + releaseMbId?: string; 29 29 /** The ISRC code associated with the recording */ 30 - isrc?: string 30 + isrc?: string; 31 31 /** The URL associated with this track */ 32 - originUrl?: string 32 + originUrl?: string; 33 33 /** The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if unavailable or not provided. */ 34 - musicServiceBaseDomain?: string 34 + musicServiceBaseDomain?: string; 35 35 /** A metadata string specifying the user agent where the format is `<app-identifier>/<version> (<kernel/OS-base>; <platform/OS-version>; <device-model>)`. If string is provided, only `app-identifier` and `version` are required. `app-identifier` is recommended to be in reverse dns format. Defaults to 'manual/unknown' if unavailable or not provided. */ 36 - submissionClientAgent?: string 36 + submissionClientAgent?: string; 37 37 /** The unix timestamp of when the track was played */ 38 - playedTime?: string 39 - [k: string]: unknown 38 + playedTime?: string; 39 + [k: string]: unknown; 40 40 } 41 41 42 42 export function isRecord(v: unknown): v is Record { 43 43 return ( 44 44 isObj(v) && 45 - hasProp(v, '$type') && 46 - (v.$type === 'fm.teal.alpha.feed.play#main' || 47 - v.$type === 'fm.teal.alpha.feed.play') 48 - ) 45 + hasProp(v, "$type") && 46 + (v.$type === "fm.teal.alpha.feed.play#main" || 47 + v.$type === "fm.teal.alpha.feed.play") 48 + ); 49 49 } 50 50 51 51 export function validateRecord(v: unknown): ValidationResult { 52 - return lexicons.validate('fm.teal.alpha.feed.play#main', v) 52 + return lexicons.validate("fm.teal.alpha.feed.play#main", v); 53 53 }
+13 -12
packages/lexicons/src/types/xyz/statusphere/status.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { ValidationResult, BlobRef } from '@atproto/lexicon' 5 - import { lexicons } from '../../../lexicons' 6 - import { isObj, hasProp } from '../../../util' 7 - import { CID } from 'multiformats/cid' 4 + import { BlobRef, ValidationResult } from "@atproto/lexicon"; 5 + import { CID } from "multiformats/cid"; 6 + 7 + import { lexicons } from "../../../lexicons"; 8 + import { hasProp, isObj } from "../../../util"; 8 9 9 10 export interface Record { 10 - status: string 11 - createdAt: string 12 - [k: string]: unknown 11 + status: string; 12 + createdAt: string; 13 + [k: string]: unknown; 13 14 } 14 15 15 16 export function isRecord(v: unknown): v is Record { 16 17 return ( 17 18 isObj(v) && 18 - hasProp(v, '$type') && 19 - (v.$type === 'xyz.statusphere.status#main' || 20 - v.$type === 'xyz.statusphere.status') 21 - ) 19 + hasProp(v, "$type") && 20 + (v.$type === "xyz.statusphere.status#main" || 21 + v.$type === "xyz.statusphere.status") 22 + ); 22 23 } 23 24 24 25 export function validateRecord(v: unknown): ValidationResult { 25 - return lexicons.validate('xyz.statusphere.status#main', v) 26 + return lexicons.validate("xyz.statusphere.status#main", v); 26 27 }
+2 -2
packages/lexicons/src/util.ts
··· 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 4 export function isObj(v: unknown): v is Record<string, unknown> { 5 - return typeof v === 'object' && v !== null 5 + return typeof v === "object" && v !== null; 6 6 } 7 7 8 8 export function hasProp<K extends PropertyKey>( 9 9 data: object, 10 10 prop: K, 11 11 ): data is Record<K, unknown> { 12 - return prop in data 12 + return prop in data; 13 13 }
+1564 -1691
pnpm-lock.yaml
··· 10 10 dependencies: 11 11 '@atproto/oauth-client': 12 12 specifier: ^0.3.8 13 - version: 0.3.8 13 + version: 0.3.21 14 + '@ianvs/prettier-plugin-sort-imports': 15 + specifier: ^4.4.1 16 + version: 4.4.2(prettier@3.5.3) 17 + prettier: 18 + specifier: ^3.5.3 19 + version: 3.5.3 20 + prettier-plugin-tailwindcss: 21 + specifier: ^0.6.11 22 + version: 0.6.12(@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.5.3))(prettier@3.5.3) 14 23 devDependencies: 15 24 '@types/node': 16 25 specifier: ^20.17.10 17 - version: 20.17.14 26 + version: 20.17.10 18 27 biome: 19 28 specifier: ^0.3.3 20 29 version: 0.3.3 ··· 29 38 dependencies: 30 39 '@aquareum/atproto-oauth-client-react-native': 31 40 specifier: ^0.0.1 32 - version: 0.0.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 41 + version: 0.0.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 33 42 '@atproto/api': 34 - specifier: ^0.15.6 35 - version: 0.15.6 43 + specifier: ^0.15.14 44 + version: 0.15.14 36 45 '@atproto/lex-cli': 37 46 specifier: ^0.8.1 38 - version: 0.8.1 47 + version: 0.8.2 39 48 '@atproto/oauth-client': 40 49 specifier: ^0.3.16 41 - version: 0.3.16 50 + version: 0.3.21 42 51 '@babel/plugin-transform-export-namespace-from': 43 52 specifier: ^7.27.1 44 53 version: 7.27.1(@babel/core@7.26.0) 45 54 '@expo/vector-icons': 46 55 specifier: ^14.1.0 47 - version: 14.1.0(expo-font@13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 56 + version: 14.1.0(expo-font@13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 48 57 '@gorhom/bottom-sheet': 49 58 specifier: ^5.1.3 50 - version: 5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 59 + version: 5.1.6(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 51 60 '@react-native-async-storage/async-storage': 52 61 specifier: 2.1.2 53 62 version: 2.1.2(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) ··· 56 65 version: 2.11.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 57 66 '@react-navigation/native': 58 67 specifier: ^7.1.8 59 - version: 7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 68 + version: 7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 60 69 '@rn-primitives/avatar': 61 70 specifier: ^1.1.0 62 71 version: 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 63 72 '@rn-primitives/hover-card': 64 73 specifier: ^1.1.0 65 - version: 1.1.0(@rn-primitives/portal@1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 74 + version: 1.1.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 66 75 '@rn-primitives/portal': 67 76 specifier: ^1.2.0 68 - version: 1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 77 + version: 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 69 78 '@rn-primitives/progress': 70 79 specifier: ^1.1.0 71 80 version: 1.1.0(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) ··· 74 83 version: 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 75 84 '@rn-primitives/tooltip': 76 85 specifier: ^1.1.0 77 - version: 1.1.0(@rn-primitives/portal@1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 86 + version: 1.1.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 78 87 '@rn-primitives/types': 79 88 specifier: ^1.1.0 80 89 version: 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) ··· 92 101 version: 19.0.0-beta-37ed2a7-20241206(eslint@8.57.1) 93 102 expo: 94 103 specifier: ~53.0.9 95 - version: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 104 + version: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 96 105 expo-constants: 97 106 specifier: ^17.1.6 98 - version: 17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 107 + version: 17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 99 108 expo-font: 100 109 specifier: ~13.3.1 101 - version: 13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 110 + version: 13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 102 111 expo-image-picker: 103 112 specifier: ^16.1.4 104 - version: 16.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) 113 + version: 16.1.4(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) 105 114 expo-linking: 106 115 specifier: ~7.1.4 107 - version: 7.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 116 + version: 7.1.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 108 117 expo-router: 109 118 specifier: ~5.0.6 110 - version: 5.0.6(t72pujrpo4n6qjiotumnev34mm) 119 + version: 5.0.7(txbbyapused3uamjbdiravx25i) 111 120 expo-splash-screen: 112 121 specifier: ~0.30.8 113 - version: 0.30.8(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) 122 + version: 0.30.9(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) 114 123 expo-sqlite: 115 124 specifier: ^15.2.9 116 - version: 15.2.9(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 125 + version: 15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 117 126 expo-status-bar: 118 127 specifier: ~2.2.3 119 128 version: 2.2.3(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 120 129 expo-system-ui: 121 130 specifier: ~5.0.7 122 - version: 5.0.7(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 131 + version: 5.0.8(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 123 132 expo-web-browser: 124 133 specifier: ~14.1.6 125 - version: 14.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 134 + version: 14.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 126 135 lucide-react-native: 127 136 specifier: ^0.507.0 128 137 version: 0.507.0(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) ··· 161 170 version: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 162 171 tailwind-merge: 163 172 specifier: ^2.5.5 164 - version: 2.5.5 173 + version: 2.6.0 165 174 zustand: 166 175 specifier: ^5.0.4 167 - version: 5.0.4(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 176 + version: 5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 168 177 devDependencies: 169 178 '@babel/core': 170 179 specifier: ^7.26.0 ··· 177 186 version: 5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 178 187 '@expo/prebuild-config': 179 188 specifier: ^9.0.5 180 - version: 9.0.5 189 + version: 9.0.6 181 190 '@pmmmwh/react-refresh-webpack-plugin': 182 191 specifier: ^0.5.15 183 192 version: 0.5.15(react-refresh@0.16.0)(type-fest@0.21.3)(webpack@5.97.1) ··· 225 234 dependencies: 226 235 '@atproto/api': 227 236 specifier: ^0.13.15 228 - version: 0.13.20 237 + version: 0.13.19 229 238 '@atproto/common': 230 239 specifier: ^0.4.4 231 - version: 0.4.6 240 + version: 0.4.4 232 241 '@atproto/identity': 233 242 specifier: ^0.4.3 234 - version: 0.4.5 243 + version: 0.4.3 235 244 '@atproto/lexicon': 236 245 specifier: ^0.4.2 237 - version: 0.4.4 246 + version: 0.4.3 238 247 '@atproto/oauth-client-node': 239 248 specifier: ^0.2.1 240 - version: 0.2.8 249 + version: 0.2.3 241 250 '@atproto/sync': 242 251 specifier: ^0.1.5 243 - version: 0.1.11 252 + version: 0.1.6 244 253 '@atproto/syntax': 245 254 specifier: ^0.3.0 246 255 version: 0.3.1 247 256 '@atproto/xrpc-server': 248 257 specifier: ^0.7.4 249 - version: 0.7.8 258 + version: 0.7.4 250 259 '@braintree/sanitize-url': 251 260 specifier: ^7.1.0 252 - version: 7.1.1 261 + version: 7.1.0 253 262 '@hono/node-server': 254 263 specifier: ^1.13.7 255 - version: 1.13.7(hono@4.6.17) 264 + version: 1.13.7(hono@4.6.13) 256 265 '@libsql/client': 257 266 specifier: ^0.14.0 258 267 version: 0.14.0 ··· 270 279 version: 12.0.2 271 280 drizzle-orm: 272 281 specifier: ^0.38.3 273 - version: 0.38.4(@libsql/client@0.14.0)(@types/react@19.0.14)(expo-sqlite@15.2.9(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(postgres@3.4.5)(react@19.0.0) 282 + version: 0.38.3(@libsql/client@0.14.0)(@types/react@19.0.14)(expo-sqlite@15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(postgres@3.4.7)(react@19.0.0) 274 283 envalid: 275 284 specifier: ^8.0.0 276 285 version: 8.0.0 277 286 hono: 278 287 specifier: ^4.6.9 279 - version: 4.6.17 288 + version: 4.6.13 280 289 jose: 281 290 specifier: ^5.9.6 282 291 version: 5.9.6 283 292 pino: 284 293 specifier: ^9.5.0 285 - version: 9.6.0 294 + version: 9.5.0 286 295 turbo: 287 296 specifier: ^2.2.3 288 297 version: 2.3.3 ··· 292 301 devDependencies: 293 302 '@atproto/lex-cli': 294 303 specifier: ^0.5.4 295 - version: 0.5.6 304 + version: 0.5.4 296 305 '@teal/tsconfig': 297 306 specifier: workspace:* 298 307 version: link:../../packages/tsconfig 299 308 '@types/node': 300 309 specifier: ^20.17.6 301 - version: 20.17.14 310 + version: 20.17.9 302 311 drizzle-kit: 303 312 specifier: ^0.30.1 304 - version: 0.30.2 313 + version: 0.30.1 305 314 pino-pretty: 306 315 specifier: ^13.0.0 307 316 version: 13.0.0 ··· 310 319 version: 6.0.1 311 320 tsup: 312 321 specifier: ^8.3.5 313 - version: 8.3.5(jiti@1.21.6)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.6.1) 322 + version: 8.3.5(jiti@1.21.7)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.6.1) 314 323 tsx: 315 324 specifier: ^4.19.2 316 325 version: 4.19.2 317 326 typescript: 318 327 specifier: ^5.6.3 319 - version: 5.7.3 328 + version: 5.7.2 320 329 321 330 packages/db: 322 331 dependencies: ··· 328 337 version: link:../tsconfig 329 338 drizzle-kit: 330 339 specifier: ^0.30.1 331 - version: 0.30.2 340 + version: 0.30.1 332 341 drizzle-orm: 333 342 specifier: ^0.38.3 334 - version: 0.38.4(@libsql/client@0.14.0)(@types/react@19.0.14)(expo-sqlite@15.2.9(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(postgres@3.4.5)(react@19.0.0) 343 + version: 0.38.3(@libsql/client@0.14.0)(@types/react@19.0.14)(expo-sqlite@15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(postgres@3.4.7)(react@19.0.0) 335 344 postgres: 336 345 specifier: ^3.4.5 337 - version: 3.4.5 346 + version: 3.4.7 338 347 devDependencies: 339 348 '@types/node': 340 349 specifier: ^20.17.6 ··· 347 356 dependencies: 348 357 '@atproto/lex-cli': 349 358 specifier: ^0.5.4 350 - version: 0.5.6 359 + version: 0.5.4 351 360 '@atproto/lexicon': 352 361 specifier: ^0.4.2 353 - version: 0.4.4 362 + version: 0.4.3 354 363 '@atproto/xrpc-server': 355 364 specifier: ^0.7.4 356 - version: 0.7.8 365 + version: 0.7.4 357 366 '@teal/tsconfig': 358 367 specifier: workspace:* 359 368 version: link:../tsconfig ··· 383 392 '@aquareum/atproto-oauth-client-react-native@0.0.1': 384 393 resolution: {integrity: sha512-IoIcUuX2rKs/AS2u+72m9UWc0mldPTR4GgBHn4LIWtHLWjGTGdECwkw6iwshCM39KA15UhKGbByNQRG415hyfQ==} 385 394 386 - '@atproto-labs/did-resolver@0.1.12': 387 - resolution: {integrity: sha512-criWN7o21C5TFsauB+bGTlkqqerOU6gT2TbxdQVgZUWqNcfazUmUjT4gJAY02i+O4d3QmZa27fv9CcaRKWkSug==} 395 + '@atproto-labs/did-resolver@0.1.13': 396 + resolution: {integrity: sha512-DG3YNaCKc6PAIv1Gsz3E1Kufw2t14OBxe4LdKK7KKLCNoex51hm+A5yMevShe3BSll+QosqWYIEgkPSc5xBoGQ==} 388 397 389 398 '@atproto-labs/did-resolver@0.1.5': 390 399 resolution: {integrity: sha512-uoCb+P0N4du5NiZt6ohVEbSDdijXBJlQwSlWLHX0rUDtEVV+g3aEGe7jUW94lWpqQmRlQ5xcyd9owleMibNxZw==} 391 400 392 - '@atproto-labs/did-resolver@0.1.8': 393 - resolution: {integrity: sha512-wcbBTu0YsAUCzvKHTuk90ax4+gwj8wlPFY+rR96O7/rtSVjx4xz06Fdri0amAzSoupUeZ7swcZVKDqHD8KB8HA==} 394 - 395 - '@atproto-labs/did-resolver@0.1.9': 396 - resolution: {integrity: sha512-kGRQvbebfz+LV0pYl2nEz345Ca83NyIftye0qqjH+CyoJuwZbGUuZe7rbQafucm8UXYNsvPwuQXVst3mqyzVfg==} 401 + '@atproto-labs/did-resolver@0.1.6': 402 + resolution: {integrity: sha512-qddGpcjKj9SUMlZW1d+/dY/03CDVcmOAlAozXEXsU2H5OT1vFAdMmOp0VbwK0y99RH3DvAQtyQKiRzoPFqp8rA==} 397 403 398 404 '@atproto-labs/fetch-node@0.1.3': 399 405 resolution: {integrity: sha512-KX3ogPJt6dXNppWImQ9omfhrc8t73WrJaxHMphRAqQL8jXxKW5NBCTjSuwroBkJ1pj1aValBrc5NpdYu+H/9Qg==} 400 406 401 - '@atproto-labs/fetch-node@0.1.6': 402 - resolution: {integrity: sha512-MtisrDQZuBiR3yUyhVqaNrukGTZfZHANG23E1w5t4biz1ONWWSFc1CkqUGOHPJJ7JpjaNbHRf1kfKsMZotQZsQ==} 407 + '@atproto-labs/fetch-node@0.1.4': 408 + resolution: {integrity: sha512-hwYx0XpgIl2zydRy13DtWvywruuHk1EX+yCjqjgUIezUm8fi35ZN4QvR6INEm0MpN2MD/kQsImPbd8ZftzZ3zw==} 403 409 404 410 '@atproto-labs/fetch@0.1.1': 405 411 resolution: {integrity: sha512-X1zO1MDoJzEurbWXMAe1H8EZ995Xam/aXdxhGVrXmOMyPDuvBa1oxwh/kQNZRCKcMQUbiwkk+Jfq6ZkTuvGbww==} 406 412 407 - '@atproto-labs/fetch@0.2.0': 408 - resolution: {integrity: sha512-RD8grUzZdQaC+1GwObz6rZ7MKraS77Z72uZNvcqUzQEBc2oF7fTW6BtkI0csJMFkW+qWKlR3YQlZxsZQ4x6H3g==} 413 + '@atproto-labs/fetch@0.1.2': 414 + resolution: {integrity: sha512-7mQQIRtVenqtdBQKCqoLjyAhPS2aA56EGEjyz5zB3sramM3qkrvzyusr55GAzGDS0tvB6cy9cDEtSLmfK7LUnA==} 409 415 410 - '@atproto-labs/fetch@0.2.2': 411 - resolution: {integrity: sha512-QyafkedbFeVaN20DYUpnY2hcArYxjdThPXbYMqOSoZhcvkrUqaw4xDND4wZB5TBD9cq2yqe9V6mcw9P4XQKQuQ==} 412 - 413 - '@atproto-labs/handle-resolver-node@0.1.11': 414 - resolution: {integrity: sha512-Lfm3LgKr1dkHgnd8UX6JvyywflUJpRXQtZwgDXNnj+3nAb8amfDy+mfx0Cu8ym2T2uzEuGRnfmXzLEp7EKbADw==} 416 + '@atproto-labs/fetch@0.2.3': 417 + resolution: {integrity: sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw==} 415 418 416 419 '@atproto-labs/handle-resolver-node@0.1.7': 417 420 resolution: {integrity: sha512-3pXUB8/twMPXUz+zMjSVTA5acxnizC7PF+EsjLKwirwVzLRrTcFQkyHXGTrdUfIQq+S1eLq7b6H7ZKqMOX9VQQ==} 418 421 422 + '@atproto-labs/handle-resolver-node@0.1.8': 423 + resolution: {integrity: sha512-AlH7qRtmhZFRCcv1HK9OYiZpTFGcX39zjzzANq42zVLlfqoJr3ugnv7mAXGHE8woVguKtbypHnrVCDceoBAs2w==} 424 + 419 425 '@atproto-labs/handle-resolver@0.1.4': 420 426 resolution: {integrity: sha512-tnGUD2mQ6c8xHs3eeVJgwYqM3FHoTZZbOcOGKqO1A5cuIG+gElwEhpWwpwX5LI7FF4J8eS9BOHLl3NFS7Q8QXg==} 421 427 422 - '@atproto-labs/handle-resolver@0.1.5': 423 - resolution: {integrity: sha512-3Uv5DUswmiUWn0oO3XML7T6RiM8aq+A4lACBRRasegsr6fytxATJE38UiwDmDRWdXxhftnPlmTWfJ2oZ/pqDWQ==} 424 - 425 - '@atproto-labs/handle-resolver@0.1.6': 426 - resolution: {integrity: sha512-pLoerhISFvOSVWxQfSibWZFxzp0HDgpDKbQ2G0faIII/66Cg9avnaiQrW99QXUSijHw9/hv7msP4YGeEzmCH8g==} 427 - 428 428 '@atproto-labs/handle-resolver@0.1.8': 429 429 resolution: {integrity: sha512-Y0ckccoCGDo/3g4thPkgp9QcORmc+qqEaCBCYCZYtfLIQp4775u22wd+4fyEyJP4DqoReKacninkICgRGfs3dQ==} 430 430 431 - '@atproto-labs/identity-resolver@0.1.10': 432 - resolution: {integrity: sha512-V8cwLikQJrrIubZcbS3phiw3FZ4JleZ43EOyGq2pVBRsQgynSIB/tzTTw8UNuKPeqR/iK1CBjevnQJ4ENOr5AQ==} 433 - 434 - '@atproto-labs/identity-resolver@0.1.11': 435 - resolution: {integrity: sha512-8q7u9D8sJL6HHsrMIYKL6GktyR0PMaPhHsYeoyK42XxgzIty1tMSXWeci0IwtWzIZsfvonlls0lZtE1G7GJD8g==} 436 - 437 - '@atproto-labs/identity-resolver@0.1.16': 438 - resolution: {integrity: sha512-pFrtKT49cYBhCDd2U1t/CcUBiMmQzaNQxh8oSkDUlGs/K3P8rJFTAGAMm8UjokfGEKwF4hX9oo7O8Kn+GkyExw==} 431 + '@atproto-labs/identity-resolver@0.1.17': 432 + resolution: {integrity: sha512-EaH9Lm8M85IKRx+oWZ4tppYRVH8u+MYpEz1kjzYeM3ttZ2xcqKVmYHiOIgd5YPCVV2EIfXKnlM4soHQ+rZ1c6A==} 439 433 440 434 '@atproto-labs/identity-resolver@0.1.6': 441 435 resolution: {integrity: sha512-kq1yhpImGG1IUE8QEKj2IjSfNrkG2VailZRuiFLYdcszDEBDzr9HN3ElV42ebxhofuSFgKOCrYWJIUiLuXo6Uw==} 442 436 437 + '@atproto-labs/identity-resolver@0.1.7': 438 + resolution: {integrity: sha512-aRmY0cp+aFDgxAD62jjCPUDJMqryuXmt0hK9ls8LHeSzszr58BFDwybLaW6Izz2KISQlzu75Ia0c6uRymdmcYA==} 439 + 443 440 '@atproto-labs/pipe@0.1.0': 444 441 resolution: {integrity: sha512-ghOqHFyJlQVFPESzlVHjKroP0tPzbmG5Jms0dNI9yLDEfL8xp4OFPWLX4f6T8mRq69wWs4nIDM3sSsFbFqLa1w==} 442 + 443 + '@atproto-labs/pipe@0.1.1': 444 + resolution: {integrity: sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg==} 445 445 446 446 '@atproto-labs/simple-store-memory@0.1.1': 447 447 resolution: {integrity: sha512-PCRqhnZ8NBNBvLku53O56T0lsVOtclfIrQU/rwLCc4+p45/SBPrRYNBi6YFq5rxZbK6Njos9MCmILV/KLQxrWA==} ··· 455 455 '@atproto-labs/simple-store@0.2.0': 456 456 resolution: {integrity: sha512-0bRbAlI8Ayh03wRwncAMEAyUKtZ+AuTS1jgPrfym1WVOAOiottI/ZmgccqLl6w5MbxVcClNQF7WYGKvGwGoIhA==} 457 457 458 - '@atproto/api@0.13.20': 459 - resolution: {integrity: sha512-z/+CvG6BEttRHf856tKSe1AeUQNfrobRJldaHAthGmFk7O3wLZQyfcI9DUmBJQ9+4wAt0dZwvKWVGLZOV9eLHA==} 458 + '@atproto/api@0.13.19': 459 + resolution: {integrity: sha512-rLWQBZaOIk3ds1Fx9CwrdyX3X2GbdSEvVJ9mdSPNX40joiEaE1ljGMOcziFipbvZacXynozE4E0Sb1CgOhzfmA==} 460 460 461 - '@atproto/api@0.15.6': 462 - resolution: {integrity: sha512-hKwrBf60LcI4BqArWyrhWJWIpjwAWUJpW3PVvNzUB1q2W/ByC0JAuwq/F8tZpCEiiVBzHjHVRx4QNA2TA1cG3g==} 461 + '@atproto/api@0.15.14': 462 + resolution: {integrity: sha512-FHEMAdscG+r2OFcZUIzPyTDpwzRAyinRsIIaTcuqe0MgZWF4CEGNAKPos0IbecBzMxTOzUHE18dQDKhoXMdgvg==} 463 463 464 464 '@atproto/common-web@0.3.1': 465 465 resolution: {integrity: sha512-N7wiTnus5vAr+lT//0y8m/FaHHLJ9LpGuEwkwDAeV3LCiPif4m/FS8x/QOYrx1PdZQwKso95RAPzCGWQBH5j6Q==} 466 466 467 - '@atproto/common-web@0.3.2': 468 - resolution: {integrity: sha512-Vx0JtL1/CssJbFAb0UOdvTrkbUautsDfHNOXNTcX2vyPIxH9xOameSqLLunM1hZnOQbJwyjmQCt6TV+bhnanDg==} 469 - 470 467 '@atproto/common-web@0.4.2': 471 468 resolution: {integrity: sha512-vrXwGNoFGogodjQvJDxAeP3QbGtawgZute2ed1XdRO0wMixLk3qewtikZm06H259QDJVu6voKC5mubml+WgQUw==} 472 469 473 - '@atproto/common@0.4.6': 474 - resolution: {integrity: sha512-X33ZubLPrHLNur2Ln4tRP5TY0G0u/t9DyAeA5dgtTNGIXE3iJIlfiUSR0PW5s1iAvBbrrJK4BwaA2Pqsdl+RNw==} 470 + '@atproto/common@0.4.4': 471 + resolution: {integrity: sha512-58tMbn6A1Zu296s/l3uIj8z9d7IRHpZvLOfsFRikaQaYrzhJpL2aPY4uFQ8GJcxnsxeUnxBCrQz9we5jVVJI5Q==} 472 + 473 + '@atproto/common@0.4.5': 474 + resolution: {integrity: sha512-LFAGqHcxCI5+b31Xgk+VQQtZU258iGPpHJzNeHVcdh6teIKZi4C2l6YV+m+3CEz+yYcfP7jjUmgqesx7l9Arsg==} 475 475 476 - '@atproto/crypto@0.4.3': 477 - resolution: {integrity: sha512-YSSUAvkx+ldpXw97NXZWfLx/prgh5YJ2K0BCw51JCJmXSRp6KhhwvOm4J+K/s5hwpssyuDCVTXknyS4PHwaK5g==} 476 + '@atproto/crypto@0.4.2': 477 + resolution: {integrity: sha512-aeOfPQYCDbhn2hV06oBF2KXrWjf/BK4yL8lfANJKSmKl3tKWCkiW/moi643rUXXxSE72KtWtQeqvNFYnnFJ0ig==} 478 478 479 479 '@atproto/did@0.1.3': 480 480 resolution: {integrity: sha512-ULD8Gw/KRRwLFZ2Z2L4DjmdOMrg8IYYlcjdSc+GQ2/QJSVnD2zaJJVTLd3vls121wGt/583rNaiZTT2DpBze4w==} 481 - 482 - '@atproto/did@0.1.4': 483 - resolution: {integrity: sha512-dXi0uSmOla4s2JFM6RVnn8N7DtqJaI4F8Mx5/YI+WbQXzbdMzsFKcP2hFZVoIGqvKsDdLdcTWfawxlh/g8DW+A==} 484 481 485 482 '@atproto/did@0.1.5': 486 483 resolution: {integrity: sha512-8+1D08QdGE5TF0bB0vV8HLVrVZJeLNITpRTUVEoABNMRaUS7CoYSVb0+JNQDeJIVmqMjOL8dOjvCUDkp3gEaGQ==} 487 484 488 - '@atproto/identity@0.4.5': 489 - resolution: {integrity: sha512-IyW6wk+qfX+z/LmBdjatJgjSJWDTJLSCT/6yQUD/L0mkOjRdxiG7DoYIChaF3xHOPKiIuOGu/fuzhBMxVVcCcw==} 485 + '@atproto/identity@0.4.3': 486 + resolution: {integrity: sha512-DLXMWh57dHvIeBl+IvC+q20z0IdDZT1awOn84vDyxacL9DfhbiTy/zCUPFEzHyvfrilNG1tDA4zQzURubdFqNg==} 490 487 491 488 '@atproto/jwk-jose@0.1.2': 492 489 resolution: {integrity: sha512-lDwc/6lLn2aZ/JpyyggyjLFsJPMntrVzryyGUx5aNpuTS8SIuc4Ky0REhxqfLopQXJJZCuRRjagHG3uP05/moQ==} 493 490 494 - '@atproto/jwk-jose@0.1.3': 495 - resolution: {integrity: sha512-kPlX9n+WrSx1nzPODxeXncDZ5MqWOaneo+8zNCufIgHdzkDgrGmw8GraUmXZMxmsUthnx52B7vVMUapM2hHetw==} 496 - 497 491 '@atproto/jwk-webcrypto@0.1.2': 498 492 resolution: {integrity: sha512-vTBUbUZXh0GI+6KJiPGukmI4BQEHFAij8fJJ4WnReF/hefAs3ISZtrWZHGBebz+q2EcExYlnhhlmxvDzV7veGw==} 499 493 500 - '@atproto/jwk-webcrypto@0.1.3': 501 - resolution: {integrity: sha512-32gngFZSa0lK/31ttlY+BNrNh6BkCLA3voa7KHdN0r1YMfqFzTPX+RMAOQeBTK7FY9Z0SC65l0+6tSId24TgoQ==} 502 - 503 494 '@atproto/jwk@0.1.1': 504 495 resolution: {integrity: sha512-6h/bj1APUk7QcV9t/oA6+9DB5NZx9SZru9x+/pV5oHFI9Xz4ZuM5+dq1PfsJV54pZyqdnZ6W6M717cxoC7q7og==} 505 496 506 - '@atproto/jwk@0.1.2': 507 - resolution: {integrity: sha512-VTQOPaXevW42PQNUD6xJSa6BSjJKKz2DmJqaBP1TkCnLQSr1iU04yyvBSPijQpvWaZWnPnn06NQiorsv7INX6Q==} 508 - 509 - '@atproto/jwk@0.1.5': 510 - resolution: {integrity: sha512-OzZFLhX41TOcMeanP3aZlL5bLeaUIZT15MI4aU5cwflNq/rwpGOpz3uwDjZc8ytgUjuTQ8LabSz5jMmwoTSWFg==} 497 + '@atproto/jwk@0.2.0': 498 + resolution: {integrity: sha512-foOxExbw04XCaoLaGdv9BQj0Ac7snZsk6IpQjOsjYatf+i62Pi9bUkZ0MAoA75HPk8ZmKoDnbA60uBMmiOPPHQ==} 511 499 512 - '@atproto/lex-cli@0.5.6': 513 - resolution: {integrity: sha512-3XMZLoZ4PST84qj+MBC2yyg9CjR10suFt0dkWAUTnaJw5wffaBhm9reUqDAEmf+Gjxq1CAuCZ+ge7FNFd8S1/A==} 500 + '@atproto/lex-cli@0.5.4': 501 + resolution: {integrity: sha512-mNEPeQLXl3iCXPO/FSo0BTfP00lx+9xEQpf9LEpDuKA6WCWjIB7WHzU2VLk26NSftzH3sf6zf+A2yZ+WWRbYpw==} 514 502 hasBin: true 515 503 516 - '@atproto/lex-cli@0.8.1': 517 - resolution: {integrity: sha512-0Ns6kX46gum2jU8bpvWCSVqoYhjmJrOGR/NLfLHgPbJtBlyxMGQAxqpy1x6zOi6SkkRGWYhHvRfr5J8lTHbxjA==} 504 + '@atproto/lex-cli@0.8.2': 505 + resolution: {integrity: sha512-yNQFYBV3tBBLnVrRUtUBlx/WIF4ypMFsvOsCLjA7pHL1SyW9JbczSEAoiNtoDmPc4UXCjMtXggz0ovBG8lynNA==} 518 506 engines: {node: '>=18.7.0'} 519 507 hasBin: true 520 508 521 509 '@atproto/lexicon@0.4.11': 522 510 resolution: {integrity: sha512-btefdnvNz2Ao2I+qbmj0F06HC8IlrM/IBz6qOBS50r0S6uDf5tOO+Mv2tSVdimFkdzyDdLtBI1sV36ONxz2cOw==} 511 + 512 + '@atproto/lexicon@0.4.3': 513 + resolution: {integrity: sha512-lFVZXe1S1pJP0dcxvJuHP3r/a+EAIBwwU7jUK+r8iLhIja+ml6NmYv8KeFHmIJATh03spEQ9s02duDmFVdCoXg==} 523 514 524 515 '@atproto/lexicon@0.4.4': 525 516 resolution: {integrity: sha512-QFEmr3rpj/RoAmfX9ALU/asBG/rsVtQZnw+9nOB1/AuIwoxXd+ZyndR6lVUc2+DL4GEjl6W2yvBru5xbQIZWyA==} 526 517 527 - '@atproto/lexicon@0.4.5': 528 - resolution: {integrity: sha512-fljWqMGKn+XWtTprBcS3F1hGBREnQYh6qYHv2sjENucc7REms1gtmZXSerB9N6pVeHVNOnXiILdukeAcic5OEw==} 529 - 530 518 '@atproto/oauth-client-browser@0.3.2': 531 519 resolution: {integrity: sha512-Nt9tPxeJTwsX8i6du0dSMonymHHpOVnt67bfA49LpwAS39nNd9zY6yjOrqj0suRwFhoGpvO2e+I35lqe30L+Ig==} 532 520 533 - '@atproto/oauth-client-node@0.2.8': 534 - resolution: {integrity: sha512-EHxdfNpRvwnlxHFCYjl5+ckmPKwYe/jSMN2RksudrSg/XivRzJisgBMOsQ2FnuXIiC9eh4HZ+MrxnoEpT20tDA==} 535 - 536 - '@atproto/oauth-client@0.3.16': 537 - resolution: {integrity: sha512-AEtGLOXRJzBcBa8LyUXwFf/M7cZc+CcOBjLsiqmVQriSwccfyTkALgiyM0UcRHJqlwtLPuf9RYtgKPc8rW5F/w==} 521 + '@atproto/oauth-client-node@0.2.3': 522 + resolution: {integrity: sha512-crHxZaP9T/i7O9fOhALcFtW1EP/tVblDnWoaIiZ3vL/hvVLwSUad/wvG2WPcVURzLSbigDInhn7rZZSzLxJacg==} 538 523 539 524 '@atproto/oauth-client@0.3.2': 540 525 resolution: {integrity: sha512-/HUlv5dnR1am4BQlVYSuevGf4mKJ5RMkElnum8lbwRDewKyzqHwdtJWeNcfcPFtDhUKg0U2pWfRv8ZZd6kk9dQ==} 541 526 542 - '@atproto/oauth-client@0.3.7': 543 - resolution: {integrity: sha512-CXikk9FwkL8sEATHZlAEM3qsIjIT8wkh9EShXceEgS3f4BSAbSpnGvYjiV2wdrykSVmbMWH1wynl6T/aeHQJEg==} 527 + '@atproto/oauth-client@0.3.21': 528 + resolution: {integrity: sha512-a+YM3aaOAY8/otlAnYmXC0XO+KLOo2cZGHwVvudTSnzwpps8sxhuELdPFl3JN16fS45TUnkYUIaqBgb9MLpx8w==} 544 529 545 - '@atproto/oauth-client@0.3.8': 546 - resolution: {integrity: sha512-nItyflIb9GiOHVVZbnnBBPGZJ+21k2p7hMZc4HdmizhmxJtj/Ocwguyz8AA/AcEpHnsM4o29yWZaZry+QPhzvw==} 530 + '@atproto/oauth-client@0.3.3': 531 + resolution: {integrity: sha512-qC6ekTdbUrXxDwuUC9jInWw7TuJYkl/EuReoLcvZ7dv9KbCUEuoYT0TNROLGp24cxRH65q/PVlp10Ov7lkxteg==} 547 532 548 533 '@atproto/oauth-types@0.2.1': 549 534 resolution: {integrity: sha512-hDisUXzcq5KU1HMuCYZ8Kcz7BePl7V11bFjjgZvND3mdSphiyBpJ8MCNn3QzAa6cXpFo0w9PDcYMAlCCRZHdVw==} 550 535 551 - '@atproto/oauth-types@0.2.2': 552 - resolution: {integrity: sha512-UMTfJwKD/mIZEXxVT02XWYMtRJAu4iytxhlScH48Q/40nOa6oV4wUFij0gnV4NAQkjHMaYh39ChRMjjKHeypJA==} 536 + '@atproto/oauth-types@0.2.8': 537 + resolution: {integrity: sha512-xcYI2JmhrWwscePDoaKeDawVCCZkcvBqrBFMpMk4gf/OujH0pNSKBD/aWsayc6WvujVbTqwrG2hwPLfRqzJbwg==} 553 538 554 - '@atproto/oauth-types@0.2.7': 555 - resolution: {integrity: sha512-2SlDveiSI0oowC+sfuNd/npV8jw/FhokSS26qyUyldTg1g9ZlhxXUfMP4IZOPeZcVn9EszzQRHs1H9ZJqVQIew==} 539 + '@atproto/repo@0.5.5': 540 + resolution: {integrity: sha512-Zu1tw42KBVyFzIh1XYSIvm8V+V9oEKWJR7NnHBgeSMwCc9QwM32jO7uqgvEjZYEXgdYKanGhv/YHLyxtZa5Ckg==} 556 541 557 - '@atproto/repo@0.6.2': 558 - resolution: {integrity: sha512-0YEWJ38Sj8SwhD8GGQ7Q6GDeZppsRae4JfNLQmtPgAddt5A4iNIK5HLdpGGlT+dC0/ElsEbQpY7mXLuP92Wbtw==} 559 - 560 - '@atproto/sync@0.1.11': 561 - resolution: {integrity: sha512-+Wa+7AxEdL8R7iLohyBMzMQ5tHwHkgrPt0Tu6W9HLZ/fBh2yt09vlD10SU6NifX0eC8kpA3letnxUD3nu5bDBQ==} 542 + '@atproto/sync@0.1.6': 543 + resolution: {integrity: sha512-9lqe6E6fIns28TJyQufLCVefMxmK3bvEfQBhmXJBGZMHuKlH8+F5P9DfnHv6vs6ygfmHIUIjYDWqJu/rpt8pzw==} 562 544 563 545 '@atproto/syntax@0.3.1': 564 546 resolution: {integrity: sha512-fzW0Mg1QUOVCWUD3RgEsDt6d1OZ6DdFmbKcDdbzUfh0t4rhtRAC05KbZYmxuMPWDAiJ4BbbQ5dkAc/mNypMXkw==} ··· 566 548 '@atproto/syntax@0.4.0': 567 549 resolution: {integrity: sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA==} 568 550 569 - '@atproto/xrpc-server@0.7.8': 570 - resolution: {integrity: sha512-0QlNPYcxI37AJLL9OffQrkFI5F5SkVKf3VvNkQFVNaOe1eqdu4lty8VVVrweA57EnnOO8W4xVlc9xgVa33Gbyg==} 551 + '@atproto/xrpc-server@0.7.4': 552 + resolution: {integrity: sha512-MrAwxfJBQm/kCol3D8qc+vpQzBMzLqvtUbauSSfVVJ10PlGtxg4LlXqcjkAuhrjyrqp3dQH9LHuhDpgVQK+G3w==} 571 553 572 554 '@atproto/xrpc@0.6.4': 573 555 resolution: {integrity: sha512-9ZAJ8nsXTqC4XFyS0E1Wlg7bAvonhXQNQ3Ocs1L1LIwFLXvsw/4fNpIHXxvXvqTCVeyHLbImOnE9UiO1c/qIYA==} 574 556 575 557 '@atproto/xrpc@0.6.5': 576 558 resolution: {integrity: sha512-t6u8iPEVbWge5RhzKZDahSzNDYIAxUtop6Q/X/apAZY1rgreVU0/1sSvvRoRFH19d3UIKjYdLuwFqMi9w8nY3Q==} 577 - 578 - '@atproto/xrpc@0.6.6': 579 - resolution: {integrity: sha512-umXEYVMo9/pyIBoKmIAIi64RXDW9tSXY+wqztlQ6I2GZtjLfNZqmAWU+wADk3SxUe54mvjxxGyA4TtyGtDMfhA==} 580 - 581 - '@atproto/xrpc@0.6.7': 582 - resolution: {integrity: sha512-pbzZIONIskyGKxxG3s2wB7rQ2W1xu3ycfeYhKwk/E/ippeJFVxcof64iSC7f22+7JSKUJcxBeZ1piBB82vLj7g==} 583 559 584 560 '@atproto/xrpc@0.7.0': 585 561 resolution: {integrity: sha512-SfhP9dGx2qclaScFDb58Jnrmim5nk4geZXCqg6sB0I/KZhZEkr9iIx1hLCp+sxkIfEsmEJjeWO4B0rjUIJW5cw==} ··· 1088 1064 resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} 1089 1065 engines: {node: '>=6.9.0'} 1090 1066 1091 - '@braintree/sanitize-url@7.1.1': 1092 - resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} 1067 + '@braintree/sanitize-url@7.1.0': 1068 + resolution: {integrity: sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg==} 1093 1069 1094 1070 '@cbor-extract/cbor-extract-darwin-arm64@2.2.0': 1095 1071 resolution: {integrity: sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==} ··· 1155 1131 cpu: [ppc64] 1156 1132 os: [aix] 1157 1133 1158 - '@esbuild/aix-ppc64@0.24.2': 1159 - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} 1134 + '@esbuild/aix-ppc64@0.24.0': 1135 + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} 1160 1136 engines: {node: '>=18'} 1161 1137 cpu: [ppc64] 1162 1138 os: [aix] ··· 1179 1155 cpu: [arm64] 1180 1156 os: [android] 1181 1157 1182 - '@esbuild/android-arm64@0.24.2': 1183 - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} 1158 + '@esbuild/android-arm64@0.24.0': 1159 + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} 1184 1160 engines: {node: '>=18'} 1185 1161 cpu: [arm64] 1186 1162 os: [android] ··· 1203 1179 cpu: [arm] 1204 1180 os: [android] 1205 1181 1206 - '@esbuild/android-arm@0.24.2': 1207 - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} 1182 + '@esbuild/android-arm@0.24.0': 1183 + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} 1208 1184 engines: {node: '>=18'} 1209 1185 cpu: [arm] 1210 1186 os: [android] ··· 1227 1203 cpu: [x64] 1228 1204 os: [android] 1229 1205 1230 - '@esbuild/android-x64@0.24.2': 1231 - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} 1206 + '@esbuild/android-x64@0.24.0': 1207 + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} 1232 1208 engines: {node: '>=18'} 1233 1209 cpu: [x64] 1234 1210 os: [android] ··· 1251 1227 cpu: [arm64] 1252 1228 os: [darwin] 1253 1229 1254 - '@esbuild/darwin-arm64@0.24.2': 1255 - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} 1230 + '@esbuild/darwin-arm64@0.24.0': 1231 + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} 1256 1232 engines: {node: '>=18'} 1257 1233 cpu: [arm64] 1258 1234 os: [darwin] ··· 1275 1251 cpu: [x64] 1276 1252 os: [darwin] 1277 1253 1278 - '@esbuild/darwin-x64@0.24.2': 1279 - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} 1254 + '@esbuild/darwin-x64@0.24.0': 1255 + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} 1280 1256 engines: {node: '>=18'} 1281 1257 cpu: [x64] 1282 1258 os: [darwin] ··· 1299 1275 cpu: [arm64] 1300 1276 os: [freebsd] 1301 1277 1302 - '@esbuild/freebsd-arm64@0.24.2': 1303 - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} 1278 + '@esbuild/freebsd-arm64@0.24.0': 1279 + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} 1304 1280 engines: {node: '>=18'} 1305 1281 cpu: [arm64] 1306 1282 os: [freebsd] ··· 1323 1299 cpu: [x64] 1324 1300 os: [freebsd] 1325 1301 1326 - '@esbuild/freebsd-x64@0.24.2': 1327 - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} 1302 + '@esbuild/freebsd-x64@0.24.0': 1303 + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} 1328 1304 engines: {node: '>=18'} 1329 1305 cpu: [x64] 1330 1306 os: [freebsd] ··· 1347 1323 cpu: [arm64] 1348 1324 os: [linux] 1349 1325 1350 - '@esbuild/linux-arm64@0.24.2': 1351 - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} 1326 + '@esbuild/linux-arm64@0.24.0': 1327 + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} 1352 1328 engines: {node: '>=18'} 1353 1329 cpu: [arm64] 1354 1330 os: [linux] ··· 1371 1347 cpu: [arm] 1372 1348 os: [linux] 1373 1349 1374 - '@esbuild/linux-arm@0.24.2': 1375 - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} 1350 + '@esbuild/linux-arm@0.24.0': 1351 + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} 1376 1352 engines: {node: '>=18'} 1377 1353 cpu: [arm] 1378 1354 os: [linux] ··· 1395 1371 cpu: [ia32] 1396 1372 os: [linux] 1397 1373 1398 - '@esbuild/linux-ia32@0.24.2': 1399 - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} 1374 + '@esbuild/linux-ia32@0.24.0': 1375 + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} 1400 1376 engines: {node: '>=18'} 1401 1377 cpu: [ia32] 1402 1378 os: [linux] ··· 1419 1395 cpu: [loong64] 1420 1396 os: [linux] 1421 1397 1422 - '@esbuild/linux-loong64@0.24.2': 1423 - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} 1398 + '@esbuild/linux-loong64@0.24.0': 1399 + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} 1424 1400 engines: {node: '>=18'} 1425 1401 cpu: [loong64] 1426 1402 os: [linux] ··· 1443 1419 cpu: [mips64el] 1444 1420 os: [linux] 1445 1421 1446 - '@esbuild/linux-mips64el@0.24.2': 1447 - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} 1422 + '@esbuild/linux-mips64el@0.24.0': 1423 + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} 1448 1424 engines: {node: '>=18'} 1449 1425 cpu: [mips64el] 1450 1426 os: [linux] ··· 1467 1443 cpu: [ppc64] 1468 1444 os: [linux] 1469 1445 1470 - '@esbuild/linux-ppc64@0.24.2': 1471 - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} 1446 + '@esbuild/linux-ppc64@0.24.0': 1447 + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} 1472 1448 engines: {node: '>=18'} 1473 1449 cpu: [ppc64] 1474 1450 os: [linux] ··· 1491 1467 cpu: [riscv64] 1492 1468 os: [linux] 1493 1469 1494 - '@esbuild/linux-riscv64@0.24.2': 1495 - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} 1470 + '@esbuild/linux-riscv64@0.24.0': 1471 + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} 1496 1472 engines: {node: '>=18'} 1497 1473 cpu: [riscv64] 1498 1474 os: [linux] ··· 1515 1491 cpu: [s390x] 1516 1492 os: [linux] 1517 1493 1518 - '@esbuild/linux-s390x@0.24.2': 1519 - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} 1494 + '@esbuild/linux-s390x@0.24.0': 1495 + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} 1520 1496 engines: {node: '>=18'} 1521 1497 cpu: [s390x] 1522 1498 os: [linux] ··· 1539 1515 cpu: [x64] 1540 1516 os: [linux] 1541 1517 1542 - '@esbuild/linux-x64@0.24.2': 1543 - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} 1518 + '@esbuild/linux-x64@0.24.0': 1519 + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} 1544 1520 engines: {node: '>=18'} 1545 1521 cpu: [x64] 1546 1522 os: [linux] 1547 - 1548 - '@esbuild/netbsd-arm64@0.24.2': 1549 - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} 1550 - engines: {node: '>=18'} 1551 - cpu: [arm64] 1552 - os: [netbsd] 1553 1523 1554 1524 '@esbuild/netbsd-x64@0.18.20': 1555 1525 resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} ··· 1569 1539 cpu: [x64] 1570 1540 os: [netbsd] 1571 1541 1572 - '@esbuild/netbsd-x64@0.24.2': 1573 - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} 1542 + '@esbuild/netbsd-x64@0.24.0': 1543 + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} 1574 1544 engines: {node: '>=18'} 1575 1545 cpu: [x64] 1576 1546 os: [netbsd] ··· 1581 1551 cpu: [arm64] 1582 1552 os: [openbsd] 1583 1553 1584 - '@esbuild/openbsd-arm64@0.24.2': 1585 - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} 1554 + '@esbuild/openbsd-arm64@0.24.0': 1555 + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} 1586 1556 engines: {node: '>=18'} 1587 1557 cpu: [arm64] 1588 1558 os: [openbsd] ··· 1605 1575 cpu: [x64] 1606 1576 os: [openbsd] 1607 1577 1608 - '@esbuild/openbsd-x64@0.24.2': 1609 - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} 1578 + '@esbuild/openbsd-x64@0.24.0': 1579 + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} 1610 1580 engines: {node: '>=18'} 1611 1581 cpu: [x64] 1612 1582 os: [openbsd] ··· 1629 1599 cpu: [x64] 1630 1600 os: [sunos] 1631 1601 1632 - '@esbuild/sunos-x64@0.24.2': 1633 - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} 1602 + '@esbuild/sunos-x64@0.24.0': 1603 + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} 1634 1604 engines: {node: '>=18'} 1635 1605 cpu: [x64] 1636 1606 os: [sunos] ··· 1653 1623 cpu: [arm64] 1654 1624 os: [win32] 1655 1625 1656 - '@esbuild/win32-arm64@0.24.2': 1657 - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} 1626 + '@esbuild/win32-arm64@0.24.0': 1627 + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} 1658 1628 engines: {node: '>=18'} 1659 1629 cpu: [arm64] 1660 1630 os: [win32] ··· 1677 1647 cpu: [ia32] 1678 1648 os: [win32] 1679 1649 1680 - '@esbuild/win32-ia32@0.24.2': 1681 - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} 1650 + '@esbuild/win32-ia32@0.24.0': 1651 + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} 1682 1652 engines: {node: '>=18'} 1683 1653 cpu: [ia32] 1684 1654 os: [win32] ··· 1701 1671 cpu: [x64] 1702 1672 os: [win32] 1703 1673 1704 - '@esbuild/win32-x64@0.24.2': 1705 - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} 1674 + '@esbuild/win32-x64@0.24.0': 1675 + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} 1706 1676 engines: {node: '>=18'} 1707 1677 cpu: [x64] 1708 1678 os: [win32] 1709 1679 1710 1680 '@eslint-community/eslint-utils@4.4.1': 1711 1681 resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} 1682 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1683 + peerDependencies: 1684 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 1685 + 1686 + '@eslint-community/eslint-utils@4.7.0': 1687 + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} 1712 1688 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1713 1689 peerDependencies: 1714 1690 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 ··· 1725 1701 resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} 1726 1702 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1727 1703 1728 - '@expo/cli@0.24.13': 1729 - resolution: {integrity: sha512-2LSdbvYs+WmUljnplQXMCUyNzyX4H+F4l8uExfA1hud25Bl5kyaGrx1jjtgNxMTXmfmMjvgBdK798R50imEhkA==} 1704 + '@expo/cli@0.24.14': 1705 + resolution: {integrity: sha512-o+QYyfIBhSRTgaywKTLJhm2Fg5PrSeUVCXS+uQySamgoMjLNhHa8QwE64mW/FmJr5hZLiqUEQxb60FK4JcyqXg==} 1730 1706 hasBin: true 1731 1707 1732 1708 '@expo/code-signing-certificates@0.0.5': ··· 1735 1711 '@expo/config-plugins@10.0.2': 1736 1712 resolution: {integrity: sha512-TzUn3pPdpwCS0yYaSlZOClgDmCX8N4I2lfgitX5oStqmvpPtB+vqtdyqsVM02fQ2tlJIAqwBW+NHaHqqy8Jv7g==} 1737 1713 1738 - '@expo/config-types@53.0.3': 1739 - resolution: {integrity: sha512-V1e6CiM4TXtGxG/W2Msjp/QOx/vikLo5IUGMvEMjgAglBfGYx3PXfqsUb5aZDt6kqA3bDDwFuZoS5vNm/SYwSg==} 1740 - 1741 1714 '@expo/config-types@53.0.4': 1742 1715 resolution: {integrity: sha512-0s+9vFx83WIToEr0Iwy4CcmiUXa5BgwBmEjylBB2eojX5XAMm9mJvw9KpjAb8m7zq2G0Q6bRbeufkzgbipuNQg==} 1743 1716 1744 1717 '@expo/config@11.0.10': 1745 1718 resolution: {integrity: sha512-8S8Krr/c5lnl0eF03tA2UGY9rGBhZcbWKz2UWw5dpL/+zstwUmog8oyuuC8aRcn7GiTQLlbBkxcMeT8sOGlhbA==} 1746 1719 1747 - '@expo/config@11.0.8': 1748 - resolution: {integrity: sha512-udLrpW4SvXUwF+ntJ0RzEjRbFoSS7Tr/rMrvhfISHWGbcZ09+c+QkI0O8y1sEBWQDpI/IlC9REPqGm5b7HweDw==} 1749 - 1750 1720 '@expo/devcert@1.1.4': 1751 1721 resolution: {integrity: sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==} 1752 1722 1753 1723 '@expo/env@1.0.5': 1754 1724 resolution: {integrity: sha512-dtEZ4CAMaVrFu2+tezhU3FoGWtbzQl50xV+rNJE5lYVRjUflWiZkVHlHkWUlPAwDPifLy4TuissVfScGGPWR5g==} 1755 1725 1756 - '@expo/fingerprint@0.12.4': 1757 - resolution: {integrity: sha512-HOJVvjiQYVHIouCOfFf4JRrQvBDIV/12GVG2iwbw1iGwmpQVkPgEXa9lN0f2yuS4J3QXHs73wr9jvuCjMmJlfw==} 1726 + '@expo/fingerprint@0.13.0': 1727 + resolution: {integrity: sha512-3IwpH0p3uO8jrJSLOUNDzJVh7VEBod0emnCBq0hD72sy6ICmzauM6Xf4he+2Tip7fzImCJRd63GaehV+CCtpvA==} 1758 1728 hasBin: true 1759 1729 1760 1730 '@expo/image-utils@0.7.4': ··· 1781 1751 '@expo/plist@0.3.4': 1782 1752 resolution: {integrity: sha512-MhBLaUJNe9FQDDU2xhSNS4SAolr6K2wuyi4+A79vYuXLkAoICsbTwcGEQJN5jPY6D9izO/jsXh5k0h+mIWQMdw==} 1783 1753 1784 - '@expo/prebuild-config@9.0.5': 1785 - resolution: {integrity: sha512-oiSVU5ePu9lsOvn5p4xplqjzPlcZHzKYwzuonTa9GCH1GxcOEIBsvMVQiHBXHtqvgV2dztjm34kdXV//+9jtCA==} 1786 - 1787 1754 '@expo/prebuild-config@9.0.6': 1788 1755 resolution: {integrity: sha512-HDTdlMkTQZ95rd6EpvuLM+xkZV03yGLc38FqI37qKFLJtUN1WnYVaWsuXKoljd1OrVEVsHe6CfqKwaPZ52D56Q==} 1789 1756 ··· 1826 1793 '@floating-ui/utils@0.2.8': 1827 1794 resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} 1828 1795 1829 - '@gorhom/bottom-sheet@5.1.4': 1830 - resolution: {integrity: sha512-A49fbCLL3wxDhGvEsMzHDpBF+BqVCbXHEhLJo9plPSAxNjjPJFzJ65axj95R38+iqML0gmXyawpZ45PD4EEMAw==} 1796 + '@gorhom/bottom-sheet@5.1.6': 1797 + resolution: {integrity: sha512-0b5tQj4fTaZAjST1PnkCp0p7d8iRqMezibTcqc8Kkn3N23Vn6upORNTD1fH0bLfwRt6e0WnZ7DjAmq315lrcKQ==} 1831 1798 peerDependencies: 1832 1799 '@types/react': '*' 1833 1800 '@types/react-native': '*' ··· 1866 1833 resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 1867 1834 deprecated: Use @eslint/object-schema instead 1868 1835 1836 + '@ianvs/prettier-plugin-sort-imports@4.4.2': 1837 + resolution: {integrity: sha512-KkVFy3TLh0OFzimbZglMmORi+vL/i2OFhEs5M07R9w0IwWAGpsNNyE4CY/2u0YoMF5bawKC2+8/fUH60nnNtjw==} 1838 + peerDependencies: 1839 + '@vue/compiler-sfc': 2.7.x || 3.x 1840 + prettier: 2 || 3 || ^4.0.0-0 1841 + peerDependenciesMeta: 1842 + '@vue/compiler-sfc': 1843 + optional: true 1844 + 1869 1845 '@ipld/car@3.2.4': 1870 1846 resolution: {integrity: sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw==} 1871 1847 ··· 1916 1892 resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} 1917 1893 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1918 1894 1919 - '@jridgewell/gen-mapping@0.3.8': 1920 - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 1895 + '@jridgewell/gen-mapping@0.3.5': 1896 + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 1921 1897 engines: {node: '>=6.0.0'} 1922 1898 1923 1899 '@jridgewell/resolve-uri@3.1.2': ··· 1994 1970 '@neon-rs/load@0.0.4': 1995 1971 resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} 1996 1972 1997 - '@noble/curves@1.8.1': 1998 - resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} 1973 + '@noble/curves@1.7.0': 1974 + resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==} 1999 1975 engines: {node: ^14.21.3 || >=16} 2000 1976 2001 - '@noble/hashes@1.7.1': 2002 - resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} 1977 + '@noble/hashes@1.6.0': 1978 + resolution: {integrity: sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==} 1979 + engines: {node: ^14.21.3 || >=16} 1980 + 1981 + '@noble/hashes@1.6.1': 1982 + resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==} 2003 1983 engines: {node: ^14.21.3 || >=16} 2004 1984 2005 1985 '@nodelib/fs.scandir@2.1.5': ··· 2094 2074 '@types/react': 2095 2075 optional: true 2096 2076 2097 - '@radix-ui/react-dismissable-layer@1.1.2': 2098 - resolution: {integrity: sha512-kEHnlhv7wUggvhuJPkyw4qspXLJOdYoAP4dO2c8ngGuXTq1w/HZp1YeVB+NQ2KbH1iEG+pvOCGYSqh9HZOz6hg==} 2077 + '@radix-ui/react-dismissable-layer@1.1.3': 2078 + resolution: {integrity: sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==} 2099 2079 peerDependencies: 2100 2080 '@types/react': '*' 2101 2081 '@types/react-dom': '*' ··· 2129 2109 '@types/react-dom': 2130 2110 optional: true 2131 2111 2132 - '@radix-ui/react-hover-card@1.1.3': 2133 - resolution: {integrity: sha512-D+o67Fd7fjkW10ycdsse1sYuGV9dNQKOhoVii7ksSfUYqQiTPxz9bP/Vu1g6huJ1651/2j8q7JGGWSIBIuGO1Q==} 2112 + '@radix-ui/react-hover-card@1.1.4': 2113 + resolution: {integrity: sha512-QSUUnRA3PQ2UhvoCv3eYvMnCAgGQW+sTu86QPuNb+ZMi+ZENd6UWpiXbcWDQ4AEaKF9KKpCHBeaJz9Rw6lRlaQ==} 2134 2114 peerDependencies: 2135 2115 '@types/react': '*' 2136 2116 '@types/react-dom': '*' ··· 2151 2131 '@types/react': 2152 2132 optional: true 2153 2133 2154 - '@radix-ui/react-popover@1.1.3': 2155 - resolution: {integrity: sha512-MBDKFwRe6fi0LT8m/Jl4V8J3WbS/UfXJtsgg8Ym5w5AyPG3XfHH4zhBp1P8HmZK83T8J7UzVm6/JpDE3WMl1Dw==} 2134 + '@radix-ui/react-popover@1.1.4': 2135 + resolution: {integrity: sha512-aUACAkXx8LaFymDma+HQVji7WhvEhpFJ7+qPz17Nf4lLZqtreGOFRiNQWQmhzp7kEWg9cOyyQJpdIMUMPc/CPw==} 2156 2136 peerDependencies: 2157 2137 '@types/react': '*' 2158 2138 '@types/react-dom': '*' ··· 2247 2227 '@types/react': 2248 2228 optional: true 2249 2229 2250 - '@radix-ui/react-tooltip@1.1.5': 2251 - resolution: {integrity: sha512-IucoQPcK5nwUuztaxBQvudvYwH58wtRcJlv1qvaMSyIbL9dEBfFN0vRf/D8xDbu6HmAJLlNGty4z8Na+vIqe9Q==} 2230 + '@radix-ui/react-tooltip@1.1.6': 2231 + resolution: {integrity: sha512-TLB5D8QLExS1uDn7+wH/bjEmRurNMTzNrtq7IjaS4kjion9NtzsTGkvR5+i7yc9q01Pi2KMM2cN3f8UG4IvvXA==} 2252 2232 peerDependencies: 2253 2233 '@types/react': '*' 2254 2234 '@types/react-dom': '*' ··· 2345 2325 resolution: {integrity: sha512-5h2Z7/+/HL/0h88s0JHOdRCW4CXMCJoROxqzHqxdrjGL6EBD1DdaB4ZqkCOEVSW4Vjhir5Qb97C8i/MPWEYPtg==} 2346 2326 engines: {node: '>=18'} 2347 2327 2348 - '@react-native/babel-plugin-codegen@0.79.2': 2349 - resolution: {integrity: sha512-d+NB7Uosn2ZWd4O4+7ZkB6q1a+0z2opD/4+Bzhk/Tv6fc5FrSftK2Noqxvo3/bhbdGFVPxf0yvLE8et4W17x/Q==} 2328 + '@react-native/babel-plugin-codegen@0.79.3': 2329 + resolution: {integrity: sha512-Zb8F4bSEKKZfms5n1MQ0o5mudDcpAINkKiFuFTU0PErYGjY3kZ+JeIP+gS6KCXsckxCfMEKQwqKicP/4DWgsZQ==} 2350 2330 engines: {node: '>=18'} 2351 2331 2352 - '@react-native/babel-preset@0.79.2': 2353 - resolution: {integrity: sha512-/HNu869oUq4FUXizpiNWrIhucsYZqu0/0spudJEzk9SEKar0EjVDP7zkg/sKK+KccNypDQGW7nFXT8onzvQ3og==} 2332 + '@react-native/babel-preset@0.79.3': 2333 + resolution: {integrity: sha512-VHGNP02bDD2Ul1my0pLVwe/0dsEBHxR343ySpgnkCNEEm9C1ANQIL2wvnJrHZPcqfAkWfFQ8Ln3t+6fdm4A/Dg==} 2354 2334 engines: {node: '>=18'} 2355 2335 peerDependencies: 2356 2336 '@babel/core': '*' ··· 2361 2341 peerDependencies: 2362 2342 '@babel/core': '*' 2363 2343 2344 + '@react-native/codegen@0.79.3': 2345 + resolution: {integrity: sha512-CZejXqKch/a5/s/MO5T8mkAgvzCXgsTkQtpCF15kWR9HN8T+16k0CsN7TXAxXycltoxiE3XRglOrZNEa/TiZUQ==} 2346 + engines: {node: '>=18'} 2347 + peerDependencies: 2348 + '@babel/core': '*' 2349 + 2364 2350 '@react-native/community-cli-plugin@0.79.2': 2365 2351 resolution: {integrity: sha512-E+YEY2dL+68HyR2iahsZdyBKBUi9QyPyaN9vsnda1jNgCjNpSPk2yAF5cXsho+zKK5ZQna3JSeE1Kbi2IfGJbw==} 2366 2352 engines: {node: '>=18'} ··· 2372 2358 2373 2359 '@react-native/debugger-frontend@0.79.2': 2374 2360 resolution: {integrity: sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg==} 2361 + engines: {node: '>=18'} 2362 + 2363 + '@react-native/debugger-frontend@0.79.3': 2364 + resolution: {integrity: sha512-ImNDuEeKH6lEsLXms3ZsgIrNF94jymfuhPcVY5L0trzaYNo9ZFE9Ni2/18E1IbfXxdeIHrCSBJlWD6CTm7wu5A==} 2375 2365 engines: {node: '>=18'} 2376 2366 2377 2367 '@react-native/dev-middleware@0.79.2': 2378 2368 resolution: {integrity: sha512-9q4CpkklsAs1L0Bw8XYCoqqyBSrfRALGEw4/r0EkR38Y/6fVfNfdsjSns0pTLO6h0VpxswK34L/hm4uK3MoLHw==} 2379 2369 engines: {node: '>=18'} 2380 2370 2371 + '@react-native/dev-middleware@0.79.3': 2372 + resolution: {integrity: sha512-x88+RGOyG71+idQefnQg7wLhzjn/Scs+re1O5vqCkTVzRAc/f7SdHMlbmECUxJPd08FqMcOJr7/X3nsJBrNuuw==} 2373 + engines: {node: '>=18'} 2374 + 2381 2375 '@react-native/gradle-plugin@0.79.2': 2382 2376 resolution: {integrity: sha512-6MJFemrwR0bOT0QM+2BxX9k3/pvZQNmJ3Js5pF/6owsA0cUDiCO57otiEU8Fz+UywWEzn1FoQfOfQ8vt2GYmoA==} 2383 2377 engines: {node: '>=18'} ··· 2392 2386 '@react-native/normalize-colors@0.79.2': 2393 2387 resolution: {integrity: sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==} 2394 2388 2389 + '@react-native/normalize-colors@0.79.3': 2390 + resolution: {integrity: sha512-T75NIQPRFCj6DFMxtcVMJTZR+3vHXaUMSd15t+CkJpc5LnyX91GVaPxpRSAdjFh7m3Yppl5MpdjV/fntImheYQ==} 2391 + 2395 2392 '@react-native/typescript-config@0.76.5': 2396 2393 resolution: {integrity: sha512-dRbY4XQTUUxR5Oq+S+2/5JQVU6WL0qvNnAz51jiXllC+hp5L4bljSxlzaj5CJ9vzGNFzm56m5Y9Q6MltoIU4Cw==} 2397 2394 ··· 2406 2403 '@types/react': 2407 2404 optional: true 2408 2405 2409 - '@react-navigation/bottom-tabs@7.3.11': 2410 - resolution: {integrity: sha512-/dV2MGMNIUG/puy871JFr3sKPCG/zDTpwOQZxGajegmRkx8s1PC/A6HNmqpr0qqHdfAE9Sf95BXBFl7SE8HqXA==} 2406 + '@react-navigation/bottom-tabs@7.3.14': 2407 + resolution: {integrity: sha512-s2qinJggS2HYZdCOey9A+fN+bNpWeEKwiL/FjAVOTcv+uofxPWN6CtEZUZGPEjfRjis/srURBmCmpNZSI6sQ9Q==} 2411 2408 peerDependencies: 2412 - '@react-navigation/native': ^7.1.7 2409 + '@react-navigation/native': ^7.1.10 2413 2410 react: '>= 18.2.0' 2414 - react-native: 0.79.2 2415 - react-native-safe-area-context: 5.4.0 2416 - react-native-screens: ~4.10.0 2411 + react-native: '*' 2412 + react-native-safe-area-context: '>= 4.0.0' 2413 + react-native-screens: '>= 4.0.0' 2417 2414 2418 - '@react-navigation/core@7.9.1': 2419 - resolution: {integrity: sha512-HfbsYyfD5EzTicZVv1Zpw3loYguhHSs9Ztq9K3WccyfuV4Y/+XRrMgIv7B5n6ySfQGyviPcdCEl3d1A109FhUQ==} 2415 + '@react-navigation/core@7.10.0': 2416 + resolution: {integrity: sha512-qZBA5gGm+9liT4+EHk+kl9apwvqh7HqhLF1XeX6SQRmC/n2QI0u1B8OevKc+EPUDEM9Od15IuwT/GRbSs7/Umw==} 2420 2417 peerDependencies: 2421 2418 react: '>= 18.2.0' 2422 2419 2423 - '@react-navigation/elements@2.4.0': 2424 - resolution: {integrity: sha512-3gTASi9fK+Nj17pu1w58nCLELMYqOZrziO8gmTKhlFFcq7ppF5pMu+IiVOOfSVnxO74UIYMZSIhlu+fK3EG/YA==} 2420 + '@react-navigation/elements@2.4.3': 2421 + resolution: {integrity: sha512-psoNmnZ0DQIt9nxxPITVLtYW04PGCAfnmd/Pcd3yhiBs93aj+HYKH+SDZDpUnXMf3BN7Wvo4+jPI+/Xjqb+m9w==} 2425 2422 peerDependencies: 2426 2423 '@react-native-masked-view/masked-view': '>= 0.2.0' 2427 - '@react-navigation/native': ^7.1.7 2424 + '@react-navigation/native': ^7.1.10 2428 2425 react: '>= 18.2.0' 2429 - react-native: 0.79.2 2430 - react-native-safe-area-context: 5.4.0 2426 + react-native: '*' 2427 + react-native-safe-area-context: '>= 4.0.0' 2431 2428 peerDependenciesMeta: 2432 2429 '@react-native-masked-view/masked-view': 2433 2430 optional: true 2434 2431 2435 - '@react-navigation/native-stack@7.3.11': 2436 - resolution: {integrity: sha512-BthAQ8E7xsObd3apO3rbf8x2gLinYfu2arko7eXkNCKs7I9sbEMry8KXS8rZZN3rgUXhAGWw6nFUBOiBqzu91g==} 2432 + '@react-navigation/native-stack@7.3.14': 2433 + resolution: {integrity: sha512-45Sf7ReqSCIySXS5nrKtLGmNlFXm5x+u32YQMwKDONCqVGOBCfo4ryKqeQq1EMJ7Py6IDyOwHMhA+jhNOxnfPw==} 2437 2434 peerDependencies: 2438 - '@react-navigation/native': ^7.1.7 2435 + '@react-navigation/native': ^7.1.10 2439 2436 react: '>= 18.2.0' 2440 - react-native: 0.79.2 2441 - react-native-safe-area-context: 5.4.0 2442 - react-native-screens: ~4.10.0 2437 + react-native: '*' 2438 + react-native-safe-area-context: '>= 4.0.0' 2439 + react-native-screens: '>= 4.0.0' 2443 2440 2444 - '@react-navigation/native@7.1.8': 2445 - resolution: {integrity: sha512-ryKd/qNigi1pUp6mBb2pq75ese7AZ/Cl3xEmTG6PcUGMfMqAMMrmmVbgiys0h8zCGY2tSBSqnDHbGW1/ZtOoKg==} 2441 + '@react-navigation/native@7.1.10': 2442 + resolution: {integrity: sha512-Ug4IML0DkAxZTMF/E7lyyLXSclkGAYElY2cxZWITwfBjtlVeda0NjsdnTWY5EGjnd7bwvhTIUC+CO6qSlrDn5A==} 2446 2443 peerDependencies: 2447 2444 react: '>= 18.2.0' 2448 2445 react-native: '*' 2449 2446 2450 - '@react-navigation/routers@7.3.7': 2451 - resolution: {integrity: sha512-5ffgrefOs2zWqcCVX+OKn+RDx0puopQtxqetegFrTfWQ6pGXdY/5v4kBpPwaOFrNEeE/LPbHt9IJaJuvyhB7RA==} 2447 + '@react-navigation/routers@7.4.0': 2448 + resolution: {integrity: sha512-th5THnuWKJlmr7GGHiicy979di11ycDWub9iIXbEDvQwmwmsRzppmVbfs2nD8bC/MgyMgqWu/gxfys+HqN+kcw==} 2452 2449 2453 2450 '@rn-primitives/avatar@1.1.0': 2454 2451 resolution: {integrity: sha512-GqhsQHeY7OP9oe3MZkl1Z0IbhIiuQX4+FxafoRK/Aes2m5386nMGK0NBaZBJy06WnFQBN52C8yq+LYv27sA86A==} ··· 2500 2497 react-native-web: 2501 2498 optional: true 2502 2499 2503 - '@rn-primitives/portal@1.2.0': 2504 - resolution: {integrity: sha512-vLnidkk1EBuRwzUJ48NDzpNk+25VLm8jEao+2QVLqxtCQXlPik+RXb2GmxSb3/brF2zK5pzOp3RYbCp7g+WJkA==} 2500 + '@rn-primitives/portal@1.3.0': 2501 + resolution: {integrity: sha512-a2DSce7TcSfcs0cCngLadAJOvx/+mdH9NRu+GxkX8NPRsGGhJvDEOqouMgDqLwx7z9mjXoUaZcwaVcemUSW9/A==} 2505 2502 peerDependencies: 2506 2503 react: '*' 2507 2504 react-native: '*' ··· 2561 2558 react-native-web: 2562 2559 optional: true 2563 2560 2564 - '@rollup/rollup-android-arm-eabi@4.31.0': 2565 - resolution: {integrity: sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==} 2561 + '@rollup/rollup-android-arm-eabi@4.28.1': 2562 + resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==} 2566 2563 cpu: [arm] 2567 2564 os: [android] 2568 2565 2569 - '@rollup/rollup-android-arm64@4.31.0': 2570 - resolution: {integrity: sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==} 2566 + '@rollup/rollup-android-arm64@4.28.1': 2567 + resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==} 2571 2568 cpu: [arm64] 2572 2569 os: [android] 2573 2570 2574 - '@rollup/rollup-darwin-arm64@4.31.0': 2575 - resolution: {integrity: sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==} 2571 + '@rollup/rollup-darwin-arm64@4.28.1': 2572 + resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==} 2576 2573 cpu: [arm64] 2577 2574 os: [darwin] 2578 2575 2579 - '@rollup/rollup-darwin-x64@4.31.0': 2580 - resolution: {integrity: sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==} 2576 + '@rollup/rollup-darwin-x64@4.28.1': 2577 + resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==} 2581 2578 cpu: [x64] 2582 2579 os: [darwin] 2583 2580 2584 - '@rollup/rollup-freebsd-arm64@4.31.0': 2585 - resolution: {integrity: sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==} 2581 + '@rollup/rollup-freebsd-arm64@4.28.1': 2582 + resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==} 2586 2583 cpu: [arm64] 2587 2584 os: [freebsd] 2588 2585 2589 - '@rollup/rollup-freebsd-x64@4.31.0': 2590 - resolution: {integrity: sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==} 2586 + '@rollup/rollup-freebsd-x64@4.28.1': 2587 + resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==} 2591 2588 cpu: [x64] 2592 2589 os: [freebsd] 2593 2590 2594 - '@rollup/rollup-linux-arm-gnueabihf@4.31.0': 2595 - resolution: {integrity: sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==} 2591 + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': 2592 + resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==} 2596 2593 cpu: [arm] 2597 2594 os: [linux] 2598 2595 2599 - '@rollup/rollup-linux-arm-musleabihf@4.31.0': 2600 - resolution: {integrity: sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==} 2596 + '@rollup/rollup-linux-arm-musleabihf@4.28.1': 2597 + resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==} 2601 2598 cpu: [arm] 2602 2599 os: [linux] 2603 2600 2604 - '@rollup/rollup-linux-arm64-gnu@4.31.0': 2605 - resolution: {integrity: sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==} 2601 + '@rollup/rollup-linux-arm64-gnu@4.28.1': 2602 + resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==} 2606 2603 cpu: [arm64] 2607 2604 os: [linux] 2608 2605 2609 - '@rollup/rollup-linux-arm64-musl@4.31.0': 2610 - resolution: {integrity: sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==} 2606 + '@rollup/rollup-linux-arm64-musl@4.28.1': 2607 + resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==} 2611 2608 cpu: [arm64] 2612 2609 os: [linux] 2613 2610 2614 - '@rollup/rollup-linux-loongarch64-gnu@4.31.0': 2615 - resolution: {integrity: sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==} 2611 + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': 2612 + resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==} 2616 2613 cpu: [loong64] 2617 2614 os: [linux] 2618 2615 2619 - '@rollup/rollup-linux-powerpc64le-gnu@4.31.0': 2620 - resolution: {integrity: sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==} 2616 + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': 2617 + resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==} 2621 2618 cpu: [ppc64] 2622 2619 os: [linux] 2623 2620 2624 - '@rollup/rollup-linux-riscv64-gnu@4.31.0': 2625 - resolution: {integrity: sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==} 2621 + '@rollup/rollup-linux-riscv64-gnu@4.28.1': 2622 + resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==} 2626 2623 cpu: [riscv64] 2627 2624 os: [linux] 2628 2625 2629 - '@rollup/rollup-linux-s390x-gnu@4.31.0': 2630 - resolution: {integrity: sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==} 2626 + '@rollup/rollup-linux-s390x-gnu@4.28.1': 2627 + resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==} 2631 2628 cpu: [s390x] 2632 2629 os: [linux] 2633 2630 2634 - '@rollup/rollup-linux-x64-gnu@4.31.0': 2635 - resolution: {integrity: sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==} 2631 + '@rollup/rollup-linux-x64-gnu@4.28.1': 2632 + resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==} 2636 2633 cpu: [x64] 2637 2634 os: [linux] 2638 2635 2639 - '@rollup/rollup-linux-x64-musl@4.31.0': 2640 - resolution: {integrity: sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==} 2636 + '@rollup/rollup-linux-x64-musl@4.28.1': 2637 + resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==} 2641 2638 cpu: [x64] 2642 2639 os: [linux] 2643 2640 2644 - '@rollup/rollup-win32-arm64-msvc@4.31.0': 2645 - resolution: {integrity: sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==} 2641 + '@rollup/rollup-win32-arm64-msvc@4.28.1': 2642 + resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==} 2646 2643 cpu: [arm64] 2647 2644 os: [win32] 2648 2645 2649 - '@rollup/rollup-win32-ia32-msvc@4.31.0': 2650 - resolution: {integrity: sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==} 2646 + '@rollup/rollup-win32-ia32-msvc@4.28.1': 2647 + resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==} 2651 2648 cpu: [ia32] 2652 2649 os: [win32] 2653 2650 2654 - '@rollup/rollup-win32-x64-msvc@4.31.0': 2655 - resolution: {integrity: sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==} 2651 + '@rollup/rollup-win32-x64-msvc@4.28.1': 2652 + resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==} 2656 2653 cpu: [x64] 2657 2654 os: [win32] 2658 2655 ··· 2728 2725 '@types/json5@0.0.29': 2729 2726 resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 2730 2727 2731 - '@types/node@20.17.14': 2732 - resolution: {integrity: sha512-w6qdYetNL5KRBiSClK/KWai+2IMEJuAj+EujKCumalFOwXtvOXaEan9AuwcRID2IcOIAWSIfR495hBtgKlx2zg==} 2728 + '@types/node@20.17.10': 2729 + resolution: {integrity: sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==} 2730 + 2731 + '@types/node@20.17.9': 2732 + resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} 2733 2733 2734 2734 '@types/node@22.10.2': 2735 2735 resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} ··· 2752 2752 '@types/yargs@17.0.33': 2753 2753 resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} 2754 2754 2755 - '@typescript-eslint/eslint-plugin@8.31.1': 2756 - resolution: {integrity: sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==} 2755 + '@typescript-eslint/eslint-plugin@8.19.0': 2756 + resolution: {integrity: sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==} 2757 2757 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2758 2758 peerDependencies: 2759 2759 '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 2760 2760 eslint: ^8.57.0 || ^9.0.0 2761 - typescript: '>=4.8.4 <5.9.0' 2761 + typescript: '>=4.8.4 <5.8.0' 2762 2762 2763 - '@typescript-eslint/parser@8.31.1': 2764 - resolution: {integrity: sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==} 2763 + '@typescript-eslint/parser@8.19.0': 2764 + resolution: {integrity: sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==} 2765 2765 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2766 2766 peerDependencies: 2767 2767 eslint: ^8.57.0 || ^9.0.0 2768 + typescript: '>=4.8.4 <5.8.0' 2769 + 2770 + '@typescript-eslint/project-service@8.33.1': 2771 + resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} 2772 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2773 + peerDependencies: 2768 2774 typescript: '>=4.8.4 <5.9.0' 2769 2775 2770 - '@typescript-eslint/scope-manager@8.31.1': 2771 - resolution: {integrity: sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==} 2776 + '@typescript-eslint/scope-manager@8.19.0': 2777 + resolution: {integrity: sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==} 2778 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2779 + 2780 + '@typescript-eslint/scope-manager@8.33.1': 2781 + resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} 2782 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2783 + 2784 + '@typescript-eslint/tsconfig-utils@8.33.1': 2785 + resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} 2772 2786 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2787 + peerDependencies: 2788 + typescript: '>=4.8.4 <5.9.0' 2773 2789 2774 - '@typescript-eslint/type-utils@8.31.1': 2775 - resolution: {integrity: sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==} 2790 + '@typescript-eslint/type-utils@8.19.0': 2791 + resolution: {integrity: sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==} 2776 2792 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2777 2793 peerDependencies: 2778 2794 eslint: ^8.57.0 || ^9.0.0 2779 - typescript: '>=4.8.4 <5.9.0' 2795 + typescript: '>=4.8.4 <5.8.0' 2780 2796 2781 - '@typescript-eslint/types@8.31.1': 2782 - resolution: {integrity: sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==} 2797 + '@typescript-eslint/types@8.19.0': 2798 + resolution: {integrity: sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==} 2783 2799 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2784 2800 2785 - '@typescript-eslint/typescript-estree@8.31.1': 2786 - resolution: {integrity: sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==} 2801 + '@typescript-eslint/types@8.33.1': 2802 + resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} 2803 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2804 + 2805 + '@typescript-eslint/typescript-estree@8.19.0': 2806 + resolution: {integrity: sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==} 2807 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2808 + peerDependencies: 2809 + typescript: '>=4.8.4 <5.8.0' 2810 + 2811 + '@typescript-eslint/typescript-estree@8.33.1': 2812 + resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} 2787 2813 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2788 2814 peerDependencies: 2789 2815 typescript: '>=4.8.4 <5.9.0' 2790 2816 2791 - '@typescript-eslint/utils@8.31.1': 2792 - resolution: {integrity: sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==} 2817 + '@typescript-eslint/utils@8.19.0': 2818 + resolution: {integrity: sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==} 2819 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2820 + peerDependencies: 2821 + eslint: ^8.57.0 || ^9.0.0 2822 + typescript: '>=4.8.4 <5.8.0' 2823 + 2824 + '@typescript-eslint/utils@8.33.1': 2825 + resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} 2793 2826 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2794 2827 peerDependencies: 2795 2828 eslint: ^8.57.0 || ^9.0.0 2796 2829 typescript: '>=4.8.4 <5.9.0' 2797 2830 2798 - '@typescript-eslint/visitor-keys@8.31.1': 2799 - resolution: {integrity: sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==} 2831 + '@typescript-eslint/visitor-keys@8.19.0': 2832 + resolution: {integrity: sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==} 2833 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2834 + 2835 + '@typescript-eslint/visitor-keys@8.33.1': 2836 + resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} 2800 2837 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2801 2838 2802 2839 '@ungap/structured-clone@1.2.1': ··· 3002 3039 resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} 3003 3040 engines: {node: '>=10'} 3004 3041 3005 - array-buffer-byte-length@1.0.1: 3006 - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} 3007 - engines: {node: '>= 0.4'} 3008 - 3009 3042 array-buffer-byte-length@1.0.2: 3010 3043 resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 3011 3044 engines: {node: '>= 0.4'} ··· 3028 3061 resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 3029 3062 engines: {node: '>= 0.4'} 3030 3063 3031 - array.prototype.flat@1.3.2: 3032 - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 3033 - engines: {node: '>= 0.4'} 3034 - 3035 - array.prototype.flatmap@1.3.2: 3036 - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 3064 + array.prototype.flat@1.3.3: 3065 + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} 3037 3066 engines: {node: '>= 0.4'} 3038 3067 3039 3068 array.prototype.flatmap@1.3.3: ··· 3042 3071 3043 3072 array.prototype.tosorted@1.1.4: 3044 3073 resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 3045 - engines: {node: '>= 0.4'} 3046 - 3047 - arraybuffer.prototype.slice@1.0.3: 3048 - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} 3049 3074 engines: {node: '>= 0.4'} 3050 3075 3051 3076 arraybuffer.prototype.slice@1.0.4: ··· 3085 3110 aws4@1.13.2: 3086 3111 resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} 3087 3112 3113 + axios@0.27.2: 3114 + resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} 3115 + 3088 3116 babel-jest@29.7.0: 3089 3117 resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} 3090 3118 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} ··· 3134 3162 peerDependencies: 3135 3163 '@babel/core': ^7.0.0 3136 3164 3137 - babel-preset-expo@13.1.11: 3138 - resolution: {integrity: sha512-jigWjvhRVdm9UTPJ1wjLYJ0OJvD5vLZ8YYkEknEl6+9S1JWORO/y3xtHr/hNj5n34nOilZqdXrmNFcqKc8YTsg==} 3165 + babel-preset-expo@13.2.0: 3166 + resolution: {integrity: sha512-oNUeUZPMNRPmx/2jaKJLSQFP/MFI1M91vP+Gp+j8/FPl9p/ps603DNwCaRdcT/Vj3FfREdlIwRio1qDCjY0oAA==} 3139 3167 peerDependencies: 3140 3168 babel-plugin-react-compiler: ^19.0.0-beta-e993439-20250405 3141 3169 peerDependenciesMeta: ··· 3224 3252 buffer@6.0.3: 3225 3253 resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 3226 3254 3227 - bundle-require@5.1.0: 3228 - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} 3255 + bundle-require@5.0.0: 3256 + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} 3229 3257 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3230 3258 peerDependencies: 3231 3259 esbuild: '>=0.18' ··· 3242 3270 resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} 3243 3271 engines: {node: '>= 0.4'} 3244 3272 3245 - call-bind-apply-helpers@1.0.2: 3246 - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 3247 - engines: {node: '>= 0.4'} 3248 - 3249 3273 call-bind@1.0.8: 3250 3274 resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 3251 3275 engines: {node: '>= 0.4'} 3252 3276 3253 - call-bound@1.0.2: 3254 - resolution: {integrity: sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==} 3255 - engines: {node: '>= 0.4'} 3256 - 3257 - call-bound@1.0.4: 3258 - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 3277 + call-bound@1.0.3: 3278 + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} 3259 3279 engines: {node: '>= 0.4'} 3260 3280 3261 3281 caller-callsite@2.0.0: ··· 3286 3306 resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 3287 3307 engines: {node: '>=10'} 3288 3308 3289 - caniuse-lite@1.0.30001688: 3290 - resolution: {integrity: sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==} 3309 + caniuse-lite@1.0.30001690: 3310 + resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} 3291 3311 3292 3312 caseless@0.12.0: 3293 3313 resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} ··· 3319 3339 resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 3320 3340 engines: {node: '>= 8.10.0'} 3321 3341 3322 - chokidar@4.0.3: 3323 - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 3342 + chokidar@4.0.1: 3343 + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} 3324 3344 engines: {node: '>= 14.16.0'} 3325 3345 3326 3346 chownr@3.0.0: ··· 3457 3477 resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} 3458 3478 engines: {node: '>= 0.10.0'} 3459 3479 3460 - consola@3.4.0: 3461 - resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} 3480 + consola@3.2.3: 3481 + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 3462 3482 engines: {node: ^14.18.0 || >=16.10.0} 3463 3483 3464 3484 content-disposition@0.5.4: ··· 3502 3522 create-require@1.1.1: 3503 3523 resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 3504 3524 3505 - cross-fetch@3.1.8: 3506 - resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} 3525 + cross-fetch@3.2.0: 3526 + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} 3507 3527 3508 3528 cross-spawn@7.0.6: 3509 3529 resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} ··· 3546 3566 resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} 3547 3567 engines: {node: '>= 12'} 3548 3568 3549 - data-view-buffer@1.0.1: 3550 - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} 3551 - engines: {node: '>= 0.4'} 3552 - 3553 3569 data-view-buffer@1.0.2: 3554 3570 resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 3555 3571 engines: {node: '>= 0.4'} 3556 3572 3557 - data-view-byte-length@1.0.1: 3558 - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} 3559 - engines: {node: '>= 0.4'} 3560 - 3561 3573 data-view-byte-length@1.0.2: 3562 3574 resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 3563 - engines: {node: '>= 0.4'} 3564 - 3565 - data-view-byte-offset@1.0.0: 3566 - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} 3567 3575 engines: {node: '>= 0.4'} 3568 3576 3569 3577 data-view-byte-offset@1.0.1: ··· 3702 3710 resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} 3703 3711 engines: {node: '>=12'} 3704 3712 3705 - drizzle-kit@0.30.2: 3706 - resolution: {integrity: sha512-vhdLrxWA32WNVF77NabpSnX7pQBornx64VDQDmKddRonOB2Xe/yY4glQ7rECoa+ogqcQNo7VblLUbeBK6Zn9Ow==} 3713 + drizzle-kit@0.30.1: 3714 + resolution: {integrity: sha512-HmA/NeewvHywhJ2ENXD3KvOuM/+K2dGLJfxVfIHsGwaqKICJnS+Ke2L6UcSrSrtMJLJaT0Im1Qv4TFXfaZShyw==} 3707 3715 hasBin: true 3708 3716 3709 - drizzle-orm@0.38.4: 3710 - resolution: {integrity: sha512-s7/5BpLKO+WJRHspvpqTydxFob8i1vo2rEx4pY6TGY7QSMuUfWUuzaY0DIpXCkgHOo37BaFC+SJQb99dDUXT3Q==} 3717 + drizzle-orm@0.38.3: 3718 + resolution: {integrity: sha512-w41Y+PquMpSff/QDRGdItG0/aWca+/J3Sda9PPGkTxBtjWQvgU1jxlFBXdjog5tYvTu58uvi3PwR1NuCx0KeZg==} 3711 3719 peerDependencies: 3712 3720 '@aws-sdk/client-rds-data': '>=3' 3713 3721 '@cloudflare/workers-types': '>=4' ··· 3821 3829 ee-first@1.1.1: 3822 3830 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 3823 3831 3824 - electron-to-chromium@1.5.73: 3825 - resolution: {integrity: sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==} 3832 + electron-to-chromium@1.5.76: 3833 + resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} 3826 3834 3827 3835 emoji-regex@8.0.0: 3828 3836 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} ··· 3845 3853 end-of-stream@1.4.4: 3846 3854 resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 3847 3855 3848 - enhanced-resolve@5.17.1: 3849 - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} 3856 + enhanced-resolve@5.18.0: 3857 + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} 3850 3858 engines: {node: '>=10.13.0'} 3851 3859 3852 3860 entities@4.5.0: ··· 3870 3878 error-stack-parser@2.1.4: 3871 3879 resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} 3872 3880 3873 - es-abstract@1.23.5: 3874 - resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} 3875 - engines: {node: '>= 0.4'} 3876 - 3877 - es-abstract@1.23.9: 3878 - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} 3881 + es-abstract@1.23.8: 3882 + resolution: {integrity: sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==} 3879 3883 engines: {node: '>= 0.4'} 3880 3884 3881 3885 es-define-property@1.0.1: ··· 3890 3894 resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} 3891 3895 engines: {node: '>= 0.4'} 3892 3896 3893 - es-module-lexer@1.5.4: 3894 - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} 3897 + es-module-lexer@1.6.0: 3898 + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} 3895 3899 3896 3900 es-object-atoms@1.0.0: 3897 3901 resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 3898 3902 engines: {node: '>= 0.4'} 3899 3903 3900 - es-object-atoms@1.1.1: 3901 - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 3902 - engines: {node: '>= 0.4'} 3903 - 3904 3904 es-set-tostringtag@2.0.3: 3905 3905 resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 3906 - engines: {node: '>= 0.4'} 3907 - 3908 - es-set-tostringtag@2.1.0: 3909 - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 3910 3906 engines: {node: '>= 0.4'} 3911 3907 3912 3908 es-shim-unscopables@1.0.2: ··· 3936 3932 engines: {node: '>=18'} 3937 3933 hasBin: true 3938 3934 3939 - esbuild@0.24.2: 3940 - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} 3935 + esbuild@0.24.0: 3936 + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} 3941 3937 engines: {node: '>=18'} 3942 3938 hasBin: true 3943 3939 ··· 4030 4026 peerDependencies: 4031 4027 eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 4032 4028 4033 - eslint-plugin-react@7.37.5: 4034 - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} 4029 + eslint-plugin-react@7.37.3: 4030 + resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} 4035 4031 engines: {node: '>=4'} 4036 4032 peerDependencies: 4037 4033 eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 ··· 4154 4150 expo: '*' 4155 4151 react: '*' 4156 4152 4157 - expo-linking@7.1.4: 4158 - resolution: {integrity: sha512-zLAbUzTB3+KGjqqLeIdhhkXayyN0qulHGjRI24X7W/0Mq/4oPbPZklKtCP0k7XOn/k4553m8OgJ7GPC03PlV9g==} 4153 + expo-linking@7.1.5: 4154 + resolution: {integrity: sha512-8g20zOpROW78bF+bLI4a3ZWj4ntLgM0rCewKycPL0jk9WGvBrBtFtwwADJgOiV1EurNp3lcquerXGlWS+SOQyA==} 4159 4155 peerDependencies: 4160 4156 react: '*' 4161 4157 react-native: '*' 4162 4158 4163 - expo-modules-autolinking@2.1.10: 4164 - resolution: {integrity: sha512-k93fzoszrYTKbZ51DSVnewYIGUV6Gi22Su8qySXPFJEfvtDs2NUUNRHBZNKgLHvwc6xPzVC5j7JYbrpXNuY44A==} 4159 + expo-modules-autolinking@2.1.11: 4160 + resolution: {integrity: sha512-KrWQo+cE4gWYNePBBhmHGVzf63gYV19ZLXe9EIH3GHTkViVzIX+Lp618H/7GxfawpN5kbhvilATH1QEKKnUUww==} 4165 4161 hasBin: true 4166 4162 4167 - expo-modules-core@2.3.13: 4168 - resolution: {integrity: sha512-vmKHv7tEo2wUQoYDV6grhsLsQfD3DUnew5Up3yNnOE1gHGQE+zhV1SBYqaPMPB12OvpyD1mlfzGhu6r9PODnng==} 4163 + expo-modules-core@2.4.0: 4164 + resolution: {integrity: sha512-Ko5eHBdvuMykjw9P9C9PF54/wBSsGOxaOjx92I5BwgKvEmUwN3UrXFV4CXzlLVbLfSYUQaLcB220xmPfgvT7Fg==} 4169 4165 4170 - expo-router@5.0.6: 4171 - resolution: {integrity: sha512-/44G3liB7LMMDoUO+lN5TS8XvZrAhLtq7cVGoilO2QkoSBjFQfxFA9VYOVWVlu2R80tN6dM3cgsEuoA275FGQg==} 4166 + expo-router@5.0.7: 4167 + resolution: {integrity: sha512-NlEgRXCKtseDuIHBp87UfkvqsuVrc0MYG+zg33dopaN6wik4RkrWWxUYdNPHub0s/7qMye6zZBY4ZCrXwd/xpA==} 4172 4168 peerDependencies: 4173 4169 '@react-navigation/drawer': ^7.3.9 4174 4170 '@testing-library/jest-native': '*' ··· 4186 4182 react-native-reanimated: 4187 4183 optional: true 4188 4184 4189 - expo-splash-screen@0.30.8: 4190 - resolution: {integrity: sha512-2eh+uA543brfeG5HILXmtNKA7E2/pfywKzNumzy3Ef6OtDjYy6zJUGNSbhnZRbVEjUZo3/QNRs0JRBfY80okZg==} 4185 + expo-splash-screen@0.30.9: 4186 + resolution: {integrity: sha512-curHUaZxUTZ2dWvz32ao3xPv5mJr1LBqn5V8xm/IULAehB9RGCn8iKiROMN1PYebSG+56vPMuJmBm9P+ayvJpA==} 4191 4187 peerDependencies: 4192 4188 expo: '*' 4193 4189 4194 - expo-sqlite@15.2.9: 4195 - resolution: {integrity: sha512-i21AQtzNC1aqXC5Ee/R3OGkkRLALfxWB27vIv3ae7gQfJKdr9jJbmRqd+jymPfXXy7f2EugFDEdLN8C6jWAD1A==} 4190 + expo-sqlite@15.2.12: 4191 + resolution: {integrity: sha512-J2Y7tChIFEcpgiVxxAXWaArOSIaHxct6keNZPs/6aHrSzUWmAlQS5vzGQueB1II65rl47ZtZcQEIl0NpiRhxxQ==} 4196 4192 peerDependencies: 4197 4193 expo: '*' 4198 4194 react: '*' ··· 4204 4200 react: '*' 4205 4201 react-native: '*' 4206 4202 4207 - expo-system-ui@5.0.7: 4208 - resolution: {integrity: sha512-ijSnSFA4VfuQc84N6WyCUNsKKTIyQb6QuC8q2zGvYC/sBXTMrOtZg0zrisQGzCRW+WhritQTiVqHlp3Ix9xDmQ==} 4203 + expo-system-ui@5.0.8: 4204 + resolution: {integrity: sha512-2sI7ALq3W8sKKa3FRW7PmuNznk+48cb1VzFy96vYZLZgTDZViz+fEJNdp1RHgLui/mAl3f8md1LneygSJvZ1EQ==} 4209 4205 peerDependencies: 4210 4206 expo: '*' 4211 4207 react-native: '*' ··· 4220 4216 expo: '*' 4221 4217 react-native: '*' 4222 4218 4223 - expo@53.0.9: 4224 - resolution: {integrity: sha512-UFG68aVOpccg3s++S3pbtI3YCQCnlu/TFvhnQ5vaD3vhOox1Uk/f2O2T95jmwA/EvKvetqGj34lys3DNXvPqgQ==} 4219 + expo@53.0.11: 4220 + resolution: {integrity: sha512-+QtvU+6VPd7/o4vmtwuRE/Li2rAiJtD25I6BOnoQSxphaWWaD0PdRQnIV3VQ0HESuJYRuKJ3DkAHNJ3jI6xwzA==} 4225 4221 hasBin: true 4226 4222 peerDependencies: 4227 4223 '@expo/dom-webview': '*' ··· 4289 4285 fbjs@3.0.5: 4290 4286 resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} 4291 4287 4292 - fdir@6.4.3: 4293 - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} 4288 + fdir@6.4.2: 4289 + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} 4294 4290 peerDependencies: 4295 4291 picomatch: ^3 || ^4 4296 4292 peerDependenciesMeta: ··· 4350 4346 flow-enums-runtime@0.0.6: 4351 4347 resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} 4352 4348 4349 + follow-redirects@1.15.9: 4350 + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} 4351 + engines: {node: '>=4.0'} 4352 + peerDependencies: 4353 + debug: '*' 4354 + peerDependenciesMeta: 4355 + debug: 4356 + optional: true 4357 + 4353 4358 fontfaceobserver@2.3.0: 4354 4359 resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} 4355 4360 4356 4361 for-each@0.3.3: 4357 4362 resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 4358 - 4359 - for-each@0.3.5: 4360 - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} 4361 - engines: {node: '>= 0.4'} 4362 4363 4363 4364 foreground-child@3.3.0: 4364 4365 resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} ··· 4370 4371 form-data@2.3.3: 4371 4372 resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} 4372 4373 engines: {node: '>= 0.12'} 4374 + 4375 + form-data@4.0.1: 4376 + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} 4377 + engines: {node: '>= 6'} 4373 4378 4374 4379 formdata-polyfill@4.0.10: 4375 4380 resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} ··· 4404 4409 4405 4410 function-bind@1.1.2: 4406 4411 resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 4407 - 4408 - function.prototype.name@1.1.6: 4409 - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 4410 - engines: {node: '>= 0.4'} 4411 4412 4412 4413 function.prototype.name@1.1.8: 4413 4414 resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} ··· 4427 4428 resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 4428 4429 engines: {node: 6.* || 8.* || >= 10.*} 4429 4430 4430 - get-intrinsic@1.2.6: 4431 - resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} 4431 + get-intrinsic@1.2.5: 4432 + resolution: {integrity: sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==} 4432 4433 engines: {node: '>= 0.4'} 4433 4434 4434 - get-intrinsic@1.3.0: 4435 - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 4435 + get-intrinsic@1.2.6: 4436 + resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} 4436 4437 engines: {node: '>= 0.4'} 4437 4438 4438 4439 get-nonce@1.0.1: ··· 4447 4448 resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} 4448 4449 engines: {node: '>=4'} 4449 4450 4450 - get-proto@1.0.1: 4451 - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 4452 - engines: {node: '>= 0.4'} 4453 - 4454 - get-symbol-description@1.0.2: 4455 - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 4456 - engines: {node: '>= 0.4'} 4457 - 4458 4451 get-symbol-description@1.1.0: 4459 4452 resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 4460 4453 engines: {node: '>= 0.4'} ··· 4464 4457 4465 4458 getenv@1.0.0: 4466 4459 resolution: {integrity: sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==} 4460 + engines: {node: '>=6'} 4461 + 4462 + getenv@2.0.0: 4463 + resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} 4467 4464 engines: {node: '>=6'} 4468 4465 4469 4466 getpass@0.1.7: ··· 4484 4481 resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 4485 4482 hasBin: true 4486 4483 4487 - glob@11.0.1: 4488 - resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==} 4484 + glob@11.0.0: 4485 + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} 4489 4486 engines: {node: 20 || >=22} 4490 4487 hasBin: true 4491 4488 ··· 4505 4502 resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 4506 4503 engines: {node: '>=8'} 4507 4504 4508 - globals@16.0.0: 4509 - resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} 4505 + globals@16.2.0: 4506 + resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} 4510 4507 engines: {node: '>=18'} 4511 4508 4512 4509 globalthis@1.0.4: ··· 4536 4533 resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} 4537 4534 engines: {node: '>=0.10.0'} 4538 4535 4539 - has-bigints@1.0.2: 4540 - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 4536 + has-bigints@1.1.0: 4537 + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 4538 + engines: {node: '>= 0.4'} 4541 4539 4542 4540 has-flag@3.0.0: 4543 4541 resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} ··· 4588 4586 hoist-non-react-statics@3.3.2: 4589 4587 resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} 4590 4588 4591 - hono@4.6.17: 4592 - resolution: {integrity: sha512-Kbh4M0so2RzLiIg6iP33DoTU68TdvP2O/kb1Hhhdwa37fazuf402ig8ZRfjkz2dqXwiWl2dAgh0f++TuKAdOtQ==} 4589 + hono@4.6.13: 4590 + resolution: {integrity: sha512-haV0gaMdSjy9URCRN9hxBPlqHa7fMm/T72kAImIxvw4eQLbNz1rgjN4hHElLJSieDiNuiIAXC//cC6YGz2KCbg==} 4593 4591 engines: {node: '>=16.9.0'} 4594 4592 4595 4593 hosted-git-info@7.0.2: ··· 4631 4629 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 4632 4630 engines: {node: '>= 4'} 4633 4631 4634 - image-size@1.1.1: 4635 - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} 4632 + image-size@1.2.0: 4633 + resolution: {integrity: sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==} 4636 4634 engines: {node: '>=16.x'} 4637 4635 hasBin: true 4638 4636 ··· 4684 4682 4685 4683 is-arguments@1.2.0: 4686 4684 resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} 4687 - engines: {node: '>= 0.4'} 4688 - 4689 - is-array-buffer@3.0.4: 4690 - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} 4691 4685 engines: {node: '>= 0.4'} 4692 4686 4693 4687 is-array-buffer@3.0.5: ··· 4723 4717 resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 4724 4718 engines: {node: '>= 0.4'} 4725 4719 4726 - is-core-module@2.15.1: 4727 - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} 4720 + is-core-module@2.16.1: 4721 + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 4728 4722 engines: {node: '>= 0.4'} 4729 4723 4730 4724 is-data-view@1.0.2: ··· 4748 4742 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 4749 4743 engines: {node: '>=0.10.0'} 4750 4744 4751 - is-finalizationregistry@1.1.0: 4752 - resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} 4745 + is-finalizationregistry@1.1.1: 4746 + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 4753 4747 engines: {node: '>= 0.4'} 4754 4748 4755 4749 is-fullwidth-code-point@1.0.0: ··· 4772 4766 resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 4773 4767 engines: {node: '>= 0.4'} 4774 4768 4775 - is-negative-zero@2.0.3: 4776 - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 4777 - engines: {node: '>= 0.4'} 4778 - 4779 - is-number-object@1.1.0: 4780 - resolution: {integrity: sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==} 4781 - engines: {node: '>= 0.4'} 4782 - 4783 4769 is-number-object@1.1.1: 4784 4770 resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 4785 4771 engines: {node: '>= 0.4'} ··· 4804 4790 resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 4805 4791 engines: {node: '>= 0.4'} 4806 4792 4807 - is-shared-array-buffer@1.0.3: 4808 - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} 4809 - engines: {node: '>= 0.4'} 4810 - 4811 4793 is-shared-array-buffer@1.0.4: 4812 4794 resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 4813 - engines: {node: '>= 0.4'} 4814 - 4815 - is-string@1.1.0: 4816 - resolution: {integrity: sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==} 4817 4795 engines: {node: '>= 0.4'} 4818 4796 4819 4797 is-string@1.1.1: ··· 4824 4802 resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 4825 4803 engines: {node: '>= 0.4'} 4826 4804 4827 - is-typed-array@1.1.13: 4828 - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} 4829 - engines: {node: '>= 0.4'} 4830 - 4831 4805 is-typed-array@1.1.15: 4832 4806 resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 4833 4807 engines: {node: '>= 0.4'} ··· 4843 4817 resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} 4844 4818 engines: {node: '>= 0.4'} 4845 4819 4846 - is-weakset@2.0.3: 4847 - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} 4820 + is-weakset@2.0.4: 4821 + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 4848 4822 engines: {node: '>= 0.4'} 4849 4823 4850 4824 is-wsl@2.2.0: ··· 4925 4899 jimp-compact@0.16.1: 4926 4900 resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==} 4927 4901 4928 - jiti@1.21.6: 4929 - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 4902 + jiti@1.21.7: 4903 + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 4930 4904 hasBin: true 4931 4905 4932 4906 jose@5.9.6: ··· 5023 4997 resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 5024 4998 engines: {node: '>=6'} 5025 4999 5026 - lan-network@0.1.6: 5027 - resolution: {integrity: sha512-0qPYjNoD89v+bfhkIqFBYGBAof1xhxLqjX8bkNN1kQdP81UHpZw5TDXgEjwB+X2iCFGQmzF8TRmvg4vQcykyDA==} 5000 + lan-network@0.1.7: 5001 + resolution: {integrity: sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==} 5028 5002 hasBin: true 5029 5003 5030 5004 leven@3.1.0: ··· 5049 5023 cpu: [arm64] 5050 5024 os: [darwin] 5051 5025 5026 + lightningcss-darwin-arm64@1.28.2: 5027 + resolution: {integrity: sha512-/8cPSqZiusHSS+WQz0W4NuaqFjquys1x+NsdN/XOHb+idGHJSoJ7SoQTVl3DZuAgtPZwFZgRfb/vd1oi8uX6+g==} 5028 + engines: {node: '>= 12.0.0'} 5029 + cpu: [arm64] 5030 + os: [darwin] 5031 + 5052 5032 lightningcss-darwin-x64@1.27.0: 5053 5033 resolution: {integrity: sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==} 5054 5034 engines: {node: '>= 12.0.0'} 5055 5035 cpu: [x64] 5056 5036 os: [darwin] 5057 5037 5038 + lightningcss-darwin-x64@1.28.2: 5039 + resolution: {integrity: sha512-R7sFrXlgKjvoEG8umpVt/yutjxOL0z8KWf0bfPT3cYMOW4470xu5qSHpFdIOpRWwl3FKNMUdbKtMUjYt0h2j4g==} 5040 + engines: {node: '>= 12.0.0'} 5041 + cpu: [x64] 5042 + os: [darwin] 5043 + 5058 5044 lightningcss-freebsd-x64@1.27.0: 5059 5045 resolution: {integrity: sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==} 5060 5046 engines: {node: '>= 12.0.0'} 5061 5047 cpu: [x64] 5062 5048 os: [freebsd] 5063 5049 5050 + lightningcss-freebsd-x64@1.28.2: 5051 + resolution: {integrity: sha512-l2qrCT+x7crAY+lMIxtgvV10R8VurzHAoUZJaVFSlHrN8kRLTvEg9ObojIDIexqWJQvJcVVV3vfzsEynpiuvgA==} 5052 + engines: {node: '>= 12.0.0'} 5053 + cpu: [x64] 5054 + os: [freebsd] 5055 + 5064 5056 lightningcss-linux-arm-gnueabihf@1.27.0: 5065 5057 resolution: {integrity: sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==} 5058 + engines: {node: '>= 12.0.0'} 5059 + cpu: [arm] 5060 + os: [linux] 5061 + 5062 + lightningcss-linux-arm-gnueabihf@1.28.2: 5063 + resolution: {integrity: sha512-DKMzpICBEKnL53X14rF7hFDu8KKALUJtcKdFUCW5YOlGSiwRSgVoRjM97wUm/E0NMPkzrTi/rxfvt7ruNK8meg==} 5066 5064 engines: {node: '>= 12.0.0'} 5067 5065 cpu: [arm] 5068 5066 os: [linux] 5069 5067 5070 5068 lightningcss-linux-arm64-gnu@1.27.0: 5071 5069 resolution: {integrity: sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==} 5070 + engines: {node: '>= 12.0.0'} 5071 + cpu: [arm64] 5072 + os: [linux] 5073 + 5074 + lightningcss-linux-arm64-gnu@1.28.2: 5075 + resolution: {integrity: sha512-nhfjYkfymWZSxdtTNMWyhFk2ImUm0X7NAgJWFwnsYPOfmtWQEapzG/DXZTfEfMjSzERNUNJoQjPAbdqgB+sjiw==} 5072 5076 engines: {node: '>= 12.0.0'} 5073 5077 cpu: [arm64] 5074 5078 os: [linux] ··· 5079 5083 cpu: [arm64] 5080 5084 os: [linux] 5081 5085 5086 + lightningcss-linux-arm64-musl@1.28.2: 5087 + resolution: {integrity: sha512-1SPG1ZTNnphWvAv8RVOymlZ8BDtAg69Hbo7n4QxARvkFVCJAt0cgjAw1Fox0WEhf4PwnyoOBaVH0Z5YNgzt4dA==} 5088 + engines: {node: '>= 12.0.0'} 5089 + cpu: [arm64] 5090 + os: [linux] 5091 + 5082 5092 lightningcss-linux-x64-gnu@1.27.0: 5083 5093 resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} 5084 5094 engines: {node: '>= 12.0.0'} 5085 5095 cpu: [x64] 5086 5096 os: [linux] 5087 5097 5098 + lightningcss-linux-x64-gnu@1.28.2: 5099 + resolution: {integrity: sha512-ZhQy0FcO//INWUdo/iEdbefntTdpPVQ0XJwwtdbBuMQe+uxqZoytm9M+iqR9O5noWFaxK+nbS2iR/I80Q2Ofpg==} 5100 + engines: {node: '>= 12.0.0'} 5101 + cpu: [x64] 5102 + os: [linux] 5103 + 5088 5104 lightningcss-linux-x64-musl@1.27.0: 5089 5105 resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} 5090 5106 engines: {node: '>= 12.0.0'} 5091 5107 cpu: [x64] 5092 5108 os: [linux] 5093 5109 5110 + lightningcss-linux-x64-musl@1.28.2: 5111 + resolution: {integrity: sha512-alb/j1NMrgQmSFyzTbN1/pvMPM+gdDw7YBuQ5VSgcFDypN3Ah0BzC2dTZbzwzaMdUVDszX6zH5MzjfVN1oGuww==} 5112 + engines: {node: '>= 12.0.0'} 5113 + cpu: [x64] 5114 + os: [linux] 5115 + 5094 5116 lightningcss-win32-arm64-msvc@1.27.0: 5095 5117 resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} 5096 5118 engines: {node: '>= 12.0.0'} 5097 5119 cpu: [arm64] 5098 5120 os: [win32] 5099 5121 5122 + lightningcss-win32-arm64-msvc@1.28.2: 5123 + resolution: {integrity: sha512-WnwcjcBeAt0jGdjlgbT9ANf30pF0C/QMb1XnLnH272DQU8QXh+kmpi24R55wmWBwaTtNAETZ+m35ohyeMiNt+g==} 5124 + engines: {node: '>= 12.0.0'} 5125 + cpu: [arm64] 5126 + os: [win32] 5127 + 5100 5128 lightningcss-win32-x64-msvc@1.27.0: 5101 5129 resolution: {integrity: sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==} 5102 5130 engines: {node: '>= 12.0.0'} 5103 5131 cpu: [x64] 5104 5132 os: [win32] 5105 5133 5134 + lightningcss-win32-x64-msvc@1.28.2: 5135 + resolution: {integrity: sha512-3piBifyT3avz22o6mDKywQC/OisH2yDK+caHWkiMsF82i3m5wDBadyCjlCQ5VNgzYkxrWZgiaxHDdd5uxsi0/A==} 5136 + engines: {node: '>= 12.0.0'} 5137 + cpu: [x64] 5138 + os: [win32] 5139 + 5106 5140 lightningcss@1.27.0: 5107 5141 resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==} 5142 + engines: {node: '>= 12.0.0'} 5143 + 5144 + lightningcss@1.28.2: 5145 + resolution: {integrity: sha512-ePLRrbt3fgjXI5VFZOLbvkLD5ZRuxGKm+wJ3ujCqBtL3NanDHPo/5zicR5uEKAPiIjBYF99BM4K4okvMznjkVA==} 5108 5146 engines: {node: '>= 12.0.0'} 5109 5147 5110 5148 lilconfig@3.1.3: ··· 5190 5228 marky@1.2.5: 5191 5229 resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} 5192 5230 5193 - math-intrinsics@1.0.0: 5194 - resolution: {integrity: sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==} 5195 - engines: {node: '>= 0.4'} 5196 - 5197 5231 math-intrinsics@1.1.0: 5198 5232 resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 5199 5233 engines: {node: '>= 0.4'} ··· 5229 5263 resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 5230 5264 engines: {node: '>= 0.6'} 5231 5265 5232 - metro-babel-transformer@0.82.2: 5233 - resolution: {integrity: sha512-c2gesA7/B4dovPmmYC2HziNXb4XFG3YkQ9FjEzwRnR6KH2hT7nJn6mkcri1h85r3sMttpnmoBuZ8WDz980Zhlw==} 5266 + metro-babel-transformer@0.82.4: 5267 + resolution: {integrity: sha512-4juJahGRb1gmNbQq48lNinB6WFNfb6m0BQqi/RQibEltNiqTCxew/dBspI2EWA4xVCd3mQWGfw0TML4KurQZnQ==} 5234 5268 engines: {node: '>=18.18'} 5235 5269 5236 - metro-cache-key@0.82.2: 5237 - resolution: {integrity: sha512-lfjC9zzSri+rS7lkoCh04LniFga8JQVUqSuscD9KraIm9zRzwIwvaMx8V6Oogiezs+FAJUOSnVNhHcHc9l8H2Q==} 5270 + metro-cache-key@0.82.4: 5271 + resolution: {integrity: sha512-2JCTqcpF+f2OghOpe/+x+JywfzDkrHdAqinPFWmK2ezNAU/qX0jBFaTETogPibFivxZJil37w9Yp6syX8rFUng==} 5238 5272 engines: {node: '>=18.18'} 5239 5273 5240 - metro-cache@0.82.2: 5241 - resolution: {integrity: sha512-MxY4xvPKuE68NYpKJjH8YvVVugDL2QcuTracHsV5/30ZIaRr0v1QuAX5vt45OCQDQQWeh1rDv3E4JB6AbIvnZQ==} 5274 + metro-cache@0.82.4: 5275 + resolution: {integrity: sha512-vX0ylSMGtORKiZ4G8uP6fgfPdDiCWvLZUGZ5zIblSGylOX6JYhvExl0Zg4UA9pix/SSQu5Pnp9vdODMFsNIxhw==} 5242 5276 engines: {node: '>=18.18'} 5243 5277 5244 - metro-config@0.82.2: 5245 - resolution: {integrity: sha512-0dG3qCFLoE3ddNexAxSLJ7FbGjEbwUjDNOgYeCLoPSkKB01k5itvvr2HFfl2HisOCfLcpjpVzF5NtB/O71lxfA==} 5278 + metro-config@0.82.4: 5279 + resolution: {integrity: sha512-Ki3Wumr3hKHGDS7RrHsygmmRNc/PCJrvkLn0+BWWxmbOmOcMMJDSmSI+WRlT8jd5VPZFxIi4wg+sAt5yBXAK0g==} 5246 5280 engines: {node: '>=18.18'} 5247 5281 5248 - metro-core@0.82.2: 5249 - resolution: {integrity: sha512-d2XMkWbRh6PdPV1OZ8OyUyDWrtEbQ1m5ASpKtemLPbujfoE4RlwFZdl4ljfBNVVZ1s0z7tgsSFwKMyTeXgjtSg==} 5282 + metro-core@0.82.4: 5283 + resolution: {integrity: sha512-Xo4ozbxPg2vfgJGCgXZ8sVhC2M0lhTqD+tsKO2q9aelq/dCjnnSb26xZKcQO80CQOQUL7e3QWB7pLFGPjZm31A==} 5250 5284 engines: {node: '>=18.18'} 5251 5285 5252 - metro-file-map@0.82.2: 5253 - resolution: {integrity: sha512-pax0WA80eRH096YO0kwox+ZD5im3V0Vswr2x1YqdMcZVWlr6uwXgQdo9q+mpcvJ1k77J+hmY5HIg71bqrUptVg==} 5286 + metro-file-map@0.82.4: 5287 + resolution: {integrity: sha512-eO7HD1O3aeNsbEe6NBZvx1lLJUrxgyATjnDmb7bm4eyF6yWOQot9XVtxTDLNifECuvsZ4jzRiTInrbmIHkTdGA==} 5254 5288 engines: {node: '>=18.18'} 5255 5289 5256 - metro-minify-terser@0.82.2: 5257 - resolution: {integrity: sha512-+nveaEdQUvsoi0OSr4Cp+btevZsg2DKsu8kUJsvyLIcRRFPUw9CwzF3V2cA5b55DY5LcIJyAcZf4D9ARKfoilQ==} 5290 + metro-minify-terser@0.82.4: 5291 + resolution: {integrity: sha512-W79Mi6BUwWVaM8Mc5XepcqkG+TSsCyyo//dmTsgYfJcsmReQorRFodil3bbJInETvjzdnS1mCsUo9pllNjT1Hg==} 5258 5292 engines: {node: '>=18.18'} 5259 5293 5260 - metro-resolver@0.82.2: 5261 - resolution: {integrity: sha512-Who2hGzq2aCGSsBaQBU0L3SADiy/kj/gv0coujNWziRY4SKq7ECKzWqtVk1JlEF7IGXDDRDxEgFuLmPV6mZGVQ==} 5294 + metro-resolver@0.82.4: 5295 + resolution: {integrity: sha512-uWoHzOBGQTPT5PjippB8rRT3iI9CTgFA9tRiLMzrseA5o7YAlgvfTdY9vFk2qyk3lW3aQfFKWkmqENryPRpu+Q==} 5262 5296 engines: {node: '>=18.18'} 5263 5297 5264 - metro-runtime@0.82.2: 5265 - resolution: {integrity: sha512-gEcb2AfDs3GRs2SFjtEmG0k61B/cZEVCbh6cSmkjJpyHr+VRjw77MnDpX9AUcJYa4bCT63E7IEySOMM0Z8p87g==} 5298 + metro-runtime@0.82.4: 5299 + resolution: {integrity: sha512-vVyFO7H+eLXRV2E7YAUYA7aMGBECGagqxmFvC2hmErS7oq90BbPVENfAHbUWq1vWH+MRiivoRxdxlN8gBoF/dw==} 5266 5300 engines: {node: '>=18.18'} 5267 5301 5268 - metro-source-map@0.82.2: 5269 - resolution: {integrity: sha512-S26xPdz1/EeAY0HqaPXfny8CeiY0Dvl4sBLQiXGXhoES4gUDAuMhA1tioKrv5F+x68Sod8cp8Js6EGqbMXeqMA==} 5302 + metro-source-map@0.82.4: 5303 + resolution: {integrity: sha512-9jzDQJ0FPas1FuQFtwmBHsez2BfhFNufMowbOMeG3ZaFvzeziE8A0aJwILDS3U+V5039ssCQFiQeqDgENWvquA==} 5270 5304 engines: {node: '>=18.18'} 5271 5305 5272 - metro-symbolicate@0.82.2: 5273 - resolution: {integrity: sha512-iheanMnOMned6gjt6sKSfU5AoNyV6pJyQAWydwuHcjhGpa/kiAM0kKmw23qHejELK89Yw8HDZ3Fd/5l1jxpFVA==} 5306 + metro-symbolicate@0.82.4: 5307 + resolution: {integrity: sha512-LwEwAtdsx7z8rYjxjpLWxuFa2U0J6TS6ljlQM4WAATKa4uzV8unmnRuN2iNBWTmRqgNR77mzmI2vhwD4QSCo+w==} 5274 5308 engines: {node: '>=18.18'} 5275 5309 hasBin: true 5276 5310 5277 - metro-transform-plugins@0.82.2: 5278 - resolution: {integrity: sha512-kEveuEVxghTEXkDiyY0MT5QRqei092KJG46nduo0VghFgI6QFodbAjFit1ULyWsn2VOTGSUDJ3VgHBMy7MaccA==} 5311 + metro-transform-plugins@0.82.4: 5312 + resolution: {integrity: sha512-NoWQRPHupVpnDgYguiEcm7YwDhnqW02iWWQjO2O8NsNP09rEMSq99nPjARWfukN7+KDh6YjLvTIN20mj3dk9kw==} 5279 5313 engines: {node: '>=18.18'} 5280 5314 5281 - metro-transform-worker@0.82.2: 5282 - resolution: {integrity: sha512-MJQNz6cGjqewCRqFmPrsHu6Oe93v2B6zgHkrNxQ6XdPMJz5VHD33m8q+8UsNJOH8wUMoRu5JmYtuUTIVIFxh2A==} 5315 + metro-transform-worker@0.82.4: 5316 + resolution: {integrity: sha512-kPI7Ad/tdAnI9PY4T+2H0cdgGeSWWdiPRKuytI806UcN4VhFL6OmYa19/4abYVYF+Cd2jo57CDuwbaxRfmXDhw==} 5283 5317 engines: {node: '>=18.18'} 5284 5318 5285 - metro@0.82.2: 5286 - resolution: {integrity: sha512-hOBd4O4Cn/tLf3jz7IjSgD/A66MqMzgZuyF1I/pmNwYcY3q3j2vbh7Fa09KIbvUq5Yz7BewU356XboaEtEXPgA==} 5319 + metro@0.82.4: 5320 + resolution: {integrity: sha512-/gFmw3ux9CPG5WUmygY35hpyno28zi/7OUn6+OFfbweA8l0B+PPqXXLr0/T6cf5nclCcH0d22o+02fICaShVxw==} 5287 5321 engines: {node: '>=18.18'} 5288 5322 hasBin: true 5289 5323 ··· 5293 5327 5294 5328 mime-db@1.52.0: 5295 5329 resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 5296 - engines: {node: '>= 0.6'} 5297 - 5298 - mime-db@1.53.0: 5299 - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} 5300 5330 engines: {node: '>= 0.6'} 5301 5331 5302 5332 mime-types@2.1.35: ··· 5380 5410 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 5381 5411 hasBin: true 5382 5412 5413 + nanoid@3.3.8: 5414 + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 5415 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 5416 + hasBin: true 5417 + 5383 5418 nativewind@4.1.23: 5384 5419 resolution: {integrity: sha512-oLX3suGI6ojQqWxdQezOSM5GmJ4KvMnMtmaSMN9Ggb5j7ysFt4nHxb1xs8RDjZR7BWc+bsetNJU8IQdQMHqRpg==} 5385 5420 engines: {node: '>=16'} ··· 5406 5441 node-domexception@1.0.0: 5407 5442 resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 5408 5443 engines: {node: '>=10.5.0'} 5409 - deprecated: Use your platform's native DOMException instead 5410 5444 5411 5445 node-fetch@2.7.0: 5412 5446 resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} ··· 5456 5490 oauth-sign@0.9.0: 5457 5491 resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} 5458 5492 5459 - ob1@0.82.2: 5460 - resolution: {integrity: sha512-sfUaYpjkAdHgu8cXLAyWXO98jW1EUOStTDNslfC9eb3tBLExe67PRqh09J0xdD6AlFKHFGTvXPbuHGvlrZNJNA==} 5493 + ob1@0.82.4: 5494 + resolution: {integrity: sha512-n9S8e4l5TvkrequEAMDidl4yXesruWTNTzVkeaHSGywoTOIwTzZzKw7Z670H3eaXDZui5MJXjWGNzYowVZIxCA==} 5461 5495 engines: {node: '>=18.18'} 5462 5496 5463 5497 object-assign@4.1.1: ··· 5476 5510 resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 5477 5511 engines: {node: '>= 0.4'} 5478 5512 5479 - object.assign@4.1.5: 5480 - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 5481 - engines: {node: '>= 0.4'} 5482 - 5483 5513 object.assign@4.1.7: 5484 5514 resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 5485 5515 engines: {node: '>= 0.4'} 5486 5516 5487 - object.entries@1.1.9: 5488 - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} 5517 + object.entries@1.1.8: 5518 + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} 5489 5519 engines: {node: '>= 0.4'} 5490 5520 5491 5521 object.fromentries@2.0.8: ··· 5494 5524 5495 5525 object.groupby@1.0.3: 5496 5526 resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 5497 - engines: {node: '>= 0.4'} 5498 - 5499 - object.values@1.2.0: 5500 - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} 5501 5527 engines: {node: '>= 0.4'} 5502 5528 5503 5529 object.values@1.2.1: ··· 5692 5718 resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} 5693 5719 hasBin: true 5694 5720 5695 - pino@9.6.0: 5696 - resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} 5721 + pino@9.5.0: 5722 + resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==} 5697 5723 hasBin: true 5698 5724 5699 5725 pirates@4.0.6: ··· 5775 5801 resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 5776 5802 engines: {node: ^10 || ^12 || >=14} 5777 5803 5778 - postgres@3.4.5: 5779 - resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==} 5804 + postgres@3.4.7: 5805 + resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} 5780 5806 engines: {node: '>=12'} 5781 5807 5782 5808 prelude-ls@1.2.1: 5783 5809 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 5784 5810 engines: {node: '>= 0.8.0'} 5785 5811 5812 + prettier-plugin-tailwindcss@0.6.12: 5813 + resolution: {integrity: sha512-OuTQKoqNwV7RnxTPwXWzOFXy6Jc4z8oeRZYGuMpRyG3WbuR3jjXdQFK8qFBMBx8UHWdHrddARz2fgUenild6aw==} 5814 + engines: {node: '>=14.21.3'} 5815 + peerDependencies: 5816 + '@ianvs/prettier-plugin-sort-imports': '*' 5817 + '@prettier/plugin-pug': '*' 5818 + '@shopify/prettier-plugin-liquid': '*' 5819 + '@trivago/prettier-plugin-sort-imports': '*' 5820 + '@zackad/prettier-plugin-twig': '*' 5821 + prettier: ^3.0 5822 + prettier-plugin-astro: '*' 5823 + prettier-plugin-css-order: '*' 5824 + prettier-plugin-import-sort: '*' 5825 + prettier-plugin-jsdoc: '*' 5826 + prettier-plugin-marko: '*' 5827 + prettier-plugin-multiline-arrays: '*' 5828 + prettier-plugin-organize-attributes: '*' 5829 + prettier-plugin-organize-imports: '*' 5830 + prettier-plugin-sort-imports: '*' 5831 + prettier-plugin-style-order: '*' 5832 + prettier-plugin-svelte: '*' 5833 + peerDependenciesMeta: 5834 + '@ianvs/prettier-plugin-sort-imports': 5835 + optional: true 5836 + '@prettier/plugin-pug': 5837 + optional: true 5838 + '@shopify/prettier-plugin-liquid': 5839 + optional: true 5840 + '@trivago/prettier-plugin-sort-imports': 5841 + optional: true 5842 + '@zackad/prettier-plugin-twig': 5843 + optional: true 5844 + prettier-plugin-astro: 5845 + optional: true 5846 + prettier-plugin-css-order: 5847 + optional: true 5848 + prettier-plugin-import-sort: 5849 + optional: true 5850 + prettier-plugin-jsdoc: 5851 + optional: true 5852 + prettier-plugin-marko: 5853 + optional: true 5854 + prettier-plugin-multiline-arrays: 5855 + optional: true 5856 + prettier-plugin-organize-attributes: 5857 + optional: true 5858 + prettier-plugin-organize-imports: 5859 + optional: true 5860 + prettier-plugin-sort-imports: 5861 + optional: true 5862 + prettier-plugin-style-order: 5863 + optional: true 5864 + prettier-plugin-svelte: 5865 + optional: true 5866 + 5786 5867 prettier@3.4.2: 5787 5868 resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} 5869 + engines: {node: '>=14'} 5870 + hasBin: true 5871 + 5872 + prettier@3.5.3: 5873 + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} 5788 5874 engines: {node: '>=14'} 5789 5875 hasBin: true 5790 5876 ··· 5803 5889 process-warning@3.0.0: 5804 5890 resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} 5805 5891 5806 - process-warning@4.0.1: 5807 - resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} 5892 + process-warning@4.0.0: 5893 + resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} 5808 5894 5809 5895 process@0.11.10: 5810 5896 resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} ··· 5892 5978 peerDependencies: 5893 5979 react: ^17.0.0 || ^18.0.0 || ^19.0.0 5894 5980 5895 - react-devtools-core@6.1.1: 5896 - resolution: {integrity: sha512-TFo1MEnkqE6hzAbaztnyR5uLTMoz6wnEWwWBsCUzNt+sVXJycuRJdDqvL078M4/h65BI/YO5XWTaxZDWVsW0fw==} 5981 + react-devtools-core@6.1.2: 5982 + resolution: {integrity: sha512-ldFwzufLletzCikNJVYaxlxMLu7swJ3T2VrGfzXlMsVhZhPDKXA38DEROidaYZVgMAmQnIjymrmqto5pyfrwPA==} 5897 5983 5898 5984 react-dom@19.0.0: 5899 5985 resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} ··· 6020 6106 resolution: {integrity: sha512-FPvF2XxTSikpJxcr+bHut2H4gJ17+18Uy20D5/F+SKzFap62R3cM5wH6b8WN3LyGSYeQilLEcJcR1fjBSI2S1A==} 6021 6107 engines: {node: '>=0.10.0'} 6022 6108 6023 - react-remove-scroll-bar@2.3.6: 6024 - resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} 6109 + react-remove-scroll-bar@2.3.8: 6110 + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} 6025 6111 engines: {node: '>=10'} 6026 6112 peerDependencies: 6027 - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 6028 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 6113 + '@types/react': '*' 6114 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 6029 6115 peerDependenciesMeta: 6030 6116 '@types/react': 6031 6117 optional: true 6032 6118 6033 - react-remove-scroll@2.6.0: 6034 - resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==} 6119 + react-remove-scroll@2.6.2: 6120 + resolution: {integrity: sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==} 6035 6121 engines: {node: '>=10'} 6036 6122 peerDependencies: 6037 - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 6038 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 6123 + '@types/react': '*' 6124 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 6039 6125 peerDependenciesMeta: 6040 6126 '@types/react': 6041 6127 optional: true 6042 6128 6043 - react-style-singleton@2.2.1: 6044 - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} 6129 + react-style-singleton@2.2.3: 6130 + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} 6045 6131 engines: {node: '>=10'} 6046 6132 peerDependencies: 6047 - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 6048 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 6133 + '@types/react': '*' 6134 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 6049 6135 peerDependenciesMeta: 6050 6136 '@types/react': 6051 6137 optional: true ··· 6065 6151 resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 6066 6152 engines: {node: '>=8.10.0'} 6067 6153 6068 - readdirp@4.1.1: 6069 - resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} 6070 - engines: {node: '>= 14.18.0'} 6154 + readdirp@4.0.2: 6155 + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} 6156 + engines: {node: '>= 14.16.0'} 6071 6157 6072 6158 readline2@1.0.1: 6073 6159 resolution: {integrity: sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==} ··· 6076 6162 resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 6077 6163 engines: {node: '>= 12.13.0'} 6078 6164 6079 - reflect.getprototypeof@1.0.10: 6080 - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 6081 - engines: {node: '>= 0.4'} 6082 - 6083 - reflect.getprototypeof@1.0.8: 6084 - resolution: {integrity: sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==} 6165 + reflect.getprototypeof@1.0.9: 6166 + resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} 6085 6167 engines: {node: '>= 0.4'} 6086 6168 6087 6169 regenerate-unicode-properties@10.2.0: ··· 6169 6251 resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} 6170 6252 engines: {node: '>=10'} 6171 6253 6172 - resolve@1.22.8: 6173 - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 6254 + resolve@1.22.10: 6255 + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 6256 + engines: {node: '>= 0.4'} 6174 6257 hasBin: true 6175 6258 6176 6259 resolve@1.7.1: ··· 6192 6275 resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 6193 6276 engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 6194 6277 6195 - rimraf@2.6.3: 6196 - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} 6278 + rimraf@2.7.1: 6279 + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 6197 6280 deprecated: Rimraf versions prior to v4 are no longer supported 6198 6281 hasBin: true 6199 6282 ··· 6207 6290 engines: {node: 20 || >=22} 6208 6291 hasBin: true 6209 6292 6210 - rollup@4.31.0: 6211 - resolution: {integrity: sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==} 6293 + rollup@4.28.1: 6294 + resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} 6212 6295 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 6213 6296 hasBin: true 6214 6297 ··· 6273 6356 resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} 6274 6357 engines: {node: '>= 0.8.0'} 6275 6358 6276 - send@0.19.1: 6277 - resolution: {integrity: sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==} 6278 - engines: {node: '>= 0.8.0'} 6279 - 6280 6359 serialize-error@2.1.0: 6281 6360 resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} 6282 6361 engines: {node: '>=0.10.0'} ··· 6299 6378 resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 6300 6379 engines: {node: '>= 0.4'} 6301 6380 6302 - set-proto@1.0.0: 6303 - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 6304 - engines: {node: '>= 0.4'} 6305 - 6306 6381 setimmediate@1.0.5: 6307 6382 resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} 6308 6383 ··· 6334 6409 6335 6410 side-channel-weakmap@1.0.2: 6336 6411 resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 6412 + engines: {node: '>= 0.4'} 6413 + 6414 + side-channel@1.0.6: 6415 + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 6337 6416 engines: {node: '>= 0.4'} 6338 6417 6339 6418 side-channel@1.1.0: ··· 6540 6619 resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 6541 6620 engines: {node: '>= 0.4'} 6542 6621 6543 - tailwind-merge@2.5.5: 6544 - resolution: {integrity: sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==} 6622 + tailwind-merge@2.6.0: 6623 + resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} 6545 6624 6546 6625 tailwindcss-animate@1.0.7: 6547 6626 resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} ··· 6616 6695 through@2.3.8: 6617 6696 resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 6618 6697 6619 - tinyexec@0.3.2: 6620 - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 6698 + tinyexec@0.3.1: 6699 + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} 6621 6700 6622 6701 tinyglobby@0.2.10: 6623 6702 resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} ··· 6656 6735 resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 6657 6736 hasBin: true 6658 6737 6738 + ts-api-utils@1.4.3: 6739 + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} 6740 + engines: {node: '>=16'} 6741 + peerDependencies: 6742 + typescript: '>=4.2.0' 6743 + 6659 6744 ts-api-utils@2.1.0: 6660 6745 resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 6661 6746 engines: {node: '>=18.12'} ··· 6690 6775 6691 6776 tslib@2.6.2: 6692 6777 resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 6693 - 6694 - tslib@2.8.1: 6695 - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 6696 6778 6697 6779 tsup@8.3.5: 6698 6780 resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} ··· 6782 6864 resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 6783 6865 engines: {node: '>= 0.6'} 6784 6866 6785 - typed-array-buffer@1.0.2: 6786 - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} 6787 - engines: {node: '>= 0.4'} 6788 - 6789 6867 typed-array-buffer@1.0.3: 6790 6868 resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 6791 6869 engines: {node: '>= 0.4'} 6792 6870 6793 - typed-array-byte-length@1.0.1: 6794 - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} 6795 - engines: {node: '>= 0.4'} 6796 - 6797 6871 typed-array-byte-length@1.0.3: 6798 6872 resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 6799 6873 engines: {node: '>= 0.4'} 6800 6874 6801 - typed-array-byte-offset@1.0.3: 6802 - resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==} 6803 - engines: {node: '>= 0.4'} 6804 - 6805 6875 typed-array-byte-offset@1.0.4: 6806 6876 resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 6807 6877 engines: {node: '>= 0.4'} ··· 6810 6880 resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 6811 6881 engines: {node: '>= 0.4'} 6812 6882 6813 - typescript@5.7.3: 6814 - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 6883 + typescript@5.7.2: 6884 + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} 6815 6885 engines: {node: '>=14.17'} 6816 6886 hasBin: true 6817 6887 ··· 6820 6890 engines: {node: '>=14.17'} 6821 6891 hasBin: true 6822 6892 6823 - ua-parser-js@1.0.39: 6824 - resolution: {integrity: sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==} 6893 + ua-parser-js@1.0.40: 6894 + resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} 6825 6895 hasBin: true 6826 6896 6827 6897 udomdiff@1.1.2: ··· 6832 6902 6833 6903 uint8arrays@3.0.0: 6834 6904 resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==} 6835 - 6836 - unbox-primitive@1.0.2: 6837 - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 6838 6905 6839 6906 unbox-primitive@1.1.0: 6840 6907 resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} ··· 6887 6954 uri-js@4.4.1: 6888 6955 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 6889 6956 6890 - use-callback-ref@1.3.2: 6891 - resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} 6957 + use-callback-ref@1.3.3: 6958 + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} 6892 6959 engines: {node: '>=10'} 6893 6960 peerDependencies: 6894 - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 6895 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 6961 + '@types/react': '*' 6962 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 6896 6963 peerDependenciesMeta: 6897 6964 '@types/react': 6898 6965 optional: true ··· 6902 6969 peerDependencies: 6903 6970 react: '>=16.8' 6904 6971 6905 - use-sidecar@1.1.2: 6906 - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} 6972 + use-sidecar@1.1.3: 6973 + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} 6907 6974 engines: {node: '>=10'} 6908 6975 peerDependencies: 6909 - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 6910 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 6976 + '@types/react': '*' 6977 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 6911 6978 peerDependenciesMeta: 6912 6979 '@types/react': 6913 6980 optional: true ··· 7015 7082 whatwg-url@7.1.0: 7016 7083 resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 7017 7084 7018 - which-boxed-primitive@1.1.0: 7019 - resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==} 7020 - engines: {node: '>= 0.4'} 7021 - 7022 7085 which-boxed-primitive@1.1.1: 7023 7086 resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 7024 7087 engines: {node: '>= 0.4'} ··· 7031 7094 resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 7032 7095 engines: {node: '>= 0.4'} 7033 7096 7034 - which-typed-array@1.1.16: 7035 - resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} 7036 - engines: {node: '>= 0.4'} 7037 - 7038 - which-typed-array@1.1.19: 7039 - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} 7097 + which-typed-array@1.1.18: 7098 + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} 7040 7099 engines: {node: '>= 0.4'} 7041 7100 7042 7101 which@2.0.2: ··· 7158 7217 peerDependencies: 7159 7218 zod: ^3.18.0 7160 7219 7161 - zod@3.24.1: 7162 - resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} 7220 + zod@3.23.8: 7221 + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 7163 7222 7164 - zustand@5.0.4: 7165 - resolution: {integrity: sha512-39VFTN5InDtMd28ZhjLyuTnlytDr9HfwO512Ai4I8ZABCoyAj4F1+sr7sD1jP/+p7k77Iko0Pb5NhgBFDCX0kQ==} 7223 + zustand@5.0.5: 7224 + resolution: {integrity: sha512-mILtRfKW9xM47hqxGIxCv12gXusoY/xTSHBYApXozR0HmQv299whhBeeAcRy+KrPPybzosvJBCOmVjq6x12fCg==} 7166 7225 engines: {node: '>=12.20.0'} 7167 7226 peerDependencies: 7168 7227 '@types/react': '>=18.0.0' ··· 7187 7246 7188 7247 '@ampproject/remapping@2.3.0': 7189 7248 dependencies: 7190 - '@jridgewell/gen-mapping': 0.3.8 7249 + '@jridgewell/gen-mapping': 0.3.5 7191 7250 '@jridgewell/trace-mapping': 0.3.25 7192 7251 7193 - '@aquareum/atproto-oauth-client-react-native@0.0.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 7252 + '@aquareum/atproto-oauth-client-react-native@0.0.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 7194 7253 dependencies: 7195 7254 '@atproto-labs/did-resolver': 0.1.5 7196 7255 '@atproto-labs/handle-resolver-node': 0.1.7 ··· 7205 7264 '@atproto/oauth-types': 0.2.1 7206 7265 abortcontroller-polyfill: 1.7.8 7207 7266 event-target-shim: 6.0.2 7208 - expo-sqlite: 15.2.9(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 7267 + expo-sqlite: 15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 7209 7268 jose: 5.9.6 7210 7269 react-native-quick-crypto: 0.7.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 7211 7270 transitivePeerDependencies: ··· 7213 7272 - react 7214 7273 - react-native 7215 7274 7216 - '@atproto-labs/did-resolver@0.1.12': 7275 + '@atproto-labs/did-resolver@0.1.13': 7217 7276 dependencies: 7218 - '@atproto-labs/fetch': 0.2.2 7219 - '@atproto-labs/pipe': 0.1.0 7277 + '@atproto-labs/fetch': 0.2.3 7278 + '@atproto-labs/pipe': 0.1.1 7220 7279 '@atproto-labs/simple-store': 0.2.0 7221 7280 '@atproto-labs/simple-store-memory': 0.1.3 7222 7281 '@atproto/did': 0.1.5 7223 - zod: 3.24.1 7282 + zod: 3.23.8 7224 7283 7225 7284 '@atproto-labs/did-resolver@0.1.5': 7226 7285 dependencies: ··· 7229 7288 '@atproto-labs/simple-store': 0.1.1 7230 7289 '@atproto-labs/simple-store-memory': 0.1.1 7231 7290 '@atproto/did': 0.1.3 7232 - zod: 3.24.1 7291 + zod: 3.23.8 7233 7292 7234 - '@atproto-labs/did-resolver@0.1.8': 7293 + '@atproto-labs/did-resolver@0.1.6': 7235 7294 dependencies: 7236 - '@atproto-labs/fetch': 0.2.0 7295 + '@atproto-labs/fetch': 0.1.2 7237 7296 '@atproto-labs/pipe': 0.1.0 7238 7297 '@atproto-labs/simple-store': 0.1.1 7239 7298 '@atproto-labs/simple-store-memory': 0.1.1 7240 7299 '@atproto/did': 0.1.3 7241 - zod: 3.24.1 7242 - 7243 - '@atproto-labs/did-resolver@0.1.9': 7244 - dependencies: 7245 - '@atproto-labs/fetch': 0.2.0 7246 - '@atproto-labs/pipe': 0.1.0 7247 - '@atproto-labs/simple-store': 0.1.1 7248 - '@atproto-labs/simple-store-memory': 0.1.1 7249 - '@atproto/did': 0.1.4 7250 - zod: 3.24.1 7300 + zod: 3.23.8 7251 7301 7252 7302 '@atproto-labs/fetch-node@0.1.3': 7253 7303 dependencies: ··· 7257 7307 psl: 1.15.0 7258 7308 undici: 6.21.0 7259 7309 7260 - '@atproto-labs/fetch-node@0.1.6': 7310 + '@atproto-labs/fetch-node@0.1.4': 7261 7311 dependencies: 7262 - '@atproto-labs/fetch': 0.2.0 7312 + '@atproto-labs/fetch': 0.1.2 7263 7313 '@atproto-labs/pipe': 0.1.0 7264 7314 ipaddr.js: 2.2.0 7265 7315 psl: 1.15.0 ··· 7269 7319 dependencies: 7270 7320 '@atproto-labs/pipe': 0.1.0 7271 7321 optionalDependencies: 7272 - zod: 3.24.1 7322 + zod: 3.23.8 7273 7323 7274 - '@atproto-labs/fetch@0.2.0': 7324 + '@atproto-labs/fetch@0.1.2': 7275 7325 dependencies: 7276 7326 '@atproto-labs/pipe': 0.1.0 7277 7327 optionalDependencies: 7278 - zod: 3.24.1 7279 - 7280 - '@atproto-labs/fetch@0.2.2': 7281 - dependencies: 7282 - '@atproto-labs/pipe': 0.1.0 7328 + zod: 3.23.8 7283 7329 7284 - '@atproto-labs/handle-resolver-node@0.1.11': 7330 + '@atproto-labs/fetch@0.2.3': 7285 7331 dependencies: 7286 - '@atproto-labs/fetch-node': 0.1.6 7287 - '@atproto-labs/handle-resolver': 0.1.5 7288 - '@atproto/did': 0.1.3 7332 + '@atproto-labs/pipe': 0.1.1 7289 7333 7290 7334 '@atproto-labs/handle-resolver-node@0.1.7': 7291 7335 dependencies: ··· 7293 7337 '@atproto-labs/handle-resolver': 0.1.4 7294 7338 '@atproto/did': 0.1.3 7295 7339 7296 - '@atproto-labs/handle-resolver@0.1.4': 7340 + '@atproto-labs/handle-resolver-node@0.1.8': 7297 7341 dependencies: 7298 - '@atproto-labs/simple-store': 0.1.1 7299 - '@atproto-labs/simple-store-memory': 0.1.1 7342 + '@atproto-labs/fetch-node': 0.1.4 7343 + '@atproto-labs/handle-resolver': 0.1.4 7300 7344 '@atproto/did': 0.1.3 7301 - zod: 3.24.1 7302 7345 7303 - '@atproto-labs/handle-resolver@0.1.5': 7346 + '@atproto-labs/handle-resolver@0.1.4': 7304 7347 dependencies: 7305 7348 '@atproto-labs/simple-store': 0.1.1 7306 7349 '@atproto-labs/simple-store-memory': 0.1.1 7307 7350 '@atproto/did': 0.1.3 7308 - zod: 3.24.1 7309 - 7310 - '@atproto-labs/handle-resolver@0.1.6': 7311 - dependencies: 7312 - '@atproto-labs/simple-store': 0.1.1 7313 - '@atproto-labs/simple-store-memory': 0.1.1 7314 - '@atproto/did': 0.1.4 7315 - zod: 3.24.1 7351 + zod: 3.23.8 7316 7352 7317 7353 '@atproto-labs/handle-resolver@0.1.8': 7318 7354 dependencies: 7319 7355 '@atproto-labs/simple-store': 0.2.0 7320 7356 '@atproto-labs/simple-store-memory': 0.1.3 7321 7357 '@atproto/did': 0.1.5 7322 - zod: 3.24.1 7358 + zod: 3.23.8 7323 7359 7324 - '@atproto-labs/identity-resolver@0.1.10': 7360 + '@atproto-labs/identity-resolver@0.1.17': 7325 7361 dependencies: 7326 - '@atproto-labs/did-resolver': 0.1.8 7327 - '@atproto-labs/handle-resolver': 0.1.5 7328 - '@atproto/syntax': 0.3.1 7329 - 7330 - '@atproto-labs/identity-resolver@0.1.11': 7331 - dependencies: 7332 - '@atproto-labs/did-resolver': 0.1.9 7333 - '@atproto-labs/handle-resolver': 0.1.6 7334 - '@atproto/syntax': 0.3.1 7335 - 7336 - '@atproto-labs/identity-resolver@0.1.16': 7337 - dependencies: 7338 - '@atproto-labs/did-resolver': 0.1.12 7362 + '@atproto-labs/did-resolver': 0.1.13 7339 7363 '@atproto-labs/handle-resolver': 0.1.8 7340 7364 '@atproto/syntax': 0.4.0 7341 7365 ··· 7345 7369 '@atproto-labs/handle-resolver': 0.1.4 7346 7370 '@atproto/syntax': 0.3.1 7347 7371 7372 + '@atproto-labs/identity-resolver@0.1.7': 7373 + dependencies: 7374 + '@atproto-labs/did-resolver': 0.1.6 7375 + '@atproto-labs/handle-resolver': 0.1.4 7376 + '@atproto/syntax': 0.3.1 7377 + 7348 7378 '@atproto-labs/pipe@0.1.0': {} 7379 + 7380 + '@atproto-labs/pipe@0.1.1': {} 7349 7381 7350 7382 '@atproto-labs/simple-store-memory@0.1.1': 7351 7383 dependencies: ··· 7361 7393 7362 7394 '@atproto-labs/simple-store@0.2.0': {} 7363 7395 7364 - '@atproto/api@0.13.20': 7396 + '@atproto/api@0.13.19': 7365 7397 dependencies: 7366 7398 '@atproto/common-web': 0.3.1 7367 - '@atproto/lexicon': 0.4.4 7399 + '@atproto/lexicon': 0.4.3 7368 7400 '@atproto/syntax': 0.3.1 7369 - '@atproto/xrpc': 0.6.5 7401 + '@atproto/xrpc': 0.6.4 7370 7402 await-lock: 2.2.2 7371 7403 multiformats: 9.9.0 7372 7404 tlds: 1.255.0 7373 - zod: 3.24.1 7405 + zod: 3.23.8 7374 7406 7375 - '@atproto/api@0.15.6': 7407 + '@atproto/api@0.15.14': 7376 7408 dependencies: 7377 7409 '@atproto/common-web': 0.4.2 7378 7410 '@atproto/lexicon': 0.4.11 ··· 7381 7413 await-lock: 2.2.2 7382 7414 multiformats: 9.9.0 7383 7415 tlds: 1.255.0 7384 - zod: 3.24.1 7416 + zod: 3.23.8 7385 7417 7386 7418 '@atproto/common-web@0.3.1': 7387 7419 dependencies: 7388 7420 graphemer: 1.4.0 7389 7421 multiformats: 9.9.0 7390 7422 uint8arrays: 3.0.0 7391 - zod: 3.24.1 7423 + zod: 3.23.8 7392 7424 7393 - '@atproto/common-web@0.3.2': 7425 + '@atproto/common-web@0.4.2': 7394 7426 dependencies: 7395 7427 graphemer: 1.4.0 7396 7428 multiformats: 9.9.0 7397 7429 uint8arrays: 3.0.0 7398 - zod: 3.24.1 7430 + zod: 3.23.8 7399 7431 7400 - '@atproto/common-web@0.4.2': 7432 + '@atproto/common@0.4.4': 7401 7433 dependencies: 7402 - graphemer: 1.4.0 7434 + '@atproto/common-web': 0.3.1 7435 + '@ipld/dag-cbor': 7.0.3 7436 + cbor-x: 1.6.0 7437 + iso-datestring-validator: 2.2.2 7403 7438 multiformats: 9.9.0 7404 - uint8arrays: 3.0.0 7405 - zod: 3.24.1 7439 + pino: 8.21.0 7406 7440 7407 - '@atproto/common@0.4.6': 7441 + '@atproto/common@0.4.5': 7408 7442 dependencies: 7409 - '@atproto/common-web': 0.3.2 7443 + '@atproto/common-web': 0.3.1 7410 7444 '@ipld/dag-cbor': 7.0.3 7411 7445 cbor-x: 1.6.0 7412 7446 iso-datestring-validator: 2.2.2 7413 7447 multiformats: 9.9.0 7414 7448 pino: 8.21.0 7415 7449 7416 - '@atproto/crypto@0.4.3': 7450 + '@atproto/crypto@0.4.2': 7417 7451 dependencies: 7418 - '@noble/curves': 1.8.1 7419 - '@noble/hashes': 1.7.1 7452 + '@noble/curves': 1.7.0 7453 + '@noble/hashes': 1.6.1 7420 7454 uint8arrays: 3.0.0 7421 7455 7422 7456 '@atproto/did@0.1.3': 7423 7457 dependencies: 7424 - zod: 3.24.1 7425 - 7426 - '@atproto/did@0.1.4': 7427 - dependencies: 7428 - zod: 3.24.1 7458 + zod: 3.23.8 7429 7459 7430 7460 '@atproto/did@0.1.5': 7431 7461 dependencies: 7432 - zod: 3.24.1 7462 + zod: 3.23.8 7433 7463 7434 - '@atproto/identity@0.4.5': 7464 + '@atproto/identity@0.4.3': 7435 7465 dependencies: 7436 - '@atproto/common-web': 0.3.2 7437 - '@atproto/crypto': 0.4.3 7466 + '@atproto/common-web': 0.3.1 7467 + '@atproto/crypto': 0.4.2 7468 + axios: 0.27.2 7469 + transitivePeerDependencies: 7470 + - debug 7438 7471 7439 7472 '@atproto/jwk-jose@0.1.2': 7440 7473 dependencies: 7441 7474 '@atproto/jwk': 0.1.1 7442 - jose: 5.9.6 7443 - 7444 - '@atproto/jwk-jose@0.1.3': 7445 - dependencies: 7446 - '@atproto/jwk': 0.1.2 7447 7475 jose: 5.9.6 7448 7476 7449 7477 '@atproto/jwk-webcrypto@0.1.2': 7450 7478 dependencies: 7451 7479 '@atproto/jwk': 0.1.1 7452 7480 '@atproto/jwk-jose': 0.1.2 7453 - 7454 - '@atproto/jwk-webcrypto@0.1.3': 7455 - dependencies: 7456 - '@atproto/jwk': 0.1.2 7457 - '@atproto/jwk-jose': 0.1.3 7458 - zod: 3.24.1 7459 7481 7460 7482 '@atproto/jwk@0.1.1': 7461 7483 dependencies: 7462 7484 multiformats: 9.9.0 7463 - zod: 3.24.1 7485 + zod: 3.23.8 7464 7486 7465 - '@atproto/jwk@0.1.2': 7487 + '@atproto/jwk@0.2.0': 7466 7488 dependencies: 7467 7489 multiformats: 9.9.0 7468 - zod: 3.24.1 7490 + zod: 3.23.8 7469 7491 7470 - '@atproto/jwk@0.1.5': 7492 + '@atproto/lex-cli@0.5.4': 7471 7493 dependencies: 7472 - multiformats: 9.9.0 7473 - zod: 3.24.1 7474 - 7475 - '@atproto/lex-cli@0.5.6': 7476 - dependencies: 7477 - '@atproto/lexicon': 0.4.5 7494 + '@atproto/lexicon': 0.4.4 7478 7495 '@atproto/syntax': 0.3.1 7479 7496 chalk: 4.1.2 7480 7497 commander: 9.5.0 7481 7498 prettier: 3.4.2 7482 7499 ts-morph: 16.0.0 7483 7500 yesno: 0.4.0 7484 - zod: 3.24.1 7501 + zod: 3.23.8 7485 7502 7486 - '@atproto/lex-cli@0.8.1': 7503 + '@atproto/lex-cli@0.8.2': 7487 7504 dependencies: 7488 7505 '@atproto/lexicon': 0.4.11 7489 7506 '@atproto/syntax': 0.4.0 7490 7507 chalk: 4.1.2 7491 7508 commander: 9.5.0 7492 - prettier: 3.4.2 7509 + prettier: 3.5.3 7493 7510 ts-morph: 24.0.0 7494 7511 yesno: 0.4.0 7495 - zod: 3.24.1 7512 + zod: 3.23.8 7496 7513 7497 7514 '@atproto/lexicon@0.4.11': 7498 7515 dependencies: ··· 7500 7517 '@atproto/syntax': 0.4.0 7501 7518 iso-datestring-validator: 2.2.2 7502 7519 multiformats: 9.9.0 7503 - zod: 3.24.1 7520 + zod: 3.23.8 7504 7521 7505 - '@atproto/lexicon@0.4.4': 7522 + '@atproto/lexicon@0.4.3': 7506 7523 dependencies: 7507 7524 '@atproto/common-web': 0.3.1 7508 7525 '@atproto/syntax': 0.3.1 7509 7526 iso-datestring-validator: 2.2.2 7510 7527 multiformats: 9.9.0 7511 - zod: 3.24.1 7528 + zod: 3.23.8 7512 7529 7513 - '@atproto/lexicon@0.4.5': 7530 + '@atproto/lexicon@0.4.4': 7514 7531 dependencies: 7515 - '@atproto/common-web': 0.3.2 7532 + '@atproto/common-web': 0.3.1 7516 7533 '@atproto/syntax': 0.3.1 7517 7534 iso-datestring-validator: 2.2.2 7518 7535 multiformats: 9.9.0 7519 - zod: 3.24.1 7536 + zod: 3.23.8 7520 7537 7521 7538 '@atproto/oauth-client-browser@0.3.2': 7522 7539 dependencies: ··· 7529 7546 '@atproto/oauth-client': 0.3.2 7530 7547 '@atproto/oauth-types': 0.2.1 7531 7548 7532 - '@atproto/oauth-client-node@0.2.8': 7549 + '@atproto/oauth-client-node@0.2.3': 7533 7550 dependencies: 7534 - '@atproto-labs/did-resolver': 0.1.8 7535 - '@atproto-labs/handle-resolver-node': 0.1.11 7551 + '@atproto-labs/did-resolver': 0.1.6 7552 + '@atproto-labs/handle-resolver-node': 0.1.8 7536 7553 '@atproto-labs/simple-store': 0.1.1 7537 7554 '@atproto/did': 0.1.3 7538 - '@atproto/jwk': 0.1.2 7539 - '@atproto/jwk-jose': 0.1.3 7540 - '@atproto/jwk-webcrypto': 0.1.3 7541 - '@atproto/oauth-client': 0.3.7 7542 - '@atproto/oauth-types': 0.2.2 7543 - 7544 - '@atproto/oauth-client@0.3.16': 7545 - dependencies: 7546 - '@atproto-labs/did-resolver': 0.1.12 7547 - '@atproto-labs/fetch': 0.2.2 7548 - '@atproto-labs/handle-resolver': 0.1.8 7549 - '@atproto-labs/identity-resolver': 0.1.16 7550 - '@atproto-labs/simple-store': 0.2.0 7551 - '@atproto-labs/simple-store-memory': 0.1.3 7552 - '@atproto/did': 0.1.5 7553 - '@atproto/jwk': 0.1.5 7554 - '@atproto/oauth-types': 0.2.7 7555 - '@atproto/xrpc': 0.7.0 7556 - multiformats: 9.9.0 7557 - zod: 3.24.1 7555 + '@atproto/jwk': 0.1.1 7556 + '@atproto/jwk-jose': 0.1.2 7557 + '@atproto/jwk-webcrypto': 0.1.2 7558 + '@atproto/oauth-client': 0.3.3 7559 + '@atproto/oauth-types': 0.2.1 7558 7560 7559 7561 '@atproto/oauth-client@0.3.2': 7560 7562 dependencies: ··· 7569 7571 '@atproto/oauth-types': 0.2.1 7570 7572 '@atproto/xrpc': 0.6.4 7571 7573 multiformats: 9.9.0 7572 - zod: 3.24.1 7574 + zod: 3.23.8 7573 7575 7574 - '@atproto/oauth-client@0.3.7': 7576 + '@atproto/oauth-client@0.3.21': 7575 7577 dependencies: 7576 - '@atproto-labs/did-resolver': 0.1.8 7577 - '@atproto-labs/fetch': 0.2.0 7578 - '@atproto-labs/handle-resolver': 0.1.5 7579 - '@atproto-labs/identity-resolver': 0.1.10 7580 - '@atproto-labs/simple-store': 0.1.1 7581 - '@atproto-labs/simple-store-memory': 0.1.1 7582 - '@atproto/did': 0.1.3 7583 - '@atproto/jwk': 0.1.2 7584 - '@atproto/oauth-types': 0.2.2 7585 - '@atproto/xrpc': 0.6.6 7578 + '@atproto-labs/did-resolver': 0.1.13 7579 + '@atproto-labs/fetch': 0.2.3 7580 + '@atproto-labs/handle-resolver': 0.1.8 7581 + '@atproto-labs/identity-resolver': 0.1.17 7582 + '@atproto-labs/simple-store': 0.2.0 7583 + '@atproto-labs/simple-store-memory': 0.1.3 7584 + '@atproto/did': 0.1.5 7585 + '@atproto/jwk': 0.2.0 7586 + '@atproto/oauth-types': 0.2.8 7587 + '@atproto/xrpc': 0.7.0 7586 7588 multiformats: 9.9.0 7587 - zod: 3.24.1 7589 + zod: 3.23.8 7588 7590 7589 - '@atproto/oauth-client@0.3.8': 7591 + '@atproto/oauth-client@0.3.3': 7590 7592 dependencies: 7591 - '@atproto-labs/did-resolver': 0.1.9 7592 - '@atproto-labs/fetch': 0.2.0 7593 - '@atproto-labs/handle-resolver': 0.1.6 7594 - '@atproto-labs/identity-resolver': 0.1.11 7593 + '@atproto-labs/did-resolver': 0.1.6 7594 + '@atproto-labs/fetch': 0.1.2 7595 + '@atproto-labs/handle-resolver': 0.1.4 7596 + '@atproto-labs/identity-resolver': 0.1.7 7595 7597 '@atproto-labs/simple-store': 0.1.1 7596 7598 '@atproto-labs/simple-store-memory': 0.1.1 7597 - '@atproto/did': 0.1.4 7598 - '@atproto/jwk': 0.1.2 7599 - '@atproto/oauth-types': 0.2.2 7600 - '@atproto/xrpc': 0.6.7 7599 + '@atproto/did': 0.1.3 7600 + '@atproto/jwk': 0.1.1 7601 + '@atproto/oauth-types': 0.2.1 7602 + '@atproto/xrpc': 0.6.4 7601 7603 multiformats: 9.9.0 7602 - zod: 3.24.1 7604 + zod: 3.23.8 7603 7605 7604 7606 '@atproto/oauth-types@0.2.1': 7605 7607 dependencies: 7606 7608 '@atproto/jwk': 0.1.1 7607 - zod: 3.24.1 7609 + zod: 3.23.8 7608 7610 7609 - '@atproto/oauth-types@0.2.2': 7611 + '@atproto/oauth-types@0.2.8': 7610 7612 dependencies: 7611 - '@atproto/jwk': 0.1.2 7612 - zod: 3.24.1 7613 + '@atproto/jwk': 0.2.0 7614 + zod: 3.23.8 7613 7615 7614 - '@atproto/oauth-types@0.2.7': 7616 + '@atproto/repo@0.5.5': 7615 7617 dependencies: 7616 - '@atproto/jwk': 0.1.5 7617 - zod: 3.24.1 7618 - 7619 - '@atproto/repo@0.6.2': 7620 - dependencies: 7621 - '@atproto/common': 0.4.6 7622 - '@atproto/common-web': 0.3.2 7623 - '@atproto/crypto': 0.4.3 7624 - '@atproto/lexicon': 0.4.5 7618 + '@atproto/common': 0.4.4 7619 + '@atproto/common-web': 0.3.1 7620 + '@atproto/crypto': 0.4.2 7621 + '@atproto/lexicon': 0.4.3 7625 7622 '@ipld/car': 3.2.4 7626 7623 '@ipld/dag-cbor': 7.0.3 7627 7624 multiformats: 9.9.0 7628 7625 uint8arrays: 3.0.0 7629 - zod: 3.24.1 7626 + zod: 3.23.8 7630 7627 7631 - '@atproto/sync@0.1.11': 7628 + '@atproto/sync@0.1.6': 7632 7629 dependencies: 7633 - '@atproto/common': 0.4.6 7634 - '@atproto/identity': 0.4.5 7635 - '@atproto/lexicon': 0.4.5 7636 - '@atproto/repo': 0.6.2 7630 + '@atproto/common': 0.4.4 7631 + '@atproto/identity': 0.4.3 7632 + '@atproto/lexicon': 0.4.3 7633 + '@atproto/repo': 0.5.5 7637 7634 '@atproto/syntax': 0.3.1 7638 - '@atproto/xrpc-server': 0.7.8 7635 + '@atproto/xrpc-server': 0.7.4 7639 7636 multiformats: 9.9.0 7640 7637 p-queue: 6.6.2 7641 - ws: 8.18.0 7642 7638 transitivePeerDependencies: 7643 7639 - bufferutil 7640 + - debug 7644 7641 - supports-color 7645 7642 - utf-8-validate 7646 7643 ··· 7648 7645 7649 7646 '@atproto/syntax@0.4.0': {} 7650 7647 7651 - '@atproto/xrpc-server@0.7.8': 7648 + '@atproto/xrpc-server@0.7.4': 7652 7649 dependencies: 7653 - '@atproto/common': 0.4.6 7654 - '@atproto/crypto': 0.4.3 7655 - '@atproto/lexicon': 0.4.5 7656 - '@atproto/xrpc': 0.6.6 7650 + '@atproto/common': 0.4.5 7651 + '@atproto/crypto': 0.4.2 7652 + '@atproto/lexicon': 0.4.4 7653 + '@atproto/xrpc': 0.6.5 7657 7654 cbor-x: 1.6.0 7658 7655 express: 4.21.2 7659 7656 http-errors: 2.0.0 ··· 7661 7658 rate-limiter-flexible: 2.4.2 7662 7659 uint8arrays: 3.0.0 7663 7660 ws: 8.18.0 7664 - zod: 3.24.1 7661 + zod: 3.23.8 7665 7662 transitivePeerDependencies: 7666 7663 - bufferutil 7667 7664 - supports-color ··· 7669 7666 7670 7667 '@atproto/xrpc@0.6.4': 7671 7668 dependencies: 7672 - '@atproto/lexicon': 0.4.5 7673 - zod: 3.24.1 7669 + '@atproto/lexicon': 0.4.3 7670 + zod: 3.23.8 7674 7671 7675 7672 '@atproto/xrpc@0.6.5': 7676 7673 dependencies: 7677 7674 '@atproto/lexicon': 0.4.4 7678 - zod: 3.24.1 7679 - 7680 - '@atproto/xrpc@0.6.6': 7681 - dependencies: 7682 - '@atproto/lexicon': 0.4.5 7683 - zod: 3.24.1 7684 - 7685 - '@atproto/xrpc@0.6.7': 7686 - dependencies: 7687 - '@atproto/lexicon': 0.4.5 7688 - zod: 3.24.1 7675 + zod: 3.23.8 7689 7676 7690 7677 '@atproto/xrpc@0.7.0': 7691 7678 dependencies: 7692 7679 '@atproto/lexicon': 0.4.11 7693 - zod: 3.24.1 7680 + zod: 3.23.8 7694 7681 7695 7682 '@babel/code-frame@7.10.4': 7696 7683 dependencies: ··· 7728 7715 dependencies: 7729 7716 '@babel/parser': 7.26.3 7730 7717 '@babel/types': 7.26.3 7731 - '@jridgewell/gen-mapping': 0.3.8 7718 + '@jridgewell/gen-mapping': 0.3.5 7732 7719 '@jridgewell/trace-mapping': 0.3.25 7733 7720 jsesc: 3.1.0 7734 7721 ··· 7768 7755 dependencies: 7769 7756 '@babel/core': 7.26.0 7770 7757 '@babel/helper-compilation-targets': 7.25.9 7771 - '@babel/helper-plugin-utils': 7.27.1 7758 + '@babel/helper-plugin-utils': 7.25.9 7772 7759 debug: 4.4.0 7773 7760 lodash.debounce: 4.0.8 7774 - resolve: 1.22.8 7761 + resolve: 1.22.10 7775 7762 transitivePeerDependencies: 7776 7763 - supports-color 7777 7764 ··· 7865 7852 dependencies: 7866 7853 '@babel/core': 7.26.0 7867 7854 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) 7868 - '@babel/helper-plugin-utils': 7.27.1 7855 + '@babel/helper-plugin-utils': 7.25.9 7869 7856 '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) 7870 7857 transitivePeerDependencies: 7871 7858 - supports-color ··· 7873 7860 '@babel/plugin-proposal-export-default-from@7.25.9(@babel/core@7.26.0)': 7874 7861 dependencies: 7875 7862 '@babel/core': 7.26.0 7876 - '@babel/helper-plugin-utils': 7.27.1 7863 + '@babel/helper-plugin-utils': 7.25.9 7877 7864 7878 7865 '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.26.0)': 7879 7866 dependencies: ··· 7886 7873 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)': 7887 7874 dependencies: 7888 7875 '@babel/core': 7.26.0 7889 - '@babel/helper-plugin-utils': 7.27.1 7876 + '@babel/helper-plugin-utils': 7.25.9 7890 7877 7891 7878 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)': 7892 7879 dependencies: 7893 7880 '@babel/core': 7.26.0 7894 - '@babel/helper-plugin-utils': 7.27.1 7881 + '@babel/helper-plugin-utils': 7.25.9 7895 7882 7896 7883 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': 7897 7884 dependencies: 7898 7885 '@babel/core': 7.26.0 7899 - '@babel/helper-plugin-utils': 7.27.1 7886 + '@babel/helper-plugin-utils': 7.25.9 7900 7887 7901 7888 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': 7902 7889 dependencies: 7903 7890 '@babel/core': 7.26.0 7904 - '@babel/helper-plugin-utils': 7.27.1 7891 + '@babel/helper-plugin-utils': 7.25.9 7905 7892 7906 7893 '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': 7907 7894 dependencies: 7908 7895 '@babel/core': 7.26.0 7909 - '@babel/helper-plugin-utils': 7.27.1 7896 + '@babel/helper-plugin-utils': 7.25.9 7910 7897 7911 7898 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0)': 7912 7899 dependencies: 7913 7900 '@babel/core': 7.26.0 7914 - '@babel/helper-plugin-utils': 7.27.1 7901 + '@babel/helper-plugin-utils': 7.25.9 7915 7902 7916 7903 '@babel/plugin-syntax-export-default-from@7.25.9(@babel/core@7.26.0)': 7917 7904 dependencies: 7918 7905 '@babel/core': 7.26.0 7919 - '@babel/helper-plugin-utils': 7.27.1 7906 + '@babel/helper-plugin-utils': 7.25.9 7920 7907 7921 7908 '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.0)': 7922 7909 dependencies: 7923 7910 '@babel/core': 7.26.0 7924 - '@babel/helper-plugin-utils': 7.27.1 7911 + '@babel/helper-plugin-utils': 7.25.9 7925 7912 7926 7913 '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': 7927 7914 dependencies: 7928 7915 '@babel/core': 7.26.0 7929 - '@babel/helper-plugin-utils': 7.27.1 7916 + '@babel/helper-plugin-utils': 7.25.9 7930 7917 7931 7918 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': 7932 7919 dependencies: 7933 7920 '@babel/core': 7.26.0 7934 - '@babel/helper-plugin-utils': 7.27.1 7921 + '@babel/helper-plugin-utils': 7.25.9 7935 7922 7936 7923 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': 7937 7924 dependencies: 7938 7925 '@babel/core': 7.26.0 7939 - '@babel/helper-plugin-utils': 7.27.1 7926 + '@babel/helper-plugin-utils': 7.25.9 7940 7927 7941 7928 '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': 7942 7929 dependencies: ··· 7946 7933 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': 7947 7934 dependencies: 7948 7935 '@babel/core': 7.26.0 7949 - '@babel/helper-plugin-utils': 7.27.1 7936 + '@babel/helper-plugin-utils': 7.25.9 7950 7937 7951 7938 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': 7952 7939 dependencies: 7953 7940 '@babel/core': 7.26.0 7954 - '@babel/helper-plugin-utils': 7.27.1 7941 + '@babel/helper-plugin-utils': 7.25.9 7955 7942 7956 7943 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': 7957 7944 dependencies: 7958 7945 '@babel/core': 7.26.0 7959 - '@babel/helper-plugin-utils': 7.27.1 7946 + '@babel/helper-plugin-utils': 7.25.9 7960 7947 7961 7948 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': 7962 7949 dependencies: 7963 7950 '@babel/core': 7.26.0 7964 - '@babel/helper-plugin-utils': 7.27.1 7951 + '@babel/helper-plugin-utils': 7.25.9 7965 7952 7966 7953 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': 7967 7954 dependencies: 7968 7955 '@babel/core': 7.26.0 7969 - '@babel/helper-plugin-utils': 7.27.1 7956 + '@babel/helper-plugin-utils': 7.25.9 7970 7957 7971 7958 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': 7972 7959 dependencies: 7973 7960 '@babel/core': 7.26.0 7974 - '@babel/helper-plugin-utils': 7.27.1 7961 + '@babel/helper-plugin-utils': 7.25.9 7975 7962 7976 7963 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': 7977 7964 dependencies: 7978 7965 '@babel/core': 7.26.0 7979 - '@babel/helper-plugin-utils': 7.27.1 7966 + '@babel/helper-plugin-utils': 7.25.9 7980 7967 7981 7968 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': 7982 7969 dependencies: 7983 7970 '@babel/core': 7.26.0 7984 - '@babel/helper-plugin-utils': 7.27.1 7971 + '@babel/helper-plugin-utils': 7.25.9 7985 7972 7986 7973 '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': 7987 7974 dependencies: ··· 7996 7983 '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': 7997 7984 dependencies: 7998 7985 '@babel/core': 7.26.0 7999 - '@babel/helper-plugin-utils': 7.27.1 7986 + '@babel/helper-plugin-utils': 7.25.9 8000 7987 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) 8001 7988 '@babel/traverse': 7.26.4 8002 7989 transitivePeerDependencies: ··· 8006 7993 dependencies: 8007 7994 '@babel/core': 7.26.0 8008 7995 '@babel/helper-module-imports': 7.25.9 8009 - '@babel/helper-plugin-utils': 7.27.1 7996 + '@babel/helper-plugin-utils': 7.25.9 8010 7997 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) 8011 7998 transitivePeerDependencies: 8012 7999 - supports-color ··· 8014 8001 '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': 8015 8002 dependencies: 8016 8003 '@babel/core': 7.26.0 8017 - '@babel/helper-plugin-utils': 7.27.1 8004 + '@babel/helper-plugin-utils': 7.25.9 8018 8005 8019 8006 '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': 8020 8007 dependencies: ··· 8039 8026 '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': 8040 8027 dependencies: 8041 8028 '@babel/core': 7.26.0 8042 - '@babel/helper-plugin-utils': 7.27.1 8029 + '@babel/helper-plugin-utils': 7.25.9 8043 8030 '@babel/template': 7.25.9 8044 8031 8045 8032 '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': 8046 8033 dependencies: 8047 8034 '@babel/core': 7.26.0 8048 - '@babel/helper-plugin-utils': 7.27.1 8035 + '@babel/helper-plugin-utils': 7.25.9 8049 8036 8050 8037 '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.26.0)': 8051 8038 dependencies: ··· 8055 8042 '@babel/plugin-transform-flow-strip-types@7.25.9(@babel/core@7.26.0)': 8056 8043 dependencies: 8057 8044 '@babel/core': 7.26.0 8058 - '@babel/helper-plugin-utils': 7.27.1 8045 + '@babel/helper-plugin-utils': 7.25.9 8059 8046 '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.0) 8060 8047 8061 8048 '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': 8062 8049 dependencies: 8063 8050 '@babel/core': 7.26.0 8064 - '@babel/helper-plugin-utils': 7.27.1 8051 + '@babel/helper-plugin-utils': 7.25.9 8065 8052 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 8066 8053 transitivePeerDependencies: 8067 8054 - supports-color ··· 8070 8057 dependencies: 8071 8058 '@babel/core': 7.26.0 8072 8059 '@babel/helper-compilation-targets': 7.25.9 8073 - '@babel/helper-plugin-utils': 7.27.1 8060 + '@babel/helper-plugin-utils': 7.25.9 8074 8061 '@babel/traverse': 7.26.4 8075 8062 transitivePeerDependencies: 8076 8063 - supports-color ··· 8078 8065 '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': 8079 8066 dependencies: 8080 8067 '@babel/core': 7.26.0 8081 - '@babel/helper-plugin-utils': 7.27.1 8068 + '@babel/helper-plugin-utils': 7.25.9 8082 8069 8083 8070 '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': 8084 8071 dependencies: 8085 8072 '@babel/core': 7.26.0 8086 - '@babel/helper-plugin-utils': 7.27.1 8073 + '@babel/helper-plugin-utils': 7.25.9 8087 8074 8088 8075 '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': 8089 8076 dependencies: ··· 8097 8084 dependencies: 8098 8085 '@babel/core': 7.26.0 8099 8086 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) 8100 - '@babel/helper-plugin-utils': 7.27.1 8087 + '@babel/helper-plugin-utils': 7.25.9 8101 8088 8102 8089 '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': 8103 8090 dependencies: ··· 8107 8094 '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': 8108 8095 dependencies: 8109 8096 '@babel/core': 7.26.0 8110 - '@babel/helper-plugin-utils': 7.27.1 8097 + '@babel/helper-plugin-utils': 7.25.9 8111 8098 8112 8099 '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': 8113 8100 dependencies: 8114 8101 '@babel/core': 7.26.0 8115 8102 '@babel/helper-compilation-targets': 7.25.9 8116 - '@babel/helper-plugin-utils': 7.27.1 8103 + '@babel/helper-plugin-utils': 7.25.9 8117 8104 '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) 8118 8105 8119 8106 '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': 8120 8107 dependencies: 8121 8108 '@babel/core': 7.26.0 8122 - '@babel/helper-plugin-utils': 7.27.1 8109 + '@babel/helper-plugin-utils': 7.25.9 8123 8110 8124 8111 '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': 8125 8112 dependencies: ··· 8132 8119 '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': 8133 8120 dependencies: 8134 8121 '@babel/core': 7.26.0 8135 - '@babel/helper-plugin-utils': 7.27.1 8122 + '@babel/helper-plugin-utils': 7.25.9 8136 8123 8137 8124 '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': 8138 8125 dependencies: 8139 8126 '@babel/core': 7.26.0 8140 8127 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) 8141 - '@babel/helper-plugin-utils': 7.27.1 8128 + '@babel/helper-plugin-utils': 7.25.9 8142 8129 transitivePeerDependencies: 8143 8130 - supports-color 8144 8131 ··· 8147 8134 '@babel/core': 7.26.0 8148 8135 '@babel/helper-annotate-as-pure': 7.25.9 8149 8136 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) 8150 - '@babel/helper-plugin-utils': 7.27.1 8137 + '@babel/helper-plugin-utils': 7.25.9 8151 8138 transitivePeerDependencies: 8152 8139 - supports-color 8153 8140 8154 8141 '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': 8155 8142 dependencies: 8156 8143 '@babel/core': 7.26.0 8157 - '@babel/helper-plugin-utils': 7.27.1 8144 + '@babel/helper-plugin-utils': 7.25.9 8158 8145 8159 8146 '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': 8160 8147 dependencies: ··· 8166 8153 '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': 8167 8154 dependencies: 8168 8155 '@babel/core': 7.26.0 8169 - '@babel/helper-plugin-utils': 7.27.1 8156 + '@babel/helper-plugin-utils': 7.25.9 8170 8157 8171 8158 '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': 8172 8159 dependencies: 8173 8160 '@babel/core': 7.26.0 8174 - '@babel/helper-plugin-utils': 7.27.1 8161 + '@babel/helper-plugin-utils': 7.25.9 8175 8162 8176 8163 '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': 8177 8164 dependencies: 8178 8165 '@babel/core': 7.26.0 8179 8166 '@babel/helper-annotate-as-pure': 7.25.9 8180 8167 '@babel/helper-module-imports': 7.25.9 8181 - '@babel/helper-plugin-utils': 7.27.1 8168 + '@babel/helper-plugin-utils': 7.25.9 8182 8169 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) 8183 8170 '@babel/types': 7.26.3 8184 8171 transitivePeerDependencies: ··· 8188 8175 dependencies: 8189 8176 '@babel/core': 7.26.0 8190 8177 '@babel/helper-annotate-as-pure': 7.25.9 8191 - '@babel/helper-plugin-utils': 7.27.1 8178 + '@babel/helper-plugin-utils': 7.25.9 8192 8179 8193 8180 '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': 8194 8181 dependencies: 8195 8182 '@babel/core': 7.26.0 8196 - '@babel/helper-plugin-utils': 7.27.1 8183 + '@babel/helper-plugin-utils': 7.25.9 8197 8184 regenerator-transform: 0.15.2 8198 8185 8199 8186 '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)': 8200 8187 dependencies: 8201 8188 '@babel/core': 7.26.0 8202 8189 '@babel/helper-module-imports': 7.25.9 8203 - '@babel/helper-plugin-utils': 7.27.1 8190 + '@babel/helper-plugin-utils': 7.25.9 8204 8191 babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) 8205 8192 babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) 8206 8193 babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) ··· 8216 8203 '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': 8217 8204 dependencies: 8218 8205 '@babel/core': 7.26.0 8219 - '@babel/helper-plugin-utils': 7.27.1 8206 + '@babel/helper-plugin-utils': 7.25.9 8220 8207 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 8221 8208 transitivePeerDependencies: 8222 8209 - supports-color ··· 8224 8211 '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': 8225 8212 dependencies: 8226 8213 '@babel/core': 7.26.0 8227 - '@babel/helper-plugin-utils': 7.27.1 8214 + '@babel/helper-plugin-utils': 7.25.9 8228 8215 8229 8216 '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': 8230 8217 dependencies: ··· 8251 8238 '@babel/preset-react@7.26.3(@babel/core@7.26.0)': 8252 8239 dependencies: 8253 8240 '@babel/core': 7.26.0 8254 - '@babel/helper-plugin-utils': 7.27.1 8241 + '@babel/helper-plugin-utils': 7.25.9 8255 8242 '@babel/helper-validator-option': 7.25.9 8256 8243 '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) 8257 8244 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) ··· 8298 8285 '@babel/helper-string-parser': 7.25.9 8299 8286 '@babel/helper-validator-identifier': 7.25.9 8300 8287 8301 - '@braintree/sanitize-url@7.1.1': {} 8288 + '@braintree/sanitize-url@7.1.0': {} 8302 8289 8303 8290 '@cbor-extract/cbor-extract-darwin-arm64@2.2.0': 8304 8291 optional: true ··· 8352 8339 '@esbuild/aix-ppc64@0.23.1': 8353 8340 optional: true 8354 8341 8355 - '@esbuild/aix-ppc64@0.24.2': 8342 + '@esbuild/aix-ppc64@0.24.0': 8356 8343 optional: true 8357 8344 8358 8345 '@esbuild/android-arm64@0.18.20': ··· 8364 8351 '@esbuild/android-arm64@0.23.1': 8365 8352 optional: true 8366 8353 8367 - '@esbuild/android-arm64@0.24.2': 8354 + '@esbuild/android-arm64@0.24.0': 8368 8355 optional: true 8369 8356 8370 8357 '@esbuild/android-arm@0.18.20': ··· 8376 8363 '@esbuild/android-arm@0.23.1': 8377 8364 optional: true 8378 8365 8379 - '@esbuild/android-arm@0.24.2': 8366 + '@esbuild/android-arm@0.24.0': 8380 8367 optional: true 8381 8368 8382 8369 '@esbuild/android-x64@0.18.20': ··· 8388 8375 '@esbuild/android-x64@0.23.1': 8389 8376 optional: true 8390 8377 8391 - '@esbuild/android-x64@0.24.2': 8378 + '@esbuild/android-x64@0.24.0': 8392 8379 optional: true 8393 8380 8394 8381 '@esbuild/darwin-arm64@0.18.20': ··· 8400 8387 '@esbuild/darwin-arm64@0.23.1': 8401 8388 optional: true 8402 8389 8403 - '@esbuild/darwin-arm64@0.24.2': 8390 + '@esbuild/darwin-arm64@0.24.0': 8404 8391 optional: true 8405 8392 8406 8393 '@esbuild/darwin-x64@0.18.20': ··· 8412 8399 '@esbuild/darwin-x64@0.23.1': 8413 8400 optional: true 8414 8401 8415 - '@esbuild/darwin-x64@0.24.2': 8402 + '@esbuild/darwin-x64@0.24.0': 8416 8403 optional: true 8417 8404 8418 8405 '@esbuild/freebsd-arm64@0.18.20': ··· 8424 8411 '@esbuild/freebsd-arm64@0.23.1': 8425 8412 optional: true 8426 8413 8427 - '@esbuild/freebsd-arm64@0.24.2': 8414 + '@esbuild/freebsd-arm64@0.24.0': 8428 8415 optional: true 8429 8416 8430 8417 '@esbuild/freebsd-x64@0.18.20': ··· 8436 8423 '@esbuild/freebsd-x64@0.23.1': 8437 8424 optional: true 8438 8425 8439 - '@esbuild/freebsd-x64@0.24.2': 8426 + '@esbuild/freebsd-x64@0.24.0': 8440 8427 optional: true 8441 8428 8442 8429 '@esbuild/linux-arm64@0.18.20': ··· 8448 8435 '@esbuild/linux-arm64@0.23.1': 8449 8436 optional: true 8450 8437 8451 - '@esbuild/linux-arm64@0.24.2': 8438 + '@esbuild/linux-arm64@0.24.0': 8452 8439 optional: true 8453 8440 8454 8441 '@esbuild/linux-arm@0.18.20': ··· 8460 8447 '@esbuild/linux-arm@0.23.1': 8461 8448 optional: true 8462 8449 8463 - '@esbuild/linux-arm@0.24.2': 8450 + '@esbuild/linux-arm@0.24.0': 8464 8451 optional: true 8465 8452 8466 8453 '@esbuild/linux-ia32@0.18.20': ··· 8472 8459 '@esbuild/linux-ia32@0.23.1': 8473 8460 optional: true 8474 8461 8475 - '@esbuild/linux-ia32@0.24.2': 8462 + '@esbuild/linux-ia32@0.24.0': 8476 8463 optional: true 8477 8464 8478 8465 '@esbuild/linux-loong64@0.18.20': ··· 8484 8471 '@esbuild/linux-loong64@0.23.1': 8485 8472 optional: true 8486 8473 8487 - '@esbuild/linux-loong64@0.24.2': 8474 + '@esbuild/linux-loong64@0.24.0': 8488 8475 optional: true 8489 8476 8490 8477 '@esbuild/linux-mips64el@0.18.20': ··· 8496 8483 '@esbuild/linux-mips64el@0.23.1': 8497 8484 optional: true 8498 8485 8499 - '@esbuild/linux-mips64el@0.24.2': 8486 + '@esbuild/linux-mips64el@0.24.0': 8500 8487 optional: true 8501 8488 8502 8489 '@esbuild/linux-ppc64@0.18.20': ··· 8508 8495 '@esbuild/linux-ppc64@0.23.1': 8509 8496 optional: true 8510 8497 8511 - '@esbuild/linux-ppc64@0.24.2': 8498 + '@esbuild/linux-ppc64@0.24.0': 8512 8499 optional: true 8513 8500 8514 8501 '@esbuild/linux-riscv64@0.18.20': ··· 8520 8507 '@esbuild/linux-riscv64@0.23.1': 8521 8508 optional: true 8522 8509 8523 - '@esbuild/linux-riscv64@0.24.2': 8510 + '@esbuild/linux-riscv64@0.24.0': 8524 8511 optional: true 8525 8512 8526 8513 '@esbuild/linux-s390x@0.18.20': ··· 8532 8519 '@esbuild/linux-s390x@0.23.1': 8533 8520 optional: true 8534 8521 8535 - '@esbuild/linux-s390x@0.24.2': 8522 + '@esbuild/linux-s390x@0.24.0': 8536 8523 optional: true 8537 8524 8538 8525 '@esbuild/linux-x64@0.18.20': ··· 8544 8531 '@esbuild/linux-x64@0.23.1': 8545 8532 optional: true 8546 8533 8547 - '@esbuild/linux-x64@0.24.2': 8548 - optional: true 8549 - 8550 - '@esbuild/netbsd-arm64@0.24.2': 8534 + '@esbuild/linux-x64@0.24.0': 8551 8535 optional: true 8552 8536 8553 8537 '@esbuild/netbsd-x64@0.18.20': ··· 8559 8543 '@esbuild/netbsd-x64@0.23.1': 8560 8544 optional: true 8561 8545 8562 - '@esbuild/netbsd-x64@0.24.2': 8546 + '@esbuild/netbsd-x64@0.24.0': 8563 8547 optional: true 8564 8548 8565 8549 '@esbuild/openbsd-arm64@0.23.1': 8566 8550 optional: true 8567 8551 8568 - '@esbuild/openbsd-arm64@0.24.2': 8552 + '@esbuild/openbsd-arm64@0.24.0': 8569 8553 optional: true 8570 8554 8571 8555 '@esbuild/openbsd-x64@0.18.20': ··· 8577 8561 '@esbuild/openbsd-x64@0.23.1': 8578 8562 optional: true 8579 8563 8580 - '@esbuild/openbsd-x64@0.24.2': 8564 + '@esbuild/openbsd-x64@0.24.0': 8581 8565 optional: true 8582 8566 8583 8567 '@esbuild/sunos-x64@0.18.20': ··· 8589 8573 '@esbuild/sunos-x64@0.23.1': 8590 8574 optional: true 8591 8575 8592 - '@esbuild/sunos-x64@0.24.2': 8576 + '@esbuild/sunos-x64@0.24.0': 8593 8577 optional: true 8594 8578 8595 8579 '@esbuild/win32-arm64@0.18.20': ··· 8601 8585 '@esbuild/win32-arm64@0.23.1': 8602 8586 optional: true 8603 8587 8604 - '@esbuild/win32-arm64@0.24.2': 8588 + '@esbuild/win32-arm64@0.24.0': 8605 8589 optional: true 8606 8590 8607 8591 '@esbuild/win32-ia32@0.18.20': ··· 8613 8597 '@esbuild/win32-ia32@0.23.1': 8614 8598 optional: true 8615 8599 8616 - '@esbuild/win32-ia32@0.24.2': 8600 + '@esbuild/win32-ia32@0.24.0': 8617 8601 optional: true 8618 8602 8619 8603 '@esbuild/win32-x64@0.18.20': ··· 8625 8609 '@esbuild/win32-x64@0.23.1': 8626 8610 optional: true 8627 8611 8628 - '@esbuild/win32-x64@0.24.2': 8612 + '@esbuild/win32-x64@0.24.0': 8629 8613 optional: true 8630 8614 8631 8615 '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': ··· 8633 8617 eslint: 8.57.1 8634 8618 eslint-visitor-keys: 3.4.3 8635 8619 8620 + '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': 8621 + dependencies: 8622 + eslint: 8.57.1 8623 + eslint-visitor-keys: 3.4.3 8624 + 8636 8625 '@eslint-community/regexpp@4.12.1': {} 8637 8626 8638 8627 '@eslint/eslintrc@2.1.4': ··· 8651 8640 8652 8641 '@eslint/js@8.57.1': {} 8653 8642 8654 - '@expo/cli@0.24.13': 8643 + '@expo/cli@0.24.14': 8655 8644 dependencies: 8656 8645 '@0no-co/graphql.web': 1.0.12 8657 8646 '@babel/runtime': 7.26.0 ··· 8670 8659 '@expo/spawn-async': 1.7.2 8671 8660 '@expo/ws-tunnel': 1.0.6 8672 8661 '@expo/xcpretty': 4.3.2 8673 - '@react-native/dev-middleware': 0.79.2 8662 + '@react-native/dev-middleware': 0.79.3 8674 8663 '@urql/core': 5.1.0 8675 8664 '@urql/exchange-retry': 1.3.0(@urql/core@5.1.0) 8676 8665 accepts: 1.3.8 ··· 8685 8674 debug: 4.4.0 8686 8675 env-editor: 0.4.2 8687 8676 freeport-async: 2.0.0 8688 - getenv: 1.0.0 8677 + getenv: 2.0.0 8689 8678 glob: 10.4.5 8690 - lan-network: 0.1.6 8679 + lan-network: 0.1.7 8691 8680 minimatch: 9.0.5 8692 8681 node-forge: 1.3.1 8693 8682 npm-package-arg: 11.0.3 ··· 8700 8689 qrcode-terminal: 0.11.0 8701 8690 require-from-string: 2.0.2 8702 8691 requireg: 0.2.2 8703 - resolve: 1.22.8 8692 + resolve: 1.22.10 8704 8693 resolve-from: 5.0.0 8705 8694 resolve.exports: 2.0.3 8706 8695 semver: 7.6.3 8707 - send: 0.19.1 8696 + send: 0.19.0 8708 8697 slugify: 1.6.6 8709 8698 source-map-support: 0.5.21 8710 8699 stacktrace-parser: 0.1.10 ··· 8727 8716 8728 8717 '@expo/config-plugins@10.0.2': 8729 8718 dependencies: 8730 - '@expo/config-types': 53.0.3 8719 + '@expo/config-types': 53.0.4 8731 8720 '@expo/json-file': 9.1.4 8732 8721 '@expo/plist': 0.3.4 8733 8722 '@expo/sdk-runtime-versions': 1.0.0 ··· 8744 8733 transitivePeerDependencies: 8745 8734 - supports-color 8746 8735 8747 - '@expo/config-types@53.0.3': {} 8748 - 8749 8736 '@expo/config-types@53.0.4': {} 8750 8737 8751 8738 '@expo/config@11.0.10': ··· 8766 8753 transitivePeerDependencies: 8767 8754 - supports-color 8768 8755 8769 - '@expo/config@11.0.8': 8770 - dependencies: 8771 - '@babel/code-frame': 7.10.4 8772 - '@expo/config-plugins': 10.0.2 8773 - '@expo/config-types': 53.0.3 8774 - '@expo/json-file': 9.1.4 8775 - deepmerge: 4.3.1 8776 - getenv: 1.0.0 8777 - glob: 10.4.5 8778 - require-from-string: 2.0.2 8779 - resolve-from: 5.0.0 8780 - resolve-workspace-root: 2.0.0 8781 - semver: 7.6.3 8782 - slugify: 1.6.6 8783 - sucrase: 3.35.0 8784 - transitivePeerDependencies: 8785 - - supports-color 8786 - 8787 8756 '@expo/devcert@1.1.4': 8788 8757 dependencies: 8789 8758 application-config-path: 0.1.1 ··· 8797 8766 password-prompt: 1.1.3 8798 8767 sudo-prompt: 8.2.5 8799 8768 tmp: 0.0.33 8800 - tslib: 2.8.1 8769 + tslib: 2.6.2 8801 8770 transitivePeerDependencies: 8802 8771 - supports-color 8803 8772 ··· 8811 8780 transitivePeerDependencies: 8812 8781 - supports-color 8813 8782 8814 - '@expo/fingerprint@0.12.4': 8783 + '@expo/fingerprint@0.13.0': 8815 8784 dependencies: 8816 8785 '@expo/spawn-async': 1.7.2 8817 8786 arg: 5.0.2 8818 8787 chalk: 4.1.2 8819 8788 debug: 4.4.0 8820 8789 find-up: 5.0.0 8821 - getenv: 1.0.0 8790 + getenv: 2.0.0 8791 + ignore: 5.3.2 8822 8792 minimatch: 9.0.5 8823 8793 p-limit: 3.1.0 8824 8794 resolve-from: 5.0.0 ··· 8891 8861 base64-js: 1.5.1 8892 8862 xmlbuilder: 15.1.1 8893 8863 8894 - '@expo/prebuild-config@9.0.5': 8895 - dependencies: 8896 - '@expo/config': 11.0.8 8897 - '@expo/config-plugins': 10.0.2 8898 - '@expo/config-types': 53.0.3 8899 - '@expo/image-utils': 0.7.4 8900 - '@expo/json-file': 9.1.4 8901 - '@react-native/normalize-colors': 0.79.2 8902 - debug: 4.4.0 8903 - resolve-from: 5.0.0 8904 - semver: 7.6.3 8905 - xml2js: 0.6.0 8906 - transitivePeerDependencies: 8907 - - supports-color 8908 - 8909 8864 '@expo/prebuild-config@9.0.6': 8910 8865 dependencies: 8911 8866 '@expo/config': 11.0.10 ··· 8936 8891 dependencies: 8937 8892 cross-spawn: 7.0.6 8938 8893 8939 - '@expo/vector-icons@14.1.0(expo-font@13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 8894 + '@expo/vector-icons@14.1.0(expo-font@13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 8940 8895 dependencies: 8941 - expo-font: 13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 8896 + expo-font: 13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 8942 8897 react: 19.0.0 8943 8898 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 8944 8899 8945 - '@expo/vector-icons@14.1.0(expo-font@13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 8900 + '@expo/vector-icons@14.1.0(expo-font@13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 8946 8901 dependencies: 8947 - expo-font: 13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 8902 + expo-font: 13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 8948 8903 react: 19.0.0 8949 8904 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 8950 8905 optional: true ··· 8975 8930 8976 8931 '@floating-ui/utils@0.2.8': {} 8977 8932 8978 - '@gorhom/bottom-sheet@5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 8933 + '@gorhom/bottom-sheet@5.1.6(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 8979 8934 dependencies: 8980 8935 '@gorhom/portal': 1.0.14(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 8981 8936 invariant: 2.2.4 ··· 8988 8943 8989 8944 '@gorhom/portal@1.0.14(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 8990 8945 dependencies: 8991 - nanoid: 3.3.11 8946 + nanoid: 3.3.8 8992 8947 react: 19.0.0 8993 8948 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 8994 8949 8995 - '@hono/node-server@1.13.7(hono@4.6.17)': 8950 + '@hono/node-server@1.13.7(hono@4.6.13)': 8996 8951 dependencies: 8997 - hono: 4.6.17 8952 + hono: 4.6.13 8998 8953 8999 8954 '@humanwhocodes/config-array@0.13.0': 9000 8955 dependencies: ··· 9008 8963 9009 8964 '@humanwhocodes/object-schema@2.0.3': {} 9010 8965 8966 + '@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.5.3)': 8967 + dependencies: 8968 + '@babel/generator': 7.26.3 8969 + '@babel/parser': 7.26.3 8970 + '@babel/traverse': 7.26.4 8971 + '@babel/types': 7.26.3 8972 + prettier: 3.5.3 8973 + semver: 7.6.3 8974 + transitivePeerDependencies: 8975 + - supports-color 8976 + 9011 8977 '@ipld/car@3.2.4': 9012 8978 dependencies: 9013 8979 '@ipld/dag-cbor': 7.0.3 ··· 9052 9018 dependencies: 9053 9019 '@jest/fake-timers': 29.7.0 9054 9020 '@jest/types': 29.6.3 9055 - '@types/node': 20.17.14 9021 + '@types/node': 20.17.10 9056 9022 jest-mock: 29.7.0 9057 9023 9058 9024 '@jest/fake-timers@29.7.0': 9059 9025 dependencies: 9060 9026 '@jest/types': 29.6.3 9061 9027 '@sinonjs/fake-timers': 10.3.0 9062 - '@types/node': 20.17.14 9028 + '@types/node': 20.17.10 9063 9029 jest-message-util: 29.7.0 9064 9030 jest-mock: 29.7.0 9065 9031 jest-util: 29.7.0 ··· 9093 9059 '@jest/schemas': 29.6.3 9094 9060 '@types/istanbul-lib-coverage': 2.0.6 9095 9061 '@types/istanbul-reports': 3.0.4 9096 - '@types/node': 20.17.14 9062 + '@types/node': 20.17.10 9097 9063 '@types/yargs': 17.0.33 9098 9064 chalk: 4.1.2 9099 9065 9100 - '@jridgewell/gen-mapping@0.3.8': 9066 + '@jridgewell/gen-mapping@0.3.5': 9101 9067 dependencies: 9102 9068 '@jridgewell/set-array': 1.2.1 9103 9069 '@jridgewell/sourcemap-codec': 1.5.0 ··· 9109 9075 9110 9076 '@jridgewell/source-map@0.3.6': 9111 9077 dependencies: 9112 - '@jridgewell/gen-mapping': 0.3.8 9078 + '@jridgewell/gen-mapping': 0.3.5 9113 9079 '@jridgewell/trace-mapping': 0.3.25 9114 9080 9115 9081 '@jridgewell/sourcemap-codec@1.5.0': {} ··· 9182 9148 9183 9149 '@neon-rs/load@0.0.4': {} 9184 9150 9185 - '@noble/curves@1.8.1': 9151 + '@noble/curves@1.7.0': 9186 9152 dependencies: 9187 - '@noble/hashes': 1.7.1 9153 + '@noble/hashes': 1.6.0 9188 9154 9189 - '@noble/hashes@1.7.1': {} 9155 + '@noble/hashes@1.6.0': {} 9156 + 9157 + '@noble/hashes@1.6.1': {} 9190 9158 9191 9159 '@nodelib/fs.scandir@2.1.5': 9192 9160 dependencies: ··· 9251 9219 optionalDependencies: 9252 9220 '@types/react': 19.0.14 9253 9221 9254 - '@radix-ui/react-dismissable-layer@1.1.2(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 9222 + '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 9255 9223 dependencies: 9256 9224 '@radix-ui/primitive': 1.1.1 9257 9225 '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.14)(react@19.0.0) ··· 9281 9249 '@types/react': 19.0.14 9282 9250 '@types/react-dom': 18.3.1 9283 9251 9284 - '@radix-ui/react-hover-card@1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 9252 + '@radix-ui/react-hover-card@1.1.4(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 9285 9253 dependencies: 9286 9254 '@radix-ui/primitive': 1.1.1 9287 9255 '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.14)(react@19.0.0) 9288 9256 '@radix-ui/react-context': 1.1.1(@types/react@19.0.14)(react@19.0.0) 9289 - '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9257 + '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9290 9258 '@radix-ui/react-popper': 1.2.1(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9291 9259 '@radix-ui/react-portal': 1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9292 9260 '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) ··· 9305 9273 optionalDependencies: 9306 9274 '@types/react': 19.0.14 9307 9275 9308 - '@radix-ui/react-popover@1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 9276 + '@radix-ui/react-popover@1.1.4(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 9309 9277 dependencies: 9310 9278 '@radix-ui/primitive': 1.1.1 9311 9279 '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.14)(react@19.0.0) 9312 9280 '@radix-ui/react-context': 1.1.1(@types/react@19.0.14)(react@19.0.0) 9313 - '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9281 + '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9314 9282 '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.14)(react@19.0.0) 9315 9283 '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9316 9284 '@radix-ui/react-id': 1.1.0(@types/react@19.0.14)(react@19.0.0) ··· 9323 9291 aria-hidden: 1.2.4 9324 9292 react: 19.0.0 9325 9293 react-dom: 19.0.0(react@19.0.0) 9326 - react-remove-scroll: 2.6.0(@types/react@19.0.14)(react@19.0.0) 9294 + react-remove-scroll: 2.6.2(@types/react@19.0.14)(react@19.0.0) 9327 9295 optionalDependencies: 9328 9296 '@types/react': 19.0.14 9329 9297 '@types/react-dom': 18.3.1 ··· 9399 9367 optionalDependencies: 9400 9368 '@types/react': 19.0.14 9401 9369 9402 - '@radix-ui/react-tooltip@1.1.5(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 9370 + '@radix-ui/react-tooltip@1.1.6(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 9403 9371 dependencies: 9404 9372 '@radix-ui/primitive': 1.1.1 9405 9373 '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.14)(react@19.0.0) 9406 9374 '@radix-ui/react-context': 1.1.1(@types/react@19.0.14)(react@19.0.0) 9407 - '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9375 + '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9408 9376 '@radix-ui/react-id': 1.1.0(@types/react@19.0.14)(react@19.0.0) 9409 9377 '@radix-ui/react-popper': 1.2.1(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9410 9378 '@radix-ui/react-portal': 1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) ··· 9482 9450 9483 9451 '@react-native/assets-registry@0.79.2': {} 9484 9452 9485 - '@react-native/babel-plugin-codegen@0.79.2(@babel/core@7.26.0)': 9453 + '@react-native/babel-plugin-codegen@0.79.3(@babel/core@7.26.0)': 9486 9454 dependencies: 9487 9455 '@babel/traverse': 7.26.4 9488 - '@react-native/codegen': 0.79.2(@babel/core@7.26.0) 9456 + '@react-native/codegen': 0.79.3(@babel/core@7.26.0) 9489 9457 transitivePeerDependencies: 9490 9458 - '@babel/core' 9491 9459 - supports-color 9492 9460 9493 - '@react-native/babel-preset@0.79.2(@babel/core@7.26.0)': 9461 + '@react-native/babel-preset@0.79.3(@babel/core@7.26.0)': 9494 9462 dependencies: 9495 9463 '@babel/core': 7.26.0 9496 9464 '@babel/plugin-proposal-export-default-from': 7.25.9(@babel/core@7.26.0) ··· 9533 9501 '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) 9534 9502 '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) 9535 9503 '@babel/template': 7.25.9 9536 - '@react-native/babel-plugin-codegen': 0.79.2(@babel/core@7.26.0) 9504 + '@react-native/babel-plugin-codegen': 0.79.3(@babel/core@7.26.0) 9537 9505 babel-plugin-syntax-hermes-parser: 0.25.1 9538 9506 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) 9539 9507 react-refresh: 0.14.2 ··· 9549 9517 nullthrows: 1.1.1 9550 9518 yargs: 17.7.2 9551 9519 9520 + '@react-native/codegen@0.79.3(@babel/core@7.26.0)': 9521 + dependencies: 9522 + '@babel/core': 7.26.0 9523 + glob: 7.2.3 9524 + hermes-parser: 0.25.1 9525 + invariant: 2.2.4 9526 + nullthrows: 1.1.1 9527 + yargs: 17.7.2 9528 + 9552 9529 '@react-native/community-cli-plugin@0.79.2': 9553 9530 dependencies: 9554 9531 '@react-native/dev-middleware': 0.79.2 9555 9532 chalk: 4.1.2 9556 9533 debug: 2.6.9 9557 9534 invariant: 2.2.4 9558 - metro: 0.82.2 9559 - metro-config: 0.82.2 9560 - metro-core: 0.82.2 9535 + metro: 0.82.4 9536 + metro-config: 0.82.4 9537 + metro-core: 0.82.4 9561 9538 semver: 7.6.3 9562 9539 transitivePeerDependencies: 9563 9540 - bufferutil ··· 9565 9542 - utf-8-validate 9566 9543 9567 9544 '@react-native/debugger-frontend@0.79.2': {} 9545 + 9546 + '@react-native/debugger-frontend@0.79.3': {} 9568 9547 9569 9548 '@react-native/dev-middleware@0.79.2': 9570 9549 dependencies: ··· 9584 9563 - supports-color 9585 9564 - utf-8-validate 9586 9565 9566 + '@react-native/dev-middleware@0.79.3': 9567 + dependencies: 9568 + '@isaacs/ttlcache': 1.4.1 9569 + '@react-native/debugger-frontend': 0.79.3 9570 + chrome-launcher: 0.15.2 9571 + chromium-edge-launcher: 0.2.0 9572 + connect: 3.7.0 9573 + debug: 2.6.9 9574 + invariant: 2.2.4 9575 + nullthrows: 1.1.1 9576 + open: 7.4.2 9577 + serve-static: 1.16.2 9578 + ws: 6.2.3 9579 + transitivePeerDependencies: 9580 + - bufferutil 9581 + - supports-color 9582 + - utf-8-validate 9583 + 9587 9584 '@react-native/gradle-plugin@0.79.2': {} 9588 9585 9589 9586 '@react-native/js-polyfills@0.79.2': {} ··· 9591 9588 '@react-native/normalize-colors@0.74.88': {} 9592 9589 9593 9590 '@react-native/normalize-colors@0.79.2': {} 9591 + 9592 + '@react-native/normalize-colors@0.79.3': {} 9594 9593 9595 9594 '@react-native/typescript-config@0.76.5': {} 9596 9595 ··· 9603 9602 optionalDependencies: 9604 9603 '@types/react': 19.0.14 9605 9604 9606 - '@react-navigation/bottom-tabs@7.3.11(@react-navigation/native@7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9605 + '@react-navigation/bottom-tabs@7.3.14(@react-navigation/native@7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9607 9606 dependencies: 9608 - '@react-navigation/elements': 2.4.0(@react-navigation/native@7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9609 - '@react-navigation/native': 7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9607 + '@react-navigation/elements': 2.4.3(@react-navigation/native@7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9608 + '@react-navigation/native': 7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9610 9609 color: 4.2.3 9611 9610 react: 19.0.0 9612 9611 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) ··· 9615 9614 transitivePeerDependencies: 9616 9615 - '@react-native-masked-view/masked-view' 9617 9616 9618 - '@react-navigation/core@7.9.1(react@19.0.0)': 9617 + '@react-navigation/core@7.10.0(react@19.0.0)': 9619 9618 dependencies: 9620 - '@react-navigation/routers': 7.3.7 9619 + '@react-navigation/routers': 7.4.0 9621 9620 escape-string-regexp: 4.0.0 9622 9621 nanoid: 3.3.11 9623 9622 query-string: 7.1.3 ··· 9626 9625 use-latest-callback: 0.2.3(react@19.0.0) 9627 9626 use-sync-external-store: 1.5.0(react@19.0.0) 9628 9627 9629 - '@react-navigation/elements@2.4.0(@react-navigation/native@7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9628 + '@react-navigation/elements@2.4.3(@react-navigation/native@7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9630 9629 dependencies: 9631 - '@react-navigation/native': 7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9630 + '@react-navigation/native': 7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9632 9631 color: 4.2.3 9633 9632 react: 19.0.0 9634 9633 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 9635 9634 react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9636 9635 9637 - '@react-navigation/native-stack@7.3.11(@react-navigation/native@7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9636 + '@react-navigation/native-stack@7.3.14(@react-navigation/native@7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9638 9637 dependencies: 9639 - '@react-navigation/elements': 2.4.0(@react-navigation/native@7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9640 - '@react-navigation/native': 7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9638 + '@react-navigation/elements': 2.4.3(@react-navigation/native@7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9639 + '@react-navigation/native': 7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9641 9640 react: 19.0.0 9642 9641 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 9643 9642 react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) ··· 9646 9645 transitivePeerDependencies: 9647 9646 - '@react-native-masked-view/masked-view' 9648 9647 9649 - '@react-navigation/native@7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9648 + '@react-navigation/native@7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9650 9649 dependencies: 9651 - '@react-navigation/core': 7.9.1(react@19.0.0) 9650 + '@react-navigation/core': 7.10.0(react@19.0.0) 9652 9651 escape-string-regexp: 4.0.0 9653 9652 fast-deep-equal: 3.1.3 9654 9653 nanoid: 3.3.11 ··· 9656 9655 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 9657 9656 use-latest-callback: 0.2.3(react@19.0.0) 9658 9657 9659 - '@react-navigation/routers@7.3.7': 9658 + '@react-navigation/routers@7.4.0': 9660 9659 dependencies: 9661 9660 nanoid: 3.3.11 9662 9661 ··· 9678 9677 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 9679 9678 react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9680 9679 9681 - '@rn-primitives/hover-card@1.1.0(@rn-primitives/portal@1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9680 + '@rn-primitives/hover-card@1.1.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9682 9681 dependencies: 9683 - '@radix-ui/react-hover-card': 1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9682 + '@radix-ui/react-hover-card': 1.1.4(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9684 9683 '@rn-primitives/hooks': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9685 - '@rn-primitives/popover': 1.1.0(@rn-primitives/portal@1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9686 - '@rn-primitives/portal': 1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 9684 + '@rn-primitives/popover': 1.1.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9685 + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 9687 9686 '@rn-primitives/slot': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9688 9687 '@rn-primitives/types': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9689 9688 react: 19.0.0 ··· 9695 9694 - '@types/react-dom' 9696 9695 - react-dom 9697 9696 9698 - '@rn-primitives/popover@1.1.0(@rn-primitives/portal@1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9697 + '@rn-primitives/popover@1.1.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9699 9698 dependencies: 9700 - '@radix-ui/react-popover': 1.1.3(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9699 + '@radix-ui/react-popover': 1.1.4(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9701 9700 '@rn-primitives/hooks': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9702 - '@rn-primitives/portal': 1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 9701 + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 9703 9702 '@rn-primitives/slot': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9704 9703 '@rn-primitives/types': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9705 9704 react: 19.0.0 ··· 9711 9710 - '@types/react-dom' 9712 9711 - react-dom 9713 9712 9714 - '@rn-primitives/portal@1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0))': 9713 + '@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0))': 9715 9714 dependencies: 9716 9715 react: 19.0.0 9717 - zustand: 5.0.4(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 9716 + zustand: 5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 9718 9717 optionalDependencies: 9719 9718 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 9720 9719 react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) ··· 9744 9743 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 9745 9744 react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9746 9745 9747 - '@rn-primitives/tooltip@1.1.0(@rn-primitives/portal@1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9746 + '@rn-primitives/tooltip@1.1.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': 9748 9747 dependencies: 9749 - '@radix-ui/react-tooltip': 1.1.5(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9748 + '@radix-ui/react-tooltip': 1.1.6(@types/react-dom@18.3.1)(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9750 9749 '@rn-primitives/hooks': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9751 - '@rn-primitives/portal': 1.2.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 9750 + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) 9752 9751 '@rn-primitives/slot': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9753 9752 '@rn-primitives/types': 1.1.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 9754 9753 react: 19.0.0 ··· 9767 9766 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 9768 9767 react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 9769 9768 9770 - '@rollup/rollup-android-arm-eabi@4.31.0': 9769 + '@rollup/rollup-android-arm-eabi@4.28.1': 9771 9770 optional: true 9772 9771 9773 - '@rollup/rollup-android-arm64@4.31.0': 9772 + '@rollup/rollup-android-arm64@4.28.1': 9774 9773 optional: true 9775 9774 9776 - '@rollup/rollup-darwin-arm64@4.31.0': 9775 + '@rollup/rollup-darwin-arm64@4.28.1': 9777 9776 optional: true 9778 9777 9779 - '@rollup/rollup-darwin-x64@4.31.0': 9778 + '@rollup/rollup-darwin-x64@4.28.1': 9780 9779 optional: true 9781 9780 9782 - '@rollup/rollup-freebsd-arm64@4.31.0': 9781 + '@rollup/rollup-freebsd-arm64@4.28.1': 9783 9782 optional: true 9784 9783 9785 - '@rollup/rollup-freebsd-x64@4.31.0': 9784 + '@rollup/rollup-freebsd-x64@4.28.1': 9786 9785 optional: true 9787 9786 9788 - '@rollup/rollup-linux-arm-gnueabihf@4.31.0': 9787 + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': 9789 9788 optional: true 9790 9789 9791 - '@rollup/rollup-linux-arm-musleabihf@4.31.0': 9790 + '@rollup/rollup-linux-arm-musleabihf@4.28.1': 9792 9791 optional: true 9793 9792 9794 - '@rollup/rollup-linux-arm64-gnu@4.31.0': 9793 + '@rollup/rollup-linux-arm64-gnu@4.28.1': 9795 9794 optional: true 9796 9795 9797 - '@rollup/rollup-linux-arm64-musl@4.31.0': 9796 + '@rollup/rollup-linux-arm64-musl@4.28.1': 9798 9797 optional: true 9799 9798 9800 - '@rollup/rollup-linux-loongarch64-gnu@4.31.0': 9799 + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': 9801 9800 optional: true 9802 9801 9803 - '@rollup/rollup-linux-powerpc64le-gnu@4.31.0': 9802 + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': 9804 9803 optional: true 9805 9804 9806 - '@rollup/rollup-linux-riscv64-gnu@4.31.0': 9805 + '@rollup/rollup-linux-riscv64-gnu@4.28.1': 9807 9806 optional: true 9808 9807 9809 - '@rollup/rollup-linux-s390x-gnu@4.31.0': 9808 + '@rollup/rollup-linux-s390x-gnu@4.28.1': 9810 9809 optional: true 9811 9810 9812 - '@rollup/rollup-linux-x64-gnu@4.31.0': 9811 + '@rollup/rollup-linux-x64-gnu@4.28.1': 9813 9812 optional: true 9814 9813 9815 - '@rollup/rollup-linux-x64-musl@4.31.0': 9814 + '@rollup/rollup-linux-x64-musl@4.28.1': 9816 9815 optional: true 9817 9816 9818 - '@rollup/rollup-win32-arm64-msvc@4.31.0': 9817 + '@rollup/rollup-win32-arm64-msvc@4.28.1': 9819 9818 optional: true 9820 9819 9821 - '@rollup/rollup-win32-ia32-msvc@4.31.0': 9820 + '@rollup/rollup-win32-ia32-msvc@4.28.1': 9822 9821 optional: true 9823 9822 9824 - '@rollup/rollup-win32-x64-msvc@4.31.0': 9823 + '@rollup/rollup-win32-x64-msvc@4.28.1': 9825 9824 optional: true 9826 9825 9827 9826 '@rtsao/scc@1.1.0': {} ··· 9892 9891 9893 9892 '@types/graceful-fs@4.1.9': 9894 9893 dependencies: 9895 - '@types/node': 20.17.14 9894 + '@types/node': 20.17.10 9896 9895 9897 9896 '@types/hammerjs@2.0.46': {} 9898 9897 ··· 9910 9909 9911 9910 '@types/json5@0.0.29': {} 9912 9911 9913 - '@types/node@20.17.14': 9912 + '@types/node@20.17.10': 9913 + dependencies: 9914 + undici-types: 6.19.8 9915 + 9916 + '@types/node@20.17.9': 9914 9917 dependencies: 9915 9918 undici-types: 6.19.8 9916 9919 ··· 9930 9933 9931 9934 '@types/ws@8.5.13': 9932 9935 dependencies: 9933 - '@types/node': 20.17.14 9936 + '@types/node': 20.17.10 9934 9937 9935 9938 '@types/yargs-parser@21.0.3': {} 9936 9939 ··· 9938 9941 dependencies: 9939 9942 '@types/yargs-parser': 21.0.3 9940 9943 9941 - '@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': 9944 + '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': 9942 9945 dependencies: 9943 9946 '@eslint-community/regexpp': 4.12.1 9944 - '@typescript-eslint/parser': 8.31.1(eslint@8.57.1)(typescript@5.8.3) 9945 - '@typescript-eslint/scope-manager': 8.31.1 9946 - '@typescript-eslint/type-utils': 8.31.1(eslint@8.57.1)(typescript@5.8.3) 9947 - '@typescript-eslint/utils': 8.31.1(eslint@8.57.1)(typescript@5.8.3) 9948 - '@typescript-eslint/visitor-keys': 8.31.1 9947 + '@typescript-eslint/parser': 8.19.0(eslint@8.57.1)(typescript@5.8.3) 9948 + '@typescript-eslint/scope-manager': 8.19.0 9949 + '@typescript-eslint/type-utils': 8.19.0(eslint@8.57.1)(typescript@5.8.3) 9950 + '@typescript-eslint/utils': 8.19.0(eslint@8.57.1)(typescript@5.8.3) 9951 + '@typescript-eslint/visitor-keys': 8.19.0 9949 9952 eslint: 8.57.1 9950 9953 graphemer: 1.4.0 9951 9954 ignore: 5.3.2 9952 9955 natural-compare: 1.4.0 9953 - ts-api-utils: 2.1.0(typescript@5.8.3) 9956 + ts-api-utils: 1.4.3(typescript@5.8.3) 9954 9957 typescript: 5.8.3 9955 9958 transitivePeerDependencies: 9956 9959 - supports-color 9957 9960 9958 - '@typescript-eslint/parser@8.31.1(eslint@8.57.1)(typescript@5.8.3)': 9961 + '@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.8.3)': 9959 9962 dependencies: 9960 - '@typescript-eslint/scope-manager': 8.31.1 9961 - '@typescript-eslint/types': 8.31.1 9962 - '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) 9963 - '@typescript-eslint/visitor-keys': 8.31.1 9963 + '@typescript-eslint/scope-manager': 8.19.0 9964 + '@typescript-eslint/types': 8.19.0 9965 + '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.3) 9966 + '@typescript-eslint/visitor-keys': 8.19.0 9964 9967 debug: 4.4.0 9965 9968 eslint: 8.57.1 9966 9969 typescript: 5.8.3 9967 9970 transitivePeerDependencies: 9968 9971 - supports-color 9969 9972 9970 - '@typescript-eslint/scope-manager@8.31.1': 9973 + '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': 9974 + dependencies: 9975 + '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) 9976 + '@typescript-eslint/types': 8.33.1 9977 + debug: 4.4.0 9978 + typescript: 5.8.3 9979 + transitivePeerDependencies: 9980 + - supports-color 9981 + 9982 + '@typescript-eslint/scope-manager@8.19.0': 9971 9983 dependencies: 9972 - '@typescript-eslint/types': 8.31.1 9973 - '@typescript-eslint/visitor-keys': 8.31.1 9984 + '@typescript-eslint/types': 8.19.0 9985 + '@typescript-eslint/visitor-keys': 8.19.0 9974 9986 9975 - '@typescript-eslint/type-utils@8.31.1(eslint@8.57.1)(typescript@5.8.3)': 9987 + '@typescript-eslint/scope-manager@8.33.1': 9976 9988 dependencies: 9977 - '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) 9978 - '@typescript-eslint/utils': 8.31.1(eslint@8.57.1)(typescript@5.8.3) 9989 + '@typescript-eslint/types': 8.33.1 9990 + '@typescript-eslint/visitor-keys': 8.33.1 9991 + 9992 + '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': 9993 + dependencies: 9994 + typescript: 5.8.3 9995 + 9996 + '@typescript-eslint/type-utils@8.19.0(eslint@8.57.1)(typescript@5.8.3)': 9997 + dependencies: 9998 + '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.3) 9999 + '@typescript-eslint/utils': 8.19.0(eslint@8.57.1)(typescript@5.8.3) 9979 10000 debug: 4.4.0 9980 10001 eslint: 8.57.1 9981 - ts-api-utils: 2.1.0(typescript@5.8.3) 10002 + ts-api-utils: 1.4.3(typescript@5.8.3) 9982 10003 typescript: 5.8.3 9983 10004 transitivePeerDependencies: 9984 10005 - supports-color 9985 10006 9986 - '@typescript-eslint/types@8.31.1': {} 10007 + '@typescript-eslint/types@8.19.0': {} 10008 + 10009 + '@typescript-eslint/types@8.33.1': {} 10010 + 10011 + '@typescript-eslint/typescript-estree@8.19.0(typescript@5.8.3)': 10012 + dependencies: 10013 + '@typescript-eslint/types': 8.19.0 10014 + '@typescript-eslint/visitor-keys': 8.19.0 10015 + debug: 4.4.0 10016 + fast-glob: 3.3.2 10017 + is-glob: 4.0.3 10018 + minimatch: 9.0.5 10019 + semver: 7.6.3 10020 + ts-api-utils: 1.4.3(typescript@5.8.3) 10021 + typescript: 5.8.3 10022 + transitivePeerDependencies: 10023 + - supports-color 9987 10024 9988 - '@typescript-eslint/typescript-estree@8.31.1(typescript@5.8.3)': 10025 + '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': 9989 10026 dependencies: 9990 - '@typescript-eslint/types': 8.31.1 9991 - '@typescript-eslint/visitor-keys': 8.31.1 10027 + '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) 10028 + '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) 10029 + '@typescript-eslint/types': 8.33.1 10030 + '@typescript-eslint/visitor-keys': 8.33.1 9992 10031 debug: 4.4.0 9993 10032 fast-glob: 3.3.2 9994 10033 is-glob: 4.0.3 ··· 9999 10038 transitivePeerDependencies: 10000 10039 - supports-color 10001 10040 10002 - '@typescript-eslint/utils@8.31.1(eslint@8.57.1)(typescript@5.8.3)': 10041 + '@typescript-eslint/utils@8.19.0(eslint@8.57.1)(typescript@5.8.3)': 10003 10042 dependencies: 10004 10043 '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) 10005 - '@typescript-eslint/scope-manager': 8.31.1 10006 - '@typescript-eslint/types': 8.31.1 10007 - '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) 10044 + '@typescript-eslint/scope-manager': 8.19.0 10045 + '@typescript-eslint/types': 8.19.0 10046 + '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.3) 10008 10047 eslint: 8.57.1 10009 10048 typescript: 5.8.3 10010 10049 transitivePeerDependencies: 10011 10050 - supports-color 10012 10051 10013 - '@typescript-eslint/visitor-keys@8.31.1': 10052 + '@typescript-eslint/utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': 10014 10053 dependencies: 10015 - '@typescript-eslint/types': 8.31.1 10054 + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) 10055 + '@typescript-eslint/scope-manager': 8.33.1 10056 + '@typescript-eslint/types': 8.33.1 10057 + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) 10058 + eslint: 8.57.1 10059 + typescript: 5.8.3 10060 + transitivePeerDependencies: 10061 + - supports-color 10062 + 10063 + '@typescript-eslint/visitor-keys@8.19.0': 10064 + dependencies: 10065 + '@typescript-eslint/types': 8.19.0 10066 + eslint-visitor-keys: 4.2.0 10067 + 10068 + '@typescript-eslint/visitor-keys@8.33.1': 10069 + dependencies: 10070 + '@typescript-eslint/types': 8.33.1 10016 10071 eslint-visitor-keys: 4.2.0 10017 10072 10018 10073 '@ungap/structured-clone@1.2.1': {} ··· 10221 10276 10222 10277 aria-hidden@1.2.4: 10223 10278 dependencies: 10224 - tslib: 2.8.1 10225 - 10226 - array-buffer-byte-length@1.0.1: 10227 - dependencies: 10228 - call-bind: 1.0.8 10229 - is-array-buffer: 3.0.4 10279 + tslib: 2.6.2 10230 10280 10231 10281 array-buffer-byte-length@1.0.2: 10232 10282 dependencies: 10233 - call-bound: 1.0.4 10283 + call-bound: 1.0.3 10234 10284 is-array-buffer: 3.0.5 10235 10285 10236 10286 array-flatten@1.1.1: {} ··· 10239 10289 dependencies: 10240 10290 call-bind: 1.0.8 10241 10291 define-properties: 1.2.1 10242 - es-abstract: 1.23.5 10292 + es-abstract: 1.23.8 10243 10293 es-object-atoms: 1.0.0 10244 10294 get-intrinsic: 1.2.6 10245 - is-string: 1.1.0 10295 + is-string: 1.1.1 10246 10296 10247 10297 array-timsort@1.0.3: {} 10248 10298 ··· 10250 10300 dependencies: 10251 10301 call-bind: 1.0.8 10252 10302 define-properties: 1.2.1 10253 - es-abstract: 1.23.5 10303 + es-abstract: 1.23.8 10254 10304 es-errors: 1.3.0 10255 10305 es-object-atoms: 1.0.0 10256 10306 es-shim-unscopables: 1.0.2 ··· 10259 10309 dependencies: 10260 10310 call-bind: 1.0.8 10261 10311 define-properties: 1.2.1 10262 - es-abstract: 1.23.5 10312 + es-abstract: 1.23.8 10263 10313 es-errors: 1.3.0 10264 10314 es-object-atoms: 1.0.0 10265 10315 es-shim-unscopables: 1.0.2 10266 10316 10267 - array.prototype.flat@1.3.2: 10317 + array.prototype.flat@1.3.3: 10268 10318 dependencies: 10269 10319 call-bind: 1.0.8 10270 10320 define-properties: 1.2.1 10271 - es-abstract: 1.23.5 10272 - es-shim-unscopables: 1.0.2 10273 - 10274 - array.prototype.flatmap@1.3.2: 10275 - dependencies: 10276 - call-bind: 1.0.8 10277 - define-properties: 1.2.1 10278 - es-abstract: 1.23.5 10321 + es-abstract: 1.23.8 10279 10322 es-shim-unscopables: 1.0.2 10280 10323 10281 10324 array.prototype.flatmap@1.3.3: 10282 10325 dependencies: 10283 10326 call-bind: 1.0.8 10284 10327 define-properties: 1.2.1 10285 - es-abstract: 1.23.5 10328 + es-abstract: 1.23.8 10286 10329 es-shim-unscopables: 1.0.2 10287 10330 10288 10331 array.prototype.tosorted@1.1.4: 10289 10332 dependencies: 10290 10333 call-bind: 1.0.8 10291 10334 define-properties: 1.2.1 10292 - es-abstract: 1.23.5 10335 + es-abstract: 1.23.8 10293 10336 es-errors: 1.3.0 10294 10337 es-shim-unscopables: 1.0.2 10295 10338 10296 - arraybuffer.prototype.slice@1.0.3: 10297 - dependencies: 10298 - array-buffer-byte-length: 1.0.1 10299 - call-bind: 1.0.8 10300 - define-properties: 1.2.1 10301 - es-abstract: 1.23.5 10302 - es-errors: 1.3.0 10303 - get-intrinsic: 1.2.6 10304 - is-array-buffer: 3.0.4 10305 - is-shared-array-buffer: 1.0.3 10306 - 10307 10339 arraybuffer.prototype.slice@1.0.4: 10308 10340 dependencies: 10309 10341 array-buffer-byte-length: 1.0.2 10310 10342 call-bind: 1.0.8 10311 10343 define-properties: 1.2.1 10312 - es-abstract: 1.23.9 10344 + es-abstract: 1.23.8 10313 10345 es-errors: 1.3.0 10314 - get-intrinsic: 1.3.0 10346 + get-intrinsic: 1.2.6 10315 10347 is-array-buffer: 3.0.5 10316 10348 10317 10349 asap@2.0.6: {} ··· 10338 10370 10339 10371 aws4@1.13.2: {} 10340 10372 10373 + axios@0.27.2: 10374 + dependencies: 10375 + follow-redirects: 1.15.9 10376 + form-data: 4.0.1 10377 + transitivePeerDependencies: 10378 + - debug 10379 + 10341 10380 babel-jest@29.7.0(@babel/core@7.26.0): 10342 10381 dependencies: 10343 10382 '@babel/core': 7.26.0 ··· 10374 10413 glob: 9.3.5 10375 10414 pkg-up: 3.1.0 10376 10415 reselect: 4.1.8 10377 - resolve: 1.22.8 10416 + resolve: 1.22.10 10378 10417 10379 10418 babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): 10380 10419 dependencies: ··· 10435 10474 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) 10436 10475 '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) 10437 10476 10438 - babel-preset-expo@13.1.11(@babel/core@7.26.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206): 10477 + babel-preset-expo@13.2.0(@babel/core@7.26.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206): 10439 10478 dependencies: 10440 10479 '@babel/helper-module-imports': 7.25.9 10441 10480 '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) ··· 10451 10490 '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) 10452 10491 '@babel/preset-react': 7.26.3(@babel/core@7.26.0) 10453 10492 '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) 10454 - '@react-native/babel-preset': 0.79.2(@babel/core@7.26.0) 10493 + '@react-native/babel-preset': 0.79.3(@babel/core@7.26.0) 10455 10494 babel-plugin-react-native-web: 0.19.13 10456 10495 babel-plugin-syntax-hermes-parser: 0.25.1 10457 10496 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) ··· 10548 10587 10549 10588 browserslist@4.24.3: 10550 10589 dependencies: 10551 - caniuse-lite: 1.0.30001688 10552 - electron-to-chromium: 1.5.73 10590 + caniuse-lite: 1.0.30001690 10591 + electron-to-chromium: 1.5.76 10553 10592 node-releases: 2.0.19 10554 10593 update-browserslist-db: 1.1.1(browserslist@4.24.3) 10555 10594 ··· 10569 10608 base64-js: 1.5.1 10570 10609 ieee754: 1.2.1 10571 10610 10572 - bundle-require@5.1.0(esbuild@0.24.2): 10611 + bundle-require@5.0.0(esbuild@0.24.0): 10573 10612 dependencies: 10574 - esbuild: 0.24.2 10613 + esbuild: 0.24.0 10575 10614 load-tsconfig: 0.2.5 10576 10615 10577 10616 bytes@3.1.2: {} ··· 10583 10622 es-errors: 1.3.0 10584 10623 function-bind: 1.1.2 10585 10624 10586 - call-bind-apply-helpers@1.0.2: 10587 - dependencies: 10588 - es-errors: 1.3.0 10589 - function-bind: 1.1.2 10590 - 10591 10625 call-bind@1.0.8: 10592 10626 dependencies: 10593 10627 call-bind-apply-helpers: 1.0.1 ··· 10595 10629 get-intrinsic: 1.2.6 10596 10630 set-function-length: 1.2.2 10597 10631 10598 - call-bound@1.0.2: 10632 + call-bound@1.0.3: 10599 10633 dependencies: 10600 - call-bind: 1.0.8 10634 + call-bind-apply-helpers: 1.0.1 10601 10635 get-intrinsic: 1.2.6 10602 10636 10603 - call-bound@1.0.4: 10604 - dependencies: 10605 - call-bind-apply-helpers: 1.0.2 10606 - get-intrinsic: 1.3.0 10607 - 10608 10637 caller-callsite@2.0.0: 10609 10638 dependencies: 10610 10639 callsites: 2.0.0 ··· 10623 10652 10624 10653 camelcase@6.3.0: {} 10625 10654 10626 - caniuse-lite@1.0.30001688: {} 10655 + caniuse-lite@1.0.30001690: {} 10627 10656 10628 10657 caseless@0.12.0: {} 10629 10658 ··· 10676 10705 optionalDependencies: 10677 10706 fsevents: 2.3.3 10678 10707 10679 - chokidar@4.0.3: 10708 + chokidar@4.0.1: 10680 10709 dependencies: 10681 - readdirp: 4.1.1 10710 + readdirp: 4.0.2 10682 10711 10683 10712 chownr@3.0.0: {} 10684 10713 10685 10714 chrome-launcher@0.15.2: 10686 10715 dependencies: 10687 - '@types/node': 20.17.14 10716 + '@types/node': 20.17.10 10688 10717 escape-string-regexp: 4.0.0 10689 10718 is-wsl: 2.2.0 10690 10719 lighthouse-logger: 1.4.2 ··· 10695 10724 10696 10725 chromium-edge-launcher@0.2.0: 10697 10726 dependencies: 10698 - '@types/node': 20.17.14 10727 + '@types/node': 20.17.10 10699 10728 escape-string-regexp: 4.0.0 10700 10729 is-wsl: 2.2.0 10701 10730 lighthouse-logger: 1.4.2 ··· 10792 10821 10793 10822 compressible@2.0.18: 10794 10823 dependencies: 10795 - mime-db: 1.53.0 10824 + mime-db: 1.52.0 10796 10825 10797 10826 compression@1.7.5: 10798 10827 dependencies: ··· 10817 10846 transitivePeerDependencies: 10818 10847 - supports-color 10819 10848 10820 - consola@3.4.0: {} 10849 + consola@3.2.3: {} 10821 10850 10822 10851 content-disposition@0.5.4: 10823 10852 dependencies: ··· 10852 10881 10853 10882 create-require@1.1.1: {} 10854 10883 10855 - cross-fetch@3.1.8: 10884 + cross-fetch@3.2.0: 10856 10885 dependencies: 10857 10886 node-fetch: 2.7.0 10858 10887 transitivePeerDependencies: ··· 10897 10926 10898 10927 data-uri-to-buffer@4.0.1: {} 10899 10928 10900 - data-view-buffer@1.0.1: 10901 - dependencies: 10902 - call-bind: 1.0.8 10903 - es-errors: 1.3.0 10904 - is-data-view: 1.0.2 10905 - 10906 10929 data-view-buffer@1.0.2: 10907 10930 dependencies: 10908 - call-bound: 1.0.4 10909 - es-errors: 1.3.0 10910 - is-data-view: 1.0.2 10911 - 10912 - data-view-byte-length@1.0.1: 10913 - dependencies: 10914 - call-bind: 1.0.8 10931 + call-bound: 1.0.3 10915 10932 es-errors: 1.3.0 10916 10933 is-data-view: 1.0.2 10917 10934 10918 10935 data-view-byte-length@1.0.2: 10919 10936 dependencies: 10920 - call-bound: 1.0.4 10921 - es-errors: 1.3.0 10922 - is-data-view: 1.0.2 10923 - 10924 - data-view-byte-offset@1.0.0: 10925 - dependencies: 10926 - call-bind: 1.0.8 10937 + call-bound: 1.0.3 10927 10938 es-errors: 1.3.0 10928 10939 is-data-view: 1.0.2 10929 10940 10930 10941 data-view-byte-offset@1.0.1: 10931 10942 dependencies: 10932 - call-bound: 1.0.4 10943 + call-bound: 1.0.3 10933 10944 es-errors: 1.3.0 10934 10945 is-data-view: 1.0.2 10935 10946 ··· 11032 11043 11033 11044 dotenv@16.4.7: {} 11034 11045 11035 - drizzle-kit@0.30.2: 11046 + drizzle-kit@0.30.1: 11036 11047 dependencies: 11037 11048 '@drizzle-team/brocli': 0.10.2 11038 11049 '@esbuild-kit/esm-loader': 2.6.5 ··· 11041 11052 transitivePeerDependencies: 11042 11053 - supports-color 11043 11054 11044 - drizzle-orm@0.38.4(@libsql/client@0.14.0)(@types/react@19.0.14)(expo-sqlite@15.2.9(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(postgres@3.4.5)(react@19.0.0): 11055 + drizzle-orm@0.38.3(@libsql/client@0.14.0)(@types/react@19.0.14)(expo-sqlite@15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(postgres@3.4.7)(react@19.0.0): 11045 11056 optionalDependencies: 11046 11057 '@libsql/client': 0.14.0 11047 11058 '@types/react': 19.0.14 11048 - expo-sqlite: 15.2.9(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11049 - postgres: 3.4.5 11059 + expo-sqlite: 15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11060 + postgres: 3.4.7 11050 11061 react: 19.0.0 11051 11062 11052 11063 dunder-proto@1.0.0: ··· 11079 11090 11080 11091 ee-first@1.1.1: {} 11081 11092 11082 - electron-to-chromium@1.5.73: {} 11093 + electron-to-chromium@1.5.76: {} 11083 11094 11084 11095 emoji-regex@8.0.0: {} 11085 11096 ··· 11095 11106 dependencies: 11096 11107 once: 1.4.0 11097 11108 11098 - enhanced-resolve@5.17.1: 11109 + enhanced-resolve@5.18.0: 11099 11110 dependencies: 11100 11111 graceful-fs: 4.2.11 11101 11112 tapable: 2.2.1 ··· 11118 11129 dependencies: 11119 11130 stackframe: 1.3.4 11120 11131 11121 - es-abstract@1.23.5: 11122 - dependencies: 11123 - array-buffer-byte-length: 1.0.1 11124 - arraybuffer.prototype.slice: 1.0.3 11125 - available-typed-arrays: 1.0.7 11126 - call-bind: 1.0.8 11127 - data-view-buffer: 1.0.1 11128 - data-view-byte-length: 1.0.1 11129 - data-view-byte-offset: 1.0.0 11130 - es-define-property: 1.0.1 11131 - es-errors: 1.3.0 11132 - es-object-atoms: 1.0.0 11133 - es-set-tostringtag: 2.0.3 11134 - es-to-primitive: 1.3.0 11135 - function.prototype.name: 1.1.6 11136 - get-intrinsic: 1.2.6 11137 - get-symbol-description: 1.0.2 11138 - globalthis: 1.0.4 11139 - gopd: 1.2.0 11140 - has-property-descriptors: 1.0.2 11141 - has-proto: 1.2.0 11142 - has-symbols: 1.1.0 11143 - hasown: 2.0.2 11144 - internal-slot: 1.1.0 11145 - is-array-buffer: 3.0.4 11146 - is-callable: 1.2.7 11147 - is-data-view: 1.0.2 11148 - is-negative-zero: 2.0.3 11149 - is-regex: 1.2.1 11150 - is-shared-array-buffer: 1.0.3 11151 - is-string: 1.1.0 11152 - is-typed-array: 1.1.13 11153 - is-weakref: 1.1.0 11154 - object-inspect: 1.13.3 11155 - object-keys: 1.1.1 11156 - object.assign: 4.1.5 11157 - regexp.prototype.flags: 1.5.3 11158 - safe-array-concat: 1.1.3 11159 - safe-regex-test: 1.1.0 11160 - string.prototype.trim: 1.2.10 11161 - string.prototype.trimend: 1.0.9 11162 - string.prototype.trimstart: 1.0.8 11163 - typed-array-buffer: 1.0.2 11164 - typed-array-byte-length: 1.0.1 11165 - typed-array-byte-offset: 1.0.3 11166 - typed-array-length: 1.0.7 11167 - unbox-primitive: 1.0.2 11168 - which-typed-array: 1.1.16 11169 - 11170 - es-abstract@1.23.9: 11132 + es-abstract@1.23.8: 11171 11133 dependencies: 11172 11134 array-buffer-byte-length: 1.0.2 11173 11135 arraybuffer.prototype.slice: 1.0.4 11174 11136 available-typed-arrays: 1.0.7 11175 11137 call-bind: 1.0.8 11176 - call-bound: 1.0.4 11138 + call-bound: 1.0.3 11177 11139 data-view-buffer: 1.0.2 11178 11140 data-view-byte-length: 1.0.2 11179 11141 data-view-byte-offset: 1.0.1 11180 11142 es-define-property: 1.0.1 11181 11143 es-errors: 1.3.0 11182 11144 es-object-atoms: 1.0.0 11183 - es-set-tostringtag: 2.1.0 11145 + es-set-tostringtag: 2.0.3 11184 11146 es-to-primitive: 1.3.0 11185 11147 function.prototype.name: 1.1.8 11186 - get-intrinsic: 1.3.0 11187 - get-proto: 1.0.1 11148 + get-intrinsic: 1.2.6 11188 11149 get-symbol-description: 1.1.0 11189 11150 globalthis: 1.0.4 11190 11151 gopd: 1.2.0 ··· 11210 11171 safe-array-concat: 1.1.3 11211 11172 safe-push-apply: 1.0.0 11212 11173 safe-regex-test: 1.1.0 11213 - set-proto: 1.0.0 11214 11174 string.prototype.trim: 1.2.10 11215 11175 string.prototype.trimend: 1.0.9 11216 11176 string.prototype.trimstart: 1.0.8 ··· 11219 11179 typed-array-byte-offset: 1.0.4 11220 11180 typed-array-length: 1.0.7 11221 11181 unbox-primitive: 1.1.0 11222 - which-typed-array: 1.1.19 11182 + which-typed-array: 1.1.18 11223 11183 11224 11184 es-define-property@1.0.1: {} 11225 11185 ··· 11228 11188 es-iterator-helpers@1.2.1: 11229 11189 dependencies: 11230 11190 call-bind: 1.0.8 11231 - call-bound: 1.0.4 11191 + call-bound: 1.0.3 11232 11192 define-properties: 1.2.1 11233 - es-abstract: 1.23.9 11193 + es-abstract: 1.23.8 11234 11194 es-errors: 1.3.0 11235 11195 es-set-tostringtag: 2.0.3 11236 11196 function-bind: 1.1.2 ··· 11244 11204 iterator.prototype: 1.1.4 11245 11205 safe-array-concat: 1.1.3 11246 11206 11247 - es-module-lexer@1.5.4: {} 11207 + es-module-lexer@1.6.0: {} 11248 11208 11249 11209 es-object-atoms@1.0.0: 11250 11210 dependencies: 11251 11211 es-errors: 1.3.0 11252 11212 11253 - es-object-atoms@1.1.1: 11254 - dependencies: 11255 - es-errors: 1.3.0 11256 - 11257 11213 es-set-tostringtag@2.0.3: 11258 11214 dependencies: 11259 11215 get-intrinsic: 1.2.6 11260 - has-tostringtag: 1.0.2 11261 - hasown: 2.0.2 11262 - 11263 - es-set-tostringtag@2.1.0: 11264 - dependencies: 11265 - es-errors: 1.3.0 11266 - get-intrinsic: 1.3.0 11267 11216 has-tostringtag: 1.0.2 11268 11217 hasown: 2.0.2 11269 11218 ··· 11362 11311 '@esbuild/win32-ia32': 0.23.1 11363 11312 '@esbuild/win32-x64': 0.23.1 11364 11313 11365 - esbuild@0.24.2: 11314 + esbuild@0.24.0: 11366 11315 optionalDependencies: 11367 - '@esbuild/aix-ppc64': 0.24.2 11368 - '@esbuild/android-arm': 0.24.2 11369 - '@esbuild/android-arm64': 0.24.2 11370 - '@esbuild/android-x64': 0.24.2 11371 - '@esbuild/darwin-arm64': 0.24.2 11372 - '@esbuild/darwin-x64': 0.24.2 11373 - '@esbuild/freebsd-arm64': 0.24.2 11374 - '@esbuild/freebsd-x64': 0.24.2 11375 - '@esbuild/linux-arm': 0.24.2 11376 - '@esbuild/linux-arm64': 0.24.2 11377 - '@esbuild/linux-ia32': 0.24.2 11378 - '@esbuild/linux-loong64': 0.24.2 11379 - '@esbuild/linux-mips64el': 0.24.2 11380 - '@esbuild/linux-ppc64': 0.24.2 11381 - '@esbuild/linux-riscv64': 0.24.2 11382 - '@esbuild/linux-s390x': 0.24.2 11383 - '@esbuild/linux-x64': 0.24.2 11384 - '@esbuild/netbsd-arm64': 0.24.2 11385 - '@esbuild/netbsd-x64': 0.24.2 11386 - '@esbuild/openbsd-arm64': 0.24.2 11387 - '@esbuild/openbsd-x64': 0.24.2 11388 - '@esbuild/sunos-x64': 0.24.2 11389 - '@esbuild/win32-arm64': 0.24.2 11390 - '@esbuild/win32-ia32': 0.24.2 11391 - '@esbuild/win32-x64': 0.24.2 11316 + '@esbuild/aix-ppc64': 0.24.0 11317 + '@esbuild/android-arm': 0.24.0 11318 + '@esbuild/android-arm64': 0.24.0 11319 + '@esbuild/android-x64': 0.24.0 11320 + '@esbuild/darwin-arm64': 0.24.0 11321 + '@esbuild/darwin-x64': 0.24.0 11322 + '@esbuild/freebsd-arm64': 0.24.0 11323 + '@esbuild/freebsd-x64': 0.24.0 11324 + '@esbuild/linux-arm': 0.24.0 11325 + '@esbuild/linux-arm64': 0.24.0 11326 + '@esbuild/linux-ia32': 0.24.0 11327 + '@esbuild/linux-loong64': 0.24.0 11328 + '@esbuild/linux-mips64el': 0.24.0 11329 + '@esbuild/linux-ppc64': 0.24.0 11330 + '@esbuild/linux-riscv64': 0.24.0 11331 + '@esbuild/linux-s390x': 0.24.0 11332 + '@esbuild/linux-x64': 0.24.0 11333 + '@esbuild/netbsd-x64': 0.24.0 11334 + '@esbuild/openbsd-arm64': 0.24.0 11335 + '@esbuild/openbsd-x64': 0.24.0 11336 + '@esbuild/sunos-x64': 0.24.0 11337 + '@esbuild/win32-arm64': 0.24.0 11338 + '@esbuild/win32-ia32': 0.24.0 11339 + '@esbuild/win32-x64': 0.24.0 11392 11340 11393 11341 escalade@3.2.0: {} 11394 11342 ··· 11402 11350 11403 11351 eslint-config-expo@9.2.0(eslint@8.57.1)(typescript@5.8.3): 11404 11352 dependencies: 11405 - '@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) 11406 - '@typescript-eslint/parser': 8.31.1(eslint@8.57.1)(typescript@5.8.3) 11353 + '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) 11354 + '@typescript-eslint/parser': 8.19.0(eslint@8.57.1)(typescript@5.8.3) 11407 11355 eslint: 8.57.1 11408 11356 eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) 11409 11357 eslint-plugin-expo: 0.1.4(eslint@8.57.1)(typescript@5.8.3) 11410 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.31.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) 11411 - eslint-plugin-react: 7.37.5(eslint@8.57.1) 11358 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) 11359 + eslint-plugin-react: 7.37.3(eslint@8.57.1) 11412 11360 eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) 11413 - globals: 16.0.0 11361 + globals: 16.2.0 11414 11362 transitivePeerDependencies: 11415 11363 - eslint-import-resolver-webpack 11416 11364 - eslint-plugin-import-x ··· 11420 11368 eslint-import-resolver-node@0.3.9: 11421 11369 dependencies: 11422 11370 debug: 3.2.7 11423 - is-core-module: 2.15.1 11424 - resolve: 1.22.8 11371 + is-core-module: 2.16.1 11372 + resolve: 1.22.10 11425 11373 transitivePeerDependencies: 11426 11374 - supports-color 11427 11375 ··· 11429 11377 dependencies: 11430 11378 '@nolyfill/is-core-module': 1.0.39 11431 11379 debug: 4.4.0 11432 - enhanced-resolve: 5.17.1 11380 + enhanced-resolve: 5.18.0 11433 11381 eslint: 8.57.1 11434 11382 fast-glob: 3.3.2 11435 11383 get-tsconfig: 4.8.1 ··· 11437 11385 is-glob: 4.0.3 11438 11386 stable-hash: 0.0.4 11439 11387 optionalDependencies: 11440 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.31.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) 11388 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) 11441 11389 transitivePeerDependencies: 11442 11390 - supports-color 11443 11391 11444 - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.31.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): 11392 + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): 11445 11393 dependencies: 11446 11394 debug: 3.2.7 11447 11395 optionalDependencies: 11448 - '@typescript-eslint/parser': 8.31.1(eslint@8.57.1)(typescript@5.8.3) 11396 + '@typescript-eslint/parser': 8.19.0(eslint@8.57.1)(typescript@5.8.3) 11449 11397 eslint: 8.57.1 11450 11398 eslint-import-resolver-node: 0.3.9 11451 11399 eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) ··· 11454 11402 11455 11403 eslint-plugin-expo@0.1.4(eslint@8.57.1)(typescript@5.8.3): 11456 11404 dependencies: 11457 - '@typescript-eslint/types': 8.31.1 11458 - '@typescript-eslint/utils': 8.31.1(eslint@8.57.1)(typescript@5.8.3) 11405 + '@typescript-eslint/types': 8.33.1 11406 + '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) 11459 11407 eslint: 8.57.1 11460 11408 transitivePeerDependencies: 11461 11409 - supports-color 11462 11410 - typescript 11463 11411 11464 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.31.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): 11412 + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): 11465 11413 dependencies: 11466 11414 '@rtsao/scc': 1.1.0 11467 11415 array-includes: 3.1.8 11468 11416 array.prototype.findlastindex: 1.2.5 11469 - array.prototype.flat: 1.3.2 11470 - array.prototype.flatmap: 1.3.2 11417 + array.prototype.flat: 1.3.3 11418 + array.prototype.flatmap: 1.3.3 11471 11419 debug: 3.2.7 11472 11420 doctrine: 2.1.0 11473 11421 eslint: 8.57.1 11474 11422 eslint-import-resolver-node: 0.3.9 11475 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.31.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) 11423 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) 11476 11424 hasown: 2.0.2 11477 - is-core-module: 2.15.1 11425 + is-core-module: 2.16.1 11478 11426 is-glob: 4.0.3 11479 11427 minimatch: 3.1.2 11480 11428 object.fromentries: 2.0.8 11481 11429 object.groupby: 1.0.3 11482 - object.values: 1.2.0 11430 + object.values: 1.2.1 11483 11431 semver: 6.3.1 11484 11432 string.prototype.trimend: 1.0.9 11485 11433 tsconfig-paths: 3.15.0 11486 11434 optionalDependencies: 11487 - '@typescript-eslint/parser': 8.31.1(eslint@8.57.1)(typescript@5.8.3) 11435 + '@typescript-eslint/parser': 8.19.0(eslint@8.57.1)(typescript@5.8.3) 11488 11436 transitivePeerDependencies: 11489 11437 - eslint-import-resolver-typescript 11490 11438 - eslint-import-resolver-webpack ··· 11497 11445 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.0) 11498 11446 eslint: 8.57.1 11499 11447 hermes-parser: 0.25.1 11500 - zod: 3.24.1 11501 - zod-validation-error: 3.4.0(zod@3.24.1) 11448 + zod: 3.23.8 11449 + zod-validation-error: 3.4.0(zod@3.23.8) 11502 11450 transitivePeerDependencies: 11503 11451 - supports-color 11504 11452 ··· 11506 11454 dependencies: 11507 11455 eslint: 8.57.1 11508 11456 11509 - eslint-plugin-react@7.37.5(eslint@8.57.1): 11457 + eslint-plugin-react@7.37.3(eslint@8.57.1): 11510 11458 dependencies: 11511 11459 array-includes: 3.1.8 11512 11460 array.prototype.findlast: 1.2.5 ··· 11519 11467 hasown: 2.0.2 11520 11468 jsx-ast-utils: 3.3.5 11521 11469 minimatch: 3.1.2 11522 - object.entries: 1.1.9 11470 + object.entries: 1.1.8 11523 11471 object.fromentries: 2.0.8 11524 11472 object.values: 1.2.1 11525 11473 prop-types: 15.8.1 ··· 11621 11569 11622 11570 exit-hook@1.1.1: {} 11623 11571 11624 - expo-asset@11.1.5(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11572 + expo-asset@11.1.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11625 11573 dependencies: 11626 11574 '@expo/image-utils': 0.7.4 11627 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11628 - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11575 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11576 + expo-constants: 17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11629 11577 react: 19.0.0 11630 11578 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11631 11579 transitivePeerDependencies: 11632 11580 - supports-color 11633 11581 11634 - expo-asset@11.1.5(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11582 + expo-asset@11.1.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11635 11583 dependencies: 11636 11584 '@expo/image-utils': 0.7.4 11637 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11638 - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11585 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11586 + expo-constants: 17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11639 11587 react: 19.0.0 11640 11588 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11641 11589 transitivePeerDependencies: 11642 11590 - supports-color 11643 11591 optional: true 11644 11592 11645 - expo-constants@17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11593 + expo-constants@17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11646 11594 dependencies: 11647 11595 '@expo/config': 11.0.10 11648 11596 '@expo/env': 1.0.5 11649 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11597 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11650 11598 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11651 11599 transitivePeerDependencies: 11652 11600 - supports-color 11653 11601 11654 - expo-constants@17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11602 + expo-constants@17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11655 11603 dependencies: 11656 11604 '@expo/config': 11.0.10 11657 11605 '@expo/env': 1.0.5 11658 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11606 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11659 11607 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11660 11608 transitivePeerDependencies: 11661 11609 - supports-color 11662 11610 optional: true 11663 11611 11664 - expo-file-system@18.1.10(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11612 + expo-file-system@18.1.10(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11665 11613 dependencies: 11666 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11614 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11667 11615 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11668 11616 11669 - expo-file-system@18.1.10(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11617 + expo-file-system@18.1.10(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11670 11618 dependencies: 11671 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11619 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11672 11620 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11673 11621 optional: true 11674 11622 11675 - expo-font@13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): 11623 + expo-font@13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): 11676 11624 dependencies: 11677 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11625 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11678 11626 fontfaceobserver: 2.3.0 11679 11627 react: 19.0.0 11680 11628 11681 - expo-font@13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): 11629 + expo-font@13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): 11682 11630 dependencies: 11683 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11631 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11684 11632 fontfaceobserver: 2.3.0 11685 11633 react: 19.0.0 11686 11634 optional: true 11687 11635 11688 - expo-image-loader@5.1.0(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): 11636 + expo-image-loader@5.1.0(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): 11689 11637 dependencies: 11690 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11638 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11691 11639 11692 - expo-image-picker@16.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): 11640 + expo-image-picker@16.1.4(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): 11693 11641 dependencies: 11694 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11695 - expo-image-loader: 5.1.0(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) 11642 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11643 + expo-image-loader: 5.1.0(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) 11696 11644 11697 - expo-keep-awake@14.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): 11645 + expo-keep-awake@14.1.4(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): 11698 11646 dependencies: 11699 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11647 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11700 11648 react: 19.0.0 11701 11649 11702 - expo-keep-awake@14.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): 11650 + expo-keep-awake@14.1.4(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): 11703 11651 dependencies: 11704 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11652 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11705 11653 react: 19.0.0 11706 11654 optional: true 11707 11655 11708 - expo-linking@7.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11656 + expo-linking@7.1.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11709 11657 dependencies: 11710 - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11658 + expo-constants: 17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11711 11659 invariant: 2.2.4 11712 11660 react: 19.0.0 11713 11661 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) ··· 11715 11663 - expo 11716 11664 - supports-color 11717 11665 11718 - expo-modules-autolinking@2.1.10: 11666 + expo-modules-autolinking@2.1.11: 11719 11667 dependencies: 11720 11668 '@expo/spawn-async': 1.7.2 11721 11669 chalk: 4.1.2 ··· 11725 11673 require-from-string: 2.0.2 11726 11674 resolve-from: 5.0.0 11727 11675 11728 - expo-modules-core@2.3.13: 11676 + expo-modules-core@2.4.0: 11729 11677 dependencies: 11730 11678 invariant: 2.2.4 11731 11679 11732 - expo-router@5.0.6(t72pujrpo4n6qjiotumnev34mm): 11680 + expo-router@5.0.7(txbbyapused3uamjbdiravx25i): 11733 11681 dependencies: 11734 11682 '@expo/metro-runtime': 5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11735 11683 '@expo/server': 0.6.2 11736 11684 '@radix-ui/react-slot': 1.2.0(@types/react@19.0.14)(react@19.0.0) 11737 - '@react-navigation/bottom-tabs': 7.3.11(@react-navigation/native@7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11738 - '@react-navigation/native': 7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11739 - '@react-navigation/native-stack': 7.3.11(@react-navigation/native@7.1.8(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11685 + '@react-navigation/bottom-tabs': 7.3.14(@react-navigation/native@7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11686 + '@react-navigation/native': 7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11687 + '@react-navigation/native-stack': 7.3.14(@react-navigation/native@7.1.10(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11740 11688 client-only: 0.0.1 11741 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11742 - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11743 - expo-linking: 7.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11689 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11690 + expo-constants: 17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11691 + expo-linking: 7.1.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11744 11692 invariant: 2.2.4 11745 11693 react-fast-compare: 3.2.2 11746 - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11694 + react-native-is-edge-to-edge: 1.1.6(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11747 11695 react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11748 11696 react-native-screens: 4.10.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11749 11697 schema-utils: 4.3.0 ··· 11759 11707 - react-native 11760 11708 - supports-color 11761 11709 11762 - expo-splash-screen@0.30.8(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): 11710 + expo-splash-screen@0.30.9(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): 11763 11711 dependencies: 11764 - '@expo/prebuild-config': 9.0.5 11765 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11712 + '@expo/prebuild-config': 9.0.6 11713 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11766 11714 transitivePeerDependencies: 11767 11715 - supports-color 11768 11716 11769 - expo-sqlite@15.2.9(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11717 + expo-sqlite@15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11770 11718 dependencies: 11771 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11719 + await-lock: 2.2.2 11720 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11772 11721 react: 19.0.0 11773 11722 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11774 11723 11775 - expo-sqlite@15.2.9(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11724 + expo-sqlite@15.2.12(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11776 11725 dependencies: 11777 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11726 + await-lock: 2.2.2 11727 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11778 11728 react: 19.0.0 11779 11729 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11780 11730 optional: true ··· 11786 11736 react-native-edge-to-edge: 1.6.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11787 11737 react-native-is-edge-to-edge: 1.1.6(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11788 11738 11789 - expo-system-ui@5.0.7(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11739 + expo-system-ui@5.0.8(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11790 11740 dependencies: 11791 - '@react-native/normalize-colors': 0.79.2 11741 + '@react-native/normalize-colors': 0.79.3 11792 11742 debug: 4.4.0 11793 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11743 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11794 11744 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11795 11745 optionalDependencies: 11796 11746 react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 11797 11747 transitivePeerDependencies: 11798 11748 - supports-color 11799 11749 11800 - expo-web-browser@14.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11750 + expo-web-browser@14.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): 11801 11751 dependencies: 11802 - expo: 53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11752 + expo: 53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11803 11753 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11804 11754 11805 - expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11755 + expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11806 11756 dependencies: 11807 11757 '@babel/runtime': 7.26.0 11808 - '@expo/cli': 0.24.13 11758 + '@expo/cli': 0.24.14 11809 11759 '@expo/config': 11.0.10 11810 11760 '@expo/config-plugins': 10.0.2 11811 - '@expo/fingerprint': 0.12.4 11761 + '@expo/fingerprint': 0.13.0 11812 11762 '@expo/metro-config': 0.20.14 11813 - '@expo/vector-icons': 14.1.0(expo-font@13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11814 - babel-preset-expo: 13.1.11(@babel/core@7.26.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206) 11815 - expo-asset: 11.1.5(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11816 - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11817 - expo-file-system: 18.1.10(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11818 - expo-font: 13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 11819 - expo-keep-awake: 14.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 11820 - expo-modules-autolinking: 2.1.10 11821 - expo-modules-core: 2.3.13 11763 + '@expo/vector-icons': 14.1.0(expo-font@13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11764 + babel-preset-expo: 13.2.0(@babel/core@7.26.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206) 11765 + expo-asset: 11.1.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11766 + expo-constants: 17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11767 + expo-file-system: 18.1.10(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11768 + expo-font: 13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 11769 + expo-keep-awake: 14.1.4(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 11770 + expo-modules-autolinking: 2.1.11 11771 + expo-modules-core: 2.4.0 11822 11772 react: 19.0.0 11823 11773 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11824 11774 react-native-edge-to-edge: 1.6.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) ··· 11833 11783 - supports-color 11834 11784 - utf-8-validate 11835 11785 11836 - expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11786 + expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): 11837 11787 dependencies: 11838 11788 '@babel/runtime': 7.26.0 11839 - '@expo/cli': 0.24.13 11789 + '@expo/cli': 0.24.14 11840 11790 '@expo/config': 11.0.10 11841 11791 '@expo/config-plugins': 10.0.2 11842 - '@expo/fingerprint': 0.12.4 11792 + '@expo/fingerprint': 0.13.0 11843 11793 '@expo/metro-config': 0.20.14 11844 - '@expo/vector-icons': 14.1.0(expo-font@13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11845 - babel-preset-expo: 13.1.11(@babel/core@7.26.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206) 11846 - expo-asset: 11.1.5(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11847 - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11848 - expo-file-system: 18.1.10(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11849 - expo-font: 13.3.1(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 11850 - expo-keep-awake: 14.1.4(expo@53.0.9(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 11851 - expo-modules-autolinking: 2.1.10 11852 - expo-modules-core: 2.3.13 11794 + '@expo/vector-icons': 14.1.0(expo-font@13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11795 + babel-preset-expo: 13.2.0(@babel/core@7.26.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206) 11796 + expo-asset: 11.1.5(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 11797 + expo-constants: 17.1.6(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11798 + expo-file-system: 18.1.10(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) 11799 + expo-font: 13.3.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 11800 + expo-keep-awake: 14.1.4(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) 11801 + expo-modules-autolinking: 2.1.11 11802 + expo-modules-core: 2.4.0 11853 11803 react: 19.0.0 11854 11804 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 11855 11805 react-native-edge-to-edge: 1.6.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) ··· 11941 11891 11942 11892 fbjs@3.0.5: 11943 11893 dependencies: 11944 - cross-fetch: 3.1.8 11894 + cross-fetch: 3.2.0 11945 11895 fbjs-css-vars: 1.0.2 11946 11896 loose-envify: 1.4.0 11947 11897 object-assign: 4.1.1 11948 11898 promise: 7.3.1 11949 11899 setimmediate: 1.0.5 11950 - ua-parser-js: 1.0.39 11900 + ua-parser-js: 1.0.40 11951 11901 transitivePeerDependencies: 11952 11902 - encoding 11953 11903 11954 - fdir@6.4.3(picomatch@4.0.2): 11904 + fdir@6.4.2(picomatch@4.0.2): 11955 11905 optionalDependencies: 11956 11906 picomatch: 4.0.2 11957 11907 ··· 12027 11977 12028 11978 flow-enums-runtime@0.0.6: {} 12029 11979 11980 + follow-redirects@1.15.9: {} 11981 + 12030 11982 fontfaceobserver@2.3.0: {} 12031 11983 12032 11984 for-each@0.3.3: 12033 11985 dependencies: 12034 11986 is-callable: 1.2.7 12035 11987 12036 - for-each@0.3.5: 12037 - dependencies: 12038 - is-callable: 1.2.7 12039 - 12040 11988 foreground-child@3.3.0: 12041 11989 dependencies: 12042 11990 cross-spawn: 7.0.6 ··· 12050 11998 combined-stream: 1.0.8 12051 11999 mime-types: 2.1.35 12052 12000 12001 + form-data@4.0.1: 12002 + dependencies: 12003 + asynckit: 0.4.0 12004 + combined-stream: 1.0.8 12005 + mime-types: 2.1.35 12006 + 12053 12007 formdata-polyfill@4.0.10: 12054 12008 dependencies: 12055 12009 fetch-blob: 3.2.0 ··· 12066 12020 jsonfile: 2.4.0 12067 12021 klaw: 1.3.1 12068 12022 path-is-absolute: 1.0.1 12069 - rimraf: 2.6.3 12023 + rimraf: 2.7.1 12070 12024 12071 12025 fs-promise@0.5.0: 12072 12026 dependencies: ··· 12082 12036 12083 12037 function-bind@1.1.2: {} 12084 12038 12085 - function.prototype.name@1.1.6: 12086 - dependencies: 12087 - call-bind: 1.0.8 12088 - define-properties: 1.2.1 12089 - es-abstract: 1.23.5 12090 - functions-have-names: 1.2.3 12091 - 12092 12039 function.prototype.name@1.1.8: 12093 12040 dependencies: 12094 12041 call-bind: 1.0.8 12095 - call-bound: 1.0.4 12042 + call-bound: 1.0.3 12096 12043 define-properties: 1.2.1 12097 12044 functions-have-names: 1.2.3 12098 12045 hasown: 2.0.2 ··· 12106 12053 12107 12054 get-caller-file@2.0.5: {} 12108 12055 12109 - get-intrinsic@1.2.6: 12056 + get-intrinsic@1.2.5: 12110 12057 dependencies: 12111 12058 call-bind-apply-helpers: 1.0.1 12112 12059 dunder-proto: 1.0.0 12113 12060 es-define-property: 1.0.1 12114 12061 es-errors: 1.3.0 12115 - es-object-atoms: 1.0.0 12116 12062 function-bind: 1.1.2 12117 12063 gopd: 1.2.0 12118 12064 has-symbols: 1.1.0 12119 12065 hasown: 2.0.2 12120 - math-intrinsics: 1.0.0 12121 12066 12122 - get-intrinsic@1.3.0: 12067 + get-intrinsic@1.2.6: 12123 12068 dependencies: 12124 - call-bind-apply-helpers: 1.0.2 12069 + call-bind-apply-helpers: 1.0.1 12070 + dunder-proto: 1.0.1 12125 12071 es-define-property: 1.0.1 12126 12072 es-errors: 1.3.0 12127 - es-object-atoms: 1.1.1 12073 + es-object-atoms: 1.0.0 12128 12074 function-bind: 1.1.2 12129 - get-proto: 1.0.1 12130 12075 gopd: 1.2.0 12131 12076 has-symbols: 1.1.0 12132 12077 hasown: 2.0.2 ··· 12138 12083 12139 12084 get-port@3.2.0: {} 12140 12085 12141 - get-proto@1.0.1: 12142 - dependencies: 12143 - dunder-proto: 1.0.1 12144 - es-object-atoms: 1.0.0 12145 - 12146 - get-symbol-description@1.0.2: 12086 + get-symbol-description@1.1.0: 12147 12087 dependencies: 12148 - call-bind: 1.0.8 12088 + call-bound: 1.0.3 12149 12089 es-errors: 1.3.0 12150 12090 get-intrinsic: 1.2.6 12151 12091 12152 - get-symbol-description@1.1.0: 12153 - dependencies: 12154 - call-bound: 1.0.4 12155 - es-errors: 1.3.0 12156 - get-intrinsic: 1.3.0 12157 - 12158 12092 get-tsconfig@4.8.1: 12159 12093 dependencies: 12160 12094 resolve-pkg-maps: 1.0.0 12161 12095 12162 12096 getenv@1.0.0: {} 12097 + 12098 + getenv@2.0.0: {} 12163 12099 12164 12100 getpass@0.1.7: 12165 12101 dependencies: ··· 12184 12120 package-json-from-dist: 1.0.1 12185 12121 path-scurry: 1.11.1 12186 12122 12187 - glob@11.0.1: 12123 + glob@11.0.0: 12188 12124 dependencies: 12189 12125 foreground-child: 3.3.0 12190 12126 jackspeak: 4.0.2 ··· 12215 12151 dependencies: 12216 12152 type-fest: 0.20.2 12217 12153 12218 - globals@16.0.0: {} 12154 + globals@16.2.0: {} 12219 12155 12220 12156 globalthis@1.0.4: 12221 12157 dependencies: ··· 12239 12175 dependencies: 12240 12176 ansi-regex: 2.1.1 12241 12177 12242 - has-bigints@1.0.2: {} 12178 + has-bigints@1.1.0: {} 12243 12179 12244 12180 has-flag@3.0.0: {} 12245 12181 ··· 12253 12189 12254 12190 has-proto@1.2.0: 12255 12191 dependencies: 12256 - dunder-proto: 1.0.0 12192 + dunder-proto: 1.0.1 12257 12193 12258 12194 has-symbols@1.1.0: {} 12259 12195 ··· 12283 12219 dependencies: 12284 12220 react-is: 16.13.1 12285 12221 12286 - hono@4.6.17: {} 12222 + hono@4.6.13: {} 12287 12223 12288 12224 hosted-git-info@7.0.2: 12289 12225 dependencies: ··· 12331 12267 12332 12268 ignore@5.3.2: {} 12333 12269 12334 - image-size@1.1.1: 12270 + image-size@1.2.0: 12335 12271 dependencies: 12336 12272 queue: 6.0.2 12337 12273 ··· 12397 12333 12398 12334 is-arguments@1.2.0: 12399 12335 dependencies: 12400 - call-bound: 1.0.2 12336 + call-bound: 1.0.3 12401 12337 has-tostringtag: 1.0.2 12402 12338 12403 - is-array-buffer@3.0.4: 12339 + is-array-buffer@3.0.5: 12404 12340 dependencies: 12405 12341 call-bind: 1.0.8 12342 + call-bound: 1.0.3 12406 12343 get-intrinsic: 1.2.6 12407 12344 12408 - is-array-buffer@3.0.5: 12409 - dependencies: 12410 - call-bind: 1.0.8 12411 - call-bound: 1.0.4 12412 - get-intrinsic: 1.3.0 12413 - 12414 12345 is-arrayish@0.2.1: {} 12415 12346 12416 12347 is-arrayish@0.3.2: {} ··· 12421 12352 12422 12353 is-bigint@1.1.0: 12423 12354 dependencies: 12424 - has-bigints: 1.0.2 12355 + has-bigints: 1.1.0 12425 12356 12426 12357 is-binary-path@2.1.0: 12427 12358 dependencies: ··· 12429 12360 12430 12361 is-boolean-object@1.2.1: 12431 12362 dependencies: 12432 - call-bound: 1.0.2 12363 + call-bound: 1.0.3 12433 12364 has-tostringtag: 1.0.2 12434 12365 12435 12366 is-bun-module@1.3.0: ··· 12438 12369 12439 12370 is-callable@1.2.7: {} 12440 12371 12441 - is-core-module@2.15.1: 12372 + is-core-module@2.16.1: 12442 12373 dependencies: 12443 12374 hasown: 2.0.2 12444 12375 12445 12376 is-data-view@1.0.2: 12446 12377 dependencies: 12447 - call-bound: 1.0.2 12378 + call-bound: 1.0.3 12448 12379 get-intrinsic: 1.2.6 12449 - is-typed-array: 1.1.13 12380 + is-typed-array: 1.1.15 12450 12381 12451 12382 is-date-object@1.1.0: 12452 12383 dependencies: 12453 - call-bound: 1.0.2 12384 + call-bound: 1.0.3 12454 12385 has-tostringtag: 1.0.2 12455 12386 12456 12387 is-directory@0.3.1: {} ··· 12459 12390 12460 12391 is-extglob@2.1.1: {} 12461 12392 12462 - is-finalizationregistry@1.1.0: 12393 + is-finalizationregistry@1.1.1: 12463 12394 dependencies: 12464 - call-bind: 1.0.8 12395 + call-bound: 1.0.3 12465 12396 12466 12397 is-fullwidth-code-point@1.0.0: 12467 12398 dependencies: ··· 12479 12410 12480 12411 is-map@2.0.3: {} 12481 12412 12482 - is-negative-zero@2.0.3: {} 12483 - 12484 - is-number-object@1.1.0: 12485 - dependencies: 12486 - call-bind: 1.0.8 12487 - has-tostringtag: 1.0.2 12488 - 12489 12413 is-number-object@1.1.1: 12490 12414 dependencies: 12491 - call-bound: 1.0.4 12415 + call-bound: 1.0.3 12492 12416 has-tostringtag: 1.0.2 12493 12417 12494 12418 is-number@7.0.0: {} ··· 12499 12423 12500 12424 is-regex@1.2.1: 12501 12425 dependencies: 12502 - call-bound: 1.0.2 12426 + call-bound: 1.0.3 12503 12427 gopd: 1.2.0 12504 12428 has-tostringtag: 1.0.2 12505 12429 hasown: 2.0.2 12506 12430 12507 12431 is-set@2.0.3: {} 12508 12432 12509 - is-shared-array-buffer@1.0.3: 12510 - dependencies: 12511 - call-bind: 1.0.8 12512 - 12513 12433 is-shared-array-buffer@1.0.4: 12514 12434 dependencies: 12515 - call-bound: 1.0.4 12516 - 12517 - is-string@1.1.0: 12518 - dependencies: 12519 - call-bind: 1.0.8 12520 - has-tostringtag: 1.0.2 12435 + call-bound: 1.0.3 12521 12436 12522 12437 is-string@1.1.1: 12523 12438 dependencies: 12524 - call-bound: 1.0.4 12439 + call-bound: 1.0.3 12525 12440 has-tostringtag: 1.0.2 12526 12441 12527 12442 is-symbol@1.1.1: 12528 12443 dependencies: 12529 - call-bound: 1.0.2 12444 + call-bound: 1.0.3 12530 12445 has-symbols: 1.1.0 12531 12446 safe-regex-test: 1.1.0 12532 12447 12533 - is-typed-array@1.1.13: 12534 - dependencies: 12535 - which-typed-array: 1.1.16 12536 - 12537 12448 is-typed-array@1.1.15: 12538 12449 dependencies: 12539 - which-typed-array: 1.1.19 12450 + which-typed-array: 1.1.18 12540 12451 12541 12452 is-typedarray@1.0.0: {} 12542 12453 ··· 12544 12455 12545 12456 is-weakref@1.1.0: 12546 12457 dependencies: 12547 - call-bound: 1.0.2 12458 + call-bound: 1.0.3 12548 12459 12549 - is-weakset@2.0.3: 12460 + is-weakset@2.0.4: 12550 12461 dependencies: 12551 - call-bind: 1.0.8 12462 + call-bound: 1.0.3 12552 12463 get-intrinsic: 1.2.6 12553 12464 12554 12465 is-wsl@2.2.0: ··· 12581 12492 es-object-atoms: 1.0.0 12582 12493 get-intrinsic: 1.2.6 12583 12494 has-symbols: 1.1.0 12584 - reflect.getprototypeof: 1.0.8 12495 + reflect.getprototypeof: 1.0.9 12585 12496 set-function-name: 2.0.2 12586 12497 12587 12498 jackspeak@3.4.3: ··· 12599 12510 '@jest/environment': 29.7.0 12600 12511 '@jest/fake-timers': 29.7.0 12601 12512 '@jest/types': 29.6.3 12602 - '@types/node': 20.17.14 12513 + '@types/node': 20.17.10 12603 12514 jest-mock: 29.7.0 12604 12515 jest-util: 29.7.0 12605 12516 ··· 12609 12520 dependencies: 12610 12521 '@jest/types': 29.6.3 12611 12522 '@types/graceful-fs': 4.1.9 12612 - '@types/node': 20.17.14 12523 + '@types/node': 20.17.10 12613 12524 anymatch: 3.1.3 12614 12525 fb-watchman: 2.0.2 12615 12526 graceful-fs: 4.2.11 ··· 12636 12547 jest-mock@29.7.0: 12637 12548 dependencies: 12638 12549 '@jest/types': 29.6.3 12639 - '@types/node': 20.17.14 12550 + '@types/node': 20.17.10 12640 12551 jest-util: 29.7.0 12641 12552 12642 12553 jest-regex-util@29.6.3: {} ··· 12644 12555 jest-util@29.7.0: 12645 12556 dependencies: 12646 12557 '@jest/types': 29.6.3 12647 - '@types/node': 20.17.14 12558 + '@types/node': 20.17.10 12648 12559 chalk: 4.1.2 12649 12560 ci-info: 3.9.0 12650 12561 graceful-fs: 4.2.11 ··· 12661 12572 12662 12573 jest-worker@27.5.1: 12663 12574 dependencies: 12664 - '@types/node': 20.17.14 12575 + '@types/node': 20.17.10 12665 12576 merge-stream: 2.0.0 12666 12577 supports-color: 8.1.1 12667 12578 12668 12579 jest-worker@29.7.0: 12669 12580 dependencies: 12670 - '@types/node': 20.17.14 12581 + '@types/node': 20.17.10 12671 12582 jest-util: 29.7.0 12672 12583 merge-stream: 2.0.0 12673 12584 supports-color: 8.1.1 12674 12585 12675 12586 jimp-compact@0.16.1: {} 12676 12587 12677 - jiti@1.21.6: {} 12588 + jiti@1.21.7: {} 12678 12589 12679 12590 jose@5.9.6: {} 12680 12591 ··· 12737 12648 jsx-ast-utils@3.3.5: 12738 12649 dependencies: 12739 12650 array-includes: 3.1.8 12740 - array.prototype.flat: 1.3.2 12741 - object.assign: 4.1.5 12651 + array.prototype.flat: 1.3.3 12652 + object.assign: 4.1.7 12742 12653 object.values: 1.2.1 12743 12654 12744 12655 kaiser@0.0.4: ··· 12755 12666 12756 12667 kleur@3.0.3: {} 12757 12668 12758 - lan-network@0.1.6: {} 12669 + lan-network@0.1.7: {} 12759 12670 12760 12671 leven@3.1.0: {} 12761 12672 ··· 12787 12698 lightningcss-darwin-arm64@1.27.0: 12788 12699 optional: true 12789 12700 12701 + lightningcss-darwin-arm64@1.28.2: 12702 + optional: true 12703 + 12790 12704 lightningcss-darwin-x64@1.27.0: 12791 12705 optional: true 12792 12706 12707 + lightningcss-darwin-x64@1.28.2: 12708 + optional: true 12709 + 12793 12710 lightningcss-freebsd-x64@1.27.0: 12711 + optional: true 12712 + 12713 + lightningcss-freebsd-x64@1.28.2: 12794 12714 optional: true 12795 12715 12796 12716 lightningcss-linux-arm-gnueabihf@1.27.0: 12717 + optional: true 12718 + 12719 + lightningcss-linux-arm-gnueabihf@1.28.2: 12797 12720 optional: true 12798 12721 12799 12722 lightningcss-linux-arm64-gnu@1.27.0: 12800 12723 optional: true 12801 12724 12725 + lightningcss-linux-arm64-gnu@1.28.2: 12726 + optional: true 12727 + 12802 12728 lightningcss-linux-arm64-musl@1.27.0: 12729 + optional: true 12730 + 12731 + lightningcss-linux-arm64-musl@1.28.2: 12803 12732 optional: true 12804 12733 12805 12734 lightningcss-linux-x64-gnu@1.27.0: 12806 12735 optional: true 12807 12736 12737 + lightningcss-linux-x64-gnu@1.28.2: 12738 + optional: true 12739 + 12808 12740 lightningcss-linux-x64-musl@1.27.0: 12741 + optional: true 12742 + 12743 + lightningcss-linux-x64-musl@1.28.2: 12809 12744 optional: true 12810 12745 12811 12746 lightningcss-win32-arm64-msvc@1.27.0: 12812 12747 optional: true 12813 12748 12749 + lightningcss-win32-arm64-msvc@1.28.2: 12750 + optional: true 12751 + 12814 12752 lightningcss-win32-x64-msvc@1.27.0: 12753 + optional: true 12754 + 12755 + lightningcss-win32-x64-msvc@1.28.2: 12815 12756 optional: true 12816 12757 12817 12758 lightningcss@1.27.0: ··· 12829 12770 lightningcss-win32-arm64-msvc: 1.27.0 12830 12771 lightningcss-win32-x64-msvc: 1.27.0 12831 12772 12773 + lightningcss@1.28.2: 12774 + dependencies: 12775 + detect-libc: 1.0.3 12776 + optionalDependencies: 12777 + lightningcss-darwin-arm64: 1.28.2 12778 + lightningcss-darwin-x64: 1.28.2 12779 + lightningcss-freebsd-x64: 1.28.2 12780 + lightningcss-linux-arm-gnueabihf: 1.28.2 12781 + lightningcss-linux-arm64-gnu: 1.28.2 12782 + lightningcss-linux-arm64-musl: 1.28.2 12783 + lightningcss-linux-x64-gnu: 1.28.2 12784 + lightningcss-linux-x64-musl: 1.28.2 12785 + lightningcss-win32-arm64-msvc: 1.28.2 12786 + lightningcss-win32-x64-msvc: 1.28.2 12787 + 12832 12788 lilconfig@3.1.3: {} 12833 12789 12834 12790 lines-and-columns@1.2.4: {} ··· 12898 12854 12899 12855 marky@1.2.5: {} 12900 12856 12901 - math-intrinsics@1.0.0: {} 12902 - 12903 12857 math-intrinsics@1.1.0: {} 12904 12858 12905 12859 mdn-data@2.0.14: {} ··· 12922 12876 12923 12877 methods@1.1.2: {} 12924 12878 12925 - metro-babel-transformer@0.82.2: 12879 + metro-babel-transformer@0.82.4: 12926 12880 dependencies: 12927 12881 '@babel/core': 7.26.0 12928 12882 flow-enums-runtime: 0.0.6 ··· 12931 12885 transitivePeerDependencies: 12932 12886 - supports-color 12933 12887 12934 - metro-cache-key@0.82.2: 12888 + metro-cache-key@0.82.4: 12935 12889 dependencies: 12936 12890 flow-enums-runtime: 0.0.6 12937 12891 12938 - metro-cache@0.82.2: 12892 + metro-cache@0.82.4: 12939 12893 dependencies: 12940 12894 exponential-backoff: 3.1.1 12941 12895 flow-enums-runtime: 0.0.6 12942 12896 https-proxy-agent: 7.0.6 12943 - metro-core: 0.82.2 12897 + metro-core: 0.82.4 12944 12898 transitivePeerDependencies: 12945 12899 - supports-color 12946 12900 12947 - metro-config@0.82.2: 12901 + metro-config@0.82.4: 12948 12902 dependencies: 12949 12903 connect: 3.7.0 12950 12904 cosmiconfig: 5.2.1 12951 12905 flow-enums-runtime: 0.0.6 12952 12906 jest-validate: 29.7.0 12953 - metro: 0.82.2 12954 - metro-cache: 0.82.2 12955 - metro-core: 0.82.2 12956 - metro-runtime: 0.82.2 12907 + metro: 0.82.4 12908 + metro-cache: 0.82.4 12909 + metro-core: 0.82.4 12910 + metro-runtime: 0.82.4 12957 12911 transitivePeerDependencies: 12958 12912 - bufferutil 12959 12913 - supports-color 12960 12914 - utf-8-validate 12961 12915 12962 - metro-core@0.82.2: 12916 + metro-core@0.82.4: 12963 12917 dependencies: 12964 12918 flow-enums-runtime: 0.0.6 12965 12919 lodash.throttle: 4.1.1 12966 - metro-resolver: 0.82.2 12920 + metro-resolver: 0.82.4 12967 12921 12968 - metro-file-map@0.82.2: 12922 + metro-file-map@0.82.4: 12969 12923 dependencies: 12970 12924 debug: 4.4.0 12971 12925 fb-watchman: 2.0.2 ··· 12979 12933 transitivePeerDependencies: 12980 12934 - supports-color 12981 12935 12982 - metro-minify-terser@0.82.2: 12936 + metro-minify-terser@0.82.4: 12983 12937 dependencies: 12984 12938 flow-enums-runtime: 0.0.6 12985 12939 terser: 5.37.0 12986 12940 12987 - metro-resolver@0.82.2: 12941 + metro-resolver@0.82.4: 12988 12942 dependencies: 12989 12943 flow-enums-runtime: 0.0.6 12990 12944 12991 - metro-runtime@0.82.2: 12945 + metro-runtime@0.82.4: 12992 12946 dependencies: 12993 12947 '@babel/runtime': 7.26.0 12994 12948 flow-enums-runtime: 0.0.6 12995 12949 12996 - metro-source-map@0.82.2: 12950 + metro-source-map@0.82.4: 12997 12951 dependencies: 12998 12952 '@babel/traverse': 7.26.4 12999 12953 '@babel/traverse--for-generate-function-map': '@babel/traverse@7.26.4' 13000 12954 '@babel/types': 7.26.3 13001 12955 flow-enums-runtime: 0.0.6 13002 12956 invariant: 2.2.4 13003 - metro-symbolicate: 0.82.2 12957 + metro-symbolicate: 0.82.4 13004 12958 nullthrows: 1.1.1 13005 - ob1: 0.82.2 12959 + ob1: 0.82.4 13006 12960 source-map: 0.5.7 13007 12961 vlq: 1.0.1 13008 12962 transitivePeerDependencies: 13009 12963 - supports-color 13010 12964 13011 - metro-symbolicate@0.82.2: 12965 + metro-symbolicate@0.82.4: 13012 12966 dependencies: 13013 12967 flow-enums-runtime: 0.0.6 13014 12968 invariant: 2.2.4 13015 - metro-source-map: 0.82.2 12969 + metro-source-map: 0.82.4 13016 12970 nullthrows: 1.1.1 13017 12971 source-map: 0.5.7 13018 12972 vlq: 1.0.1 13019 12973 transitivePeerDependencies: 13020 12974 - supports-color 13021 12975 13022 - metro-transform-plugins@0.82.2: 12976 + metro-transform-plugins@0.82.4: 13023 12977 dependencies: 13024 12978 '@babel/core': 7.26.0 13025 12979 '@babel/generator': 7.26.3 ··· 13030 12984 transitivePeerDependencies: 13031 12985 - supports-color 13032 12986 13033 - metro-transform-worker@0.82.2: 12987 + metro-transform-worker@0.82.4: 13034 12988 dependencies: 13035 12989 '@babel/core': 7.26.0 13036 12990 '@babel/generator': 7.26.3 13037 12991 '@babel/parser': 7.26.3 13038 12992 '@babel/types': 7.26.3 13039 12993 flow-enums-runtime: 0.0.6 13040 - metro: 0.82.2 13041 - metro-babel-transformer: 0.82.2 13042 - metro-cache: 0.82.2 13043 - metro-cache-key: 0.82.2 13044 - metro-minify-terser: 0.82.2 13045 - metro-source-map: 0.82.2 13046 - metro-transform-plugins: 0.82.2 12994 + metro: 0.82.4 12995 + metro-babel-transformer: 0.82.4 12996 + metro-cache: 0.82.4 12997 + metro-cache-key: 0.82.4 12998 + metro-minify-terser: 0.82.4 12999 + metro-source-map: 0.82.4 13000 + metro-transform-plugins: 0.82.4 13047 13001 nullthrows: 1.1.1 13048 13002 transitivePeerDependencies: 13049 13003 - bufferutil 13050 13004 - supports-color 13051 13005 - utf-8-validate 13052 13006 13053 - metro@0.82.2: 13007 + metro@0.82.4: 13054 13008 dependencies: 13055 13009 '@babel/code-frame': 7.26.2 13056 13010 '@babel/core': 7.26.0 ··· 13068 13022 flow-enums-runtime: 0.0.6 13069 13023 graceful-fs: 4.2.11 13070 13024 hermes-parser: 0.28.1 13071 - image-size: 1.1.1 13025 + image-size: 1.2.0 13072 13026 invariant: 2.2.4 13073 13027 jest-worker: 29.7.0 13074 13028 jsc-safe-url: 0.2.4 13075 13029 lodash.throttle: 4.1.1 13076 - metro-babel-transformer: 0.82.2 13077 - metro-cache: 0.82.2 13078 - metro-cache-key: 0.82.2 13079 - metro-config: 0.82.2 13080 - metro-core: 0.82.2 13081 - metro-file-map: 0.82.2 13082 - metro-resolver: 0.82.2 13083 - metro-runtime: 0.82.2 13084 - metro-source-map: 0.82.2 13085 - metro-symbolicate: 0.82.2 13086 - metro-transform-plugins: 0.82.2 13087 - metro-transform-worker: 0.82.2 13030 + metro-babel-transformer: 0.82.4 13031 + metro-cache: 0.82.4 13032 + metro-cache-key: 0.82.4 13033 + metro-config: 0.82.4 13034 + metro-core: 0.82.4 13035 + metro-file-map: 0.82.4 13036 + metro-resolver: 0.82.4 13037 + metro-runtime: 0.82.4 13038 + metro-source-map: 0.82.4 13039 + metro-symbolicate: 0.82.4 13040 + metro-transform-plugins: 0.82.4 13041 + metro-transform-worker: 0.82.4 13088 13042 mime-types: 2.1.35 13089 13043 nullthrows: 1.1.1 13090 13044 serialize-error: 2.1.0 ··· 13103 13057 picomatch: 2.3.1 13104 13058 13105 13059 mime-db@1.52.0: {} 13106 - 13107 - mime-db@1.53.0: {} 13108 13060 13109 13061 mime-types@2.1.35: 13110 13062 dependencies: ··· 13168 13120 13169 13121 nanoid@3.3.11: {} 13170 13122 13123 + nanoid@3.3.8: {} 13124 + 13171 13125 nativewind@4.1.23(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.3))): 13172 13126 dependencies: 13173 13127 comment-json: 4.2.5 ··· 13234 13188 13235 13189 oauth-sign@0.9.0: {} 13236 13190 13237 - ob1@0.82.2: 13191 + ob1@0.82.4: 13238 13192 dependencies: 13239 13193 flow-enums-runtime: 0.0.6 13240 13194 ··· 13246 13200 13247 13201 object-keys@1.1.1: {} 13248 13202 13249 - object.assign@4.1.5: 13250 - dependencies: 13251 - call-bind: 1.0.8 13252 - define-properties: 1.2.1 13253 - has-symbols: 1.1.0 13254 - object-keys: 1.1.1 13255 - 13256 13203 object.assign@4.1.7: 13257 13204 dependencies: 13258 13205 call-bind: 1.0.8 13259 - call-bound: 1.0.4 13206 + call-bound: 1.0.3 13260 13207 define-properties: 1.2.1 13261 13208 es-object-atoms: 1.0.0 13262 13209 has-symbols: 1.1.0 13263 13210 object-keys: 1.1.1 13264 13211 13265 - object.entries@1.1.9: 13212 + object.entries@1.1.8: 13266 13213 dependencies: 13267 13214 call-bind: 1.0.8 13268 - call-bound: 1.0.4 13269 13215 define-properties: 1.2.1 13270 - es-object-atoms: 1.1.1 13216 + es-object-atoms: 1.0.0 13271 13217 13272 13218 object.fromentries@2.0.8: 13273 13219 dependencies: 13274 13220 call-bind: 1.0.8 13275 13221 define-properties: 1.2.1 13276 - es-abstract: 1.23.5 13222 + es-abstract: 1.23.8 13277 13223 es-object-atoms: 1.0.0 13278 13224 13279 13225 object.groupby@1.0.3: 13280 13226 dependencies: 13281 13227 call-bind: 1.0.8 13282 13228 define-properties: 1.2.1 13283 - es-abstract: 1.23.5 13284 - 13285 - object.values@1.2.0: 13286 - dependencies: 13287 - call-bind: 1.0.8 13288 - define-properties: 1.2.1 13289 - es-object-atoms: 1.0.0 13229 + es-abstract: 1.23.8 13290 13230 13291 13231 object.values@1.2.1: 13292 13232 dependencies: 13293 13233 call-bind: 1.0.8 13294 - call-bound: 1.0.4 13234 + call-bound: 1.0.3 13295 13235 define-properties: 1.2.1 13296 13236 es-object-atoms: 1.0.0 13297 13237 ··· 13352 13292 13353 13293 own-keys@1.0.1: 13354 13294 dependencies: 13355 - get-intrinsic: 1.3.0 13295 + get-intrinsic: 1.2.6 13356 13296 object-keys: 1.1.1 13357 13297 safe-push-apply: 1.0.0 13358 13298 ··· 13490 13430 sonic-boom: 3.8.1 13491 13431 thread-stream: 2.7.0 13492 13432 13493 - pino@9.6.0: 13433 + pino@9.5.0: 13494 13434 dependencies: 13495 13435 atomic-sleep: 1.0.0 13496 13436 fast-redact: 3.5.0 13497 13437 on-exit-leak-free: 2.1.2 13498 13438 pino-abstract-transport: 2.0.0 13499 13439 pino-std-serializers: 7.0.0 13500 - process-warning: 4.0.1 13440 + process-warning: 4.0.0 13501 13441 quick-format-unescaped: 4.0.4 13502 13442 real-require: 0.2.0 13503 13443 safe-stable-stringify: 2.5.0 ··· 13525 13465 postcss: 8.4.49 13526 13466 postcss-value-parser: 4.2.0 13527 13467 read-cache: 1.0.0 13528 - resolve: 1.22.8 13468 + resolve: 1.22.10 13529 13469 13530 13470 postcss-js@4.0.1(postcss@8.4.49): 13531 13471 dependencies: ··· 13540 13480 postcss: 8.4.49 13541 13481 ts-node: 10.9.2(@types/node@22.10.2)(typescript@5.8.3) 13542 13482 13543 - postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1): 13483 + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1): 13544 13484 dependencies: 13545 13485 lilconfig: 3.1.3 13546 13486 optionalDependencies: 13547 - jiti: 1.21.6 13487 + jiti: 1.21.7 13548 13488 postcss: 8.4.49 13549 13489 tsx: 4.19.2 13550 13490 yaml: 2.6.1 ··· 13563 13503 13564 13504 postcss@8.4.49: 13565 13505 dependencies: 13566 - nanoid: 3.3.11 13506 + nanoid: 3.3.8 13567 13507 picocolors: 1.1.1 13568 13508 source-map-js: 1.2.1 13569 13509 13570 - postgres@3.4.5: {} 13510 + postgres@3.4.7: {} 13571 13511 13572 13512 prelude-ls@1.2.1: {} 13573 13513 13514 + prettier-plugin-tailwindcss@0.6.12(@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.5.3))(prettier@3.5.3): 13515 + dependencies: 13516 + prettier: 3.5.3 13517 + optionalDependencies: 13518 + '@ianvs/prettier-plugin-sort-imports': 4.4.2(prettier@3.5.3) 13519 + 13574 13520 prettier@3.4.2: {} 13521 + 13522 + prettier@3.5.3: {} 13575 13523 13576 13524 pretty-bytes@5.6.0: {} 13577 13525 ··· 13585 13533 13586 13534 process-warning@3.0.0: {} 13587 13535 13588 - process-warning@4.0.1: {} 13536 + process-warning@4.0.0: {} 13589 13537 13590 13538 process@0.11.10: {} 13591 13539 ··· 13632 13580 13633 13581 qs@6.13.0: 13634 13582 dependencies: 13635 - side-channel: 1.1.0 13583 + side-channel: 1.0.6 13636 13584 13637 13585 qs@6.5.3: {} 13638 13586 ··· 13677 13625 dependencies: 13678 13626 react: 19.0.0 13679 13627 13680 - react-devtools-core@6.1.1: 13628 + react-devtools-core@6.1.2: 13681 13629 dependencies: 13682 13630 shell-quote: 1.8.2 13683 13631 ws: 7.5.10 ··· 13708 13656 '@babel/traverse': 7.26.4 13709 13657 '@babel/types': 7.26.3 13710 13658 debug: 4.4.0 13711 - lightningcss: 1.27.0 13659 + lightningcss: 1.28.2 13712 13660 react: 19.0.0 13713 13661 react-native: 0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) 13714 13662 react-native-reanimated: 3.17.5(@babel/core@7.26.0)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) ··· 13838 13786 invariant: 2.2.4 13839 13787 jest-environment-node: 29.7.0 13840 13788 memoize-one: 5.2.1 13841 - metro-runtime: 0.82.2 13842 - metro-source-map: 0.82.2 13789 + metro-runtime: 0.82.4 13790 + metro-source-map: 0.82.4 13843 13791 nullthrows: 1.1.1 13844 13792 pretty-format: 29.7.0 13845 13793 promise: 8.3.0 13846 13794 react: 19.0.0 13847 - react-devtools-core: 6.1.1 13795 + react-devtools-core: 6.1.2 13848 13796 react-refresh: 0.14.2 13849 13797 regenerator-runtime: 0.13.11 13850 13798 scheduler: 0.25.0 ··· 13866 13814 13867 13815 react-refresh@0.16.0: {} 13868 13816 13869 - react-remove-scroll-bar@2.3.6(@types/react@19.0.14)(react@19.0.0): 13817 + react-remove-scroll-bar@2.3.8(@types/react@19.0.14)(react@19.0.0): 13870 13818 dependencies: 13871 13819 react: 19.0.0 13872 - react-style-singleton: 2.2.1(@types/react@19.0.14)(react@19.0.0) 13873 - tslib: 2.8.1 13820 + react-style-singleton: 2.2.3(@types/react@19.0.14)(react@19.0.0) 13821 + tslib: 2.6.2 13874 13822 optionalDependencies: 13875 13823 '@types/react': 19.0.14 13876 13824 13877 - react-remove-scroll@2.6.0(@types/react@19.0.14)(react@19.0.0): 13825 + react-remove-scroll@2.6.2(@types/react@19.0.14)(react@19.0.0): 13878 13826 dependencies: 13879 13827 react: 19.0.0 13880 - react-remove-scroll-bar: 2.3.6(@types/react@19.0.14)(react@19.0.0) 13881 - react-style-singleton: 2.2.1(@types/react@19.0.14)(react@19.0.0) 13882 - tslib: 2.8.1 13883 - use-callback-ref: 1.3.2(@types/react@19.0.14)(react@19.0.0) 13884 - use-sidecar: 1.1.2(@types/react@19.0.14)(react@19.0.0) 13828 + react-remove-scroll-bar: 2.3.8(@types/react@19.0.14)(react@19.0.0) 13829 + react-style-singleton: 2.2.3(@types/react@19.0.14)(react@19.0.0) 13830 + tslib: 2.6.2 13831 + use-callback-ref: 1.3.3(@types/react@19.0.14)(react@19.0.0) 13832 + use-sidecar: 1.1.3(@types/react@19.0.14)(react@19.0.0) 13885 13833 optionalDependencies: 13886 13834 '@types/react': 19.0.14 13887 13835 13888 - react-style-singleton@2.2.1(@types/react@19.0.14)(react@19.0.0): 13836 + react-style-singleton@2.2.3(@types/react@19.0.14)(react@19.0.0): 13889 13837 dependencies: 13890 13838 get-nonce: 1.0.1 13891 - invariant: 2.2.4 13892 13839 react: 19.0.0 13893 - tslib: 2.8.1 13840 + tslib: 2.6.2 13894 13841 optionalDependencies: 13895 13842 '@types/react': 19.0.14 13896 13843 ··· 13912 13859 dependencies: 13913 13860 picomatch: 2.3.1 13914 13861 13915 - readdirp@4.1.1: {} 13862 + readdirp@4.0.2: {} 13916 13863 13917 13864 readline2@1.0.1: 13918 13865 dependencies: ··· 13922 13869 13923 13870 real-require@0.2.0: {} 13924 13871 13925 - reflect.getprototypeof@1.0.10: 13872 + reflect.getprototypeof@1.0.9: 13926 13873 dependencies: 13927 13874 call-bind: 1.0.8 13928 13875 define-properties: 1.2.1 13929 - es-abstract: 1.23.9 13930 - es-errors: 1.3.0 13931 - es-object-atoms: 1.0.0 13932 - get-intrinsic: 1.3.0 13933 - get-proto: 1.0.1 13934 - which-builtin-type: 1.2.1 13935 - 13936 - reflect.getprototypeof@1.0.8: 13937 - dependencies: 13938 - call-bind: 1.0.8 13939 - define-properties: 1.2.1 13940 - dunder-proto: 1.0.0 13941 - es-abstract: 1.23.9 13876 + dunder-proto: 1.0.1 13877 + es-abstract: 1.23.8 13942 13878 es-errors: 1.3.0 13943 13879 get-intrinsic: 1.2.6 13944 13880 gopd: 1.2.0 ··· 14037 13973 14038 13974 resolve.exports@2.0.3: {} 14039 13975 14040 - resolve@1.22.8: 13976 + resolve@1.22.10: 14041 13977 dependencies: 14042 - is-core-module: 2.15.1 13978 + is-core-module: 2.16.1 14043 13979 path-parse: 1.0.7 14044 13980 supports-preserve-symlinks-flag: 1.0.0 14045 13981 ··· 14049 13985 14050 13986 resolve@2.0.0-next.5: 14051 13987 dependencies: 14052 - is-core-module: 2.15.1 13988 + is-core-module: 2.16.1 14053 13989 path-parse: 1.0.7 14054 13990 supports-preserve-symlinks-flag: 1.0.0 14055 13991 ··· 14065 14001 14066 14002 reusify@1.0.4: {} 14067 14003 14068 - rimraf@2.6.3: 14004 + rimraf@2.7.1: 14069 14005 dependencies: 14070 14006 glob: 7.2.3 14071 14007 ··· 14075 14011 14076 14012 rimraf@6.0.1: 14077 14013 dependencies: 14078 - glob: 11.0.1 14014 + glob: 11.0.0 14079 14015 package-json-from-dist: 1.0.1 14080 14016 14081 - rollup@4.31.0: 14017 + rollup@4.28.1: 14082 14018 dependencies: 14083 14019 '@types/estree': 1.0.6 14084 14020 optionalDependencies: 14085 - '@rollup/rollup-android-arm-eabi': 4.31.0 14086 - '@rollup/rollup-android-arm64': 4.31.0 14087 - '@rollup/rollup-darwin-arm64': 4.31.0 14088 - '@rollup/rollup-darwin-x64': 4.31.0 14089 - '@rollup/rollup-freebsd-arm64': 4.31.0 14090 - '@rollup/rollup-freebsd-x64': 4.31.0 14091 - '@rollup/rollup-linux-arm-gnueabihf': 4.31.0 14092 - '@rollup/rollup-linux-arm-musleabihf': 4.31.0 14093 - '@rollup/rollup-linux-arm64-gnu': 4.31.0 14094 - '@rollup/rollup-linux-arm64-musl': 4.31.0 14095 - '@rollup/rollup-linux-loongarch64-gnu': 4.31.0 14096 - '@rollup/rollup-linux-powerpc64le-gnu': 4.31.0 14097 - '@rollup/rollup-linux-riscv64-gnu': 4.31.0 14098 - '@rollup/rollup-linux-s390x-gnu': 4.31.0 14099 - '@rollup/rollup-linux-x64-gnu': 4.31.0 14100 - '@rollup/rollup-linux-x64-musl': 4.31.0 14101 - '@rollup/rollup-win32-arm64-msvc': 4.31.0 14102 - '@rollup/rollup-win32-ia32-msvc': 4.31.0 14103 - '@rollup/rollup-win32-x64-msvc': 4.31.0 14021 + '@rollup/rollup-android-arm-eabi': 4.28.1 14022 + '@rollup/rollup-android-arm64': 4.28.1 14023 + '@rollup/rollup-darwin-arm64': 4.28.1 14024 + '@rollup/rollup-darwin-x64': 4.28.1 14025 + '@rollup/rollup-freebsd-arm64': 4.28.1 14026 + '@rollup/rollup-freebsd-x64': 4.28.1 14027 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.1 14028 + '@rollup/rollup-linux-arm-musleabihf': 4.28.1 14029 + '@rollup/rollup-linux-arm64-gnu': 4.28.1 14030 + '@rollup/rollup-linux-arm64-musl': 4.28.1 14031 + '@rollup/rollup-linux-loongarch64-gnu': 4.28.1 14032 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1 14033 + '@rollup/rollup-linux-riscv64-gnu': 4.28.1 14034 + '@rollup/rollup-linux-s390x-gnu': 4.28.1 14035 + '@rollup/rollup-linux-x64-gnu': 4.28.1 14036 + '@rollup/rollup-linux-x64-musl': 4.28.1 14037 + '@rollup/rollup-win32-arm64-msvc': 4.28.1 14038 + '@rollup/rollup-win32-ia32-msvc': 4.28.1 14039 + '@rollup/rollup-win32-x64-msvc': 4.28.1 14104 14040 fsevents: 2.3.3 14105 14041 14106 14042 run-async@0.1.0: ··· 14116 14052 safe-array-concat@1.1.3: 14117 14053 dependencies: 14118 14054 call-bind: 1.0.8 14119 - call-bound: 1.0.4 14055 + call-bound: 1.0.3 14120 14056 get-intrinsic: 1.2.6 14121 14057 has-symbols: 1.1.0 14122 14058 isarray: 2.0.5 ··· 14130 14066 14131 14067 safe-regex-test@1.1.0: 14132 14068 dependencies: 14133 - call-bound: 1.0.2 14069 + call-bound: 1.0.3 14134 14070 es-errors: 1.3.0 14135 14071 is-regex: 1.2.1 14136 14072 ··· 14179 14115 transitivePeerDependencies: 14180 14116 - supports-color 14181 14117 14182 - send@0.19.1: 14183 - dependencies: 14184 - debug: 2.6.9 14185 - depd: 2.0.0 14186 - destroy: 1.2.0 14187 - encodeurl: 2.0.0 14188 - escape-html: 1.0.3 14189 - etag: 1.8.1 14190 - fresh: 0.5.2 14191 - http-errors: 2.0.0 14192 - mime: 1.6.0 14193 - ms: 2.1.3 14194 - on-finished: 2.4.1 14195 - range-parser: 1.2.1 14196 - statuses: 2.0.1 14197 - transitivePeerDependencies: 14198 - - supports-color 14199 - 14200 14118 serialize-error@2.1.0: {} 14201 14119 14202 14120 serialize-javascript@6.0.2: ··· 14230 14148 functions-have-names: 1.2.3 14231 14149 has-property-descriptors: 1.0.2 14232 14150 14233 - set-proto@1.0.0: 14234 - dependencies: 14235 - dunder-proto: 1.0.1 14236 - es-errors: 1.3.0 14237 - es-object-atoms: 1.0.0 14238 - 14239 14151 setimmediate@1.0.5: {} 14240 14152 14241 14153 setprototypeof@1.2.0: {} ··· 14257 14169 14258 14170 side-channel-map@1.0.1: 14259 14171 dependencies: 14260 - call-bound: 1.0.2 14172 + call-bound: 1.0.3 14261 14173 es-errors: 1.3.0 14262 14174 get-intrinsic: 1.2.6 14263 14175 object-inspect: 1.13.3 14264 14176 14265 14177 side-channel-weakmap@1.0.2: 14266 14178 dependencies: 14267 - call-bound: 1.0.2 14179 + call-bound: 1.0.3 14268 14180 es-errors: 1.3.0 14269 14181 get-intrinsic: 1.2.6 14270 14182 object-inspect: 1.13.3 14271 14183 side-channel-map: 1.0.1 14184 + 14185 + side-channel@1.0.6: 14186 + dependencies: 14187 + call-bind: 1.0.8 14188 + es-errors: 1.3.0 14189 + get-intrinsic: 1.2.5 14190 + object-inspect: 1.13.3 14272 14191 14273 14192 side-channel@1.1.0: 14274 14193 dependencies: ··· 14382 14301 string.prototype.matchall@4.0.12: 14383 14302 dependencies: 14384 14303 call-bind: 1.0.8 14385 - call-bound: 1.0.4 14304 + call-bound: 1.0.3 14386 14305 define-properties: 1.2.1 14387 - es-abstract: 1.23.9 14306 + es-abstract: 1.23.8 14388 14307 es-errors: 1.3.0 14389 14308 es-object-atoms: 1.0.0 14390 14309 get-intrinsic: 1.2.6 ··· 14398 14317 string.prototype.repeat@1.0.0: 14399 14318 dependencies: 14400 14319 define-properties: 1.2.1 14401 - es-abstract: 1.23.5 14320 + es-abstract: 1.23.8 14402 14321 14403 14322 string.prototype.trim@1.2.10: 14404 14323 dependencies: 14405 14324 call-bind: 1.0.8 14406 - call-bound: 1.0.2 14325 + call-bound: 1.0.3 14407 14326 define-data-property: 1.1.4 14408 14327 define-properties: 1.2.1 14409 - es-abstract: 1.23.5 14328 + es-abstract: 1.23.8 14410 14329 es-object-atoms: 1.0.0 14411 14330 has-property-descriptors: 1.0.2 14412 14331 14413 14332 string.prototype.trimend@1.0.9: 14414 14333 dependencies: 14415 14334 call-bind: 1.0.8 14416 - call-bound: 1.0.2 14335 + call-bound: 1.0.3 14417 14336 define-properties: 1.2.1 14418 14337 es-object-atoms: 1.0.0 14419 14338 ··· 14455 14374 14456 14375 sucrase@3.35.0: 14457 14376 dependencies: 14458 - '@jridgewell/gen-mapping': 0.3.8 14377 + '@jridgewell/gen-mapping': 0.3.5 14459 14378 commander: 4.1.1 14460 14379 glob: 10.4.5 14461 14380 lines-and-columns: 1.2.4 ··· 14486 14405 14487 14406 supports-preserve-symlinks-flag@1.0.0: {} 14488 14407 14489 - tailwind-merge@2.5.5: {} 14408 + tailwind-merge@2.6.0: {} 14490 14409 14491 14410 tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.3))): 14492 14411 dependencies: ··· 14502 14421 fast-glob: 3.3.2 14503 14422 glob-parent: 6.0.2 14504 14423 is-glob: 4.0.3 14505 - jiti: 1.21.6 14424 + jiti: 1.21.7 14506 14425 lilconfig: 3.1.3 14507 14426 micromatch: 4.0.8 14508 14427 normalize-path: 3.0.0 ··· 14514 14433 postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.3)) 14515 14434 postcss-nested: 6.2.0(postcss@8.4.49) 14516 14435 postcss-selector-parser: 6.1.2 14517 - resolve: 1.22.8 14436 + resolve: 1.22.10 14518 14437 sucrase: 3.35.0 14519 14438 transitivePeerDependencies: 14520 14439 - ts-node ··· 14581 14500 14582 14501 through@2.3.8: {} 14583 14502 14584 - tinyexec@0.3.2: {} 14503 + tinyexec@0.3.1: {} 14585 14504 14586 14505 tinyglobby@0.2.10: 14587 14506 dependencies: 14588 - fdir: 6.4.3(picomatch@4.0.2) 14507 + fdir: 6.4.2(picomatch@4.0.2) 14589 14508 picomatch: 4.0.2 14590 14509 14591 14510 tlds@1.255.0: {} ··· 14615 14534 14616 14535 tree-kill@1.2.2: {} 14617 14536 14537 + ts-api-utils@1.4.3(typescript@5.8.3): 14538 + dependencies: 14539 + typescript: 5.8.3 14540 + 14618 14541 ts-api-utils@2.1.0(typescript@5.8.3): 14619 14542 dependencies: 14620 14543 typescript: 5.8.3 ··· 14658 14581 14659 14582 tslib@2.6.2: {} 14660 14583 14661 - tslib@2.8.1: {} 14662 - 14663 - tsup@8.3.5(jiti@1.21.6)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.6.1): 14584 + tsup@8.3.5(jiti@1.21.7)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.6.1): 14664 14585 dependencies: 14665 - bundle-require: 5.1.0(esbuild@0.24.2) 14586 + bundle-require: 5.0.0(esbuild@0.24.0) 14666 14587 cac: 6.7.14 14667 - chokidar: 4.0.3 14668 - consola: 3.4.0 14588 + chokidar: 4.0.1 14589 + consola: 3.2.3 14669 14590 debug: 4.4.0 14670 - esbuild: 0.24.2 14591 + esbuild: 0.24.0 14671 14592 joycon: 3.1.1 14672 14593 picocolors: 1.1.1 14673 - postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1) 14594 + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1) 14674 14595 resolve-from: 5.0.0 14675 - rollup: 4.31.0 14596 + rollup: 4.28.1 14676 14597 source-map: 0.8.0-beta.0 14677 14598 sucrase: 3.35.0 14678 - tinyexec: 0.3.2 14599 + tinyexec: 0.3.1 14679 14600 tinyglobby: 0.2.10 14680 14601 tree-kill: 1.2.2 14681 14602 optionalDependencies: 14682 14603 postcss: 8.4.49 14683 - typescript: 5.7.3 14604 + typescript: 5.7.2 14684 14605 transitivePeerDependencies: 14685 14606 - jiti 14686 14607 - supports-color ··· 14744 14665 media-typer: 0.3.0 14745 14666 mime-types: 2.1.35 14746 14667 14747 - typed-array-buffer@1.0.2: 14748 - dependencies: 14749 - call-bind: 1.0.8 14750 - es-errors: 1.3.0 14751 - is-typed-array: 1.1.13 14752 - 14753 14668 typed-array-buffer@1.0.3: 14754 14669 dependencies: 14755 - call-bound: 1.0.4 14670 + call-bound: 1.0.3 14756 14671 es-errors: 1.3.0 14757 14672 is-typed-array: 1.1.15 14758 - 14759 - typed-array-byte-length@1.0.1: 14760 - dependencies: 14761 - call-bind: 1.0.8 14762 - for-each: 0.3.3 14763 - gopd: 1.2.0 14764 - has-proto: 1.2.0 14765 - is-typed-array: 1.1.13 14766 14673 14767 14674 typed-array-byte-length@1.0.3: 14768 14675 dependencies: ··· 14772 14679 has-proto: 1.2.0 14773 14680 is-typed-array: 1.1.15 14774 14681 14775 - typed-array-byte-offset@1.0.3: 14776 - dependencies: 14777 - available-typed-arrays: 1.0.7 14778 - call-bind: 1.0.8 14779 - for-each: 0.3.3 14780 - gopd: 1.2.0 14781 - has-proto: 1.2.0 14782 - is-typed-array: 1.1.13 14783 - reflect.getprototypeof: 1.0.8 14784 - 14785 14682 typed-array-byte-offset@1.0.4: 14786 14683 dependencies: 14787 14684 available-typed-arrays: 1.0.7 ··· 14790 14687 gopd: 1.2.0 14791 14688 has-proto: 1.2.0 14792 14689 is-typed-array: 1.1.15 14793 - reflect.getprototypeof: 1.0.10 14690 + reflect.getprototypeof: 1.0.9 14794 14691 14795 14692 typed-array-length@1.0.7: 14796 14693 dependencies: 14797 14694 call-bind: 1.0.8 14798 14695 for-each: 0.3.3 14799 14696 gopd: 1.2.0 14800 - is-typed-array: 1.1.13 14697 + is-typed-array: 1.1.15 14801 14698 possible-typed-array-names: 1.0.0 14802 - reflect.getprototypeof: 1.0.8 14699 + reflect.getprototypeof: 1.0.9 14803 14700 14804 - typescript@5.7.3: {} 14701 + typescript@5.7.2: {} 14805 14702 14806 14703 typescript@5.8.3: {} 14807 14704 14808 - ua-parser-js@1.0.39: {} 14705 + ua-parser-js@1.0.40: {} 14809 14706 14810 14707 udomdiff@1.1.2: {} 14811 14708 ··· 14826 14723 dependencies: 14827 14724 multiformats: 9.9.0 14828 14725 14829 - unbox-primitive@1.0.2: 14830 - dependencies: 14831 - call-bind: 1.0.8 14832 - has-bigints: 1.0.2 14833 - has-symbols: 1.1.0 14834 - which-boxed-primitive: 1.1.0 14835 - 14836 14726 unbox-primitive@1.1.0: 14837 14727 dependencies: 14838 - call-bound: 1.0.4 14839 - has-bigints: 1.0.2 14728 + call-bound: 1.0.3 14729 + has-bigints: 1.1.0 14840 14730 has-symbols: 1.1.0 14841 14731 which-boxed-primitive: 1.1.1 14842 14732 ··· 14875 14765 dependencies: 14876 14766 punycode: 2.3.1 14877 14767 14878 - use-callback-ref@1.3.2(@types/react@19.0.14)(react@19.0.0): 14768 + use-callback-ref@1.3.3(@types/react@19.0.14)(react@19.0.0): 14879 14769 dependencies: 14880 14770 react: 19.0.0 14881 - tslib: 2.8.1 14771 + tslib: 2.6.2 14882 14772 optionalDependencies: 14883 14773 '@types/react': 19.0.14 14884 14774 ··· 14886 14776 dependencies: 14887 14777 react: 19.0.0 14888 14778 14889 - use-sidecar@1.1.2(@types/react@19.0.14)(react@19.0.0): 14779 + use-sidecar@1.1.3(@types/react@19.0.14)(react@19.0.0): 14890 14780 dependencies: 14891 14781 detect-node-es: 1.1.0 14892 14782 react: 19.0.0 14893 - tslib: 2.8.1 14783 + tslib: 2.6.2 14894 14784 optionalDependencies: 14895 14785 '@types/react': 19.0.14 14896 14786 ··· 14909 14799 inherits: 2.0.4 14910 14800 is-arguments: 1.2.0 14911 14801 is-generator-function: 1.0.10 14912 - is-typed-array: 1.1.13 14913 - which-typed-array: 1.1.16 14802 + is-typed-array: 1.1.15 14803 + which-typed-array: 1.1.18 14914 14804 14915 14805 utils-merge@1.0.1: {} 14916 14806 ··· 14969 14859 acorn: 8.14.0 14970 14860 browserslist: 4.24.3 14971 14861 chrome-trace-event: 1.0.4 14972 - enhanced-resolve: 5.17.1 14973 - es-module-lexer: 1.5.4 14862 + enhanced-resolve: 5.18.0 14863 + es-module-lexer: 1.6.0 14974 14864 eslint-scope: 5.1.1 14975 14865 events: 3.3.0 14976 14866 glob-to-regexp: 0.4.1 ··· 15008 14898 tr46: 1.0.1 15009 14899 webidl-conversions: 4.0.2 15010 14900 15011 - which-boxed-primitive@1.1.0: 15012 - dependencies: 15013 - is-bigint: 1.1.0 15014 - is-boolean-object: 1.2.1 15015 - is-number-object: 1.1.0 15016 - is-string: 1.1.0 15017 - is-symbol: 1.1.1 15018 - 15019 14901 which-boxed-primitive@1.1.1: 15020 14902 dependencies: 15021 14903 is-bigint: 1.1.0 ··· 15026 14908 15027 14909 which-builtin-type@1.2.1: 15028 14910 dependencies: 15029 - call-bound: 1.0.4 15030 - function.prototype.name: 1.1.6 14911 + call-bound: 1.0.3 14912 + function.prototype.name: 1.1.8 15031 14913 has-tostringtag: 1.0.2 15032 14914 is-async-function: 2.0.0 15033 14915 is-date-object: 1.1.0 15034 - is-finalizationregistry: 1.1.0 14916 + is-finalizationregistry: 1.1.1 15035 14917 is-generator-function: 1.0.10 15036 14918 is-regex: 1.2.1 15037 14919 is-weakref: 1.1.0 15038 14920 isarray: 2.0.5 15039 - which-boxed-primitive: 1.1.0 14921 + which-boxed-primitive: 1.1.1 15040 14922 which-collection: 1.0.2 15041 - which-typed-array: 1.1.16 14923 + which-typed-array: 1.1.18 15042 14924 15043 14925 which-collection@1.0.2: 15044 14926 dependencies: 15045 14927 is-map: 2.0.3 15046 14928 is-set: 2.0.3 15047 14929 is-weakmap: 2.0.2 15048 - is-weakset: 2.0.3 14930 + is-weakset: 2.0.4 15049 14931 15050 - which-typed-array@1.1.16: 14932 + which-typed-array@1.1.18: 15051 14933 dependencies: 15052 14934 available-typed-arrays: 1.0.7 15053 14935 call-bind: 1.0.8 14936 + call-bound: 1.0.3 15054 14937 for-each: 0.3.3 15055 - gopd: 1.2.0 15056 - has-tostringtag: 1.0.2 15057 - 15058 - which-typed-array@1.1.19: 15059 - dependencies: 15060 - available-typed-arrays: 1.0.7 15061 - call-bind: 1.0.8 15062 - call-bound: 1.0.4 15063 - for-each: 0.3.5 15064 - get-proto: 1.0.1 15065 14938 gopd: 1.2.0 15066 14939 has-tostringtag: 1.0.2 15067 14940 ··· 15140 15013 15141 15014 yocto-queue@0.1.0: {} 15142 15015 15143 - zod-validation-error@3.4.0(zod@3.24.1): 15016 + zod-validation-error@3.4.0(zod@3.23.8): 15144 15017 dependencies: 15145 - zod: 3.24.1 15018 + zod: 3.23.8 15146 15019 15147 - zod@3.24.1: {} 15020 + zod@3.23.8: {} 15148 15021 15149 - zustand@5.0.4(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)): 15022 + zustand@5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)): 15150 15023 optionalDependencies: 15151 15024 '@types/react': 19.0.14 15152 15025 react: 19.0.0
+2 -2
pnpm-workspace.yaml
··· 1 1 packages: 2 - - 'apps/*' 3 - - 'packages/*' 2 + - "apps/*" 3 + - "packages/*"
+38
prettier.config.cjs
··· 1 + /** @typedef {import("@ianvs/prettier-plugin-sort-imports").PluginConfig} SortImportsConfig*/ 2 + /** @typedef {import("prettier").Config} PrettierConfig*/ 3 + /** @typedef {{ tailwindConfig: string }} TailwindConfig*/ 4 + 5 + /** @type { PrettierConfig | SortImportsConfig | TailwindConfig } */ 6 + const config = { 7 + arrowParens: "always", 8 + printWidth: 80, 9 + singleQuote: false, 10 + jsxSingleQuote: false, 11 + semi: true, 12 + trailingComma: "all", 13 + tabWidth: 2, 14 + // pluginSearchDirs: false, 15 + plugins: [ 16 + "@ianvs/prettier-plugin-sort-imports", 17 + "prettier-plugin-tailwindcss", 18 + ], 19 + tailwindConfig: "./apps/amethyst/tailwind.config.js", 20 + importOrder: [ 21 + "^(react/(.*)$)|^(react$)|^(react-native(.*)$)", 22 + "^(next/(.*)$)|^(next$)", 23 + "^(expo(.*)$)|^(expo$)", 24 + "<THIRD_PARTY_MODULES>", 25 + "", 26 + "^@teal/(.*)$", 27 + "", 28 + "^~/utils/(.*)$", 29 + "^~/components/(.*)$", 30 + "^~/styles/(.*)$", 31 + "^~/(.*)$", 32 + "^[./]", 33 + ], 34 + importOrderParserPlugins: ["typescript", "jsx", "decorators-legacy"], 35 + importOrderTypeScriptVersion: "5.0.4", 36 + }; 37 + 38 + module.exports = config;