diff --git a/.env.example b/.env.example
deleted file mode 100644
index d555920..0000000
--- a/.env.example
+++ /dev/null
@@ -1,4 +0,0 @@
-EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=
-
-POSTHOG_PROJECT_TOKEN=
-POSTHOG_HOST=https://us.i.posthog.com
\ No newline at end of file
diff --git a/README.md b/README.md
index 89963fc..db4cedf 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,6 @@

-
@@ -52,20 +51,22 @@ If you're getting started and need assistance or face any bugs, join our active
## ⚙️ Tech Stack
### Frontend & Mobile
-* **[React Native](https://reactnative.dev/)** is a powerful framework for building native mobile applications using React. It allows for a single codebase to run on both iOS and Android while maintaining the performance and feel of a truly native app.
-* **[Expo](https://jsm.dev/nativesub-expo)** is the official framework recommended by the React Native team. It provides a robust set of tools and services—like file-based routing and EAS (Expo Application Services)—that streamline the development, building, and submission process.
-* **[TypeScript](https://www.typescriptlang.org/)** is a strongly typed programming language that builds on JavaScript. It provides static typing to catch errors early during development, improving code maintainability across the entire full-stack codebase.
-* **[NativeWind](https://www.nativewind.dev/)** allows you to style your React Native applications using **Tailwind CSS**. It brings the efficiency of utility-first CSS to mobile, enabling rapid UI development with a consistent design system.
+
+- **[React Native](https://reactnative.dev/)** is a powerful framework for building native mobile applications using React. It allows for a single codebase to run on both iOS and Android while maintaining the performance and feel of a truly native app.
+- **[Expo](https://jsm.dev/nativesub-expo)** is the official framework recommended by the React Native team. It provides a robust set of tools and services—like file-based routing and EAS (Expo Application Services)—that streamline the development, building, and submission process.
+- **[TypeScript](https://www.typescriptlang.org/)** is a strongly typed programming language that builds on JavaScript. It provides static typing to catch errors early during development, improving code maintainability across the entire full-stack codebase.
+- **[NativeWind](https://www.nativewind.dev/)** allows you to style your React Native applications using **Tailwind CSS**. It brings the efficiency of utility-first CSS to mobile, enabling rapid UI development with a consistent design system.
### Backend & Database
-* **[Node.js](https://nodejs.org/)** serves as the cross-platform JavaScript runtime environment that executes the backend service, providing high performance for asynchronous API operations.
-* **[Express](https://expressjs.com/)** is a minimal and flexible Node.js web application framework. It serves as the middleware layer for the Recurrly backend, handling routing, API requests, and seamless integration with the database.
-* **[MongoDB](https://www.mongodb.com/)** is a NoSQL database used to store user data and subscription details. Its flexible document-based structure is ideal for handling the evolving data needs of a subscription management platform.
+
+- **[Node.js](https://nodejs.org/)** serves as the cross-platform JavaScript runtime environment that executes the backend service, providing high performance for asynchronous API operations.
+- **[Express](https://expressjs.com/)** is a minimal and flexible Node.js web application framework. It serves as the middleware layer for the Recurrly backend, handling routing, API requests, and seamless integration with the database.
+- **[MongoDB](https://www.mongodb.com/)** is a NoSQL database used to store user data and subscription details. Its flexible document-based structure is ideal for handling the evolving data needs of a subscription management platform.
### Infrastructure & Tools
-* **[Clerk](https://jsm.dev/nativesub-clerk)** provides a complete suite of authentication and user management tools. It handles secure sign-ins, session management, and integrates seamlessly with billing workflows.
-* **[PostHog](https://jsm.dev/nativesub-posthog)** is an all-in-one platform for product analytics. It helps track user behavior, feature usage, and conversion rates, giving you the data needed to improve the app based on real-world usage.
-* **[CodeRabbit](https://jsm.dev/nativesub-coderabbit)** is an AI-powered code review assistant. It provides deep, context-aware feedback on pull requests, helping maintain high code quality and catching potential bugs before they reach production.
+
+- **[Clerk](https://jsm.dev/nativesub-clerk)** provides a complete suite of authentication and user management tools. It handles secure sign-ins, session management, and integrates seamlessly with billing workflows.
+- **[CodeRabbit](https://jsm.dev/nativesub-coderabbit)** is an AI-powered code review assistant. It provides deep, context-aware feedback on pull requests, helping maintain high code quality and catching potential bugs before they reach production.
## 🔋 Features
@@ -85,8 +86,6 @@ If you're getting started and need assistance or face any bugs, join our active
👉 **Monetization Ready**: Integrated billing and payment flows, allowing you to transition from a free tool to a paid service with professional-grade infrastructure.
-👉 **Production-Grade Analytics**: Real-time insights into user behavior and app performance via PostHog, ensuring every feature is optimized for the best user experience.
-
And many more, including code architecture and reusability.
## 🤸 Quick Start
@@ -110,63 +109,62 @@ cd react-native-recurrly
## Installation
- Before you begin developing your app, it's essential to set up Expo and initialize your project.
- - Start by creating a folder for your application. Then, open your terminal and navigate to that folder. To create an Expo app, you can use:
+Before you begin developing your app, it's essential to set up Expo and initialize your project.
- ```bash
- npx create-expo-app@latest
- ```
+- Start by creating a folder for your application. Then, open your terminal and navigate to that folder. To create an Expo app, you can use:
- By default, you get a TypeScript Expo app with Expo Router configured.
+```bash
+npx create-expo-app@latest
+```
- If you want a different starter (blank JS, blank TS, tabs, etc.), you can run:
+By default, you get a TypeScript Expo app with Expo Router configured.
- ```bash
- npx create-expo-app@latest --template
- ```
+If you want a different starter (blank JS, blank TS, tabs, etc.), you can run:
- And pick whichever template fits your workflow.
+```bash
+npx create-expo-app@latest --template
+```
+
+And pick whichever template fits your workflow.
+
+Since this repository is already created, install dependencies and start the development server:
- Since this repository is already created, install dependencies and start the development server:
+```bash
+npm install
+npx expo start
+```
- ```bash
- npm install
- npx expo start
- ```
+`npx expo start` means "download (if needed) and execute Expo locally." It starts Metro Bundler, which compiles and serves your React Native code.
- `npx expo start` means "download (if needed) and execute Expo locally." It starts Metro Bundler, which compiles and serves your React Native code.
+Once it starts, you'll see a QR code and shortcut keys in the terminal. For example:
- Once it starts, you'll see a QR code and shortcut keys in the terminal. For example:
- - `a` opens Android
- - `i` opens iOS Simulator (macOS)
- - `w` opens web
- - `r` reloads
- - `m` opens dev menu in Expo Go / device context
+- `a` opens Android
+- `i` opens iOS Simulator (macOS)
+- `w` opens web
+- `r` reloads
+- `m` opens dev menu in Expo Go / device context
- We don't need to rely on heavy IDE tooling to begin. The easiest flow is using Expo Go on your phone.
+We don't need to rely on heavy IDE tooling to begin. The easiest flow is using Expo Go on your phone.
- Expo Go is a mobile app that lets you test React Native apps quickly by scanning a QR code. It's fast, beginner-friendly, and supports real-time updates while you code.
+Expo Go is a mobile app that lets you test React Native apps quickly by scanning a QR code. It's fast, beginner-friendly, and supports real-time updates while you code.
- Open Google Play Store or Apple App Store, install **Expo Go**, then come back here and scan the QR code.
+Open Google Play Store or Apple App Store, install **Expo Go**, then come back here and scan the QR code.
- ### iOS VPN Turn OFF, and network permissions…
+### iOS VPN Turn OFF, and network permissions…
- Now open Expo Go and scan the QR code from the terminal. The app should compile and launch.
+Now open Expo Go and scan the QR code from the terminal. The app should compile and launch.
- If all is good, you'll see the starter app with two tabs: Home and Explore.
+If all is good, you'll see the starter app with two tabs: Home and Explore.
## Set Up Environment Variables
Create a new file named `.env` in the root of your project and add the following content:
-
```env
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=
-POSTHOG_PROJECT_TOKEN=
-POSTHOG_HOST=https://us.i.posthog.com
```
-Replace the placeholder values with your real credentials. You can get these by signing up at: [**Expo**](https://jsm.dev/nativesub-exp), [**PostHog**](https://jsm.dev/nativesub-posthog) .
+Replace the placeholder values with your real credentials. You can get these by signing up at: [**Expo**](https://jsm.dev/nativesub-exp).
**Running the Project**
diff --git a/app.config.js b/app.config.js
index 02b9821..368c31d 100644
--- a/app.config.js
+++ b/app.config.js
@@ -1,12 +1,10 @@
-const appJson = require('./app.json')
+const appJson = require("./app.json");
export default {
expo: {
...appJson.expo,
extra: {
...(appJson.expo?.extra || {}),
- posthogProjectToken: process.env.POSTHOG_PROJECT_TOKEN,
- posthogHost: process.env.POSTHOG_HOST,
},
},
-}
+};
diff --git a/app.json b/app.json
index 3479878..c5d9eaf 100644
--- a/app.json
+++ b/app.json
@@ -1,11 +1,11 @@
{
"expo": {
- "name": "react_native-recurrly",
- "slug": "react_native-recurrly",
+ "name": "recurrly",
+ "slug": "recurrly",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/images/icon.png",
- "scheme": "reactnativerecurrly",
+ "scheme": "recurrly",
"userInterfaceStyle": "automatic",
"newArchEnabled": true,
"ios": {
diff --git a/app/(auth)/sign-in.tsx b/app/(auth)/sign-in.tsx
index 77f2ca4..2b518e7 100644
--- a/app/(auth)/sign-in.tsx
+++ b/app/(auth)/sign-in.tsx
@@ -1,314 +1,319 @@
-import { View, Text, TextInput, Pressable, ScrollView, KeyboardAvoidingView, Platform } from 'react-native';
-import { Link, useRouter, type Href } from 'expo-router';
-import { useSignIn } from '@clerk/expo';
-import { useState } from 'react';
-import { SafeAreaView as RNSafeAreaView } from 'react-native-safe-area-context';
-import { styled } from 'nativewind';
-import { usePostHog } from 'posthog-react-native';
+import { useSignIn } from "@clerk/expo";
+import { Link, useRouter, type Href } from "expo-router";
+import { styled } from "nativewind";
+import { useState } from "react";
+import {
+ KeyboardAvoidingView,
+ Platform,
+ Pressable,
+ ScrollView,
+ Text,
+ TextInput,
+ View,
+} from "react-native";
+import { SafeAreaView as RNSafeAreaView } from "react-native-safe-area-context";
const SafeAreaView = styled(RNSafeAreaView);
const SignIn = () => {
- const { signIn, errors, fetchStatus } = useSignIn();
- const router = useRouter();
- const posthog = usePostHog();
+ const { signIn, errors, fetchStatus } = useSignIn();
+ const router = useRouter();
- const [emailAddress, setEmailAddress] = useState('');
- const [password, setPassword] = useState('');
- const [code, setCode] = useState('');
+ const [identifier, setIdentifier] = useState("");
+ const [password, setPassword] = useState("");
+ const [code, setCode] = useState("");
- // Validation states
- const [emailTouched, setEmailTouched] = useState(false);
- const [passwordTouched, setPasswordTouched] = useState(false);
+ // Validation states
+ const [identifierTouched, setIdentifierTouched] = useState(false);
+ const [passwordTouched, setPasswordTouched] = useState(false);
- // Client-side validation
- const emailValid = emailAddress.length === 0 || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(emailAddress);
- const passwordValid = password.length > 0;
- const formValid = emailAddress.length > 0 && password.length > 0 && emailValid;
+ // Client-side validation: accepts email or username
+ const isEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(identifier);
+ const isUsername = identifier.length > 0 && !identifier.includes("@");
+ const identifierValid = identifier.length === 0 || isEmail || isUsername;
+ const passwordValid = password.length > 0;
+ const formValid =
+ identifier.length > 0 && password.length > 0 && identifierValid;
- const handleSubmit = async () => {
- if (!formValid) return;
+ const handleSubmit = async () => {
+ if (!formValid) return;
- const { error } = await signIn.password({
- emailAddress,
- password,
- });
+ const { error } = await signIn.create({
+ identifier,
+ password,
+ });
- if (error) {
- console.error(JSON.stringify(error, null, 2));
- posthog.capture('user_sign_in_failed', {
- error_message: error.message,
- });
- return;
- }
-
- if (signIn.status === 'complete') {
- await signIn.finalize({
- navigate: ({ session, decorateUrl }) => {
- if (session?.currentTask) {
- console.log(session?.currentTask);
- return;
- }
-
- posthog.identify(emailAddress, {
- $set: { email: emailAddress },
- $set_once: { first_sign_in_date: new Date().toISOString() },
- });
- posthog.capture('user_signed_in', { email: emailAddress });
+ if (error) {
+ console.error(JSON.stringify(error, null, 2));
+ return;
+ }
- const url = decorateUrl('/(tabs)');
- if (url.startsWith('http')) {
- // Only use window.location on web platform
- if (typeof window !== 'undefined' && window.location) {
- window.location.href = url;
- } else {
- // On native, just use router navigation
- router.replace('/(tabs)' as Href);
- }
- } else {
- router.replace(url as Href);
- }
- },
- });
- } else if (signIn.status === 'needs_second_factor') {
- // Handle MFA if needed (not implemented in this basic flow)
- console.log('MFA required');
- } else if (signIn.status === 'needs_client_trust') {
- // Send email code for client trust verification
- const emailCodeFactor = signIn.supportedSecondFactors.find(
- (factor) => factor.strategy === 'email_code'
- );
+ if (signIn.status === "complete") {
+ await signIn.finalize({
+ navigate: ({ session, decorateUrl }) => {
+ if (session?.currentTask) {
+ console.log(session?.currentTask);
+ return;
+ }
- if (emailCodeFactor) {
- await signIn.mfa.sendEmailCode();
+ const url = decorateUrl("/(tabs)");
+ if (url.startsWith("http")) {
+ // Only use window.location on web platform
+ if (typeof window !== "undefined" && window.location) {
+ window.location.href = url;
+ } else {
+ // On native, just use router navigation
+ router.replace("/(tabs)" as Href);
}
- } else {
- console.error('Sign-in attempt not complete:', signIn);
- }
- };
+ } else {
+ router.replace(url as Href);
+ }
+ },
+ });
+ } else if (signIn.status === "needs_second_factor") {
+ // Handle MFA if needed (not implemented in this basic flow)
+ console.log("MFA required");
+ } else if (signIn.status === "needs_client_trust") {
+ // Send email code for client trust verification
+ const emailCodeFactor = signIn.supportedSecondFactors.find(
+ (factor) => factor.strategy === "email_code",
+ );
- const handleVerify = async () => {
- await signIn.mfa.verifyEmailCode({ code });
+ if (emailCodeFactor) {
+ await signIn.mfa.sendEmailCode();
+ }
+ } else {
+ console.error("Sign-in attempt not complete:", signIn);
+ }
+ };
- if (signIn.status === 'complete') {
- await signIn.finalize({
- navigate: ({ session, decorateUrl }) => {
- if (session?.currentTask) {
- console.log(session?.currentTask);
- return;
- }
+ const handleVerify = async () => {
+ await signIn.mfa.verifyEmailCode({ code });
- // Track successful sign-in after verification
- posthog.identify(emailAddress, {
- $set: { email: emailAddress },
- $set_once: { first_sign_in_date: new Date().toISOString() },
- });
- posthog.capture('user_signed_in', { email: emailAddress });
+ if (signIn.status === "complete") {
+ await signIn.finalize({
+ navigate: ({ session, decorateUrl }) => {
+ if (session?.currentTask) {
+ console.log(session?.currentTask);
+ return;
+ }
- const url = decorateUrl('/(tabs)');
- if (url.startsWith('http')) {
- // Only use window.location on web platform
- if (typeof window !== 'undefined' && window.location) {
- window.location.href = url;
- } else {
- // On native, just use router navigation
- router.replace('/(tabs)' as Href);
- }
- } else {
- router.replace(url as Href);
- }
- },
- });
- } else {
- console.error('Sign-in attempt not complete:', signIn);
- }
- };
+ const url = decorateUrl("/(tabs)");
+ if (url.startsWith("http")) {
+ // Only use window.location on web platform
+ if (typeof window !== "undefined" && window.location) {
+ window.location.href = url;
+ } else {
+ // On native, just use router navigation
+ router.replace("/(tabs)" as Href);
+ }
+ } else {
+ router.replace(url as Href);
+ }
+ },
+ });
+ } else {
+ console.error("Sign-in attempt not complete:", signIn);
+ }
+ };
- // Show verification screen if client trust is needed
- if (signIn.status === 'needs_client_trust') {
- return (
-
-
-
-
- {/* Branding */}
-
-
-
- R
-
-
- Recurrly
- SUBSCRIPTIONS
-
-
- Verify your identity
-
- We sent a verification code to your email
-
-
+ // Show verification screen if client trust is needed
+ if (signIn.status === "needs_client_trust") {
+ return (
+
+
+
+
+ {/* Branding */}
+
+
+
+ R
+
+
+ Recurrly
+ SUBSCRIPTIONS
+
+
+ Verify your identity
+
+ We sent a verification code to your email
+
+
- {/* Verification Form */}
-
-
-
- Verification Code
-
- {errors.fields.code && (
- {errors.fields.code.message}
- )}
-
+ {/* Verification Form */}
+
+
+
+ Verification Code
+
+ {errors.fields.code && (
+
+ {errors.fields.code.message}
+
+ )}
+
-
-
- {fetchStatus === 'fetching' ? 'Verifying...' : 'Verify'}
-
-
+
+
+ {fetchStatus === "fetching" ? "Verifying..." : "Verify"}
+
+
- signIn.mfa.sendEmailCode()}
- disabled={fetchStatus === 'fetching'}
- >
- Resend Code
-
+ signIn.mfa.sendEmailCode()}
+ disabled={fetchStatus === "fetching"}
+ >
+
+ Resend Code
+
+
- signIn.reset()}
- disabled={fetchStatus === 'fetching'}
- >
- Start Over
-
-
-
-
-
-
-
- );
- }
+ signIn.reset()}
+ disabled={fetchStatus === "fetching"}
+ >
+
+ Start Over
+
+
+
+
+
+
+
+
+ );
+ }
- // Main sign-in form
- return (
-
-
-
-
- {/* Branding */}
-
-
-
- R
-
-
- Recurrly
- SUBSCRIPTIONS
-
-
- Welcome back
-
- Sign in to continue managing your subscriptions
-
-
+ // Main sign-in form
+ return (
+
+
+
+
+ {/* Branding */}
+
+
+
+ R
+
+
+ Recurrly
+ SUBSCRIPTIONS
+
+
+ Welcome back
+
+ Sign in to continue managing your subscriptions
+
+
- {/* Sign-In Form */}
-
-
-
- Email Address
- setEmailTouched(true)}
- keyboardType="email-address"
- autoComplete="email"
- />
- {emailTouched && !emailValid && (
- Please enter a valid email address
- )}
- {errors.fields.identifier && (
- {errors.fields.identifier.message}
- )}
-
+ {/* Sign-In Form */}
+
+
+
+ Email or Username
+ setIdentifierTouched(true)}
+ keyboardType="email-address"
+ autoComplete="username"
+ />
+ {identifierTouched && !identifierValid && (
+
+ Please enter a valid email or username
+
+ )}
+ {errors.fields.identifier && (
+
+ {errors.fields.identifier.message}
+
+ )}
+
-
- Password
- setPasswordTouched(true)}
- autoComplete="password"
- />
- {passwordTouched && !passwordValid && (
- Password is required
- )}
- {errors.fields.password && (
- {errors.fields.password.message}
- )}
-
+
+ Password
+ setPasswordTouched(true)}
+ autoComplete="password"
+ />
+ {passwordTouched && !passwordValid && (
+ Password is required
+ )}
+ {errors.fields.password && (
+
+ {errors.fields.password.message}
+
+ )}
+
-
-
- {fetchStatus === 'fetching' ? 'Signing In...' : 'Sign In'}
-
-
-
-
+
+
+ {fetchStatus === "fetching" ? "Signing In..." : "Sign In"}
+
+
+
+
- {/* Sign-Up Link */}
-
- Don't have an account?
-
-
- Create Account
-
-
-
-
-
-
-
- );
+ {/* Sign-Up Link */}
+
+ Don't have an account?
+
+
+ Create Account
+
+
+
+
+
+
+
+ );
};
export default SignIn;
diff --git a/app/(auth)/sign-up.tsx b/app/(auth)/sign-up.tsx
index b3eda26..1c3e410 100644
--- a/app/(auth)/sign-up.tsx
+++ b/app/(auth)/sign-up.tsx
@@ -1,284 +1,323 @@
-import { View, Text, TextInput, Pressable, ScrollView, KeyboardAvoidingView, Platform } from 'react-native';
-import { Link, useRouter, type Href } from 'expo-router';
-import { useSignUp, useAuth } from '@clerk/expo';
-import { useState } from 'react';
-import { SafeAreaView as RNSafeAreaView } from 'react-native-safe-area-context';
-import { styled } from 'nativewind';
-import { usePostHog } from 'posthog-react-native';
+import { useAuth, useSignUp } from "@clerk/expo";
+import { Link, useRouter, type Href } from "expo-router";
+import { styled } from "nativewind";
+import { useState } from "react";
+import {
+ KeyboardAvoidingView,
+ Platform,
+ Pressable,
+ ScrollView,
+ Text,
+ TextInput,
+ View,
+} from "react-native";
+import { SafeAreaView as RNSafeAreaView } from "react-native-safe-area-context";
const SafeAreaView = styled(RNSafeAreaView);
const SignUp = () => {
- const { signUp, errors, fetchStatus } = useSignUp();
- const { isSignedIn } = useAuth();
- const router = useRouter();
- const posthog = usePostHog();
+ const { signUp, errors, fetchStatus } = useSignUp();
+ const { isSignedIn } = useAuth();
+ const router = useRouter();
- const [emailAddress, setEmailAddress] = useState('');
- const [password, setPassword] = useState('');
- const [code, setCode] = useState('');
+ const [emailAddress, setEmailAddress] = useState("");
+ const [userName, setUsername] = useState("");
+ const [password, setPassword] = useState("");
+ const [code, setCode] = useState("");
- // Validation states
- const [emailTouched, setEmailTouched] = useState(false);
- const [passwordTouched, setPasswordTouched] = useState(false);
+ // Validation states
+ const [emailTouched, setEmailTouched] = useState(false);
+ const [usernameTouched, setUsernameTouched] = useState(false);
+ const [passwordTouched, setPasswordTouched] = useState(false);
- // Client-side validation
- const emailValid = emailAddress.length === 0 || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(emailAddress);
- const passwordValid = password.length === 0 || password.length >= 8;
- const formValid = emailAddress.length > 0 && password.length >= 8 && emailValid;
+ // Client-side validation
+ const emailValid =
+ emailAddress.length === 0 ||
+ /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(emailAddress);
+ const passwordValid = password.length === 0 || password.length >= 8;
+ const usernameValid = userName.length > 0;
+ const formValid =
+ emailAddress.length > 0 && password.length >= 8 && emailValid && userName.length > 0;
- const handleSubmit = async () => {
- if (!formValid) return;
+ const handleSubmit = async () => {
+ if (!formValid) return;
- const { error } = await signUp.password({
- emailAddress,
- password,
- });
+ const { error } = await signUp.password({
+ emailAddress,
+ username: userName,
+ password,
+ });
- if (error) {
- console.error(JSON.stringify(error, null, 2));
- posthog.capture('user_sign_up_failed', {
- error_message: error.message,
- });
- return;
- }
+ if (error) {
+ console.error(JSON.stringify(error, null, 2));
+ return;
+ }
- // Send verification email
- if (!error) {
- await signUp.verifications.sendEmailCode();
- }
- };
+ // Send verification email
+ if (!error) {
+ await signUp.verifications.sendEmailCode();
+ }
+ };
- const handleVerify = async () => {
- await signUp.verifications.verifyEmailCode({
- code,
- });
+ const handleVerify = async () => {
+ await signUp.verifications.verifyEmailCode({
+ code,
+ });
- if (signUp.status === 'complete') {
- await signUp.finalize({
- navigate: ({ session, decorateUrl }) => {
- if (session?.currentTask) {
- console.log(session?.currentTask);
- return;
- }
+ if (signUp.status === "complete") {
+ await signUp.finalize({
+ navigate: ({ session, decorateUrl }) => {
+ if (session?.currentTask) {
+ console.log(session?.currentTask);
+ return;
+ }
- posthog.identify(emailAddress, {
- $set: { email: emailAddress },
- $set_once: { sign_up_date: new Date().toISOString() },
- });
- posthog.capture('user_signed_up', { email: emailAddress });
+ const url = decorateUrl("/(tabs)");
+ if (url.startsWith("http")) {
+ // Only use window.location on web platform
+ if (typeof window !== "undefined" && window.location) {
+ window.location.href = url;
+ } else {
+ // On native, just use router navigation
+ router.replace("/(tabs)" as Href);
+ }
+ } else {
+ router.replace(url as Href);
+ }
+ },
+ });
+ } else {
+ console.error("Sign-up attempt not complete:", signUp);
+ }
+ };
- const url = decorateUrl('/(tabs)');
- if (url.startsWith('http')) {
- // Only use window.location on web platform
- if (typeof window !== 'undefined' && window.location) {
- window.location.href = url;
- } else {
- // On native, just use router navigation
- router.replace('/(tabs)' as Href);
- }
- } else {
- router.replace(url as Href);
- }
- },
- });
- } else {
- console.error('Sign-up attempt not complete:', signUp);
- }
- };
+ // Don't show anything if already signed in or sign-up is complete
+ if (signUp.status === "complete" || isSignedIn) {
+ return null;
+ }
- // Don't show anything if already signed in or sign-up is complete
- if (signUp.status === 'complete' || isSignedIn) {
- return null;
- }
+ // Show verification screen if email needs verification
+ if (
+ signUp.status === "missing_requirements" &&
+ signUp.unverifiedFields.includes("email_address") &&
+ signUp.missingFields.length === 0
+ ) {
+ return (
+
+
+
+
+ {/* Branding */}
+
+
+
+ R
+
+
+ Recurrly
+ SUBSCRIPTIONS
+
+
+ Verify your email
+
+ We sent a verification code to {emailAddress}
+
+
- // Show verification screen if email needs verification
- if (
- signUp.status === 'missing_requirements' &&
- signUp.unverifiedFields.includes('email_address') &&
- signUp.missingFields.length === 0
- ) {
- return (
-
-
-
-
- {/* Branding */}
-
-
-
- R
-
-
- Recurrly
- SUBSCRIPTIONS
-
-
- Verify your email
-
- We sent a verification code to {emailAddress}
-
-
+ {/* Verification Form */}
+
+
+
+ Verification Code
+
+ {errors.fields.code && (
+
+ {errors.fields.code.message}
+
+ )}
+
- {/* Verification Form */}
-
-
-
- Verification Code
-
- {errors.fields.code && (
- {errors.fields.code.message}
- )}
-
+
+
+ {fetchStatus === "fetching"
+ ? "Verifying..."
+ : "Verify Email"}
+
+
-
-
- {fetchStatus === 'fetching' ? 'Verifying...' : 'Verify Email'}
-
-
+ signUp.verifications.sendEmailCode()}
+ disabled={fetchStatus === "fetching"}
+ >
+
+ Resend Code
+
+
+
+
+
+
+
+
+ );
+ }
- signUp.verifications.sendEmailCode()}
- disabled={fetchStatus === 'fetching'}
- >
- Resend Code
-
-
-
-
-
-
-
- );
- }
+ // Main sign-up form
+ return (
+
+
+
+
+ {/* Branding */}
+
+
+
+ R
+
+
+ Recurrly
+ SUBSCRIPTIONS
+
+
+ Create your account
+
+ Start tracking your subscriptions and never miss a payment
+
+
- // Main sign-up form
- return (
-
-
-
-
- {/* Branding */}
-
-
-
- R
-
-
- Recurrly
- SUBSCRIPTIONS
-
-
- Create your account
-
- Start tracking your subscriptions and never miss a payment
-
-
+ {/* Sign-Up Form */}
+
+
+
+ Email Address
+ setEmailTouched(true)}
+ keyboardType="email-address"
+ autoComplete="email"
+ />
+ {emailTouched && !emailValid && (
+
+ Please enter a valid email address
+
+ )}
+ {errors.fields.emailAddress && (
+
+ {errors.fields.emailAddress.message}
+
+ )}
+
- {/* Sign-Up Form */}
-
-
-
- Email Address
- setEmailTouched(true)}
- keyboardType="email-address"
- autoComplete="email"
- />
- {emailTouched && !emailValid && (
- Please enter a valid email address
- )}
- {errors.fields.emailAddress && (
- {errors.fields.emailAddress.message}
- )}
-
+
+ Username
+ setUsernameTouched(true)}
+ />
+ {usernameTouched && !usernameValid && (
+
+ Please enter a valid username
+
+ )}
+
-
- Password
- setPasswordTouched(true)}
- autoComplete="password-new"
- />
- {passwordTouched && !passwordValid && (
- Password must be at least 8 characters
- )}
- {errors.fields.password && (
- {errors.fields.password.message}
- )}
- {!passwordTouched && (
- Minimum 8 characters required
- )}
-
+
+ Password
+ setPasswordTouched(true)}
+ autoComplete="password-new"
+ />
+ {passwordTouched && !passwordValid && (
+
+ Password must be at least 8 characters
+
+ )}
+ {errors.fields.password && (
+
+ {errors.fields.password.message}
+
+ )}
+ {!passwordTouched && (
+
+ Minimum 8 characters required
+
+ )}
+
-
-
- {fetchStatus === 'fetching' ? 'Creating Account...' : 'Create Account'}
-
-
-
-
+
+
+ {fetchStatus === "fetching"
+ ? "Creating Account..."
+ : "Create Account"}
+
+
+
+
- {/* Sign-In Link */}
-
- Already have an account?
-
-
- Sign In
-
-
-
+ {/* Sign-In Link */}
+
+ Already have an account?
+
+
+ Sign In
+
+
+
- {/* Required for Clerk's bot protection */}
-
-
-
-
-
- );
+ {/* Required for Clerk's bot protection */}
+
+
+
+
+
+ );
};
export default SignUp;
diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx
index b6b4d97..105cbc0 100644
--- a/app/(tabs)/index.tsx
+++ b/app/(tabs)/index.tsx
@@ -1,131 +1,146 @@
-import "@/global.css"
-import {FlatList, Image, Pressable, Text, View} from "react-native";
-import {SafeAreaView as RNSafeAreaView} from "react-native-safe-area-context";
-import { styled } from "nativewind";
-import images from "@/constants/images";
-import {HOME_BALANCE} from "@/constants/data";
-import {icons} from "@/constants/icons";
-import {formatCurrency} from "@/lib/utils";
-import dayjs from "dayjs";
+import CreateSubscriptionModal from "@/components/CreateSubscriptionModal";
import ListHeading from "@/components/ListHeading";
-import UpcomingSubscriptionCard from "@/components/UpcomingSubscriptionCard";
import SubscriptionCard from "@/components/SubscriptionCard";
-import CreateSubscriptionModal from "@/components/CreateSubscriptionModal";
-import {useState, useMemo} from "react";
-import { useUser } from '@clerk/expo';
-import { usePostHog } from 'posthog-react-native';
+import UpcomingSubscriptionCard from "@/components/UpcomingSubscriptionCard";
+import { HOME_BALANCE } from "@/constants/data";
+import { icons } from "@/constants/icons";
+import images from "@/constants/images";
+import "@/global.css";
import { useSubscriptionStore } from "@/lib/subscriptionStore";
+import { formatCurrency } from "@/lib/utils";
+import { useUser } from "@clerk/expo";
+import dayjs from "dayjs";
+import { styled } from "nativewind";
+import { useMemo, useState } from "react";
+import { FlatList, Image, Pressable, Text, View } from "react-native";
+import { SafeAreaView as RNSafeAreaView } from "react-native-safe-area-context";
const SafeAreaView = styled(RNSafeAreaView);
export default function App() {
- const { user } = useUser();
- const posthog = usePostHog();
- const [expandedSubscriptionId, setExpandedSubscriptionId] = useState(null);
- const [isModalVisible, setIsModalVisible] = useState(false);
- const { subscriptions, addSubscription } = useSubscriptionStore();
+ const { user } = useUser();
+ const [expandedSubscriptionId, setExpandedSubscriptionId] = useState<
+ string | null
+ >(null);
+ const [isModalVisible, setIsModalVisible] = useState(false);
+ const { subscriptions, addSubscription } = useSubscriptionStore();
- // Get upcoming subscriptions (active subscriptions with renewal date within next 7 days)
- const upcomingSubscriptions = useMemo(() => {
- const now = dayjs();
- const nextWeek = now.add(7, 'days');
- return subscriptions.filter(sub =>
- sub.status === 'active' &&
- dayjs(sub.renewalDate).isAfter(now) &&
- dayjs(sub.renewalDate).isBefore(nextWeek)
- ).sort((a, b) => dayjs(a.renewalDate).diff(dayjs(b.renewalDate)));
- }, [subscriptions]);
+ // Get upcoming subscriptions (active subscriptions with renewal date within next 7 days)
- const handleSubscriptionPress = (item: Subscription) => {
- const isExpanding = expandedSubscriptionId !== item.id;
- setExpandedSubscriptionId((currentId) => (currentId === item.id ? null : item.id));
- posthog.capture(isExpanding ? 'subscription_expanded' : 'subscription_collapsed', {
- subscription_name: item.name,
- subscription_id: item.id,
- });
- };
+ const upcomingSubscriptions = useMemo(() => {
+ const now = dayjs().startOf("day");
+ return subscriptions
+ .filter((sub) => {
+ if (sub.status !== "active") return false;
+ const daysLeft = dayjs(sub.renewalDate).startOf("day").diff(now, "day");
+ return daysLeft >= 0 && daysLeft <= 7;
+ })
+ .sort((a, b) =>
+ dayjs(a.renewalDate)
+ .startOf("day")
+ .diff(dayjs(b.renewalDate).startOf("day")),
+ );
+ }, [subscriptions]);
- const handleCreateSubscription = (newSubscription: Subscription) => {
- addSubscription(newSubscription);
- posthog.capture('subscription_created', {
- subscription_name: newSubscription.name,
- subscription_price: newSubscription.price,
- subscription_frequency: newSubscription.frequency,
- subscription_category: newSubscription.category,
- });
- };
+ const handleSubscriptionPress = (item: Subscription) => {
+ const isExpanding = expandedSubscriptionId !== item.id;
+ setExpandedSubscriptionId((currentId) =>
+ currentId === item.id ? null : item.id,
+ );
+ };
- // Get user display name: firstName, fullName, or email
- const displayName = user?.firstName || user?.fullName || user?.emailAddresses[0]?.emailAddress || 'User';
+ const handleCreateSubscription = (newSubscription: Subscription) => {
+ addSubscription(newSubscription);
+ };
- return (
-
- (
- <>
-
-
-
- {displayName}
-
+ // Get user display name: firstName, fullName, or email
+ const displayName =
+ user?.username ||
+ user?.fullName ||
+ user?.emailAddresses[0]?.emailAddress ||
+ "User";
- setIsModalVisible(true)}>
-
-
-
+ return (
+
+ (
+ <>
+
+
+
+ {displayName}
+
-
- Balance
+ setIsModalVisible(true)}>
+
+
+
-
-
- {formatCurrency(HOME_BALANCE.amount)}
-
-
- {dayjs(HOME_BALANCE.nextRenewalDate).format('MM/DD')}
-
-
-
+
+ Balance
-
-
+
+
+ {formatCurrency(HOME_BALANCE.amount)}
+
+
+ {dayjs(HOME_BALANCE.nextRenewalDate).format("MM/DD")}
+
+
+
- ()}
- keyExtractor={(item) => item.id}
- horizontal
- showsHorizontalScrollIndicator={false}
- ListEmptyComponent={No upcoming renewals yet.}
- />
-
+
+
-
- >
- )}
- data={subscriptions}
- keyExtractor={(item) => item.id}
- renderItem={({ item }) => (
- handleSubscriptionPress(item)}
- />
- )}
- extraData={expandedSubscriptionId}
- ItemSeparatorComponent={() => }
- showsVerticalScrollIndicator={false}
- ListEmptyComponent={No subscriptions yet.}
- contentContainerClassName="pb-30"
- />
+ (
+
+ )}
+ keyExtractor={(item) => item.id}
+ horizontal
+ showsHorizontalScrollIndicator={false}
+ ListEmptyComponent={
+
+ No upcoming renewals yet.
+
+ }
+ />
+
- setIsModalVisible(false)}
- onSubmit={handleCreateSubscription}
- />
-
- );
+
+ >
+ )}
+ data={subscriptions}
+ keyExtractor={(item) => item.id}
+ renderItem={({ item }) => (
+ handleSubscriptionPress(item)}
+ />
+ )}
+ extraData={expandedSubscriptionId}
+ ItemSeparatorComponent={() => }
+ showsVerticalScrollIndicator={false}
+ ListEmptyComponent={
+ No subscriptions yet.
+ }
+ contentContainerClassName="pb-30"
+ />
+
+ setIsModalVisible(false)}
+ onSubmit={handleCreateSubscription}
+ />
+
+ );
}
diff --git a/app/(tabs)/settings.tsx b/app/(tabs)/settings.tsx
index 370f186..3e981b6 100644
--- a/app/(tabs)/settings.tsx
+++ b/app/(tabs)/settings.tsx
@@ -1,79 +1,92 @@
-import { Text, View, Pressable, Image } from 'react-native'
-import { SafeAreaView as RNSafeAreaView } from "react-native-safe-area-context";
+import images from "@/constants/images";
+import { useClerk, useUser } from "@clerk/expo";
import { styled } from "nativewind";
-import { useClerk, useUser } from '@clerk/expo';
-import images from '@/constants/images';
-import { usePostHog } from 'posthog-react-native';
+import { Image, Pressable, Text, View } from "react-native";
+import { SafeAreaView as RNSafeAreaView } from "react-native-safe-area-context";
const SafeAreaView = styled(RNSafeAreaView);
const Settings = () => {
- const { signOut } = useClerk();
- const { user } = useUser();
- const posthog = usePostHog();
+ const { signOut } = useClerk();
+ const { user } = useUser();
- const handleSignOut = async () => {
- posthog.capture('user_signed_out');
- try {
- await signOut();
- // Only reset analytics after successful sign-out
- posthog.reset();
- } catch (error) {
- console.error('Sign-out failed:', error);
- // Don't reset analytics if sign-out failed
- }
- };
+ const handleSignOut = async () => {
+ try {
+ await signOut();
+ } catch (error) {
+ console.error("Sign-out failed:", error);
+ }
+ };
- const displayName = user?.firstName || user?.fullName || user?.emailAddresses[0]?.emailAddress || 'User';
- const email = user?.emailAddresses[0]?.emailAddress;
+ const displayName =
+ user?.firstName ||
+ user?.fullName ||
+ user?.emailAddresses[0]?.emailAddress ||
+ "User";
+ const email = user?.emailAddresses[0]?.emailAddress;
- return (
-
- Settings
+ return (
+
+
+ Settings
+
- {/* User Profile Section */}
-
-
-
-
- {displayName}
- {email && (
- {email}
- )}
-
-
-
+ {/* User Profile Section */}
+
+
+
+
+
+ {displayName}
+
+ {email && (
+
+ {email}
+
+ )}
+
+
+
- {/* Account Section */}
-
- Account
-
-
- Account ID
-
- {user?.id?.substring(0, 20)}...
-
-
-
- Joined
-
- {user?.createdAt ? new Date(user.createdAt).toLocaleDateString() : 'N/A'}
-
-
-
-
-
- {/* Sign Out Button */}
-
+
+ Account
+
+
+
+
+ Account ID
+
+
- Sign Out
-
-
- )
-}
+ {user?.id?.substring(0, 20)}...
+
+
+
+
+ Joined
+
+
+ {user?.createdAt
+ ? new Date(user.createdAt).toLocaleDateString()
+ : "N/A"}
+
+
+
+
+
+ {/* Sign Out Button */}
+
+ Sign Out
+
+
+ );
+};
-export default Settings
+export default Settings;
diff --git a/app/_layout.tsx b/app/_layout.tsx
index e6b7a03..b968fdb 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -1,80 +1,54 @@
-import {SplashScreen, Stack, usePathname, useGlobalSearchParams} from "expo-router";
-import '@/global.css';
-import {useFonts} from "expo-font";
-import {useEffect, useRef} from "react";
-import { ClerkProvider, useAuth } from '@clerk/expo';
-import { tokenCache } from '@clerk/expo/token-cache';
-import { PostHogProvider } from 'posthog-react-native';
-import { posthog } from '../src/config/posthog';
+import "@/global.css";
+import { ClerkProvider, useAuth } from "@clerk/expo";
+import { tokenCache } from "@clerk/expo/token-cache";
+import { useFonts } from "expo-font";
+import { SplashScreen, Stack } from "expo-router";
+import { useEffect } from "react";
SplashScreen.preventAutoHideAsync();
const publishableKey = process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY!;
if (!publishableKey) {
- throw new Error('Add your Clerk Publishable Key to the .env file');
+ throw new Error("Add your Clerk Publishable Key to the .env file");
}
function RootLayoutContent() {
const { isLoaded: authLoaded } = useAuth();
- const pathname = usePathname();
- const params = useGlobalSearchParams();
- const previousPathname = useRef(undefined);
-
- useEffect(() => {
- if (previousPathname.current !== pathname) {
- // Filter route params to avoid leaking sensitive data
- const sanitizedParams = Object.keys(params).reduce((acc, key) => {
- // Only include specific safe params
- if (['id', 'tab', 'view'].includes(key)) {
- acc[key] = params[key];
- }
- return acc;
- }, {} as Record);
-
- posthog.screen(pathname, {
- previous_screen: previousPathname.current ?? null,
- ...sanitizedParams,
- });
- previousPathname.current = pathname;
- }
- }, [pathname, params]);
const [fontsLoaded] = useFonts({
- 'sans-regular': require('../assets/fonts/PlusJakartaSans-Regular.ttf'),
- 'sans-bold': require('../assets/fonts/PlusJakartaSans-Bold.ttf'),
- 'sans-medium': require('../assets/fonts/PlusJakartaSans-Medium.ttf'),
- 'sans-semibold': require('../assets/fonts/PlusJakartaSans-SemiBold.ttf'),
- 'sans-extrabold': require('../assets/fonts/PlusJakartaSans-ExtraBold.ttf'),
- 'sans-light': require('../assets/fonts/PlusJakartaSans-Light.ttf')
- })
+ "sans-regular": require("../assets/fonts/PlusJakartaSans-Regular.ttf"),
+ "sans-bold": require("../assets/fonts/PlusJakartaSans-Bold.ttf"),
+ "sans-medium": require("../assets/fonts/PlusJakartaSans-Medium.ttf"),
+ "sans-semibold": require("../assets/fonts/PlusJakartaSans-SemiBold.ttf"),
+ "sans-extrabold": require("../assets/fonts/PlusJakartaSans-ExtraBold.ttf"),
+ "sans-light": require("../assets/fonts/PlusJakartaSans-Light.ttf"),
+ });
useEffect(() => {
// Hide splash only when both fonts and auth are loaded
if (fontsLoaded && authLoaded) {
- SplashScreen.hideAsync()
+ SplashScreen.hideAsync();
}
- }, [fontsLoaded, authLoaded])
+ }, [fontsLoaded, authLoaded]);
// Don't render app until both are ready
if (!fontsLoaded || !authLoaded) return null;
- return ;
+ return (
+
+
+
+
+
+
+ );
}
export default function RootLayout() {
return (
-
-
-
-
-
+
+
+
);
}
diff --git a/app/subscriptions/[id].tsx b/app/subscriptions/[id].tsx
index 636aee7..0af0883 100644
--- a/app/subscriptions/[id].tsx
+++ b/app/subscriptions/[id].tsx
@@ -1,25 +1,15 @@
-import {View, Text} from 'react-native'
-import {Link, useLocalSearchParams} from "expo-router";
-import { usePostHog } from 'posthog-react-native';
-import { useEffect } from 'react';
+import { Link, useLocalSearchParams } from "expo-router";
+import { Text, View } from "react-native";
const SubscriptionDetails = () => {
- const { id } = useLocalSearchParams<{ id: string }>();
- const posthog = usePostHog();
+ const { id } = useLocalSearchParams<{ id: string }>();
- useEffect(() => {
- // Only capture if id is valid
- if (id && typeof id === 'string' && id.trim()) {
- posthog.capture('subscription_details_viewed', { subscription_id: id });
- }
- }, [id, posthog]);
+ return (
+
+ Subscription Details: {id}
+ Go back
+
+ );
+};
- return (
-
- Subscription Details: {id}
- Go back
-
- )
-}
-
-export default SubscriptionDetails
+export default SubscriptionDetails;
diff --git a/components/CreateSubscriptionModal.tsx b/components/CreateSubscriptionModal.tsx
index 404d376..e6005df 100644
--- a/components/CreateSubscriptionModal.tsx
+++ b/components/CreateSubscriptionModal.tsx
@@ -1,9 +1,17 @@
-import { View, Text, Modal, Pressable, TextInput, KeyboardAvoidingView, Platform, ScrollView } from 'react-native';
-import React, { useState } from 'react';
-import clsx from 'clsx';
-import { icons } from '@/constants/icons';
-import dayjs from 'dayjs';
-import {posthog} from "@/src/config/posthog";
+import {
+ View,
+ Text,
+ Modal,
+ Pressable,
+ TextInput,
+ KeyboardAvoidingView,
+ Platform,
+ ScrollView,
+} from "react-native";
+import React, { useState } from "react";
+import clsx from "clsx";
+import { icons } from "@/constants/icons";
+import dayjs from "dayjs";
interface CreateSubscriptionModalProps {
visible: boolean;
@@ -11,23 +19,40 @@ interface CreateSubscriptionModalProps {
onSubmit: (subscription: Subscription) => void;
}
-type Frequency = 'Monthly' | 'Yearly';
-type Category = 'Entertainment' | 'AI Tools' | 'Developer Tools' | 'Design' | 'Productivity' | 'Other';
-const CATEGORIES: Category[] = ['Entertainment', 'AI Tools', 'Developer Tools', 'Design', 'Productivity', 'Other'];
+type Frequency = "Monthly" | "Yearly";
+type Category =
+ | "Entertainment"
+ | "AI Tools"
+ | "Developer Tools"
+ | "Design"
+ | "Productivity"
+ | "Other";
+const CATEGORIES: Category[] = [
+ "Entertainment",
+ "AI Tools",
+ "Developer Tools",
+ "Design",
+ "Productivity",
+ "Other",
+];
const CATEGORY_COLORS: Record = {
- 'Entertainment': '#ff6b6b',
- 'AI Tools': '#b8d4e3',
- 'Developer Tools': '#e8def8',
- 'Design': '#f5c542',
- 'Productivity': '#95e1d3',
- 'Other': '#d4d4d4',
+ Entertainment: "#ff6b6b",
+ "AI Tools": "#b8d4e3",
+ "Developer Tools": "#e8def8",
+ Design: "#f5c542",
+ Productivity: "#95e1d3",
+ Other: "#d4d4d4",
};
-const CreateSubscriptionModal = ({ visible, onClose, onSubmit }: CreateSubscriptionModalProps) => {
- const [name, setName] = useState('');
- const [price, setPrice] = useState('');
- const [frequency, setFrequency] = useState('Monthly');
- const [category, setCategory] = useState('Other');
+const CreateSubscriptionModal = ({
+ visible,
+ onClose,
+ onSubmit,
+}: CreateSubscriptionModalProps) => {
+ const [name, setName] = useState("");
+ const [price, setPrice] = useState("");
+ const [frequency, setFrequency] = useState("Monthly");
+ const [category, setCategory] = useState("Other");
// Improved price validation
const isValidPrice = () => {
@@ -39,23 +64,24 @@ const CreateSubscriptionModal = ({ visible, onClose, onSubmit }: CreateSubscript
return Number.isFinite(numValue) && numValue > 0;
};
- const isValidForm = name.trim() !== '' && isValidPrice();
+ const isValidForm = name.trim() !== "" && isValidPrice();
const handleSubmit = () => {
if (!isValidForm) return;
const priceValue = Number(price.trim());
const now = dayjs();
- const renewalDate = frequency === 'Monthly' ? now.add(1, 'month') : now.add(1, 'year');
+ const renewalDate =
+ frequency === "Monthly" ? now.add(1, "month") : now.add(1, "year");
const newSubscription: Subscription = {
id: `sub-${Date.now()}`,
name: name.trim(),
price: priceValue,
- currency: 'USD',
+ currency: "USD",
frequency,
category,
- status: 'active',
+ status: "active",
startDate: now.toISOString(),
renewalDate: renewalDate.toISOString(),
icon: icons.plus,
@@ -65,22 +91,15 @@ const CreateSubscriptionModal = ({ visible, onClose, onSubmit }: CreateSubscript
onSubmit(newSubscription);
- posthog.capture('subscription_created', {
- subscription_name: name.trim(),
- subscription_price: priceValue,
- subscription_frequency: frequency,
- subscription_category: category,
- })
-
resetForm();
onClose();
};
const resetForm = () => {
- setName('');
- setPrice('');
- setFrequency('Monthly');
- setCategory('Other');
+ setName("");
+ setPrice("");
+ setFrequency("Monthly");
+ setCategory("Other");
};
const handleClose = () => {
@@ -96,12 +115,15 @@ const CreateSubscriptionModal = ({ visible, onClose, onSubmit }: CreateSubscript
onRequestClose={handleClose}
>
- e.stopPropagation()}>
+ e.stopPropagation()}
+ >
New Subscription
@@ -142,18 +164,34 @@ const CreateSubscriptionModal = ({ visible, onClose, onSubmit }: CreateSubscript
Frequency
setFrequency('Monthly')}
+ className={clsx(
+ "picker-option",
+ frequency === "Monthly" && "picker-option-active",
+ )}
+ onPress={() => setFrequency("Monthly")}
>
-
+
Monthly
setFrequency('Yearly')}
+ className={clsx(
+ "picker-option",
+ frequency === "Yearly" && "picker-option-active",
+ )}
+ onPress={() => setFrequency("Yearly")}
>
-
+
Yearly
@@ -166,10 +204,18 @@ const CreateSubscriptionModal = ({ visible, onClose, onSubmit }: CreateSubscript
{CATEGORIES.map((cat) => (
setCategory(cat)}
>
-
+
{cat}
@@ -178,7 +224,10 @@ const CreateSubscriptionModal = ({ visible, onClose, onSubmit }: CreateSubscript
diff --git a/constants/data.ts b/constants/data.ts
index 961436c..4a30c4a 100644
--- a/constants/data.ts
+++ b/constants/data.ts
@@ -1,107 +1,108 @@
+import dayjs from "dayjs";
import { icons } from "./icons";
export const tabs: AppTab[] = [
- { name: "index", title: "Home", icon: icons.home },
- { name: "subscriptions", title: "Subscriptions", icon: icons.wallet },
- { name: "insights", title: "Insights", icon: icons.activity },
- { name: "settings", title: "Settings", icon: icons.setting },
+ { name: "index", title: "Home", icon: icons.home },
+ { name: "subscriptions", title: "Subscriptions", icon: icons.wallet },
+ { name: "insights", title: "Insights", icon: icons.activity },
+ { name: "settings", title: "Settings", icon: icons.setting },
];
export const HOME_USER = {
- name: "Adrian | JS Mastery",
+ name: "Adrian | JS Mastery",
};
export const HOME_BALANCE = {
- amount: 2489.48,
- nextRenewalDate: "2026-03-18T09:00:00.000Z",
+ amount: 2489.48,
+ nextRenewalDate: dayjs().add(3, "day").format("YYYY-MM-DD"),
};
export const UPCOMING_SUBSCRIPTIONS: UpcomingSubscription[] = [
- {
- id: "spotify",
- icon: icons.spotify,
- name: "Spotify",
- price: 5.99,
- currency: "USD",
- daysLeft: 2,
- },
- {
- id: "notion",
- icon: icons.notion,
- name: "Notion",
- price: 12.0,
- currency: "USD",
- daysLeft: 4,
- },
- {
- id: "figma",
- icon: icons.figma,
- name: "Figma",
- price: 15.0,
- currency: "USD",
- daysLeft: 6,
- },
+ {
+ id: "spotify",
+ icon: icons.spotify,
+ name: "Spotify",
+ price: 5.99,
+ currency: "USD",
+ daysLeft: 2,
+ },
+ {
+ id: "notion",
+ icon: icons.notion,
+ name: "Notion",
+ price: 12.0,
+ currency: "USD",
+ daysLeft: 4,
+ },
+ {
+ id: "figma",
+ icon: icons.figma,
+ name: "Figma",
+ price: 15.0,
+ currency: "USD",
+ daysLeft: 6,
+ },
];
export const HOME_SUBSCRIPTIONS: Subscription[] = [
- {
- id: "adobe-creative-cloud",
- icon: icons.adobe,
- name: "Adobe Creative Cloud",
- plan: "Teams Plan",
- category: "Design",
- paymentMethod: "Visa ending in 8530",
- status: "active",
- startDate: "2025-03-20T10:00:00.000Z",
- price: 77.49,
- currency: "USD",
- billing: "Monthly",
- renewalDate: "2026-03-20T10:00:00.000Z",
- color: "#f5c542",
- },
- {
- id: "github-pro",
- icon: icons.github,
- name: "GitHub Pro",
- plan: "Developer",
- category: "Developer Tools",
- paymentMethod: "Mastercard ending in 2408",
- status: "active",
- startDate: "2024-11-24T10:00:00.000Z",
- price: 9.99,
- currency: "USD",
- billing: "Monthly",
- renewalDate: "2026-03-24T10:00:00.000Z",
- color: "#e8def8",
- },
- {
- id: "claude-pro",
- icon: icons.claude,
- name: "Claude Pro",
- plan: "Pro Plan",
- category: "AI Tools",
- paymentMethod: "Amex ending in 1010",
- status: "paused",
- startDate: "2025-06-27T10:00:00.000Z",
- price: 20.0,
- currency: "USD",
- billing: "Monthly",
- renewalDate: "2026-03-27T10:00:00.000Z",
- color: "#b8d4e3",
- },
- {
- id: "canva-pro",
- icon: icons.canva,
- name: "Canva Pro",
- plan: "Yearly Access",
- category: "Design",
- paymentMethod: "Visa ending in 7784",
- status: "cancelled",
- startDate: "2024-04-02T10:00:00.000Z",
- price: 119.99,
- currency: "USD",
- billing: "Yearly",
- renewalDate: "2026-04-02T10:00:00.000Z",
- color: "#b8e8d0",
- },
+ {
+ id: "adobe-creative-cloud",
+ icon: icons.adobe,
+ name: "Adobe Creative Cloud",
+ plan: "Teams Plan",
+ category: "Design",
+ paymentMethod: "Visa ending in 8530",
+ status: "active",
+ startDate: "2025-03-20T10:00:00.000Z",
+ price: 77.49,
+ currency: "USD",
+ billing: "Monthly",
+ renewalDate: dayjs().add(2, "day").toISOString(),
+ color: "#f5c542",
+ },
+ {
+ id: "github-pro",
+ icon: icons.github,
+ name: "GitHub Pro",
+ plan: "Developer",
+ category: "Developer Tools",
+ paymentMethod: "Mastercard ending in 2408",
+ status: "active",
+ startDate: "2024-11-24T10:00:00.000Z",
+ price: 9.99,
+ currency: "USD",
+ billing: "Monthly",
+ renewalDate: dayjs().add(4, "day").toISOString(),
+ color: "#e8def8",
+ },
+ {
+ id: "claude-pro",
+ icon: icons.claude,
+ name: "Claude Pro",
+ plan: "Pro Plan",
+ category: "AI Tools",
+ paymentMethod: "Amex ending in 1010",
+ status: "paused",
+ startDate: "2025-06-27T10:00:00.000Z",
+ price: 20.0,
+ currency: "USD",
+ billing: "Monthly",
+ renewalDate: "2026-03-27T10:00:00.000Z",
+ color: "#b8d4e3",
+ },
+ {
+ id: "canva-pro",
+ icon: icons.canva,
+ name: "Canva Pro",
+ plan: "Yearly Access",
+ category: "Design",
+ paymentMethod: "Visa ending in 7784",
+ status: "cancelled",
+ startDate: "2024-04-02T10:00:00.000Z",
+ price: 119.99,
+ currency: "USD",
+ billing: "Yearly",
+ renewalDate: "2026-04-02T10:00:00.000Z",
+ color: "#b8e8d0",
+ },
];
diff --git a/lib/subscriptionStore.ts b/lib/subscriptionStore.ts
index 27fbefb..13a2dce 100644
--- a/lib/subscriptionStore.ts
+++ b/lib/subscriptionStore.ts
@@ -13,3 +13,4 @@ export const useSubscriptionStore = create((set) => ({
set((state) => ({ subscriptions: [subscription, ...state.subscriptions] })),
setSubscriptions: (subscriptions) => set({ subscriptions }),
}));
+
diff --git a/package-lock.json b/package-lock.json
index 9d5d6ee..9c2458a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -99,9 +99,9 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
- "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz",
+ "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -182,9 +182,9 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz",
- "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==",
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.3.tgz",
+ "integrity": "sha512-RpLYy2sb51oNLjuu1iD3bwBqCBWUzjO0ocp+iaCP/lJtb2CPLcnC2Fftw+4sAzaMELGeWTgExSKADbdo0GFVzA==",
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
@@ -192,7 +192,7 @@
"@babel/helper-optimise-call-expression": "^7.27.1",
"@babel/helper-replace-supers": "^7.28.6",
"@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/traverse": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
"semver": "^6.3.1"
},
"engines": {
@@ -235,6 +235,27 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
+ "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": {
+ "version": "1.22.12",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
+ "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/@babel/helper-globals": {
"version": "7.28.0",
"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
@@ -496,9 +517,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.29.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
- "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
+ "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
"license": "MIT",
"dependencies": {
"@babel/types": "^7.29.0"
@@ -1587,20 +1608,19 @@
}
},
"node_modules/@clerk/clerk-js": {
- "version": "6.3.3",
- "resolved": "https://registry.npmjs.org/@clerk/clerk-js/-/clerk-js-6.3.3.tgz",
- "integrity": "sha512-Nd4/V57s6XBc4oTq1FWJi6aadiM3VhxRPmdOJ4tBb0EdKCf+Dq+8BCEp66PywwN9Jidnmts/uLZs8MjbECTZ7A==",
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/@clerk/clerk-js/-/clerk-js-6.10.1.tgz",
+ "integrity": "sha512-a8zAv28F29qapvE0vHgB5kkGAG5Fk1r+FvSofVN/KJU3emMMT6tG8wecYKwtpZrfhmfL8l31Hx+R3OV68atDgg==",
"license": "MIT",
"dependencies": {
"@base-org/account": "2.0.1",
- "@clerk/shared": "^4.3.2",
- "@coinbase/wallet-sdk": "4.3.0",
+ "@clerk/shared": "^4.10.2",
+ "@coinbase/wallet-sdk": "4.3.7",
"@solana/wallet-adapter-base": "0.9.27",
"@solana/wallet-adapter-react": "0.15.39",
"@solana/wallet-standard": "1.1.4",
"@stripe/stripe-js": "5.6.0",
- "@swc/helpers": "0.5.17",
- "@tanstack/query-core": "5.90.16",
+ "@swc/helpers": "0.5.21",
"@wallet-standard/core": "1.1.1",
"@zxcvbn-ts/core": "3.0.4",
"@zxcvbn-ts/language-common": "3.0.4",
@@ -1615,13 +1635,13 @@
}
},
"node_modules/@clerk/clerk-js/node_modules/@clerk/shared": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@clerk/shared/-/shared-4.3.2.tgz",
- "integrity": "sha512-tYYzdY4Fxb02TO4RHoLRFzEjXJn0iFDfoKhWtGyqf2AaIgkprTksunQtX0hnVssHMr3XD/E2S00Vrb+PzX3jCQ==",
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/@clerk/shared/-/shared-4.10.2.tgz",
+ "integrity": "sha512-2RXGaCV94U2wYWaMQZA/AhVkqjcSx8f+oVjh6wgr4yXDmZ24BQRjPJ+K4L6IHiB/agoaXtKWJ0GI8InRZjo9/g==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.90.16",
+ "@tanstack/query-core": "^5.100.6",
"dequal": "2.0.3",
"glob-to-regexp": "0.4.1",
"js-cookie": "3.0.5",
@@ -1644,14 +1664,14 @@
}
},
"node_modules/@clerk/expo": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/@clerk/expo/-/expo-3.1.5.tgz",
- "integrity": "sha512-bmCk5ftIw+sFqUzWH8QJfdZqQpz6xUOODNb3R88Kn0o4RCAbP52S5iWSf3qZJ8buYA2yrCKntV/o0a+zdJflrg==",
+ "version": "3.2.10",
+ "resolved": "https://registry.npmjs.org/@clerk/expo/-/expo-3.2.10.tgz",
+ "integrity": "sha512-GhByYPSBPOJT8jwqI++GBTv0OGx906tolFM/D7M74d4OAaIkbL3psSHvwmcedBKgBjyk4LD+o53BGsGT0G5+2A==",
"license": "MIT",
"dependencies": {
- "@clerk/clerk-js": "^6.3.3",
- "@clerk/react": "^6.1.3",
- "@clerk/shared": "^4.3.2",
+ "@clerk/clerk-js": "^6.10.1",
+ "@clerk/react": "^6.6.2",
+ "@clerk/shared": "^4.10.2",
"base-64": "^1.0.0",
"react-native-url-polyfill": "2.0.0",
"tslib": "2.8.1"
@@ -1701,12 +1721,12 @@
}
},
"node_modules/@clerk/expo/node_modules/@clerk/react": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/@clerk/react/-/react-6.1.3.tgz",
- "integrity": "sha512-9t5C8eM5cTmOmpBO5nb8FDA40biQqeQLUW+cVwAE0t5hnGRwiC6mSv83vqHg+9qQBqtliR013BGVjpCz53gVCA==",
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/@clerk/react/-/react-6.6.2.tgz",
+ "integrity": "sha512-eLev3C21yh2vqyvEBfXpc1QHa4q+wxbtRdTtBG0fCI+tMQUim8TIS300AJAciM6ox8tgInTWwIeIxr5jiYsvtw==",
"license": "MIT",
"dependencies": {
- "@clerk/shared": "^4.3.2",
+ "@clerk/shared": "^4.10.2",
"tslib": "2.8.1"
},
"engines": {
@@ -1718,13 +1738,13 @@
}
},
"node_modules/@clerk/expo/node_modules/@clerk/shared": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@clerk/shared/-/shared-4.3.2.tgz",
- "integrity": "sha512-tYYzdY4Fxb02TO4RHoLRFzEjXJn0iFDfoKhWtGyqf2AaIgkprTksunQtX0hnVssHMr3XD/E2S00Vrb+PzX3jCQ==",
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/@clerk/shared/-/shared-4.10.2.tgz",
+ "integrity": "sha512-2RXGaCV94U2wYWaMQZA/AhVkqjcSx8f+oVjh6wgr4yXDmZ24BQRjPJ+K4L6IHiB/agoaXtKWJ0GI8InRZjo9/g==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.90.16",
+ "@tanstack/query-core": "^5.100.6",
"dequal": "2.0.3",
"glob-to-regexp": "0.4.1",
"js-cookie": "3.0.5",
@@ -1747,15 +1767,16 @@
}
},
"node_modules/@coinbase/wallet-sdk": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.0.tgz",
- "integrity": "sha512-T3+SNmiCw4HzDm4we9wCHCxlP0pqCiwKe4sOwPH3YAK2KSKjxPRydKu6UQJrdONFVLG7ujXvbd/6ZqmvJb8rkw==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.7.tgz",
+ "integrity": "sha512-z6e5XDw6EF06RqkeyEa+qD0dZ2ZbLci99vx3zwDY//XO8X7166tqKJrR2XlQnzVmtcUuJtCd5fCvr9Cu6zzX7w==",
"license": "Apache-2.0",
"dependencies": {
"@noble/hashes": "^1.4.0",
"clsx": "^1.2.1",
"eventemitter3": "^5.0.1",
- "preact": "^10.24.2"
+ "preact": "^10.24.2",
+ "viem": "^2.27.2"
}
},
"node_modules/@coinbase/wallet-sdk/node_modules/clsx": {
@@ -1780,21 +1801,21 @@
}
},
"node_modules/@emnapi/core": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz",
- "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
- "@emnapi/wasi-threads": "1.2.0",
+ "@emnapi/wasi-threads": "1.2.1",
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/runtime": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz",
- "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -1803,9 +1824,9 @@
}
},
"node_modules/@emnapi/wasi-threads": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz",
- "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -1967,34 +1988,33 @@
}
},
"node_modules/@expo/config": {
- "version": "55.0.10",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-55.0.10.tgz",
- "integrity": "sha512-qCHxo9H1ZoeW+y0QeMtVZ3JfGmumpGrgUFX60wLWMarraoQZSe47ZUm9kJSn3iyoPjUtUNanO3eXQg+K8k4rag==",
+ "version": "55.0.16",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-55.0.16.tgz",
+ "integrity": "sha512-H5dpQv5TfyZDNheZAWO3SmP10diGWZwN5QOUsArkDJih0QKNtahQBOmrV2xbhgln/nrUGoy41U/ZIY/MEx63Ug==",
"license": "MIT",
"peer": true,
"dependencies": {
- "@expo/config-plugins": "~55.0.7",
+ "@expo/config-plugins": "~55.0.8",
"@expo/config-types": "^55.0.5",
- "@expo/json-file": "^10.0.12",
- "@expo/require-utils": "^55.0.3",
+ "@expo/json-file": "^10.0.14",
+ "@expo/require-utils": "^55.0.5",
"deepmerge": "^4.3.1",
"getenv": "^2.0.0",
"glob": "^13.0.0",
- "resolve-from": "^5.0.0",
"resolve-workspace-root": "^2.0.0",
"semver": "^7.6.0",
"slugify": "^1.3.4"
}
},
"node_modules/@expo/config-plugins": {
- "version": "55.0.7",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-55.0.7.tgz",
- "integrity": "sha512-XZUoDWrsHEkH3yasnDSJABM/UxP5a1ixzRwU/M+BToyn/f0nTrSJJe/Ay/FpxkI4JSNz2n0e06I23b2bleXKVA==",
+ "version": "55.0.8",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-55.0.8.tgz",
+ "integrity": "sha512-8WfWTRntTCcowfOS+tHdB0z98gKetTwktg4G5TWkCkXVa8Jt1NUnvzaaU4UHk2vbR2U4N84RyZJFizSwfF6C9g==",
"license": "MIT",
"peer": true,
"dependencies": {
"@expo/config-types": "^55.0.5",
- "@expo/json-file": "~10.0.12",
+ "@expo/json-file": "~10.0.13",
"@expo/plist": "^0.5.2",
"@expo/sdk-runtime-versions": "^1.0.0",
"chalk": "^4.1.2",
@@ -2009,9 +2029,9 @@
}
},
"node_modules/@expo/config-plugins/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"peer": true,
"bin": {
@@ -2029,9 +2049,9 @@
"peer": true
},
"node_modules/@expo/config/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"peer": true,
"bin": {
@@ -2082,9 +2102,9 @@
}
},
"node_modules/@expo/env": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.1.1.tgz",
- "integrity": "sha512-rVvHC4I6xlPcg+mAO09ydUi2Wjv1ZytpLmHOSzvXzBAz9mMrJggqCe4s4dubjJvi/Ino/xQCLhbaLCnTtLpikg==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.1.2.tgz",
+ "integrity": "sha512-RJtGFfj/ygO/6zcVbV3cckHf4THcEkv5IZft1GjCB3dfT6axvzvIwXE9EiQqQYmGHcQ+ZrvC8xZcIhiHba0pYg==",
"license": "MIT",
"peer": true,
"dependencies": {
@@ -2097,9 +2117,9 @@
}
},
"node_modules/@expo/fingerprint": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.15.4.tgz",
- "integrity": "sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng==",
+ "version": "0.15.5",
+ "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.15.5.tgz",
+ "integrity": "sha512-mdVoAMcux1WlM6kd1RoWiHRNqKqS+J6mKmWQ/BKgeh937S/fcW58EE68O6nc4KDXtWi3PBeNHskOFcgyIuD4hw==",
"license": "MIT",
"dependencies": {
"@expo/spawn-async": "^1.7.2",
@@ -2109,7 +2129,7 @@
"getenv": "^2.0.0",
"glob": "^13.0.0",
"ignore": "^5.3.1",
- "minimatch": "^9.0.0",
+ "minimatch": "^10.2.2",
"p-limit": "^3.1.0",
"resolve-from": "^5.0.0",
"semver": "^7.6.0"
@@ -2118,34 +2138,46 @@
"fingerprint": "bin/cli.js"
}
},
+ "node_modules/@expo/fingerprint/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
"node_modules/@expo/fingerprint/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
}
},
"node_modules/@expo/fingerprint/node_modules/minimatch": {
- "version": "9.0.9",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
- "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
- "license": "ISC",
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^2.0.2"
+ "brace-expansion": "^5.0.5"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@expo/fingerprint/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -2155,24 +2187,24 @@
}
},
"node_modules/@expo/image-utils": {
- "version": "0.8.12",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.8.12.tgz",
- "integrity": "sha512-3KguH7kyKqq7pNwLb9j6BBdD/bjmNwXZG/HPWT6GWIXbwrvAJt2JNyYTP5agWJ8jbbuys1yuCzmkX+TU6rmI7A==",
+ "version": "0.8.14",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.8.14.tgz",
+ "integrity": "sha512-5Sn+jG4Cw+shC2wDMXoqSAJnvERbiwzHn05FpWtD5IBflfTIs5gUmjzwiGVyjOdlMSQhgRrw/AymPbmO9h9mpQ==",
"license": "MIT",
"dependencies": {
+ "@expo/require-utils": "^55.0.5",
"@expo/spawn-async": "^1.7.2",
"chalk": "^4.0.0",
"getenv": "^2.0.0",
"jimp-compact": "0.16.1",
"parse-png": "^2.1.0",
- "resolve-from": "^5.0.0",
"semver": "^7.6.0"
}
},
"node_modules/@expo/image-utils/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -2182,9 +2214,9 @@
}
},
"node_modules/@expo/json-file": {
- "version": "10.0.12",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-10.0.12.tgz",
- "integrity": "sha512-inbDycp1rMAelAofg7h/mMzIe+Owx6F7pur3XdQ3EPTy00tme+4P6FWgHKUcjN8dBSrnbRNpSyh5/shzHyVCyQ==",
+ "version": "10.0.14",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-10.0.14.tgz",
+ "integrity": "sha512-yWwBFywFv+SxkJp/pIzzA416JVYflNUh7pqQzgaA6nXDqRyK7KfrqVzk8PdUfDnqbBcaZZxpzNssfQZzp5KHrA==",
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.20.0",
@@ -2192,41 +2224,42 @@
}
},
"node_modules/@expo/metro": {
- "version": "54.2.0",
- "resolved": "https://registry.npmjs.org/@expo/metro/-/metro-54.2.0.tgz",
- "integrity": "sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==",
+ "version": "55.1.1",
+ "resolved": "https://registry.npmjs.org/@expo/metro/-/metro-55.1.1.tgz",
+ "integrity": "sha512-/wfXo5hTuAVpVLG/4hzlmD9NBGJkzkmBEMm/4VICajYRbj7y8OmqqPWbbymzHiBiHB6tI9BnsyXpQM6zVZEECg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "metro": "0.83.3",
- "metro-babel-transformer": "0.83.3",
- "metro-cache": "0.83.3",
- "metro-cache-key": "0.83.3",
- "metro-config": "0.83.3",
- "metro-core": "0.83.3",
- "metro-file-map": "0.83.3",
- "metro-minify-terser": "0.83.3",
- "metro-resolver": "0.83.3",
- "metro-runtime": "0.83.3",
- "metro-source-map": "0.83.3",
- "metro-symbolicate": "0.83.3",
- "metro-transform-plugins": "0.83.3",
- "metro-transform-worker": "0.83.3"
+ "metro": "0.83.7",
+ "metro-babel-transformer": "0.83.7",
+ "metro-cache": "0.83.7",
+ "metro-cache-key": "0.83.7",
+ "metro-config": "0.83.7",
+ "metro-core": "0.83.7",
+ "metro-file-map": "0.83.7",
+ "metro-minify-terser": "0.83.7",
+ "metro-resolver": "0.83.7",
+ "metro-runtime": "0.83.7",
+ "metro-source-map": "0.83.7",
+ "metro-symbolicate": "0.83.7",
+ "metro-transform-plugins": "0.83.7",
+ "metro-transform-worker": "0.83.7"
}
},
"node_modules/@expo/metro-config": {
- "version": "55.0.11",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-55.0.11.tgz",
- "integrity": "sha512-qGxq7RwWpj0zNvZO/e5aizKrOKYYBrVPShSbxPOVB1EXcexxTPTxnOe4pYFg/gKkLIJe0t3jSSF8IDWlGdaaOg==",
+ "version": "55.0.20",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-55.0.20.tgz",
+ "integrity": "sha512-dUv0simEyPbN2wbOjI+BdEZyXdghgCZD0+3rrA1WxXZN1lRofUx6g2+Nik2Qg61v/BXFrCTh8reYEzQPzHOhdQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/code-frame": "^7.20.0",
"@babel/core": "^7.20.0",
"@babel/generator": "^7.20.5",
- "@expo/config": "~55.0.10",
- "@expo/env": "~2.1.1",
- "@expo/json-file": "~10.0.12",
- "@expo/metro": "~54.2.0",
+ "@expo/config": "~55.0.16",
+ "@expo/env": "~2.1.2",
+ "@expo/json-file": "~10.0.14",
+ "@expo/metro": "~55.1.1",
"@expo/spawn-async": "^1.7.2",
"browserslist": "^4.25.0",
"chalk": "^4.1.0",
@@ -2302,9 +2335,9 @@
}
},
"node_modules/@expo/osascript": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.4.2.tgz",
- "integrity": "sha512-/XP7PSYF2hzOZzqfjgkoWtllyeTN8dW3aM4P6YgKcmmPikKL5FdoyQhti4eh6RK5a5VrUXJTOlTNIpIHsfB5Iw==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.4.3.tgz",
+ "integrity": "sha512-wbuj3EebM7W9hN/Wp4xTzKd6rQ2zKJzAxkFxkOOwyysLp0HOAgQ4/5RINyoS241pZUX2rUHq7mAJ7pcCQ8U0Ow==",
"license": "MIT",
"dependencies": {
"@expo/spawn-async": "^1.7.2"
@@ -2314,12 +2347,12 @@
}
},
"node_modules/@expo/package-manager": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.10.3.tgz",
- "integrity": "sha512-ZuXiK/9fCrIuLjPSe1VYmfp0Sa85kCMwd8QQpgyi5ufppYKRtLBg14QOgUqj8ZMbJTxE0xqzd0XR7kOs3vAK9A==",
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.10.5.tgz",
+ "integrity": "sha512-nCP9Mebfl3jvOr0/P6VAuyah6PAtun+aihIL2zAtuE8uSe94JWkVZ7051i0MUVO+y3gFpBqnr8IIH5ch+VJjHA==",
"license": "MIT",
"dependencies": {
- "@expo/json-file": "^10.0.12",
+ "@expo/json-file": "^10.0.14",
"@expo/spawn-async": "^1.7.2",
"chalk": "^4.0.0",
"npm-package-arg": "^11.0.0",
@@ -2328,9 +2361,9 @@
}
},
"node_modules/@expo/plist": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.5.2.tgz",
- "integrity": "sha512-o4xdVdBpe4aTl3sPMZ2u3fJH4iG1I768EIRk1xRZP+GaFI93MaR3JvoFibYqxeTmLQ1p1kNEVqylfUjezxx45g==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.5.3.tgz",
+ "integrity": "sha512-jz5oPcPDd3fygwVxwSwmO6wodTwm0Qa14NUyPy0ka7H8sFmCtNZUI2+DzVe/EXjOhq1FbEjrwl89gdlWYOnVjQ==",
"license": "MIT",
"peer": true,
"dependencies": {
@@ -2430,9 +2463,9 @@
}
},
"node_modules/@expo/prebuild-config/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -2442,11 +2475,10 @@
}
},
"node_modules/@expo/require-utils": {
- "version": "55.0.3",
- "resolved": "https://registry.npmjs.org/@expo/require-utils/-/require-utils-55.0.3.tgz",
- "integrity": "sha512-TS1m5tW45q4zoaTlt6DwmdYHxvFTIxoLrTHKOFrIirHIqIXnHCzpceg8wumiBi+ZXSaGY2gobTbfv+WVhJY6Fw==",
+ "version": "55.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/require-utils/-/require-utils-55.0.5.tgz",
+ "integrity": "sha512-U4K/CQ2VpXuwfNGsN+daKmYOt15hCP8v/pXaYH6eut7kdYZo6SfJ1yr67BIcJ+1Gzzs+QzTxswAZChKpXmceyw==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/code-frame": "^7.20.0",
"@babel/core": "^7.25.2",
@@ -2509,9 +2541,9 @@
"license": "MIT"
},
"node_modules/@expo/xcpretty": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.4.1.tgz",
- "integrity": "sha512-KZNxZvnGCtiM2aYYZ6Wz0Ix5r47dAvpNLApFtZWnSoERzAdOMzVBOPysBoM0JlF6FKWZ8GPqgn6qt3dV/8Zlpg==",
+ "version": "4.4.4",
+ "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.4.4.tgz",
+ "integrity": "sha512-4aQzz9vgxcNXFfo/iyNgDDYfsU5XGKKxWxZopw0cVotHiW+U8IJbIxMaxsINs6bHhtkG3StKNPcOrn3eBuxKPw==",
"license": "BSD-3-Clause",
"dependencies": {
"@babel/code-frame": "^7.20.0",
@@ -2523,29 +2555,43 @@
}
},
"node_modules/@humanfs/core": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
- "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",
+ "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==",
"dev": true,
"license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/types": "^0.15.0"
+ },
"engines": {
"node": ">=18.18.0"
}
},
"node_modules/@humanfs/node": {
- "version": "0.16.7",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
- "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz",
+ "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@humanfs/core": "^0.19.1",
+ "@humanfs/core": "^0.19.2",
+ "@humanfs/types": "^0.15.0",
"@humanwhocodes/retry": "^0.4.0"
},
"engines": {
"node": ">=18.18.0"
}
},
+ "node_modules/@humanfs/types": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz",
+ "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -2695,9 +2741,9 @@
}
},
"node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz",
+ "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -2932,14 +2978,20 @@
}
},
"node_modules/@posthog/core": {
- "version": "1.24.1",
- "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.24.1.tgz",
- "integrity": "sha512-e8AciAnc6MRFws89ux8lJKFAaI03yEon0ASDoUO7yS91FVqbUGXYekObUUR3LHplcg+pmyiJBI0jolY0SFbGRA==",
+ "version": "1.28.4",
+ "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.28.4.tgz",
+ "integrity": "sha512-wmtUYHYqA3zIAKDKvYWRNWAQsWOIBwxV08e+bWzVy0wQQzpaS/LzzRupXWRMRrLOk+1x3JKFxbqA3n0QGvpqsQ==",
"license": "MIT",
"dependencies": {
- "cross-spawn": "^7.0.6"
+ "@posthog/types": "1.372.10"
}
},
+ "node_modules/@posthog/types": {
+ "version": "1.372.10",
+ "resolved": "https://registry.npmjs.org/@posthog/types/-/types-1.372.10.tgz",
+ "integrity": "sha512-KuT3vLu3LSFsNWCwasS4gqjH/ysAyIUcB/aJSmKyNhDd/85hAznHRz1eSSl0sMvtsDTYiQIq0I0ybduVbrpPew==",
+ "license": "MIT"
+ },
"node_modules/@radix-ui/primitive": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
@@ -3309,9 +3361,9 @@
}
},
"node_modules/@react-native/community-cli-plugin/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -3385,17 +3437,17 @@
"license": "MIT"
},
"node_modules/@react-navigation/bottom-tabs": {
- "version": "7.15.7",
- "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.15.7.tgz",
- "integrity": "sha512-OXNvU0esvyZf//KpaIsFh2GD1otxqG+Lv48VfkNIh+3DEbOnqni8pOrKdICgoC4T0R8oVln7pnVeHl89Gipv8w==",
+ "version": "7.15.13",
+ "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.15.13.tgz",
+ "integrity": "sha512-UZ3WteUDhe8xDWTbT3uon8CtkjiiOy3xIgYx8AI0ZmulvDzpKh+n0CW5X1z2BNCFxCJj563M+L7FH0Pf6Ov7mA==",
"license": "MIT",
"dependencies": {
- "@react-navigation/elements": "^2.9.12",
+ "@react-navigation/elements": "^2.9.17",
"color": "^4.2.3",
"sf-symbols-typescript": "^2.1.0"
},
"peerDependencies": {
- "@react-navigation/native": "^7.2.0",
+ "@react-navigation/native": "^7.2.4",
"react": ">= 18.2.0",
"react-native": "*",
"react-native-safe-area-context": ">= 4.0.0",
@@ -3403,12 +3455,12 @@
}
},
"node_modules/@react-navigation/core": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.17.0.tgz",
- "integrity": "sha512-E4Kr1PRrhKiVn1RdMdPIG1rCfrKh+HiVJ2smdLsh9D95Q2z0a9dGE9yHpRQ2pAUiiwOfgloLqegkPb8g+TcCBA==",
+ "version": "7.17.4",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.17.4.tgz",
+ "integrity": "sha512-Rv9E2oNNQEkPGpmu9q+vJwGJRSQR6LBg5L+Yo1QHjtwGbHUbjkIKOdYymDZoZYgNzX2OD4rAIlfuzbDKa3cCeA==",
"license": "MIT",
"dependencies": {
- "@react-navigation/routers": "^7.5.3",
+ "@react-navigation/routers": "^7.5.5",
"escape-string-regexp": "^4.0.0",
"fast-deep-equal": "^3.1.3",
"nanoid": "^3.3.11",
@@ -3422,9 +3474,9 @@
}
},
"node_modules/@react-navigation/elements": {
- "version": "2.9.12",
- "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.12.tgz",
- "integrity": "sha512-LSaQUj5SV9OXVRcxT8mqETDoM7BOKCveCvuLjdAr9NZnPDM5HW8uDnvW/sCa8oEFy+22+ojoXtHFKsfnesgBbw==",
+ "version": "2.9.17",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.17.tgz",
+ "integrity": "sha512-Prax9RDS6l32npcl4PzvL88VoXe9HdtcIUP2+rim3DLVSZceD6oreA+cmPBUjeLFjsnxKlU3pTRby3RpYJ5/xw==",
"license": "MIT",
"dependencies": {
"color": "^4.2.3",
@@ -3433,7 +3485,7 @@
},
"peerDependencies": {
"@react-native-masked-view/masked-view": ">= 0.2.0",
- "@react-navigation/native": "^7.2.0",
+ "@react-navigation/native": "^7.2.4",
"react": ">= 18.2.0",
"react-native": "*",
"react-native-safe-area-context": ">= 4.0.0"
@@ -3445,12 +3497,12 @@
}
},
"node_modules/@react-navigation/native": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.2.0.tgz",
- "integrity": "sha512-kEuqIS1MkzzLD45Fp17CrxAchoB4W6tMfc541merUgtAeNNsg06gRrvmuLv6LAYvpLifGdXuSjpluPIu/VmbQw==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.2.4.tgz",
+ "integrity": "sha512-eWC2D3JjhYLId2fVTZhhCiUpWIaPhO9XyEb7Wq8ElmOHyIODlbOzgZ0rKia02OIsDKr9BzZl2sK1dL70yMxDaw==",
"license": "MIT",
"dependencies": {
- "@react-navigation/core": "^7.17.0",
+ "@react-navigation/core": "^7.17.4",
"escape-string-regexp": "^4.0.0",
"fast-deep-equal": "^3.1.3",
"nanoid": "^3.3.11",
@@ -3462,18 +3514,18 @@
}
},
"node_modules/@react-navigation/native-stack": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.14.7.tgz",
- "integrity": "sha512-MxKdKS817YK7iirlyW+XZnXJ339eRE7aA3E55zHVDS+R+bqro+PwRwNGqL1Y9e3w0KjAKZVsOfn5erJRWrO4iQ==",
+ "version": "7.14.14",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.14.14.tgz",
+ "integrity": "sha512-KCKwnooV05vPw7PGqMoNmCJXARjsp51DRw/3Bw9tjOLGBkmLaUbOJJuM7IQXcI+1EWE4GjBYrfIPtiARGNUg1g==",
"license": "MIT",
"dependencies": {
- "@react-navigation/elements": "^2.9.12",
+ "@react-navigation/elements": "^2.9.17",
"color": "^4.2.3",
"sf-symbols-typescript": "^2.1.0",
"warn-once": "^0.1.1"
},
"peerDependencies": {
- "@react-navigation/native": "^7.2.0",
+ "@react-navigation/native": "^7.2.4",
"react": ">= 18.2.0",
"react-native": "*",
"react-native-safe-area-context": ">= 4.0.0",
@@ -3481,9 +3533,9 @@
}
},
"node_modules/@react-navigation/routers": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.3.tgz",
- "integrity": "sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.5.tgz",
+ "integrity": "sha512-9/hhMte12Kgu+pMnLfA4EWJ0OQmIEAMVMX06FPH2yGkEQSQ3JhhCN/GkcRikzQhtEi97VYYQA15umptBUShcOQ==",
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.11"
@@ -3581,12 +3633,12 @@
}
},
"node_modules/@solana-mobile/mobile-wallet-adapter-protocol": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/@solana-mobile/mobile-wallet-adapter-protocol/-/mobile-wallet-adapter-protocol-2.2.6.tgz",
- "integrity": "sha512-4mktUZRXdOcNHaMF6MrxN1yZpV32q616IpqsJLq/eI9Agz/+h31v5mzejIjtXCeorI7G0awfmI4ZtGIs+N/iYQ==",
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/@solana-mobile/mobile-wallet-adapter-protocol/-/mobile-wallet-adapter-protocol-2.2.8.tgz",
+ "integrity": "sha512-c3FQsrM7nV62DqVaHGKtr2osE2w5gS3/wjy8ILF0zczS/s1mERX+JTmf+UHd8xgESmEj/IM7q+U2Qhrmac1PdA==",
"license": "Apache-2.0",
"dependencies": {
- "@solana/codecs-strings": "^4.0.0",
+ "@solana/codecs-strings": "^6.0.0",
"@solana/wallet-standard-features": "^1.3.0",
"@solana/wallet-standard-util": "^1.1.2",
"@wallet-standard/core": "^1.1.1",
@@ -3597,28 +3649,28 @@
}
},
"node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/@solana-mobile/mobile-wallet-adapter-protocol-web3js/-/mobile-wallet-adapter-protocol-web3js-2.2.6.tgz",
- "integrity": "sha512-akbJgxlYR/BbcNPNQW5bwHv4Bf85iMu+YsUy3KJgfQympQzOQaK9/24monwCMZUG2IfQ3lBL4pi18Z1doq2BnA==",
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/@solana-mobile/mobile-wallet-adapter-protocol-web3js/-/mobile-wallet-adapter-protocol-web3js-2.2.8.tgz",
+ "integrity": "sha512-W9DbsFvl5lSOe7KT3dJX4tjbxfYIoOtOTJpvLMgkojyRU0UKChQ4vHvbOZQ3GkUJ8wOIS4qdrM0Yytd1Vy+YQQ==",
"license": "Apache-2.0",
"dependencies": {
- "@solana-mobile/mobile-wallet-adapter-protocol": "^2.2.6",
+ "@solana-mobile/mobile-wallet-adapter-protocol": "^2.2.8",
"bs58": "^6.0.0",
"js-base64": "^3.7.5"
},
"peerDependencies": {
- "@solana/web3.js": "^1.58.0"
+ "@solana/web3.js": "^1.98.4"
}
},
"node_modules/@solana-mobile/wallet-standard-mobile": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/@solana-mobile/wallet-standard-mobile/-/wallet-standard-mobile-0.5.0.tgz",
- "integrity": "sha512-4eTrdw6hxMIBohJD+tGeNGv1MaXbyPHCtFxJ1Ru4olphiTrD6u6PvAYBL2WebQAMSWzZzDN3fCCTzludpYmwyg==",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@solana-mobile/wallet-standard-mobile/-/wallet-standard-mobile-0.5.2.tgz",
+ "integrity": "sha512-orEGv4N/Ttd0umwfWUzGcEnVc9eJDTgRSEcDitvFWpIf2D968h6128L0rq9/y7sUw88Gvu/lU0euoC2ASEijqQ==",
"license": "Apache-2.0",
"dependencies": {
- "@solana-mobile/mobile-wallet-adapter-protocol": "^2.2.6",
- "@solana/wallet-standard-chains": "^1.1.0",
- "@solana/wallet-standard-features": "^1.2.0",
+ "@solana-mobile/mobile-wallet-adapter-protocol": "^2.2.8",
+ "@solana/wallet-standard-chains": "^1.1.1",
+ "@solana/wallet-standard-features": "^1.3.0",
"@wallet-standard/base": "^1.0.1",
"@wallet-standard/features": "^1.0.3",
"@wallet-standard/wallet": "^1.1.0",
@@ -3644,31 +3696,6 @@
"node": ">=5.10"
}
},
- "node_modules/@solana/buffer-layout/node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
"node_modules/@solana/codecs-core": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz",
@@ -3703,62 +3730,80 @@
}
},
"node_modules/@solana/codecs-strings": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-4.0.0.tgz",
- "integrity": "sha512-XvyD+sQ1zyA0amfxbpoFZsucLoe+yASQtDiLUGMDg5TZ82IHE3B7n82jE8d8cTAqi0HgqQiwU13snPhvg1O0Ow==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-6.9.0.tgz",
+ "integrity": "sha512-PTqYQxMsmdfEEq29bV1AnALD4FjFEsSxOj1fYNqooOSTEQEpUoYEQtsd55/kBsnIKltXbvYwXYXBusm19n1sQA==",
"license": "MIT",
"dependencies": {
- "@solana/codecs-core": "4.0.0",
- "@solana/codecs-numbers": "4.0.0",
- "@solana/errors": "4.0.0"
+ "@solana/codecs-core": "6.9.0",
+ "@solana/codecs-numbers": "6.9.0",
+ "@solana/errors": "6.9.0"
},
"engines": {
"node": ">=20.18.0"
},
"peerDependencies": {
"fastestsmallesttextencoderdecoder": "^1.0.22",
- "typescript": ">=5.3.3"
+ "typescript": ">=5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "fastestsmallesttextencoderdecoder": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/@solana/codecs-strings/node_modules/@solana/codecs-core": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-4.0.0.tgz",
- "integrity": "sha512-28kNUsyIlhU3MO3/7ZLDqeJf2YAm32B4tnTjl5A9HrbBqsTZ+upT/RzxZGP1MMm7jnPuIKCMwmTpsyqyR6IUpw==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-6.9.0.tgz",
+ "integrity": "sha512-F2BmLecG/1nTtnjyD509NsEc254pxJKa2bpvotymv1lL1WfEn3zchcZ9SMIiLyL4G6J8b9F3OKIq2YSZho2AOQ==",
"license": "MIT",
"dependencies": {
- "@solana/errors": "4.0.0"
+ "@solana/errors": "6.9.0"
},
"engines": {
"node": ">=20.18.0"
},
"peerDependencies": {
- "typescript": ">=5.3.3"
+ "typescript": ">=5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/@solana/codecs-strings/node_modules/@solana/codecs-numbers": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz",
- "integrity": "sha512-z9zpjtcwzqT9rbkKVZpkWB5/0V7+6YRKs6BccHkGJlaDx8Pe/+XOvPi2rEdXPqrPd9QWb5Xp1iBfcgaDMyiOiA==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-6.9.0.tgz",
+ "integrity": "sha512-XMI0FOHV2h7yPAllxWCX8z+J1msidNjXzN1mRjH5KR6C+vfzyKa2xWHve0bNSV/bjVAhqqhc7dQCpBKuF4+ScQ==",
"license": "MIT",
"dependencies": {
- "@solana/codecs-core": "4.0.0",
- "@solana/errors": "4.0.0"
+ "@solana/codecs-core": "6.9.0",
+ "@solana/errors": "6.9.0"
},
"engines": {
"node": ">=20.18.0"
},
"peerDependencies": {
- "typescript": ">=5.3.3"
+ "typescript": ">=5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/@solana/codecs-strings/node_modules/@solana/errors": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-4.0.0.tgz",
- "integrity": "sha512-3YEtvcMvtcnTl4HahqLt0VnaGVf7vVWOnt6/uPky5e0qV6BlxDSbGkbBzttNjxLXHognV0AQi3pjvrtfUnZmbg==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-6.9.0.tgz",
+ "integrity": "sha512-7i+b07KMnkbHvFlz7uWade3jvyc22UmVm8o9taxPK8YV3JNM/NkS8oQFvMac2MIaLPAlEs7I8MHyVLUal1yY4g==",
"license": "MIT",
"dependencies": {
"chalk": "5.6.2",
- "commander": "14.0.1"
+ "commander": "14.0.3"
},
"bin": {
"errors": "bin/cli.mjs"
@@ -3767,7 +3812,12 @@
"node": ">=20.18.0"
},
"peerDependencies": {
- "typescript": ">=5.3.3"
+ "typescript": ">=5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/@solana/codecs-strings/node_modules/chalk": {
@@ -3782,15 +3832,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@solana/codecs-strings/node_modules/commander": {
- "version": "14.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz",
- "integrity": "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==",
- "license": "MIT",
- "engines": {
- "node": ">=20"
- }
- },
"node_modules/@solana/errors": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz",
@@ -3824,16 +3865,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@solana/errors/node_modules/commander": {
- "version": "14.0.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
- "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=20"
- }
- },
"node_modules/@solana/wallet-adapter-base": {
"version": "0.9.27",
"resolved": "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.27.tgz",
@@ -3871,16 +3902,16 @@
}
},
"node_modules/@solana/wallet-adapter-react/node_modules/@solana-mobile/wallet-adapter-mobile": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/@solana-mobile/wallet-adapter-mobile/-/wallet-adapter-mobile-2.2.6.tgz",
- "integrity": "sha512-6m+h0pasnafcFfeJma+hhWKE6QSPFyIhR5QUwTAy495Y3M/aCNzmcKWRgQ6NrrfFcU7Vzuky19P13EOv2OBP2Q==",
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/@solana-mobile/wallet-adapter-mobile/-/wallet-adapter-mobile-2.2.8.tgz",
+ "integrity": "sha512-ZbXY3/0+UnnyS0hvArpO1b1pYzaQAiVIp+HBUm11aLEkE5+ISvHTRPr/bCEUXZfPkez/1n9zH3H0leK25Lj6Nw==",
"license": "Apache-2.0",
"dependencies": {
- "@solana-mobile/mobile-wallet-adapter-protocol": "^2.2.6",
- "@solana-mobile/mobile-wallet-adapter-protocol-web3js": "^2.2.6",
- "@solana-mobile/wallet-standard-mobile": "^0.5.0",
- "@solana/wallet-adapter-base": "^0.9.23",
- "@solana/wallet-standard-features": "^1.2.0",
+ "@solana-mobile/mobile-wallet-adapter-protocol": "^2.2.8",
+ "@solana-mobile/mobile-wallet-adapter-protocol-web3js": "^2.2.8",
+ "@solana-mobile/wallet-standard-mobile": "^0.5.2",
+ "@solana/wallet-adapter-base": "^0.9.27",
+ "@solana/wallet-standard-features": "^1.3.0",
"@wallet-standard/core": "^1.1.1",
"bs58": "^6.0.0",
"js-base64": "^3.7.5",
@@ -3890,7 +3921,7 @@
"@react-native-async-storage/async-storage": "^1.17.7"
},
"peerDependencies": {
- "@solana/web3.js": "^1.98.0",
+ "@solana/web3.js": "^1.98.4",
"react-native": ">0.74"
}
},
@@ -4058,31 +4089,6 @@
"base-x": "^3.0.2"
}
},
- "node_modules/@solana/web3.js/node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
"node_modules/@stripe/stripe-js": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-5.6.0.tgz",
@@ -4093,58 +4099,58 @@
}
},
"node_modules/@swc/helpers": {
- "version": "0.5.17",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz",
- "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==",
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.21.tgz",
+ "integrity": "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.8.0"
}
},
"node_modules/@tailwindcss/node": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz",
- "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.0.tgz",
+ "integrity": "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/remapping": "^2.3.5",
- "enhanced-resolve": "^5.19.0",
+ "enhanced-resolve": "^5.21.0",
"jiti": "^2.6.1",
"lightningcss": "1.32.0",
"magic-string": "^0.30.21",
"source-map-js": "^1.2.1",
- "tailwindcss": "4.2.2"
+ "tailwindcss": "4.3.0"
}
},
"node_modules/@tailwindcss/oxide": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz",
- "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.0.tgz",
+ "integrity": "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 20"
},
"optionalDependencies": {
- "@tailwindcss/oxide-android-arm64": "4.2.2",
- "@tailwindcss/oxide-darwin-arm64": "4.2.2",
- "@tailwindcss/oxide-darwin-x64": "4.2.2",
- "@tailwindcss/oxide-freebsd-x64": "4.2.2",
- "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2",
- "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2",
- "@tailwindcss/oxide-linux-arm64-musl": "4.2.2",
- "@tailwindcss/oxide-linux-x64-gnu": "4.2.2",
- "@tailwindcss/oxide-linux-x64-musl": "4.2.2",
- "@tailwindcss/oxide-wasm32-wasi": "4.2.2",
- "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2",
- "@tailwindcss/oxide-win32-x64-msvc": "4.2.2"
+ "@tailwindcss/oxide-android-arm64": "4.3.0",
+ "@tailwindcss/oxide-darwin-arm64": "4.3.0",
+ "@tailwindcss/oxide-darwin-x64": "4.3.0",
+ "@tailwindcss/oxide-freebsd-x64": "4.3.0",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.3.0",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.3.0",
+ "@tailwindcss/oxide-linux-x64-musl": "4.3.0",
+ "@tailwindcss/oxide-wasm32-wasi": "4.3.0",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.3.0"
}
},
"node_modules/@tailwindcss/oxide-android-arm64": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz",
- "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.0.tgz",
+ "integrity": "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==",
"cpu": [
"arm64"
],
@@ -4159,9 +4165,9 @@
}
},
"node_modules/@tailwindcss/oxide-darwin-arm64": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz",
- "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.0.tgz",
+ "integrity": "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==",
"cpu": [
"arm64"
],
@@ -4176,9 +4182,9 @@
}
},
"node_modules/@tailwindcss/oxide-darwin-x64": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz",
- "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.0.tgz",
+ "integrity": "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==",
"cpu": [
"x64"
],
@@ -4193,9 +4199,9 @@
}
},
"node_modules/@tailwindcss/oxide-freebsd-x64": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz",
- "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.0.tgz",
+ "integrity": "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==",
"cpu": [
"x64"
],
@@ -4210,9 +4216,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz",
- "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.0.tgz",
+ "integrity": "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==",
"cpu": [
"arm"
],
@@ -4227,13 +4233,16 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz",
- "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.0.tgz",
+ "integrity": "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==",
"cpu": [
"arm64"
],
"dev": true,
+ "libc": [
+ "glibc"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -4244,13 +4253,16 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-musl": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz",
- "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.0.tgz",
+ "integrity": "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==",
"cpu": [
"arm64"
],
"dev": true,
+ "libc": [
+ "musl"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -4261,13 +4273,16 @@
}
},
"node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz",
- "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.0.tgz",
+ "integrity": "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==",
"cpu": [
"x64"
],
"dev": true,
+ "libc": [
+ "glibc"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -4278,13 +4293,16 @@
}
},
"node_modules/@tailwindcss/oxide-linux-x64-musl": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz",
- "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.0.tgz",
+ "integrity": "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==",
"cpu": [
"x64"
],
"dev": true,
+ "libc": [
+ "musl"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -4295,9 +4313,9 @@
}
},
"node_modules/@tailwindcss/oxide-wasm32-wasi": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz",
- "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.0.tgz",
+ "integrity": "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==",
"bundleDependencies": [
"@napi-rs/wasm-runtime",
"@emnapi/core",
@@ -4313,10 +4331,10 @@
"license": "MIT",
"optional": true,
"dependencies": {
- "@emnapi/core": "^1.8.1",
- "@emnapi/runtime": "^1.8.1",
- "@emnapi/wasi-threads": "^1.1.0",
- "@napi-rs/wasm-runtime": "^1.1.1",
+ "@emnapi/core": "^1.10.0",
+ "@emnapi/runtime": "^1.10.0",
+ "@emnapi/wasi-threads": "^1.2.1",
+ "@napi-rs/wasm-runtime": "^1.1.4",
"@tybys/wasm-util": "^0.10.1",
"tslib": "^2.8.1"
},
@@ -4325,9 +4343,9 @@
}
},
"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz",
- "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.0.tgz",
+ "integrity": "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==",
"cpu": [
"arm64"
],
@@ -4342,9 +4360,9 @@
}
},
"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz",
- "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.0.tgz",
+ "integrity": "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==",
"cpu": [
"x64"
],
@@ -4359,23 +4377,23 @@
}
},
"node_modules/@tailwindcss/postcss": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.2.tgz",
- "integrity": "sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.0.tgz",
+ "integrity": "sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
- "@tailwindcss/node": "4.2.2",
- "@tailwindcss/oxide": "4.2.2",
- "postcss": "^8.5.6",
- "tailwindcss": "4.2.2"
+ "@tailwindcss/node": "4.3.0",
+ "@tailwindcss/oxide": "4.3.0",
+ "postcss": "^8.5.10",
+ "tailwindcss": "4.3.0"
}
},
"node_modules/@tanstack/query-core": {
- "version": "5.90.16",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.16.tgz",
- "integrity": "sha512-MvtWckSVufs/ja463/K4PyJeqT+HMlJWtw6PrCpywznd2NSgO3m4KwO9RqbFqGg6iDE8vVMFWMeQI4Io3eEYww==",
+ "version": "5.100.9",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.100.9.tgz",
+ "integrity": "sha512-SJSFw1S8+kQ0+knv/XGfrbocWoAlT7vDKsSImtLx3ZPQmEcR46hkDjLSvynSy25N8Ms4tIEini1FuBd5k7IscQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -4383,9 +4401,9 @@
}
},
"node_modules/@tybys/wasm-util": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
- "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz",
+ "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -4454,9 +4472,9 @@
}
},
"node_modules/@types/estree": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
- "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
+ "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
"dev": true,
"license": "MIT"
},
@@ -4520,13 +4538,10 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "25.5.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz",
- "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~7.18.0"
- }
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
+ "license": "MIT"
},
"node_modules/@types/react": {
"version": "19.1.17",
@@ -4577,20 +4592,20 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz",
- "integrity": "sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.2.tgz",
+ "integrity": "sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.12.2",
- "@typescript-eslint/scope-manager": "8.57.2",
- "@typescript-eslint/type-utils": "8.57.2",
- "@typescript-eslint/utils": "8.57.2",
- "@typescript-eslint/visitor-keys": "8.57.2",
+ "@typescript-eslint/scope-manager": "8.59.2",
+ "@typescript-eslint/type-utils": "8.59.2",
+ "@typescript-eslint/utils": "8.59.2",
+ "@typescript-eslint/visitor-keys": "8.59.2",
"ignore": "^7.0.5",
"natural-compare": "^1.4.0",
- "ts-api-utils": "^2.4.0"
+ "ts-api-utils": "^2.5.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4600,9 +4615,9 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.57.2",
+ "@typescript-eslint/parser": "^8.59.2",
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
@@ -4616,16 +4631,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.2.tgz",
- "integrity": "sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.2.tgz",
+ "integrity": "sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.57.2",
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/typescript-estree": "8.57.2",
- "@typescript-eslint/visitor-keys": "8.57.2",
+ "@typescript-eslint/scope-manager": "8.59.2",
+ "@typescript-eslint/types": "8.59.2",
+ "@typescript-eslint/typescript-estree": "8.59.2",
+ "@typescript-eslint/visitor-keys": "8.59.2",
"debug": "^4.4.3"
},
"engines": {
@@ -4637,18 +4652,18 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/project-service": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.2.tgz",
- "integrity": "sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.2.tgz",
+ "integrity": "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.57.2",
- "@typescript-eslint/types": "^8.57.2",
+ "@typescript-eslint/tsconfig-utils": "^8.59.2",
+ "@typescript-eslint/types": "^8.59.2",
"debug": "^4.4.3"
},
"engines": {
@@ -4659,18 +4674,18 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz",
- "integrity": "sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz",
+ "integrity": "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/visitor-keys": "8.57.2"
+ "@typescript-eslint/types": "8.59.2",
+ "@typescript-eslint/visitor-keys": "8.59.2"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4681,9 +4696,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz",
- "integrity": "sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz",
+ "integrity": "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4694,21 +4709,21 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz",
- "integrity": "sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.2.tgz",
+ "integrity": "sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/typescript-estree": "8.57.2",
- "@typescript-eslint/utils": "8.57.2",
+ "@typescript-eslint/types": "8.59.2",
+ "@typescript-eslint/typescript-estree": "8.59.2",
+ "@typescript-eslint/utils": "8.59.2",
"debug": "^4.4.3",
- "ts-api-utils": "^2.4.0"
+ "ts-api-utils": "^2.5.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4719,13 +4734,13 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.2.tgz",
- "integrity": "sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.2.tgz",
+ "integrity": "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4737,21 +4752,21 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz",
- "integrity": "sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz",
+ "integrity": "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.57.2",
- "@typescript-eslint/tsconfig-utils": "8.57.2",
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/visitor-keys": "8.57.2",
+ "@typescript-eslint/project-service": "8.59.2",
+ "@typescript-eslint/tsconfig-utils": "8.59.2",
+ "@typescript-eslint/types": "8.59.2",
+ "@typescript-eslint/visitor-keys": "8.59.2",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
"tinyglobby": "^0.2.15",
- "ts-api-utils": "^2.4.0"
+ "ts-api-utils": "^2.5.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4761,7 +4776,7 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": {
@@ -4775,9 +4790,9 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
- "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4788,13 +4803,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "10.2.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
- "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^5.0.2"
+ "brace-expansion": "^5.0.5"
},
"engines": {
"node": "18 || 20 || >=22"
@@ -4804,9 +4819,9 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -4817,16 +4832,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.2.tgz",
- "integrity": "sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.2.tgz",
+ "integrity": "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.57.2",
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/typescript-estree": "8.57.2"
+ "@typescript-eslint/scope-manager": "8.59.2",
+ "@typescript-eslint/types": "8.59.2",
+ "@typescript-eslint/typescript-estree": "8.59.2"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4837,17 +4852,17 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz",
- "integrity": "sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==",
+ "version": "8.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz",
+ "integrity": "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.57.2",
+ "@typescript-eslint/types": "8.59.2",
"eslint-visitor-keys": "^5.0.0"
},
"engines": {
@@ -4872,9 +4887,9 @@
}
},
"node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz",
+ "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==",
"license": "ISC"
},
"node_modules/@unrs/resolver-binding-android-arm-eabi": {
@@ -4983,6 +4998,9 @@
"arm64"
],
"dev": true,
+ "libc": [
+ "glibc"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -4997,6 +5015,9 @@
"arm64"
],
"dev": true,
+ "libc": [
+ "musl"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -5011,6 +5032,9 @@
"ppc64"
],
"dev": true,
+ "libc": [
+ "glibc"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -5025,6 +5049,9 @@
"riscv64"
],
"dev": true,
+ "libc": [
+ "glibc"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -5039,6 +5066,9 @@
"riscv64"
],
"dev": true,
+ "libc": [
+ "musl"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -5053,6 +5083,9 @@
"s390x"
],
"dev": true,
+ "libc": [
+ "glibc"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -5067,6 +5100,9 @@
"x64"
],
"dev": true,
+ "libc": [
+ "glibc"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -5081,6 +5117,9 @@
"x64"
],
"dev": true,
+ "libc": [
+ "musl"
+ ],
"license": "MIT",
"optional": true,
"os": [
@@ -5268,9 +5307,9 @@
}
},
"node_modules/@xmldom/xmldom": {
- "version": "0.8.11",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz",
- "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==",
+ "version": "0.8.13",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz",
+ "integrity": "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -5292,9 +5331,9 @@
"license": "MIT"
},
"node_modules/abitype": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz",
- "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.4.tgz",
+ "integrity": "sha512-dpKH+N27vRjarMVTFFkeY445VTKftzGWpL0FiT7xmVmzQRKazZexzC5uHG0f6XKsVLAuUlndnbGau6lRejClxg==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/wevm"
@@ -5325,13 +5364,13 @@
}
},
"node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
+ "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
"license": "MIT",
"dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
+ "mime-types": "^3.0.0",
+ "negotiator": "^1.0.0"
},
"engines": {
"node": ">= 0.6"
@@ -5382,9 +5421,9 @@
}
},
"node_modules/ajv": {
- "version": "6.14.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
- "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
+ "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5983,9 +6022,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.10.10",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz",
- "integrity": "sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==",
+ "version": "2.10.29",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.29.tgz",
+ "integrity": "sha512-Asa2krT+XTPZINCS+2QcyS8WTkObE77RwkydwF7h6DmnKqbvlalz93m/dnphUyCa6SWSP51VgtEUf2FN+gelFQ==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.cjs"
@@ -6039,13 +6078,6 @@
"license": "MIT",
"peer": true
},
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "license": "ISC",
- "peer": true
- },
"node_modules/borsh": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz",
@@ -6100,9 +6132,9 @@
}
},
"node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",
+ "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
@@ -6132,9 +6164,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.28.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
- "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "version": "4.28.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz",
+ "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
"funding": [
{
"type": "opencollective",
@@ -6151,11 +6183,11 @@
],
"license": "MIT",
"dependencies": {
- "baseline-browser-mapping": "^2.9.0",
- "caniuse-lite": "^1.0.30001759",
- "electron-to-chromium": "^1.5.263",
- "node-releases": "^2.0.27",
- "update-browserslist-db": "^1.2.0"
+ "baseline-browser-mapping": "^2.10.12",
+ "caniuse-lite": "^1.0.30001782",
+ "electron-to-chromium": "^1.5.328",
+ "node-releases": "^2.0.36",
+ "update-browserslist-db": "^1.2.3"
},
"bin": {
"browserslist": "cli.js"
@@ -6183,11 +6215,11 @@
}
},
"node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "funding": [
+ {
"type": "github",
"url": "https://github.com/sponsors/feross"
},
@@ -6201,9 +6233,10 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
+ "ieee754": "^1.2.1"
}
},
"node_modules/buffer-from": {
@@ -6237,15 +6270,15 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz",
+ "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "get-intrinsic": "^1.3.0",
"set-function-length": "^1.2.2"
},
"engines": {
@@ -6309,9 +6342,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001781",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
- "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
+ "version": "1.0.30001792",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001792.tgz",
+ "integrity": "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==",
"funding": [
{
"type": "opencollective",
@@ -6505,12 +6538,12 @@
}
},
"node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "version": "14.0.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
+ "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==",
"license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">=20"
}
},
"node_modules/comment-json": {
@@ -6684,60 +6717,6 @@
"hyphenate-style-name": "^1.0.3"
}
},
- "node_modules/css-select": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz",
- "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==",
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.1.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-tree": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
- "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "mdn-data": "2.0.14",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/css-tree/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "license": "BSD-3-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/css-what": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
- "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
- "license": "BSD-2-Clause",
- "peer": true,
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
"node_modules/csstype": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
@@ -6997,65 +6976,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "license": "BSD-2-Clause",
- "peer": true
- },
- "node_modules/domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "domelementtype": "^2.3.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/domutils": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
- "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
"node_modules/dotenv": {
"version": "16.4.7",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
@@ -7105,9 +7025,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.322",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.322.tgz",
- "integrity": "sha512-vFU34OcrvMcH66T+dYC3G4nURmgfDVewMIu6Q2urXpumAPSMmzvcn04KVVV8Opikq8Vs5nUbO/8laNhNRqSzYw==",
+ "version": "1.5.353",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.353.tgz",
+ "integrity": "sha512-kOrWphBi8TOZyiJZqsgqIle0lw+tzmnQK83pV9dZUd01Nm2POECSyFQMAuarzZdYqQW7FH9RaYOuaRo3h+bQ3w==",
"license": "ISC"
},
"node_modules/emoji-regex": {
@@ -7126,32 +7046,19 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.20.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
- "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
+ "version": "5.21.2",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.2.tgz",
+ "integrity": "sha512-xe9vQb5kReirPUxgQrXA3ihgbCqssmTiM7cOZ+Gzu+VeGWgpV98lLZvp0dl4yriyAePcewxGUs9UpKD8PET9KQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.4",
- "tapable": "^2.3.0"
+ "tapable": "^2.3.3"
},
"engines": {
"node": ">=10.13.0"
}
},
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "license": "BSD-2-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
"node_modules/env-editor": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
@@ -7171,9 +7078,9 @@
}
},
"node_modules/es-abstract": {
- "version": "1.24.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz",
- "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==",
+ "version": "1.24.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz",
+ "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7253,23 +7160,22 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.1.tgz",
- "integrity": "sha512-zWwRvqWiuBPr0muUG/78cW3aHROFCNIQ3zpmYDpwdbnt2m+xlNyRWpHBpa2lJjSBit7BQ+RXA1iwbSmu5yJ/EQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.2.tgz",
+ "integrity": "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
+ "call-bind": "^1.0.9",
"call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.24.1",
+ "es-abstract": "^1.24.2",
"es-errors": "^1.3.0",
"es-set-tostringtag": "^2.1.0",
"function-bind": "^1.1.2",
@@ -7281,8 +7187,7 @@
"has-symbols": "^1.1.0",
"internal-slot": "^1.1.0",
"iterator.prototype": "^1.1.5",
- "math-intrinsics": "^1.1.0",
- "safe-array-concat": "^1.1.3"
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -7486,15 +7391,15 @@
}
},
"node_modules/eslint-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz",
+ "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
+ "is-core-module": "^2.16.1",
+ "resolve": "^2.0.0-next.6"
}
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
@@ -7678,30 +7583,6 @@
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
}
},
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.6",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
- "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "is-core-module": "^2.16.1",
- "node-exports-info": "^1.6.0",
- "object-keys": "^1.1.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/eslint-scope": {
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
@@ -7834,29 +7715,29 @@
"license": "MIT"
},
"node_modules/expo": {
- "version": "54.0.33",
- "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.33.tgz",
- "integrity": "sha512-3yOEfAKqo+gqHcV8vKcnq0uA5zxlohnhA3fu4G43likN8ct5ZZ3LjAh9wDdKteEkoad3tFPvwxmXW711S5OHUw==",
+ "version": "54.0.34",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.34.tgz",
+ "integrity": "sha512-XkVHguZZDC8BcTQxHAd14/TQFbDp1Wt0Z/KApO9t68Ll5A127hLCPzU+a9gytfCIiyL/V1IpF1vIcOLKEVAoNQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.20.0",
- "@expo/cli": "54.0.23",
+ "@expo/cli": "54.0.24",
"@expo/config": "~12.0.13",
"@expo/config-plugins": "~54.0.4",
"@expo/devtools": "0.1.8",
- "@expo/fingerprint": "0.15.4",
+ "@expo/fingerprint": "0.15.5",
"@expo/metro": "~54.2.0",
- "@expo/metro-config": "54.0.14",
+ "@expo/metro-config": "54.0.15",
"@expo/vector-icons": "^15.0.3",
"@ungap/structured-clone": "^1.3.0",
"babel-preset-expo": "~54.0.10",
- "expo-asset": "~12.0.12",
+ "expo-asset": "~12.0.13",
"expo-constants": "~18.0.13",
- "expo-file-system": "~19.0.21",
+ "expo-file-system": "~19.0.22",
"expo-font": "~14.0.11",
"expo-keep-awake": "~15.0.8",
- "expo-modules-autolinking": "3.0.24",
- "expo-modules-core": "3.0.29",
+ "expo-modules-autolinking": "3.0.25",
+ "expo-modules-core": "3.0.30",
"pretty-format": "^29.7.0",
"react-refresh": "^0.14.2",
"whatwg-url-without-unicode": "8.0.0-3"
@@ -7886,13 +7767,13 @@
}
},
"node_modules/expo-asset": {
- "version": "12.0.12",
- "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.12.tgz",
- "integrity": "sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ==",
+ "version": "12.0.13",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.13.tgz",
+ "integrity": "sha512-x/p7WvQUnkn6K43b9eL6SPeq5Vnf1E8BDe9bDrWrvMqzyUvJnUFvl+ctg3034s/+UHe7Ne2pAmc0+yzbl8CrDQ==",
"license": "MIT",
"dependencies": {
"@expo/image-utils": "^0.8.8",
- "expo-constants": "~18.0.12"
+ "expo-constants": "~18.0.13"
},
"peerDependencies": {
"expo": "*",
@@ -7997,9 +7878,9 @@
}
},
"node_modules/expo-constants/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -8009,9 +7890,9 @@
}
},
"node_modules/expo-file-system": {
- "version": "19.0.21",
- "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.21.tgz",
- "integrity": "sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg==",
+ "version": "19.0.22",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.22.tgz",
+ "integrity": "sha512-l9pgahSc7sJD0bP9vBNeXvZjy8QKDpVHVxWmei/ESQOrzmoj5BidziqLVsyZdxsi+PfdbTtttLTAmddH/JafYA==",
"license": "MIT",
"peerDependencies": {
"expo": "*",
@@ -8069,12 +7950,12 @@
}
},
"node_modules/expo-linking": {
- "version": "8.0.11",
- "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-8.0.11.tgz",
- "integrity": "sha512-+VSaNL5om3kOp/SSKO5qe6cFgfSIWnnQDSbA7XLs3ECkYzXRquk5unxNS3pg7eK5kNUmQ4kgLI7MhTggAEUBLA==",
+ "version": "8.0.12",
+ "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-8.0.12.tgz",
+ "integrity": "sha512-FpXeIpFgZuxihwT9lBo86YD3y6LphBuAhN680MMxm/Y7fmsc57vimn2d3vFu68VI0+Z9w457t494mu2wvlgWTQ==",
"license": "MIT",
"dependencies": {
- "expo-constants": "~18.0.12",
+ "expo-constants": "~18.0.13",
"invariant": "^2.2.4"
},
"peerDependencies": {
@@ -8083,9 +7964,9 @@
}
},
"node_modules/expo-modules-autolinking": {
- "version": "3.0.24",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.24.tgz",
- "integrity": "sha512-TP+6HTwhL7orDvsz2VzauyQlXJcAWyU3ANsZ7JGL4DQu8XaZv/A41ZchbtAYLfozNA2Ya1Hzmhx65hXryBMjaQ==",
+ "version": "3.0.25",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.25.tgz",
+ "integrity": "sha512-YmHWctJlwvOuLZccg3cOXvSiXVJrPMKl7g2YR0YHWoGL9v2RvcmgaPJWPSLVW+voNEgEPsbo5UmUrAqbnYcBeg==",
"license": "MIT",
"dependencies": {
"@expo/spawn-async": "^1.7.2",
@@ -8098,10 +7979,19 @@
"expo-modules-autolinking": "bin/expo-modules-autolinking.js"
}
},
+ "node_modules/expo-modules-autolinking/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/expo-modules-core": {
- "version": "3.0.29",
- "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.29.tgz",
- "integrity": "sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q==",
+ "version": "3.0.30",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.30.tgz",
+ "integrity": "sha512-a6IrpAn/Jbmwxi9L+hMmXKpNqnkUpoF7WHOpn02rVLyax2J0gB1vvCVE5rNydplEnt41Q6WxQwvcOjZaIkcSUg==",
"license": "MIT",
"dependencies": {
"invariant": "^2.2.4"
@@ -8374,9 +8264,9 @@
}
},
"node_modules/expo-server": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/expo-server/-/expo-server-1.0.5.tgz",
- "integrity": "sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/expo-server/-/expo-server-1.0.6.tgz",
+ "integrity": "sha512-vb5TBtskvEdzYuW79lATXutOEBfW5m6U4EFpNjCVZTnI7S//SAsLQkYEpn+EDfn84m6VQfzSGkIVR6YPaScKFA==",
"license": "MIT",
"engines": {
"node": ">=20.16.0"
@@ -8441,9 +8331,9 @@
}
},
"node_modules/expo-web-browser": {
- "version": "15.0.10",
- "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-15.0.10.tgz",
- "integrity": "sha512-fvDhW4bhmXAeWFNFiInmsGCK83PAqAcQaFyp/3pE/jbdKmFKoRCWr46uZGIfN4msLK/OODhaQ/+US7GSJNDHJg==",
+ "version": "15.0.11",
+ "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-15.0.11.tgz",
+ "integrity": "sha512-r2LS4Ro6DgUPZkcaEfgt8mp9eJuoA93x11Jh7S6utFe0FEzvUNn2yFhxg8XVwESaaHGt2k5V8LuK36rsp0BeIw==",
"license": "MIT",
"peerDependencies": {
"expo": "*",
@@ -8451,9 +8341,9 @@
}
},
"node_modules/expo/node_modules/@expo/cli": {
- "version": "54.0.23",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.23.tgz",
- "integrity": "sha512-km0h72SFfQCmVycH/JtPFTVy69w6Lx1cHNDmfLfQqgKFYeeHTjx7LVDP4POHCtNxFP2UeRazrygJhlh4zz498g==",
+ "version": "54.0.24",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.24.tgz",
+ "integrity": "sha512-5xse1bEgnVUBhOrtttc6xTNJVvjyTRavpzuF0/0nuj+312vfSbk7EiRbG+xJ2pW/iZxnhLPJkFCrPYG0nmheAQ==",
"license": "MIT",
"dependencies": {
"@0no-co/graphql.web": "^1.0.8",
@@ -8465,7 +8355,7 @@
"@expo/image-utils": "^0.8.8",
"@expo/json-file": "^10.0.8",
"@expo/metro": "~54.2.0",
- "@expo/metro-config": "~54.0.14",
+ "@expo/metro-config": "~54.0.15",
"@expo/osascript": "^2.3.8",
"@expo/package-manager": "^1.9.10",
"@expo/plist": "^0.4.8",
@@ -8488,16 +8378,16 @@
"connect": "^3.7.0",
"debug": "^4.3.4",
"env-editor": "^0.4.1",
- "expo-server": "^1.0.5",
+ "expo-server": "^1.0.6",
"freeport-async": "^2.0.0",
"getenv": "^2.0.0",
"glob": "^13.0.0",
- "lan-network": "^0.1.6",
+ "lan-network": "^0.2.1",
"minimatch": "^9.0.0",
"node-forge": "^1.3.3",
"npm-package-arg": "^11.0.0",
"ora": "^3.4.0",
- "picomatch": "^3.0.1",
+ "picomatch": "^4.0.3",
"pretty-bytes": "^5.6.0",
"pretty-format": "^29.7.0",
"progress": "^2.0.3",
@@ -8558,141 +8448,523 @@
"sucrase": "~3.35.1"
}
},
- "node_modules/expo/node_modules/@expo/config-plugins": {
- "version": "54.0.4",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.4.tgz",
- "integrity": "sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==",
+ "node_modules/expo/node_modules/@expo/config-plugins": {
+ "version": "54.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.4.tgz",
+ "integrity": "sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@expo/config-types": "^54.0.10",
+ "@expo/json-file": "~10.0.8",
+ "@expo/plist": "^0.4.8",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.5",
+ "getenv": "^2.0.0",
+ "glob": "^13.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.4",
+ "slash": "^3.0.0",
+ "slugify": "^1.6.6",
+ "xcode": "^3.0.1",
+ "xml2js": "0.6.0"
+ }
+ },
+ "node_modules/expo/node_modules/@expo/config-types": {
+ "version": "54.0.10",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-54.0.10.tgz",
+ "integrity": "sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==",
+ "license": "MIT"
+ },
+ "node_modules/expo/node_modules/@expo/config/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/expo/node_modules/@expo/env": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.0.11.tgz",
+ "integrity": "sha512-xV+ps6YCW7XIPVUwFVCRN2nox09dnRwy8uIjwHWTODu0zFw4kp4omnVkl0OOjuu2XOe7tdgAHxikrkJt9xB/7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "debug": "^4.3.4",
+ "dotenv": "~16.4.5",
+ "dotenv-expand": "~11.0.6",
+ "getenv": "^2.0.0"
+ }
+ },
+ "node_modules/expo/node_modules/@expo/metro": {
+ "version": "54.2.0",
+ "resolved": "https://registry.npmjs.org/@expo/metro/-/metro-54.2.0.tgz",
+ "integrity": "sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==",
+ "license": "MIT",
+ "dependencies": {
+ "metro": "0.83.3",
+ "metro-babel-transformer": "0.83.3",
+ "metro-cache": "0.83.3",
+ "metro-cache-key": "0.83.3",
+ "metro-config": "0.83.3",
+ "metro-core": "0.83.3",
+ "metro-file-map": "0.83.3",
+ "metro-minify-terser": "0.83.3",
+ "metro-resolver": "0.83.3",
+ "metro-runtime": "0.83.3",
+ "metro-source-map": "0.83.3",
+ "metro-symbolicate": "0.83.3",
+ "metro-transform-plugins": "0.83.3",
+ "metro-transform-worker": "0.83.3"
+ }
+ },
+ "node_modules/expo/node_modules/@expo/metro-config": {
+ "version": "54.0.15",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.15.tgz",
+ "integrity": "sha512-SqIya4VZ9KHM1S9g+xR0A+QKw1Tfs7Gacx6bQNJ98vs4+O7I5+QP5mHZIB0QSZLUV8opiXebHYTiTu+0OAsIUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.20.0",
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.5",
+ "@expo/config": "~12.0.13",
+ "@expo/env": "~2.0.8",
+ "@expo/json-file": "~10.0.8",
+ "@expo/metro": "~54.2.0",
+ "@expo/spawn-async": "^1.7.2",
+ "browserslist": "^4.25.0",
+ "chalk": "^4.1.0",
+ "debug": "^4.3.2",
+ "dotenv": "~16.4.5",
+ "dotenv-expand": "~11.0.6",
+ "getenv": "^2.0.0",
+ "glob": "^13.0.0",
+ "hermes-parser": "^0.29.1",
+ "jsc-safe-url": "^0.2.4",
+ "lightningcss": "^1.30.1",
+ "picomatch": "^4.0.3",
+ "postcss": "~8.4.32",
+ "resolve-from": "^5.0.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ },
+ "peerDependenciesMeta": {
+ "expo": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/expo/node_modules/@expo/plist": {
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.4.8.tgz",
+ "integrity": "sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@xmldom/xmldom": "^0.8.8",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^15.1.1"
+ }
+ },
+ "node_modules/expo/node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/expo/node_modules/brace-expansion": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
+ "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/expo/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expo/node_modules/hermes-estree": {
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
+ "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
+ "license": "MIT"
+ },
+ "node_modules/expo/node_modules/hermes-parser": {
+ "version": "0.29.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
+ "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
+ "license": "MIT",
+ "dependencies": {
+ "hermes-estree": "0.29.1"
+ }
+ },
+ "node_modules/expo/node_modules/metro": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz",
+ "integrity": "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.24.7",
+ "@babel/core": "^7.25.2",
+ "@babel/generator": "^7.25.0",
+ "@babel/parser": "^7.25.3",
+ "@babel/template": "^7.25.0",
+ "@babel/traverse": "^7.25.3",
+ "@babel/types": "^7.25.2",
+ "accepts": "^1.3.7",
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "connect": "^3.6.5",
+ "debug": "^4.4.0",
+ "error-stack-parser": "^2.0.6",
+ "flow-enums-runtime": "^0.0.6",
+ "graceful-fs": "^4.2.4",
+ "hermes-parser": "0.32.0",
+ "image-size": "^1.0.2",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.7.0",
+ "jsc-safe-url": "^0.2.2",
+ "lodash.throttle": "^4.1.1",
+ "metro-babel-transformer": "0.83.3",
+ "metro-cache": "0.83.3",
+ "metro-cache-key": "0.83.3",
+ "metro-config": "0.83.3",
+ "metro-core": "0.83.3",
+ "metro-file-map": "0.83.3",
+ "metro-resolver": "0.83.3",
+ "metro-runtime": "0.83.3",
+ "metro-source-map": "0.83.3",
+ "metro-symbolicate": "0.83.3",
+ "metro-transform-plugins": "0.83.3",
+ "metro-transform-worker": "0.83.3",
+ "mime-types": "^2.1.27",
+ "nullthrows": "^1.1.1",
+ "serialize-error": "^2.1.0",
+ "source-map": "^0.5.6",
+ "throat": "^5.0.0",
+ "ws": "^7.5.10",
+ "yargs": "^17.6.2"
+ },
+ "bin": {
+ "metro": "src/cli.js"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-babel-transformer": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz",
+ "integrity": "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.25.2",
+ "flow-enums-runtime": "^0.0.6",
+ "hermes-parser": "0.32.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-babel-transformer/node_modules/hermes-estree": {
+ "version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz",
+ "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==",
+ "license": "MIT"
+ },
+ "node_modules/expo/node_modules/metro-babel-transformer/node_modules/hermes-parser": {
+ "version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz",
+ "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==",
+ "license": "MIT",
+ "dependencies": {
+ "hermes-estree": "0.32.0"
+ }
+ },
+ "node_modules/expo/node_modules/metro-cache": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz",
+ "integrity": "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "exponential-backoff": "^3.1.1",
+ "flow-enums-runtime": "^0.0.6",
+ "https-proxy-agent": "^7.0.5",
+ "metro-core": "0.83.3"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-cache-key": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.3.tgz",
+ "integrity": "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==",
+ "license": "MIT",
+ "dependencies": {
+ "flow-enums-runtime": "^0.0.6"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-config": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.3.tgz",
+ "integrity": "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==",
+ "license": "MIT",
+ "dependencies": {
+ "connect": "^3.6.5",
+ "flow-enums-runtime": "^0.0.6",
+ "jest-validate": "^29.7.0",
+ "metro": "0.83.3",
+ "metro-cache": "0.83.3",
+ "metro-core": "0.83.3",
+ "metro-runtime": "0.83.3",
+ "yaml": "^2.6.1"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-core": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz",
+ "integrity": "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==",
+ "license": "MIT",
+ "dependencies": {
+ "flow-enums-runtime": "^0.0.6",
+ "lodash.throttle": "^4.1.1",
+ "metro-resolver": "0.83.3"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-file-map": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.3.tgz",
+ "integrity": "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.4.0",
+ "fb-watchman": "^2.0.0",
+ "flow-enums-runtime": "^0.0.6",
+ "graceful-fs": "^4.2.4",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "nullthrows": "^1.1.1",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-minify-terser": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz",
+ "integrity": "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==",
+ "license": "MIT",
+ "dependencies": {
+ "flow-enums-runtime": "^0.0.6",
+ "terser": "^5.15.0"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-resolver": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.3.tgz",
+ "integrity": "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "flow-enums-runtime": "^0.0.6"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-runtime": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz",
+ "integrity": "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.25.0",
+ "flow-enums-runtime": "^0.0.6"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-source-map": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz",
+ "integrity": "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.3",
+ "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3",
+ "@babel/types": "^7.25.2",
+ "flow-enums-runtime": "^0.0.6",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.83.3",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.83.3",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-symbolicate": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz",
+ "integrity": "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==",
+ "license": "MIT",
+ "dependencies": {
+ "flow-enums-runtime": "^0.0.6",
+ "invariant": "^2.2.4",
+ "metro-source-map": "0.83.3",
+ "nullthrows": "^1.1.1",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ },
+ "bin": {
+ "metro-symbolicate": "src/index.js"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-transform-plugins": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz",
+ "integrity": "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.25.2",
+ "@babel/generator": "^7.25.0",
+ "@babel/template": "^7.25.0",
+ "@babel/traverse": "^7.25.3",
+ "flow-enums-runtime": "^0.0.6",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=20.19.4"
+ }
+ },
+ "node_modules/expo/node_modules/metro-transform-worker": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz",
+ "integrity": "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==",
"license": "MIT",
"dependencies": {
- "@expo/config-types": "^54.0.10",
- "@expo/json-file": "~10.0.8",
- "@expo/plist": "^0.4.8",
- "@expo/sdk-runtime-versions": "^1.0.0",
- "chalk": "^4.1.2",
- "debug": "^4.3.5",
- "getenv": "^2.0.0",
- "glob": "^13.0.0",
- "resolve-from": "^5.0.0",
- "semver": "^7.5.4",
- "slash": "^3.0.0",
- "slugify": "^1.6.6",
- "xcode": "^3.0.1",
- "xml2js": "0.6.0"
+ "@babel/core": "^7.25.2",
+ "@babel/generator": "^7.25.0",
+ "@babel/parser": "^7.25.3",
+ "@babel/types": "^7.25.2",
+ "flow-enums-runtime": "^0.0.6",
+ "metro": "0.83.3",
+ "metro-babel-transformer": "0.83.3",
+ "metro-cache": "0.83.3",
+ "metro-cache-key": "0.83.3",
+ "metro-minify-terser": "0.83.3",
+ "metro-source-map": "0.83.3",
+ "metro-transform-plugins": "0.83.3",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=20.19.4"
}
},
- "node_modules/expo/node_modules/@expo/config-types": {
- "version": "54.0.10",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-54.0.10.tgz",
- "integrity": "sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==",
+ "node_modules/expo/node_modules/metro/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
"license": "MIT"
},
- "node_modules/expo/node_modules/@expo/config/node_modules/@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "license": "MIT",
- "dependencies": {
- "@babel/highlight": "^7.10.4"
- }
+ "node_modules/expo/node_modules/metro/node_modules/hermes-estree": {
+ "version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz",
+ "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==",
+ "license": "MIT"
},
- "node_modules/expo/node_modules/@expo/env": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.0.11.tgz",
- "integrity": "sha512-xV+ps6YCW7XIPVUwFVCRN2nox09dnRwy8uIjwHWTODu0zFw4kp4omnVkl0OOjuu2XOe7tdgAHxikrkJt9xB/7Q==",
+ "node_modules/expo/node_modules/metro/node_modules/hermes-parser": {
+ "version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz",
+ "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==",
"license": "MIT",
"dependencies": {
- "chalk": "^4.0.0",
- "debug": "^4.3.4",
- "dotenv": "~16.4.5",
- "dotenv-expand": "~11.0.6",
- "getenv": "^2.0.0"
+ "hermes-estree": "0.32.0"
}
},
- "node_modules/expo/node_modules/@expo/metro-config": {
- "version": "54.0.14",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.14.tgz",
- "integrity": "sha512-hxpLyDfOR4L23tJ9W1IbJJsG7k4lv2sotohBm/kTYyiG+pe1SYCAWsRmgk+H42o/wWf/HQjE5k45S5TomGLxNA==",
+ "node_modules/expo/node_modules/metro/node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.20.0",
- "@babel/core": "^7.20.0",
- "@babel/generator": "^7.20.5",
- "@expo/config": "~12.0.13",
- "@expo/env": "~2.0.8",
- "@expo/json-file": "~10.0.8",
- "@expo/metro": "~54.2.0",
- "@expo/spawn-async": "^1.7.2",
- "browserslist": "^4.25.0",
- "chalk": "^4.1.0",
- "debug": "^4.3.2",
- "dotenv": "~16.4.5",
- "dotenv-expand": "~11.0.6",
- "getenv": "^2.0.0",
- "glob": "^13.0.0",
- "hermes-parser": "^0.29.1",
- "jsc-safe-url": "^0.2.4",
- "lightningcss": "^1.30.1",
- "minimatch": "^9.0.0",
- "postcss": "~8.4.32",
- "resolve-from": "^5.0.0"
+ "engines": {
+ "node": ">=8.3.0"
},
"peerDependencies": {
- "expo": "*"
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
- "expo": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
"optional": true
}
}
},
- "node_modules/expo/node_modules/@expo/plist": {
- "version": "0.4.8",
- "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.4.8.tgz",
- "integrity": "sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==",
- "license": "MIT",
- "dependencies": {
- "@xmldom/xmldom": "^0.8.8",
- "base64-js": "^1.2.3",
- "xmlbuilder": "^15.1.1"
- }
- },
- "node_modules/expo/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/expo/node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
+ "node_modules/expo/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">= 0.6"
}
},
- "node_modules/expo/node_modules/hermes-estree": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
- "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
- "license": "MIT"
- },
- "node_modules/expo/node_modules/hermes-parser": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
- "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
+ "node_modules/expo/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
- "hermes-estree": "0.29.1"
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
"node_modules/expo/node_modules/minimatch": {
@@ -8710,16 +8982,25 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/expo/node_modules/picomatch": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.2.tgz",
- "integrity": "sha512-cfDHL6LStTEKlNilboNtobT/kEa30PtAf2Q1OgszfrG/rpVl1xaFWT9ktfkS306GmHgmnad1Sw4wabhlvFtsTw==",
+ "node_modules/expo/node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/expo/node_modules/ob1": {
+ "version": "0.83.3",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.3.tgz",
+ "integrity": "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==",
+ "license": "MIT",
+ "dependencies": {
+ "flow-enums-runtime": "^0.0.6"
},
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "engines": {
+ "node": ">=20.19.4"
}
},
"node_modules/expo/node_modules/postcss": {
@@ -8750,10 +9031,31 @@
"node": "^10 || ^12 || >=14"
}
},
+ "node_modules/expo/node_modules/resolve": {
+ "version": "1.22.12",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
+ "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/expo/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -8833,13 +9135,6 @@
"node": ">= 4.9.1"
}
},
- "node_modules/fastestsmallesttextencoderdecoder": {
- "version": "1.0.22",
- "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz",
- "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==",
- "license": "CC0-1.0",
- "peer": true
- },
"node_modules/fb-watchman": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
@@ -9211,9 +9506,9 @@
}
},
"node_modules/get-tsconfig": {
- "version": "4.13.7",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz",
- "integrity": "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==",
+ "version": "4.14.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz",
+ "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9278,9 +9573,9 @@
}
},
"node_modules/glob/node_modules/brace-expansion": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
- "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
"license": "MIT",
"dependencies": {
"balanced-match": "^4.0.2"
@@ -9290,12 +9585,12 @@
}
},
"node_modules/glob/node_modules/minimatch": {
- "version": "10.2.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
- "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^5.0.2"
+ "brace-expansion": "^5.0.5"
},
"engines": {
"node": "18 || 20 || >=22"
@@ -9434,9 +9729,9 @@
}
},
"node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
+ "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -9783,9 +10078,9 @@
}
},
"node_modules/is-bun-module/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -9809,12 +10104,12 @@
}
},
"node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "version": "2.16.2",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz",
+ "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==",
"license": "MIT",
"dependencies": {
- "hasown": "^2.0.2"
+ "hasown": "^2.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -10268,13 +10563,6 @@
"node": ">=8"
}
},
- "node_modules/jayson/node_modules/@types/node": {
- "version": "12.20.55",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
- "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
- "license": "MIT",
- "peer": true
- },
"node_modules/jayson/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@@ -10282,16 +10570,6 @@
"license": "MIT",
"peer": true
},
- "node_modules/jayson/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "license": "MIT",
- "peer": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/jest-environment-node": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
@@ -10484,9 +10762,9 @@
"license": "MIT"
},
"node_modules/jiti": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
- "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz",
+ "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==",
"dev": true,
"license": "MIT",
"bin": {
@@ -10620,9 +10898,9 @@
}
},
"node_modules/lan-network": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/lan-network/-/lan-network-0.1.7.tgz",
- "integrity": "sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/lan-network/-/lan-network-0.2.1.tgz",
+ "integrity": "sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A==",
"license": "MIT",
"bin": {
"lan-network": "dist/lan-network-cli.js"
@@ -10791,6 +11069,32 @@
"cpu": [
"arm64"
],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz",
+ "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "musl"
+ ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -10811,6 +11115,9 @@
"cpu": [
"x64"
],
+ "libc": [
+ "glibc"
+ ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -10831,6 +11138,9 @@
"cpu": [
"x64"
],
+ "libc": [
+ "musl"
+ ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -10884,9 +11194,6 @@
"url": "https://opencollective.com/parcel"
}
},
- "node_modules/lightningcss/node_modules/lightningcss-linux-arm64-musl": {
- "optional": true
- },
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
@@ -10910,9 +11217,9 @@
}
},
"node_modules/lodash": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
- "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
+ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
"license": "MIT"
},
"node_modules/lodash.debounce": {
@@ -11073,13 +11380,6 @@
"node": ">= 0.4"
}
},
- "node_modules/mdn-data": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
- "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
- "license": "CC0-1.0",
- "peer": true
- },
"node_modules/memoize-one": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
@@ -11106,45 +11406,44 @@
"license": "MIT"
},
"node_modules/metro": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz",
- "integrity": "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.7.tgz",
+ "integrity": "sha512-SPaPEyvTsTmd0LpT7RaZciQyDw2i/JB7+iY9L5VfBo72+psescFxBqpI1TL9dnL+pmnfkU+l/J1mEEGLeF65EQ==",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.24.7",
+ "@babel/code-frame": "^7.29.0",
"@babel/core": "^7.25.2",
- "@babel/generator": "^7.25.0",
- "@babel/parser": "^7.25.3",
- "@babel/template": "^7.25.0",
- "@babel/traverse": "^7.25.3",
- "@babel/types": "^7.25.2",
- "accepts": "^1.3.7",
- "chalk": "^4.0.0",
+ "@babel/generator": "^7.29.1",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "accepts": "^2.0.0",
"ci-info": "^2.0.0",
"connect": "^3.6.5",
"debug": "^4.4.0",
"error-stack-parser": "^2.0.6",
"flow-enums-runtime": "^0.0.6",
"graceful-fs": "^4.2.4",
- "hermes-parser": "0.32.0",
+ "hermes-parser": "0.35.0",
"image-size": "^1.0.2",
"invariant": "^2.2.4",
"jest-worker": "^29.7.0",
"jsc-safe-url": "^0.2.2",
"lodash.throttle": "^4.1.1",
- "metro-babel-transformer": "0.83.3",
- "metro-cache": "0.83.3",
- "metro-cache-key": "0.83.3",
- "metro-config": "0.83.3",
- "metro-core": "0.83.3",
- "metro-file-map": "0.83.3",
- "metro-resolver": "0.83.3",
- "metro-runtime": "0.83.3",
- "metro-source-map": "0.83.3",
- "metro-symbolicate": "0.83.3",
- "metro-transform-plugins": "0.83.3",
- "metro-transform-worker": "0.83.3",
- "mime-types": "^2.1.27",
+ "metro-babel-transformer": "0.83.7",
+ "metro-cache": "0.83.7",
+ "metro-cache-key": "0.83.7",
+ "metro-config": "0.83.7",
+ "metro-core": "0.83.7",
+ "metro-file-map": "0.83.7",
+ "metro-resolver": "0.83.7",
+ "metro-runtime": "0.83.7",
+ "metro-source-map": "0.83.7",
+ "metro-symbolicate": "0.83.7",
+ "metro-transform-plugins": "0.83.7",
+ "metro-transform-worker": "0.83.7",
+ "mime-types": "^3.0.1",
"nullthrows": "^1.1.1",
"serialize-error": "^2.1.0",
"source-map": "^0.5.6",
@@ -11160,14 +11459,15 @@
}
},
"node_modules/metro-babel-transformer": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz",
- "integrity": "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.7.tgz",
+ "integrity": "sha512-sBqBkt6kNut/88bv+Ucvm4yqdPetbvAEsHzi3MAgJEifOSYYzX5Z5Kgw3TFOrwf/mHJTOBG2ONlaMHoyfP15TA==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.2",
"flow-enums-runtime": "^0.0.6",
- "hermes-parser": "0.32.0",
+ "hermes-parser": "0.35.0",
+ "metro-cache-key": "0.83.7",
"nullthrows": "^1.1.1"
},
"engines": {
@@ -11175,39 +11475,39 @@
}
},
"node_modules/metro-babel-transformer/node_modules/hermes-estree": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz",
- "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==",
+ "version": "0.35.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.35.0.tgz",
+ "integrity": "sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg==",
"license": "MIT"
},
"node_modules/metro-babel-transformer/node_modules/hermes-parser": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz",
- "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==",
+ "version": "0.35.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.35.0.tgz",
+ "integrity": "sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA==",
"license": "MIT",
"dependencies": {
- "hermes-estree": "0.32.0"
+ "hermes-estree": "0.35.0"
}
},
"node_modules/metro-cache": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz",
- "integrity": "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.7.tgz",
+ "integrity": "sha512-E9SRePXQ1Zvlj79VcOk57q7VC7rMHMFQ+jhmPHBiq+dJ0bJB5BL87lWZF6oh5X76Cci5tpDuQNaDwwuSCToEeg==",
"license": "MIT",
"dependencies": {
"exponential-backoff": "^3.1.1",
"flow-enums-runtime": "^0.0.6",
"https-proxy-agent": "^7.0.5",
- "metro-core": "0.83.3"
+ "metro-core": "0.83.7"
},
"engines": {
"node": ">=20.19.4"
}
},
"node_modules/metro-cache-key": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.3.tgz",
- "integrity": "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.7.tgz",
+ "integrity": "sha512-W1c2Nmx8MiJTJt+eWhMO08z9VKi3kZOaz99IYGdqeqDgY9j+yZjXl62rUav4Di0heZfh4/n2s722PqRL1OODeg==",
"license": "MIT",
"dependencies": {
"flow-enums-runtime": "^0.0.6"
@@ -11217,18 +11517,18 @@
}
},
"node_modules/metro-config": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.3.tgz",
- "integrity": "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.7.tgz",
+ "integrity": "sha512-83mjWFbFOt2GeJ6pFIum5mSnc1uTsZJAtD8o4ej0s4NVsYsA7fB+pHvTfHhFrpeMONaobu2riKavkPei05Er/Q==",
"license": "MIT",
"dependencies": {
"connect": "^3.6.5",
"flow-enums-runtime": "^0.0.6",
"jest-validate": "^29.7.0",
- "metro": "0.83.3",
- "metro-cache": "0.83.3",
- "metro-core": "0.83.3",
- "metro-runtime": "0.83.3",
+ "metro": "0.83.7",
+ "metro-cache": "0.83.7",
+ "metro-core": "0.83.7",
+ "metro-runtime": "0.83.7",
"yaml": "^2.6.1"
},
"engines": {
@@ -11236,23 +11536,23 @@
}
},
"node_modules/metro-core": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz",
- "integrity": "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.7.tgz",
+ "integrity": "sha512-6yn3w1wnltT6RQl7p7YES2l95ArC+mWrOssEiH8p5/DDrJS65/szf9LsC9JrBv8c5DdvSY3V3f0GRYg0Ox7hCg==",
"license": "MIT",
"dependencies": {
"flow-enums-runtime": "^0.0.6",
"lodash.throttle": "^4.1.1",
- "metro-resolver": "0.83.3"
+ "metro-resolver": "0.83.7"
},
"engines": {
"node": ">=20.19.4"
}
},
"node_modules/metro-file-map": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.3.tgz",
- "integrity": "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.7.tgz",
+ "integrity": "sha512-+j0F1m+FQYVAQ6syf+mwhIPV5GoFQrkInX8bppuc50IzNsZbMrp8R5H/Sx/K2daQ3YEa9F/XwkeZT8gzJfgeCw==",
"license": "MIT",
"dependencies": {
"debug": "^4.4.0",
@@ -11270,9 +11570,9 @@
}
},
"node_modules/metro-minify-terser": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz",
- "integrity": "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.7.tgz",
+ "integrity": "sha512-MfJar2IS4tBRuLb9svwb0Gu5l9BsH+pcRm8eGcEi/wy8MzZinfinh5dFLt2nWkocnulIgtGB5NkFDdbXqMXKhQ==",
"license": "MIT",
"dependencies": {
"flow-enums-runtime": "^0.0.6",
@@ -11283,9 +11583,9 @@
}
},
"node_modules/metro-resolver": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.3.tgz",
- "integrity": "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.7.tgz",
+ "integrity": "sha512-WSJIENlMcoSsuz66IfBHOkgfp3KJt2UW2TnEHPf1b8pIG2eEXNOVmo2+03A0H17WY2XGXWgxL0CG7FAopqgB1A==",
"license": "MIT",
"dependencies": {
"flow-enums-runtime": "^0.0.6"
@@ -11295,9 +11595,9 @@
}
},
"node_modules/metro-runtime": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz",
- "integrity": "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.7.tgz",
+ "integrity": "sha512-9GKkJURaB2iyYoEExKnedzAHzxmKtSi+k0tsZUvMoU27tBZJElchYt7JH/Ai/XzYAI9lCAaV7u5HZSI8J5Z+wQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.25.0",
@@ -11308,19 +11608,18 @@
}
},
"node_modules/metro-source-map": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz",
- "integrity": "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.7.tgz",
+ "integrity": "sha512-JgA1h7oc1a1jydBe1GhVFsUoMYo3wLPk7oRA32rjlDsq+sP2JLt9x2p2lWbNSxTm/u8NV4VRid3hvEJgcX8tKw==",
"license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.25.3",
- "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3",
- "@babel/types": "^7.25.2",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
"flow-enums-runtime": "^0.0.6",
"invariant": "^2.2.4",
- "metro-symbolicate": "0.83.3",
+ "metro-symbolicate": "0.83.7",
"nullthrows": "^1.1.1",
- "ob1": "0.83.3",
+ "ob1": "0.83.7",
"source-map": "^0.5.6",
"vlq": "^1.0.0"
},
@@ -11329,14 +11628,14 @@
}
},
"node_modules/metro-symbolicate": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz",
- "integrity": "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.7.tgz",
+ "integrity": "sha512-g4suyxw20WOHWI680c+Kq4wC/NF+Hx5pRH9afrMp+sMTxqLeKcPR1Xf4wMhsjlbvx7LbIREdke6q928jEjvJWw==",
"license": "MIT",
"dependencies": {
"flow-enums-runtime": "^0.0.6",
"invariant": "^2.2.4",
- "metro-source-map": "0.83.3",
+ "metro-source-map": "0.83.7",
"nullthrows": "^1.1.1",
"source-map": "^0.5.6",
"vlq": "^1.0.0"
@@ -11349,15 +11648,15 @@
}
},
"node_modules/metro-transform-plugins": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz",
- "integrity": "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.7.tgz",
+ "integrity": "sha512-Ss0FpBiZDjX2kwhukMDl5sNdYK8T/06IPqxNE4H6PTlRlfs9q11cef13c/xESY/Pm4VCkp1yJUZO3kXzvMxQFA==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.2",
- "@babel/generator": "^7.25.0",
- "@babel/template": "^7.25.0",
- "@babel/traverse": "^7.25.3",
+ "@babel/generator": "^7.29.1",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
"flow-enums-runtime": "^0.0.6",
"nullthrows": "^1.1.1"
},
@@ -11366,23 +11665,23 @@
}
},
"node_modules/metro-transform-worker": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz",
- "integrity": "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.7.tgz",
+ "integrity": "sha512-UegCo7ygB2fT64mRK2nbAjQVJ1zSwIIHy8d96jJv2nKZFDaViYBiughEdu5HM/Ceq0WN3LZrZk3zhl9aoiLYFw==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.2",
- "@babel/generator": "^7.25.0",
- "@babel/parser": "^7.25.3",
- "@babel/types": "^7.25.2",
+ "@babel/generator": "^7.29.1",
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
"flow-enums-runtime": "^0.0.6",
- "metro": "0.83.3",
- "metro-babel-transformer": "0.83.3",
- "metro-cache": "0.83.3",
- "metro-cache-key": "0.83.3",
- "metro-minify-terser": "0.83.3",
- "metro-source-map": "0.83.3",
- "metro-transform-plugins": "0.83.3",
+ "metro": "0.83.7",
+ "metro-babel-transformer": "0.83.7",
+ "metro-cache": "0.83.7",
+ "metro-cache-key": "0.83.7",
+ "metro-minify-terser": "0.83.7",
+ "metro-source-map": "0.83.7",
+ "metro-transform-plugins": "0.83.7",
"nullthrows": "^1.1.1"
},
"engines": {
@@ -11390,18 +11689,18 @@
}
},
"node_modules/metro/node_modules/hermes-estree": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz",
- "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==",
+ "version": "0.35.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.35.0.tgz",
+ "integrity": "sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg==",
"license": "MIT"
},
"node_modules/metro/node_modules/hermes-parser": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz",
- "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==",
+ "version": "0.35.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.35.0.tgz",
+ "integrity": "sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA==",
"license": "MIT",
"dependencies": {
- "hermes-estree": "0.32.0"
+ "hermes-estree": "0.35.0"
}
},
"node_modules/micromatch": {
@@ -11442,24 +11741,28 @@
}
},
"node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
"license": "MIT",
"dependencies": {
- "mime-db": "1.52.0"
+ "mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/mimic-fn": {
@@ -11543,9 +11846,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "version": "3.3.12",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
+ "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
"funding": [
{
"type": "github",
@@ -11603,9 +11906,9 @@
"license": "MIT"
},
"node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
+ "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -11657,9 +11960,9 @@
}
},
"node_modules/node-forge": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz",
- "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz",
+ "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==",
"license": "(BSD-3-Clause OR GPL-2.0)",
"engines": {
"node": ">= 6.13.0"
@@ -11685,9 +11988,9 @@
"license": "MIT"
},
"node_modules/node-releases": {
- "version": "2.0.36",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
- "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
+ "version": "2.0.38",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz",
+ "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==",
"license": "MIT"
},
"node_modules/normalize-path": {
@@ -11715,9 +12018,9 @@
}
},
"node_modules/npm-package-arg/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -11726,19 +12029,6 @@
"node": ">=10"
}
},
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
"node_modules/nullthrows": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
@@ -11746,9 +12036,9 @@
"license": "MIT"
},
"node_modules/ob1": {
- "version": "0.83.3",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.3.tgz",
- "integrity": "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==",
+ "version": "0.83.7",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.7.tgz",
+ "integrity": "sha512-9M5kpuOLyTPogMtZiQUIxdAZxl7Dxs6tVBbJErSumsqGMuhVSoUbkfeZ3XNPpLpwBBtqY5QDUzGwggLHX3slQg==",
"license": "MIT",
"dependencies": {
"flow-enums-runtime": "^0.0.6"
@@ -12247,9 +12537,9 @@
}
},
"node_modules/path-scurry/node_modules/lru-cache": {
- "version": "11.2.7",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
- "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
+ "version": "11.3.6",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz",
+ "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==",
"license": "BlueOak-1.0.0",
"engines": {
"node": "20 || >=22"
@@ -12283,12 +12573,12 @@
}
},
"node_modules/plist": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
- "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.1.tgz",
+ "integrity": "sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA==",
"license": "MIT",
"dependencies": {
- "@xmldom/xmldom": "^0.8.8",
+ "@xmldom/xmldom": "^0.9.10",
"base64-js": "^1.5.1",
"xmlbuilder": "^15.1.1"
},
@@ -12296,6 +12586,15 @@
"node": ">=10.4.0"
}
},
+ "node_modules/plist/node_modules/@xmldom/xmldom": {
+ "version": "0.9.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz",
+ "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.6"
+ }
+ },
"node_modules/pngjs": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
@@ -12316,9 +12615,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
- "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+ "version": "8.5.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
+ "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
"dev": true,
"funding": [
{
@@ -12351,12 +12650,13 @@
"license": "MIT"
},
"node_modules/posthog-react-native": {
- "version": "4.37.6",
- "resolved": "https://registry.npmjs.org/posthog-react-native/-/posthog-react-native-4.37.6.tgz",
- "integrity": "sha512-LoZTcSYPebr125QFdTySwLyZT/LVU8xmkRAYPCwS18IqLpXY6hsbgjeIyQhi9RpEKIbdvUR6sNuCKx/EaKnqNg==",
+ "version": "4.45.0",
+ "resolved": "https://registry.npmjs.org/posthog-react-native/-/posthog-react-native-4.45.0.tgz",
+ "integrity": "sha512-wRXutZ9sVw+5NjKPxRIJbYRXedlaBx8AAPtY4Ov+EjziyzEoDaKYxXVimxx5fFjcLmZZjMcB5UN7mWuU8PdUzQ==",
"license": "MIT",
"dependencies": {
- "@posthog/core": "1.24.1"
+ "@posthog/core": "1.28.4",
+ "@posthog/types": "1.372.10"
},
"peerDependencies": {
"@react-native-async-storage/async-storage": ">=1.0.0",
@@ -12365,7 +12665,7 @@
"expo-device": ">= 4.0.0",
"expo-file-system": ">= 13.0.0",
"expo-localization": ">= 11.0.0",
- "posthog-react-native-session-replay": ">= 1.5.0",
+ "posthog-react-native-session-replay": ">= 1.5.8",
"react-native-device-info": ">= 10.0.0",
"react-native-localize": ">= 3.0.0",
"react-native-navigation": ">= 6.0.0",
@@ -12405,6 +12705,9 @@
},
"react-native-safe-area-context": {
"optional": true
+ },
+ "react-native-svg": {
+ "optional": true
}
}
},
@@ -12811,9 +13114,9 @@
}
},
"node_modules/react-is": {
- "version": "19.2.4",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz",
- "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==",
+ "version": "19.2.6",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.6.tgz",
+ "integrity": "sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw==",
"license": "MIT"
},
"node_modules/react-native": {
@@ -12874,9 +13177,9 @@
}
},
"node_modules/react-native-css": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/react-native-css/-/react-native-css-3.0.6.tgz",
- "integrity": "sha512-YhP3SGc9VRItWZ9TMt+QENor5ha2ym3z3QiyL/eRVrBmV3LCv9FyxOhw9c0SB8Ndvwc7KH0ch2XCQ7ZgZg5dNQ==",
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/react-native-css/-/react-native-css-3.0.7.tgz",
+ "integrity": "sha512-xsU9T5MleHI/DDmY72A7ZikbkDfDNkMrAEichOJW2bBUMxPzAJPrFk9ys4cXYk4gLFaR11y23EccOJ+JT6Iusw==",
"license": "MIT",
"workspaces": [
"example",
@@ -12947,9 +13250,9 @@
}
},
"node_modules/react-native-reanimated/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -12983,22 +13286,6 @@
"react-native": "*"
}
},
- "node_modules/react-native-svg": {
- "version": "15.15.4",
- "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.15.4.tgz",
- "integrity": "sha512-boT/vIRgj6zZKBpfTPJJiYWMbZE9duBMOwPK6kCSTgxsS947IFMOq9OgIFkpWZTB7t229H24pDRkh3W9ZK/J1A==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "css-select": "^5.1.0",
- "css-tree": "^1.1.3",
- "warn-once": "0.1.1"
- },
- "peerDependencies": {
- "react": "*",
- "react-native": "*"
- }
- },
"node_modules/react-native-url-polyfill": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-2.0.0.tgz",
@@ -13133,9 +13420,9 @@
}
},
"node_modules/react-native/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -13323,9 +13610,9 @@
"license": "MIT"
},
"node_modules/regjsparser": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz",
- "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==",
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz",
+ "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==",
"license": "BSD-2-Clause",
"dependencies": {
"jsesc": "~3.1.0"
@@ -13381,12 +13668,16 @@
}
},
"node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "version": "2.0.0-next.6",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
+ "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
+ "es-errors": "^1.3.0",
"is-core-module": "^2.16.1",
+ "node-exports-info": "^1.6.0",
+ "object-keys": "^1.1.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -13485,9 +13776,9 @@
}
},
"node_modules/rpc-websockets": {
- "version": "9.3.6",
- "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.3.6.tgz",
- "integrity": "sha512-RzuOQDGd+EtR/cBYQAH/0jjaBzhyvXXGROhxigGJPf+q3XKyvtelZCucylzxiq5MaGlfBx1075djTsxFsFDgrA==",
+ "version": "9.3.9",
+ "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.3.9.tgz",
+ "integrity": "sha512-2iQDaTB4g5fDB2ihrTFSJSibCEuxaRi1q7qTW7ZO9/M5/TC+ToHA4D9/ffNLEbAoHNNrcdeP05oATNk44SKZXA==",
"license": "LGPL-3.0-only",
"peer": true,
"dependencies": {
@@ -13496,7 +13787,7 @@
"@types/ws": "^8.2.2",
"buffer": "^6.0.3",
"eventemitter3": "^5.0.1",
- "uuid": "^11.0.0",
+ "uuid": "^14.0.0",
"ws": "^8.5.0"
},
"funding": {
@@ -13518,31 +13809,6 @@
"@types/node": "*"
}
},
- "node_modules/rpc-websockets/node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
"node_modules/rpc-websockets/node_modules/utf-8-validate": {
"version": "6.0.6",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-6.0.6.tgz",
@@ -13559,9 +13825,9 @@
}
},
"node_modules/rpc-websockets/node_modules/uuid": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
- "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.0.tgz",
+ "integrity": "sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
@@ -13569,7 +13835,7 @@
"license": "MIT",
"peer": true,
"bin": {
- "uuid": "dist/esm/bin/uuid"
+ "uuid": "dist-node/bin/uuid"
}
},
"node_modules/rpc-websockets/node_modules/ws": {
@@ -13595,15 +13861,15 @@
}
},
"node_modules/safe-array-concat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
- "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz",
+ "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
+ "call-bind": "^1.0.9",
+ "call-bound": "^1.0.4",
+ "get-intrinsic": "^1.3.0",
"has-symbols": "^1.1.0",
"isarray": "^2.0.5"
},
@@ -13937,14 +14203,14 @@
}
},
"node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
+ "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
"dev": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
+ "object-inspect": "^1.13.4"
},
"engines": {
"node": ">= 0.4"
@@ -14034,9 +14300,9 @@
}
},
"node_modules/slugify": {
- "version": "1.6.8",
- "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.8.tgz",
- "integrity": "sha512-HVk9X1E0gz3mSpoi60h/saazLKXKaZThMLU3u/aNwoYn8/xQyX2MGxL0ui2eaokkD7tF+Zo+cKTHUbe1mmmGzA==",
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.9.tgz",
+ "integrity": "sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==",
"license": "MIT",
"engines": {
"node": ">=8.0.0"
@@ -14442,9 +14708,9 @@
}
},
"node_modules/tailwindcss": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz",
- "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.0.tgz",
+ "integrity": "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==",
"license": "MIT"
},
"node_modules/tailwindcss-safe-area": {
@@ -14463,9 +14729,9 @@
}
},
"node_modules/tapable": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz",
- "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
+ "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -14477,9 +14743,9 @@
}
},
"node_modules/tar": {
- "version": "7.5.13",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz",
- "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==",
+ "version": "7.5.15",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.15.tgz",
+ "integrity": "sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==",
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/fs-minipass": "^4.0.0",
@@ -14518,9 +14784,9 @@
}
},
"node_modules/terser": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz",
- "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==",
+ "version": "5.47.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.47.1.tgz",
+ "integrity": "sha512-tPbLXTI6ohPASb/1YViL428oEHu6/qv1OxqYnfaonVCFHqx4+wCd95pHrQWsL5X4pl90CTyW9piSAsS2L0VoMw==",
"license": "BSD-2-Clause",
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
@@ -14610,13 +14876,13 @@
"license": "MIT"
},
"node_modules/tinyglobby": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
- "picomatch": "^4.0.3"
+ "picomatch": "^4.0.4"
},
"engines": {
"node": ">=12.0.0"
@@ -14877,20 +15143,14 @@
}
},
"node_modules/undici": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
- "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz",
+ "integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==",
"license": "MIT",
"engines": {
"node": ">=18.17"
}
},
- "node_modules/undici-types": {
- "version": "7.18.2",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
- "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
- "license": "MIT"
- },
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
@@ -15086,10 +15346,12 @@
}
},
"node_modules/uuid": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
- "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
"license": "MIT",
+ "peer": true,
"bin": {
"uuid": "dist/bin/uuid"
}
@@ -15303,9 +15565,9 @@
}
},
"node_modules/viem": {
- "version": "2.47.6",
- "resolved": "https://registry.npmjs.org/viem/-/viem-2.47.6.tgz",
- "integrity": "sha512-zExmbI99NGvMdYa7fmqSTLgkwh48dmhgEqFrUgkpL4kfG4XkVefZ8dZqIKVUhZo6Uhf0FrrEXOsHm9LUyIvI2Q==",
+ "version": "2.48.11",
+ "resolved": "https://registry.npmjs.org/viem/-/viem-2.48.11.tgz",
+ "integrity": "sha512-+WZ5E0dBS6GtKb+1wEk5DeYRRRW42+pFnXCo67Ydodf42sBwO+hu3wnQy66lc4MKmHz+llPVdbyehYr9oTE2iw==",
"funding": [
{
"type": "github",
@@ -15320,7 +15582,7 @@
"@scure/bip39": "1.6.0",
"abitype": "1.2.3",
"isows": "1.0.7",
- "ox": "0.14.7",
+ "ox": "0.14.20",
"ws": "8.18.3"
},
"peerDependencies": {
@@ -15359,10 +15621,31 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/viem/node_modules/abitype": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz",
+ "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/wevm"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.4",
+ "zod": "^3.22.0 || ^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ },
+ "zod": {
+ "optional": true
+ }
+ }
+ },
"node_modules/viem/node_modules/ox": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/ox/-/ox-0.14.7.tgz",
- "integrity": "sha512-zSQ/cfBdolj7U4++NAvH7sI+VG0T3pEohITCgcQj8KlawvTDY4vGVhDT64Atsm0d6adWfIYHDpu88iUBMMp+AQ==",
+ "version": "0.14.20",
+ "resolved": "https://registry.npmjs.org/ox/-/ox-0.14.20.tgz",
+ "integrity": "sha512-rby38C3nDn8eQkf29Zgw4hkCZJ64Qqi0zRPWL8ENUQ7JVuoITqrVtwWQgM/He19SCMUEc7hS/Sjw0jIOSLJhOw==",
"funding": [
{
"type": "github",
@@ -15476,6 +15759,30 @@
"node": ">=10"
}
},
+ "node_modules/whatwg-url-without-unicode/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"node_modules/whatwg-url-without-unicode/node_modules/webidl-conversions": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
@@ -15596,9 +15903,9 @@
}
},
"node_modules/wonka": {
- "version": "6.3.5",
- "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.5.tgz",
- "integrity": "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==",
+ "version": "6.3.6",
+ "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.6.tgz",
+ "integrity": "sha512-MXH+6mDHAZ2GuMpgKS055FR6v0xVP3XwquxIMYXgiW+FejHQlMGlvVRZT4qMCxR+bEo/FCtIdKxwej9WV3YQag==",
"license": "MIT"
},
"node_modules/word-wrap": {
@@ -15681,6 +15988,16 @@
"node": ">=10.0.0"
}
},
+ "node_modules/xcode/node_modules/uuid": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
+ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
+ "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
"node_modules/xml2js": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz",
@@ -15728,9 +16045,9 @@
"license": "ISC"
},
"node_modules/yaml": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
- "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
+ "version": "2.8.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz",
+ "integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==",
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
diff --git a/package.json b/package.json
index 3102fd4..2b2031f 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,6 @@
"expo-system-ui": "~6.0.9",
"expo-web-browser": "~15.0.10",
"nativewind": "^5.0.0-preview.3",
- "posthog-react-native": "^4.37.6",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-native": "0.81.5",
diff --git a/src/config/posthog.ts b/src/config/posthog.ts
deleted file mode 100644
index 7dca99d..0000000
--- a/src/config/posthog.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import PostHog from 'posthog-react-native'
-import Constants from 'expo-constants'
-
-const rawApiKey = Constants.expoConfig?.extra?.posthogProjectToken as string | undefined
-const rawHost = Constants.expoConfig?.extra?.posthogHost as string | undefined
-
-// Trim and normalize API key and host
-const apiKey = rawApiKey?.trim()
-const host = rawHost?.trim()
-const isPostHogConfigured = !!apiKey && apiKey !== '' && apiKey !== 'phc_your_project_token_here'
-
-if (!isPostHogConfigured) {
- console.warn(
- 'PostHog project token not configured. Analytics will be disabled. ' +
- 'Set POSTHOG_PROJECT_TOKEN in your .env file to enable analytics.'
- )
-}
-
-export const posthog = new PostHog(apiKey || 'placeholder_key', {
- ...(host ? { host } : {}),
- disabled: !isPostHogConfigured,
- captureAppLifecycleEvents: true,
- debug: __DEV__,
- flushAt: 20,
- flushInterval: 10000,
- maxBatchSize: 100,
- maxQueueSize: 1000,
- preloadFeatureFlags: true,
- sendFeatureFlagEvent: true,
- featureFlagsRequestTimeoutMs: 10000,
- requestTimeout: 10000,
- fetchRetryCount: 3,
- fetchRetryDelay: 3000,
-})