From 397fa9c0c4acc23db8d42de0b8833593a8f99304 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:13:25 +0100 Subject: [PATCH 01/21] feat(mobile): add Capacitor Android wrapper for Helium --- mobile-wrapper/README.md | 32 + mobile-wrapper/android/.gitignore | 101 +++ mobile-wrapper/android/app/.gitignore | 2 + mobile-wrapper/android/app/build.gradle | 54 ++ .../android/app/capacitor.build.gradle | 20 + mobile-wrapper/android/app/proguard-rules.pro | 21 + .../myapp/ExampleInstrumentedTest.java | 26 + .../android/app/src/main/AndroidManifest.xml | 41 + .../srizan/helium/mobile/MainActivity.java | 5 + .../main/res/drawable-land-hdpi/splash.png | Bin 0 -> 7705 bytes .../main/res/drawable-land-mdpi/splash.png | Bin 0 -> 4040 bytes .../main/res/drawable-land-xhdpi/splash.png | Bin 0 -> 9251 bytes .../main/res/drawable-land-xxhdpi/splash.png | Bin 0 -> 13984 bytes .../main/res/drawable-land-xxxhdpi/splash.png | Bin 0 -> 17683 bytes .../main/res/drawable-port-hdpi/splash.png | Bin 0 -> 7934 bytes .../main/res/drawable-port-mdpi/splash.png | Bin 0 -> 4096 bytes .../main/res/drawable-port-xhdpi/splash.png | Bin 0 -> 9875 bytes .../main/res/drawable-port-xxhdpi/splash.png | Bin 0 -> 13346 bytes .../main/res/drawable-port-xxxhdpi/splash.png | Bin 0 -> 17489 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 + .../res/drawable/ic_launcher_background.xml | 170 ++++ .../app/src/main/res/drawable/splash.png | Bin 0 -> 4040 bytes .../app/src/main/res/layout/activity_main.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2786 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 3450 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4341 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1869 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2110 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2725 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3981 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 5036 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6593 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6644 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 9793 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10455 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9441 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 15529 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15916 bytes .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 7 + .../app/src/main/res/values/styles.xml | 22 + .../app/src/main/res/xml/file_paths.xml | 5 + .../getcapacitor/myapp/ExampleUnitTest.java | 18 + mobile-wrapper/android/build.gradle | 29 + .../android/capacitor.settings.gradle | 9 + mobile-wrapper/android/gradle.properties | 22 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + mobile-wrapper/android/gradlew | 252 ++++++ mobile-wrapper/android/gradlew.bat | 94 +++ mobile-wrapper/android/settings.gradle | 5 + mobile-wrapper/android/variables.gradle | 16 + mobile-wrapper/capacitor.config.ts | 12 + mobile-wrapper/index.html | 12 + mobile-wrapper/package.json | 31 + mobile-wrapper/src/App.tsx | 37 + mobile-wrapper/src/main.tsx | 16 + mobile-wrapper/src/styles.css | 80 ++ mobile-wrapper/tsconfig.json | 20 + mobile-wrapper/vite.config.ts | 6 + package.json | 8 +- pnpm-lock.yaml | 737 +++++++++++++++++- pnpm-workspace.yaml | 4 + 65 files changed, 1941 insertions(+), 40 deletions(-) create mode 100644 mobile-wrapper/README.md create mode 100644 mobile-wrapper/android/.gitignore create mode 100644 mobile-wrapper/android/app/.gitignore create mode 100644 mobile-wrapper/android/app/build.gradle create mode 100644 mobile-wrapper/android/app/capacitor.build.gradle create mode 100644 mobile-wrapper/android/app/proguard-rules.pro create mode 100644 mobile-wrapper/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java create mode 100644 mobile-wrapper/android/app/src/main/AndroidManifest.xml create mode 100644 mobile-wrapper/android/app/src/main/java/dev/srizan/helium/mobile/MainActivity.java create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-hdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-mdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-xhdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-xxhdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-xxxhdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-hdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-mdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-xhdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-xxhdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-xxxhdpi/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 mobile-wrapper/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 mobile-wrapper/android/app/src/main/res/drawable/splash.png create mode 100644 mobile-wrapper/android/app/src/main/res/layout/activity_main.xml create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 mobile-wrapper/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 mobile-wrapper/android/app/src/main/res/values/strings.xml create mode 100644 mobile-wrapper/android/app/src/main/res/values/styles.xml create mode 100644 mobile-wrapper/android/app/src/main/res/xml/file_paths.xml create mode 100644 mobile-wrapper/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java create mode 100644 mobile-wrapper/android/build.gradle create mode 100644 mobile-wrapper/android/capacitor.settings.gradle create mode 100644 mobile-wrapper/android/gradle.properties create mode 100644 mobile-wrapper/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 mobile-wrapper/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 mobile-wrapper/android/gradlew create mode 100644 mobile-wrapper/android/gradlew.bat create mode 100644 mobile-wrapper/android/settings.gradle create mode 100644 mobile-wrapper/android/variables.gradle create mode 100644 mobile-wrapper/capacitor.config.ts create mode 100644 mobile-wrapper/index.html create mode 100644 mobile-wrapper/package.json create mode 100644 mobile-wrapper/src/App.tsx create mode 100644 mobile-wrapper/src/main.tsx create mode 100644 mobile-wrapper/src/styles.css create mode 100644 mobile-wrapper/tsconfig.json create mode 100644 mobile-wrapper/vite.config.ts diff --git a/mobile-wrapper/README.md b/mobile-wrapper/README.md new file mode 100644 index 0000000..260483e --- /dev/null +++ b/mobile-wrapper/README.md @@ -0,0 +1,32 @@ +# Helium Mobile Wrapper (Android) + +This is a TypeScript mobile wrapper built with React + Capacitor for opening +the Helium web app on Android. + +## Why this approach + +- Capacitor keeps the project in TypeScript. +- The app opens Helium in a Chrome Custom Tab, which is currently the most + reliable way to get Android WebRTC features (including screen audio when the + device supports it). + +## Setup + +```bash +pnpm -C mobile-wrapper install +pnpm -C mobile-wrapper build +pnpm -C mobile-wrapper cap:android:add +pnpm -C mobile-wrapper cap:sync +pnpm -C mobile-wrapper cap:android:open +``` + +Then build/run from Android Studio. + +## Notes on screen sharing with audio + +- Android support for screen-capture audio depends on OS version, Chrome + version, OEM restrictions, and user permissions. +- If audio is unavailable, update Android + Chrome and confirm audio capture is + enabled in the system screen-share dialog. +- A pure in-app WebView wrapper is less reliable for audio capture than Chrome + Custom Tabs on Android. diff --git a/mobile-wrapper/android/.gitignore b/mobile-wrapper/android/.gitignore new file mode 100644 index 0000000..48354a3 --- /dev/null +++ b/mobile-wrapper/android/.gitignore @@ -0,0 +1,101 @@ +# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore + +# Built application files +*.apk +*.aar +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ +# Uncomment the following line in case you need and you don't have the release build type files in your app +# release/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/assetWizardSettings.xml +.idea/dictionaries +.idea/libraries +# Android Studio 3 in .gitignore file. +.idea/caches +.idea/modules.xml +# Comment next line if keeping position of elements in Navigation Editor is relevant for you +.idea/navEditor.xml + +# Keystore files +# Uncomment the following lines if you do not want to check your keystore files in. +#*.jks +#*.keystore + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild +.cxx/ + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Version control +vcs.xml + +# lint +lint/intermediates/ +lint/generated/ +lint/outputs/ +lint/tmp/ +# lint/reports/ + +# Android Profiling +*.hprof + +# Cordova plugins for Capacitor +capacitor-cordova-android-plugins + +# Copied web assets +app/src/main/assets/public + +# Generated Config files +app/src/main/assets/capacitor.config.json +app/src/main/assets/capacitor.plugins.json +app/src/main/res/xml/config.xml diff --git a/mobile-wrapper/android/app/.gitignore b/mobile-wrapper/android/app/.gitignore new file mode 100644 index 0000000..043df80 --- /dev/null +++ b/mobile-wrapper/android/app/.gitignore @@ -0,0 +1,2 @@ +/build/* +!/build/.npmkeep diff --git a/mobile-wrapper/android/app/build.gradle b/mobile-wrapper/android/app/build.gradle new file mode 100644 index 0000000..6fea0a8 --- /dev/null +++ b/mobile-wrapper/android/app/build.gradle @@ -0,0 +1,54 @@ +apply plugin: 'com.android.application' + +android { + namespace "dev.srizan.helium.mobile" + compileSdk rootProject.ext.compileSdkVersion + defaultConfig { + applicationId "dev.srizan.helium.mobile" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + aaptOptions { + // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. + // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 + ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +repositories { + flatDir{ + dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" + implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion" + implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion" + implementation project(':capacitor-android') + testImplementation "junit:junit:$junitVersion" + androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" + androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" + implementation project(':capacitor-cordova-android-plugins') +} + +apply from: 'capacitor.build.gradle' + +try { + def servicesJSON = file('google-services.json') + if (servicesJSON.text) { + apply plugin: 'com.google.gms.google-services' + } +} catch(Exception e) { + logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work") +} diff --git a/mobile-wrapper/android/app/capacitor.build.gradle b/mobile-wrapper/android/app/capacitor.build.gradle new file mode 100644 index 0000000..70f93fc --- /dev/null +++ b/mobile-wrapper/android/app/capacitor.build.gradle @@ -0,0 +1,20 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN + +android { + compileOptions { + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 + } +} + +apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" +dependencies { + implementation project(':capacitor-app') + implementation project(':capacitor-browser') + +} + + +if (hasProperty('postBuildExtras')) { + postBuildExtras() +} diff --git a/mobile-wrapper/android/app/proguard-rules.pro b/mobile-wrapper/android/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/mobile-wrapper/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/mobile-wrapper/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/mobile-wrapper/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java new file mode 100644 index 0000000..f2c2217 --- /dev/null +++ b/mobile-wrapper/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import android.content.Context; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.platform.app.InstrumentationRegistry; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("com.getcapacitor.app", appContext.getPackageName()); + } +} diff --git a/mobile-wrapper/android/app/src/main/AndroidManifest.xml b/mobile-wrapper/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..340e7df --- /dev/null +++ b/mobile-wrapper/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile-wrapper/android/app/src/main/java/dev/srizan/helium/mobile/MainActivity.java b/mobile-wrapper/android/app/src/main/java/dev/srizan/helium/mobile/MainActivity.java new file mode 100644 index 0000000..f2dcff8 --- /dev/null +++ b/mobile-wrapper/android/app/src/main/java/dev/srizan/helium/mobile/MainActivity.java @@ -0,0 +1,5 @@ +package dev.srizan.helium.mobile; + +import com.getcapacitor.BridgeActivity; + +public class MainActivity extends BridgeActivity {} diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-hdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..e31573b4fc93e60d171f4046c0220e1463075d9e GIT binary patch literal 7705 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 wKmFJ0_JHhk1&0B>;%YXATM literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-mdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a64923ea1a0565d25fa139c176d6bf42184e48 GIT binary patch literal 4040 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 XyOn+%7f`N3b2T^T3uj5+eShz7v)7qy literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-xhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..807725501bdd92e94e51e7b2b0006f69e0083a0b GIT binary patch literal 9251 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 literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..14c6c8fe39fcd51a0414866ad28cbe8ff3acb060 GIT binary patch literal 13984 zcmeHt`Cn4$+dnnUI8CXgla?FPH05V<%gWT;TBe+G)JhTDP;As(abHlh$zmkpu$5hgra^=kAE5J2!R|qapsrf-f2VA0{`2g;py+@CM!GM7RGJgbN^Pw*^tDu z_xDf4ZTq#$<4R>g=G6|nKLf6t2{(O}fDbYJ^&HG@XX_tk@ckMNiZaNZ{Tsgd$-eYl zNzZYkt8RO?v4RWV6yEuKRz_F&Nw9-M7T-R?g(s`CLJ!eWWm8B)QOF>(O6gl8X#*^U zTqfpU{u=l^7Pe6j{JVZL0{r-AU+@Ot*a`qsJS*2%Jo@E|gSI(viEnY|oflr@qew}|Js+?1$G)vyhhVLD_8MA4d= zd?-WS;nkPz-8QwHCLA*0)grOZT^tOF@d&j6615jNCA{X!@g4gOc|@dK_6utx#OLg@ zjgU))@<`F_$$t0A!9H>=hMWDyjCMKs6W6xeN&V%f)4)x40~iKO75_dm`MmZ4x#oY= zMm$r7o=nIi#I}8wb~7GlT+-SCK^Sk?0tud+=PuGYT{SXj)`>{5C$%zIoEuU5+Cktl zhiF$P#vcesuYWsicXfw|47uFA9kBk$GDhB^#9i89U42oUajutg6-ys_jVuYwF{4OG z9G!B&R^Ca#jCTWs)a)acPR8>4&-r=(#D4O{8n(@y7+L80MN^_%+^OLV)zH8>+hj4! z3Lv&lu-Aa+gx!GW;euM^>J(Xt$GdFrpNQQVfR{S>K2%`kA3^$ zErs3T9}i_Guan?ruE1%R-lSq2p;Gc6f&1GQ5|N$&6NX>ILFs)*xVZrh~XJ2F79 ziVi28PNw7QUOpJQ%5@|F#`1wS^=wyjJ-ix#RuLQwuhj^B(r15M-yj1ee|J73dNho(%4*~aI|dpLFEkO*lBQ& zmQ3ZnMFGd10>{3JXbI{(;0M#TE)tq?F+^#Pm~+82u{6$$#Mq_*i#4=D%QR?ng(yBv z$E@7&dxjz;^S%4pJqYA!#X`^qNL=m8XV1Y={wipORSI2V;Z%*ujQ z7P`n}!I4=) z>Mj`HiX2O4MO^0c+nFBcxx>&KZFfnfN5{VoOx}+sp6E^udeMX|Vq#OiBTKq^?lm&a z6>mJz4VcFj1=-5n#c-EN=(mtRZvrB_;*=K)e*_t`_7LqNh`kV@{4m?_)<#1+yr+*A zNgpWEuTo3MEoE?yI(zAaN=8yr?c*u4pPNKCWUd5exGsQVmks|#!=5aES5^4l3ZDC8Dx1U~7 z82`^sff|9CD`Ty)xpas)_c`I9Ws$fXr<5}Hpt!lqlT{?j)#~MC(TDe}PIrN)Jw33!c^3fyU7{LK1X=3Oy9#=w>Iq9mx^eXyf(GJq>zo!(*6>bCYCexqR`> zSAE7$mg=L>yX^uN(oT?F+;&U#&qM$(XUrc7!Td z{szku6SvqT^|TXrcQI63d7&1$=t{GArQvJj28h`n0E)v$!Z$;2s!Y(|kY3IHy^Cp} zo)&S6n+bPNY5TJtsdPqF^2OO4T-0^3hKEvj#2INhw!i1A!hYLwYjgQ`5X2s^InVs7 z(&;s!PQd#a_=EIX+_iruqY=tAZY{F&d1iDZ?|ztnTPCu zdoOaZn^lg7jrWb%Je;BpTlGxu%Y_BwwM{Hj+k`6k+%4%e%=dFWqC%sv(@CQzLE^LO z1%k*1eP1oNC#K-MZ$H8pa+^00yb}>Mqnns8TcY}DC4DFZ$`Z(;l`%!)+e54N?oRW@br3X{%v&oW9;kuBY+D>$orVg(Uiy^+W8#bYiJT-+AR;4Kum zwbeN;RQh$t=MSQ%kFy(8v+T>E|`y~o;? znAf675OkWbu$$ee;Zls(9kHyXxK`@7D$HM<@TN$o1)pifh+ZJs2I~QLB7OiONl5zW zm-(JEffEWHXI$7L@ow$XlJ3mX**QgTjy#sg_fWp;zhA2B|M8J(YnOMk*v>`}N5-(L zDEY%B{xS@9MJ!ZWeGReG1fUJZ0_^#L+p@RvnGugQH`U!8)T-hf^!{gx&z~KzbFy(Z z*)yAaPf(D~?$J+U5D5_U_Kus<^0;l1_K%3IMcS4Ct6mV?cqn)Az#mqr%H31-Z#1D)O>Q=SV2NU~EMwQfot@ z1KD-XpW*b!=A3VO6|Je#jl_>m-w~?Q7uB)@89+A$iHNKP^xfIGgt!)&to3hPLE>tL(%&|Hzr_XgJ0nvEk6g8-N~s1U&eGWX9>pgWfbHS@KSm)T#zfo>`@)u+Fk_bcd!! zTPVxDITU^qe;Nkw8f0^JTdFY&iUJIP;${HFKfQxU4Eg6bsa?Bj_`5T<;9+}o|<}EEd-;i&$ceD}cUEw(Zul=6%@!sO6xCFAK-2FnR zQAmC|E5DPsFvqv__+UOpL=^=MDF0KqgnEYgmSBIN6)}foHc**IMn5Z8+%`aZHv!oF zI_bdaa23Bbhmb)F)4{>?87BoP4P8rpH6vk9mw?9a z0*&u=h2CJUNZ2`;+uo!bUIn3u3GDJRe7Z91s3KQ>E_3;Yc%vBA^l-+_4*5HuerxJR z$}Jz;3Zs=efK1{_zle}O+30rjEKwUfhp}?Fp&nYdpG)mRm+`A{Jg=6ZQYmybJ8Q;p zP9wYNXZP;;K70pyEo9|Y1NZAY?pOD-Oi35Yl{SH>*AiH?1a?u?k4y_(Vd*c~ZiG}= z>;q`Fu&Uhvn*MuYDY=>usm1S{>6@R+ELQbpOMX(I0`WdcFfTa!7=QkPK9t?XbY{?S zz1^xT`z*!RpiTszv)C|FKbBk8YZ0G>}Hax zEkdd-6H9OtGlJNbe7+DvS} zTmfj{x@rIh;k9wiSw~3chHNwyXpO_7q!v7Iv$A#ssE?2(1s`e z^r85Mw=)|Zk|xp<0iO98lpKY;H<@JM$Xlgf#vt8jdL$ z>!EvvQ7rrx-iOvXK;rNqvy~TW5^Pflj{_vgIzp^T&T{1pPJgi2^KX<~MIIXWX>&?M zgd*I6iVLNqqT{r!QHv}iKwSHQYhOk8>NxAb8>NisWe=y0!_K=3l9E5)>A&w_)fGrJ zp2Tj34vmx@$lWo&YUFb-nR+*y@4`LB73aR#!5vLi0devIiJe!+pE6+|tmhx@pYFw4 z8%9N@))Z$;Iz(hK&qpRTzL%DNO zrN_J$=u@Ix!OM{{ay1JtJN53AuTezBgW-e#f=OqjK5IA+sO5cNI}h<<8RU3uCGbOpdov_v3^J5n3j-DQ}- z!Pp!7-TTFQnuIm~RZjW*WBUc5EwF!a>#{p-!l+<|+rHmC5-7ymu^|H;;#m|j#aaBRX^+JzAwzq&h; z!Wn>hfG1zD_j}x!Ge>!|yyP!wVcdZ?PuoOYSG`Ok5Aqbny5+1$Qe65j_Kkm+U6U3p z{N$c*fY`!7@!o$CsODb-p0m!{b}>>0`UQ9zJ=G>u zn-ABt@#jf*g?@8gk_i(qJ(7XZ!ey_T(Yzf!G|k>4t<)`jlG`~GzU^c6x@}ftwJ4`i zB!W(l3c5F>*6X@z>)qDa;XXJ#r3E4W1%Os@gi<-fT3s6IZpwH=^dQB0wNf+XLZ_Kr zo6)kk1qbaEW|EN}&a&BAg{Xv@ClC9zyM}MxaM|X|&t4iNR~dg(7G^ph@*ihu#Ph~V zKfgvds6$`Ve?`}Ko`LnGtn0q)EaKRb<d|&Dog0eoa4g_@<3UPz(t8EGJpvIg8I*+9®q@N z14_H8ofW)l{|J8q+a)eH)I0r)>WXdzV%7J>PA~6_J)KLT90iYa^K=Wz7D!OybzqSru=f4?|KFl;Y)gP_H6V4x`~kZ6fE(xM1&;?72-TZNk+0 zr+Crr5yl%Iy@vfmt3eYFl!jIvPGFz^8Ek+2`48O1_pCX3xNWh-zBa{rIcc%+=|XVj zANYTg&s}TKb#OztQrCW(Xk?V^i{`q~%HtcveTxq(_HKeC9GzrtguMT4Nvs@KakPTA z9>*8bBZmLz`lK5=l)=b|=dT3a5ag^a1^znZyx5QKfUb1b9yacArRp%3@QWo(hrsCU z-K!-=jDmv!zb7XT>)r|-Z0Ry}lk2;dk-ECqMwr_nKN#x*X6~B5hVIN>6$1HwBz3Of z=Pk){AL5*=d90f17_qZEJLm;Q%WMdX=*N&!ki@E&cy7?>{1ssAH(tACtp*r@d^til z)x(1#6(kPD+joSF&J3sxJU@{-sWCS+pZq{Gsx=?z4wP;>?)1yHv0?X?VP{}cX4~aH zxeBPKw_rgW8rvewS1W2#^y+c>-183iMbJCqc38RN_o~__9-n|jcd&oA`m7*&Fqqpc z;Tev*0LS-ZK47Sq1unfvP1S43uA12P?PJmI8BeTYPr~R*tYUm^0;U%Hmu?bSZHEK6 zPjsW=E67Kq-&trmf;)UkmRABH2U)V)-eRT$j(%G12lLMsThSsU10iP#{)ZnvjzN$d z*K%P3`}oqyvpWP~venr>3viH8^`)Ma*=B31hw*Q+tqE>i2y7w!(o^lI^Yss^=tHW( z;cnCT(%B1gLz+TRGW9roFjI1EQTu-u`(f#RmZ8;FSN(bsC1J;+(i_R6mrW=yYx$cy z#%QKVrEx~kVMg~yo?^N28Wnk6x%L;J8i|*|ANEiNjq(Vhzuzl3ikpA*G!Z}kLAzAI z9qnySo%D|AuJj12%h;Otqjs(>LPj?rNdeU8so>P(C>XMzlho94ZD#w=cCOOU;=3&^ zsqAG!i{~lY271D|m>ztPV`)X@FO_;`wPjppYNQpM+ncvtz1lZjN>!Q^*I}T%uP78Z7tbV2$q3W_)14=kLFyJ z1GqL6T>ClgeZorL!}xP4f%OB_EsmJ`uw7dGWNV9OLlhb|UMpVhc{4@Bhh`tO!ZqzD zhusd<=K^ah!L@gQ?6dOpI-ge^e>S5W9eII57Zu16eU?GRbgKTeVk9yS{iK|O(zLR> zheb?;jwGCHS80NCn=jKxgJ>}qu4l%5NPihjzazGv#J?Jcyl;<#IW&x4mm>nrW8>}C z3U@aeD~)*F(0o^2{GnKVm$Jr#aZE ztl~TOkM^SdzJapQ((!-i8b!RkVQBKkL`2ZCBuy!qI1L{3Er526plVols~68U-^9Px zR(3{j;Z9RHX^muc0dUywJ|`yyZFf=k&-Gb#m4u73Lm5Ks%BfHj%2|gjn#i> zLC5pO$2Em9H;qoKQmMtl<@wgtPF1%2HariD5O~u>8=^*J&au~JH%Ih@&2Uging3U_ z0bzfKucW$ZHSx}!#buB?+-J)%RQbbXM-!BJTS&#dU_@lxU6>te2O+9 z@F{F{Nb!;{Cd`Gx+$G?11aB~S#wIH%D=*=7f7H@D@%B1)&bF$@t3JDq4l*%(wJTlh zo`?uMq{YilKUewPNaC)GuOr<8j9&ofqRU__BRUX^x8Cj3a;a$rXzgXqW>LR#CUn%~m)t zYC&ol(gAkbc^fd`xWU&bk5vT6KbFmsR=O78Bn%t7 znbw&=c+|T&#r+bls5rU6D#HMvqA<|;)BV%jOMonkm^p$7Vcel-Wwn$=uAJv&(8W>% z9))Fxpl*(%E#wFm_m!U~2HqgZs^2vaGeY(UfYKrSHV}w^D0N6!se5Ewy)Yy-!(2

aKj2hWG7>znxs|SE zN4rHtiSPqLskWp(?(_YYwgq+1@8v+~8As|(bC>$D(atG3ZE8-ZM3SVcg|vHQz$I=!(A`k`5= zOqR>&%G)$)k*QLz7MTB9wleWpv&N9Sta64wy}3Ytd?x!Ja8z>(z~(3UNFu^eFmn#6 zw!!gUxOuZi$PQIs*ixfZR3iLyADJ z5&s%tPfk>V!x|A-;oq%1!yk9H$UBP0ToA*EDtz(^!_AnF1bBQ7joj|? z5b)gSI8c8O$PYFE!vXJ<4gebg*9G9P2wcB{#kv0FItc5T@PDNo)}Rh4Us}L{e}xzW zhwt`)j`M)mP=G6H0;^&q=I0{jU%bIRkF#uLF;{vVC&H|_uc literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..244ca2506dbe0fd8f6a05520ac7d1a629ea81438 GIT binary patch literal 17683 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 literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-port-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..bfabe6871a17a5e95b78fb30d49b7d2b4d2fe4c0 GIT binary patch literal 13346 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

VwO4Hu8X}%XHUAz_J@50rzbkIsat>4oWtQt< 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 literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-port-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..6929071268eb03ee0f088142b6523566b78550e2 GIT binary patch literal 17489 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 KR&><$`~L^lv%S~= literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/mobile-wrapper/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/mobile-wrapper/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/mobile-wrapper/android/app/src/main/res/drawable/ic_launcher_background.xml b/mobile-wrapper/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..d5fccc5 --- /dev/null +++ b/mobile-wrapper/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile-wrapper/android/app/src/main/res/drawable/splash.png b/mobile-wrapper/android/app/src/main/res/drawable/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a64923ea1a0565d25fa139c176d6bf42184e48 GIT binary patch literal 4040 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 XyOn+%7f`N3b2T^T3uj5+eShz7v)7qy literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/layout/activity_main.xml b/mobile-wrapper/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..b5ad138 --- /dev/null +++ b/mobile-wrapper/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c023e50595074292c7361183a64de08cf9686c9c GIT binary patch literal 2786 zcmV<83LW){P)Kjp!+9qv7laMNo)ID%Hq+ zYU77~Jh(~?E(9~x?j5gNx3;ZqYunnkw%y+w=e&d3h6k*56a{Df1N_6UFYE&J`O${! z|A8@fh(7;`TBqE6pLKe^-zN?aVC3)yXfXytXC0ki>o$8o+H!)djKbe6PiIZXS@+APUtIW6+^UD=Xi z%aOlBdinKwoli_mJTB{;1yIK)H*WnAZj}Ti6sL!1=pP)A0MX`FHh0MiCn=Bndun;I zREGe)_h;yu2hjQ(H*Wl;E*{WV#}z#!oV&f`@VX%;m>MiDlqUuA$fJ>4Q**=k)%pXH zE7JL?sj0s~*F1nWEG#Vi6>hW?`m|1w2$Eza;W0-Xb1i|>7En!r+bj>u@r68HD`;}T z@R<-s`Q+r}-=S+>K(9s@^x-Z#SHbZ(CaHjBg_MjLSs}%6n&cx$0#0a^F`$3s1~flE z-yH!!_zxA=LlVIlCantIVN6J&q$;3hfh6R8r97T3f^!!T1?hhl0tkD=8Xcq<5Sp%c zi+@Rza<)9j1W5-cb}Pgr$&!l)6hlh7o16rOpB*nVB%S4?g=B*hTaJ`Wwhw4_cCH0b z2q}mmsWap>kZgHM);uWWDL9QIfC;8)-0zNn$DDQ8A6UQLOb$PW~Yd;2I zYy?YElpKfI z02SJcp^HcQ?+1Z4qqgNqr%91L1mu~w7~l2gGNhjnunX5MaR+cO3pn37CIHEh;BJld zLz7|wiJr*~e;wJ~lD!+w>mUKpYwrhqHv#(LTdk0OOfEP2G1J5p#@`^f+({rFJ0_Y8 z3GRlNlp$j;4iE;ba&P72fE0J-E-BhG#k7$2C?JV|&iIr4j6eRmXfh;N6k-zG&z6i9 z4hRp5Vpme(bdc0}4j}#Oea3%Owm^zv4&Xd>it+Cei0>Y6h6FgrA~GJ3JtVl>d5TG=$gOtK-%pTheg8x=B)~a&xfxCdNMXm* zRyRL$eYRT+AJp}r5E6Pf*H`v712c>t`B1o(QkIS%{y-1u8QMQh`<>)kPxLoKg1aFm zd4VP4)+UNU`-$S*oO-CCgd|xK;FJl@b0duZyh4^@fK>Mgq5;yA)P8WP84}#>^i`(4 zrVWx`)KEh;ST#Yy!*~&#{TCSj8NvB!ML;@ynH2&F76mw7)*5#NNy?M%Euc6ioxK+D z7cLSMvYvgz%aHa_>$@V{N?EF)bhEP_-(J&3w_Pg4&{Q|ziOF#g-O^^lHU(Fg7r(z6yw#(}M2 z;EGw=dLi{7B!h~2P}&*KiBAa9J9`-glg$>Oo>&JXZ}Fem`k| zgcP9H010krN&!#>NR~=cmOMl~s8&=x$Psx?o*HrxTawD%&e7k)W=OU?X)hhG%-G#( z0jjMMcxF}r`sI0Z;BFYk zZn^<3%D1R-uNolPtz>sgm4^_V3iUWIQXG1Y0R8HM8B(e|NrHs(ZGSXy_0mss7Y7K7 zkCMGrT1a^4;W>&wloLHqG3fb=86X*Yx1OmWgoN^Ke`0Kwr5@CFkd8{M+Io-)65MKJ zo)X3}#(z!Lv;UoDNc%79V^R#sF}T}n1PL{6FK0an6A9H?t<6Nyx733)kPwtBWH~R_ z$hF9NUKnkL1b0JB3X@4gp46vFCOtn$wH83mg-%6Ky*xLak;UhG0ldP!kPDBlizWL`0An!I#ZyI>aQNw9=bQu3Ae zmLb92&St3LR1@_ily6Hj0O z2EWhyx)R(Kx05q5*)9^-HOa}Of9w? zMLvRGKw5ojkI2FNHkr5oPu*^1Azr zmwG*{)D8cJF3@RgY;1yb{4#XS{Er5DdwT)sp&dJRe0_3qa^mLAn`Ewzm=_C!Yiq;# zaKX5*J`YP1^J?nzD1kZ#d68x~+Vge8{SlCn!{Hfj-MYm`M@J{OZ{Pk6=y>qp!42#3 zY}>YN`!wyoMD1&b4s{(kaiYIxaPUmuz`(%ap`oE8avK~R4EN=7`ADf$zWaB44y{xw z9T`jzFZz`Iu;%;l|%XD_mkJacarka{xI$Pj*|{uU0nyD6Lj0Ub?ax^`R5BA zTefWZEbYHY?JLwCq4w4Lygd@>@`cTtH-8Q~w*5aY2+~HfriW<1i7xv2`?*1fNSBT4 oR$%LRK-${2wykYz+kLV9A8Gfmmx*}s=l}o!07*qoM6N<$g89cjyZ`_I literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..2127973b2d318df7085734d236d0ec649a2b0292 GIT binary patch literal 3450 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 literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d1e077104cd61e6a4c3707e87363b523077245a GIT binary patch literal 3981 zcmV;84|4E{P)?m z2Iqx7pAYgakSjnIq={jqe_xK2+h*EzWwd!kfWi5380F4z@bASS>p|K~(;2oMw*a3< zK?+G?T5chzM-ta%1;eyc>o{H=hukKL25q{GrPnd+0-KniwCBCEX}iOg#o7W)E)HXr zd(Ve|7lL$v@QH~D&KTpmX>rrCz0YZ)8#Xshc|FT^xTaguda8BDHIv&=Useyu_v$*1 zE3FHi#1s6Ccz|>ii^Xel9SMTXLZR>#xWSPCc*}KN2mWk^(?%1*8lH5juXvA@x zr?BV4&1|^Y#I)XED2#-ddR}jaHn0a$dUVOPmILihzZU<-5kl$t(?^2qT^lzN!aYAE zh>2~QChzL%dM+0NgnQN0)N}zfegGLpx|6}Bl2BR?!Pm-9642O<6%FqtvjQaqK`M+H9vOMH38sJ-;5jwj zl##{26!QLoq4Aere)&g;T^YKzue*<_n(J+&NC zv0cwQO6e?!4H7UsJY0P7#TS2!*yTaM+{VVnMM!|SiDA+JOR@=e0KTheJ7f}8J1Q=! z417T*5?s{cN37_asDgli@#mj^{wIiC?gZd4^B+oqgb-l}{&>t#HZqccZAJ}lRub@e zjF^#xB!owT@QQ>Ds5k*rJ%a|AVfYW21b+BMOjDhNv>>Zo67V?;!;+I&CjR0yA<$6 zK#3y+JtGk(%m@K861*4Jr(RqqfJ?Cn<@otY5i>>YL{+LerFJGsm@xvP-a-=iStDkl zfARmz4YHC*pxU&!5h6%{(O4M*8X6iGLC-D9BH^&tkOY1f60(AyM1m~BrKl$)0lXtj z2~}nUz>SMKAri)yK@UOG<@#1vNZ{d%=apU%Bw%}i|DKCsb{vP{vkndpRYnDQAV?x% zG>Yi$P`x7x2@VkXcBjn`4LOs+Tjr=4r2h7FaDgsnvI z(+sn!|NlCI|2E^dzQK4M$bCRU`{``p?;rHRzp;VwUxF;z#Q47tX9K_LZfF=>J0;Lj z3D%-7ycxj1Ya8RYLGQoq%_$OA012O#NkZEIv543R;sGXZOO(#L9qoS@3{)`ZS9?6)O zC$|WREgA{<4&7%=zUBkQ>!J78za3A4P)8kS7|AfB+W8%{vE(&hrjfA8CjklSI$hob zQB?_;n!|O;x?VwfjRFG(cazLoL4r*PV_ zyji-c5fC?lPA4J0UR;p1yB|Cs0tu@VNWi~88HSz@*Dc-bOA-mo0Q}besWz-KNT><{ z03b_Ry+94;qa;lB{FoqX7l5+reYrYXv)wn$Zivu>0RHdcx?eYfY)&Sj9z3F!KK0yD z)d>h(O_ugRY9!cx&)2QgIb0-R<@@xJ-~{0R0gU*~TR<99+ubM0BPMAA9o5kaqB_FBZTY*5{|3~`EnAXFK=4~m<+lP43BVCp zkx00xo6=;QY7q8TH{%cQ2HiVIi*C^{-?v?^j_N?A{I_g zRhG>#UzUG1l#q^A^?Kd}@Ygg0pgS0Uuo=O1N%@=BLE1=2BjIkS+d9CM^Gaz`szN=_ z*nEHr32*f5(#Kd zCSmU&BdeqPi0bH`ZGO*p+ArAt^#*LDIbXF1&PA}l!odw1p-xrXOG7``*?;oZCmKdx>NLce; zJ|s-8?E5UJpfLDCj*T+@gbE1+wXy3IorLxbB-jZ?SPx>PicQL6Af`%ymNJ1}LV`pc zsf>gyxg#m~PO=+nRoV^JG}B8(Pzj(+pd$$+brg`mh&BP!)JVeZk}N8wvX#KsWkXy*0>vhvI-=MFH^`z= zMgp!oYX7h6y^|{VGZKiolbhG_+mD6s@Lr!!0L3sHI4e$W~a}TJ2Jpl!XRkpTR)djZJ3*+|$&4AxruT`v&3>m9%6=eanyVsStv zBH<1I|1TebYuO3}v?i1AD17%=D=lq7oln@?@9@TBPOi(-y_J1^6^MiZ)S{)D3zDpM zI1J!F^D*Op+UFDSP(VPGgeSl#A3PJNDT0eii4*+vg5?Qm&l-UQvr@Sr%!XQu+0e;g zErEo?;O#v73F8m9`2>`Z5E=>Vz$hOY@!OjW*7j!$*6c`-Mct{BMnbS^!rP!RYvu!z zNI;$c41oVgn=eSh!x0it)(h}6M9fijWG8G_%|e1$yyZBvaYigef(Kr~2met3_mTY} z684pjg!N#QKOKqpYTO`!x4w;L6U6kUElDqE#8Y0x&j08H{p_6+4o)#Sde-58J?Mik zq=bY(9j*V!2cMG4CQok;xt_kKZ5*VL;GN9!S(ua;Lw9Gt%^wGFA3G3F0ut~Pe1C9+ z-Y#W&a}~%NU8p8hPI+;pM!Yblm#CvzOMt%v-Cq~<0qEpECy?;e$7hr4}XItd8=p^@_QNO9Afxb$)JiSh%hIK%9LADNo0_;EGp zhJuAxCcsEJdjUs+P)ARLQEoq*J(G$yVO>B1=8~Ga%U?JgM?xIPW2B~#s=U73?}2!GM-fMLwYkcVpd+cth{kB zy%e>zifhG&O$<3gqw8mUMvZwoeI9pMXmCr{1gc);HT{!OWQ3e%WBFt4yuey%8H0M z5@uvl9(T%9R*k869n|>*^vZC#pi2z~DUJc$8x1aHjyX!gjGPsLdRKPdz6$tM5)k~N zW~xWzDI^G0W)RPgn>r2NnVHj4gl=_N@{b;Zn zT^=Q&oFiXkB*dLdl;t?$w8gio=N(n$=;E}qqrI(2c#3W0MA@t&yd&E#Z^c>~39`kv zDo5=gHg<4$cdi6%-MaPr)YH=u98A+{x|v&a>y{jK&vI)Q?bj$gtE^4>Q9Hr$^$>`? z@WKl}&5eLpUww6lJavQOhY}4oA(@Qxhp92pe$XWbeq6&p!Ku zJP5#_-u#50{k$^h}~UKPw4IL6*uXFL7QJU^9W(jE#-) zrlzL9BW3}1bMheI!X-b;x7WtU%Phg%`g)BMn^|I*0JDm$*3RG3a*vG1xqfQ;FN;L|6*^H z6>KwD2_h|G`fx(>2W nm0GElTB(&OnKI&V600000NkvXXu0mjff+~0a literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f15880bee46332dfc6622583215194f948b0f GIT binary patch literal 5036 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 literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6cdf97c1196d48e9833487ff6de7c4cfc4e1232d GIT binary patch literal 6644 zcmZ{pXFL_||NoDW?HrtJha-DLIVbC69wc;}LWs%=Q3!R8%&a5HUWX12AsLxPvg`0M z4%vI3LpIs#@B6?1yK#+s*Lz*p^YOagQKokd*qHg50RRA-;ceu-i#6_lgYojkOx2(J z4gm1|FhpvbVaC=zTE$&4#|MuVHK$myjH# zaR><-@RxJ^M@VC6^+G<*Okqst5fUDIQ9WVJ5cXClVR6gh zFmq4#{2DHp(xxs?nQ3QtH_YQje$8KoOpb$NxwsXr7j(5D24KC~kbOKX$ob|zL&y1< zvY)r2?2A%s8p86w&=5Jg)zhrGPn0~G~ z#k1it{z_(l*yq0NgX*Uf!dU^I^6@0F-pV%RX+%(uH4~wcVOg@l&Wf8)=nF?{6(fT6 zT1ez={Z8gSw!~xWMl&~ln&9tcO2&!r-%Izrj;n1X^5xl>A8r7r1sWS&|C?-No)*dq z@%SeY;bmZ?h13jo#qTT^gaV&8=^8ZKwKk4kb$~w{W)nE?xw;8@j=|MPc*-*yXR-lN zOV;2?#Y{50B9kp}W^D1Dea72;(#9?8QdP3{g5Syd70l%+8PEI23PSm@`|YV zRg5K62lJnK%|@)k&&wgR&7lm+EjB%vst9|Toj`t=d@Qs*-%_P-1FMjHZ-U(ae=%sPO`E95q@ za+?(wg5XR#Af8 z84W_KwbOh=6e!vuR<0GcPv#=bh!I;6_^TIZr|N&{dCe2dFdM4)SkfStjlZnn=HpZWm8bo8B*7vIZvQ3A zM!m(+hdm(}{Fdg4w{EfMJ8%ywCCS`40?{u?rkfU5ib)^`Z29hq8li?1IybXpttJ$>fDi6PPTtg!z zx7%}>e9%%Tomft}4Wxsk`1zjNDu3j`4JUOLuO$b>%jEOkf$n?A24h$%CtQr!{OydG zMF|M>nA<~iVpdU)Nq}qMe@Z;w5Mi+J7fx=O1g;smIscE_|05i-m+Kt~mjRevRML>-?0U z=+0@B9d*Zv2_tqBSjhiE^-ufE%x8*v-};%jp34f8zIr`0&>FN0Oken=;InO_dhQ3A zaIak!n`ktU)E)Gn&AAI}fSuABJiN+0Z!&$XYi@hfLH_H;s%3|0>}i%BCCDYddffPB zO@c6@@Od5Tp=0wgckS^v?!#S+Xq&>tAJiDNK1mcizpO>^vlzuk4qdxphlp!Pb7`EV zu78*_U(?PG&^A~QSA*BVYawecA$F!K+ie?#QhQ!RzyEx=hIJc7#JyeqPraOo6eQz>1X`9 z7C%08Tf|z>z9+$7)PQTZEkh~u-*aah%=#M-K@kfa{hafR(`IgRW&`RQ%*5%lGMR)x12Yg-{KK5I05|>VCy^Cx2;Tl>g4c{#%$KTJRzx^ zLLXNUVFj0~2y6t3G^#py6@R;lS7Lx1d^?`rZ)3O!RST$5{YeccG+_W47<^H*+t$2I z4$aIn11#DbK;UC5_C={MxQC zbFR_5$b1P#E(o84aYP)z#yE@0Q#PYmTfcUi#|Ua-E3gv9`7U*-;?+(ApQVteJaQGU zA`PchToSIEtZJ)$fNL#~x#+t`-v&!;>;40^hYEkc7g;FFC+btBH_Mbl+NMMqzfOHu zvi#IL`mZcJ=0~B1Jn0D3RQa?(4>IW~(n}05ikg=df{vfB*uCMcZj1E#zR*$$ZnCNyO(xy^0m`xB40j0#li-YyYRk+i ztAdMTFi_%VHhCoFxaCjq(g;q^V#BAJ{fZ`1;0P+Jv>;+FnkHF93(kq^wVT>AkWD;V z5%Z=r-G4RfIvx}556tb$Wcy&X@IYOzqIf)6O-lo3dXx1#I^{j8N~KHEzTI*djs|2$ zN+VQZXYNbD1tFVUzfEJm;Fg=Ss+++Stp68TFwqGL%6a@xlM|G~*9Mx-a`#WWLIjzF zb?DhlwO76=78dpAJKeMa0}gcuuZp)`e~8i=IcXbm!4<0N218B-{Y4d>;o4bJa-;3_ z?>738Mlil6J2<8eZ};hh{7LeuGy@~(#Us;cqvvQ z2|=opVCqXC(+REsM`Z=D-`IXNb6rLoxny%RpK0|ahpme9>6&p}*BJnP+>NG2Esc$G zHao>q-~1V;S!ud|H=+RAKh1m^GSj+3NcHG!QA#j1-{Vyeb!i>|woRAfH%hb7+t5dz4LMy&d(5?9FD9En1Slug&XxUh& z+c!&-|3yuRugxWel+aO=XRnsNRT4D_B6ce~bvWAT=Da6{Qc~z7*D9X^pYBKAx4cs^l z>8(+Fq+ujGS&?uAeO?aoHCTx92N_BV>~|!SB(#x2PakC!tR2z*(oVX92=w0D)_7%7 z1rtMwF>@GU-Q|$iDRRn#^+S6PGh4~Ks+mnyj z+dXAv6A~pVxt~N$I$#sR5-T)8frn+0zwc>k$5oe1P|D=C%f?3&V**X8%x?V8!$tNj zZ7w?&`&Ea4zCDJPJ1W+(3BO<2JQ`JUk9U4m*8tj$#6v~laVRs6VyrpH>m$LqmEsGwxw6jW&u~@5U zzyBDZ^%$pH96mV_x!bqQwhe8eGI+S#*E?yp)o_Nv3U%KGI4{ugMjUgK@3Ou;V>4O{d zIJ}9O{AiO;ZQt7QSE*O9J#;%=iFNCnzfk3ByeYHjeMmG*uCsyJ%Y)((7DxO`sKzU5 zlfxhi-p}wBSoQ{QP$U{piNc8JL>?LmBg{mhW7pAKc1aQJ-=x2;auiGYg({&Ot>@ug z5n zPIMP!lS8%VDPKsEUGo^q#(%ei9>#i8cxaJ~K(#Je=-iQbG5{$nD&qGl^$XVVj&{pX z4~WRdx>%kDX8l5)4G7_XMZDo6s<(AdE)o0K^3OOq#Gu>z#dpDFE?Y35um7Wg8DnCs6&LhQFVgLPa6wKEE$Pt-Tzx`g zh?h@QXjh!Gq#o2qzg8z*&#Rt9AA4DtHfSy;mld>I$F6i_?E32R7iFI(iq7PaX}D+e zHx@9XeLRu?hf z!2vFWCH*@ojt&D)yA^Q~@>=N410y5{Q89~A_vB~m=#?UIxDV!4kP`1|A0g;8%Qthy%+JBI_-S!LD>?bAe!a3B2;Q=g-Tj z*ZN9bX$3DOuRq2uF~zj-xwU?k?ZMiGcE2Vz`;0KsKr~47v7!vIuPv-3;6sL+NnY3% zx49BSK{2^Y@zd0t=f0T6k&vYWL`eTlu;%#SK7LE+Q3J`>e(`aYF;Rq@4WEQ77YVPD(?&CB1$b z$=)iPW&`aDSuTYHI1*-7_G!Z6gE?2YuX22ZRGzf15iR&KIShd|u84m|kmJ@*6d@Y6 z;PEC8YxCawX0~SDM9Q;(Ch0-che%fuZ8Y? z)e{zZOA?qXcqQ?3!)3Mp*z$hmCnidiBUkbZRR(AP!{uieQu)9wv)=%M&AaLyy#8~4 zY8g|hzESUeZDi~IBdc)nA2rF!$TRj$V#n_)cJ876VBEPi3)9$-*BcMMO$Q!#s}#JR z@FKmJR(6GXQ( z@cBNSP5gONEnVjgb%o&kDgT{rrCF-e@S`_tubZPam$e<+TUzn%NuR}xnFlN1;&yNE z6vN{gVsl*i4^MW;WSfB9!D&)${cME5)7c5iCD3is^KX-TLI>DM*|Pd=a%gDizmglo zsZtqQgj|Qd9i~XeJ3;X|?zj5>PT0YnzZcL}JntVLH?k;u^iz=9o6-3JL8IgBwg(@! z@s>Y1ffP0e3G?y>dp1xC^}#-WdixEUZ3UjFxgWjeZiWP6*dBFy+qQ08Hx`)k7x)I* zvWcV?&G(Jq^Nl7SqhW}+k^gor6D5~|rDsRynHdA>ug`%Q_$sey1Qy=*) z(`Wvu^`<_G^j_|Ey#_GZau+YESAAgP^~+>)hk>klezLv3zOF=y6_!lC6RvVylvNMj zB)E+9$?j;LhThoZ${sa?-(T{Zs6Z;OMX|~~m3;u8yT!b2r-J9ImN-}N45jz=hcww~ zc+Jrr{_96IT30_C>{oG~n&{r5yc|msB$=TWp|uaX)0LCf=62Sm-MJubeXfmVOIA#`GRZEf6RRo&C{?^L!`%;cLrzSGlFn_(f9 zUXRtomzp*T`;)+yfH(Vdrwnu&$53x-=}+b!y$275A-!rVPd+G8y}u|sKfrpA#24&s zxj}vM&jlCw$$URP<>tgDpM)HBf8 znJzG22QR0>qavxItYV<@U@EhFo8tL5NrFui8N~cjl~HX-xrO00dbH9x=)9uy+K*3h z6s8`Uu3!6}ck63wCo;a|w{nFs^2{}?1*rIRm2SGP4idWL#UA94Ph~u=dEPzi%ELe@*qf@gvSATw~wkjraBbjEv=m!)LYHnjt2qLNp9xFikdM1hG07L*9Dt$TU1X`wlehm5ev+D^ literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..2960cbb6104b915c84760f889deed9bff2b3e17a GIT binary patch literal 9793 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 y3vD~Wi9;mL_v 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 literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..a40d73e9c68ea638c28c7b13e4bcd1e179a3a102 GIT binary patch literal 15916 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 + + #FFFFFF + \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/main/res/values/strings.xml b/mobile-wrapper/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..4cb3778 --- /dev/null +++ b/mobile-wrapper/android/app/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ + + + Helium Mobile + Helium Mobile + dev.srizan.helium.mobile + dev.srizan.helium.mobile + diff --git a/mobile-wrapper/android/app/src/main/res/values/styles.xml b/mobile-wrapper/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..be874e5 --- /dev/null +++ b/mobile-wrapper/android/app/src/main/res/values/styles.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/main/res/xml/file_paths.xml b/mobile-wrapper/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..bd0c4d8 --- /dev/null +++ b/mobile-wrapper/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/mobile-wrapper/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java new file mode 100644 index 0000000..0297327 --- /dev/null +++ b/mobile-wrapper/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java @@ -0,0 +1,18 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} diff --git a/mobile-wrapper/android/build.gradle b/mobile-wrapper/android/build.gradle new file mode 100644 index 0000000..f1b3b0e --- /dev/null +++ b/mobile-wrapper/android/build.gradle @@ -0,0 +1,29 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.7.2' + classpath 'com.google.gms:google-services:4.4.2' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +apply from: "variables.gradle" + +allprojects { + repositories { + google() + mavenCentral() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/mobile-wrapper/android/capacitor.settings.gradle b/mobile-wrapper/android/capacitor.settings.gradle new file mode 100644 index 0000000..9e56504 --- /dev/null +++ b/mobile-wrapper/android/capacitor.settings.gradle @@ -0,0 +1,9 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN +include ':capacitor-android' +project(':capacitor-android').projectDir = new File('../../node_modules/.pnpm/@capacitor+android@7.5.0_@capacitor+core@7.5.0/node_modules/@capacitor/android/capacitor') + +include ':capacitor-app' +project(':capacitor-app').projectDir = new File('../../node_modules/.pnpm/@capacitor+app@7.1.2_@capacitor+core@7.5.0/node_modules/@capacitor/app/android') + +include ':capacitor-browser' +project(':capacitor-browser').projectDir = new File('../../node_modules/.pnpm/@capacitor+browser@7.0.4_@capacitor+core@7.5.0/node_modules/@capacitor/browser/android') diff --git a/mobile-wrapper/android/gradle.properties b/mobile-wrapper/android/gradle.properties new file mode 100644 index 0000000..2e87c52 --- /dev/null +++ b/mobile-wrapper/android/gradle.properties @@ -0,0 +1,22 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true diff --git a/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.jar b/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.properties b/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c1d5e01 --- /dev/null +++ b/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/mobile-wrapper/android/gradlew b/mobile-wrapper/android/gradlew new file mode 100755 index 0000000..f5feea6 --- /dev/null +++ b/mobile-wrapper/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/mobile-wrapper/android/gradlew.bat b/mobile-wrapper/android/gradlew.bat new file mode 100644 index 0000000..9b42019 --- /dev/null +++ b/mobile-wrapper/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/mobile-wrapper/android/settings.gradle b/mobile-wrapper/android/settings.gradle new file mode 100644 index 0000000..3b4431d --- /dev/null +++ b/mobile-wrapper/android/settings.gradle @@ -0,0 +1,5 @@ +include ':app' +include ':capacitor-cordova-android-plugins' +project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') + +apply from: 'capacitor.settings.gradle' \ No newline at end of file diff --git a/mobile-wrapper/android/variables.gradle b/mobile-wrapper/android/variables.gradle new file mode 100644 index 0000000..2c8e408 --- /dev/null +++ b/mobile-wrapper/android/variables.gradle @@ -0,0 +1,16 @@ +ext { + minSdkVersion = 23 + compileSdkVersion = 35 + targetSdkVersion = 35 + androidxActivityVersion = '1.9.2' + androidxAppCompatVersion = '1.7.0' + androidxCoordinatorLayoutVersion = '1.2.0' + androidxCoreVersion = '1.15.0' + androidxFragmentVersion = '1.8.4' + coreSplashScreenVersion = '1.0.1' + androidxWebkitVersion = '1.12.1' + junitVersion = '4.13.2' + androidxJunitVersion = '1.2.1' + androidxEspressoCoreVersion = '3.6.1' + cordovaAndroidVersion = '10.1.1' +} \ No newline at end of file diff --git a/mobile-wrapper/capacitor.config.ts b/mobile-wrapper/capacitor.config.ts new file mode 100644 index 0000000..dec4924 --- /dev/null +++ b/mobile-wrapper/capacitor.config.ts @@ -0,0 +1,12 @@ +import type { CapacitorConfig } from "@capacitor/cli"; + +const config: CapacitorConfig = { + appId: "dev.srizan.helium.mobile", + appName: "Helium Mobile", + webDir: "dist", + server: { + androidScheme: "https", + }, +}; + +export default config; diff --git a/mobile-wrapper/index.html b/mobile-wrapper/index.html new file mode 100644 index 0000000..411564c --- /dev/null +++ b/mobile-wrapper/index.html @@ -0,0 +1,12 @@ + + + + + + Helium Mobile + + +

+ + + diff --git a/mobile-wrapper/package.json b/mobile-wrapper/package.json new file mode 100644 index 0000000..a8aa9f3 --- /dev/null +++ b/mobile-wrapper/package.json @@ -0,0 +1,31 @@ +{ + "name": "helium-mobile-wrapper", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "cap:sync": "cap sync", + "cap:android:add": "cap add android", + "cap:android:open": "cap open android", + "cap:android:run": "cap run android" + }, + "dependencies": { + "@capacitor/app": "^7.1.2", + "@capacitor/android": "^7.4.3", + "@capacitor/browser": "^7.0.2", + "@capacitor/core": "^7.4.3", + "react": "^19.2.0", + "react-dom": "^19.2.0" + }, + "devDependencies": { + "@capacitor/cli": "^7.4.3", + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.2", + "@vitejs/plugin-react": "^5.1.0", + "typescript": "^5.9.3", + "vite": "^7.2.2" + } +} diff --git a/mobile-wrapper/src/App.tsx b/mobile-wrapper/src/App.tsx new file mode 100644 index 0000000..cc95396 --- /dev/null +++ b/mobile-wrapper/src/App.tsx @@ -0,0 +1,37 @@ +import { Browser } from "@capacitor/browser"; + +const HELIUM_URL = "https://helium.srizan.dev"; + +async function openHelium(): Promise { + await Browser.open({ + url: HELIUM_URL, + presentationStyle: "fullscreen", + }); +} + +function App() { + return ( +
+
+

Helium Android Wrapper

+

Open Helium with screen share support

+

+ This wrapper launches Helium in a Chrome Custom Tab. On most Android + devices this gives the best chance for WebRTC screen sharing, + including audio when Android and Chrome allow it. +

+ + + +

+ If audio is missing in screen capture, update Chrome and Android, then + allow audio capture in the system screen-share picker. +

+
+
+ ); +} + +export default App; diff --git a/mobile-wrapper/src/main.tsx b/mobile-wrapper/src/main.tsx new file mode 100644 index 0000000..be363fd --- /dev/null +++ b/mobile-wrapper/src/main.tsx @@ -0,0 +1,16 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import App from "./App"; +import "./styles.css"; + +const rootElement = document.getElementById("root"); + +if (!rootElement) { + throw new Error("Root element not found"); +} + +createRoot(rootElement).render( + + + , +); diff --git a/mobile-wrapper/src/styles.css b/mobile-wrapper/src/styles.css new file mode 100644 index 0000000..7832edb --- /dev/null +++ b/mobile-wrapper/src/styles.css @@ -0,0 +1,80 @@ +:root { + font-family: "Manrope", "Segoe UI", sans-serif; + color: #1a2027; + background: radial-gradient(circle at 20% 20%, #e5f5ff 0%, #f4f8ff 45%, #f6f6f2 100%); +} + +* { + box-sizing: border-box; +} + +html, +body, +#root { + margin: 0; + min-height: 100%; +} + +.page { + min-height: 100vh; + display: grid; + place-items: center; + padding: 24px; +} + +.card { + width: min(560px, 100%); + border-radius: 20px; + background: rgba(255, 255, 255, 0.8); + border: 1px solid #d7e3f6; + box-shadow: 0 24px 80px -48px rgba(24, 78, 148, 0.45); + padding: 24px; + display: grid; + gap: 14px; +} + +.eyebrow { + margin: 0; + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 0.06em; + color: #4e7ab3; + font-weight: 700; +} + +h1 { + margin: 0; + font-size: clamp(1.3rem, 4vw, 1.8rem); + line-height: 1.2; +} + +.lead, +.note { + margin: 0; + line-height: 1.5; +} + +.lead { + color: #2b3a4d; +} + +.note { + font-size: 0.9rem; + color: #4f5f73; +} + +.cta { + border: 0; + border-radius: 12px; + padding: 12px 16px; + width: fit-content; + font-size: 1rem; + font-weight: 700; + color: #fff; + background: linear-gradient(135deg, #2563eb, #0f67d2); + box-shadow: 0 10px 24px -12px rgba(15, 103, 210, 0.7); +} + +.cta:active { + transform: translateY(1px); +} diff --git a/mobile-wrapper/tsconfig.json b/mobile-wrapper/tsconfig.json new file mode 100644 index 0000000..e967365 --- /dev/null +++ b/mobile-wrapper/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2022", + "useDefineForClassFields": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src", "capacitor.config.ts", "vite.config.ts"] +} diff --git a/mobile-wrapper/vite.config.ts b/mobile-wrapper/vite.config.ts new file mode 100644 index 0000000..081c8d9 --- /dev/null +++ b/mobile-wrapper/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +export default defineConfig({ + plugins: [react()], +}); diff --git a/package.json b/package.json index baadab7..d3b49b1 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,13 @@ "electron:publish": "pnpm electron:compile && electron-builder --publish always", "electron:publish:win": "pnpm electron:compile && electron-builder --win --publish always", "electron:publish:mac": "pnpm electron:compile && electron-builder --mac --publish always", - "electron:publish:linux": "pnpm electron:compile && electron-builder --linux --publish always" + "electron:publish:linux": "pnpm electron:compile && electron-builder --linux --publish always", + "mobile:install": "pnpm -C mobile-wrapper install", + "mobile:dev": "pnpm -C mobile-wrapper dev", + "mobile:build": "pnpm -C mobile-wrapper build", + "mobile:android:add": "pnpm -C mobile-wrapper cap:android:add", + "mobile:android:sync": "pnpm -C mobile-wrapper cap:sync", + "mobile:android:open": "pnpm -C mobile-wrapper cap:android:open" }, "dependencies": { "@clerk/localizations": "^3.34.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6bca612..271147c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,13 +10,13 @@ importers: dependencies: '@clerk/localizations': specifier: ^3.34.0 - version: 3.34.0(react@19.2.3) + version: 3.34.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3) '@clerk/nuxt': specifier: ^1.13.10 - version: 1.13.10(magicast@0.5.0)(react@19.2.3)(vue@3.5.26(typescript@5.9.3)) + version: 1.13.10(magicast@0.5.0)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(vue@3.5.26(typescript@5.9.3)) '@clerk/themes': specifier: ^2.4.46 - version: 2.4.46(react@19.2.3) + version: 2.4.46(react-dom@19.2.4(react@19.2.3))(react@19.2.3) '@nuxtjs/i18n': specifier: ^10.2.1 version: 10.2.1(@vue/compiler-dom@3.5.26)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(magicast@0.5.0)(rollup@4.52.5)(vue@3.5.26(typescript@5.9.3)) @@ -55,7 +55,7 @@ importers: version: 0.55.1 nuxt: specifier: ^4.2.1 - version: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) + version: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) nuxt-monaco-editor: specifier: ^1.4.0 version: 1.4.0(magicast@0.5.0)(monaco-editor@0.55.1)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) @@ -91,7 +91,7 @@ importers: version: 4.6.3(vue@3.5.26(typescript@5.9.3)) vue-sonner: specifier: ^2.0.9 - version: 2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)) + version: 2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2)) zod: specifier: ^4.3.5 version: 4.3.5 @@ -143,6 +143,46 @@ importers: specifier: ^6.1.0 version: 6.1.0 + mobile-wrapper: + dependencies: + '@capacitor/android': + specifier: ^7.4.3 + version: 7.5.0(@capacitor/core@7.5.0) + '@capacitor/app': + specifier: ^7.1.2 + version: 7.1.2(@capacitor/core@7.5.0) + '@capacitor/browser': + specifier: ^7.0.2 + version: 7.0.4(@capacitor/core@7.5.0) + '@capacitor/core': + specifier: ^7.4.3 + version: 7.5.0 + react: + specifier: ^19.2.0 + version: 19.2.3 + react-dom: + specifier: ^19.2.0 + version: 19.2.4(react@19.2.3) + devDependencies: + '@capacitor/cli': + specifier: ^7.4.3 + version: 7.5.0 + '@types/react': + specifier: ^19.2.2 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.2.2 + version: 19.2.3(@types/react@19.2.14) + '@vitejs/plugin-react': + specifier: ^5.1.0 + version: 5.1.4(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) + typescript: + specifier: ^5.9.3 + version: 5.9.3 + vite: + specifier: ^7.2.2 + version: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + packages: 7zip-bin@5.2.0: @@ -152,18 +192,34 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.28.5': resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.28.5': resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} engines: {node: '>=6.9.0'} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -172,6 +228,10 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.28.5': resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} engines: {node: '>=6.9.0'} @@ -190,12 +250,22 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.28.3': resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.27.1': resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} @@ -230,11 +300,20 @@ packages: resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.28.5': resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-syntax-jsx@7.27.1': resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} @@ -247,6 +326,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.28.5': resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==} engines: {node: '>=6.9.0'} @@ -257,14 +348,26 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.5': resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.5': resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + '@bomb.sh/tab@0.0.11': resolution: {integrity: sha512-RSqyreeicYBALcMaNxIUJTBknftXsyW45VRq5gKDNwKroh0Re5SDoWwXZaphb+OTEzVdpm/BA8Uq6y0P+AtVYw==} hasBin: true @@ -280,6 +383,29 @@ packages: commander: optional: true + '@capacitor/android@7.5.0': + resolution: {integrity: sha512-VjESuJYzQQH4vxvrOQV0yXuDv3Gx1bfb6YpAkoGfUHe0kiw0LY5nh5Kn7I5bI9hlht9SJ8YmSsCgFeMNyzKoWQ==} + peerDependencies: + '@capacitor/core': ^7.5.0 + + '@capacitor/app@7.1.2': + resolution: {integrity: sha512-d4I/oF/PRu4megL7/IGKYfe5j7yzSON1FRFgq6kH+m5kH6g7V+wyjHRLauCzGNjdRx4S+nWOumINds0qcRBtKg==} + peerDependencies: + '@capacitor/core': '>=7.0.0' + + '@capacitor/browser@7.0.4': + resolution: {integrity: sha512-XjooNDHEalQoMAb5/Ip7pGcPCIPHEaBv/s/B6K83qVZE66MXC/6enhw18TNaMNtL7U8bGOe6tEG1FFbQVf3PHw==} + peerDependencies: + '@capacitor/core': '>=7.0.0' + + '@capacitor/cli@7.5.0': + resolution: {integrity: sha512-mlohsvLZjWrO5eAVTn1+dABNQwQawcphVp6NQVJZ3I4x2BAoNmJj53QflX7PYGUipL9gF9EM9Yiku3m1McxFZg==} + engines: {node: '>=20.0.0'} + hasBin: true + + '@capacitor/core@7.5.0': + resolution: {integrity: sha512-4Y4trISe2Bp3lwsoGFoQIvgX4hiZO8S1Slmbz6oFaMxAuEc4noipQGCQx974PF4glwVVe/8+H3P9iEmCXtrUgA==} + '@clack/core@1.0.0-alpha.7': resolution: {integrity: sha512-3vdh6Ar09D14rVxJZIm3VQJkU+ZOKKT5I5cC0cOVazy70CNyYYjiwRj9unwalhESndgxx6bGc/m6Hhs4EKF5XQ==} @@ -1024,6 +1150,38 @@ packages: vue-i18n: optional: true + '@ionic/cli-framework-output@2.2.8': + resolution: {integrity: sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==} + engines: {node: '>=16.0.0'} + + '@ionic/utils-array@2.1.6': + resolution: {integrity: sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==} + engines: {node: '>=16.0.0'} + + '@ionic/utils-fs@3.1.7': + resolution: {integrity: sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==} + engines: {node: '>=16.0.0'} + + '@ionic/utils-object@2.1.6': + resolution: {integrity: sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==} + engines: {node: '>=16.0.0'} + + '@ionic/utils-process@2.1.12': + resolution: {integrity: sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==} + engines: {node: '>=16.0.0'} + + '@ionic/utils-stream@3.1.7': + resolution: {integrity: sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w==} + engines: {node: '>=16.0.0'} + + '@ionic/utils-subprocess@3.0.1': + resolution: {integrity: sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A==} + engines: {node: '>=16.0.0'} + + '@ionic/utils-terminal@2.3.5': + resolution: {integrity: sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==} + engines: {node: '>=16.0.0'} + '@ioredis/commands@1.4.0': resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} @@ -1039,6 +1197,10 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/cliui@9.0.0': + resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} + engines: {node: '>=18'} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -1854,6 +2016,9 @@ packages: '@rolldown/pluginutils@1.0.0-beta.59': resolution: {integrity: sha512-aoh6LAJRyhtazs98ydgpNOYstxUlsOV1KJXcpf/0c0vFcUA8uyd/hwKRhqE/AAPNqAho9RliGsvitCoOzREoVA==} + '@rolldown/pluginutils@1.0.0-rc.3': + resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} engines: {node: '>=14.0.0'} @@ -2222,6 +2387,18 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} @@ -2231,6 +2408,9 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/fs-extra@8.1.5': + resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==} + '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} @@ -2268,12 +2448,23 @@ packages: '@types/plist@3.0.5': resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 + + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + '@types/slice-ansi@4.0.0': + resolution: {integrity: sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==} + '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -2331,6 +2522,12 @@ packages: engines: {node: '>=18'} hasBin: true + '@vitejs/plugin-react@5.1.4': + resolution: {integrity: sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + '@vitejs/plugin-vue-jsx@5.1.3': resolution: {integrity: sha512-I6Zr8cYVr5WHMW5gNOP09DNqW9rgO8RX73Wa6Czgq/0ndpTfJM4vfDChfOT1+3KtdrNqilNBtNlFwVeB02ZzGw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2636,6 +2833,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.2: + resolution: {integrity: sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==} + engines: {node: 20 || >=22} + bare-events@2.8.1: resolution: {integrity: sha512-oxSAxTS1hRfnyit2CL5QpAOS5ixfBjj6ex3yTNvXyY/kE719jQ/IjuESJBK2w5v4wwQRAHGseVJXx9QBYOtFGQ==} peerDependencies: @@ -2655,6 +2856,10 @@ packages: resolution: {integrity: sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==} hasBin: true + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -2681,12 +2886,20 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + bplist-parser@0.3.2: + resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} + engines: {node: '>= 5.10.0'} + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@5.0.2: + resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==} + engines: {node: 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -2880,6 +3093,10 @@ packages: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -3349,6 +3566,10 @@ packages: engines: {node: '>= 12.20.55'} hasBin: true + elementtree@0.1.7: + resolution: {integrity: sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==} + engines: {node: '>= 0.4.0'} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3730,6 +3951,10 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@13.0.3: + resolution: {integrity: sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==} + engines: {node: 20 || >=22} + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -4033,6 +4258,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.2.3: + resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} + engines: {node: 20 || >=22} + jake@10.9.4: resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} engines: {node: '>=10'} @@ -4258,6 +4487,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.6: + resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4390,6 +4623,10 @@ packages: resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} engines: {node: 20 || >=22} + minimatch@10.2.0: + resolution: {integrity: sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -4484,6 +4721,11 @@ packages: nanotar@0.2.0: resolution: {integrity: sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==} + native-run@2.0.3: + resolution: {integrity: sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q==} + engines: {node: '>=16.0.0'} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4772,6 +5014,10 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} + path-type@6.0.0: resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} engines: {node: '>=18'} @@ -5128,6 +5374,15 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + peerDependencies: + react: ^19.2.4 + + react-refresh@0.18.0: + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} + engines: {node: '>=0.10.0'} + react@19.2.3: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} @@ -5229,6 +5484,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rimraf@6.1.2: + resolution: {integrity: sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==} + engines: {node: 20 || >=22} + hasBin: true + roarr@2.15.4: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} @@ -5273,9 +5533,15 @@ packages: sanitize-filename@1.6.3: resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + sax@1.1.4: + resolution: {integrity: sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==} + sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} @@ -5363,6 +5629,10 @@ packages: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -5556,6 +5826,10 @@ packages: resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} engines: {node: '>=18'} + tar@7.5.7: + resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} + engines: {node: '>=18'} + temp-file@3.4.0: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} @@ -5567,6 +5841,9 @@ packages: text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -5798,6 +6075,10 @@ packages: uploadthing: optional: true + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + untun@0.1.3: resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} hasBin: true @@ -6078,6 +6359,14 @@ packages: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} + xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + xmlbuilder@15.1.1: resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} engines: {node: '>=8.0'} @@ -6154,8 +6443,16 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.28.5': {} + '@babel/compat-data@7.29.0': {} + '@babel/core@7.28.5': dependencies: '@babel/code-frame': 7.27.1 @@ -6176,6 +6473,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.28.5': dependencies: '@babel/parser': 7.28.5 @@ -6184,6 +6501,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.3': dependencies: '@babel/types': 7.28.5 @@ -6196,6 +6521,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6225,6 +6558,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6234,6 +6574,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.27.1': dependencies: '@babel/types': 7.28.5 @@ -6267,10 +6616,19 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.5 + '@babel/helpers@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + '@babel/parser@7.28.5': dependencies: '@babel/types': 7.28.5 + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6281,6 +6639,16 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6298,6 +6666,12 @@ snapshots: '@babel/parser': 7.28.5 '@babel/types': 7.28.5 + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@babel/traverse@7.28.5': dependencies: '@babel/code-frame': 7.27.1 @@ -6310,16 +6684,71 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + '@babel/types@7.28.5': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@bomb.sh/tab@0.0.11(cac@6.7.14)(citty@0.1.6)': optionalDependencies: cac: 6.7.14 citty: 0.1.6 + '@capacitor/android@7.5.0(@capacitor/core@7.5.0)': + dependencies: + '@capacitor/core': 7.5.0 + + '@capacitor/app@7.1.2(@capacitor/core@7.5.0)': + dependencies: + '@capacitor/core': 7.5.0 + + '@capacitor/browser@7.0.4(@capacitor/core@7.5.0)': + dependencies: + '@capacitor/core': 7.5.0 + + '@capacitor/cli@7.5.0': + dependencies: + '@ionic/cli-framework-output': 2.2.8 + '@ionic/utils-subprocess': 3.0.1 + '@ionic/utils-terminal': 2.3.5 + commander: 12.1.0 + debug: 4.4.3 + env-paths: 2.2.1 + fs-extra: 11.3.3 + kleur: 4.1.5 + native-run: 2.0.3 + open: 8.4.2 + plist: 3.1.0 + prompts: 2.4.2 + rimraf: 6.1.2 + semver: 7.7.3 + tar: 7.5.7 + tslib: 2.8.1 + xml2js: 0.6.2 + transitivePeerDependencies: + - supports-color + + '@capacitor/core@7.5.0': + dependencies: + tslib: 2.8.1 + '@clack/core@1.0.0-alpha.7': dependencies: picocolors: 1.1.1 @@ -6331,10 +6760,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@clerk/backend@2.29.0(react@19.2.3)': + '@clerk/backend@2.29.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@clerk/shared': 3.41.1(react@19.2.3) - '@clerk/types': 4.101.9(react@19.2.3) + '@clerk/shared': 3.41.1(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@clerk/types': 4.101.9(react-dom@19.2.4(react@19.2.3))(react@19.2.3) cookie: 1.0.2 standardwebhooks: 1.0.0 tslib: 2.8.1 @@ -6342,19 +6771,19 @@ snapshots: - react - react-dom - '@clerk/localizations@3.34.0(react@19.2.3)': + '@clerk/localizations@3.34.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@clerk/types': 4.101.10(react@19.2.3) + '@clerk/types': 4.101.10(react-dom@19.2.4(react@19.2.3))(react@19.2.3) transitivePeerDependencies: - react - react-dom - '@clerk/nuxt@1.13.10(magicast@0.5.0)(react@19.2.3)(vue@3.5.26(typescript@5.9.3))': + '@clerk/nuxt@1.13.10(magicast@0.5.0)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(vue@3.5.26(typescript@5.9.3))': dependencies: - '@clerk/backend': 2.29.0(react@19.2.3) - '@clerk/shared': 3.41.1(react@19.2.3) - '@clerk/types': 4.101.9(react@19.2.3) - '@clerk/vue': 1.17.7(react@19.2.3)(vue@3.5.26(typescript@5.9.3)) + '@clerk/backend': 2.29.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@clerk/shared': 3.41.1(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@clerk/types': 4.101.9(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@clerk/vue': 1.17.7(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(vue@3.5.26(typescript@5.9.3)) '@nuxt/kit': 4.2.0(magicast@0.5.0) '@nuxt/schema': 4.2.0 h3: 1.15.4 @@ -6364,7 +6793,7 @@ snapshots: - react-dom - vue - '@clerk/shared@3.41.1(react@19.2.3)': + '@clerk/shared@3.41.1(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: csstype: 3.1.3 dequal: 2.0.3 @@ -6374,8 +6803,9 @@ snapshots: swr: 2.3.4(react@19.2.3) optionalDependencies: react: 19.2.3 + react-dom: 19.2.4(react@19.2.3) - '@clerk/shared@3.42.0(react@19.2.3)': + '@clerk/shared@3.42.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: csstype: 3.1.3 dequal: 2.0.3 @@ -6385,33 +6815,34 @@ snapshots: swr: 2.3.4(react@19.2.3) optionalDependencies: react: 19.2.3 + react-dom: 19.2.4(react@19.2.3) - '@clerk/themes@2.4.46(react@19.2.3)': + '@clerk/themes@2.4.46(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@clerk/shared': 3.41.1(react@19.2.3) + '@clerk/shared': 3.41.1(react-dom@19.2.4(react@19.2.3))(react@19.2.3) tslib: 2.8.1 transitivePeerDependencies: - react - react-dom - '@clerk/types@4.101.10(react@19.2.3)': + '@clerk/types@4.101.10(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@clerk/shared': 3.42.0(react@19.2.3) + '@clerk/shared': 3.42.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3) transitivePeerDependencies: - react - react-dom - '@clerk/types@4.101.9(react@19.2.3)': + '@clerk/types@4.101.9(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@clerk/shared': 3.41.1(react@19.2.3) + '@clerk/shared': 3.41.1(react-dom@19.2.4(react@19.2.3))(react@19.2.3) transitivePeerDependencies: - react - react-dom - '@clerk/vue@1.17.7(react@19.2.3)(vue@3.5.26(typescript@5.9.3))': + '@clerk/vue@1.17.7(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(vue@3.5.26(typescript@5.9.3))': dependencies: - '@clerk/shared': 3.42.0(react@19.2.3) - '@clerk/types': 4.101.10(react@19.2.3) + '@clerk/shared': 3.42.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@clerk/types': 4.101.10(react-dom@19.2.4(react@19.2.3))(react@19.2.3) vue: 3.5.26(typescript@5.9.3) transitivePeerDependencies: - react @@ -6955,6 +7386,82 @@ snapshots: vue: 3.5.26(typescript@5.9.3) vue-i18n: 11.2.8(vue@3.5.26(typescript@5.9.3)) + '@ionic/cli-framework-output@2.2.8': + dependencies: + '@ionic/utils-terminal': 2.3.5 + debug: 4.4.3 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@ionic/utils-array@2.1.6': + dependencies: + debug: 4.4.3 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@ionic/utils-fs@3.1.7': + dependencies: + '@types/fs-extra': 8.1.5 + debug: 4.4.3 + fs-extra: 9.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@ionic/utils-object@2.1.6': + dependencies: + debug: 4.4.3 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@ionic/utils-process@2.1.12': + dependencies: + '@ionic/utils-object': 2.1.6 + '@ionic/utils-terminal': 2.3.5 + debug: 4.4.3 + signal-exit: 3.0.7 + tree-kill: 1.2.2 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@ionic/utils-stream@3.1.7': + dependencies: + debug: 4.4.3 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@ionic/utils-subprocess@3.0.1': + dependencies: + '@ionic/utils-array': 2.1.6 + '@ionic/utils-fs': 3.1.7 + '@ionic/utils-process': 2.1.12 + '@ionic/utils-stream': 3.1.7 + '@ionic/utils-terminal': 2.3.5 + cross-spawn: 7.0.6 + debug: 4.4.3 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@ionic/utils-terminal@2.3.5': + dependencies: + '@types/slice-ansi': 4.0.0 + debug: 4.4.3 + signal-exit: 3.0.7 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + tslib: 2.8.1 + untildify: 4.0.0 + wrap-ansi: 7.0.0 + transitivePeerDependencies: + - supports-color + '@ioredis/commands@1.4.0': {} '@isaacs/balanced-match@4.0.1': {} @@ -6972,6 +7479,8 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/cliui@9.0.0': {} + '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 @@ -7280,7 +7789,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/nitro-server@4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2))(typescript@5.9.3)': + '@nuxt/nitro-server@4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.2.2(magicast@0.5.0) @@ -7297,8 +7806,8 @@ snapshots: impound: 1.0.0 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13) - nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) + nitropack: 2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(xml2js@0.6.2) + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) pathe: 2.0.3 pkg-types: 2.3.0 radix3: 1.1.2 @@ -7377,7 +7886,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/vite-builder@4.2.2(@types/node@24.9.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2))(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)': + '@nuxt/vite-builder@4.2.2(@types/node@24.9.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)': dependencies: '@nuxt/kit': 4.2.2(magicast@0.5.0) '@rollup/plugin-replace': 6.0.3(rollup@4.52.5) @@ -7397,7 +7906,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.0 mocked-exports: 0.1.1 - nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) pathe: 2.0.3 pkg-types: 2.3.0 postcss: 8.5.6 @@ -7890,6 +8399,8 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.59': {} + '@rolldown/pluginutils@1.0.0-rc.3': {} + '@rollup/plugin-alias@5.1.1(rollup@4.52.5)': optionalDependencies: rollup: 4.52.5 @@ -8166,6 +8677,27 @@ snapshots: tslib: 2.8.1 optional: true + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.28.5 + '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.2.0 @@ -8179,6 +8711,10 @@ snapshots: '@types/estree@1.0.8': {} + '@types/fs-extra@8.1.5': + dependencies: + '@types/node': 24.9.2 + '@types/fs-extra@9.0.13': dependencies: '@types/node': 24.9.2 @@ -8224,12 +8760,22 @@ snapshots: xmlbuilder: 15.1.1 optional: true + '@types/react-dom@19.2.3(@types/react@19.2.14)': + dependencies: + '@types/react': 19.2.14 + + '@types/react@19.2.14': + dependencies: + csstype: 3.2.3 + '@types/resolve@1.20.2': {} '@types/responselike@1.0.3': dependencies: '@types/node': 24.9.2 + '@types/slice-ansi@4.0.0': {} + '@types/trusted-types@2.0.7': optional: true @@ -8317,6 +8863,18 @@ snapshots: - rollup - supports-color + '@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.0-rc.3 + '@types/babel__core': 7.20.5 + react-refresh: 0.18.0 + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + transitivePeerDependencies: + - supports-color + '@vitejs/plugin-vue-jsx@5.1.3(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': dependencies: '@babel/core': 7.28.5 @@ -8716,8 +9274,7 @@ snapshots: '@babel/parser': 7.28.5 ast-kit: 2.1.3 - astral-regex@2.0.0: - optional: true + astral-regex@2.0.0: {} async-exit-hook@2.0.1: {} @@ -8750,6 +9307,10 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.2: + dependencies: + jackspeak: 4.2.3 + bare-events@2.8.1: {} base64-js@1.5.1: {} @@ -8758,6 +9319,8 @@ snapshots: baseline-browser-mapping@2.9.12: {} + big-integer@1.6.52: {} + binary-extensions@2.3.0: {} bindings@1.5.0: @@ -8783,6 +9346,10 @@ snapshots: boolean@3.2.0: optional: true + bplist-parser@0.3.2: + dependencies: + big-integer: 1.6.52 + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -8792,6 +9359,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.2: + dependencies: + balanced-match: 4.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -9077,6 +9648,8 @@ snapshots: commander@11.1.0: {} + commander@12.1.0: {} + commander@2.20.3: {} commander@5.1.0: {} @@ -9491,6 +10064,10 @@ snapshots: transitivePeerDependencies: - supports-color + elementtree@0.1.7: + dependencies: + sax: 1.1.4 + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -9975,6 +10552,12 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@13.0.3: + dependencies: + minimatch: 10.2.0 + minipass: 7.1.2 + path-scurry: 2.0.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -10294,6 +10877,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.2.3: + dependencies: + '@isaacs/cliui': 9.0.0 + jake@10.9.4: dependencies: async: 3.2.6 @@ -10496,6 +11083,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.6: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -10625,6 +11214,10 @@ snapshots: dependencies: '@isaacs/brace-expansion': 5.0.0 + minimatch@10.2.0: + dependencies: + brace-expansion: 5.0.2 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -10710,11 +11303,27 @@ snapshots: nanotar@0.2.0: {} + native-run@2.0.3: + dependencies: + '@ionic/utils-fs': 3.1.7 + '@ionic/utils-terminal': 2.3.5 + bplist-parser: 0.3.2 + debug: 4.4.3 + elementtree: 0.1.7 + ini: 4.1.1 + plist: 3.1.0 + split2: 4.2.0 + through2: 4.0.2 + tslib: 2.8.1 + yauzl: 2.10.0 + transitivePeerDependencies: + - supports-color + natural-compare@1.4.0: {} negotiator@0.6.4: {} - nitropack@2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13): + nitropack@2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(xml2js@0.6.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@rollup/plugin-alias': 5.1.1(rollup@4.52.5) @@ -10786,6 +11395,8 @@ snapshots: unwasm: 0.3.11 youch: 4.1.0-beta.11 youch-core: 0.3.3 + optionalDependencies: + xml2js: 0.6.2 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -10924,16 +11535,16 @@ snapshots: - magicast - vite - nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2): + nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2): dependencies: '@dxup/nuxt': 0.2.2(magicast@0.5.0) '@nuxt/cli': 3.32.0(cac@6.7.14)(magicast@0.5.0) '@nuxt/devtools': 3.1.1(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) '@nuxt/kit': 4.2.2(magicast@0.5.0) - '@nuxt/nitro-server': 4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2))(typescript@5.9.3) + '@nuxt/nitro-server': 4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2) '@nuxt/schema': 4.2.2 '@nuxt/telemetry': 2.6.6(magicast@0.5.0) - '@nuxt/vite-builder': 4.2.2(@types/node@24.9.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2))(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2) + '@nuxt/vite-builder': 4.2.2(@types/node@24.9.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2) '@unhead/vue': 2.0.19(vue@3.5.26(typescript@5.9.3)) '@vue/shared': 3.5.26 c12: 3.3.3(magicast@0.5.0) @@ -11296,6 +11907,11 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.1: + dependencies: + lru-cache: 11.2.6 + minipass: 7.1.2 + path-type@6.0.0: {} pathe@1.1.2: {} @@ -11613,6 +12229,13 @@ snapshots: strip-json-comments: 2.0.1 optional: true + react-dom@19.2.4(react@19.2.3): + dependencies: + react: 19.2.3 + scheduler: 0.27.0 + + react-refresh@0.18.0: {} + react@19.2.3: {} read-binary-file-arch@1.0.6: @@ -11721,6 +12344,11 @@ snapshots: dependencies: glob: 7.2.3 + rimraf@6.1.2: + dependencies: + glob: 13.0.3 + package-json-from-dist: 1.0.1 + roarr@2.15.4: dependencies: boolean: 3.2.0 @@ -11788,8 +12416,12 @@ snapshots: dependencies: truncate-utf8-bytes: 1.0.2 + sax@1.1.4: {} + sax@1.4.1: {} + scheduler@0.27.0: {} + scule@1.3.0: {} semver-compare@1.0.0: @@ -11891,6 +12523,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 optional: true + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + smart-buffer@4.2.0: {} smob@1.5.0: {} @@ -12095,6 +12733,14 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 + tar@7.5.7: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.1.0 + yallist: 5.0.0 + temp-file@3.4.0: dependencies: async-exit-hook: 2.0.1 @@ -12113,6 +12759,10 @@ snapshots: transitivePeerDependencies: - react-native-b4a + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + tiny-invariant@1.3.3: {} tinyexec@1.0.1: {} @@ -12326,6 +12976,8 @@ snapshots: db0: 0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)) ioredis: 5.8.2 + untildify@4.0.0: {} + untun@0.1.3: dependencies: citty: 0.1.6 @@ -12512,11 +13164,11 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.26(typescript@5.9.3) - vue-sonner@2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)): + vue-sonner@2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2)): optionalDependencies: '@nuxt/kit': 4.2.2(magicast@0.5.0) '@nuxt/schema': 4.2.2 - nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) vue@3.5.26(typescript@5.9.3): dependencies: @@ -12585,6 +13237,13 @@ snapshots: dependencies: is-wsl: 3.1.0 + xml2js@0.6.2: + dependencies: + sax: 1.4.1 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + xmlbuilder@15.1.1: {} xtend@4.0.2: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 150b698..5e5450f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,7 @@ +packages: + - . + - mobile-wrapper + onlyBuiltDependencies: - '@vencord/venmic' - electron From f6c836e705cdbc046087c248b0d531d65c0f3256 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:36:51 +0100 Subject: [PATCH 02/21] fix(mobile): use relative asset paths for Capacitor --- mobile-wrapper/vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/mobile-wrapper/vite.config.ts b/mobile-wrapper/vite.config.ts index 081c8d9..2fd0293 100644 --- a/mobile-wrapper/vite.config.ts +++ b/mobile-wrapper/vite.config.ts @@ -2,5 +2,6 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; export default defineConfig({ + base: "./", plugins: [react()], }); From 1ee47a6940ead958f7b12bcdc8cbfd0fb2fddbc0 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:39:13 +0100 Subject: [PATCH 03/21] fix(mobile): align react and react-dom versions --- mobile-wrapper/package.json | 4 ++-- pnpm-lock.yaml | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/mobile-wrapper/package.json b/mobile-wrapper/package.json index a8aa9f3..8f94efd 100644 --- a/mobile-wrapper/package.json +++ b/mobile-wrapper/package.json @@ -17,8 +17,8 @@ "@capacitor/android": "^7.4.3", "@capacitor/browser": "^7.0.2", "@capacitor/core": "^7.4.3", - "react": "^19.2.0", - "react-dom": "^19.2.0" + "react": "19.2.3", + "react-dom": "19.2.3" }, "devDependencies": { "@capacitor/cli": "^7.4.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 271147c..1915309 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -158,11 +158,11 @@ importers: specifier: ^7.4.3 version: 7.5.0 react: - specifier: ^19.2.0 + specifier: 19.2.3 version: 19.2.3 react-dom: - specifier: ^19.2.0 - version: 19.2.4(react@19.2.3) + specifier: 19.2.3 + version: 19.2.3(react@19.2.3) devDependencies: '@capacitor/cli': specifier: ^7.4.3 @@ -5374,6 +5374,11 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-dom@19.2.3: + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + peerDependencies: + react: ^19.2.3 + react-dom@19.2.4: resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} peerDependencies: @@ -12229,10 +12234,16 @@ snapshots: strip-json-comments: 2.0.1 optional: true + react-dom@19.2.3(react@19.2.3): + dependencies: + react: 19.2.3 + scheduler: 0.27.0 + react-dom@19.2.4(react@19.2.3): dependencies: react: 19.2.3 scheduler: 0.27.0 + optional: true react-refresh@0.18.0: {} From b6909b8f49a31ad3006893c2ec169e260248b221 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:42:02 +0100 Subject: [PATCH 04/21] fix(mobile): prefer Chrome launch on Android --- mobile-wrapper/README.md | 5 ++--- mobile-wrapper/src/App.tsx | 29 ++++++++++++++++++++++++++--- mobile-wrapper/src/styles.css | 11 +++++++++++ 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/mobile-wrapper/README.md b/mobile-wrapper/README.md index 260483e..b4e07b7 100644 --- a/mobile-wrapper/README.md +++ b/mobile-wrapper/README.md @@ -6,9 +6,8 @@ the Helium web app on Android. ## Why this approach - Capacitor keeps the project in TypeScript. -- The app opens Helium in a Chrome Custom Tab, which is currently the most - reliable way to get Android WebRTC features (including screen audio when the - device supports it). +- The app first tries to open Helium directly in Google Chrome on Android. +- A fallback button opens Helium with the default browser. ## Setup diff --git a/mobile-wrapper/src/App.tsx b/mobile-wrapper/src/App.tsx index cc95396..bf0541a 100644 --- a/mobile-wrapper/src/App.tsx +++ b/mobile-wrapper/src/App.tsx @@ -1,8 +1,26 @@ import { Browser } from "@capacitor/browser"; const HELIUM_URL = "https://helium.srizan.dev"; +const HELIUM_CHROME_INTENT_URL = + "intent://helium.srizan.dev#Intent;scheme=https;package=com.android.chrome;end"; + +function isAndroid(): boolean { + return /android/i.test(navigator.userAgent); +} async function openHelium(): Promise { + if (isAndroid()) { + window.location.href = HELIUM_CHROME_INTENT_URL; + return; + } + + await Browser.open({ + url: HELIUM_URL, + presentationStyle: "fullscreen", + }); +} + +async function openHeliumFallback(): Promise { await Browser.open({ url: HELIUM_URL, presentationStyle: "fullscreen", @@ -22,12 +40,17 @@ function App() {

+ +

- If audio is missing in screen capture, update Chrome and Android, then - allow audio capture in the system screen-share picker. + If Chrome is not installed, use the fallback button. For audio capture, + update Chrome and Android, then enable audio in the system + screen-share picker.

diff --git a/mobile-wrapper/src/styles.css b/mobile-wrapper/src/styles.css index 7832edb..4a3fcd7 100644 --- a/mobile-wrapper/src/styles.css +++ b/mobile-wrapper/src/styles.css @@ -78,3 +78,14 @@ h1 { .cta:active { transform: translateY(1px); } + +.secondary { + border: 1px solid #c8d9ee; + border-radius: 12px; + padding: 11px 16px; + width: fit-content; + font-size: 0.95rem; + font-weight: 700; + color: #234669; + background: #f7fbff; +} From 0d7116050c1c7f6274ec36dd4ba14ae36654ef04 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:53:38 +0100 Subject: [PATCH 05/21] feat(native): add React Native viewer with Clerk auth --- native-app/.gitignore | 5 + native-app/App.tsx | 66 + native-app/README.md | 54 + native-app/app.json | 16 + native-app/babel.config.js | 7 + native-app/package.json | 26 + native-app/src/hooks/useHeliumViewer.ts | 224 + native-app/src/lib/signaling.ts | 14 + native-app/src/screens/SignInScreen.tsx | 130 + native-app/src/screens/ViewerScreen.tsx | 150 + native-app/src/types/signaling.ts | 39 + native-app/tsconfig.json | 8 + package.json | 6 +- pnpm-lock.yaml | 5525 ++++++++++++++++++++++- pnpm-workspace.yaml | 1 + 15 files changed, 6234 insertions(+), 37 deletions(-) create mode 100644 native-app/.gitignore create mode 100644 native-app/App.tsx create mode 100644 native-app/README.md create mode 100644 native-app/app.json create mode 100644 native-app/babel.config.js create mode 100644 native-app/package.json create mode 100644 native-app/src/hooks/useHeliumViewer.ts create mode 100644 native-app/src/lib/signaling.ts create mode 100644 native-app/src/screens/SignInScreen.tsx create mode 100644 native-app/src/screens/ViewerScreen.tsx create mode 100644 native-app/src/types/signaling.ts create mode 100644 native-app/tsconfig.json diff --git a/native-app/.gitignore b/native-app/.gitignore new file mode 100644 index 0000000..6c63ca9 --- /dev/null +++ b/native-app/.gitignore @@ -0,0 +1,5 @@ +node_modules +.expo +android +ios +dist diff --git a/native-app/App.tsx b/native-app/App.tsx new file mode 100644 index 0000000..6c17362 --- /dev/null +++ b/native-app/App.tsx @@ -0,0 +1,66 @@ +import "react-native-url-polyfill/auto"; + +import { ClerkProvider, SignedIn, SignedOut, useAuth } from "@clerk/clerk-expo"; +import { tokenCache } from "@clerk/clerk-expo/token-cache"; +import { ActivityIndicator, StyleSheet, Text, View } from "react-native"; + +import { SignInScreen } from "./src/screens/SignInScreen"; +import { ViewerScreen } from "./src/screens/ViewerScreen"; + +const publishableKey = process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY; + +function AuthReadyGate() { + const { isLoaded } = useAuth(); + + if (!isLoaded) { + return ( + + + + ); + } + + return ( + <> + + + + + + + + ); +} + +export default function App() { + if (!publishableKey) { + return ( + + + Missing EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY + + + ); + } + + return ( + + + + ); +} + +const styles = StyleSheet.create({ + loadingWrap: { + alignItems: "center", + backgroundColor: "#eef4fa", + flex: 1, + justifyContent: "center", + }, + errorText: { + color: "#9b1026", + fontSize: 16, + paddingHorizontal: 20, + textAlign: "center", + }, +}); diff --git a/native-app/README.md b/native-app/README.md new file mode 100644 index 0000000..c67c45e --- /dev/null +++ b/native-app/README.md @@ -0,0 +1,54 @@ +# Helium Native (Expo + React Native) + +Simple React Native viewer app that: + +- Authenticates with Clerk (`@clerk/clerk-expo`) +- Connects to Helium signaling at `/ws/signaling` +- Joins a 6-digit room and answers WebRTC offers +- Renders incoming stream with `RTCView` + +## Auth implementation notes (from Clerk docs via Context7) + +This app follows Clerk Expo guidance: + +- Wrap app with `ClerkProvider` +- Use secure `tokenCache` from `@clerk/clerk-expo/token-cache` +- Configure `EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY` +- Use `useSignIn()` and `setActive()` for email/password sign-in +- Use `useAuth()` for sign-out and auth state gating + +## Environment variables + +Create `native-app/.env`: + +```env +EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxx +EXPO_PUBLIC_HELIUM_BASE_URL=https://helium.srizan.dev +``` + +## Install + +```bash +pnpm -C native-app install +``` + +## Run on Android + +`react-native-webrtc` requires native modules, so use a development build: + +```bash +pnpm -C native-app prebuild +pnpm -C native-app android +``` + +## Signaling protocol wired + +Implemented in `native-app/src/hooks/useHeliumViewer.ts`: + +- send `join-room` +- receive `offer` +- create peer connection with provided `iceServers` +- set remote description and send `answer` +- exchange `ice-candidate` +- handle `room-closed` +- heartbeat with `ping` every 15s diff --git a/native-app/app.json b/native-app/app.json new file mode 100644 index 0000000..ddfba34 --- /dev/null +++ b/native-app/app.json @@ -0,0 +1,16 @@ +{ + "expo": { + "name": "Helium Native", + "slug": "helium-native", + "scheme": "heliumnative", + "version": "0.1.0", + "orientation": "portrait", + "userInterfaceStyle": "light", + "android": { + "package": "dev.srizan.helium.native" + }, + "plugins": [ + "expo-secure-store" + ] + } +} diff --git a/native-app/babel.config.js b/native-app/babel.config.js new file mode 100644 index 0000000..6ea4429 --- /dev/null +++ b/native-app/babel.config.js @@ -0,0 +1,7 @@ +module.exports = function(api) { + api.cache(true); + + return { + presets: ["babel-preset-expo"], + }; +}; diff --git a/native-app/package.json b/native-app/package.json new file mode 100644 index 0000000..c166897 --- /dev/null +++ b/native-app/package.json @@ -0,0 +1,26 @@ +{ + "name": "helium-native", + "version": "0.1.0", + "private": true, + "main": "expo/AppEntry", + "scripts": { + "start": "expo start", + "android": "expo run:android", + "ios": "expo run:ios", + "prebuild": "expo prebuild", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@clerk/clerk-expo": "^2.19.22", + "expo": "^54.0.0", + "expo-secure-store": "^15.0.0", + "react": "19.2.0", + "react-native": "0.82.0", + "react-native-url-polyfill": "^2.0.0", + "react-native-webrtc": "^124.0.7" + }, + "devDependencies": { + "@types/react": "^19.2.2", + "typescript": "^5.9.3" + } +} diff --git a/native-app/src/hooks/useHeliumViewer.ts b/native-app/src/hooks/useHeliumViewer.ts new file mode 100644 index 0000000..a055657 --- /dev/null +++ b/native-app/src/hooks/useHeliumViewer.ts @@ -0,0 +1,224 @@ +import { useCallback, useEffect, useRef, useState } from "react"; +import { + MediaStream, + RTCPeerConnection, + RTCIceCandidate, + RTCSessionDescription, +} from "react-native-webrtc"; + +import { getSignalingUrl } from "../lib/signaling"; +import type { + IncomingSignalingMessage, + SignalingOfferEvent, +} from "../types/signaling"; + +interface UseHeliumViewerResult { + status: string; + streamUrl: string | null; + connect: (roomId: string) => void; + disconnect: () => void; + isConnected: boolean; +} + +interface PeerConnectionHandlers { + ontrack: ((event: { streams?: MediaStream[] }) => void) | null; + onicecandidate: + | ((event: { candidate: RTCIceCandidate | null }) => void) + | null; + onconnectionstatechange: (() => void) | null; +} + +export function useHeliumViewer(): UseHeliumViewerResult { + const wsRef = useRef(null); + const pcRef = useRef(null); + const targetPeerIdRef = useRef(null); + const heartbeatRef = useRef | null>(null); + + const [status, setStatus] = useState("idle"); + const [streamUrl, setStreamUrl] = useState(null); + const [isConnected, setIsConnected] = useState(false); + + const sendMessage = useCallback((payload: object): void => { + const ws = wsRef.current; + if (!ws || ws.readyState !== WebSocket.OPEN) { + return; + } + + ws.send(JSON.stringify(payload)); + }, []); + + const cleanupPeerConnection = useCallback((): void => { + const pc = pcRef.current; + if (pc) { + pc.close(); + pcRef.current = null; + } + targetPeerIdRef.current = null; + setIsConnected(false); + }, []); + + const disconnect = useCallback((): void => { + if (heartbeatRef.current) { + clearInterval(heartbeatRef.current); + heartbeatRef.current = null; + } + + cleanupPeerConnection(); + setStreamUrl(null); + + const ws = wsRef.current; + if (ws) { + ws.close(); + wsRef.current = null; + } + + setStatus("disconnected"); + }, [cleanupPeerConnection]); + + const handleOffer = useCallback( + async (message: SignalingOfferEvent): Promise => { + setStatus("received offer"); + + cleanupPeerConnection(); + targetPeerIdRef.current = message.senderId; + + const pc = new RTCPeerConnection({ + iceServers: message.iceServers ?? [], + }); + const pcWithHandlers = pc as RTCPeerConnection & PeerConnectionHandlers; + pcRef.current = pc; + + pcWithHandlers.ontrack = (event): void => { + const stream = event.streams?.[0] as MediaStream | undefined; + if (!stream) { + return; + } + + setStreamUrl(stream.toURL()); + }; + + pcWithHandlers.onicecandidate = (event): void => { + if (!event.candidate || !targetPeerIdRef.current) { + return; + } + + sendMessage({ + event: "ice-candidate", + targetId: targetPeerIdRef.current, + candidate: event.candidate, + }); + }; + + pcWithHandlers.onconnectionstatechange = (): void => { + setStatus(`peer: ${pc.connectionState}`); + if (pc.connectionState === "connected") { + setIsConnected(true); + } + if (pc.connectionState === "failed" || pc.connectionState === "closed") { + setIsConnected(false); + } + }; + + await pc.setRemoteDescription(new RTCSessionDescription(message.sdp)); + const answer = await pc.createAnswer(); + await pc.setLocalDescription(answer); + + sendMessage({ + event: "answer", + targetId: message.senderId, + sdp: answer, + }); + + setStatus("sent answer"); + }, + [cleanupPeerConnection, sendMessage], + ); + + const handleIncomingMessage = useCallback( + async (event: MessageEvent): Promise => { + const message = JSON.parse(event.data) as IncomingSignalingMessage; + + if (message.event === "joined") { + setStatus(`joined room ${message.roomId}`); + return; + } + + if (message.event === "offer") { + await handleOffer(message); + return; + } + + if (message.event === "ice-candidate") { + const pc = pcRef.current; + if (!pc || !pc.remoteDescription) { + return; + } + + await pc.addIceCandidate(new RTCIceCandidate(message.candidate)); + return; + } + + if (message.event === "room-closed") { + disconnect(); + setStatus("room closed by host"); + return; + } + + if (message.event === "error") { + setStatus(`error: ${message.message}`); + } + }, + [disconnect, handleOffer], + ); + + const connect = useCallback( + (roomId: string): void => { + disconnect(); + + setStatus("connecting websocket"); + const ws = new WebSocket(getSignalingUrl()); + wsRef.current = ws; + + ws.onopen = (): void => { + setStatus("websocket connected"); + sendMessage({ event: "join-room", roomId }); + + heartbeatRef.current = setInterval(() => { + sendMessage({ event: "ping" }); + }, 15000); + }; + + ws.onmessage = (event): void => { + void handleIncomingMessage(event); + }; + + ws.onerror = (): void => { + setStatus("websocket error"); + }; + + ws.onclose = (): void => { + if (heartbeatRef.current) { + clearInterval(heartbeatRef.current); + heartbeatRef.current = null; + } + setStatus("websocket closed"); + setIsConnected(false); + }; + }, + [disconnect, handleIncomingMessage, sendMessage], + ); + + useEffect(() => { + return () => { + disconnect(); + }; + }, [disconnect]); + + return { + status, + streamUrl, + connect, + disconnect, + isConnected, + }; +} diff --git a/native-app/src/lib/signaling.ts b/native-app/src/lib/signaling.ts new file mode 100644 index 0000000..00688ea --- /dev/null +++ b/native-app/src/lib/signaling.ts @@ -0,0 +1,14 @@ +const DEFAULT_BASE_URL = "https://helium.srizan.dev"; + +export function getHeliumBaseUrl(): string { + return process.env.EXPO_PUBLIC_HELIUM_BASE_URL ?? DEFAULT_BASE_URL; +} + +export function getSignalingUrl(baseUrl: string = getHeliumBaseUrl()): string { + const url = new URL(baseUrl); + url.protocol = url.protocol === "https:" ? "wss:" : "ws:"; + url.pathname = "/ws/signaling"; + url.search = ""; + url.hash = ""; + return url.toString(); +} diff --git a/native-app/src/screens/SignInScreen.tsx b/native-app/src/screens/SignInScreen.tsx new file mode 100644 index 0000000..5182a03 --- /dev/null +++ b/native-app/src/screens/SignInScreen.tsx @@ -0,0 +1,130 @@ +import { useState } from "react"; +import { useSignIn } from "@clerk/clerk-expo"; +import { + ActivityIndicator, + Pressable, + StyleSheet, + Text, + TextInput, + View, +} from "react-native"; + +export function SignInScreen() { + const { isLoaded, signIn, setActive } = useSignIn(); + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [status, setStatus] = useState(""); + + const onSignIn = async (): Promise => { + if (!isLoaded) { + return; + } + + setStatus("Signing in..."); + + try { + const attempt = await signIn.create({ + identifier: email.trim(), + password, + }); + + if (attempt.status === "complete") { + await setActive({ session: attempt.createdSessionId }); + setStatus("Signed in"); + return; + } + + setStatus(`Needs extra step: ${attempt.status}`); + } catch { + setStatus("Sign-in failed"); + } + }; + + return ( + + Helium Native + Sign in with Clerk + + + + + { + void onSignIn(); + }} + style={styles.button} + > + {isLoaded ? ( + Sign in + ) : ( + + )} + + + {status} + + ); +} + +const styles = StyleSheet.create({ + container: { + alignItems: "stretch", + backgroundColor: "#f4f8fb", + flex: 1, + gap: 12, + justifyContent: "center", + padding: 24, + }, + title: { + color: "#0f1f33", + fontSize: 28, + fontWeight: "700", + textAlign: "center", + }, + subtitle: { + color: "#4a5f79", + marginBottom: 12, + textAlign: "center", + }, + input: { + backgroundColor: "#ffffff", + borderColor: "#c8d7ea", + borderRadius: 12, + borderWidth: 1, + color: "#11243d", + paddingHorizontal: 14, + paddingVertical: 12, + }, + button: { + alignItems: "center", + backgroundColor: "#1366d6", + borderRadius: 12, + paddingVertical: 12, + }, + buttonText: { + color: "#ffffff", + fontSize: 16, + fontWeight: "700", + }, + status: { + color: "#405166", + fontSize: 13, + textAlign: "center", + }, +}); diff --git a/native-app/src/screens/ViewerScreen.tsx b/native-app/src/screens/ViewerScreen.tsx new file mode 100644 index 0000000..f9cd88a --- /dev/null +++ b/native-app/src/screens/ViewerScreen.tsx @@ -0,0 +1,150 @@ +import { useState } from "react"; +import { useAuth } from "@clerk/clerk-expo"; +import { + Pressable, + SafeAreaView, + StyleSheet, + Text, + TextInput, + View, +} from "react-native"; +import { RTCView } from "react-native-webrtc"; + +import { useHeliumViewer } from "../hooks/useHeliumViewer"; + +export function ViewerScreen() { + const { signOut } = useAuth(); + const [roomCode, setRoomCode] = useState(""); + const { connect, disconnect, isConnected, status, streamUrl } = useHeliumViewer(); + + return ( + + + Helium Viewer + {status} + + { + setRoomCode(text.replace(/\D/g, "")); + }} + placeholder="Enter 6-digit room code" + placeholderTextColor="#6a7a8e" + style={styles.input} + value={roomCode} + /> + + + { + connect(roomCode); + }} + style={styles.primaryButton} + > + Connect + + + + Disconnect + + + { + void signOut(); + }} + style={styles.secondaryButton} + > + Sign out + + + + + {isConnected && streamUrl ? ( + + ) : ( + No stream yet + )} + + + + ); +} + +const styles = StyleSheet.create({ + safeArea: { + backgroundColor: "#f0f6fd", + flex: 1, + }, + container: { + flex: 1, + gap: 12, + padding: 18, + }, + title: { + color: "#12263c", + fontSize: 22, + fontWeight: "700", + }, + status: { + color: "#4f6278", + fontSize: 13, + }, + input: { + backgroundColor: "#ffffff", + borderColor: "#d3deeb", + borderRadius: 12, + borderWidth: 1, + color: "#10233b", + fontSize: 16, + paddingHorizontal: 12, + paddingVertical: 10, + }, + actions: { + flexDirection: "row", + flexWrap: "wrap", + gap: 8, + }, + primaryButton: { + backgroundColor: "#0e68de", + borderRadius: 10, + paddingHorizontal: 14, + paddingVertical: 10, + }, + primaryButtonText: { + color: "#ffffff", + fontWeight: "700", + }, + secondaryButton: { + backgroundColor: "#e4edf8", + borderRadius: 10, + paddingHorizontal: 14, + paddingVertical: 10, + }, + secondaryButtonText: { + color: "#21354d", + fontWeight: "600", + }, + videoWrap: { + alignItems: "center", + backgroundColor: "#0a121e", + borderRadius: 14, + flex: 1, + justifyContent: "center", + overflow: "hidden", + }, + video: { + height: "100%", + width: "100%", + }, + placeholder: { + color: "#92a3b8", + }, +}); diff --git a/native-app/src/types/signaling.ts b/native-app/src/types/signaling.ts new file mode 100644 index 0000000..7574970 --- /dev/null +++ b/native-app/src/types/signaling.ts @@ -0,0 +1,39 @@ +export interface NativeSessionDescriptionInit { + type: "offer" | "answer" | "pranswer" | "rollback"; + sdp: string; +} + +export interface SignalingOfferEvent { + event: "offer"; + sdp: NativeSessionDescriptionInit; + senderId: string; + iceServers?: RTCIceServer[]; +} + +export interface SignalingIceCandidateEvent { + event: "ice-candidate"; + from: string; + candidate: RTCIceCandidateInit; +} + +export interface SignalingJoinedEvent { + event: "joined"; + roomId: string; +} + +export interface SignalingErrorEvent { + event: "error"; + message: string; +} + +export interface SignalingRoomClosedEvent { + event: "room-closed"; +} + +export type IncomingSignalingMessage = + | SignalingOfferEvent + | SignalingIceCandidateEvent + | SignalingJoinedEvent + | SignalingErrorEvent + | SignalingRoomClosedEvent + | { event: "pong" }; diff --git a/native-app/tsconfig.json b/native-app/tsconfig.json new file mode 100644 index 0000000..12b0461 --- /dev/null +++ b/native-app/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "expo/tsconfig.base", + "compilerOptions": { + "strict": true, + "jsx": "react-jsx" + }, + "include": ["App.tsx", "src/**/*.ts", "src/**/*.tsx"] +} diff --git a/package.json b/package.json index d3b49b1..f00f1d7 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,11 @@ "mobile:build": "pnpm -C mobile-wrapper build", "mobile:android:add": "pnpm -C mobile-wrapper cap:android:add", "mobile:android:sync": "pnpm -C mobile-wrapper cap:sync", - "mobile:android:open": "pnpm -C mobile-wrapper cap:android:open" + "mobile:android:open": "pnpm -C mobile-wrapper cap:android:open", + "native:install": "pnpm -C native-app install", + "native:android": "pnpm -C native-app android", + "native:start": "pnpm -C native-app start", + "native:typecheck": "pnpm -C native-app typecheck" }, "dependencies": { "@clerk/localizations": "^3.34.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1915309..282b23e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ importers: version: 2.4.46(react-dom@19.2.4(react@19.2.3))(react@19.2.3) '@nuxtjs/i18n': specifier: ^10.2.1 - version: 10.2.1(@vue/compiler-dom@3.5.26)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(magicast@0.5.0)(rollup@4.52.5)(vue@3.5.26(typescript@5.9.3)) + version: 10.2.1(@vue/compiler-dom@3.5.26)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(magicast@0.5.0)(rollup@4.52.5)(vue@3.5.26(typescript@5.9.3)) '@pinia/nuxt': specifier: 0.11.2 version: 0.11.2(magicast@0.5.0)(pinia@3.0.3(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))) @@ -55,7 +55,7 @@ importers: version: 0.55.1 nuxt: specifier: ^4.2.1 - version: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) + version: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) nuxt-monaco-editor: specifier: ^1.4.0 version: 1.4.0(magicast@0.5.0)(monaco-editor@0.55.1)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) @@ -91,7 +91,7 @@ importers: version: 4.6.3(vue@3.5.26(typescript@5.9.3)) vue-sonner: specifier: ^2.0.9 - version: 2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2)) + version: 2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2)) zod: specifier: ^4.3.5 version: 4.3.5 @@ -183,11 +183,56 @@ importers: specifier: ^7.2.2 version: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + native-app: + dependencies: + '@clerk/clerk-expo': + specifier: ^2.19.22 + version: 2.19.22(dbd737010a4643919cae86f66df35462) + expo: + specifier: ^54.0.0 + version: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + expo-secure-store: + specifier: ^15.0.0 + version: 15.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)) + react: + specifier: 19.2.0 + version: 19.2.0 + react-native: + specifier: 0.82.0 + version: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + react-native-url-polyfill: + specifier: ^2.0.0 + version: 2.0.0(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + react-native-webrtc: + specifier: ^124.0.7 + version: 124.0.7(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + devDependencies: + '@types/react': + specifier: ^19.2.2 + version: 19.2.14 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + packages: 7zip-bin@5.2.0: resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + '@0no-co/graphql.web@1.2.0': + resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + + '@adraffy/ens-normalize@1.11.1': + resolution: {integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==} + + '@babel/code-frame@7.10.4': + resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} + '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} @@ -238,6 +283,23 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.6': + resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-globals@7.28.0': resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} @@ -274,12 +336,28 @@ packages: resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.27.1': resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} @@ -296,6 +374,10 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.28.6': + resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.4': resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} @@ -304,6 +386,10 @@ packages: resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} + '@babel/highlight@7.25.9': + resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.28.5': resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} @@ -314,18 +400,300 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/plugin-proposal-decorators@7.29.0': + resolution: {integrity: sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-export-default-from@7.27.1': + resolution: {integrity: sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-decorators@7.28.6': + resolution: {integrity: sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-default-from@7.28.6': + resolution: {integrity: sha512-Svlx1fjJFnNz0LZeUaybRukSxZI3KkpApUmIRzEdXC5k8ErTOz0OD0kNrICi5Vc3GlpP5ZCeRyRO+mfWTSz+iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-flow@7.28.6': + resolution: {integrity: sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.27.1': resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.27.1': resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.29.0': + resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-flow-strip-types@7.27.1': + resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-display-name@7.28.0': + resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.27.1': + resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.27.1': resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} @@ -338,12 +706,76 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.28.6': + resolution: {integrity: sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.27.1': + resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.29.0': + resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-runtime@7.29.0': + resolution: {integrity: sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.28.5': resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-react@7.28.5': + resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.28.5': + resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} @@ -368,6 +800,9 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@base-org/account@2.0.1': + resolution: {integrity: sha512-tySVNx+vd6XEynZL0uvB10uKiwnAfThr8AbKTwILVG86mPbLAhEOInQIk+uDnvpTvfdUhC1Bi5T/46JvFoLZQQ==} + '@bomb.sh/tab@0.0.11': resolution: {integrity: sha512-RSqyreeicYBALcMaNxIUJTBknftXsyW45VRq5gKDNwKroh0Re5SDoWwXZaphb+OTEzVdpm/BA8Uq6y0P+AtVYw==} hasBin: true @@ -416,10 +851,54 @@ packages: resolution: {integrity: sha512-cw4CK6ZHgeFROirlIOawelqRBxZAyH6v3GPSYZEEzYAL0WWUHx7cMXzoQcTMruH7w6UM7s3Ox+uUcINESWkQPA==} engines: {node: '>=18.17.0'} + '@clerk/clerk-expo@2.19.22': + resolution: {integrity: sha512-w/nwNMd1ir3d/OAlieeg//JPKULCT9dsuwx4U+/Lu8zqAdCb27Q4ie8hDzoM/9+89GxDn1KyoAh4VgRuMiabfQ==} + engines: {node: '>=18.17.0'} + peerDependencies: + '@clerk/expo-passkeys': '>=0.0.6' + expo-apple-authentication: '>=7.0.0' + expo-auth-session: '>=5' + expo-crypto: '>=12' + expo-local-authentication: '>=13.5.0' + expo-secure-store: '>=12.4.0' + expo-web-browser: '>=12.5.0' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + react-native: '>=0.73' + peerDependenciesMeta: + '@clerk/expo-passkeys': + optional: true + expo-apple-authentication: + optional: true + expo-crypto: + optional: true + expo-local-authentication: + optional: true + expo-secure-store: + optional: true + + '@clerk/clerk-js@5.122.1': + resolution: {integrity: sha512-3GfvoDj/cHbGpJA8czydvZkRdgrRaRCKX4Z0bYByHLFIHJ2+GrSOIyEjqcONGjzSdFfEJ4TFcivd3Z6HfB9KEw==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + react-dom: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + + '@clerk/clerk-react@5.60.0': + resolution: {integrity: sha512-P88FncsJpq/3WZJhhlj+md8mYb35BIXpr462C/figwsBGHsinr8VuBQUMcMZZ/6M34C8ABfLTPa6PHVp6+3D5Q==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + react-dom: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + '@clerk/localizations@3.34.0': resolution: {integrity: sha512-LGlxDuwFRfJnUttbHYTShqklGVqbXSp7B5zjir31pPQG1MrJS5LjVx8M0E9i0OZEHec8SU/4EoCOMX07Dk6Jfw==} engines: {node: '>=18.17.0'} + '@clerk/localizations@3.35.3': + resolution: {integrity: sha512-RxxxKyj4aXGq8GO+2+n/YsPg5Q9xGKO/T1grMxOne8CNZXLcRniIXomL6hcTjHaQ4ZNPuNvQRt8YAcu5g01tWw==} + engines: {node: '>=18.17.0'} + '@clerk/nuxt@1.13.10': resolution: {integrity: sha512-zaw1Coc3In8/y3O3zEcwaydcvAeVMZdmTt9D+wkpvZGiUGDHfKipQRwuFpw92HhSTUD4LjeJ2h/XbCScKZnepg==} engines: {node: '>=18.17.0'} @@ -448,6 +927,18 @@ packages: react-dom: optional: true + '@clerk/shared@3.44.0': + resolution: {integrity: sha512-kH+chNeZwqml3IDpWLgebWECfOZifyUQO4OISd/96w1EuCY1Bzw6cBq/ZbpsoO8jyG8/6bGr/MGXLhDzTrpPfA==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + react-dom: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + '@clerk/themes@2.4.46': resolution: {integrity: sha512-26U+aInnWJwYHrT/LYX7sGRrLJwLk4NvfEoUyVc5EXUl7ue/TZ88r7ZiKDv0KutBTNopaz+p+7KD6F1j72nodA==} engines: {node: '>=18.17.0'} @@ -456,6 +947,10 @@ packages: resolution: {integrity: sha512-qlmgnAm/IeK02RKEKVN8/Glx07xw/Lcv67jBfikM8HXhHc5v7bfYLD8UiWTr6H2RGtvB09cIt9JezRRlsuVBew==} engines: {node: '>=18.17.0'} + '@clerk/types@4.101.14': + resolution: {integrity: sha512-jl7DywmeaZx1IntgEXcjDZq2uyk+X/1yAZOjxOboeGTS0rNTiQNhv7xK8tFVjexsUAFrYlwC1AxhFuJiMDQjow==} + engines: {node: '>=18.17.0'} + '@clerk/types@4.101.9': resolution: {integrity: sha512-RO00JqqmkIoI1o0XCtvudjaLpqEoe8PRDHlLS1r/aNZazUQCO0TT6nZOx1F3X+QJDjqYVY7YmYl3mtO2QVEk1g==} engines: {node: '>=18.17.0'} @@ -470,6 +965,9 @@ packages: resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} engines: {node: '>=18.0.0'} + '@coinbase/wallet-sdk@4.3.0': + resolution: {integrity: sha512-T3+SNmiCw4HzDm4we9wCHCxlP0pqCiwKe4sOwPH3YAK2KSKjxPRydKu6UQJrdONFVLG7ujXvbd/6ZqmvJb8rkw==} + '@develar/schema-utils@2.6.5': resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} engines: {node: '>= 8.9.0'} @@ -525,6 +1023,50 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + + '@emotion/cache@11.11.0': + resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/memoize@0.8.1': + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.11.1': + resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0': + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + + '@emotion/weak-memoize@0.3.1': + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} + '@esbuild-kit/core-utils@3.3.2': resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} deprecated: 'Merged into tsx: https://tsx.is' @@ -1015,18 +1557,144 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@expo/cli@54.0.23': + resolution: {integrity: sha512-km0h72SFfQCmVycH/JtPFTVy69w6Lx1cHNDmfLfQqgKFYeeHTjx7LVDP4POHCtNxFP2UeRazrygJhlh4zz498g==} + hasBin: true + peerDependencies: + expo: '*' + expo-router: '*' + react-native: '*' + peerDependenciesMeta: + expo-router: + optional: true + react-native: + optional: true + + '@expo/code-signing-certificates@0.0.6': + resolution: {integrity: sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==} + + '@expo/config-plugins@54.0.4': + resolution: {integrity: sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==} + + '@expo/config-types@54.0.10': + resolution: {integrity: sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==} + + '@expo/config@12.0.13': + resolution: {integrity: sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ==} + + '@expo/devcert@1.2.1': + resolution: {integrity: sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==} + + '@expo/devtools@0.1.8': + resolution: {integrity: sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ==} + peerDependencies: + react: '*' + react-native: '*' + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true + + '@expo/env@2.0.8': + resolution: {integrity: sha512-5VQD6GT8HIMRaSaB5JFtOXuvfDVU80YtZIuUT/GDhUF782usIXY13Tn3IdDz1Tm/lqA9qnRZQ1BF4t7LlvdJPA==} + + '@expo/fingerprint@0.15.4': + resolution: {integrity: sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng==} + hasBin: true + + '@expo/image-utils@0.8.8': + resolution: {integrity: sha512-HHHaG4J4nKjTtVa1GG9PCh763xlETScfEyNxxOvfTRr8IKPJckjTyqSLEtdJoFNJ1vqiABEjW7tqGhqGibZLeA==} + + '@expo/json-file@10.0.8': + resolution: {integrity: sha512-9LOTh1PgKizD1VXfGQ88LtDH0lRwq9lsTb4aichWTWSWqy3Ugfkhfm3BhzBIkJJfQQ5iJu3m/BoRlEIjoCGcnQ==} + + '@expo/metro-config@54.0.14': + resolution: {integrity: sha512-hxpLyDfOR4L23tJ9W1IbJJsG7k4lv2sotohBm/kTYyiG+pe1SYCAWsRmgk+H42o/wWf/HQjE5k45S5TomGLxNA==} + peerDependencies: + expo: '*' + peerDependenciesMeta: + expo: + optional: true + + '@expo/metro@54.2.0': + resolution: {integrity: sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==} + + '@expo/osascript@2.3.8': + resolution: {integrity: sha512-/TuOZvSG7Nn0I8c+FcEaoHeBO07yu6vwDgk7rZVvAXoeAK5rkA09jRyjYsZo+0tMEFaToBeywA6pj50Mb3ny9w==} + engines: {node: '>=12'} + + '@expo/package-manager@1.9.10': + resolution: {integrity: sha512-axJm+NOj3jVxep49va/+L3KkF3YW/dkV+RwzqUJedZrv4LeTqOG4rhrCaCPXHTvLqCTDKu6j0Xyd28N7mnxsGA==} + + '@expo/plist@0.4.8': + resolution: {integrity: sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==} + + '@expo/prebuild-config@54.0.8': + resolution: {integrity: sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==} + peerDependencies: + expo: '*' + + '@expo/schema-utils@0.1.8': + resolution: {integrity: sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==} + + '@expo/sdk-runtime-versions@1.0.0': + resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} + + '@expo/spawn-async@1.7.2': + resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==} + engines: {node: '>=12'} + + '@expo/sudo-prompt@9.3.2': + resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==} + + '@expo/vector-icons@15.0.3': + resolution: {integrity: sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA==} + peerDependencies: + expo-font: '>=14.0.4' + react: '*' + react-native: '*' + + '@expo/ws-tunnel@1.0.6': + resolution: {integrity: sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==} + + '@expo/xcpretty@4.4.0': + resolution: {integrity: sha512-o2qDlTqJ606h4xR36H2zWTywmZ3v3842K6TU8Ik2n1mfW0S580VHlt3eItVYdLYz+klaPp7CXqanja8eASZjRw==} + hasBin: true + '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + '@floating-ui/core@1.7.4': + resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} + '@floating-ui/dom@1.7.4': resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + '@floating-ui/dom@1.7.5': + resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} + + '@floating-ui/react-dom@2.1.7': + resolution: {integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.27.12': + resolution: {integrity: sha512-kKlWNrpIQxF1B/a2MZvE0/uyKby4960yjO91W7nVyNKmmfNi62xU9HCjL1M1eWzx/LFj/VPSwJVbwQk9Pq/68A==} + peerDependencies: + react: '>=17.0.0' + react-dom: '>=17.0.0' + '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} '@floating-ui/vue@1.1.9': resolution: {integrity: sha512-BfNqNW6KA83Nexspgb9DZuz578R7HT8MZw1CfK9I6Ah4QReNWEJsXWHN+SdmOVLNGmTPDi+fDT535Df5PzMLbQ==} + '@formkit/auto-animate@0.8.4': + resolution: {integrity: sha512-DHHC01EJ1p70Q0z/ZFRBIY8NDnmfKccQoyoM84Tgb6omLMat6jivCdf272Y8k3nf4Lzdin/Y4R9q8uFtU0GbnA==} + '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} @@ -1205,6 +1873,42 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} + '@isaacs/ttlcache@1.4.1': + resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} + engines: {node: '>=12'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/create-cache-key-function@29.7.0': + resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1258,6 +1962,26 @@ packages: resolution: {integrity: sha512-I5sbpSIAHiB+b6UttofhrN/UJXII+4tZPAq1qugzwCwLIL8EZLV7F/JyHUrEIiGgQpEXzpnjlJ+zwcEhheGvCw==} engines: {node: '>=19.0.0'} + '@noble/ciphers@1.3.0': + resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@1.9.1': + resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2010,6 +2734,94 @@ packages: '@poppinss/exception@1.2.2': resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} + '@react-native-async-storage/async-storage@1.24.0': + resolution: {integrity: sha512-W4/vbwUOYOjco0x3toB8QCr7EjIP6nE9G7o8PMguvvjYT5Awg09lyV4enACRx4s++PPulBiBSjL0KTFx2u0Z/g==} + peerDependencies: + react-native: ^0.0.0-0 || >=0.60 <1.0 + + '@react-native/assets-registry@0.82.0': + resolution: {integrity: sha512-SHRZxH+VHb6RwcHNskxyjso6o91Lq0DPgOpE5cDrppn1ziYhI723rjufFgh59RcpH441eci0/cXs/b0csXTtnw==} + engines: {node: '>= 20.19.4'} + + '@react-native/babel-plugin-codegen@0.81.5': + resolution: {integrity: sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==} + engines: {node: '>= 20.19.4'} + + '@react-native/babel-preset@0.81.5': + resolution: {integrity: sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/codegen@0.81.5': + resolution: {integrity: sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/codegen@0.82.0': + resolution: {integrity: sha512-DJKDwyr6s0EtoPKmAaOsx2EnS2sV/qICNWn/KA+8lohSY6gJF1wuA+DOjitivBfU0soADoo8tqGq50C5rlzmCA==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/community-cli-plugin@0.82.0': + resolution: {integrity: sha512-n5dxQowsRAjruG5sNl6MEPUzANUiVERaL7w4lHGmm/pz/ey1JOM9sFxL6RpZp1FJSVu4QKmbx6sIHrKb2MCekg==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@react-native-community/cli': '*' + '@react-native/metro-config': '*' + peerDependenciesMeta: + '@react-native-community/cli': + optional: true + '@react-native/metro-config': + optional: true + + '@react-native/debugger-frontend@0.81.5': + resolution: {integrity: sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==} + engines: {node: '>= 20.19.4'} + + '@react-native/debugger-frontend@0.82.0': + resolution: {integrity: sha512-rlTDcjf0ecjOHmygdBACAQCqPG0z/itAxnbhk8ZiQts7m4gRJiA/iCGFyC8/T9voUA0azAX6QCl4tHlnuUy7mQ==} + engines: {node: '>= 20.19.4'} + + '@react-native/debugger-shell@0.82.0': + resolution: {integrity: sha512-XbXABIMzaH7SvapNWcW+zix1uHeSX/MoXYKKWWTs99a12TgwNuTeLKKTEj/ZkAjWtaCCqb/sMI4aJDLXKppCGg==} + engines: {node: '>= 20.19.4'} + + '@react-native/dev-middleware@0.81.5': + resolution: {integrity: sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==} + engines: {node: '>= 20.19.4'} + + '@react-native/dev-middleware@0.82.0': + resolution: {integrity: sha512-SHvpo89RSzH06yZCmY3Xwr1J82EdUljC2lcO4YvXfHmytFG453Nz6kyZQcDEqGCfWDjznIUFUyT2UcLErmRWQg==} + engines: {node: '>= 20.19.4'} + + '@react-native/gradle-plugin@0.82.0': + resolution: {integrity: sha512-PTfmQ6cYsJgMXJ49NzB4Sz/DmRUtwatGtcA6MuskRvQpSinno/00Sns7wxphkTVMHGAwk3Xh0t0SFNd1d1HCyw==} + engines: {node: '>= 20.19.4'} + + '@react-native/js-polyfills@0.82.0': + resolution: {integrity: sha512-7K1K64rfq0sKoGxB2DTsZROxal0B04Q+ftia0JyCOGOto/tyBQIQqiQgVtMVEBZSEXZyXmGx3HzF4EEPlvrEtw==} + engines: {node: '>= 20.19.4'} + + '@react-native/normalize-colors@0.81.5': + resolution: {integrity: sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==} + + '@react-native/normalize-colors@0.82.0': + resolution: {integrity: sha512-oinsK6TYEz5RnFTSk9P+hJ/N/E0pOG76O0euU0Gf3BlXArDpS8m3vrGcTjqeQvajRIaYVHIRAY9hCO6q+exyLg==} + + '@react-native/virtualized-lists@0.82.0': + resolution: {integrity: sha512-fReDITtqwWdN29doPHhmeQEqa12ATJ4M2Y1MrT8Q1Hoy5a0H3oEn9S7fknGr7Pj+/I77yHyJajUbCupnJ8vkFA==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@types/react': ^19.1.1 + react: '*' + react-native: '*' + peerDependenciesMeta: + '@types/react': + optional: true + '@rolldown/pluginutils@1.0.0-beta.53': resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} @@ -2219,6 +3031,18 @@ packages: cpu: [x64] os: [win32] + '@scure/base@1.2.6': + resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} + + '@scure/bip32@1.7.0': + resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} + + '@scure/bip39@1.6.0': + resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} + + '@sinclair/typebox@0.27.10': + resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} + '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} @@ -2231,6 +3055,133 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@solana-mobile/mobile-wallet-adapter-protocol-web3js@2.2.5': + resolution: {integrity: sha512-xfQl6Kee0ZXagUG5mpy+bMhQTNf2LAzF65m5SSgNJp47y/nP9GdXWi9blVH8IPP+QjF/+DnCtURaXS14bk3WJw==} + peerDependencies: + '@solana/web3.js': ^1.58.0 + + '@solana-mobile/mobile-wallet-adapter-protocol@2.2.5': + resolution: {integrity: sha512-kCI+0/umWm98M9g12ndpS56U6wBzq4XdhobCkDPF8qRDYX/iTU8CD+QMcalh7VgRT7GWEmySQvQdaugM0Chf0g==} + peerDependencies: + react-native: '>0.69' + + '@solana-mobile/wallet-adapter-mobile@2.2.5': + resolution: {integrity: sha512-Zpzfwm3N4FfI63ZMs2qZChQ1j0z+p2prkZbSU51NyTnE+K9l9sDAl8RmRCOWnE29y+/AN10WuQZQoIAccHVOFg==} + peerDependencies: + '@solana/web3.js': ^1.58.0 + + '@solana-mobile/wallet-standard-mobile@0.4.4': + resolution: {integrity: sha512-LMvqkS5/aEH+EiDje9Dk351go6wO3POysgmobM4qm8RsG5s6rDAW3U0zA+5f2coGCTyRx8BKE1I/9nHlwtBuow==} + + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + + '@solana/codecs-core@2.3.0': + resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-core@4.0.0': + resolution: {integrity: sha512-28kNUsyIlhU3MO3/7ZLDqeJf2YAm32B4tnTjl5A9HrbBqsTZ+upT/RzxZGP1MMm7jnPuIKCMwmTpsyqyR6IUpw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-numbers@2.3.0': + resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-numbers@4.0.0': + resolution: {integrity: sha512-z9zpjtcwzqT9rbkKVZpkWB5/0V7+6YRKs6BccHkGJlaDx8Pe/+XOvPi2rEdXPqrPd9QWb5Xp1iBfcgaDMyiOiA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-strings@4.0.0': + resolution: {integrity: sha512-XvyD+sQ1zyA0amfxbpoFZsucLoe+yASQtDiLUGMDg5TZ82IHE3B7n82jE8d8cTAqi0HgqQiwU13snPhvg1O0Ow==} + engines: {node: '>=20.18.0'} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5.3.3' + + '@solana/errors@2.3.0': + resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.3.3' + + '@solana/errors@4.0.0': + resolution: {integrity: sha512-3YEtvcMvtcnTl4HahqLt0VnaGVf7vVWOnt6/uPky5e0qV6BlxDSbGkbBzttNjxLXHognV0AQi3pjvrtfUnZmbg==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.3.3' + + '@solana/wallet-adapter-base@0.9.27': + resolution: {integrity: sha512-kXjeNfNFVs/NE9GPmysBRKQ/nf+foSaq3kfVSeMcO/iVgigyRmB551OjU3WyAolLG/1jeEfKLqF9fKwMCRkUqg==} + engines: {node: '>=20'} + peerDependencies: + '@solana/web3.js': ^1.98.0 + + '@solana/wallet-adapter-react@0.15.39': + resolution: {integrity: sha512-WXtlo88ith5m22qB+qiGw301/Zb9r5pYr4QdXWmlXnRNqwST5MGmJWhG+/RVrzc+OG7kSb3z1gkVNv+2X/Y0Gg==} + engines: {node: '>=20'} + peerDependencies: + '@solana/web3.js': ^1.98.0 + react: '*' + + '@solana/wallet-standard-chains@1.1.1': + resolution: {integrity: sha512-Us3TgL4eMVoVWhuC4UrePlYnpWN+lwteCBlhZDUhFZBJ5UMGh94mYPXno3Ho7+iHPYRtuCi/ePvPcYBqCGuBOw==} + engines: {node: '>=16'} + + '@solana/wallet-standard-core@1.1.2': + resolution: {integrity: sha512-FaSmnVsIHkHhYlH8XX0Y4TYS+ebM+scW7ZeDkdXo3GiKge61Z34MfBPinZSUMV08hCtzxxqH2ydeU9+q/KDrLA==} + engines: {node: '>=16'} + + '@solana/wallet-standard-features@1.3.0': + resolution: {integrity: sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg==} + engines: {node: '>=16'} + + '@solana/wallet-standard-util@1.1.2': + resolution: {integrity: sha512-rUXFNP4OY81Ddq7qOjQV4Kmkozx4wjYAxljvyrqPx8Ycz0FYChG/hQVWqvgpK3sPsEaO/7ABG1NOACsyAKWNOA==} + engines: {node: '>=16'} + + '@solana/wallet-standard-wallet-adapter-base@1.1.4': + resolution: {integrity: sha512-Q2Rie9YaidyFA4UxcUIxUsvynW+/gE2noj/Wmk+IOwDwlVrJUAXCvFaCNsPDSyKoiYEKxkSnlG13OA1v08G4iw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.98.0 + bs58: ^6.0.0 + + '@solana/wallet-standard-wallet-adapter-react@1.1.4': + resolution: {integrity: sha512-xa4KVmPgB7bTiWo4U7lg0N6dVUtt2I2WhEnKlIv0jdihNvtyhOjCKMjucWet6KAVhir6I/mSWrJk1U9SvVvhCg==} + engines: {node: '>=16'} + peerDependencies: + '@solana/wallet-adapter-base': '*' + react: '*' + + '@solana/wallet-standard-wallet-adapter@1.1.4': + resolution: {integrity: sha512-YSBrxwov4irg2hx9gcmM4VTew3ofNnkqsXQ42JwcS6ykF1P1ecVY8JCbrv75Nwe6UodnqeoZRbN7n/p3awtjNQ==} + engines: {node: '>=16'} + + '@solana/wallet-standard@1.1.4': + resolution: {integrity: sha512-NF+MI5tOxyvfTU4A+O5idh/gJFmjm52bMwsPpFGRSL79GECSN0XLmpVOO/jqTKJgac2uIeYDpQw/eMaQuWuUXw==} + engines: {node: '>=16'} + + '@solana/web3.js@1.98.4': + resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} + '@speed-highlight/core@1.2.14': resolution: {integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==} @@ -2243,6 +3194,10 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@stripe/stripe-js@5.6.0': + resolution: {integrity: sha512-w8CEY73X/7tw2KKlL3iOk679V9bWseE4GzNz3zlaYxcTjmcmWOathRb0emgo/QQ3eoNzmq68+2Y2gxluAv3xGw==} + engines: {node: '>=12.16'} + '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} @@ -2351,6 +3306,9 @@ packages: resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==} engines: {node: '>=18'} + '@tanstack/query-core@5.87.4': + resolution: {integrity: sha512-uNsg6zMxraEPDVO2Bn+F3/ctHi+Zsk+MMpcN8h6P7ozqD088F6mFY5TfGM7zuyIrL7HKpDyu6QHfLWiDxh3cuw==} + '@tanstack/store@0.7.7': resolution: {integrity: sha512-xa6pTan1bcaqYDS9BDpSiS63qa6EoDkPN9RsRaxHuDdVDNntzq3xNwR5YKTU/V3SkSyC9T4YVOPh2zRQN0nhIQ==} @@ -2402,6 +3360,9 @@ packages: '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -2414,9 +3375,21 @@ packages: '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/http-cache-semantics@4.2.0': resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -2429,6 +3402,9 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + '@types/node@20.19.30': resolution: {integrity: sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==} @@ -2438,6 +3414,9 @@ packages: '@types/node@24.9.2': resolution: {integrity: sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/parse-path@7.1.0': resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. @@ -2465,15 +3444,33 @@ packages: '@types/slice-ansi@4.0.0': resolution: {integrity: sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==} + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + '@types/verror@1.10.11': resolution: {integrity: sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg==} '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -2507,11 +3504,22 @@ packages: resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@unhead/vue@2.0.19': resolution: {integrity: sha512-7BYjHfOaoZ9+ARJkT10Q2TjnTUqDXmMpfakIAsD/hXiuff1oqWg1xeXT5+MomhNcC15HbiABpbbBmITLSHxdKg==} peerDependencies: vue: '>=3.5.18' + '@urql/core@5.2.0': + resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==} + + '@urql/exchange-retry@1.3.2': + resolution: {integrity: sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==} + peerDependencies: + '@urql/core': ^5.0.0 + '@vencord/venmic@6.1.0': resolution: {integrity: sha512-YiCtzml/W8tYbGhu3jm5jfbbEnl2slKKARNK0jO+8qV979k9eFnfIRTxvhMN/SWq1h8ZNJdXVwvXpffQwq0RuA==} engines: {node: '>=14.15'} @@ -2653,10 +3661,41 @@ packages: peerDependencies: vue: ^3.5.0 + '@wallet-standard/app@1.1.0': + resolution: {integrity: sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ==} + engines: {node: '>=16'} + + '@wallet-standard/base@1.1.0': + resolution: {integrity: sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ==} + engines: {node: '>=16'} + + '@wallet-standard/core@1.1.1': + resolution: {integrity: sha512-5Xmjc6+Oe0hcPfVc5n8F77NVLwx1JVAoCVgQpLyv/43/bhtIif+Gx3WUrDlaSDoM8i2kA2xd6YoFbHCxs+e0zA==} + engines: {node: '>=16'} + + '@wallet-standard/errors@0.1.1': + resolution: {integrity: sha512-V8Ju1Wvol8i/VDyQOHhjhxmMVwmKiwyxUZBnHhtiPZJTWY0U/Shb2iEWyGngYEbAkp2sGTmEeNX1tVyGR7PqNw==} + engines: {node: '>=16'} + hasBin: true + + '@wallet-standard/features@1.1.0': + resolution: {integrity: sha512-hiEivWNztx73s+7iLxsuD1sOJ28xtRix58W7Xnz4XzzA/pF0+aicnWgjOdA10doVDEDZdUuZCIIqG96SFNlDUg==} + engines: {node: '>=16'} + + '@wallet-standard/wallet@1.1.0': + resolution: {integrity: sha512-Gt8TnSlDZpAl+RWOOAB/kuvC7RpcdWAlFbHNoi4gsXsfaWa1QCT6LBcfIYTPdOZC9OVZUDwqGuGAcqZejDmHjg==} + engines: {node: '>=16'} + '@xmldom/xmldom@0.8.11': resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} engines: {node: '>=10.0.0'} + '@zxcvbn-ts/core@3.0.4': + resolution: {integrity: sha512-aQeiT0F09FuJaAqNrxynlAwZ2mW/1MdXakKWNmGM1Qp/VaY6CnB/GfnMS2T8gB2231Esp1/maCWd8vTG4OuShw==} + + '@zxcvbn-ts/language-common@3.0.4': + resolution: {integrity: sha512-viSNNnRYtc7ULXzxrQIVUNwHAPSXRtoIwy/Tq4XQQdIknBzw4vz36lQLF6mvhMlTIlpjoN/Z1GFu/fwiAlUSsw==} + abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -2664,10 +3703,25 @@ packages: resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} engines: {node: ^18.17.0 || >=20.5.0} + abitype@1.2.3: + resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -2707,9 +3761,23 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + alien-signals@2.0.6: + resolution: {integrity: sha512-P3TxJSe31bUHBiblg59oU1PpaWPtmxF9GhJ/cB7OkgJ0qN/ifFSKUI25/v8ZhsT+lIG6ac8DpTOplXxORX6F3Q==} + alien-signals@3.0.3: resolution: {integrity: sha512-2JXjom6R7ZwrISpUphLhf4htUq1aKRCennTJ6u9kFfr3sLmC9+I4CxxVi+McoFnIg+p1HnVrfLT/iCt4Dlz//Q==} + anser@1.4.10: + resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2718,10 +3786,18 @@ packages: resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + ansi-styles@6.2.3: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} @@ -2730,6 +3806,9 @@ packages: resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} engines: {node: '>=14'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -2772,6 +3851,12 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This package is no longer supported. + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2779,6 +3864,9 @@ packages: resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} engines: {node: '>=10'} + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} @@ -2799,6 +3887,9 @@ packages: resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} engines: {node: '>=0.12.0'} + async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} @@ -2830,6 +3921,77 @@ packages: react-native-b4a: optional: true + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + + babel-plugin-polyfill-corejs2@0.4.15: + resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.13.0: + resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.6: + resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-react-compiler@1.0.0: + resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} + + babel-plugin-react-native-web@0.21.2: + resolution: {integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==} + + babel-plugin-syntax-hermes-parser@0.29.1: + resolution: {integrity: sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==} + + babel-plugin-syntax-hermes-parser@0.32.0: + resolution: {integrity: sha512-m5HthL++AbyeEA2FcdwOLfVFvWYECOBObLHNqdR8ceY4TsEdn4LdX2oTvbB2QJSSElE2AWA/b2MXZ/PF/CqLZg==} + + babel-plugin-transform-flow-enums@0.0.2: + resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} + + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 + + babel-preset-expo@54.0.10: + resolution: {integrity: sha512-wTt7POavLFypLcPW/uC5v8y+mtQKDJiyGLzYCjqr9tx0Qc3vCXcDKk1iCFIj/++Iy5CWhhTflEa7VvVPNWeCfw==} + peerDependencies: + '@babel/runtime': ^7.20.0 + expo: '*' + react-refresh: '>=0.14.0 <1.0.0' + peerDependenciesMeta: + '@babel/runtime': + optional: true + expo: + optional: true + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2845,6 +4007,15 @@ packages: bare-abort-controller: optional: true + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + + base-x@3.0.11: + resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} + + base-x@4.0.1: + resolution: {integrity: sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -2856,6 +4027,10 @@ packages: resolution: {integrity: sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==} hasBin: true + better-opn@3.0.2: + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} + big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} @@ -2879,6 +4054,9 @@ packages: bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + bn.js@5.2.2: + resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -2886,6 +4064,16 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + + bplist-creator@0.1.0: + resolution: {integrity: sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==} + + bplist-parser@0.3.1: + resolution: {integrity: sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==} + engines: {node: '>= 5.10.0'} + bplist-parser@0.3.2: resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} engines: {node: '>= 5.10.0'} @@ -2904,6 +4092,9 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + browser-tabs-lock@1.3.0: + resolution: {integrity: sha512-g6nHaobTiT0eMZ7jh16YpD2kcjAp+PInbiVq3M1x6KKaEIVhT4v9oURNIpZLOZ3LQbQ3XYfNhMAb/9hzNLIWrw==} + browserslist@4.27.0: resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -2914,6 +4105,15 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -2930,6 +4130,10 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bufferutil@4.1.0: + resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==} + engines: {node: '>=6.14.2'} + builder-util-runtime@9.2.10: resolution: {integrity: sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==} engines: {node: '>=12.0.0'} @@ -2941,6 +4145,10 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + c12@3.3.1: resolution: {integrity: sha512-LcWQ01LT9tkoUINHgpIOv3mMs+Abv7oVCrtpMRi1PaapVEpWoMga5WuT7/DqFTu7URP9ftbOmimNw1KNIGh9DQ==} peerDependencies: @@ -2981,6 +4189,14 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} @@ -2990,10 +4206,18 @@ packages: caniuse-lite@1.0.30001762: resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -3014,9 +4238,20 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} + chrome-launcher@0.15.2: + resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} + engines: {node: '>=12.13.0'} + hasBin: true + + chromium-edge-launcher@0.2.0: + resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==} + chromium-pickle-js@0.2.0: resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -3031,6 +4266,10 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -3047,6 +4286,9 @@ packages: resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} engines: {node: '>=18'} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3058,6 +4300,10 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -3071,10 +4317,16 @@ packages: engines: {node: '>= 14.15.0'} hasBin: true + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -3097,9 +4349,25 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + commander@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} + + commander@14.0.1: + resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} + engines: {node: '>=20'} + + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} + engines: {node: '>=20'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -3126,6 +4394,14 @@ packages: resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} engines: {node: '>= 14'} + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} + engines: {node: '>= 0.8.0'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -3143,6 +4419,10 @@ packages: config-file-ts@0.2.8-rc1: resolution: {integrity: sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==} + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -3150,6 +4430,9 @@ packages: console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -3170,12 +4453,25 @@ packages: copy-paste@2.2.0: resolution: {integrity: sha512-jqSL4r9DSeiIvJZStLzY/sMLt9ToTM7RsK237lYOTG+KcbQJHGala3R1TUpa8h1p9adswVgIdV4qGbseVhL4lg==} + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + + core-js-compat@3.48.0: + resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} + + core-js@3.41.0: + resolution: {integrity: sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==} + core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -3206,6 +4502,13 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + css-declaration-sorter@7.3.0: resolution: {integrity: sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==} engines: {node: ^14 || ^16 || >=18} @@ -3287,6 +4590,31 @@ packages: sqlite3: optional: true + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -3296,6 +4624,10 @@ packages: supports-color: optional: true + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -3345,6 +4677,10 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -3367,6 +4703,10 @@ packages: destr@2.0.5: resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} @@ -3386,6 +4726,9 @@ packages: resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} engines: {node: '>=0.3.1'} + dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dir-compare@4.2.0: resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} @@ -3422,6 +4765,10 @@ packages: resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} engines: {node: '>=12'} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -3576,6 +4923,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} @@ -3598,6 +4949,10 @@ packages: resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==} engines: {node: '>=0.12'} + env-editor@0.4.2: + resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} + engines: {node: '>=8'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -3605,9 +4960,15 @@ packages: err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + errx@0.1.0: resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} @@ -3633,6 +4994,12 @@ packages: es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + esbuild-register@3.6.0: resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: @@ -3660,6 +5027,14 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -3738,6 +5113,16 @@ packages: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} + event-target-shim@6.0.2: + resolution: {integrity: sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==} + engines: {node: '>=10.13.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + events-universal@1.0.1: resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} @@ -3745,10 +5130,109 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + exec-async@2.2.0: + resolution: {integrity: sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==} + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + expo-application@7.0.8: + resolution: {integrity: sha512-qFGyxk7VJbrNOQWBbE09XUuGuvkOgFS9QfToaK2FdagM2aQ+x3CvGV2DuVgl/l4ZxPgIf3b/MNh9xHpwSwn74Q==} + peerDependencies: + expo: '*' + + expo-asset@12.0.12: + resolution: {integrity: sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + + expo-auth-session@7.0.10: + resolution: {integrity: sha512-XDnKkudvhHSKkZfJ+KkodM+anQcrxB71i+h0kKabdLa5YDXTQ81aC38KRc3TMqmnBDHAu0NpfbzEVd9WDFY3Qg==} + peerDependencies: + react: '*' + react-native: '*' + + expo-constants@18.0.13: + resolution: {integrity: sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==} + peerDependencies: + expo: '*' + react-native: '*' + + expo-crypto@15.0.8: + resolution: {integrity: sha512-aF7A914TB66WIlTJvl5J6/itejfY78O7dq3ibvFltL9vnTALJ/7LYHvLT4fwmx9yUNS6ekLBtDGWivFWnj2Fcw==} + peerDependencies: + expo: '*' + + expo-file-system@19.0.21: + resolution: {integrity: sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg==} + peerDependencies: + expo: '*' + react-native: '*' + + expo-font@14.0.11: + resolution: {integrity: sha512-ga0q61ny4s/kr4k8JX9hVH69exVSIfcIc19+qZ7gt71Mqtm7xy2c6kwsPTCyhBW2Ro5yXTT8EaZOpuRi35rHbg==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + + expo-keep-awake@15.0.8: + resolution: {integrity: sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ==} + peerDependencies: + expo: '*' + react: '*' + + expo-linking@8.0.11: + resolution: {integrity: sha512-+VSaNL5om3kOp/SSKO5qe6cFgfSIWnnQDSbA7XLs3ECkYzXRquk5unxNS3pg7eK5kNUmQ4kgLI7MhTggAEUBLA==} + peerDependencies: + react: '*' + react-native: '*' + + expo-modules-autolinking@3.0.24: + resolution: {integrity: sha512-TP+6HTwhL7orDvsz2VzauyQlXJcAWyU3ANsZ7JGL4DQu8XaZv/A41ZchbtAYLfozNA2Ya1Hzmhx65hXryBMjaQ==} + hasBin: true + + expo-modules-core@3.0.29: + resolution: {integrity: sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q==} + peerDependencies: + react: '*' + react-native: '*' + + expo-secure-store@15.0.8: + resolution: {integrity: sha512-lHnzvRajBu4u+P99+0GEMijQMFCOYpWRO4dWsXSuMt77+THPIGjzNvVKrGSl6mMrLsfVaKL8BpwYZLGlgA+zAw==} + peerDependencies: + expo: '*' + + expo-server@1.0.5: + resolution: {integrity: sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA==} + engines: {node: '>=20.16.0'} + + expo-web-browser@15.0.10: + resolution: {integrity: sha512-fvDhW4bhmXAeWFNFiInmsGCK83PAqAcQaFyp/3pE/jbdKmFKoRCWr46uZGIfN4msLK/OODhaQ/+US7GSJNDHJg==} + peerDependencies: + expo: '*' + react-native: '*' + + expo@54.0.33: + resolution: {integrity: sha512-3yOEfAKqo+gqHcV8vKcnq0uA5zxlohnhA3fu4G43likN8ct5ZZ3LjAh9wDdKteEkoad3tFPvwxmXW711S5OHUw==} + hasBin: true + peerDependencies: + '@expo/dom-webview': '*' + '@expo/metro-runtime': '*' + react: '*' + react-native: '*' + react-native-webview: '*' + peerDependenciesMeta: + '@expo/dom-webview': + optional: true + '@expo/metro-runtime': + optional: true + react-native-webview: + optional: true + exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} @@ -3767,6 +5251,10 @@ packages: resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} engines: {'0': node >=0.6.0} + eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3789,9 +5277,27 @@ packages: fast-sha256@1.3.0: resolution: {integrity: sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==} + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fb-dotslash@0.5.8: + resolution: {integrity: sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA==} + engines: {node: '>=20'} + hasBin: true + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -3818,6 +5324,17 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -3829,6 +5346,9 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flow-enums-runtime@0.0.6: + resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} @@ -3838,6 +5358,9 @@ packages: debug: optional: true + fontfaceobserver@2.3.0: + resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} + foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -3849,6 +5372,14 @@ packages: fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + freeport-async@2.0.0: + resolution: {integrity: sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==} + engines: {node: '>=8'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + fresh@2.0.0: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} @@ -3908,6 +5439,10 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + get-port-please@3.2.0: resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} @@ -3926,6 +5461,10 @@ packages: get-tsconfig@4.13.0: resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} + getenv@2.0.0: + resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} + engines: {node: '>=6'} + giget@2.0.0: resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} hasBin: true @@ -3972,6 +5511,10 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} + global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -4002,6 +5545,10 @@ packages: h3@1.15.4: resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -4024,6 +5571,24 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hermes-compiler@0.0.0: + resolution: {integrity: sha512-boVFutx6ME/Km2mB6vvsQcdnazEYYI/jV1pomx1wcFUG/EVqTkr5CU0CW9bKipOA/8Hyu3NYwW3THg2Q1kNCfA==} + + hermes-estree@0.29.1: + resolution: {integrity: sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==} + + hermes-estree@0.32.0: + resolution: {integrity: sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==} + + hermes-parser@0.29.1: + resolution: {integrity: sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==} + + hermes-parser@0.32.0: + resolution: {integrity: sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -4031,6 +5596,10 @@ packages: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} @@ -4038,6 +5607,10 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -4085,6 +5658,9 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -4099,6 +5675,11 @@ packages: image-meta@0.2.2: resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} + image-size@1.2.1: + resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} + engines: {node: '>=16.x'} + hasBin: true + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -4131,6 +5712,15 @@ packages: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + input-otp@1.4.2: + resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ioredis@5.8.2: resolution: {integrity: sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==} engines: {node: '>=12.22.0'} @@ -4142,6 +5732,9 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -4203,6 +5796,10 @@ packages: resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} engines: {node: '>=12'} + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} @@ -4255,6 +5852,24 @@ packages: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + + isows@1.0.7: + resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} + peerDependencies: + ws: '*' + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -4267,6 +5882,50 @@ packages: engines: {node: '>=10'} hasBin: true + jayson@4.3.0: + resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==} + engines: {node: '>=8'} + hasBin: true + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jimp-compact@0.16.1: + resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==} + jiti@2.6.1: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true @@ -4275,6 +5934,9 @@ packages: resolution: {integrity: sha512-RuCOQMIt78LWnktPoeBL0GErkNaJPTBGcYuyaBvUOQSpcpcLfWrHPPihYdOGbV5pam9VTWbeoF7TsGiHugcjGA==} engines: {node: '>= 20'} + js-base64@3.7.8: + resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -4285,10 +5947,17 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true + jsc-safe-url@0.2.4: + resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -4297,6 +5966,9 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -4346,6 +6018,10 @@ packages: resolution: {integrity: sha512-3BeXMoiOhpOwu62CiVpO6lxfq4eS6KMYfQdMsN/2kUCRNuF2YiEr7u0HLHaQU+O4Xu8YXE3bHVkwaQ85i72EuA==} engines: {node: '>=20.0.0'} + lan-network@0.1.7: + resolution: {integrity: sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==} + hasBin: true + launch-editor@2.12.0: resolution: {integrity: sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==} @@ -4356,10 +6032,17 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lighthouse-logger@1.4.2: + resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + lightningcss-android-arm64@1.30.2: resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} engines: {node: '>= 12.0.0'} @@ -4434,6 +6117,9 @@ packages: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + listhen@1.9.0: resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} hasBin: true @@ -4442,10 +6128,17 @@ packages: resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} engines: {node: '>=14'} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.defaults@4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} @@ -4467,6 +6160,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} @@ -4476,10 +6172,18 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} + engines: {node: '>=4'} + log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + lowercase-keys@2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} @@ -4531,6 +6235,9 @@ packages: resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + marked@14.0.0: resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} engines: {node: '>= 18'} @@ -4541,6 +6248,9 @@ packages: engines: {node: '>= 20'} hasBin: true + marky@1.3.0: + resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + matcher@3.0.0: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} @@ -4558,9 +6268,16 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + memory-stream@1.0.0: resolution: {integrity: sha512-Wm13VcsPIMdG96dzILfij09PvuS3APtcKNh7M28FsCA/w6+1mjR7hhPmfFNoilX9xU7wTdhsH5lJAm6XNzdtww==} + merge-options@3.0.4: + resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} + engines: {node: '>=10'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -4568,6 +6285,64 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + metro-babel-transformer@0.83.3: + resolution: {integrity: sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==} + engines: {node: '>=20.19.4'} + + metro-cache-key@0.83.3: + resolution: {integrity: sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==} + engines: {node: '>=20.19.4'} + + metro-cache@0.83.3: + resolution: {integrity: sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==} + engines: {node: '>=20.19.4'} + + metro-config@0.83.3: + resolution: {integrity: sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==} + engines: {node: '>=20.19.4'} + + metro-core@0.83.3: + resolution: {integrity: sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==} + engines: {node: '>=20.19.4'} + + metro-file-map@0.83.3: + resolution: {integrity: sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==} + engines: {node: '>=20.19.4'} + + metro-minify-terser@0.83.3: + resolution: {integrity: sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==} + engines: {node: '>=20.19.4'} + + metro-resolver@0.83.3: + resolution: {integrity: sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==} + engines: {node: '>=20.19.4'} + + metro-runtime@0.83.3: + resolution: {integrity: sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==} + engines: {node: '>=20.19.4'} + + metro-source-map@0.83.3: + resolution: {integrity: sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==} + engines: {node: '>=20.19.4'} + + metro-symbolicate@0.83.3: + resolution: {integrity: sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==} + engines: {node: '>=20.19.4'} + hasBin: true + + metro-transform-plugins@0.83.3: + resolution: {integrity: sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==} + engines: {node: '>=20.19.4'} + + metro-transform-worker@0.83.3: + resolution: {integrity: sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==} + engines: {node: '>=20.19.4'} + + metro@0.83.3: + resolution: {integrity: sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==} + engines: {node: '>=20.19.4'} + hasBin: true + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -4588,6 +6363,11 @@ packages: resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} engines: {node: '>= 0.6'} + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + mime@2.6.0: resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} engines: {node: '>=4.0.0'} @@ -4603,6 +6383,10 @@ packages: engines: {node: '>=16'} hasBin: true + mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4702,12 +6486,21 @@ packages: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4729,10 +6522,17 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + negotiator@0.6.4: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} + nested-error-stacks@2.0.1: + resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==} + nitropack@2.12.9: resolution: {integrity: sha512-t6qqNBn2UDGMWogQuORjbL2UPevB8PvIPsPHmqvWpeGOlPr4P8Oc5oA8t3wFwGmaolM2M/s2SwT23nx9yARmOg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4779,6 +6579,10 @@ packages: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} + node-forge@1.3.3: + resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} + engines: {node: '>= 6.13.0'} + node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true @@ -4788,6 +6592,9 @@ packages: engines: {node: ^12.13 || ^14.13 || >=16} hasBin: true + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + node-mock-http@1.0.3: resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} @@ -4815,6 +6622,10 @@ packages: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} + npm-package-arg@11.0.3: + resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} + engines: {node: ^16.14.0 || >=18.0.0} + npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4831,6 +6642,9 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nullthrows@1.1.1: + resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} + nuxi@3.29.3: resolution: {integrity: sha512-+/IHFCXT2t1XO5dQdpVyV/eU12DrVOCkKKwrDv9YwHIL4pXMyTDxIGMfU995YWjLjRb7SUsfNLfGV4wWCFdg0A==} engines: {node: ^16.10.0 || >=18.0.0} @@ -4865,6 +6679,14 @@ packages: engines: {node: ^14.16.0 || >=16.10.0} hasBin: true + ob1@0.83.3: + resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==} + engines: {node: '>=20.19.4'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4882,13 +6704,25 @@ packages: resolution: {integrity: sha512-P7o0hkMahOhjb1niG28vLNAXsJrRcfpJvYWcTmPt/Tf4xedcF2PA1E9++N1tufY8/vIsaiJgHhjQp53hJCe+zw==} engines: {node: '>=20'} + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + engines: {node: '>= 0.8'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -4901,6 +6735,10 @@ packages: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -4909,10 +6747,30 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + ora@3.4.0: + resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} + engines: {node: '>=6'} + ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} + ox@0.12.1: + resolution: {integrity: sha512-uU0llpthaaw4UJoXlseCyBHmQ3bLrQmz9rRLIAUHqv46uHuae9SE+ukYBRIPVCnlEnHKuWjDUcDFHWx9gbGNoA==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + ox@0.6.9: + resolution: {integrity: sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + oxc-minify@0.102.0: resolution: {integrity: sha512-FphAHDyTCNepQbiQTSyWFMbNc9zdUmj1WBsoLwvZhWm7rEe/IeIKYKRhy75lWOjwFsi5/i4Qucq43hgs3n2Exw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4951,10 +6809,18 @@ packages: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -4967,6 +6833,10 @@ packages: resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -4977,9 +6847,17 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + parse-path@7.1.0: resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} + parse-png@2.1.0: + resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} + engines: {node: '>=10'} + parse-url@9.2.0: resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} engines: {node: '>=14.13.0'} @@ -5018,6 +6896,10 @@ packages: resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} engines: {node: 20 || >=22} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + path-type@6.0.0: resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} engines: {node: '>=18'} @@ -5082,6 +6964,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -5095,6 +6981,10 @@ packages: typescript: optional: true + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + pkg-prebuilds@0.2.1: resolution: {integrity: sha512-FdOlDiRqRL7i9aYzQflhGWCoiJf/8u6Qgzq48gKsRDYejtfjvGb1U5QGSzllcqpNg2a8Swx/9fMgtuVefwU+zw==} engines: {node: '>= 14.15.0'} @@ -5110,6 +7000,14 @@ packages: resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} engines: {node: '>=10.4.0'} + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + + pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + postcss-calc@10.1.1: resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} engines: {node: ^18.12 || ^20.9 || >=22.0} @@ -5279,6 +7177,10 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -5299,14 +7201,32 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} + preact@10.24.2: + resolution: {integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==} + + preact@10.28.3: + resolution: {integrity: sha512-tCmoRkPQLpBeWzpmbhryairGnhW9tKV6c6gr/w+RhoRoKEJwsjzipwp//1oCpGPOchvSLaAPlpcJi9MwMmoPyA==} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + pretty-bytes@7.1.0: resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} engines: {node: '>=20'} + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -5330,6 +7250,9 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} + promise@8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -5347,12 +7270,29 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qrcode-terminal@0.11.0: + resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} + hasBin: true + + qrcode.react@4.2.0: + resolution: {integrity: sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + qrcode@1.5.4: + resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} + engines: {node: '>=10.13.0'} + hasBin: true + quansync@0.2.11: resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -5374,6 +7314,9 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-devtools-core@6.1.5: + resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==} + react-dom@19.2.3: resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} peerDependencies: @@ -5384,10 +7327,45 @@ packages: peerDependencies: react: ^19.2.4 + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-native-url-polyfill@2.0.0: + resolution: {integrity: sha512-My330Do7/DvKnEvwQc0WdcBnFPploYKp9CYlefDXzIdEaA+PAhDYllkvGeEroEzvc4Kzzj2O4yVdz8v6fjRvhA==} + peerDependencies: + react-native: '*' + + react-native-webrtc@124.0.7: + resolution: {integrity: sha512-gnXPdbUS8IkKHq9WNaWptW/yy5s6nMyI6cNn90LXdobPVCgYSk6NA2uUGdT4c4J14BRgaFA95F+cR28tUPkMVA==} + peerDependencies: + react-native: '>=0.60.0' + + react-native@0.82.0: + resolution: {integrity: sha512-E+sBFDgpwzoZzPn86gSGRBGLnS9Q6r4y6Xk5I57/QbkqkDOxmQb/bzQq/oCdUCdHImKiow2ldC3WJfnvAKIfzg==} + engines: {node: '>= 20.19.4'} + hasBin: true + peerDependencies: + '@types/react': ^19.1.1 + react: ^19.1.1 + peerDependenciesMeta: + '@types/react': + optional: true + + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + react-refresh@0.18.0: resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} engines: {node: '>=0.10.0'} + react@19.2.0: + resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==} + engines: {node: '>=0.10.0'} + react@19.2.3: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} @@ -5430,10 +7408,34 @@ packages: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + hasBin: true + reka-ui@2.6.0: resolution: {integrity: sha512-NrGMKrABD97l890mFS3TNUzB0BLUfbL3hh0NjcJRIUSUljb288bx3Mzo31nOyUcdiiW0HqFGXJwyCBh9cWgb0w==} peerDependencies: @@ -5443,6 +7445,17 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + requireg@0.2.2: + resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==} + engines: {node: '>= 4.0.0'} + resedit@1.7.2: resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} engines: {node: '>=12', npm: '>=6'} @@ -5458,17 +7471,35 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve-workspace-root@2.0.1: + resolution: {integrity: sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==} + + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + resolve@1.22.11: resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} hasBin: true + resolve@1.7.1: + resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} + responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -5516,6 +7547,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rpc-websockets@9.3.3: + resolution: {integrity: sha512-OkCsBBzrwxX4DoSv4Zlf9DgXKRB0MzVfCFg5MC+fNnf9ktr4SMWjsri0VNZQlDbCnGcImT6KNEv4ZoxktQhdpA==} + run-applescript@7.1.0: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} @@ -5544,6 +7578,9 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} @@ -5562,10 +7599,18 @@ packages: engines: {node: '>=10'} hasBin: true + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + engines: {node: '>= 0.8.0'} + send@1.2.0: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} + serialize-error@2.1.0: + resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} + engines: {node: '>=0.10.0'} + serialize-error@7.0.1: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} engines: {node: '>=10'} @@ -5580,6 +7625,10 @@ packages: serve-placeholder@2.0.2: resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + engines: {node: '>= 0.8.0'} + serve-static@2.2.0: resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} engines: {node: '>= 18'} @@ -5615,6 +7664,9 @@ packages: simple-git@3.30.0: resolution: {integrity: sha512-q6lxyDsCmEal/MEGhP1aVyQ3oxnagGlBDOVSIB4XUVLl1iZh0Pah6ebC9V4xBap/RfgP2WlI8EKs0WS0rMEJHg==} + simple-plist@1.3.1: + resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==} + simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} @@ -5626,6 +7678,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} @@ -5638,6 +7694,10 @@ packages: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} + slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -5660,6 +7720,10 @@ packages: source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -5676,6 +7740,9 @@ packages: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} @@ -5688,6 +7755,17 @@ packages: resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-parser@0.1.11: + resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} + engines: {node: '>=6'} + standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} @@ -5698,6 +7776,10 @@ packages: resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} engines: {node: '>= 6'} + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -5709,6 +7791,16 @@ packages: std-env@3.10.0: resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + stream-buffers@2.2.0: + resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} + engines: {node: '>= 0.10.0'} + + stream-chain@2.2.5: + resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} + + stream-json@1.9.1: + resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} + streamx@2.23.0: resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} @@ -5726,6 +7818,10 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -5752,12 +7848,23 @@ packages: structured-clone-es@1.0.0: resolution: {integrity: sha512-FL8EeKFFyNQv5cMnXI31CIMCsFarSVI2bF0U0ImeNE3g/F1IvJQyqzOXxPBRXiwQfyBTlbNe88jh1jFW0O/jiQ==} + structured-headers@0.4.1: + resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} + stylehacks@7.0.6: resolution: {integrity: sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -5766,10 +7873,18 @@ packages: resolution: {integrity: sha512-zWPTX96LVsA/eVYnqOM2+ofcdPqdS1dAF1LN4TS2/MWuUpfitd9ctTa87wt4xrYnZnkLtS69xpBdSxVBP5Rm6w==} engines: {node: '>=16'} + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + supports-color@10.2.2: resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -5778,6 +7893,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -5801,6 +7920,9 @@ packages: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + tagged-tag@1.0.0: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} @@ -5835,17 +7957,42 @@ packages: resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} engines: {node: '>=18'} + temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + temp-file@3.4.0: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + terser@5.44.0: resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} engines: {node: '>=10'} hasBin: true + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + throat@5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} @@ -5870,10 +8017,16 @@ packages: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -5902,6 +8055,9 @@ packages: peerDependencies: typescript: '>=4.8.4' + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -5917,10 +8073,22 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + type-fest@5.1.0: resolution: {integrity: sha512-wQ531tuWvB6oK+pchHIu5lHe5f5wpSCqB8Kf4dWQRbOYc9HTge7JL0G4Qd44bh6QuJCccIzL3bugb8GI0MwHrg==} engines: {node: '>=20'} @@ -5951,6 +8119,10 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici@6.23.0: + resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} + engines: {node: '>=18.17'} + unenv@2.0.0-rc.23: resolution: {integrity: sha512-NeOb/HbW2OwOzYaV21MewVQYfzlSwG0kVUB74RyV0gEIP44M5DsYTK9e7jDcekB/3YU+pfNWniZj+r4M/aejyQ==} @@ -5960,6 +8132,22 @@ packages: unhead@2.0.19: resolution: {integrity: sha512-gEEjkV11Aj+rBnY6wnRfsFtF2RxKOLaPN4i+Gx3UhBxnszvV6ApSNZbGk7WKyy/lErQ6ekPN63qdFL7sa1leow==} + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} + engines: {node: '>=4'} + unicorn-magic@0.3.0: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} @@ -5976,6 +8164,10 @@ packages: resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -5984,6 +8176,10 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + unplugin-utils@0.2.5: resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==} engines: {node: '>=18.12.0'} @@ -6121,16 +8317,48 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + utf8-byte-length@1.0.5: resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@7.0.3: + resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==} + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + verror@1.10.1: resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} engines: {node: '>=0.6.0'} + viem@2.45.3: + resolution: {integrity: sha512-axOD7rIbGiDHHA1MHKmpqqTz3CMCw7YpE/FVypddQMXL5i364VkNZh9JeEJH17NO484LaZUOMueo35IXyL76Mw==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + vite-dev-rpc@1.1.0: resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==} peerDependencies: @@ -6250,6 +8478,9 @@ packages: yaml: optional: true + vlq@1.0.1: + resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} + vscode-uri@3.1.0: resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} @@ -6308,18 +8539,35 @@ packages: engines: {node: '>=12.0.0'} hasBin: true + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + + whatwg-url-without-unicode@8.0.0-3: + resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==} + engines: {node: '>=10'} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -6333,10 +8581,17 @@ packages: wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + wonka@6.3.5: + resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -6348,6 +8603,33 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ws@6.2.3: + resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.18.3: resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} @@ -6364,6 +8646,14 @@ packages: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} + xcode@3.0.1: + resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} + engines: {node: '>=10.0.0'} + + xml2js@0.6.0: + resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} + engines: {node: '>=4.0.0'} + xml2js@0.6.2: resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} engines: {node: '>=4.0.0'} @@ -6380,6 +8670,9 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -6398,15 +8691,27 @@ packages: resolution: {integrity: sha512-odxVsHAkZYYglR30aPYRY4nUGJnoJ2y1ww2HDvZALo0BDETv9kWbi16J52eHs+PWRNmF4ub6nZqfVOeesOvntg==} engines: {node: ^14.17.0 || >=16.0.0} + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + yaml@2.8.2: resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} engines: {node: '>= 14.6'} hasBin: true + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -6438,10 +8743,36 @@ packages: zod@4.3.5: resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} + zustand@5.0.3: + resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + snapshots: 7zip-bin@5.2.0: {} + '@0no-co/graphql.web@1.2.0': {} + + '@adraffy/ens-normalize@1.11.1': {} + + '@babel/code-frame@7.10.4': + dependencies: + '@babel/highlight': 7.25.9 + '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.28.5 @@ -6547,6 +8878,50 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.5 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + debug: 4.4.3 + lodash.debounce: 4.0.8 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + '@babel/helper-globals@7.28.0': {} '@babel/helper-member-expression-to-functions@7.28.5': @@ -6594,6 +8969,17 @@ snapshots: '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6603,6 +8989,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: '@babel/traverse': 7.28.5 @@ -6616,6 +9020,14 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-wrap-function@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 @@ -6626,6 +9038,13 @@ snapshots: '@babel/template': 7.28.6 '@babel/types': 7.29.0 + '@babel/highlight@7.25.9': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/parser@7.28.5': dependencies: '@babel/types': 7.28.5 @@ -6634,16 +9053,330 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) + + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -6654,6 +9387,58 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6665,6 +9450,48 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/preset-react@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.28.6': {} + '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 @@ -6711,10 +9538,31 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@bomb.sh/tab@0.0.11(cac@6.7.14)(citty@0.1.6)': + '@base-org/account@2.0.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(zod@4.3.5)': + dependencies: + '@noble/hashes': 1.4.0 + clsx: 1.2.1 + eventemitter3: 5.0.1 + idb-keyval: 6.2.1 + ox: 0.6.9(typescript@5.9.3)(zod@4.3.5) + preact: 10.24.2 + viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.5) + zustand: 5.0.3(@types/react@19.2.14)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) + transitivePeerDependencies: + - '@types/react' + - bufferutil + - immer + - react + - typescript + - use-sync-external-store + - utf-8-validate + - zod + + '@bomb.sh/tab@0.0.11(cac@6.7.14)(citty@0.1.6)(commander@13.1.0)': optionalDependencies: cac: 6.7.14 citty: 0.1.6 + commander: 13.1.0 '@capacitor/android@7.5.0(@capacitor/core@7.5.0)': dependencies: @@ -6776,6 +9624,88 @@ snapshots: - react - react-dom + '@clerk/clerk-expo@2.19.22(dbd737010a4643919cae86f66df35462)': + dependencies: + '@clerk/clerk-js': 5.122.1(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(@types/react@19.2.14)(bs58@5.0.0)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@19.2.4(react@19.2.0))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(zod@4.3.5) + '@clerk/clerk-react': 5.60.0(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + '@clerk/shared': 3.44.0(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + '@clerk/types': 4.101.14(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + base-64: 1.0.0 + expo-auth-session: 7.0.10(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + expo-web-browser: 15.0.10(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + react: 19.2.0 + react-dom: 19.2.4(react@19.2.0) + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + react-native-url-polyfill: 2.0.0(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + tslib: 2.8.1 + optionalDependencies: + expo-crypto: 15.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)) + expo-secure-store: 15.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)) + transitivePeerDependencies: + - '@solana/web3.js' + - '@types/react' + - bs58 + - bufferutil + - fastestsmallesttextencoderdecoder + - immer + - supports-color + - typescript + - use-sync-external-store + - utf-8-validate + - zod + + '@clerk/clerk-js@5.122.1(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(@types/react@19.2.14)(bs58@5.0.0)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@19.2.4(react@19.2.0))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(zod@4.3.5)': + dependencies: + '@base-org/account': 2.0.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(zod@4.3.5) + '@clerk/localizations': 3.35.3(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + '@clerk/shared': 3.44.0(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + '@coinbase/wallet-sdk': 4.3.0 + '@emotion/cache': 11.11.0 + '@emotion/react': 11.11.1(@types/react@19.2.14)(react@19.2.0) + '@floating-ui/react': 0.27.12(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + '@floating-ui/react-dom': 2.1.7(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + '@formkit/auto-animate': 0.8.4 + '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/wallet-adapter-react': 0.15.39(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3) + '@solana/wallet-standard': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0) + '@stripe/stripe-js': 5.6.0 + '@swc/helpers': 0.5.17 + '@tanstack/query-core': 5.87.4 + '@wallet-standard/core': 1.1.1 + '@zxcvbn-ts/core': 3.0.4 + '@zxcvbn-ts/language-common': 3.0.4 + alien-signals: 2.0.6 + browser-tabs-lock: 1.3.0 + copy-to-clipboard: 3.3.3 + core-js: 3.41.0 + crypto-js: 4.2.0 + dequal: 2.0.3 + input-otp: 1.4.2(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + qrcode.react: 4.2.0(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.4(react@19.2.0) + regenerator-runtime: 0.14.1 + transitivePeerDependencies: + - '@solana/web3.js' + - '@types/react' + - bs58 + - bufferutil + - fastestsmallesttextencoderdecoder + - immer + - react-native + - supports-color + - typescript + - use-sync-external-store + - utf-8-validate + - zod + + '@clerk/clerk-react@5.60.0(react-dom@19.2.4(react@19.2.0))(react@19.2.0)': + dependencies: + '@clerk/shared': 3.44.0(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.4(react@19.2.0) + tslib: 2.8.1 + '@clerk/localizations@3.34.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: '@clerk/types': 4.101.10(react-dom@19.2.4(react@19.2.3))(react@19.2.3) @@ -6783,6 +9713,13 @@ snapshots: - react - react-dom + '@clerk/localizations@3.35.3(react-dom@19.2.4(react@19.2.0))(react@19.2.0)': + dependencies: + '@clerk/types': 4.101.14(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + transitivePeerDependencies: + - react + - react-dom + '@clerk/nuxt@1.13.10(magicast@0.5.0)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(vue@3.5.26(typescript@5.9.3))': dependencies: '@clerk/backend': 2.29.0(react-dom@19.2.4(react@19.2.3))(react@19.2.3) @@ -6822,6 +9759,18 @@ snapshots: react: 19.2.3 react-dom: 19.2.4(react@19.2.3) + '@clerk/shared@3.44.0(react-dom@19.2.4(react@19.2.0))(react@19.2.0)': + dependencies: + csstype: 3.1.3 + dequal: 2.0.3 + glob-to-regexp: 0.4.1 + js-cookie: 3.0.5 + std-env: 3.10.0 + swr: 2.3.4(react@19.2.0) + optionalDependencies: + react: 19.2.0 + react-dom: 19.2.4(react@19.2.0) + '@clerk/themes@2.4.46(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: '@clerk/shared': 3.41.1(react-dom@19.2.4(react@19.2.3))(react@19.2.3) @@ -6837,6 +9786,13 @@ snapshots: - react - react-dom + '@clerk/types@4.101.14(react-dom@19.2.4(react@19.2.0))(react@19.2.0)': + dependencies: + '@clerk/shared': 3.44.0(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + transitivePeerDependencies: + - react + - react-dom + '@clerk/types@4.101.9(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: '@clerk/shared': 3.41.1(react-dom@19.2.4(react@19.2.3))(react@19.2.3) @@ -6857,6 +9813,13 @@ snapshots: dependencies: mime: 3.0.0 + '@coinbase/wallet-sdk@4.3.0': + dependencies: + '@noble/hashes': 1.8.0 + clsx: 1.2.1 + eventemitter3: 5.0.4 + preact: 10.28.3 + '@develar/schema-utils@2.6.5': dependencies: ajv: 6.12.6 @@ -6974,6 +9937,72 @@ snapshots: tslib: 2.8.1 optional: true + '@emotion/babel-plugin@11.13.5': + dependencies: + '@babel/helper-module-imports': 7.28.6 + '@babel/runtime': 7.28.6 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.11.0': + dependencies: + '@emotion/memoize': 0.8.1 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.3.1 + stylis: 4.2.0 + + '@emotion/hash@0.9.2': {} + + '@emotion/memoize@0.8.1': {} + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.11.1(@types/react@19.2.14)(react@19.2.0)': + dependencies: + '@babel/runtime': 7.28.6 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.0) + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.3.1 + hoist-non-react-statics: 3.3.2 + react: 19.2.0 + optionalDependencies: + '@types/react': 19.2.14 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.3': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.2 + csstype: 3.2.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/unitless@0.10.0': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.0)': + dependencies: + react: 19.2.0 + + '@emotion/utils@1.4.2': {} + + '@emotion/weak-memoize@0.3.1': {} + '@esbuild-kit/core-utils@3.3.2': dependencies: esbuild: 0.18.20 @@ -7252,15 +10281,324 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 + '@expo/cli@54.0.23(bufferutil@4.1.0)(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + dependencies: + '@0no-co/graphql.web': 1.2.0 + '@expo/code-signing-certificates': 0.0.6 + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/devcert': 1.2.1 + '@expo/env': 2.0.8 + '@expo/image-utils': 0.8.8 + '@expo/json-file': 10.0.8 + '@expo/metro': 54.2.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@expo/metro-config': 54.0.14(bufferutil@4.1.0)(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@expo/osascript': 2.3.8 + '@expo/package-manager': 1.9.10 + '@expo/plist': 0.4.8 + '@expo/prebuild-config': 54.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)) + '@expo/schema-utils': 0.1.8 + '@expo/spawn-async': 1.7.2 + '@expo/ws-tunnel': 1.0.6 + '@expo/xcpretty': 4.4.0 + '@react-native/dev-middleware': 0.81.5(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@urql/core': 5.2.0 + '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0) + accepts: 1.3.8 + arg: 5.0.2 + better-opn: 3.0.2 + bplist-creator: 0.1.0 + bplist-parser: 0.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + compression: 1.8.1 + connect: 3.7.0 + debug: 4.4.3 + env-editor: 0.4.2 + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + expo-server: 1.0.5 + freeport-async: 2.0.0 + getenv: 2.0.0 + glob: 13.0.3 + lan-network: 0.1.7 + minimatch: 9.0.5 + node-forge: 1.3.3 + npm-package-arg: 11.0.3 + ora: 3.4.0 + picomatch: 3.0.1 + pretty-bytes: 5.6.0 + pretty-format: 29.7.0 + progress: 2.0.3 + prompts: 2.4.2 + qrcode-terminal: 0.11.0 + require-from-string: 2.0.2 + requireg: 0.2.2 + resolve: 1.22.11 + resolve-from: 5.0.0 + resolve.exports: 2.0.3 + semver: 7.7.3 + send: 0.19.2 + slugify: 1.6.6 + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + structured-headers: 0.4.1 + tar: 7.5.7 + terminal-link: 2.1.1 + undici: 6.23.0 + wrap-ansi: 7.0.0 + ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + optionalDependencies: + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - graphql + - supports-color + - utf-8-validate + + '@expo/code-signing-certificates@0.0.6': + dependencies: + node-forge: 1.3.3 + + '@expo/config-plugins@54.0.4': + 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.4.3 + getenv: 2.0.0 + glob: 13.0.3 + resolve-from: 5.0.0 + semver: 7.7.3 + slash: 3.0.0 + slugify: 1.6.6 + xcode: 3.0.1 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color + + '@expo/config-types@54.0.10': {} + + '@expo/config@12.0.13': + dependencies: + '@babel/code-frame': 7.10.4 + '@expo/config-plugins': 54.0.4 + '@expo/config-types': 54.0.10 + '@expo/json-file': 10.0.8 + deepmerge: 4.3.1 + getenv: 2.0.0 + glob: 13.0.3 + require-from-string: 2.0.2 + resolve-from: 5.0.0 + resolve-workspace-root: 2.0.1 + semver: 7.7.3 + slugify: 1.6.6 + sucrase: 3.35.1 + transitivePeerDependencies: + - supports-color + + '@expo/devcert@1.2.1': + dependencies: + '@expo/sudo-prompt': 9.3.2 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + + '@expo/devtools@0.1.8(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)': + dependencies: + chalk: 4.1.2 + optionalDependencies: + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + + '@expo/env@2.0.8': + dependencies: + chalk: 4.1.2 + debug: 4.4.3 + dotenv: 16.4.7 + dotenv-expand: 11.0.7 + getenv: 2.0.0 + transitivePeerDependencies: + - supports-color + + '@expo/fingerprint@0.15.4': + dependencies: + '@expo/spawn-async': 1.7.2 + arg: 5.0.2 + chalk: 4.1.2 + debug: 4.4.3 + getenv: 2.0.0 + glob: 13.0.3 + ignore: 5.3.2 + minimatch: 9.0.5 + p-limit: 3.1.0 + resolve-from: 5.0.0 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + '@expo/image-utils@0.8.8': + dependencies: + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + getenv: 2.0.0 + jimp-compact: 0.16.1 + parse-png: 2.1.0 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + semver: 7.7.3 + temp-dir: 2.0.0 + unique-string: 2.0.0 + + '@expo/json-file@10.0.8': + dependencies: + '@babel/code-frame': 7.10.4 + json5: 2.2.3 + + '@expo/metro-config@54.0.14(bufferutil@4.1.0)(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@expo/config': 12.0.13 + '@expo/env': 2.0.8 + '@expo/json-file': 10.0.8 + '@expo/metro': 54.2.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@expo/spawn-async': 1.7.2 + browserslist: 4.28.1 + chalk: 4.1.2 + debug: 4.4.3 + dotenv: 16.4.7 + dotenv-expand: 11.0.7 + getenv: 2.0.0 + glob: 13.0.3 + hermes-parser: 0.29.1 + jsc-safe-url: 0.2.4 + lightningcss: 1.30.2 + minimatch: 9.0.5 + postcss: 8.4.49 + resolve-from: 5.0.0 + optionalDependencies: + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@expo/metro@54.2.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)': + dependencies: + metro: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + 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(bufferutil@4.1.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@expo/osascript@2.3.8': + dependencies: + '@expo/spawn-async': 1.7.2 + exec-async: 2.2.0 + + '@expo/package-manager@1.9.10': + dependencies: + '@expo/json-file': 10.0.8 + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + npm-package-arg: 11.0.3 + ora: 3.4.0 + resolve-workspace-root: 2.0.1 + + '@expo/plist@0.4.8': + dependencies: + '@xmldom/xmldom': 0.8.11 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + + '@expo/prebuild-config@54.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))': + dependencies: + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/config-types': 54.0.10 + '@expo/image-utils': 0.8.8 + '@expo/json-file': 10.0.8 + '@react-native/normalize-colors': 0.81.5 + debug: 4.4.3 + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + resolve-from: 5.0.0 + semver: 7.7.3 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color + + '@expo/schema-utils@0.1.8': {} + + '@expo/sdk-runtime-versions@1.0.0': {} + + '@expo/spawn-async@1.7.2': + dependencies: + cross-spawn: 7.0.6 + + '@expo/sudo-prompt@9.3.2': {} + + '@expo/vector-icons@15.0.3(expo-font@14.0.11(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)': + dependencies: + expo-font: 14.0.11(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + + '@expo/ws-tunnel@1.0.6': {} + + '@expo/xcpretty@4.4.0': + dependencies: + '@babel/code-frame': 7.29.0 + chalk: 4.1.2 + js-yaml: 4.1.1 + '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 + '@floating-ui/core@1.7.4': + dependencies: + '@floating-ui/utils': 0.2.10 + '@floating-ui/dom@1.7.4': dependencies: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 + '@floating-ui/dom@1.7.5': + dependencies: + '@floating-ui/core': 1.7.4 + '@floating-ui/utils': 0.2.10 + + '@floating-ui/react-dom@2.1.7(react-dom@19.2.4(react@19.2.0))(react@19.2.0)': + dependencies: + '@floating-ui/dom': 1.7.5 + react: 19.2.0 + react-dom: 19.2.4(react@19.2.0) + + '@floating-ui/react@0.27.12(react-dom@19.2.4(react@19.2.0))(react@19.2.0)': + dependencies: + '@floating-ui/react-dom': 2.1.7(react-dom@19.2.4(react@19.2.0))(react@19.2.0) + '@floating-ui/utils': 0.2.10 + react: 19.2.0 + react-dom: 19.2.4(react@19.2.0) + tabbable: 6.4.0 + '@floating-ui/utils@0.2.10': {} '@floating-ui/vue@1.1.9(vue@3.5.26(typescript@5.9.3))': @@ -7272,6 +10610,8 @@ snapshots: - '@vue/composition-api' - vue + '@formkit/auto-animate@0.8.4': {} + '@gar/promisify@1.1.3': {} '@hapi/address@5.1.1': @@ -7490,6 +10830,71 @@ snapshots: dependencies: minipass: 7.1.2 + '@isaacs/ttlcache@1.4.1': {} + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/create-cache-key-function@29.7.0': + dependencies: + '@jest/types': 29.6.3 + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 24.9.2 + jest-mock: 29.7.0 + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 24.9.2 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.10 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.29.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 24.9.2 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -7574,6 +10979,20 @@ snapshots: '@types/pg': 8.16.0 optional: true + '@noble/ciphers@1.3.0': {} + + '@noble/curves@1.9.1': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/curves@1.9.7': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/hashes@1.4.0': {} + + '@noble/hashes@1.8.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7596,9 +11015,9 @@ snapshots: mkdirp: 1.0.4 rimraf: 3.0.2 - '@nuxt/cli@3.32.0(cac@6.7.14)(magicast@0.5.0)': + '@nuxt/cli@3.32.0(cac@6.7.14)(commander@13.1.0)(magicast@0.5.0)': dependencies: - '@bomb.sh/tab': 0.0.11(cac@6.7.14)(citty@0.1.6) + '@bomb.sh/tab': 0.0.11(cac@6.7.14)(citty@0.1.6)(commander@13.1.0) '@clack/prompts': 1.0.0-alpha.9 c12: 3.3.3(magicast@0.5.0) citty: 0.1.6 @@ -7652,7 +11071,7 @@ snapshots: prompts: 2.4.2 semver: 7.7.3 - '@nuxt/devtools@3.1.1(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': + '@nuxt/devtools@3.1.1(bufferutil@4.1.0)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': dependencies: '@nuxt/devtools-kit': 3.1.1(magicast@0.5.1)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) '@nuxt/devtools-wizard': 3.1.1 @@ -7686,7 +11105,7 @@ snapshots: vite-plugin-inspect: 11.3.3(@nuxt/kit@4.2.2(magicast@0.5.0))(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) vite-plugin-vue-tracer: 1.2.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) which: 5.0.0 - ws: 8.18.3 + ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -7794,7 +11213,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/nitro-server@4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2)': + '@nuxt/nitro-server@4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.2.2(magicast@0.5.0) @@ -7811,15 +11230,15 @@ snapshots: impound: 1.0.0 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(xml2js@0.6.2) - nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) + nitropack: 2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(idb-keyval@6.2.1)(xml2js@0.6.2) + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) pathe: 2.0.3 pkg-types: 2.3.0 radix3: 1.1.2 std-env: 3.10.0 ufo: 1.6.1 unctx: 2.4.1 - unstorage: 1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(ioredis@5.8.2) + unstorage: 1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(idb-keyval@6.2.1)(ioredis@5.8.2) vue: 3.5.26(typescript@5.9.3) vue-bundle-renderer: 2.2.0 vue-devtools-stub: 0.1.0 @@ -7891,7 +11310,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/vite-builder@4.2.2(@types/node@24.9.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)': + '@nuxt/vite-builder@4.2.2(@types/node@24.9.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)': dependencies: '@nuxt/kit': 4.2.2(magicast@0.5.0) '@rollup/plugin-replace': 6.0.3(rollup@4.52.5) @@ -7911,7 +11330,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.0 mocked-exports: 0.1.1 - nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) pathe: 2.0.3 pkg-types: 2.3.0 postcss: 8.5.6 @@ -7959,7 +11378,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxtjs/i18n@10.2.1(@vue/compiler-dom@3.5.26)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(magicast@0.5.0)(rollup@4.52.5)(vue@3.5.26(typescript@5.9.3))': + '@nuxtjs/i18n@10.2.1(@vue/compiler-dom@3.5.26)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(magicast@0.5.0)(rollup@4.52.5)(vue@3.5.26(typescript@5.9.3))': dependencies: '@intlify/core': 11.2.8 '@intlify/h3': 0.7.4 @@ -7986,7 +11405,7 @@ snapshots: ufo: 1.6.1 unplugin: 2.3.11 unplugin-vue-router: 0.16.2(@vue/compiler-sfc@3.5.26)(vue-router@4.6.3(vue@3.5.26(typescript@5.9.3)))(vue@3.5.26(typescript@5.9.3)) - unstorage: 1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(ioredis@5.8.2) + unstorage: 1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(idb-keyval@6.2.1)(ioredis@5.8.2) vue-i18n: 11.2.8(vue@3.5.26(typescript@5.9.3)) vue-router: 4.6.3(vue@3.5.26(typescript@5.9.3)) transitivePeerDependencies: @@ -8400,6 +11819,169 @@ snapshots: '@poppinss/exception@1.2.2': {} + '@react-native-async-storage/async-storage@1.24.0(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))': + dependencies: + merge-options: 3.0.4 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + optional: true + + '@react-native/assets-registry@0.82.0': {} + + '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.29.0)': + dependencies: + '@babel/traverse': 7.29.0 + '@react-native/codegen': 0.81.5(@babel/core@7.29.0) + transitivePeerDependencies: + - '@babel/core' + - supports-color + + '@react-native/babel-preset@0.81.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/template': 7.28.6 + '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.29.0) + babel-plugin-syntax-hermes-parser: 0.29.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) + react-refresh: 0.14.2 + transitivePeerDependencies: + - supports-color + + '@react-native/codegen@0.81.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + glob: 7.2.3 + hermes-parser: 0.29.1 + invariant: 2.2.4 + nullthrows: 1.1.1 + yargs: 17.7.2 + + '@react-native/codegen@0.82.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + glob: 7.2.3 + hermes-parser: 0.32.0 + invariant: 2.2.4 + nullthrows: 1.1.1 + yargs: 17.7.2 + + '@react-native/community-cli-plugin@0.82.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)': + dependencies: + '@react-native/dev-middleware': 0.82.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + debug: 4.4.3 + invariant: 2.2.4 + metro: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-config: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-core: 0.83.3 + semver: 7.7.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/debugger-frontend@0.81.5': {} + + '@react-native/debugger-frontend@0.82.0': {} + + '@react-native/debugger-shell@0.82.0': + dependencies: + cross-spawn: 7.0.6 + fb-dotslash: 0.5.8 + + '@react-native/dev-middleware@0.81.5(bufferutil@4.1.0)(utf-8-validate@5.0.10)': + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.81.5 + chrome-launcher: 0.15.2 + chromium-edge-launcher: 0.2.0 + connect: 3.7.0 + debug: 4.4.3 + invariant: 2.2.4 + nullthrows: 1.1.1 + open: 7.4.2 + serve-static: 1.16.3 + ws: 6.2.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/dev-middleware@0.82.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)': + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.82.0 + '@react-native/debugger-shell': 0.82.0 + chrome-launcher: 0.15.2 + chromium-edge-launcher: 0.2.0 + connect: 3.7.0 + debug: 4.4.3 + invariant: 2.2.4 + nullthrows: 1.1.1 + open: 7.4.2 + serve-static: 1.16.3 + ws: 6.2.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/gradle-plugin@0.82.0': {} + + '@react-native/js-polyfills@0.82.0': {} + + '@react-native/normalize-colors@0.81.5': {} + + '@react-native/normalize-colors@0.82.0': {} + + '@react-native/virtualized-lists@0.82.0(@types/react@19.2.14)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)': + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + optionalDependencies: + '@types/react': 19.2.14 + '@rolldown/pluginutils@1.0.0-beta.53': {} '@rolldown/pluginutils@1.0.0-beta.59': {} @@ -8550,12 +12132,253 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.5': optional: true + '@scure/base@1.2.6': {} + + '@scure/bip32@1.7.0': + dependencies: + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + + '@scure/bip39@1.6.0': + dependencies: + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + + '@sinclair/typebox@0.27.10': {} + '@sindresorhus/is@4.6.0': {} '@sindresorhus/is@7.1.0': {} '@sindresorhus/merge-streams@4.0.0': {} + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@solana-mobile/mobile-wallet-adapter-protocol-web3js@2.2.5(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3)': + dependencies: + '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.5(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3) + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10) + bs58: 5.0.0 + js-base64: 3.7.8 + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - fastestsmallesttextencoderdecoder + - react + - react-native + - typescript + + '@solana-mobile/mobile-wallet-adapter-protocol@2.2.5(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3)': + dependencies: + '@solana/codecs-strings': 4.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/wallet-standard': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0) + '@solana/wallet-standard-util': 1.1.2 + '@wallet-standard/core': 1.1.1 + js-base64: 3.7.8 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - '@solana/web3.js' + - bs58 + - fastestsmallesttextencoderdecoder + - react + - typescript + + '@solana-mobile/wallet-adapter-mobile@2.2.5(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3)': + dependencies: + '@solana-mobile/mobile-wallet-adapter-protocol-web3js': 2.2.5(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3) + '@solana-mobile/wallet-standard-mobile': 0.4.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3) + '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/wallet-standard-features': 1.3.0 + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10) + js-base64: 3.7.8 + optionalDependencies: + '@react-native-async-storage/async-storage': 1.24.0(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - react + - react-native + - typescript + + '@solana-mobile/wallet-standard-mobile@0.4.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3)': + dependencies: + '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.5(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3) + '@solana/wallet-standard-chains': 1.1.1 + '@solana/wallet-standard-features': 1.3.0 + '@wallet-standard/base': 1.1.0 + '@wallet-standard/features': 1.1.0 + bs58: 5.0.0 + js-base64: 3.7.8 + qrcode: 1.5.4 + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - '@solana/web3.js' + - fastestsmallesttextencoderdecoder + - react + - react-native + - typescript + + '@solana/buffer-layout@4.0.1': + dependencies: + buffer: 6.0.3 + + '@solana/codecs-core@2.3.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 2.3.0(typescript@5.9.3) + typescript: 5.9.3 + + '@solana/codecs-core@4.0.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 4.0.0(typescript@5.9.3) + typescript: 5.9.3 + + '@solana/codecs-numbers@2.3.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 2.3.0(typescript@5.9.3) + '@solana/errors': 2.3.0(typescript@5.9.3) + typescript: 5.9.3 + + '@solana/codecs-numbers@4.0.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 4.0.0(typescript@5.9.3) + '@solana/errors': 4.0.0(typescript@5.9.3) + typescript: 5.9.3 + + '@solana/codecs-strings@4.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 4.0.0(typescript@5.9.3) + '@solana/codecs-numbers': 4.0.0(typescript@5.9.3) + '@solana/errors': 4.0.0(typescript@5.9.3) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.9.3 + + '@solana/errors@2.3.0(typescript@5.9.3)': + dependencies: + chalk: 5.6.2 + commander: 14.0.3 + typescript: 5.9.3 + + '@solana/errors@4.0.0(typescript@5.9.3)': + dependencies: + chalk: 5.6.2 + commander: 14.0.1 + typescript: 5.9.3 + + '@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))': + dependencies: + '@solana/wallet-standard-features': 1.3.0 + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@wallet-standard/base': 1.1.0 + '@wallet-standard/features': 1.1.0 + eventemitter3: 5.0.4 + + '@solana/wallet-adapter-react@0.15.39(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3)': + dependencies: + '@solana-mobile/wallet-adapter-mobile': 2.2.5(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(typescript@5.9.3) + '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/wallet-standard-wallet-adapter-react': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0) + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10) + react: 19.2.0 + transitivePeerDependencies: + - bs58 + - fastestsmallesttextencoderdecoder + - react-native + - typescript + + '@solana/wallet-standard-chains@1.1.1': + dependencies: + '@wallet-standard/base': 1.1.0 + + '@solana/wallet-standard-core@1.1.2': + dependencies: + '@solana/wallet-standard-chains': 1.1.1 + '@solana/wallet-standard-features': 1.3.0 + '@solana/wallet-standard-util': 1.1.2 + + '@solana/wallet-standard-features@1.3.0': + dependencies: + '@wallet-standard/base': 1.1.0 + '@wallet-standard/features': 1.1.0 + + '@solana/wallet-standard-util@1.1.2': + dependencies: + '@noble/curves': 1.9.7 + '@solana/wallet-standard-chains': 1.1.1 + '@solana/wallet-standard-features': 1.3.0 + + '@solana/wallet-standard-wallet-adapter-base@1.1.4(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)': + dependencies: + '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/wallet-standard-chains': 1.1.1 + '@solana/wallet-standard-features': 1.3.0 + '@solana/wallet-standard-util': 1.1.2 + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@wallet-standard/app': 1.1.0 + '@wallet-standard/base': 1.1.0 + '@wallet-standard/features': 1.1.0 + '@wallet-standard/wallet': 1.1.0 + bs58: 5.0.0 + + '@solana/wallet-standard-wallet-adapter-react@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)': + dependencies: + '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0) + '@wallet-standard/app': 1.1.0 + '@wallet-standard/base': 1.1.0 + react: 19.2.0 + transitivePeerDependencies: + - '@solana/web3.js' + - bs58 + + '@solana/wallet-standard-wallet-adapter@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)': + dependencies: + '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0) + '@solana/wallet-standard-wallet-adapter-react': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0) + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - '@solana/web3.js' + - bs58 + - react + + '@solana/wallet-standard@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)': + dependencies: + '@solana/wallet-standard-core': 1.1.2 + '@solana/wallet-standard-wallet-adapter': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0) + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - '@solana/web3.js' + - bs58 + - react + + '@solana/web3.js@1.98.4(bufferutil@4.1.0)(encoding@0.1.13)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.28.6 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@solana/buffer-layout': 4.0.1 + '@solana/codecs-numbers': 2.3.0(typescript@5.9.3) + agentkeepalive: 4.6.0 + bn.js: 5.2.2 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.3.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + node-fetch: 2.7.0(encoding@0.1.13) + rpc-websockets: 9.3.3 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + '@speed-highlight/core@1.2.14': {} '@speed-highlight/core@1.2.8': {} @@ -8564,6 +12387,8 @@ snapshots: '@standard-schema/spec@1.1.0': {} + '@stripe/stripe-js@5.6.0': {} + '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 @@ -8650,6 +12475,8 @@ snapshots: '@tanstack/pacer-lite@0.1.1': {} + '@tanstack/query-core@5.87.4': {} + '@tanstack/store@0.7.7': {} '@tanstack/virtual-core@3.13.12': {} @@ -8710,6 +12537,10 @@ snapshots: '@types/node': 24.9.2 '@types/responselike': 1.0.3 + '@types/connect@3.4.38': + dependencies: + '@types/node': 24.9.2 + '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 @@ -8724,8 +12555,22 @@ snapshots: dependencies: '@types/node': 24.9.2 + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 24.9.2 + '@types/http-cache-semantics@4.2.0': {} + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + '@types/json-schema@7.0.15': {} '@types/keyv@3.1.4': @@ -8736,6 +12581,8 @@ snapshots: '@types/ms@2.1.0': {} + '@types/node@12.20.55': {} + '@types/node@20.19.30': dependencies: undici-types: 6.21.0 @@ -8749,6 +12596,8 @@ snapshots: dependencies: undici-types: 7.16.0 + '@types/parse-json@4.0.2': {} + '@types/parse-path@7.1.0': dependencies: parse-path: 7.1.0 @@ -8781,14 +12630,32 @@ snapshots: '@types/slice-ansi@4.0.0': {} + '@types/stack-utils@2.0.3': {} + '@types/trusted-types@2.0.7': optional: true + '@types/uuid@8.3.4': {} + '@types/verror@1.10.11': optional: true '@types/web-bluetooth@0.0.21': {} + '@types/ws@7.4.7': + dependencies: + '@types/node': 24.9.2 + + '@types/ws@8.18.1': + dependencies: + '@types/node': 24.9.2 + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.35': + dependencies: + '@types/yargs-parser': 21.0.3 + '@types/yauzl@2.10.3': dependencies: '@types/node': 24.9.2 @@ -8834,12 +12701,26 @@ snapshots: '@typescript-eslint/types': 8.53.0 eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.3.0': {} + '@unhead/vue@2.0.19(vue@3.5.26(typescript@5.9.3))': dependencies: hookable: 5.5.3 unhead: 2.0.19 vue: 3.5.26(typescript@5.9.3) + '@urql/core@5.2.0': + dependencies: + '@0no-co/graphql.web': 1.2.0 + wonka: 6.3.5 + transitivePeerDependencies: + - graphql + + '@urql/exchange-retry@1.3.2(@urql/core@5.2.0)': + dependencies: + '@urql/core': 5.2.0 + wonka: 6.3.5 + '@vencord/venmic@6.1.0': dependencies: cmake-js: 7.4.0 @@ -9085,16 +12966,59 @@ snapshots: dependencies: vue: 3.5.26(typescript@5.9.3) + '@wallet-standard/app@1.1.0': + dependencies: + '@wallet-standard/base': 1.1.0 + + '@wallet-standard/base@1.1.0': {} + + '@wallet-standard/core@1.1.1': + dependencies: + '@wallet-standard/app': 1.1.0 + '@wallet-standard/base': 1.1.0 + '@wallet-standard/errors': 0.1.1 + '@wallet-standard/features': 1.1.0 + '@wallet-standard/wallet': 1.1.0 + + '@wallet-standard/errors@0.1.1': + dependencies: + chalk: 5.6.2 + commander: 13.1.0 + + '@wallet-standard/features@1.1.0': + dependencies: + '@wallet-standard/base': 1.1.0 + + '@wallet-standard/wallet@1.1.0': + dependencies: + '@wallet-standard/base': 1.1.0 + '@xmldom/xmldom@0.8.11': {} + '@zxcvbn-ts/core@3.0.4': + dependencies: + fastest-levenshtein: 1.0.16 + + '@zxcvbn-ts/language-common@3.0.4': {} + abbrev@1.1.1: {} abbrev@3.0.1: {} + abitype@1.2.3(typescript@5.9.3)(zod@4.3.5): + optionalDependencies: + typescript: 5.9.3 + zod: 4.3.5 + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + acorn-import-attributes@1.9.5(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -9133,20 +13057,38 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + alien-signals@2.0.6: {} + alien-signals@3.0.3: {} + anser@1.4.10: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@4.1.1: {} + ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + ansi-styles@5.2.0: {} + ansi-styles@6.2.3: {} ansis@4.2.0: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -9260,12 +13202,20 @@ snapshots: delegates: 1.0.0 readable-stream: 3.6.2 + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} aria-hidden@1.2.6: dependencies: tslib: 2.8.1 + asap@2.0.6: {} + assert-plus@1.0.0: optional: true @@ -9283,6 +13233,8 @@ snapshots: async-exit-hook@2.0.1: {} + async-limiter@1.0.1: {} + async-sema@3.1.1: {} async@3.2.6: {} @@ -9310,6 +13262,143 @@ snapshots: b4a@1.7.3: {} + babel-jest@29.7.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.29.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 + + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.28.6 + cosmiconfig: 7.1.0 + resolve: 1.22.11 + + babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.29.0): + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + core-js-compat: 3.48.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + babel-plugin-react-compiler@1.0.0: + dependencies: + '@babel/types': 7.29.0 + + babel-plugin-react-native-web@0.21.2: {} + + babel-plugin-syntax-hermes-parser@0.29.1: + dependencies: + hermes-parser: 0.29.1 + + babel-plugin-syntax-hermes-parser@0.32.0: + dependencies: + hermes-parser: 0.32.0 + + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.29.0): + dependencies: + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - '@babel/core' + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) + + babel-preset-expo@54.0.10(@babel/core@7.29.0)(@babel/runtime@7.28.6)(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-refresh@0.14.2): + dependencies: + '@babel/helper-module-imports': 7.28.6 + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) + '@babel/preset-react': 7.28.5(@babel/core@7.29.0) + '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) + '@react-native/babel-preset': 0.81.5(@babel/core@7.29.0) + babel-plugin-react-compiler: 1.0.0 + babel-plugin-react-native-web: 0.21.2 + babel-plugin-syntax-hermes-parser: 0.29.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) + debug: 4.4.3 + react-refresh: 0.14.2 + resolve-from: 5.0.0 + optionalDependencies: + '@babel/runtime': 7.28.6 + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - '@babel/core' + - supports-color + + babel-preset-jest@29.6.3(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + balanced-match@1.0.2: {} balanced-match@4.0.2: @@ -9318,12 +13407,24 @@ snapshots: bare-events@2.8.1: {} + base-64@1.0.0: {} + + base-x@3.0.11: + dependencies: + safe-buffer: 5.2.1 + + base-x@4.0.1: {} + base64-js@1.5.1: {} baseline-browser-mapping@2.8.20: {} baseline-browser-mapping@2.9.12: {} + better-opn@3.0.2: + dependencies: + open: 8.4.2 + big-integer@1.6.52: {} binary-extensions@2.3.0: {} @@ -9346,11 +13447,27 @@ snapshots: bluebird@3.7.2: {} + bn.js@5.2.2: {} + boolbase@1.0.0: {} boolean@3.2.0: optional: true + borsh@0.7.0: + dependencies: + bn.js: 5.2.2 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + + bplist-creator@0.1.0: + dependencies: + stream-buffers: 2.2.0 + + bplist-parser@0.3.1: + dependencies: + big-integer: 1.6.52 + bplist-parser@0.3.2: dependencies: big-integer: 1.6.52 @@ -9372,6 +13489,10 @@ snapshots: dependencies: fill-range: 7.1.1 + browser-tabs-lock@1.3.0: + dependencies: + lodash: 4.17.21 + browserslist@4.27.0: dependencies: baseline-browser-mapping: 2.8.20 @@ -9388,6 +13509,18 @@ snapshots: node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) + bs58@4.0.1: + dependencies: + base-x: 3.0.11 + + bs58@5.0.0: + dependencies: + base-x: 4.0.1 + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + buffer-crc32@0.2.13: {} buffer-crc32@1.0.0: {} @@ -9404,6 +13537,11 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + bufferutil@4.1.0: + dependencies: + node-gyp-build: 4.8.4 + optional: true + builder-util-runtime@9.2.10: dependencies: debug: 4.4.3 @@ -9436,6 +13574,8 @@ snapshots: dependencies: run-applescript: 7.1.0 + bytes@3.1.2: {} + c12@3.3.1(magicast@0.5.0): dependencies: chokidar: 4.0.3 @@ -9531,6 +13671,10 @@ snapshots: callsites@3.1.0: {} + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + caniuse-api@3.0.0: dependencies: browserslist: 4.27.0 @@ -9542,11 +13686,19 @@ snapshots: caniuse-lite@1.0.30001762: {} + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.6.2: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -9571,8 +13723,30 @@ snapshots: chownr@3.0.0: {} + chrome-launcher@0.15.2: + dependencies: + '@types/node': 24.9.2 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + transitivePeerDependencies: + - supports-color + + chromium-edge-launcher@0.2.0: + dependencies: + '@types/node': 24.9.2 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + mkdirp: 1.0.4 + rimraf: 3.0.2 + transitivePeerDependencies: + - supports-color + chromium-pickle-js@0.2.0: {} + ci-info@2.0.0: {} + ci-info@3.9.0: {} citty@0.1.6: @@ -9585,6 +13759,10 @@ snapshots: clean-stack@2.2.0: {} + cli-cursor@2.1.0: + dependencies: + restore-cursor: 2.0.0 + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -9603,6 +13781,12 @@ snapshots: is-wsl: 3.1.0 is64bit: 2.0.0 + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -9615,6 +13799,8 @@ snapshots: clone@1.0.4: {} + clsx@1.2.1: {} + clsx@2.1.1: {} cluster-key-slot@1.1.2: {} @@ -9637,10 +13823,16 @@ snapshots: - supports-color optional: true + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} color-support@1.1.3: {} @@ -9655,8 +13847,16 @@ snapshots: commander@12.1.0: {} + commander@13.1.0: {} + + commander@14.0.1: {} + + commander@14.0.3: {} + commander@2.20.3: {} + commander@4.1.1: {} + commander@5.1.0: {} commander@7.2.0: {} @@ -9682,6 +13882,22 @@ snapshots: normalize-path: 3.0.0 readable-stream: 4.7.0 + compressible@2.0.18: + dependencies: + mime-db: 1.54.0 + + compression@1.8.1: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.1.0 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + concat-map@0.0.1: {} concurrently@9.2.1: @@ -9702,10 +13918,21 @@ snapshots: glob: 10.4.5 typescript: 5.9.3 + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + consola@3.4.2: {} console-control-strings@1.1.0: {} + convert-source-map@1.9.0: {} + convert-source-map@2.0.0: {} cookie-es@1.2.2: {} @@ -9722,11 +13949,29 @@ snapshots: dependencies: iconv-lite: 0.4.24 + copy-to-clipboard@3.3.3: + dependencies: + toggle-selection: 1.0.6 + + core-js-compat@3.48.0: + dependencies: + browserslist: 4.28.1 + + core-js@3.41.0: {} + core-util-is@1.0.2: optional: true core-util-is@1.0.3: {} + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + crc-32@1.2.2: {} crc32-stream@4.0.3: @@ -9761,6 +14006,10 @@ snapshots: dependencies: uncrypto: 0.1.3 + crypto-js@4.2.0: {} + + crypto-random-string@2.0.0: {} + css-declaration-sorter@7.3.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -9848,16 +14097,29 @@ snapshots: optionalDependencies: drizzle-orm: 0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3) + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + debug@4.4.3: dependencies: ms: 2.1.3 + decamelize@1.2.0: {} + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 - deep-extend@0.6.0: - optional: true + deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -9896,6 +14158,8 @@ snapshots: defu@6.1.4: {} + delay@5.0.0: {} + delayed-stream@1.0.0: {} delegates@1.0.0: {} @@ -9908,6 +14172,8 @@ snapshots: destr@2.0.5: {} + destroy@1.2.0: {} + detect-libc@1.0.3: {} detect-libc@2.1.2: {} @@ -9919,6 +14185,8 @@ snapshots: diff@8.0.2: {} + dijkstrajs@1.0.3: {} + dir-compare@4.2.0: dependencies: minimatch: 3.1.2 @@ -9981,6 +14249,8 @@ snapshots: dependencies: dotenv: 16.6.1 + dotenv@16.4.7: {} + dotenv@16.6.1: {} dotenv@17.2.3: {} @@ -10077,6 +14347,8 @@ snapshots: emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} + encodeurl@2.0.0: {} encoding@0.1.13: @@ -10097,12 +14369,22 @@ snapshots: entities@7.0.0: {} + env-editor@0.4.2: {} + env-paths@2.2.1: {} err-code@2.0.3: {} + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + error-stack-parser-es@1.0.5: {} + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + errx@0.1.0: {} es-define-property@1.0.1: {} @@ -10125,6 +14407,12 @@ snapshots: es6-error@4.1.1: optional: true + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + esbuild-register@3.6.0(esbuild@0.25.11): dependencies: debug: 4.4.3 @@ -10219,6 +14507,10 @@ snapshots: escape-html@1.0.3: {} + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} @@ -10317,6 +14609,12 @@ snapshots: event-target-shim@5.0.1: {} + event-target-shim@6.0.2: {} + + eventemitter3@5.0.1: {} + + eventemitter3@5.0.4: {} + events-universal@1.0.1: dependencies: bare-events: 2.8.1 @@ -10325,6 +14623,8 @@ snapshots: events@3.3.0: {} + exec-async@2.2.0: {} + execa@8.0.1: dependencies: cross-spawn: 7.0.6 @@ -10337,6 +14637,133 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + expo-application@7.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)): + dependencies: + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + + expo-asset@12.0.12(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0): + dependencies: + '@expo/image-utils': 0.8.8 + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - supports-color + + expo-auth-session@7.0.10(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0): + dependencies: + expo-application: 7.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)) + expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + expo-crypto: 15.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)) + expo-linking: 8.0.11(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + expo-web-browser: 15.0.10(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + invariant: 2.2.4 + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - expo + - supports-color + + expo-constants@18.0.13(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)): + dependencies: + '@expo/config': 12.0.13 + '@expo/env': 2.0.8 + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - supports-color + + expo-crypto@15.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)): + dependencies: + base64-js: 1.5.1 + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + + expo-file-system@19.0.21(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)): + dependencies: + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + + expo-font@14.0.11(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0): + dependencies: + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + fontfaceobserver: 2.3.0 + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + + expo-keep-awake@15.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0): + dependencies: + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + react: 19.2.0 + + expo-linking@8.0.11(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0): + dependencies: + expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + invariant: 2.2.4 + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - expo + - supports-color + + expo-modules-autolinking@3.0.24: + dependencies: + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + commander: 7.2.0 + require-from-string: 2.0.2 + resolve-from: 5.0.0 + + expo-modules-core@3.0.29(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0): + dependencies: + invariant: 2.2.4 + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + + expo-secure-store@15.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10)): + dependencies: + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + + expo-server@1.0.5: {} + + expo-web-browser@15.0.10(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)): + dependencies: + expo: 54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10) + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + + expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10): + dependencies: + '@babel/runtime': 7.28.6 + '@expo/cli': 54.0.23(bufferutil@4.1.0)(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/devtools': 0.1.8(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + '@expo/fingerprint': 0.15.4 + '@expo/metro': 54.2.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@expo/metro-config': 54.0.14(bufferutil@4.1.0)(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@expo/vector-icons': 15.0.3(expo-font@14.0.11(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + '@ungap/structured-clone': 1.3.0 + babel-preset-expo: 54.0.10(@babel/core@7.29.0)(@babel/runtime@7.28.6)(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-refresh@0.14.2) + expo-asset: 12.0.12(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + expo-constants: 18.0.13(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + expo-file-system: 19.0.21(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)) + expo-font: 14.0.11(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + expo-keep-awake: 15.0.8(expo@54.0.33(@babel/core@7.29.0)(bufferutil@4.1.0)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + expo-modules-autolinking: 3.0.24 + expo-modules-core: 3.0.29(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + pretty-format: 29.7.0 + react: 19.2.0 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + react-refresh: 0.14.2 + whatwg-url-without-unicode: 8.0.0-3 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - expo-router + - graphql + - supports-color + - utf-8-validate + exponential-backoff@3.1.3: {} exsolve@1.0.7: {} @@ -10356,6 +14783,8 @@ snapshots: extsprintf@1.4.1: optional: true + eyes@0.1.8: {} + fast-deep-equal@3.1.3: {} fast-fifo@1.3.2: {} @@ -10376,10 +14805,22 @@ snapshots: fast-sha256@1.3.0: {} + fast-stable-stringify@1.0.0: {} + + fastest-levenshtein@1.0.16: {} + + fastestsmallesttextencoderdecoder@1.0.22: {} + fastq@1.19.1: dependencies: reusify: 1.1.0 + fb-dotslash@0.5.8: {} + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -10402,6 +14843,25 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-root@1.1.0: {} + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -10414,10 +14874,14 @@ snapshots: flatted@3.3.3: {} + flow-enums-runtime@0.0.6: {} + follow-redirects@1.15.11(debug@4.4.3): optionalDependencies: debug: 4.4.3 + fontfaceobserver@2.3.0: {} + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -10433,6 +14897,10 @@ snapshots: fraction.js@5.3.4: {} + freeport-async@2.0.0: {} + + fresh@0.5.2: {} + fresh@2.0.0: {} fs-constants@1.0.0: {} @@ -10503,6 +14971,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-package-type@0.1.0: {} + get-port-please@3.2.0: {} get-proto@1.0.1: @@ -10520,6 +14990,8 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + getenv@2.0.0: {} + giget@2.0.0: dependencies: citty: 0.1.6 @@ -10594,6 +15066,10 @@ snapshots: dependencies: ini: 4.1.1 + global-dirs@0.1.1: + dependencies: + ini: 1.3.8 + globals@14.0.0: {} globalthis@1.0.4: @@ -10645,6 +15121,8 @@ snapshots: ufo: 1.6.1 uncrypto: 0.1.3 + has-flag@3.0.0: {} + has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -10664,12 +15142,34 @@ snapshots: dependencies: function-bind: 1.1.2 + hermes-compiler@0.0.0: {} + + hermes-estree@0.29.1: {} + + hermes-estree@0.32.0: {} + + hermes-parser@0.29.1: + dependencies: + hermes-estree: 0.29.1 + + hermes-parser@0.32.0: + dependencies: + hermes-estree: 0.32.0 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + hookable@5.5.3: {} hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + http-cache-semantics@4.2.0: {} http-errors@2.0.0: @@ -10680,6 +15180,14 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 @@ -10738,6 +15246,8 @@ snapshots: dependencies: safer-buffer: 2.1.2 + idb-keyval@6.2.1: {} + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -10746,6 +15256,10 @@ snapshots: image-meta@0.2.2: {} + image-size@1.2.1: + dependencies: + queue: 6.0.2 + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -10772,11 +15286,19 @@ snapshots: inherits@2.0.4: {} - ini@1.3.8: - optional: true + ini@1.3.8: {} ini@4.1.1: {} + input-otp@1.4.2(react-dom@19.2.4(react@19.2.0))(react@19.2.0): + dependencies: + react: 19.2.0 + react-dom: 19.2.4(react@19.2.0) + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + ioredis@5.8.2: dependencies: '@ioredis/commands': 1.4.0 @@ -10795,6 +15317,8 @@ snapshots: iron-webcrypto@1.2.1: {} + is-arrayish@0.2.1: {} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -10838,6 +15362,9 @@ snapshots: is-path-inside@4.0.0: {} + is-plain-obj@2.1.0: + optional: true + is-reference@1.2.1: dependencies: '@types/estree': 1.0.8 @@ -10876,6 +15403,26 @@ snapshots: isexe@3.1.1: {} + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10) + + isows@1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)): + dependencies: + ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -10892,6 +15439,98 @@ snapshots: filelist: 1.0.4 picocolors: 1.1.1 + jayson@4.3.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + stream-json: 1.9.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 24.9.2 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 24.9.2 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.29.0 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 24.9.2 + jest-util: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 24.9.2 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-worker@29.7.0: + dependencies: + '@types/node': 24.9.2 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jimp-compact@0.16.1: {} + jiti@2.6.1: {} joi@18.0.2: @@ -10904,26 +15543,36 @@ snapshots: '@hapi/topo': 6.0.2 '@standard-schema/spec': 1.1.0 + js-base64@3.7.8: {} + js-cookie@3.0.5: {} js-tokens@4.0.0: {} js-tokens@9.0.1: {} + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.1.1: dependencies: argparse: 2.0.1 + jsc-safe-url@0.2.4: {} + jsesc@3.1.0: {} json-buffer@3.0.1: {} + json-parse-even-better-errors@2.3.1: {} + json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-safe@5.0.1: - optional: true + json-stringify-safe@5.0.1: {} json5@2.2.3: {} @@ -10961,6 +15610,8 @@ snapshots: kysely@0.28.9: optional: true + lan-network@0.1.7: {} + launch-editor@2.12.0: dependencies: picocolors: 1.1.1 @@ -10972,11 +15623,20 @@ snapshots: dependencies: readable-stream: 2.3.8 + leven@3.1.0: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + lighthouse-logger@1.4.2: + dependencies: + debug: 2.6.9 + marky: 1.3.0 + transitivePeerDependencies: + - supports-color + lightningcss-android-arm64@1.30.2: optional: true @@ -11028,6 +15688,8 @@ snapshots: lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} + listhen@1.9.0: dependencies: '@parcel/watcher': 2.5.1 @@ -11055,10 +15717,16 @@ snapshots: pkg-types: 2.3.0 quansync: 0.2.11 + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 + lodash.debounce@4.0.8: {} + lodash.defaults@4.2.0: {} lodash.difference@4.5.0: {} @@ -11073,17 +15741,27 @@ snapshots: lodash.merge@4.6.2: {} + lodash.throttle@4.1.1: {} + lodash.union@4.6.0: {} lodash.uniq@4.5.0: {} lodash@4.17.21: {} + log-symbols@2.2.0: + dependencies: + chalk: 2.4.2 + log-symbols@4.1.0: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + lowercase-keys@2.0.0: {} lru-cache@10.4.3: {} @@ -11158,10 +15836,16 @@ snapshots: - bluebird - supports-color + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + marked@14.0.0: {} marked@17.0.1: {} + marky@1.3.0: {} + matcher@3.0.0: dependencies: escape-string-regexp: 4.0.0 @@ -11175,15 +15859,197 @@ snapshots: mdn-data@2.12.2: {} + memoize-one@5.2.1: {} + memory-stream@1.0.0: dependencies: readable-stream: 3.6.2 optional: true + merge-options@3.0.4: + dependencies: + is-plain-obj: 2.1.0 + optional: true + merge-stream@2.0.0: {} merge2@1.4.1: {} + metro-babel-transformer@0.83.3: + dependencies: + '@babel/core': 7.29.0 + flow-enums-runtime: 0.0.6 + hermes-parser: 0.32.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-cache-key@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-cache@0.83.3: + dependencies: + exponential-backoff: 3.1.3 + flow-enums-runtime: 0.0.6 + https-proxy-agent: 7.0.6 + metro-core: 0.83.3 + transitivePeerDependencies: + - supports-color + + metro-config@0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + connect: 3.7.0 + flow-enums-runtime: 0.0.6 + jest-validate: 29.7.0 + metro: 0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + metro-cache: 0.83.3 + metro-core: 0.83.3 + metro-runtime: 0.83.3 + yaml: 2.8.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro-core@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + lodash.throttle: 4.1.1 + metro-resolver: 0.83.3 + + metro-file-map@0.83.3: + dependencies: + debug: 4.4.3 + fb-watchman: 2.0.2 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.8 + nullthrows: 1.1.1 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + + metro-minify-terser@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + terser: 5.44.0 + + metro-resolver@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-runtime@0.83.3: + dependencies: + '@babel/runtime': 7.28.6 + flow-enums-runtime: 0.0.6 + + metro-source-map@0.83.3: + dependencies: + '@babel/traverse': 7.29.0 + '@babel/traverse--for-generate-function-map': '@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 + nullthrows: 1.1.1 + ob1: 0.83.3 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-symbolicate@0.83.3: + 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.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-transform-plugins@0.83.3: + dependencies: + '@babel/core': 7.29.0 + '@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 + transitivePeerDependencies: + - supports-color + + metro-transform-worker@0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + '@babel/core': 7.29.0 + '@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(bufferutil@4.1.0)(utf-8-validate@5.0.10) + 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 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro@0.83.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/core': 7.29.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: 1.3.8 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 4.4.3 + error-stack-parser: 2.1.4 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + hermes-parser: 0.32.0 + image-size: 1.2.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + 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(bufferutil@4.1.0)(utf-8-validate@5.0.10) + 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(bufferutil@4.1.0)(utf-8-validate@5.0.10) + mime-types: 2.1.35 + nullthrows: 1.1.1 + serialize-error: 2.1.0 + source-map: 0.5.7 + throat: 5.0.0 + ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10) + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -11201,12 +16067,16 @@ snapshots: dependencies: mime-db: 1.54.0 + mime@1.6.0: {} + mime@2.6.0: {} mime@3.0.0: {} mime@4.1.0: {} + mimic-fn@1.2.0: {} + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -11298,10 +16168,20 @@ snapshots: mrmime@2.0.1: {} + ms@2.0.0: {} + + ms@2.1.2: {} + ms@2.1.3: {} muggle-string@0.4.1: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.11: {} nanoid@5.1.6: {} @@ -11326,9 +16206,13 @@ snapshots: natural-compare@1.4.0: {} + negotiator@0.6.3: {} + negotiator@0.6.4: {} - nitropack@2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(xml2js@0.6.2): + nested-error-stacks@2.0.1: {} + + nitropack@2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(idb-keyval@6.2.1)(xml2js@0.6.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@rollup/plugin-alias': 5.1.1(rollup@4.52.5) @@ -11395,7 +16279,7 @@ snapshots: unenv: 2.0.0-rc.23 unimport: 5.5.0 unplugin-utils: 0.3.1 - unstorage: 1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(ioredis@5.8.2) + unstorage: 1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(idb-keyval@6.2.1)(ioredis@5.8.2) untyped: 2.0.0 unwasm: 0.3.11 youch: 4.1.0-beta.11 @@ -11461,6 +16345,8 @@ snapshots: node-forge@1.3.1: {} + node-forge@1.3.3: {} + node-gyp-build@4.8.4: {} node-gyp@9.4.1: @@ -11480,6 +16366,8 @@ snapshots: - bluebird - supports-color + node-int64@0.4.0: {} + node-mock-http@1.0.3: {} node-releases@2.0.26: {} @@ -11498,6 +16386,13 @@ snapshots: normalize-url@6.1.0: {} + npm-package-arg@11.0.3: + dependencies: + hosted-git-info: 7.0.2 + proc-log: 4.2.0 + semver: 7.7.3 + validate-npm-package-name: 5.0.1 + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -11518,6 +16413,8 @@ snapshots: dependencies: boolbase: 1.0.0 + nullthrows@1.1.1: {} + nuxi@3.29.3: {} nuxt-cron@1.8.0(magicast@0.5.0): @@ -11540,16 +16437,16 @@ snapshots: - magicast - vite - nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2): + nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2): dependencies: '@dxup/nuxt': 0.2.2(magicast@0.5.0) - '@nuxt/cli': 3.32.0(cac@6.7.14)(magicast@0.5.0) - '@nuxt/devtools': 3.1.1(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + '@nuxt/cli': 3.32.0(cac@6.7.14)(commander@13.1.0)(magicast@0.5.0) + '@nuxt/devtools': 3.1.1(bufferutil@4.1.0)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) '@nuxt/kit': 4.2.2(magicast@0.5.0) - '@nuxt/nitro-server': 4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2) + '@nuxt/nitro-server': 4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2) '@nuxt/schema': 4.2.2 '@nuxt/telemetry': 2.6.6(magicast@0.5.0) - '@nuxt/vite-builder': 4.2.2(@types/node@24.9.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2) + '@nuxt/vite-builder': 4.2.2(@types/node@24.9.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2) '@unhead/vue': 2.0.19(vue@3.5.26(typescript@5.9.3)) '@vue/shared': 3.5.26 c12: 3.3.3(magicast@0.5.0) @@ -11671,6 +16568,12 @@ snapshots: pkg-types: 2.3.0 tinyexec: 1.0.1 + ob1@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + + object-assign@4.1.1: {} + object-keys@1.1.1: optional: true @@ -11686,14 +16589,24 @@ snapshots: on-change@6.0.1: {} + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + on-finished@2.4.1: dependencies: ee-first: 1.1.1 + on-headers@1.1.0: {} + once@1.4.0: dependencies: wrappy: 1.0.2 + onetime@2.0.1: + dependencies: + mimic-fn: 1.2.0 + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 @@ -11709,6 +16622,11 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -11724,6 +16642,15 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + ora@3.4.0: + dependencies: + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-spinners: 2.9.2 + log-symbols: 2.2.0 + strip-ansi: 5.2.0 + wcwidth: 1.0.1 + ora@5.4.1: dependencies: bl: 4.1.0 @@ -11736,6 +16663,35 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 + ox@0.12.1(typescript@5.9.3)(zod@4.3.5): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@4.3.5) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + + ox@0.6.9(typescript@5.9.3)(zod@4.3.5): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@4.3.5) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - zod + oxc-minify@0.102.0: optionalDependencies: '@oxc-minify/binding-android-arm64': 0.102.0 @@ -11862,10 +16818,18 @@ snapshots: p-cancelable@2.1.1: {} + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -11876,6 +16840,8 @@ snapshots: p-map@7.0.4: {} + p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} package-manager-detector@1.5.0: {} @@ -11884,10 +16850,21 @@ snapshots: dependencies: callsites: 3.1.0 + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.29.0 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + parse-path@7.1.0: dependencies: protocols: 2.0.2 + parse-png@2.1.0: + dependencies: + pngjs: 3.4.0 + parse-url@9.2.0: dependencies: '@types/parse-path': 7.1.0 @@ -11917,6 +16894,8 @@ snapshots: lru-cache: 11.2.6 minipass: 7.1.2 + path-type@4.0.0: {} + path-type@6.0.0: {} pathe@1.1.2: {} @@ -11970,6 +16949,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@3.0.1: {} + picomatch@4.0.3: {} pinia@3.0.3(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)): @@ -11979,6 +16960,8 @@ snapshots: optionalDependencies: typescript: 5.9.3 + pirates@4.0.7: {} + pkg-prebuilds@0.2.1: dependencies: yargs: 17.7.2 @@ -12002,6 +16985,10 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 15.1.1 + pngjs@3.4.0: {} + + pngjs@5.0.0: {} + postcss-calc@10.1.1(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -12158,6 +17145,12 @@ snapshots: postcss-value-parser@4.2.0: {} + postcss@8.4.49: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -12174,10 +17167,24 @@ snapshots: dependencies: xtend: 4.0.2 + preact@10.24.2: {} + + preact@10.28.3: {} + prelude-ls@1.2.1: {} + pretty-bytes@5.6.0: {} + pretty-bytes@7.1.0: {} + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + proc-log@4.2.0: {} + process-nextick-args@2.0.1: {} process@0.11.10: {} @@ -12191,6 +17198,10 @@ snapshots: err-code: 2.0.3 retry: 0.12.0 + promise@8.3.0: + dependencies: + asap: 2.0.6 + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -12207,10 +17218,26 @@ snapshots: punycode@2.3.1: {} + qrcode-terminal@0.11.0: {} + + qrcode.react@4.2.0(react@19.2.0): + dependencies: + react: 19.2.0 + + qrcode@1.5.4: + dependencies: + dijkstrajs: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + quansync@0.2.11: {} queue-microtask@1.2.3: {} + queue@6.0.2: + dependencies: + inherits: 2.0.4 + quick-lru@5.1.1: {} radix3@1.1.2: {} @@ -12232,21 +17259,103 @@ snapshots: ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - optional: true + + react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + shell-quote: 1.8.3 + ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate react-dom@19.2.3(react@19.2.3): dependencies: react: 19.2.3 scheduler: 0.27.0 + react-dom@19.2.4(react@19.2.0): + dependencies: + react: 19.2.0 + scheduler: 0.27.0 + react-dom@19.2.4(react@19.2.3): dependencies: react: 19.2.3 scheduler: 0.27.0 optional: true + react-is@16.13.1: {} + + react-is@18.3.1: {} + + react-native-url-polyfill@2.0.0(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)): + dependencies: + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + whatwg-url-without-unicode: 8.0.0-3 + + react-native-webrtc@124.0.7(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10)): + dependencies: + base64-js: 1.5.1 + debug: 4.3.4 + event-target-shim: 6.0.2 + react-native: 0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - supports-color + + react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10): + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native/assets-registry': 0.82.0 + '@react-native/codegen': 0.82.0(@babel/core@7.29.0) + '@react-native/community-cli-plugin': 0.82.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@react-native/gradle-plugin': 0.82.0 + '@react-native/js-polyfills': 0.82.0 + '@react-native/normalize-colors': 0.82.0 + '@react-native/virtualized-lists': 0.82.0(@types/react@19.2.14)(react-native@0.82.0(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + babel-jest: 29.7.0(@babel/core@7.29.0) + babel-plugin-syntax-hermes-parser: 0.32.0 + base64-js: 1.5.1 + commander: 12.1.0 + flow-enums-runtime: 0.0.6 + glob: 7.2.3 + hermes-compiler: 0.0.0 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + memoize-one: 5.2.1 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + nullthrows: 1.1.1 + pretty-format: 29.7.0 + promise: 8.3.0 + react: 19.2.0 + react-devtools-core: 6.1.5(bufferutil@4.1.0)(utf-8-validate@5.0.10) + react-refresh: 0.14.2 + regenerator-runtime: 0.13.11 + scheduler: 0.26.0 + semver: 7.7.3 + stacktrace-parser: 0.1.11 + whatwg-fetch: 3.6.20 + ws: 6.2.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + yargs: 17.7.2 + optionalDependencies: + '@types/react': 19.2.14 + transitivePeerDependencies: + - '@babel/core' + - '@react-native-community/cli' + - '@react-native/metro-config' + - bufferutil + - supports-color + - utf-8-validate + + react-refresh@0.14.2: {} + react-refresh@0.18.0: {} + react@19.2.0: {} + react@19.2.3: {} read-binary-file-arch@1.0.6: @@ -12297,8 +17406,33 @@ snapshots: dependencies: redis-errors: 1.2.0 + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.13.11: {} + + regenerator-runtime@0.14.1: {} + regexp-tree@0.1.27: {} + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.0: + dependencies: + jsesc: 3.1.0 + reka-ui@2.6.0(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)): dependencies: '@floating-ui/dom': 1.7.4 @@ -12318,6 +17452,16 @@ snapshots: require-directory@2.1.1: {} + require-from-string@2.0.2: {} + + require-main-filename@2.0.0: {} + + requireg@0.2.2: + dependencies: + nested-error-stacks: 2.0.1 + rc: 1.2.8 + resolve: 1.7.1 + resedit@1.7.2: dependencies: pe-library: 0.4.1 @@ -12328,18 +17472,35 @@ snapshots: resolve-from@5.0.0: {} + resolve-global@1.0.0: + dependencies: + global-dirs: 0.1.1 + resolve-pkg-maps@1.0.0: {} + resolve-workspace-root@2.0.1: {} + + resolve.exports@2.0.3: {} + resolve@1.22.11: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.7.1: + dependencies: + path-parse: 1.0.7 + responselike@2.0.1: dependencies: lowercase-keys: 2.0.0 + restore-cursor@2.0.0: + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -12407,6 +17568,19 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.5 fsevents: 2.3.3 + rpc-websockets@9.3.3: + dependencies: + '@swc/helpers': 0.5.17 + '@types/uuid': 8.3.4 + '@types/ws': 8.18.1 + buffer: 6.0.3 + eventemitter3: 5.0.4 + uuid: 8.3.2 + ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 5.0.10 + run-applescript@7.1.0: {} run-parallel@1.2.0: @@ -12431,6 +17605,8 @@ snapshots: sax@1.4.1: {} + scheduler@0.26.0: {} + scheduler@0.27.0: {} scule@1.3.0: {} @@ -12442,6 +17618,24 @@ snapshots: semver@7.7.3: {} + send@0.19.2: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + send@1.2.0: dependencies: debug: 4.4.3 @@ -12458,6 +17652,8 @@ snapshots: transitivePeerDependencies: - supports-color + serialize-error@2.1.0: {} + serialize-error@7.0.1: dependencies: type-fest: 0.13.1 @@ -12473,6 +17669,15 @@ snapshots: dependencies: defu: 6.1.4 + serve-static@1.16.3: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.2 + transitivePeerDependencies: + - supports-color + serve-static@2.2.0: dependencies: encodeurl: 2.0.0 @@ -12513,6 +17718,12 @@ snapshots: transitivePeerDependencies: - supports-color + simple-plist@1.3.1: + dependencies: + bplist-creator: 0.1.0 + bplist-parser: 0.3.1 + plist: 3.1.0 + simple-update-notifier@2.0.0: dependencies: semver: 7.7.3 @@ -12525,6 +17736,8 @@ snapshots: sisteransi@1.0.5: {} + slash@3.0.0: {} + slash@5.1.0: {} slice-ansi@3.0.0: @@ -12540,6 +17753,8 @@ snapshots: astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 + slugify@1.6.6: {} + smart-buffer@4.2.0: {} smob@1.5.0: {} @@ -12564,6 +17779,8 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 + source-map@0.5.7: {} + source-map@0.6.1: {} source-map@0.7.6: {} @@ -12572,6 +17789,8 @@ snapshots: split2@4.2.0: {} + sprintf-js@1.0.3: {} + sprintf-js@1.1.3: optional: true @@ -12581,6 +17800,16 @@ snapshots: dependencies: minipass: 3.3.6 + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + stackframe@1.3.4: {} + + stacktrace-parser@0.1.11: + dependencies: + type-fest: 0.7.1 + standard-as-callback@2.1.0: {} standardwebhooks@1.0.0: @@ -12590,12 +17819,22 @@ snapshots: stat-mode@1.0.0: {} + statuses@1.5.0: {} + statuses@2.0.1: {} statuses@2.0.2: {} std-env@3.10.0: {} + stream-buffers@2.2.0: {} + + stream-chain@2.2.5: {} + + stream-json@1.9.1: + dependencies: + stream-chain: 2.2.5 + streamx@2.23.0: dependencies: events-universal: 1.0.1 @@ -12625,6 +17864,10 @@ snapshots: dependencies: safe-buffer: 5.2.1 + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -12635,8 +17878,7 @@ snapshots: strip-final-newline@3.0.0: {} - strip-json-comments@2.0.1: - optional: true + strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -12646,12 +17888,26 @@ snapshots: structured-clone-es@1.0.0: {} + structured-headers@0.4.1: {} + stylehacks@7.0.6(postcss@8.5.6): dependencies: browserslist: 4.27.0 postcss: 8.5.6 postcss-selector-parser: 7.1.0 + stylis@4.2.0: {} + + sucrase@3.35.1: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.15 + ts-interface-checker: 0.1.13 + sumchecker@3.0.1: dependencies: debug: 4.4.3 @@ -12662,8 +17918,14 @@ snapshots: dependencies: copy-anything: 4.0.5 + superstruct@2.0.2: {} + supports-color@10.2.2: {} + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -12672,6 +17934,11 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@2.3.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} svgo@3.3.2: @@ -12694,6 +17961,12 @@ snapshots: picocolors: 1.1.1 sax: 1.4.1 + swr@2.3.4(react@19.2.0): + dependencies: + dequal: 2.0.3 + react: 19.2.0 + use-sync-external-store: 1.6.0(react@19.2.0) + swr@2.3.4(react@19.2.3): dependencies: dequal: 2.0.3 @@ -12702,6 +17975,8 @@ snapshots: system-architecture@0.1.0: {} + tabbable@6.4.0: {} + tagged-tag@1.0.0: {} tailwind-merge@3.3.1: {} @@ -12752,11 +18027,18 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 + temp-dir@2.0.0: {} + temp-file@3.4.0: dependencies: async-exit-hook: 2.0.1 fs-extra: 10.1.0 + terminal-link@2.1.1: + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + terser@5.44.0: dependencies: '@jridgewell/source-map': 0.3.11 @@ -12764,12 +18046,30 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + text-decoder@1.2.3: dependencies: b4a: 1.7.3 transitivePeerDependencies: - react-native-b4a + text-encoding-utf-8@1.0.2: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + throat@5.0.0: {} + through2@4.0.2: dependencies: readable-stream: 3.6.2 @@ -12791,10 +18091,14 @@ snapshots: tmp@0.2.5: {} + tmpl@1.0.5: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + toggle-selection@1.0.6: {} + toidentifier@1.0.1: {} tosource@2.0.0-alpha.3: {} @@ -12813,6 +18117,8 @@ snapshots: dependencies: typescript: 5.9.3 + ts-interface-checker@0.1.13: {} + tslib@2.8.1: {} tsx@4.21.0: @@ -12828,9 +18134,15 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-detect@4.0.8: {} + type-fest@0.13.1: optional: true + type-fest@0.21.3: {} + + type-fest@0.7.1: {} + type-fest@5.1.0: dependencies: tagged-tag: 1.0.0 @@ -12856,6 +18168,8 @@ snapshots: undici-types@7.16.0: {} + undici@6.23.0: {} + unenv@2.0.0-rc.23: dependencies: pathe: 2.0.3 @@ -12868,6 +18182,17 @@ snapshots: dependencies: hookable: 5.5.3 + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-property-aliases-ecmascript@2.2.0: {} + unicorn-magic@0.3.0: {} unimport@5.5.0: @@ -12895,10 +18220,16 @@ snapshots: dependencies: imurmurhash: 0.1.4 + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + universalify@0.1.2: {} universalify@2.0.1: {} + unpipe@1.0.0: {} + unplugin-utils@0.2.5: dependencies: pathe: 2.0.3 @@ -12973,7 +18304,7 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 - unstorage@1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(ioredis@5.8.2): + unstorage@1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(idb-keyval@6.2.1)(ioredis@5.8.2): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -12985,6 +18316,7 @@ snapshots: ufo: 1.6.1 optionalDependencies: db0: 0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)) + idb-keyval: 6.2.1 ioredis: 5.8.2 untildify@4.0.0: {} @@ -13033,14 +18365,33 @@ snapshots: url-join@4.0.1: optional: true + use-sync-external-store@1.6.0(react@19.2.0): + dependencies: + react: 19.2.0 + use-sync-external-store@1.6.0(react@19.2.3): dependencies: react: 19.2.3 + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.4 + optional: true + utf8-byte-length@1.0.5: {} util-deprecate@1.0.2: {} + utils-merge@1.0.1: {} + + uuid@7.0.3: {} + + uuid@8.3.2: {} + + validate-npm-package-name@5.0.1: {} + + vary@1.1.2: {} + verror@1.10.1: dependencies: assert-plus: 1.0.0 @@ -13048,6 +18399,23 @@ snapshots: extsprintf: 1.4.1 optional: true + viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.5): + dependencies: + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.9.3)(zod@4.3.5) + isows: 1.0.7(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + ox: 0.12.1(typescript@5.9.3)(zod@4.3.5) + ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + vite-dev-rpc@1.1.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: birpc: 2.9.0 @@ -13151,6 +18519,8 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 + vlq@1.0.1: {} + vscode-uri@3.1.0: {} vue-bundle-renderer@2.2.0: @@ -13175,11 +18545,11 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.26(typescript@5.9.3) - vue-sonner@2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2)): + vue-sonner@2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2)): optionalDependencies: '@nuxt/kit': 4.2.2(magicast@0.5.0) '@nuxt/schema': 4.2.2 - nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(bufferutil@4.1.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)(pg@8.16.3))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.1)(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(optionator@0.9.4)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(xml2js@0.6.2)(yaml@2.8.2) vue@3.5.26(typescript@5.9.3): dependencies: @@ -13201,19 +18571,35 @@ snapshots: transitivePeerDependencies: - debug + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + wcwidth@1.0.1: dependencies: defaults: 1.0.4 webidl-conversions@3.0.1: {} + webidl-conversions@5.0.0: {} + webpack-virtual-modules@0.6.2: {} + whatwg-fetch@3.6.20: {} + + whatwg-url-without-unicode@8.0.0-3: + dependencies: + buffer: 5.7.1 + punycode: 2.3.1 + webidl-conversions: 5.0.0 + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + which-module@2.0.1: {} + which@2.0.2: dependencies: isexe: 2.0.0 @@ -13226,8 +18612,16 @@ snapshots: dependencies: string-width: 4.2.3 + wonka@6.3.5: {} + word-wrap@1.2.5: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -13242,12 +18636,42 @@ snapshots: wrappy@1.0.2: {} - ws@8.18.3: {} + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + ws@6.2.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + async-limiter: 1.0.1 + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 5.0.10 + + ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 5.0.10 + + ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 5.0.10 wsl-utils@0.1.0: dependencies: is-wsl: 3.1.0 + xcode@3.0.1: + dependencies: + simple-plist: 1.3.1 + uuid: 7.0.3 + + xml2js@0.6.0: + dependencies: + sax: 1.4.1 + xmlbuilder: 11.0.1 + xml2js@0.6.2: dependencies: sax: 1.4.1 @@ -13259,6 +18683,8 @@ snapshots: xtend@4.0.2: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -13272,10 +18698,31 @@ snapshots: eslint-visitor-keys: 3.4.3 yaml: 2.8.2 + yaml@1.10.2: {} + yaml@2.8.2: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -13327,3 +18774,9 @@ snapshots: readable-stream: 4.7.0 zod@4.3.5: {} + + zustand@5.0.3(@types/react@19.2.14)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)): + optionalDependencies: + '@types/react': 19.2.14 + react: 19.2.0 + use-sync-external-store: 1.6.0(react@19.2.0) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5e5450f..001135a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,7 @@ packages: - . - mobile-wrapper + - native-app onlyBuiltDependencies: - '@vencord/venmic' From c4f6fb87a173eebe1f1aac9ae9b221e5d3576417 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:11:00 +0100 Subject: [PATCH 06/21] fix(native): avoid Java keyword in app package id --- native-app/app.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/native-app/app.json b/native-app/app.json index ddfba34..5be58dd 100644 --- a/native-app/app.json +++ b/native-app/app.json @@ -7,10 +7,13 @@ "orientation": "portrait", "userInterfaceStyle": "light", "android": { - "package": "dev.srizan.helium.native" + "package": "dev.srizan.helium.viewer" }, "plugins": [ "expo-secure-store" - ] + ], + "ios": { + "bundleIdentifier": "dev.srizan.helium.viewer" + } } } From b088b65dad458ebff89db5edbada99f1e2ac03ff Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:19:06 +0100 Subject: [PATCH 07/21] fix(native): use explicit Expo entry file --- native-app/index.js | 5 +++++ native-app/package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 native-app/index.js diff --git a/native-app/index.js b/native-app/index.js new file mode 100644 index 0000000..e5802d2 --- /dev/null +++ b/native-app/index.js @@ -0,0 +1,5 @@ +import { registerRootComponent } from "expo"; + +import App from "./App"; + +registerRootComponent(App); diff --git a/native-app/package.json b/native-app/package.json index c166897..a94a7d0 100644 --- a/native-app/package.json +++ b/native-app/package.json @@ -2,7 +2,7 @@ "name": "helium-native", "version": "0.1.0", "private": true, - "main": "expo/AppEntry", + "main": "index.js", "scripts": { "start": "expo start", "android": "expo run:android", From 38a557bd79bfca14599a580c871ae6de760ad5dc Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:33:25 +0100 Subject: [PATCH 08/21] feat(native): add Android screen-share host with presets --- native-app/App.tsx | 18 +- native-app/README.md | 25 +- native-app/src/hooks/useHeliumStreamer.ts | 264 +++++++++++++++++++ native-app/src/hooks/useHeliumViewer.ts | 224 ---------------- native-app/src/lib/presets.ts | 53 ++++ native-app/src/lib/theme.ts | 54 ++++ native-app/src/screens/SignInScreen.tsx | 100 ++++---- native-app/src/screens/StreamerScreen.tsx | 295 ++++++++++++++++++++++ native-app/src/screens/ViewerScreen.tsx | 150 ----------- native-app/src/types/presets.ts | 33 +++ native-app/src/types/signaling.ts | 41 ++- 11 files changed, 815 insertions(+), 442 deletions(-) create mode 100644 native-app/src/hooks/useHeliumStreamer.ts delete mode 100644 native-app/src/hooks/useHeliumViewer.ts create mode 100644 native-app/src/lib/presets.ts create mode 100644 native-app/src/lib/theme.ts create mode 100644 native-app/src/screens/StreamerScreen.tsx delete mode 100644 native-app/src/screens/ViewerScreen.tsx create mode 100644 native-app/src/types/presets.ts diff --git a/native-app/App.tsx b/native-app/App.tsx index 6c17362..1ed6fe1 100644 --- a/native-app/App.tsx +++ b/native-app/App.tsx @@ -4,18 +4,20 @@ import { ClerkProvider, SignedIn, SignedOut, useAuth } from "@clerk/clerk-expo"; import { tokenCache } from "@clerk/clerk-expo/token-cache"; import { ActivityIndicator, StyleSheet, Text, View } from "react-native"; +import { useAppTheme } from "./src/lib/theme"; import { SignInScreen } from "./src/screens/SignInScreen"; -import { ViewerScreen } from "./src/screens/ViewerScreen"; +import { StreamerScreen } from "./src/screens/StreamerScreen"; const publishableKey = process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY; function AuthReadyGate() { + const theme = useAppTheme(); const { isLoaded } = useAuth(); if (!isLoaded) { return ( - - + + ); } @@ -26,17 +28,19 @@ function AuthReadyGate() { - + ); } export default function App() { + const theme = useAppTheme(); + if (!publishableKey) { return ( - - + + Missing EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY @@ -53,12 +57,10 @@ export default function App() { const styles = StyleSheet.create({ loadingWrap: { alignItems: "center", - backgroundColor: "#eef4fa", flex: 1, justifyContent: "center", }, errorText: { - color: "#9b1026", fontSize: 16, paddingHorizontal: 20, textAlign: "center", diff --git a/native-app/README.md b/native-app/README.md index c67c45e..6435feb 100644 --- a/native-app/README.md +++ b/native-app/README.md @@ -1,11 +1,13 @@ # Helium Native (Expo + React Native) -Simple React Native viewer app that: +Simple React Native streamer app that: - Authenticates with Clerk (`@clerk/clerk-expo`) -- Connects to Helium signaling at `/ws/signaling` -- Joins a 6-digit room and answers WebRTC offers -- Renders incoming stream with `RTCView` +- Fetches your Helium presets from `/api/presets` +- Loads selected preset ICE servers from `/api/presets/:id` +- Captures Android screen with `getDisplayMedia()` +- Hosts a room on `/ws/signaling` and streams to connected viewers +- Uses matching light/dark palette semantics from the Helium web app ## Auth implementation notes (from Clerk docs via Context7) @@ -41,14 +43,15 @@ pnpm -C native-app prebuild pnpm -C native-app android ``` -## Signaling protocol wired +## Host signaling protocol wired -Implemented in `native-app/src/hooks/useHeliumViewer.ts`: +Implemented in `native-app/src/hooks/useHeliumStreamer.ts`: -- send `join-room` -- receive `offer` -- create peer connection with provided `iceServers` -- set remote description and send `answer` +- send `create-room` +- receive `viewer-joined` +- create peer connection with selected preset `iceServers` +- send `offer` for each viewer +- receive `answer` - exchange `ice-candidate` -- handle `room-closed` +- handle `viewer-left` - heartbeat with `ping` every 15s diff --git a/native-app/src/hooks/useHeliumStreamer.ts b/native-app/src/hooks/useHeliumStreamer.ts new file mode 100644 index 0000000..2aecc05 --- /dev/null +++ b/native-app/src/hooks/useHeliumStreamer.ts @@ -0,0 +1,264 @@ +import { useCallback, useEffect, useRef, useState } from "react"; +import { + MediaStream, + RTCPeerConnection, + RTCIceCandidate, + RTCSessionDescription, + mediaDevices, +} from "react-native-webrtc"; + +import { getSignalingUrl } from "../lib/signaling"; +import type { + IncomingSignalingMessage, + NativeIceServer, + NativeSessionDescriptionInit, +} from "../types/signaling"; + +interface PeerConnectionHandlers { + onicecandidate: + | ((event: { candidate: RTCIceCandidate | null }) => void) + | null; + onconnectionstatechange: (() => void) | null; +} + +interface UseHeliumStreamerResult { + status: string; + roomCode: string; + streamUrl: string | null; + viewerCount: number; + isSharing: boolean; + startSharing: () => Promise; + stopSharing: () => void; +} + +export function useHeliumStreamer( + iceServers: NativeIceServer[], +): UseHeliumStreamerResult { + const wsRef = useRef(null); + const streamRef = useRef(null); + const heartbeatRef = useRef | null>(null); + const peersRef = useRef>({}); + + const [status, setStatus] = useState("idle"); + const [roomCode, setRoomCode] = useState(""); + const [streamUrl, setStreamUrl] = useState(null); + const [viewerCount, setViewerCount] = useState(0); + const [isSharing, setIsSharing] = useState(false); + + const sendMessage = useCallback((payload: object): void => { + const ws = wsRef.current; + if (!ws || ws.readyState !== WebSocket.OPEN) { + return; + } + + ws.send(JSON.stringify(payload)); + }, []); + + const closeAllPeers = useCallback((): void => { + Object.values(peersRef.current).forEach((peer) => { + peer.close(); + }); + peersRef.current = {}; + setViewerCount(0); + }, []); + + const stopSharing = useCallback((): void => { + if (heartbeatRef.current) { + clearInterval(heartbeatRef.current); + heartbeatRef.current = null; + } + + closeAllPeers(); + + const ws = wsRef.current; + if (ws) { + ws.close(); + wsRef.current = null; + } + + const localStream = streamRef.current; + if (localStream) { + localStream.getTracks().forEach((track) => { + track.stop(); + }); + streamRef.current = null; + } + + setRoomCode(""); + setStreamUrl(null); + setIsSharing(false); + setStatus("stopped"); + }, [closeAllPeers]); + + const handleViewerJoined = useCallback( + async (viewerId: string): Promise => { + const localStream = streamRef.current; + if (!localStream) { + return; + } + + const peer = new RTCPeerConnection({ + iceServers, + }); + const peerWithHandlers = peer as RTCPeerConnection & PeerConnectionHandlers; + peersRef.current[viewerId] = peer; + setViewerCount(Object.keys(peersRef.current).length); + + localStream.getTracks().forEach((track) => { + peer.addTrack(track, localStream); + }); + + peerWithHandlers.onicecandidate = (event): void => { + if (!event.candidate) { + return; + } + + sendMessage({ + event: "ice-candidate", + targetId: viewerId, + candidate: event.candidate, + }); + }; + + peerWithHandlers.onconnectionstatechange = (): void => { + setStatus(`viewer ${viewerId}: ${peer.connectionState}`); + }; + + const offer = (await peer.createOffer()) as NativeSessionDescriptionInit; + await peer.setLocalDescription(offer); + + sendMessage({ + event: "offer", + targetId: viewerId, + sdp: offer, + iceServers, + }); + }, + [iceServers, sendMessage], + ); + + const handleIncomingMessage = useCallback( + async (event: MessageEvent): Promise => { + const message = JSON.parse(event.data) as IncomingSignalingMessage; + + if (message.event === "room-created") { + setRoomCode(message.roomId); + setStatus(`room code: ${message.roomId}`); + return; + } + + if (message.event === "viewer-joined") { + setStatus(`viewer joined: ${message.viewerId}`); + await handleViewerJoined(message.viewerId); + return; + } + + if (message.event === "answer") { + const peer = peersRef.current[message.from]; + if (!peer) { + return; + } + + await peer.setRemoteDescription(new RTCSessionDescription(message.sdp)); + return; + } + + if (message.event === "ice-candidate") { + const peer = peersRef.current[message.from]; + if (!peer || !peer.remoteDescription) { + return; + } + + await peer.addIceCandidate(new RTCIceCandidate(message.candidate)); + return; + } + + if (message.event === "viewer-left") { + const peer = peersRef.current[message.viewerId]; + if (peer) { + peer.close(); + delete peersRef.current[message.viewerId]; + setViewerCount(Object.keys(peersRef.current).length); + } + return; + } + + if (message.event === "error") { + setStatus(`error: ${message.message}`); + } + }, + [handleViewerJoined], + ); + + const startSharing = useCallback(async (): Promise => { + stopSharing(); + + if (!iceServers.length) { + setStatus("no preset selected"); + return; + } + + setStatus("requesting screen capture"); + const stream = await mediaDevices.getDisplayMedia(); + streamRef.current = stream; + setStreamUrl(stream.toURL()); + setIsSharing(true); + + stream.getTracks().forEach((track) => { + const streamTrack = track as unknown as MediaStreamTrack & { + onended: (() => void) | null; + }; + streamTrack.onended = () => { + stopSharing(); + }; + }); + + setStatus("connecting signaling"); + + const ws = new WebSocket(getSignalingUrl()); + wsRef.current = ws; + + ws.onopen = (): void => { + setStatus("creating room"); + sendMessage({ event: "create-room" }); + + heartbeatRef.current = setInterval(() => { + sendMessage({ event: "ping" }); + }, 15000); + }; + + ws.onmessage = (message): void => { + void handleIncomingMessage(message); + }; + + ws.onerror = (): void => { + setStatus("websocket error"); + }; + + ws.onclose = (): void => { + if (heartbeatRef.current) { + clearInterval(heartbeatRef.current); + heartbeatRef.current = null; + } + if (isSharing) { + setStatus("websocket closed"); + } + }; + }, [handleIncomingMessage, iceServers, isSharing, sendMessage, stopSharing]); + + useEffect(() => { + return () => { + stopSharing(); + }; + }, [stopSharing]); + + return { + status, + roomCode, + streamUrl, + viewerCount, + isSharing, + startSharing, + stopSharing, + }; +} diff --git a/native-app/src/hooks/useHeliumViewer.ts b/native-app/src/hooks/useHeliumViewer.ts deleted file mode 100644 index a055657..0000000 --- a/native-app/src/hooks/useHeliumViewer.ts +++ /dev/null @@ -1,224 +0,0 @@ -import { useCallback, useEffect, useRef, useState } from "react"; -import { - MediaStream, - RTCPeerConnection, - RTCIceCandidate, - RTCSessionDescription, -} from "react-native-webrtc"; - -import { getSignalingUrl } from "../lib/signaling"; -import type { - IncomingSignalingMessage, - SignalingOfferEvent, -} from "../types/signaling"; - -interface UseHeliumViewerResult { - status: string; - streamUrl: string | null; - connect: (roomId: string) => void; - disconnect: () => void; - isConnected: boolean; -} - -interface PeerConnectionHandlers { - ontrack: ((event: { streams?: MediaStream[] }) => void) | null; - onicecandidate: - | ((event: { candidate: RTCIceCandidate | null }) => void) - | null; - onconnectionstatechange: (() => void) | null; -} - -export function useHeliumViewer(): UseHeliumViewerResult { - const wsRef = useRef(null); - const pcRef = useRef(null); - const targetPeerIdRef = useRef(null); - const heartbeatRef = useRef | null>(null); - - const [status, setStatus] = useState("idle"); - const [streamUrl, setStreamUrl] = useState(null); - const [isConnected, setIsConnected] = useState(false); - - const sendMessage = useCallback((payload: object): void => { - const ws = wsRef.current; - if (!ws || ws.readyState !== WebSocket.OPEN) { - return; - } - - ws.send(JSON.stringify(payload)); - }, []); - - const cleanupPeerConnection = useCallback((): void => { - const pc = pcRef.current; - if (pc) { - pc.close(); - pcRef.current = null; - } - targetPeerIdRef.current = null; - setIsConnected(false); - }, []); - - const disconnect = useCallback((): void => { - if (heartbeatRef.current) { - clearInterval(heartbeatRef.current); - heartbeatRef.current = null; - } - - cleanupPeerConnection(); - setStreamUrl(null); - - const ws = wsRef.current; - if (ws) { - ws.close(); - wsRef.current = null; - } - - setStatus("disconnected"); - }, [cleanupPeerConnection]); - - const handleOffer = useCallback( - async (message: SignalingOfferEvent): Promise => { - setStatus("received offer"); - - cleanupPeerConnection(); - targetPeerIdRef.current = message.senderId; - - const pc = new RTCPeerConnection({ - iceServers: message.iceServers ?? [], - }); - const pcWithHandlers = pc as RTCPeerConnection & PeerConnectionHandlers; - pcRef.current = pc; - - pcWithHandlers.ontrack = (event): void => { - const stream = event.streams?.[0] as MediaStream | undefined; - if (!stream) { - return; - } - - setStreamUrl(stream.toURL()); - }; - - pcWithHandlers.onicecandidate = (event): void => { - if (!event.candidate || !targetPeerIdRef.current) { - return; - } - - sendMessage({ - event: "ice-candidate", - targetId: targetPeerIdRef.current, - candidate: event.candidate, - }); - }; - - pcWithHandlers.onconnectionstatechange = (): void => { - setStatus(`peer: ${pc.connectionState}`); - if (pc.connectionState === "connected") { - setIsConnected(true); - } - if (pc.connectionState === "failed" || pc.connectionState === "closed") { - setIsConnected(false); - } - }; - - await pc.setRemoteDescription(new RTCSessionDescription(message.sdp)); - const answer = await pc.createAnswer(); - await pc.setLocalDescription(answer); - - sendMessage({ - event: "answer", - targetId: message.senderId, - sdp: answer, - }); - - setStatus("sent answer"); - }, - [cleanupPeerConnection, sendMessage], - ); - - const handleIncomingMessage = useCallback( - async (event: MessageEvent): Promise => { - const message = JSON.parse(event.data) as IncomingSignalingMessage; - - if (message.event === "joined") { - setStatus(`joined room ${message.roomId}`); - return; - } - - if (message.event === "offer") { - await handleOffer(message); - return; - } - - if (message.event === "ice-candidate") { - const pc = pcRef.current; - if (!pc || !pc.remoteDescription) { - return; - } - - await pc.addIceCandidate(new RTCIceCandidate(message.candidate)); - return; - } - - if (message.event === "room-closed") { - disconnect(); - setStatus("room closed by host"); - return; - } - - if (message.event === "error") { - setStatus(`error: ${message.message}`); - } - }, - [disconnect, handleOffer], - ); - - const connect = useCallback( - (roomId: string): void => { - disconnect(); - - setStatus("connecting websocket"); - const ws = new WebSocket(getSignalingUrl()); - wsRef.current = ws; - - ws.onopen = (): void => { - setStatus("websocket connected"); - sendMessage({ event: "join-room", roomId }); - - heartbeatRef.current = setInterval(() => { - sendMessage({ event: "ping" }); - }, 15000); - }; - - ws.onmessage = (event): void => { - void handleIncomingMessage(event); - }; - - ws.onerror = (): void => { - setStatus("websocket error"); - }; - - ws.onclose = (): void => { - if (heartbeatRef.current) { - clearInterval(heartbeatRef.current); - heartbeatRef.current = null; - } - setStatus("websocket closed"); - setIsConnected(false); - }; - }, - [disconnect, handleIncomingMessage, sendMessage], - ); - - useEffect(() => { - return () => { - disconnect(); - }; - }, [disconnect]); - - return { - status, - streamUrl, - connect, - disconnect, - isConnected, - }; -} diff --git a/native-app/src/lib/presets.ts b/native-app/src/lib/presets.ts new file mode 100644 index 0000000..f663c35 --- /dev/null +++ b/native-app/src/lib/presets.ts @@ -0,0 +1,53 @@ +import { getHeliumBaseUrl } from "./signaling"; +import type { + NativeIceServer, + PresetResponse, + PresetsResponse, + PresetUser, +} from "../types/presets"; + +interface ApiErrorResponse { + statusCode?: number; + message?: string; +} + +async function fetchWithAuth( + path: string, + token: string, +): Promise { + const response = await fetch(`${getHeliumBaseUrl()}${path}`, { + headers: { + Authorization: `Bearer ${token}`, + }, + }); + + if (!response.ok) { + const body = (await response.json().catch(() => ({}))) as ApiErrorResponse; + const message = body.message ?? `Request failed: ${response.status}`; + throw new Error(message); + } + + return (await response.json()) as T; +} + +export async function getPresets(token: string): Promise { + const payload = await fetchWithAuth("/api/presets", token); + return payload.data ?? []; +} + +export async function getPresetIceServers( + token: string, + presetId: string, +): Promise { + const payload = await fetchWithAuth( + `/api/presets/${presetId}`, + token, + ); + const rawServers = payload.data?.iceServers; + + if (typeof rawServers === "string") { + return JSON.parse(rawServers) as NativeIceServer[]; + } + + return rawServers ?? []; +} diff --git a/native-app/src/lib/theme.ts b/native-app/src/lib/theme.ts new file mode 100644 index 0000000..2c273c1 --- /dev/null +++ b/native-app/src/lib/theme.ts @@ -0,0 +1,54 @@ +import { useColorScheme } from "react-native"; + +export interface AppTheme { + background: string; + foreground: string; + card: string; + border: string; + input: string; + muted: string; + mutedForeground: string; + primary: string; + primaryForeground: string; + secondary: string; + secondaryForeground: string; + accent: string; + destructive: string; +} + +const lightTheme: AppTheme = { + background: "#f0eff5", + foreground: "#4f4c64", + card: "#eceaf2", + border: "#e1dee9", + input: "#dfdce8", + muted: "#e7e5ee", + mutedForeground: "#66637d", + primary: "#a43ad7", + primaryForeground: "#ffffff", + secondary: "#be9bcd", + secondaryForeground: "#3f3452", + accent: "#d0cee0", + destructive: "#b4435a", +}; + +const darkTheme: AppTheme = { + background: "#30273b", + foreground: "#e4deec", + card: "#2a2234", + border: "#494055", + input: "#534a5f", + muted: "#3b3347", + mutedForeground: "#bbb3c7", + primary: "#d28ee8", + primaryForeground: "#48245f", + secondary: "#6d4a82", + secondaryForeground: "#eadcf1", + accent: "#5a5268", + destructive: "#d46f7a", +}; + +export function useAppTheme(): AppTheme { + const colorScheme = useColorScheme(); + return colorScheme === "dark" ? darkTheme : lightTheme; +} diff --git a/native-app/src/screens/SignInScreen.tsx b/native-app/src/screens/SignInScreen.tsx index 5182a03..5badce3 100644 --- a/native-app/src/screens/SignInScreen.tsx +++ b/native-app/src/screens/SignInScreen.tsx @@ -9,11 +9,15 @@ import { View, } from "react-native"; +import { useAppTheme } from "../lib/theme"; + export function SignInScreen() { + const theme = useAppTheme(); const { isLoaded, signIn, setActive } = useSignIn(); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [status, setStatus] = useState(""); + const styles = createStyles(theme); const onSignIn = async (): Promise => { if (!isLoaded) { @@ -73,7 +77,7 @@ export function SignInScreen() { {isLoaded ? ( Sign in ) : ( - + )} @@ -82,49 +86,51 @@ export function SignInScreen() { ); } -const styles = StyleSheet.create({ - container: { - alignItems: "stretch", - backgroundColor: "#f4f8fb", - flex: 1, - gap: 12, - justifyContent: "center", - padding: 24, - }, - title: { - color: "#0f1f33", - fontSize: 28, - fontWeight: "700", - textAlign: "center", - }, - subtitle: { - color: "#4a5f79", - marginBottom: 12, - textAlign: "center", - }, - input: { - backgroundColor: "#ffffff", - borderColor: "#c8d7ea", - borderRadius: 12, - borderWidth: 1, - color: "#11243d", - paddingHorizontal: 14, - paddingVertical: 12, - }, - button: { - alignItems: "center", - backgroundColor: "#1366d6", - borderRadius: 12, - paddingVertical: 12, - }, - buttonText: { - color: "#ffffff", - fontSize: 16, - fontWeight: "700", - }, - status: { - color: "#405166", - fontSize: 13, - textAlign: "center", - }, -}); +function createStyles(theme: ReturnType) { + return StyleSheet.create({ + container: { + alignItems: "stretch", + backgroundColor: theme.background, + flex: 1, + gap: 12, + justifyContent: "center", + padding: 24, + }, + title: { + color: theme.foreground, + fontSize: 28, + fontWeight: "700", + textAlign: "center", + }, + subtitle: { + color: theme.mutedForeground, + marginBottom: 12, + textAlign: "center", + }, + input: { + backgroundColor: theme.input, + borderColor: theme.border, + borderRadius: 12, + borderWidth: 1, + color: theme.foreground, + paddingHorizontal: 14, + paddingVertical: 12, + }, + button: { + alignItems: "center", + backgroundColor: theme.primary, + borderRadius: 12, + paddingVertical: 12, + }, + buttonText: { + color: theme.primaryForeground, + fontSize: 16, + fontWeight: "700", + }, + status: { + color: theme.mutedForeground, + fontSize: 13, + textAlign: "center", + }, + }); +} diff --git a/native-app/src/screens/StreamerScreen.tsx b/native-app/src/screens/StreamerScreen.tsx new file mode 100644 index 0000000..b0503d4 --- /dev/null +++ b/native-app/src/screens/StreamerScreen.tsx @@ -0,0 +1,295 @@ +import { useAuth } from "@clerk/clerk-expo"; +import { useEffect, useMemo, useState } from "react"; +import { + Pressable, + SafeAreaView, + ScrollView, + StyleSheet, + Text, + View, +} from "react-native"; +import { RTCView } from "react-native-webrtc"; + +import { useHeliumStreamer } from "../hooks/useHeliumStreamer"; +import { useAppTheme } from "../lib/theme"; +import { getPresetIceServers, getPresets } from "../lib/presets"; +import type { NativeIceServer, PresetUser } from "../types/presets"; + +export function StreamerScreen() { + const { getToken, signOut } = useAuth(); + const theme = useAppTheme(); + + const [presets, setPresets] = useState([]); + const [presetId, setPresetId] = useState(""); + const [iceServers, setIceServers] = useState([]); + const [presetStatus, setPresetStatus] = useState("loading presets"); + + const styles = useMemo(() => createStyles(theme), [theme]); + + const { + status, + roomCode, + viewerCount, + streamUrl, + isSharing, + startSharing, + stopSharing, + } = useHeliumStreamer(iceServers); + + useEffect(() => { + const loadPresets = async (): Promise => { + const token = await getToken(); + + if (!token) { + setPresetStatus("could not read auth token"); + return; + } + + try { + const availablePresets = await getPresets(token); + setPresets(availablePresets); + + if (!availablePresets.length) { + setPresetStatus("no presets found"); + return; + } + + const defaultPreset = + availablePresets.find((preset) => preset.isDefault) ?? availablePresets[0]; + + setPresetId(defaultPreset.presetId); + } catch (error) { + setPresetStatus(`failed to load presets: ${(error as Error).message}`); + } + }; + + void loadPresets(); + }, [getToken]); + + useEffect(() => { + const loadIceServers = async (): Promise => { + if (!presetId) { + return; + } + + const token = await getToken(); + if (!token) { + setPresetStatus("missing auth token for preset"); + return; + } + + try { + const servers = await getPresetIceServers(token, presetId); + setIceServers(servers); + setPresetStatus(`loaded ${servers.length} ICE server entries`); + } catch (error) { + setPresetStatus(`failed preset load: ${(error as Error).message}`); + } + }; + + void loadIceServers(); + }, [getToken, presetId]); + + return ( + + + Helium Streamer + Share your Android screen to Helium viewers + + + Preset + {presetStatus} + + + {presets.map((preset) => { + const selected = presetId === preset.presetId; + return ( + { + setPresetId(preset.presetId); + }} + style={[styles.presetItem, selected ? styles.presetItemSelected : null]} + > + + {preset.preset.name} + {preset.isDefault ? " (default)" : ""} + + + ); + })} + + + + + Session + Status: {status} + Viewers: {viewerCount} + {roomCode || "------"} + + + { + void startSharing(); + }} + style={styles.primaryButton} + > + Start screen share + + + + Stop + + + + + + {isSharing && streamUrl ? ( + + ) : ( + Screen preview appears after sharing starts + )} + + + { + void signOut(); + }} + style={styles.signOutButton} + > + Sign out + + + + ); +} + +function createStyles(theme: ReturnType) { + return StyleSheet.create({ + safeArea: { + backgroundColor: theme.background, + flex: 1, + }, + container: { + gap: 12, + padding: 16, + paddingBottom: 28, + }, + title: { + color: theme.foreground, + fontSize: 24, + fontWeight: "700", + }, + subtitle: { + color: theme.mutedForeground, + marginTop: -6, + }, + card: { + backgroundColor: theme.card, + borderColor: theme.border, + borderRadius: 14, + borderWidth: 1, + gap: 8, + padding: 12, + }, + cardTitle: { + color: theme.foreground, + fontSize: 17, + fontWeight: "700", + }, + small: { + color: theme.mutedForeground, + fontSize: 13, + }, + presetList: { + gap: 8, + }, + presetItem: { + backgroundColor: theme.input, + borderColor: theme.border, + borderRadius: 10, + borderWidth: 1, + paddingHorizontal: 10, + paddingVertical: 10, + }, + presetItemSelected: { + backgroundColor: theme.secondary, + borderColor: theme.primary, + }, + presetItemText: { + color: theme.foreground, + fontWeight: "600", + }, + presetItemTextSelected: { + color: theme.secondaryForeground, + }, + roomCode: { + color: theme.primary, + fontSize: 34, + fontWeight: "800", + letterSpacing: 2, + marginTop: 6, + }, + actions: { + flexDirection: "row", + gap: 8, + marginTop: 6, + }, + primaryButton: { + alignItems: "center", + backgroundColor: theme.primary, + borderRadius: 10, + flex: 1, + paddingVertical: 11, + }, + primaryButtonText: { + color: theme.primaryForeground, + fontWeight: "700", + }, + secondaryButton: { + alignItems: "center", + backgroundColor: theme.accent, + borderRadius: 10, + justifyContent: "center", + paddingHorizontal: 16, + paddingVertical: 11, + }, + secondaryButtonText: { + color: theme.foreground, + fontWeight: "700", + }, + preview: { + alignItems: "center", + backgroundColor: "#000000", + borderRadius: 14, + height: 220, + justifyContent: "center", + overflow: "hidden", + }, + video: { + height: "100%", + width: "100%", + }, + previewPlaceholder: { + color: theme.mutedForeground, + paddingHorizontal: 16, + textAlign: "center", + }, + signOutButton: { + alignItems: "center", + borderColor: theme.destructive, + borderRadius: 10, + borderWidth: 1, + paddingVertical: 10, + }, + signOutText: { + color: theme.destructive, + fontWeight: "700", + }, + }); +} diff --git a/native-app/src/screens/ViewerScreen.tsx b/native-app/src/screens/ViewerScreen.tsx deleted file mode 100644 index f9cd88a..0000000 --- a/native-app/src/screens/ViewerScreen.tsx +++ /dev/null @@ -1,150 +0,0 @@ -import { useState } from "react"; -import { useAuth } from "@clerk/clerk-expo"; -import { - Pressable, - SafeAreaView, - StyleSheet, - Text, - TextInput, - View, -} from "react-native"; -import { RTCView } from "react-native-webrtc"; - -import { useHeliumViewer } from "../hooks/useHeliumViewer"; - -export function ViewerScreen() { - const { signOut } = useAuth(); - const [roomCode, setRoomCode] = useState(""); - const { connect, disconnect, isConnected, status, streamUrl } = useHeliumViewer(); - - return ( - - - Helium Viewer - {status} - - { - setRoomCode(text.replace(/\D/g, "")); - }} - placeholder="Enter 6-digit room code" - placeholderTextColor="#6a7a8e" - style={styles.input} - value={roomCode} - /> - - - { - connect(roomCode); - }} - style={styles.primaryButton} - > - Connect - - - - Disconnect - - - { - void signOut(); - }} - style={styles.secondaryButton} - > - Sign out - - - - - {isConnected && streamUrl ? ( - - ) : ( - No stream yet - )} - - - - ); -} - -const styles = StyleSheet.create({ - safeArea: { - backgroundColor: "#f0f6fd", - flex: 1, - }, - container: { - flex: 1, - gap: 12, - padding: 18, - }, - title: { - color: "#12263c", - fontSize: 22, - fontWeight: "700", - }, - status: { - color: "#4f6278", - fontSize: 13, - }, - input: { - backgroundColor: "#ffffff", - borderColor: "#d3deeb", - borderRadius: 12, - borderWidth: 1, - color: "#10233b", - fontSize: 16, - paddingHorizontal: 12, - paddingVertical: 10, - }, - actions: { - flexDirection: "row", - flexWrap: "wrap", - gap: 8, - }, - primaryButton: { - backgroundColor: "#0e68de", - borderRadius: 10, - paddingHorizontal: 14, - paddingVertical: 10, - }, - primaryButtonText: { - color: "#ffffff", - fontWeight: "700", - }, - secondaryButton: { - backgroundColor: "#e4edf8", - borderRadius: 10, - paddingHorizontal: 14, - paddingVertical: 10, - }, - secondaryButtonText: { - color: "#21354d", - fontWeight: "600", - }, - videoWrap: { - alignItems: "center", - backgroundColor: "#0a121e", - borderRadius: 14, - flex: 1, - justifyContent: "center", - overflow: "hidden", - }, - video: { - height: "100%", - width: "100%", - }, - placeholder: { - color: "#92a3b8", - }, -}); diff --git a/native-app/src/types/presets.ts b/native-app/src/types/presets.ts new file mode 100644 index 0000000..219b976 --- /dev/null +++ b/native-app/src/types/presets.ts @@ -0,0 +1,33 @@ +export interface Preset { + id: string; + name: string; + createdBy: string; + iceServers: string | NativeIceServer[]; + shareable: boolean; + createdAt: string; +} + +export interface NativeIceServer { + urls: string | string[]; + username?: string; + credential?: string; +} + +export interface PresetUser { + id: string; + presetId: string; + userId: string; + isDefault: boolean; + addedAt: string; + preset: Preset; +} + +export interface PresetsResponse { + success: boolean; + data: PresetUser[]; +} + +export interface PresetResponse { + success: boolean; + data: Preset; +} diff --git a/native-app/src/types/signaling.ts b/native-app/src/types/signaling.ts index 7574970..01ba1e4 100644 --- a/native-app/src/types/signaling.ts +++ b/native-app/src/types/signaling.ts @@ -3,17 +3,50 @@ export interface NativeSessionDescriptionInit { sdp: string; } +export interface NativeIceServer { + urls: string | string[]; + username?: string; + credential?: string; +} + +export interface NativeIceCandidateInit { + candidate: string; + sdpMid?: string | null; + sdpMLineIndex?: number | null; +} + export interface SignalingOfferEvent { event: "offer"; sdp: NativeSessionDescriptionInit; senderId: string; - iceServers?: RTCIceServer[]; + iceServers?: NativeIceServer[]; } export interface SignalingIceCandidateEvent { event: "ice-candidate"; from: string; - candidate: RTCIceCandidateInit; + candidate: NativeIceCandidateInit; +} + +export interface SignalingViewerJoinedEvent { + event: "viewer-joined"; + viewerId: string; +} + +export interface SignalingAnswerEvent { + event: "answer"; + from: string; + sdp: NativeSessionDescriptionInit; +} + +export interface SignalingViewerLeftEvent { + event: "viewer-left"; + viewerId: string; +} + +export interface SignalingRoomCreatedEvent { + event: "room-created"; + roomId: string; } export interface SignalingJoinedEvent { @@ -36,4 +69,8 @@ export type IncomingSignalingMessage = | SignalingJoinedEvent | SignalingErrorEvent | SignalingRoomClosedEvent + | SignalingViewerJoinedEvent + | SignalingViewerLeftEvent + | SignalingRoomCreatedEvent + | SignalingAnswerEvent | { event: "pong" }; From 5538554f7ad88f236388ac4df3b29cbf7d3b5ddd Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:42:48 +0100 Subject: [PATCH 09/21] fix(native): stop preset detail request loop --- native-app/src/screens/StreamerScreen.tsx | 45 ++++++++++++----------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/native-app/src/screens/StreamerScreen.tsx b/native-app/src/screens/StreamerScreen.tsx index b0503d4..9e05a99 100644 --- a/native-app/src/screens/StreamerScreen.tsx +++ b/native-app/src/screens/StreamerScreen.tsx @@ -12,7 +12,7 @@ import { RTCView } from "react-native-webrtc"; import { useHeliumStreamer } from "../hooks/useHeliumStreamer"; import { useAppTheme } from "../lib/theme"; -import { getPresetIceServers, getPresets } from "../lib/presets"; +import { getPresets } from "../lib/presets"; import type { NativeIceServer, PresetUser } from "../types/presets"; export function StreamerScreen() { @@ -36,6 +36,10 @@ export function StreamerScreen() { stopSharing, } = useHeliumStreamer(iceServers); + const selectedPreset = useMemo(() => { + return presets.find((preset) => preset.presetId === presetId) ?? null; + }, [presetId, presets]); + useEffect(() => { const loadPresets = async (): Promise => { const token = await getToken(); @@ -64,31 +68,28 @@ export function StreamerScreen() { }; void loadPresets(); - }, [getToken]); + }, []); useEffect(() => { - const loadIceServers = async (): Promise => { - if (!presetId) { - return; - } + if (!selectedPreset) { + setIceServers([]); + return; + } - const token = await getToken(); - if (!token) { - setPresetStatus("missing auth token for preset"); - return; - } + try { + const rawIceServers = selectedPreset.preset.iceServers; + const parsedIceServers = + typeof rawIceServers === "string" + ? (JSON.parse(rawIceServers) as NativeIceServer[]) + : rawIceServers; - try { - const servers = await getPresetIceServers(token, presetId); - setIceServers(servers); - setPresetStatus(`loaded ${servers.length} ICE server entries`); - } catch (error) { - setPresetStatus(`failed preset load: ${(error as Error).message}`); - } - }; - - void loadIceServers(); - }, [getToken, presetId]); + setIceServers(parsedIceServers ?? []); + setPresetStatus(`loaded ${(parsedIceServers ?? []).length} ICE server entries`); + } catch { + setIceServers([]); + setPresetStatus("failed to parse ICE servers from preset"); + } + }, [selectedPreset]); return ( From e53b46def1579e4aee93f712c9f0d4b4135c0561 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:49:54 +0100 Subject: [PATCH 10/21] fix(native): serialize ICE candidates from Android peer --- native-app/src/hooks/useHeliumStreamer.ts | 41 +++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/native-app/src/hooks/useHeliumStreamer.ts b/native-app/src/hooks/useHeliumStreamer.ts index 2aecc05..3c25f83 100644 --- a/native-app/src/hooks/useHeliumStreamer.ts +++ b/native-app/src/hooks/useHeliumStreamer.ts @@ -11,6 +11,7 @@ import { getSignalingUrl } from "../lib/signaling"; import type { IncomingSignalingMessage, NativeIceServer, + NativeIceCandidateInit, NativeSessionDescriptionInit, } from "../types/signaling"; @@ -31,6 +32,25 @@ interface UseHeliumStreamerResult { stopSharing: () => void; } +function serializeIceCandidate(candidate: RTCIceCandidate): NativeIceCandidateInit { + const raw = candidate as unknown as { + candidate?: string; + sdpMid?: string | null; + sdpMLineIndex?: number | null; + toJSON?: () => NativeIceCandidateInit; + }; + + if (typeof raw.toJSON === "function") { + return raw.toJSON(); + } + + return { + candidate: raw.candidate ?? "", + sdpMid: raw.sdpMid ?? null, + sdpMLineIndex: raw.sdpMLineIndex ?? null, + }; +} + export function useHeliumStreamer( iceServers: NativeIceServer[], ): UseHeliumStreamerResult { @@ -113,10 +133,15 @@ export function useHeliumStreamer( return; } + const candidate = serializeIceCandidate(event.candidate); + if (!candidate.candidate) { + return; + } + sendMessage({ event: "ice-candidate", targetId: viewerId, - candidate: event.candidate, + candidate, }); }; @@ -199,11 +224,23 @@ export function useHeliumStreamer( } setStatus("requesting screen capture"); - const stream = await mediaDevices.getDisplayMedia(); + const stream = await (mediaDevices as unknown as { + getDisplayMedia: (constraints?: { + video?: boolean; + audio?: boolean; + }) => Promise; + }).getDisplayMedia({ + video: true, + audio: true, + }); streamRef.current = stream; setStreamUrl(stream.toURL()); setIsSharing(true); + const videoTrackCount = stream.getVideoTracks().length; + const audioTrackCount = stream.getAudioTracks().length; + setStatus(`capturing ${videoTrackCount} video / ${audioTrackCount} audio tracks`); + stream.getTracks().forEach((track) => { const streamTrack = track as unknown as MediaStreamTrack & { onended: (() => void) | null; From e5bc2ec353b963bc8c02a4773c452fe7fe0131fe Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:54:08 +0100 Subject: [PATCH 11/21] fix(native): enable Android media projection foreground service --- .../android/app/src/main/AndroidManifest.xml | 33 ++++++++++ .../dev/srizan/helium/viewer/MainActivity.kt | 66 +++++++++++++++++++ native-app/src/hooks/useHeliumStreamer.ts | 7 ++ native-app/src/screens/StreamerScreen.tsx | 8 ++- 4 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 native-app/android/app/src/main/AndroidManifest.xml create mode 100644 native-app/android/app/src/main/java/dev/srizan/helium/viewer/MainActivity.kt diff --git a/native-app/android/app/src/main/AndroidManifest.xml b/native-app/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..90568b7 --- /dev/null +++ b/native-app/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/native-app/android/app/src/main/java/dev/srizan/helium/viewer/MainActivity.kt b/native-app/android/app/src/main/java/dev/srizan/helium/viewer/MainActivity.kt new file mode 100644 index 0000000..59b18b8 --- /dev/null +++ b/native-app/android/app/src/main/java/dev/srizan/helium/viewer/MainActivity.kt @@ -0,0 +1,66 @@ +package dev.srizan.helium.viewer + +import android.os.Build +import android.os.Bundle + +import com.facebook.react.ReactActivity +import com.facebook.react.ReactActivityDelegate +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled +import com.facebook.react.defaults.DefaultReactActivityDelegate +import com.oney.WebRTCModule.WebRTCModuleOptions + +import expo.modules.ReactActivityDelegateWrapper + +class MainActivity : ReactActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + // Set the theme to AppTheme BEFORE onCreate to support + // coloring the background, status bar, and navigation bar. + // This is required for expo-splash-screen. + setTheme(R.style.AppTheme); + + val webrtcOptions = WebRTCModuleOptions.getInstance() + webrtcOptions.enableMediaProjectionService = true + + super.onCreate(null) + } + + /** + * Returns the name of the main component registered from JavaScript. This is used to schedule + * rendering of the component. + */ + override fun getMainComponentName(): String = "main" + + /** + * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] + * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] + */ + override fun createReactActivityDelegate(): ReactActivityDelegate { + return ReactActivityDelegateWrapper( + this, + BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, + object : DefaultReactActivityDelegate( + this, + mainComponentName, + fabricEnabled + ){}) + } + + /** + * Align the back button behavior with Android S + * where moving root activities to background instead of finishing activities. + * @see onBackPressed + */ + override fun invokeDefaultOnBackPressed() { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { + if (!moveTaskToBack(false)) { + // For non-root activities, use the default implementation to finish them. + super.invokeDefaultOnBackPressed() + } + return + } + + // Use the default back button implementation on Android S + // because it's doing more than [Activity.moveTaskToBack] in fact. + super.invokeDefaultOnBackPressed() + } +} diff --git a/native-app/src/hooks/useHeliumStreamer.ts b/native-app/src/hooks/useHeliumStreamer.ts index 3c25f83..a8030dc 100644 --- a/native-app/src/hooks/useHeliumStreamer.ts +++ b/native-app/src/hooks/useHeliumStreamer.ts @@ -239,6 +239,13 @@ export function useHeliumStreamer( const videoTrackCount = stream.getVideoTracks().length; const audioTrackCount = stream.getAudioTracks().length; + + if (!videoTrackCount) { + setStatus("screen capture started without video track"); + stopSharing(); + return; + } + setStatus(`capturing ${videoTrackCount} video / ${audioTrackCount} audio tracks`); stream.getTracks().forEach((track) => { diff --git a/native-app/src/screens/StreamerScreen.tsx b/native-app/src/screens/StreamerScreen.tsx index 9e05a99..8e2cb8d 100644 --- a/native-app/src/screens/StreamerScreen.tsx +++ b/native-app/src/screens/StreamerScreen.tsx @@ -151,7 +151,13 @@ export function StreamerScreen() { {isSharing && streamUrl ? ( - + ) : ( Screen preview appears after sharing starts )} From 79b29c3959bcd7501d441355ea7a38a170b5bc80 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:57:12 +0100 Subject: [PATCH 12/21] perf(native): reduce Android screen-share latency --- native-app/src/hooks/useHeliumStreamer.ts | 25 ++++++++++++++++++++++- native-app/src/screens/StreamerScreen.tsx | 20 +++++------------- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/native-app/src/hooks/useHeliumStreamer.ts b/native-app/src/hooks/useHeliumStreamer.ts index a8030dc..9039fbb 100644 --- a/native-app/src/hooks/useHeliumStreamer.ts +++ b/native-app/src/hooks/useHeliumStreamer.ts @@ -32,6 +32,25 @@ interface UseHeliumStreamerResult { stopSharing: () => void; } +async function applyLowLatencyEncoding( + sender: ReturnType, +): Promise { + const parameters = sender.getParameters(); + + if (!parameters.encodings || parameters.encodings.length === 0) { + return; + } + + parameters.degradationPreference = "maintain-framerate"; + + const [firstEncoding] = parameters.encodings; + firstEncoding.maxBitrate = 1_200_000; + firstEncoding.maxFramerate = 24; + firstEncoding.scaleResolutionDownBy = 2; + + await sender.setParameters(parameters); +} + function serializeIceCandidate(candidate: RTCIceCandidate): NativeIceCandidateInit { const raw = candidate as unknown as { candidate?: string; @@ -125,7 +144,11 @@ export function useHeliumStreamer( setViewerCount(Object.keys(peersRef.current).length); localStream.getTracks().forEach((track) => { - peer.addTrack(track, localStream); + const sender = peer.addTrack(track, localStream); + + if (track.kind === "video") { + void applyLowLatencyEncoding(sender); + } }); peerWithHandlers.onicecandidate = (event): void => { diff --git a/native-app/src/screens/StreamerScreen.tsx b/native-app/src/screens/StreamerScreen.tsx index 8e2cb8d..c408323 100644 --- a/native-app/src/screens/StreamerScreen.tsx +++ b/native-app/src/screens/StreamerScreen.tsx @@ -8,7 +8,6 @@ import { Text, View, } from "react-native"; -import { RTCView } from "react-native-webrtc"; import { useHeliumStreamer } from "../hooks/useHeliumStreamer"; import { useAppTheme } from "../lib/theme"; @@ -30,7 +29,6 @@ export function StreamerScreen() { status, roomCode, viewerCount, - streamUrl, isSharing, startSharing, stopSharing, @@ -150,16 +148,12 @@ export function StreamerScreen() { - {isSharing && streamUrl ? ( - + {isSharing ? ( + + Screen capture active. Preview disabled to reduce latency. + ) : ( - Screen preview appears after sharing starts + Start sharing to broadcast this phone screen )} @@ -278,10 +272,6 @@ function createStyles(theme: ReturnType) { justifyContent: "center", overflow: "hidden", }, - video: { - height: "100%", - width: "100%", - }, previewPlaceholder: { color: theme.mutedForeground, paddingHorizontal: 16, From c3cc78794f69d1745027a3b34613a1eef115c0d8 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 19:04:30 +0100 Subject: [PATCH 13/21] feat(native): add English and Spanish i18n support --- native-app/App.tsx | 12 +- native-app/README.md | 1 + native-app/src/hooks/useHeliumStreamer.ts | 51 +++++--- native-app/src/i18n/I18nProvider.tsx | 54 +++++++++ native-app/src/i18n/messages.ts | 138 ++++++++++++++++++++++ native-app/src/screens/SignInScreen.tsx | 20 ++-- native-app/src/screens/StreamerScreen.tsx | 52 ++++---- 7 files changed, 282 insertions(+), 46 deletions(-) create mode 100644 native-app/src/i18n/I18nProvider.tsx create mode 100644 native-app/src/i18n/messages.ts diff --git a/native-app/App.tsx b/native-app/App.tsx index 1ed6fe1..fdd26dc 100644 --- a/native-app/App.tsx +++ b/native-app/App.tsx @@ -4,6 +4,7 @@ import { ClerkProvider, SignedIn, SignedOut, useAuth } from "@clerk/clerk-expo"; import { tokenCache } from "@clerk/clerk-expo/token-cache"; import { ActivityIndicator, StyleSheet, Text, View } from "react-native"; +import { I18nProvider, useI18n } from "./src/i18n/I18nProvider"; import { useAppTheme } from "./src/lib/theme"; import { SignInScreen } from "./src/screens/SignInScreen"; import { StreamerScreen } from "./src/screens/StreamerScreen"; @@ -35,13 +36,22 @@ function AuthReadyGate() { } export default function App() { + return ( + + + + ); +} + +function AppContent() { const theme = useAppTheme(); + const { t } = useI18n(); if (!publishableKey) { return ( - Missing EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY + {t("missingClerkKey")} ); diff --git a/native-app/README.md b/native-app/README.md index 6435feb..d130961 100644 --- a/native-app/README.md +++ b/native-app/README.md @@ -8,6 +8,7 @@ Simple React Native streamer app that: - Captures Android screen with `getDisplayMedia()` - Hosts a room on `/ws/signaling` and streams to connected viewers - Uses matching light/dark palette semantics from the Helium web app +- Includes built-in i18n for English and Spanish based on device locale ## Auth implementation notes (from Clerk docs via Context7) diff --git a/native-app/src/hooks/useHeliumStreamer.ts b/native-app/src/hooks/useHeliumStreamer.ts index 9039fbb..8b77294 100644 --- a/native-app/src/hooks/useHeliumStreamer.ts +++ b/native-app/src/hooks/useHeliumStreamer.ts @@ -8,6 +8,7 @@ import { } from "react-native-webrtc"; import { getSignalingUrl } from "../lib/signaling"; +import type { MessageKey } from "../i18n/messages"; import type { IncomingSignalingMessage, NativeIceServer, @@ -23,7 +24,8 @@ interface PeerConnectionHandlers { } interface UseHeliumStreamerResult { - status: string; + statusKey: MessageKey; + statusParams?: Record; roomCode: string; streamUrl: string | null; viewerCount: number; @@ -78,7 +80,10 @@ export function useHeliumStreamer( const heartbeatRef = useRef | null>(null); const peersRef = useRef>({}); - const [status, setStatus] = useState("idle"); + const [statusKey, setStatusKey] = useState("statusIdle"); + const [statusParams, setStatusParams] = useState< + Record | undefined + >(undefined); const [roomCode, setRoomCode] = useState(""); const [streamUrl, setStreamUrl] = useState(null); const [viewerCount, setViewerCount] = useState(0); @@ -126,7 +131,8 @@ export function useHeliumStreamer( setRoomCode(""); setStreamUrl(null); setIsSharing(false); - setStatus("stopped"); + setStatusKey("statusStopped"); + setStatusParams(undefined); }, [closeAllPeers]); const handleViewerJoined = useCallback( @@ -169,7 +175,8 @@ export function useHeliumStreamer( }; peerWithHandlers.onconnectionstatechange = (): void => { - setStatus(`viewer ${viewerId}: ${peer.connectionState}`); + setStatusKey("statusPeerState"); + setStatusParams({ state: peer.connectionState }); }; const offer = (await peer.createOffer()) as NativeSessionDescriptionInit; @@ -191,12 +198,14 @@ export function useHeliumStreamer( if (message.event === "room-created") { setRoomCode(message.roomId); - setStatus(`room code: ${message.roomId}`); + setStatusKey("statusRoomCreated"); + setStatusParams({ roomId: message.roomId }); return; } if (message.event === "viewer-joined") { - setStatus(`viewer joined: ${message.viewerId}`); + setStatusKey("statusViewerJoined"); + setStatusParams(undefined); await handleViewerJoined(message.viewerId); return; } @@ -232,7 +241,8 @@ export function useHeliumStreamer( } if (message.event === "error") { - setStatus(`error: ${message.message}`); + setStatusKey("statusError"); + setStatusParams({ message: message.message }); } }, [handleViewerJoined], @@ -242,11 +252,13 @@ export function useHeliumStreamer( stopSharing(); if (!iceServers.length) { - setStatus("no preset selected"); + setStatusKey("statusNoPreset"); + setStatusParams(undefined); return; } - setStatus("requesting screen capture"); + setStatusKey("statusRequestingCapture"); + setStatusParams(undefined); const stream = await (mediaDevices as unknown as { getDisplayMedia: (constraints?: { video?: boolean; @@ -264,12 +276,14 @@ export function useHeliumStreamer( const audioTrackCount = stream.getAudioTracks().length; if (!videoTrackCount) { - setStatus("screen capture started without video track"); + setStatusKey("statusNoVideoTrack"); + setStatusParams(undefined); stopSharing(); return; } - setStatus(`capturing ${videoTrackCount} video / ${audioTrackCount} audio tracks`); + setStatusKey("statusCapturing"); + setStatusParams({ video: videoTrackCount, audio: audioTrackCount }); stream.getTracks().forEach((track) => { const streamTrack = track as unknown as MediaStreamTrack & { @@ -280,13 +294,15 @@ export function useHeliumStreamer( }; }); - setStatus("connecting signaling"); + setStatusKey("statusConnectingSignaling"); + setStatusParams(undefined); const ws = new WebSocket(getSignalingUrl()); wsRef.current = ws; ws.onopen = (): void => { - setStatus("creating room"); + setStatusKey("statusCreatingRoom"); + setStatusParams(undefined); sendMessage({ event: "create-room" }); heartbeatRef.current = setInterval(() => { @@ -299,7 +315,8 @@ export function useHeliumStreamer( }; ws.onerror = (): void => { - setStatus("websocket error"); + setStatusKey("statusWebsocketError"); + setStatusParams(undefined); }; ws.onclose = (): void => { @@ -308,7 +325,8 @@ export function useHeliumStreamer( heartbeatRef.current = null; } if (isSharing) { - setStatus("websocket closed"); + setStatusKey("statusWebsocketClosed"); + setStatusParams(undefined); } }; }, [handleIncomingMessage, iceServers, isSharing, sendMessage, stopSharing]); @@ -320,7 +338,8 @@ export function useHeliumStreamer( }, [stopSharing]); return { - status, + statusKey, + statusParams, roomCode, streamUrl, viewerCount, diff --git a/native-app/src/i18n/I18nProvider.tsx b/native-app/src/i18n/I18nProvider.tsx new file mode 100644 index 0000000..1d100e0 --- /dev/null +++ b/native-app/src/i18n/I18nProvider.tsx @@ -0,0 +1,54 @@ +import { createContext, useContext, useMemo } from "react"; + +import { messages, type Locale, type MessageKey } from "./messages"; + +interface I18nContextValue { + locale: Locale; + t: (key: MessageKey, params?: Record) => string; +} + +const I18nContext = createContext(null); + +function resolveLocale(): Locale { + const locale = Intl.DateTimeFormat().resolvedOptions().locale.toLowerCase(); + return locale.startsWith("es") ? "es" : "en"; +} + +function translate( + locale: Locale, + key: MessageKey, + params?: Record, +): string { + const template = messages[locale][key] ?? messages.en[key] ?? key; + + if (!params) { + return template; + } + + return Object.entries(params).reduce((result, [paramKey, value]) => { + return result.replaceAll(`{${paramKey}}`, String(value)); + }, template); +} + +export function I18nProvider({ children }: { children: React.ReactNode }) { + const locale = resolveLocale(); + + const value = useMemo(() => { + return { + locale, + t: (key, params) => translate(locale, key, params), + }; + }, [locale]); + + return {children}; +} + +export function useI18n(): I18nContextValue { + const context = useContext(I18nContext); + + if (!context) { + throw new Error("useI18n must be used within I18nProvider"); + } + + return context; +} diff --git a/native-app/src/i18n/messages.ts b/native-app/src/i18n/messages.ts new file mode 100644 index 0000000..6d61f15 --- /dev/null +++ b/native-app/src/i18n/messages.ts @@ -0,0 +1,138 @@ +export type Locale = "en" | "es"; + +export type MessageKey = + | "missingClerkKey" + | "appTitle" + | "signInSubtitle" + | "email" + | "password" + | "signIn" + | "signingIn" + | "signedIn" + | "signInFailed" + | "needsExtraStep" + | "loadingPresets" + | "couldNotReadToken" + | "noPresetsFound" + | "loadedIceServers" + | "failedToLoadPresets" + | "failedToParsePreset" + | "streamerTitle" + | "streamerSubtitle" + | "preset" + | "session" + | "status" + | "viewers" + | "defaultLabel" + | "startShare" + | "stop" + | "signOut" + | "previewActive" + | "previewIdle" + | "statusIdle" + | "statusStopped" + | "statusNoPreset" + | "statusRequestingCapture" + | "statusNoVideoTrack" + | "statusCapturing" + | "statusConnectingSignaling" + | "statusCreatingRoom" + | "statusRoomCreated" + | "statusViewerJoined" + | "statusPeerState" + | "statusWebsocketError" + | "statusWebsocketClosed" + | "statusError"; + +type MessageMap = Record; + +export const messages: Record = { + en: { + missingClerkKey: "Missing EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY", + appTitle: "Helium Native", + signInSubtitle: "Sign in with Clerk", + email: "Email", + password: "Password", + signIn: "Sign in", + signingIn: "Signing in...", + signedIn: "Signed in", + signInFailed: "Sign-in failed", + needsExtraStep: "Needs extra step: {status}", + loadingPresets: "Loading presets", + couldNotReadToken: "Could not read auth token", + noPresetsFound: "No presets found", + loadedIceServers: "Loaded {count} ICE server entries", + failedToLoadPresets: "Failed to load presets: {message}", + failedToParsePreset: "Failed to parse ICE servers from preset", + streamerTitle: "Helium Streamer", + streamerSubtitle: "Share your Android screen to Helium viewers", + preset: "Preset", + session: "Session", + status: "Status", + viewers: "Viewers", + defaultLabel: "default", + startShare: "Start screen share", + stop: "Stop", + signOut: "Sign out", + previewActive: "Screen capture active. Preview disabled to reduce latency.", + previewIdle: "Start sharing to broadcast this phone screen", + statusIdle: "Idle", + statusStopped: "Stopped", + statusNoPreset: "No preset selected", + statusRequestingCapture: "Requesting screen capture", + statusNoVideoTrack: "Screen capture started without video track", + statusCapturing: "Capturing {video} video / {audio} audio tracks", + statusConnectingSignaling: "Connecting signaling", + statusCreatingRoom: "Creating room", + statusRoomCreated: "Room code: {roomId}", + statusViewerJoined: "Viewer joined", + statusPeerState: "Peer state: {state}", + statusWebsocketError: "WebSocket error", + statusWebsocketClosed: "WebSocket closed", + statusError: "Error: {message}", + }, + es: { + missingClerkKey: "Falta EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY", + appTitle: "Helium Nativo", + signInSubtitle: "Inicia sesion con Clerk", + email: "Correo", + password: "Contrasena", + signIn: "Iniciar sesion", + signingIn: "Iniciando sesion...", + signedIn: "Sesion iniciada", + signInFailed: "Error al iniciar sesion", + needsExtraStep: "Falta un paso adicional: {status}", + loadingPresets: "Cargando presets", + couldNotReadToken: "No se pudo leer el token", + noPresetsFound: "No se encontraron presets", + loadedIceServers: "Se cargaron {count} entradas ICE", + failedToLoadPresets: "Error al cargar presets: {message}", + failedToParsePreset: "Error al parsear ICE del preset", + streamerTitle: "Helium Emisor", + streamerSubtitle: "Comparte la pantalla de Android con Helium", + preset: "Preset", + session: "Sesion", + status: "Estado", + viewers: "Espectadores", + defaultLabel: "predeterminado", + startShare: "Iniciar pantalla", + stop: "Detener", + signOut: "Cerrar sesion", + previewActive: "Captura activa. Vista previa desactivada para menor latencia.", + previewIdle: "Inicia la captura para transmitir esta pantalla", + statusIdle: "En espera", + statusStopped: "Detenido", + statusNoPreset: "No hay preset seleccionado", + statusRequestingCapture: "Solicitando captura de pantalla", + statusNoVideoTrack: "La captura inicio sin pista de video", + statusCapturing: "Capturando {video} video / {audio} audio", + statusConnectingSignaling: "Conectando senalizacion", + statusCreatingRoom: "Creando sala", + statusRoomCreated: "Codigo de sala: {roomId}", + statusViewerJoined: "Se unio un espectador", + statusPeerState: "Estado del peer: {state}", + statusWebsocketError: "Error de WebSocket", + statusWebsocketClosed: "WebSocket cerrado", + statusError: "Error: {message}", + }, +}; diff --git a/native-app/src/screens/SignInScreen.tsx b/native-app/src/screens/SignInScreen.tsx index 5badce3..861a9f1 100644 --- a/native-app/src/screens/SignInScreen.tsx +++ b/native-app/src/screens/SignInScreen.tsx @@ -10,9 +10,11 @@ import { } from "react-native"; import { useAppTheme } from "../lib/theme"; +import { useI18n } from "../i18n/I18nProvider"; export function SignInScreen() { const theme = useAppTheme(); + const { t } = useI18n(); const { isLoaded, signIn, setActive } = useSignIn(); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); @@ -24,7 +26,7 @@ export function SignInScreen() { return; } - setStatus("Signing in..."); + setStatus(t("signingIn")); try { const attempt = await signIn.create({ @@ -34,33 +36,33 @@ export function SignInScreen() { if (attempt.status === "complete") { await setActive({ session: attempt.createdSessionId }); - setStatus("Signed in"); + setStatus(t("signedIn")); return; } - setStatus(`Needs extra step: ${attempt.status}`); + setStatus(t("needsExtraStep", { status: String(attempt.status) })); } catch { - setStatus("Sign-in failed"); + setStatus(t("signInFailed")); } }; return ( - Helium Native - Sign in with Clerk + {t("appTitle")} + {t("signInSubtitle")} {isLoaded ? ( - Sign in + {t("signIn")} ) : ( )} diff --git a/native-app/src/screens/StreamerScreen.tsx b/native-app/src/screens/StreamerScreen.tsx index c408323..dd65ce7 100644 --- a/native-app/src/screens/StreamerScreen.tsx +++ b/native-app/src/screens/StreamerScreen.tsx @@ -10,6 +10,8 @@ import { } from "react-native"; import { useHeliumStreamer } from "../hooks/useHeliumStreamer"; +import { useI18n } from "../i18n/I18nProvider"; +import type { MessageKey } from "../i18n/messages"; import { useAppTheme } from "../lib/theme"; import { getPresets } from "../lib/presets"; import type { NativeIceServer, PresetUser } from "../types/presets"; @@ -17,16 +19,21 @@ import type { NativeIceServer, PresetUser } from "../types/presets"; export function StreamerScreen() { const { getToken, signOut } = useAuth(); const theme = useAppTheme(); + const { t } = useI18n(); const [presets, setPresets] = useState([]); const [presetId, setPresetId] = useState(""); const [iceServers, setIceServers] = useState([]); - const [presetStatus, setPresetStatus] = useState("loading presets"); + const [presetStatusKey, setPresetStatusKey] = useState("loadingPresets"); + const [presetStatusParams, setPresetStatusParams] = useState< + Record | undefined + >(undefined); const styles = useMemo(() => createStyles(theme), [theme]); const { - status, + statusKey, + statusParams, roomCode, viewerCount, isSharing, @@ -43,7 +50,8 @@ export function StreamerScreen() { const token = await getToken(); if (!token) { - setPresetStatus("could not read auth token"); + setPresetStatusKey("couldNotReadToken"); + setPresetStatusParams(undefined); return; } @@ -52,7 +60,8 @@ export function StreamerScreen() { setPresets(availablePresets); if (!availablePresets.length) { - setPresetStatus("no presets found"); + setPresetStatusKey("noPresetsFound"); + setPresetStatusParams(undefined); return; } @@ -61,7 +70,8 @@ export function StreamerScreen() { setPresetId(defaultPreset.presetId); } catch (error) { - setPresetStatus(`failed to load presets: ${(error as Error).message}`); + setPresetStatusKey("failedToLoadPresets"); + setPresetStatusParams({ message: (error as Error).message }); } }; @@ -82,22 +92,24 @@ export function StreamerScreen() { : rawIceServers; setIceServers(parsedIceServers ?? []); - setPresetStatus(`loaded ${(parsedIceServers ?? []).length} ICE server entries`); + setPresetStatusKey("loadedIceServers"); + setPresetStatusParams({ count: (parsedIceServers ?? []).length }); } catch { setIceServers([]); - setPresetStatus("failed to parse ICE servers from preset"); + setPresetStatusKey("failedToParsePreset"); + setPresetStatusParams(undefined); } }, [selectedPreset]); return ( - Helium Streamer - Share your Android screen to Helium viewers + {t("streamerTitle")} + {t("streamerSubtitle")} - Preset - {presetStatus} + {t("preset")} + {t(presetStatusKey, presetStatusParams)} {presets.map((preset) => { @@ -117,7 +129,7 @@ export function StreamerScreen() { ]} > {preset.preset.name} - {preset.isDefault ? " (default)" : ""} + {preset.isDefault ? ` (${t("defaultLabel")})` : ""} ); @@ -126,9 +138,9 @@ export function StreamerScreen() { - Session - Status: {status} - Viewers: {viewerCount} + {t("session")} + {t("status")}: {t(statusKey, statusParams)} + {t("viewers")}: {viewerCount} {roomCode || "------"} @@ -138,11 +150,11 @@ export function StreamerScreen() { }} style={styles.primaryButton} > - Start screen share + {t("startShare")} - Stop + {t("stop")} @@ -150,10 +162,10 @@ export function StreamerScreen() { {isSharing ? ( - Screen capture active. Preview disabled to reduce latency. + {t("previewActive")} ) : ( - Start sharing to broadcast this phone screen + {t("previewIdle")} )} @@ -163,7 +175,7 @@ export function StreamerScreen() { }} style={styles.signOutButton} > - Sign out + {t("signOut")} From 5454339d46fa0adf0f9c4deb55e3373ca6908f89 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 13 Feb 2026 23:17:58 +0100 Subject: [PATCH 14/21] feat: add splash --- README.md | 4 + mobile-wrapper/README.md | 31 -- mobile-wrapper/android/.gitignore | 101 ----- mobile-wrapper/android/app/.gitignore | 2 - mobile-wrapper/android/app/build.gradle | 54 --- .../android/app/capacitor.build.gradle | 20 - mobile-wrapper/android/app/proguard-rules.pro | 21 -- .../myapp/ExampleInstrumentedTest.java | 26 -- .../android/app/src/main/AndroidManifest.xml | 41 -- .../srizan/helium/mobile/MainActivity.java | 5 - .../main/res/drawable-land-hdpi/splash.png | Bin 7705 -> 0 bytes .../main/res/drawable-land-mdpi/splash.png | Bin 4040 -> 0 bytes .../main/res/drawable-land-xhdpi/splash.png | Bin 9251 -> 0 bytes .../main/res/drawable-land-xxhdpi/splash.png | Bin 13984 -> 0 bytes .../main/res/drawable-land-xxxhdpi/splash.png | Bin 17683 -> 0 bytes .../main/res/drawable-port-hdpi/splash.png | Bin 7934 -> 0 bytes .../main/res/drawable-port-mdpi/splash.png | Bin 4096 -> 0 bytes .../main/res/drawable-port-xhdpi/splash.png | Bin 9875 -> 0 bytes .../main/res/drawable-port-xxhdpi/splash.png | Bin 13346 -> 0 bytes .../main/res/drawable-port-xxxhdpi/splash.png | Bin 17489 -> 0 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 -- .../res/drawable/ic_launcher_background.xml | 170 --------- .../app/src/main/res/drawable/splash.png | Bin 4040 -> 0 bytes .../app/src/main/res/layout/activity_main.xml | 12 - .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 - .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2786 -> 0 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 3450 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4341 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1869 -> 0 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 2110 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2725 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3981 -> 0 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 5036 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6593 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6644 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 9793 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10455 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9441 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 15529 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 15916 -> 0 bytes .../res/values/ic_launcher_background.xml | 4 - .../app/src/main/res/values/strings.xml | 7 - .../app/src/main/res/values/styles.xml | 22 -- .../app/src/main/res/xml/file_paths.xml | 5 - .../getcapacitor/myapp/ExampleUnitTest.java | 18 - mobile-wrapper/android/build.gradle | 29 -- .../android/capacitor.settings.gradle | 9 - mobile-wrapper/android/gradle.properties | 22 -- .../android/gradle/wrapper/gradle-wrapper.jar | Bin 43583 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 - mobile-wrapper/android/gradlew | 252 ------------- mobile-wrapper/android/gradlew.bat | 94 ----- mobile-wrapper/android/settings.gradle | 5 - mobile-wrapper/android/variables.gradle | 16 - mobile-wrapper/capacitor.config.ts | 12 - mobile-wrapper/index.html | 12 - mobile-wrapper/package.json | 31 -- mobile-wrapper/src/App.tsx | 60 --- mobile-wrapper/src/main.tsx | 16 - mobile-wrapper/src/styles.css | 91 ----- mobile-wrapper/tsconfig.json | 20 - mobile-wrapper/vite.config.ts | 7 - native-app/app.json | 24 +- .../images/adaptive-icon-monochrome.png | Bin 0 -> 29379 bytes native-app/assets/images/adaptive-icon.png | Bin 0 -> 29379 bytes native-app/assets/images/icon.png | Bin 0 -> 1198 bytes native-app/assets/images/logo-brand.svg | 18 + native-app/assets/images/logo-white.svg | 18 + native-app/assets/images/splash-icon-dark.png | Bin 0 -> 52516 bytes native-app/assets/images/splash-icon.png | Bin 0 -> 144244 bytes native-app/package.json | 1 + native-app/src/components/ui/Button.tsx | 138 +++++++ native-app/src/components/ui/Card.tsx | 87 +++++ native-app/src/components/ui/Input.tsx | 55 +++ native-app/src/components/ui/index.ts | 3 + native-app/src/i18n/messages.ts | 32 +- native-app/src/lib/theme.ts | 75 ++-- native-app/src/screens/SignInScreen.tsx | 135 ++++--- native-app/src/screens/StreamerScreen.tsx | 205 ++++------ pnpm-lock.yaml | 355 +----------------- 81 files changed, 568 insertions(+), 1848 deletions(-) delete mode 100644 mobile-wrapper/README.md delete mode 100644 mobile-wrapper/android/.gitignore delete mode 100644 mobile-wrapper/android/app/.gitignore delete mode 100644 mobile-wrapper/android/app/build.gradle delete mode 100644 mobile-wrapper/android/app/capacitor.build.gradle delete mode 100644 mobile-wrapper/android/app/proguard-rules.pro delete mode 100644 mobile-wrapper/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java delete mode 100644 mobile-wrapper/android/app/src/main/AndroidManifest.xml delete mode 100644 mobile-wrapper/android/app/src/main/java/dev/srizan/helium/mobile/MainActivity.java delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-hdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-mdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-xhdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-xxhdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-land-xxxhdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-hdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-mdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-xhdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-xxhdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-port-xxxhdpi/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable/ic_launcher_background.xml delete mode 100644 mobile-wrapper/android/app/src/main/res/drawable/splash.png delete mode 100644 mobile-wrapper/android/app/src/main/res/layout/activity_main.xml delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png delete mode 100644 mobile-wrapper/android/app/src/main/res/values/ic_launcher_background.xml delete mode 100644 mobile-wrapper/android/app/src/main/res/values/strings.xml delete mode 100644 mobile-wrapper/android/app/src/main/res/values/styles.xml delete mode 100644 mobile-wrapper/android/app/src/main/res/xml/file_paths.xml delete mode 100644 mobile-wrapper/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java delete mode 100644 mobile-wrapper/android/build.gradle delete mode 100644 mobile-wrapper/android/capacitor.settings.gradle delete mode 100644 mobile-wrapper/android/gradle.properties delete mode 100644 mobile-wrapper/android/gradle/wrapper/gradle-wrapper.jar delete mode 100644 mobile-wrapper/android/gradle/wrapper/gradle-wrapper.properties delete mode 100755 mobile-wrapper/android/gradlew delete mode 100644 mobile-wrapper/android/gradlew.bat delete mode 100644 mobile-wrapper/android/settings.gradle delete mode 100644 mobile-wrapper/android/variables.gradle delete mode 100644 mobile-wrapper/capacitor.config.ts delete mode 100644 mobile-wrapper/index.html delete mode 100644 mobile-wrapper/package.json delete mode 100644 mobile-wrapper/src/App.tsx delete mode 100644 mobile-wrapper/src/main.tsx delete mode 100644 mobile-wrapper/src/styles.css delete mode 100644 mobile-wrapper/tsconfig.json delete mode 100644 mobile-wrapper/vite.config.ts create mode 100644 native-app/assets/images/adaptive-icon-monochrome.png create mode 100644 native-app/assets/images/adaptive-icon.png create mode 100644 native-app/assets/images/icon.png create mode 100644 native-app/assets/images/logo-brand.svg create mode 100644 native-app/assets/images/logo-white.svg create mode 100644 native-app/assets/images/splash-icon-dark.png create mode 100644 native-app/assets/images/splash-icon.png create mode 100644 native-app/src/components/ui/Button.tsx create mode 100644 native-app/src/components/ui/Card.tsx create mode 100644 native-app/src/components/ui/Input.tsx create mode 100644 native-app/src/components/ui/index.ts diff --git a/README.md b/README.md index 2d3ef2e..e543c9a 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,7 @@ effortless webrtc screensharing +# ai usage transparency + +i maintain full control of the website, while the android and electron apps are "controlled" by the ai. +i, of course, review code, but would like to implement stuff on \ No newline at end of file diff --git a/mobile-wrapper/README.md b/mobile-wrapper/README.md deleted file mode 100644 index b4e07b7..0000000 --- a/mobile-wrapper/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Helium Mobile Wrapper (Android) - -This is a TypeScript mobile wrapper built with React + Capacitor for opening -the Helium web app on Android. - -## Why this approach - -- Capacitor keeps the project in TypeScript. -- The app first tries to open Helium directly in Google Chrome on Android. -- A fallback button opens Helium with the default browser. - -## Setup - -```bash -pnpm -C mobile-wrapper install -pnpm -C mobile-wrapper build -pnpm -C mobile-wrapper cap:android:add -pnpm -C mobile-wrapper cap:sync -pnpm -C mobile-wrapper cap:android:open -``` - -Then build/run from Android Studio. - -## Notes on screen sharing with audio - -- Android support for screen-capture audio depends on OS version, Chrome - version, OEM restrictions, and user permissions. -- If audio is unavailable, update Android + Chrome and confirm audio capture is - enabled in the system screen-share dialog. -- A pure in-app WebView wrapper is less reliable for audio capture than Chrome - Custom Tabs on Android. diff --git a/mobile-wrapper/android/.gitignore b/mobile-wrapper/android/.gitignore deleted file mode 100644 index 48354a3..0000000 --- a/mobile-wrapper/android/.gitignore +++ /dev/null @@ -1,101 +0,0 @@ -# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore - -# Built application files -*.apk -*.aar -*.ap_ -*.aab - -# Files for the ART/Dalvik VM -*.dex - -# Java class files -*.class - -# Generated files -bin/ -gen/ -out/ -# Uncomment the following line in case you need and you don't have the release build type files in your app -# release/ - -# Gradle files -.gradle/ -build/ - -# Local configuration file (sdk path, etc) -local.properties - -# Proguard folder generated by Eclipse -proguard/ - -# Log Files -*.log - -# Android Studio Navigation editor temp files -.navigation/ - -# Android Studio captures folder -captures/ - -# IntelliJ -*.iml -.idea/workspace.xml -.idea/tasks.xml -.idea/gradle.xml -.idea/assetWizardSettings.xml -.idea/dictionaries -.idea/libraries -# Android Studio 3 in .gitignore file. -.idea/caches -.idea/modules.xml -# Comment next line if keeping position of elements in Navigation Editor is relevant for you -.idea/navEditor.xml - -# Keystore files -# Uncomment the following lines if you do not want to check your keystore files in. -#*.jks -#*.keystore - -# External native build folder generated in Android Studio 2.2 and later -.externalNativeBuild -.cxx/ - -# Google Services (e.g. APIs or Firebase) -# google-services.json - -# Freeline -freeline.py -freeline/ -freeline_project_description.json - -# fastlane -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots -fastlane/test_output -fastlane/readme.md - -# Version control -vcs.xml - -# lint -lint/intermediates/ -lint/generated/ -lint/outputs/ -lint/tmp/ -# lint/reports/ - -# Android Profiling -*.hprof - -# Cordova plugins for Capacitor -capacitor-cordova-android-plugins - -# Copied web assets -app/src/main/assets/public - -# Generated Config files -app/src/main/assets/capacitor.config.json -app/src/main/assets/capacitor.plugins.json -app/src/main/res/xml/config.xml diff --git a/mobile-wrapper/android/app/.gitignore b/mobile-wrapper/android/app/.gitignore deleted file mode 100644 index 043df80..0000000 --- a/mobile-wrapper/android/app/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build/* -!/build/.npmkeep diff --git a/mobile-wrapper/android/app/build.gradle b/mobile-wrapper/android/app/build.gradle deleted file mode 100644 index 6fea0a8..0000000 --- a/mobile-wrapper/android/app/build.gradle +++ /dev/null @@ -1,54 +0,0 @@ -apply plugin: 'com.android.application' - -android { - namespace "dev.srizan.helium.mobile" - compileSdk rootProject.ext.compileSdkVersion - defaultConfig { - applicationId "dev.srizan.helium.mobile" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - aaptOptions { - // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. - // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 - ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' - } - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } -} - -repositories { - flatDir{ - dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' - } -} - -dependencies { - implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" - implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion" - implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion" - implementation project(':capacitor-android') - testImplementation "junit:junit:$junitVersion" - androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" - androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" - implementation project(':capacitor-cordova-android-plugins') -} - -apply from: 'capacitor.build.gradle' - -try { - def servicesJSON = file('google-services.json') - if (servicesJSON.text) { - apply plugin: 'com.google.gms.google-services' - } -} catch(Exception e) { - logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work") -} diff --git a/mobile-wrapper/android/app/capacitor.build.gradle b/mobile-wrapper/android/app/capacitor.build.gradle deleted file mode 100644 index 70f93fc..0000000 --- a/mobile-wrapper/android/app/capacitor.build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN - -android { - compileOptions { - sourceCompatibility JavaVersion.VERSION_21 - targetCompatibility JavaVersion.VERSION_21 - } -} - -apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" -dependencies { - implementation project(':capacitor-app') - implementation project(':capacitor-browser') - -} - - -if (hasProperty('postBuildExtras')) { - postBuildExtras() -} diff --git a/mobile-wrapper/android/app/proguard-rules.pro b/mobile-wrapper/android/app/proguard-rules.pro deleted file mode 100644 index f1b4245..0000000 --- a/mobile-wrapper/android/app/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/mobile-wrapper/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/mobile-wrapper/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java deleted file mode 100644 index f2c2217..0000000 --- a/mobile-wrapper/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.getcapacitor.myapp; - -import static org.junit.Assert.*; - -import android.content.Context; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.platform.app.InstrumentationRegistry; -import org.junit.Test; -import org.junit.runner.RunWith; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); - - assertEquals("com.getcapacitor.app", appContext.getPackageName()); - } -} diff --git a/mobile-wrapper/android/app/src/main/AndroidManifest.xml b/mobile-wrapper/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 340e7df..0000000 --- a/mobile-wrapper/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mobile-wrapper/android/app/src/main/java/dev/srizan/helium/mobile/MainActivity.java b/mobile-wrapper/android/app/src/main/java/dev/srizan/helium/mobile/MainActivity.java deleted file mode 100644 index f2dcff8..0000000 --- a/mobile-wrapper/android/app/src/main/java/dev/srizan/helium/mobile/MainActivity.java +++ /dev/null @@ -1,5 +0,0 @@ -package dev.srizan.helium.mobile; - -import com.getcapacitor.BridgeActivity; - -public class MainActivity extends BridgeActivity {} diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-hdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-hdpi/splash.png deleted file mode 100644 index e31573b4fc93e60d171f4046c0220e1463075d9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7705 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 wKmFJ0_JHhk1&0B>;%YXATM diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-mdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-mdpi/splash.png deleted file mode 100644 index f7a64923ea1a0565d25fa139c176d6bf42184e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4040 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 XyOn+%7f`N3b2T^T3uj5+eShz7v)7qy diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-xhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-xhdpi/splash.png deleted file mode 100644 index 807725501bdd92e94e51e7b2b0006f69e0083a0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9251 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 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-xxhdpi/splash.png deleted file mode 100644 index 14c6c8fe39fcd51a0414866ad28cbe8ff3acb060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13984 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®q@N z14_H8ofW)l{|J8q+a)eH)I0r)>WXdzV%7J>PA~6_J)KLT90iYa^K=Wz7D!OybzqSru=f4?|KFl;Y)gP_H6V4x`~kZ6fE(xM1&;?72-TZNk+0 zr+Crr5yl%Iy@vfmt3eYFl!jIvPGFz^8Ek+2`48O1_pCX3xNWh-zBa{rIcc%+=|XVj zANYTg&s}TKb#OztQrCW(Xk?V^i{`q~%HtcveTxq(_HKeC9GzrtguMT4Nvs@KakPTA z9>*8bBZmLz`lK5=l)=b|=dT3a5ag^a1^znZyx5QKfUb1b9yacArRp%3@QWo(hrsCU z-K!-=jDmv!zb7XT>)r|-Z0Ry}lk2;dk-ECqMwr_nKN#x*X6~B5hVIN>6$1HwBz3Of z=Pk){AL5*=d90f17_qZEJLm;Q%WMdX=*N&!ki@E&cy7?>{1ssAH(tACtp*r@d^til z)x(1#6(kPD+joSF&J3sxJU@{-sWCS+pZq{Gsx=?z4wP;>?)1yHv0?X?VP{}cX4~aH zxeBPKw_rgW8rvewS1W2#^y+c>-183iMbJCqc38RN_o~__9-n|jcd&oA`m7*&Fqqpc z;Tev*0LS-ZK47Sq1unfvP1S43uA12P?PJmI8BeTYPr~R*tYUm^0;U%Hmu?bSZHEK6 zPjsW=E67Kq-&trmf;)UkmRABH2U)V)-eRT$j(%G12lLMsThSsU10iP#{)ZnvjzN$d z*K%P3`}oqyvpWP~venr>3viH8^`)Ma*=B31hw*Q+tqE>i2y7w!(o^lI^Yss^=tHW( z;cnCT(%B1gLz+TRGW9roFjI1EQTu-u`(f#RmZ8;FSN(bsC1J;+(i_R6mrW=yYx$cy z#%QKVrEx~kVMg~yo?^N28Wnk6x%L;J8i|*|ANEiNjq(Vhzuzl3ikpA*G!Z}kLAzAI z9qnySo%D|AuJj12%h;Otqjs(>LPj?rNdeU8so>P(C>XMzlho94ZD#w=cCOOU;=3&^ zsqAG!i{~lY271D|m>ztPV`)X@FO_;`wPjppYNQpM+ncvtz1lZjN>!Q^*I}T%uP78Z7tbV2$q3W_)14=kLFyJ z1GqL6T>ClgeZorL!}xP4f%OB_EsmJ`uw7dGWNV9OLlhb|UMpVhc{4@Bhh`tO!ZqzD zhusd<=K^ah!L@gQ?6dOpI-ge^e>S5W9eII57Zu16eU?GRbgKTeVk9yS{iK|O(zLR> zheb?;jwGCHS80NCn=jKxgJ>}qu4l%5NPihjzazGv#J?Jcyl;<#IW&x4mm>nrW8>}C z3U@aeD~)*F(0o^2{GnKVm$Jr#aZE ztl~TOkM^SdzJapQ((!-i8b!RkVQBKkL`2ZCBuy!qI1L{3Er526plVols~68U-^9Px zR(3{j;Z9RHX^muc0dUywJ|`yyZFf=k&-Gb#m4u73Lm5Ks%BfHj%2|gjn#i> zLC5pO$2Em9H;qoKQmMtl<@wgtPF1%2HariD5O~u>8=^*J&au~JH%Ih@&2Uging3U_ z0bzfKucW$ZHSx}!#buB?+-J)%RQbbXM-!BJTS&#dU_@lxU6>te2O+9 z@F{F{Nb!;{Cd`Gx+$G?11aB~S#wIH%D=*=7f7H@D@%B1)&bF$@t3JDq4l*%(wJTlh zo`?uMq{YilKUewPNaC)GuOr<8j9&ofqRU__BRUX^x8Cj3a;a$rXzgXqW>LR#CUn%~m)t zYC&ol(gAkbc^fd`xWU&bk5vT6KbFmsR=O78Bn%t7 znbw&=c+|T&#r+bls5rU6D#HMvqA<|;)BV%jOMonkm^p$7Vcel-Wwn$=uAJv&(8W>% z9))Fxpl*(%E#wFm_m!U~2HqgZs^2vaGeY(UfYKrSHV}w^D0N6!se5Ewy)Yy-!(2

aKj2hWG7>znxs|SE zN4rHtiSPqLskWp(?(_YYwgq+1@8v+~8As|(bC>$D(atG3ZE8-ZM3SVcg|vHQz$I=!(A`k`5= zOqR>&%G)$)k*QLz7MTB9wleWpv&N9Sta64wy}3Ytd?x!Ja8z>(z~(3UNFu^eFmn#6 zw!!gUxOuZi$PQIs*ixfZR3iLyADJ z5&s%tPfk>V!x|A-;oq%1!yk9H$UBP0ToA*EDtz(^!_AnF1bBQ7joj|? z5b)gSI8c8O$PYFE!vXJ<4gebg*9G9P2wcB{#kv0FItc5T@PDNo)}Rh4Us}L{e}xzW zhwt`)j`M)mP=G6H0;^&q=I0{jU%bIRkF#uLF;{vVC&H|_uc diff --git a/mobile-wrapper/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-land-xxxhdpi/splash.png deleted file mode 100644 index 244ca2506dbe0fd8f6a05520ac7d1a629ea81438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17683 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 diff --git a/mobile-wrapper/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-port-xxhdpi/splash.png deleted file mode 100644 index bfabe6871a17a5e95b78fb30d49b7d2b4d2fe4c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13346 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

VwO4Hu8X}%XHUAz_J@50rzbkIsat>4oWtQt< zIO?tf?{oTz>?^ zcs#99X^>a=*D4${xG>cbA~mO3ZB$EhO>H1&*Qy(>+hed@=A`jR^=cJ!Z`3E3@Q919 z2|Hx$qrVsGlLkcgkxI#|*OEWCg`R(Dc|W-FsVh3ffkA6Wv&KS*mI`Jy*shMmL7i+p zTFI~6ZFWUah0_YM!qjNfUerrcYR5kNd~_l?c|YSYK1lXrX5Jvyw-?I=YZ@JeEE%@9 zjRTcK5e%p8vf?4Sh{hzPvSvD(2@OVsjP%1al3iOnJ&B_;o}k*g_q;O$pCZhIqr&H| zY#=4Rd9@be`U)0}1?QdC*8SRC^1=|6G+G5*sZD$CQBd)0LT4s=)~2U7>V#!lV~)IP z(A=7y3q%qKn8bQyn==u2VP>MVj74-!pq6>dfw`-qSu zWt_c|DI&(Tu?wK=$0|DMG5AVR%fnRhsvGt>gVq>qQa-a%jIS1C(_O;l7xOdTCCy}G zdpgQnJk@syL$7a$8c)vb)|K+W-^e*><2yLWb@AY2#TUsMB(~%vT!S2o)HZqn)MBf z)}?AORn^g2%th^rZhz+$aKGTi!3gbXBhzmj%2d+Rk-s$D9?SlyV17a;D!N`yL_J>0 z))rDiB6LyF=wahV7f`<^zHiirz#5k(xz3JFDY=&Uk(aE}#H?1HkkvW#9$wiT-o{Yt zHUV6OZzYk*Do;k^-may;=hZA^=cR?>o|n#u**Hf8z=8hdNlLAD{wj_40-)Fs24)PV zvxo#<4(|Fjyy!~saI035lJ#JIOY|Q!IWLf~cK~S9MFbMBTwPVX-jg~rRILU)2m>uw z@9A+)Ui2fckc;0eUpp15 z82@-Mfp#!sUH^ef6tiN@>@in!eX92e0Xd!)+RThBIYld6W0}p9lbUWv5m;Zi%?0wt zvTA1twcT+E6@F9mi7KmaJHV1H9*yk3_~l$p#Hz=<*@m6j@bO&RTXq8sLbmIPY40^- zLZ?zlKu>7ZUJxUa<%J5xJ4TM(lR_mKX~)%_*bAD=*eWDQ z*YOO3v-{8j_Wg%>p0qDME8dN{n~0f_W26%vD&}^JNYU}ha6B))EXB`_J5EUFl=^9w zXS>>$`kCB#;;)*jT`0TqK*&TE`V!VC_Y#bww3?$HiRno=c!N|((tv9Qr>P#Mm|6^n z(P7%Zh4Vg;n4zUfbX%SjVWC62B{W`|*S2lGTFf`Ua)*Ww+WPast=FQY*$&$gS`^AP&tW@ge3GVsSaZvqVk7pPkhna!(6vsXlIzmtuPGAi5^za!%%`rg9Iop%cjweBc{ z7H6WieGAC$BIP0+!GX?)pnH~%NjF71Wr?Y?Eu~t!deImju;fD{V+{`}8%!CFbjks% zOnO@|Nuk_AiptP}!8dYVG|4}Qz69R3Rrt@LCD#a56{6i#==cjc&m&Y%K~yzjv@~=A+lR=i4=}^>X-7 zZ%5RZ(@Cy-7>!})9abu8c;huoVe3bL@fMeZul7P27`sq{zAHmuLZ4vrO}7XU#SLuI zPu&mqN;3)85rn&U5#Jz3cz1yuaH{!3nwUSj|br7tX(-WErI zH_*1IBI|HYZ-OqrGVj&PWF6O+qsQ5T^L5K#+=c_DF@OfPy$OhtS zE(9E}A<7){-2x7LgEy{&9oEl!k`JfI4XDU|98-8pT$) zx~;Oy!G+AhazhR#k!~r!>rm-@+YDa@w9aB3=z(`ryPdyy@s7SPpb*Agi1DqIfDWpt zO1s*_k@i=(TbXXAi&FoBXuYWmR-i|-ulY~bbHn4!DX!4?)hrACs~9<985~ogu1Khz zphk*H$bj)l{p^9~8mc3?E6Z=SP?xS$&84dY8@c?z=B#J+$tmm9Zu|*1RVEzrxR638 zxM`2ri3^rICyG;TggrGwb)5HP*7JLajV7BYLyZ#DwU|?^pk|#pEoNyh>Vt_Ia2bBq zqwbxjKHSz4Sw^oL*`V8i7(8)#P`=&Tm*Yz{PIhNINO;XUaeA0UlDa|SZk)%UwlW^U zn0W*fIL;)noS}=zU#l^qLMiV$Wqkmyg*y7Vf~#+3_{aiO%!eWQ1l3-wG#Ab4Quptt zRyRe&x3Py_D_;+VN5`6k*E-t`^TY*x%jgI@R(;qSTSa5e_odFLA~keDhV{RW5=p`MF`GuPop&b^MlArKeA=|b_?XN634nxovcGmBpJZ2bk6PYcoQhSGvN zScz+-z32@xSX~sd>|}kNSL_MzE|~UJgAL7d-$uS+)}K0Q;jLp(9Ci32cUx(U!7ZGw z>e;WV9!1zZj65?4(LO#tO}P^o;8Q}J?SZeDOX%T|YEXmJPY4ymP89tR!75Qr zz-*`VUja)?MAWGWMqO44`(QR~#z$t*B5t~zDeLWd$D)b?*)n&Fn}Hgi!jt^u+O`GN z9|afa=dBg4yFaQxPEAHs*;95)v*U42a?(O;A0s0FxHOsDypRC7?^pBjkULCr^Qwh+DuZ|wU!jOpY$GJ$OO$a5A)bUlIx0a`Cec%iHu@s zymUiv!Bd--1_U=>Lt0GG0}LcGMuKg$5rlX2_N230xJDyXw_`TNDS{IpH;htFsZm*g~T=o?zN1$j~IJ zcM8cIb`I$WL>idBdc2P3Q-xMsdM)Zx1w59h4~HOtIWgZw(EH6P7Eno#2#P6E-UR;S zhM{;JeOI8;+#yN(v!uyzZ&n}(+4sJ5qGVpE(&{mBFT*DdK-LZo>AEOYJX zFX9ef)gYA*An2Z5Jypnjlg0E`beI_mOG1hgY0!_=aCRhY!VV@(*QMT}So#IUy&~V1 z8SIo3k;`t(EL#@c|A0w^9`DJDUI%_NRY@A=Z1p7Go5flJXBLawU8b@t4h2H_>ca|A zT$gVXk5D(3=`~|ieLErgM2+?=lcbw8#mo86gLcCG{I4T*|8??h^9LbVZrbYGam>wN z*bD|?p|cqb|8Kx@aijc3i|B+l;NDu{Qf&5d;rH)E*8PWTpXikFKV0WT!2J&w;CCTv z{nPbN!bQ*iNx10QKM5B-`$yrT2{$MB+hm(2`d3u_ZIb`~+%(aqiT*caY+}*B^5Xv% eO>gcz4Y;lHQ)5=gT!Uz5xom8Dq3D;JcmD@1>d%<~ diff --git a/mobile-wrapper/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/mobile-wrapper/android/app/src/main/res/drawable-port-xxxhdpi/splash.png deleted file mode 100644 index 6929071268eb03ee0f088142b6523566b78550e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17489 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 KR&><$`~L^lv%S~= diff --git a/mobile-wrapper/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/mobile-wrapper/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index c7bd21d..0000000 --- a/mobile-wrapper/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/mobile-wrapper/android/app/src/main/res/drawable/ic_launcher_background.xml b/mobile-wrapper/android/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index d5fccc5..0000000 --- a/mobile-wrapper/android/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mobile-wrapper/android/app/src/main/res/drawable/splash.png b/mobile-wrapper/android/app/src/main/res/drawable/splash.png deleted file mode 100644 index f7a64923ea1a0565d25fa139c176d6bf42184e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4040 zcmcJSdsNct*2lF|+LV`0O<9`gWHmXNI_0HMG^Z5J?4q936dm(MrI-mKAX+&`r@Sy` z-UWRJFO`aw_bX%OB?%BsNembv6+|Tjydip+nRU)OtOyZ-=Ql zg+^ZsGj@v#jtKJ%3l2raybiNhQ`5cScGk%|o;Ax>Wil|!;(O3Lf_3Bc!SfzKS@3G9SN2|L z(ZlkChqH{!k{zKhLYD}HO7W>_PR28&-#hB8$hv^aHfYWp(-yZ&PjRKna1=pP?I``1 zJhjuO|72XMzS&A`ll~v(jzN{Frmn5>s?4oWm3ilm#y^>=Z7T0(E0y>~Ztr2SKReA#x9s@PM3fJO!ntA?b_8IZah%-bwM9 zrPWDVzQJ#=jNs2JFaIztcQ0f(1C!QIp9S=|i`TgeU6oCJEYl!NZt9;kr`?c*G`gYL z@F{~wLcg{AeYsJqL5a^oqb2fgiQdIWwT6hBG)j6WGHI;BDLJKtg?9`plfFIyj9vratv!=oN|3q^M@s8E4;aM>14uu(qdH(aO2!g1QL;0` zlk6jmGqw0V8qtS}{yIbU zy>D2IV8n93+k-43)t5 zHoV3wwoE0fvlt-)6(+qv+gtyLBU{6AXwX3cO?Q8$*rCK+@|S(B)0&f&O%^8)h~IhY zd<#&uT#;hk(*&kL^^?ZTCQ4SZMdMql`iAzYYlk5dzXx_IzRNCBVl5Zt19LadD879-yI@>5F^1WV)eBIqfUF-~YTRMM0GDHk}LbSxo2oUVHJpMmlGI z3rByWH)H!8qah9gR@k*d-eyg+Ut|QQuRXEs=h1?GQkAwt(nNpN>BVlOppy1v**<~L ziAz`NGRMEZ%FOBu;ffb*Dd;A6ga;1r!6aMIM#@+UoE(3-Ev!2+(8oW?Jh1}V97M=? z?=$ovd^ECvJRP5aXbm{nv}4kKb(%lr!R}n2+m15~9wFR_pYW~@n#SC_lQPi8*+FhQ zWgalxc8^I4BGJ$9lX*4_2*@b(JtjHCy?trm@T7^ssR!kDcf$tTh3>JEO3mDbfLp#- z!w1chv6Z|o;mH%@=_g$(dgr`>qPQ9bHA7BFa^-tsN`hJ9mNtmx&rLyKj!clpb<|Hk=?iJB z!5J1+q2QQJk%f_G+bkf_kJf73rWyYHiYk|l#{AKMCW^wd#GI}}R-9g|^3&9}dLw2a zV0)s_`5Eso3~`Al@ed**cogwQ#F(S~oILZoU?$)eNMBpO7Xxpbh#2)}W;Kieqe8oo)a3m%oR62^N?_yPVJ_d;Kw;*5!k>Up)ElRob1s7hf z`rXQ9f^~cJpwXVC#@jID+`HIoJQTbv)|UmPNvCosIgIY9G2XEOsTP&!r(T^LzUBHT zm@Z$0!Sv28U0}l;@o=n+c4iWl!X6L^Y|;UkG+t#x^70!S5%F8zowq~^O7?ac(QZcl zQB#=(-;Q!Z*wH1_x*I72kb0u=t+^ZnScg3>(xrY7}&B;VVl=w*X`WI$%U!?jW zN+#A9P#}F19q9fw^74?^NNZ+f=r%@)bG_b9A}}^?LIj*zi2s=MR0$kH^uuDyIhV?@ z!zGYiC2Kv+6Wh3Z(oY)mz!6nFw2tAx@t5Q5O$0H%a!RyV!@e{4oTo9bt}Til)3?xvCcCTz{dKU{5DE9= zymnZ!hKWvDY{DGWHsUdT=bNcxt&f@Up+fU)dk_0P&q;iSi7+r9B_gI7IRiHs7Ck_$ zhIZj!=8Z1&+GbjBY3WF?ea!5Trx;Lk%c3etM&1ob@qK5xfauZL)Mh=RX%I;MYW*Wn zn68mApKv@5>sWIZc6C9}^UI3Q_Bzg8(~crtJvLDxR#5VKDt|jV*Z8rL{^#`(Nf?9R zq_tx7Z(Y-R#`6WqkLg~f2g1R)BDMiejUO!YRL79;y3}l&!G`BHu*e!N5r(tIXJsP8kkHvgQnkK z;LoY%c0tQB!(F1uJQraFEtAGdK0fD=Zkzh2t_VVj`c@aUd1ri7Gvt*rwFoPAc@S&E zdg8_Jlq@tyNjHPgalY&O)F>3OQ|_3f(h>l2h{m+k(_Ju|uH@S4!di|e%7>cgd8+=4 zjI7M8*CHw|8y3AlzQl^lPPpuMohI2ak2T}3ez?AuooV@CUD0)vm!eIrlqVYM0y2lY z1zer{@-toIhXWlqYWR~8yQoB`({<;Rv21+Zm$VLT+d}hV!V_Klm0xmVy2DIr2MOH^ zp4OthWo_zd%>6Fu`v*M7PE54w>=>*bnqTXez|}21$7?KfU7`UHkQbceUz@%Z5SPh( zf|1c?s;d{FU2)&wGjtkEWYEo4?Vd;u_CU>;tL^5+QK(f~;dr=m{U{Aj3jwwE3!GRq z$F!^t>%w%vBNRx8O))O@a~7`k--n$qj^O)$*-$by@_t2Wz_&HW{*@Uy#TY@Qn6z<6 zl4svmjF*uxvQ*COHRGd&VR7vwK$7|T{20gdieL1R%Z|)8$MRd0-L=KE8fE2Elq|C8 zo%yOJtr2+_EPaEqd8HcW?zYwESN~L7r5D~hLZxo$uo@H0Wq3ETe;(%m-GEFGx^HTR zHp|&GLrSk-%Cu!43@kQf+9m&4(>o(RqyWb~WetoKY~aneh!p0yATpfC6w`@ydruv@ zIjhr+Z2#6_F?VKjj3w{RRYob&FfF=7U&vtVx80!jDr|adJ7Of!mkHYmqu}X|yKZel z_M$tF@824GU3I%1GEUQtH1m2PWH2Dds+kVlwV5GQJGd!t|8O!gV5c1^OVz`cZa9Me zD{3^lL1;fjtU?%eb36r6d9Uz81=4cr^3G@JpjEuc%j>ZNryed0SQ4PgnNBP&e=hn+ z?SbFgG`|$Ahr&u9R>YFQ;%c;PG0nr~Bt74$ZViOq8}pjQJct(ouyK1+1JlPjW_U)a zy6-~`zPs8Vg!6BS>;D>d{v&bym$>#R?0gQ_e#giEjkx|xT>Fm|{8JLY+??3hvR93~ XyOn+%7f`N3b2T^T3uj5+eShz7v)7qy diff --git a/mobile-wrapper/android/app/src/main/res/layout/activity_main.xml b/mobile-wrapper/android/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index b5ad138..0000000 --- a/mobile-wrapper/android/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index 036d09b..0000000 --- a/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index 036d09b..0000000 --- a/mobile-wrapper/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index c023e50595074292c7361183a64de08cf9686c9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2786 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 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/mobile-wrapper/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png deleted file mode 100644 index 2127973b2d318df7085734d236d0ec649a2b0292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3450 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 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 4d1e077104cd61e6a4c3707e87363b523077245a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3981 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 nm0GElTB(&OnKI&V600000NkvXXu0mjff+~0a diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/mobile-wrapper/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index df0f15880bee46332dfc6622583215194f948b0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5036 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 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 6cdf97c1196d48e9833487ff6de7c4cfc4e1232d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6644 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 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/mobile-wrapper/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 2960cbb6104b915c84760f889deed9bff2b3e17a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9793 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 y3vD~Wi9;mL_v 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 diff --git a/mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/mobile-wrapper/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index a40d73e9c68ea638c28c7b13e4bcd1e179a3a102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15916 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 - - #FFFFFF - \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/main/res/values/strings.xml b/mobile-wrapper/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 4cb3778..0000000 --- a/mobile-wrapper/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - Helium Mobile - Helium Mobile - dev.srizan.helium.mobile - dev.srizan.helium.mobile - diff --git a/mobile-wrapper/android/app/src/main/res/values/styles.xml b/mobile-wrapper/android/app/src/main/res/values/styles.xml deleted file mode 100644 index be874e5..0000000 --- a/mobile-wrapper/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/main/res/xml/file_paths.xml b/mobile-wrapper/android/app/src/main/res/xml/file_paths.xml deleted file mode 100644 index bd0c4d8..0000000 --- a/mobile-wrapper/android/app/src/main/res/xml/file_paths.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mobile-wrapper/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/mobile-wrapper/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java deleted file mode 100644 index 0297327..0000000 --- a/mobile-wrapper/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.getcapacitor.myapp; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} diff --git a/mobile-wrapper/android/build.gradle b/mobile-wrapper/android/build.gradle deleted file mode 100644 index f1b3b0e..0000000 --- a/mobile-wrapper/android/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - - repositories { - google() - mavenCentral() - } - dependencies { - classpath 'com.android.tools.build:gradle:8.7.2' - classpath 'com.google.gms:google-services:4.4.2' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -apply from: "variables.gradle" - -allprojects { - repositories { - google() - mavenCentral() - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/mobile-wrapper/android/capacitor.settings.gradle b/mobile-wrapper/android/capacitor.settings.gradle deleted file mode 100644 index 9e56504..0000000 --- a/mobile-wrapper/android/capacitor.settings.gradle +++ /dev/null @@ -1,9 +0,0 @@ -// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN -include ':capacitor-android' -project(':capacitor-android').projectDir = new File('../../node_modules/.pnpm/@capacitor+android@7.5.0_@capacitor+core@7.5.0/node_modules/@capacitor/android/capacitor') - -include ':capacitor-app' -project(':capacitor-app').projectDir = new File('../../node_modules/.pnpm/@capacitor+app@7.1.2_@capacitor+core@7.5.0/node_modules/@capacitor/app/android') - -include ':capacitor-browser' -project(':capacitor-browser').projectDir = new File('../../node_modules/.pnpm/@capacitor+browser@7.0.4_@capacitor+core@7.5.0/node_modules/@capacitor/browser/android') diff --git a/mobile-wrapper/android/gradle.properties b/mobile-wrapper/android/gradle.properties deleted file mode 100644 index 2e87c52..0000000 --- a/mobile-wrapper/android/gradle.properties +++ /dev/null @@ -1,22 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx1536m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true diff --git a/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.jar b/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index a4b76b9530d66f5e68d973ea569d8e19de379189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X diff --git a/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.properties b/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index c1d5e01..0000000 --- a/mobile-wrapper/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,7 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip -networkTimeout=10000 -validateDistributionUrl=true -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/mobile-wrapper/android/gradlew b/mobile-wrapper/android/gradlew deleted file mode 100755 index f5feea6..0000000 --- a/mobile-wrapper/android/gradlew +++ /dev/null @@ -1,252 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/mobile-wrapper/android/gradlew.bat b/mobile-wrapper/android/gradlew.bat deleted file mode 100644 index 9b42019..0000000 --- a/mobile-wrapper/android/gradlew.bat +++ /dev/null @@ -1,94 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/mobile-wrapper/android/settings.gradle b/mobile-wrapper/android/settings.gradle deleted file mode 100644 index 3b4431d..0000000 --- a/mobile-wrapper/android/settings.gradle +++ /dev/null @@ -1,5 +0,0 @@ -include ':app' -include ':capacitor-cordova-android-plugins' -project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') - -apply from: 'capacitor.settings.gradle' \ No newline at end of file diff --git a/mobile-wrapper/android/variables.gradle b/mobile-wrapper/android/variables.gradle deleted file mode 100644 index 2c8e408..0000000 --- a/mobile-wrapper/android/variables.gradle +++ /dev/null @@ -1,16 +0,0 @@ -ext { - minSdkVersion = 23 - compileSdkVersion = 35 - targetSdkVersion = 35 - androidxActivityVersion = '1.9.2' - androidxAppCompatVersion = '1.7.0' - androidxCoordinatorLayoutVersion = '1.2.0' - androidxCoreVersion = '1.15.0' - androidxFragmentVersion = '1.8.4' - coreSplashScreenVersion = '1.0.1' - androidxWebkitVersion = '1.12.1' - junitVersion = '4.13.2' - androidxJunitVersion = '1.2.1' - androidxEspressoCoreVersion = '3.6.1' - cordovaAndroidVersion = '10.1.1' -} \ No newline at end of file diff --git a/mobile-wrapper/capacitor.config.ts b/mobile-wrapper/capacitor.config.ts deleted file mode 100644 index dec4924..0000000 --- a/mobile-wrapper/capacitor.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { CapacitorConfig } from "@capacitor/cli"; - -const config: CapacitorConfig = { - appId: "dev.srizan.helium.mobile", - appName: "Helium Mobile", - webDir: "dist", - server: { - androidScheme: "https", - }, -}; - -export default config; diff --git a/mobile-wrapper/index.html b/mobile-wrapper/index.html deleted file mode 100644 index 411564c..0000000 --- a/mobile-wrapper/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Helium Mobile - - -

- - - diff --git a/mobile-wrapper/package.json b/mobile-wrapper/package.json deleted file mode 100644 index 8f94efd..0000000 --- a/mobile-wrapper/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "helium-mobile-wrapper", - "version": "0.1.0", - "private": true, - "type": "module", - "scripts": { - "dev": "vite", - "build": "tsc && vite build", - "preview": "vite preview", - "cap:sync": "cap sync", - "cap:android:add": "cap add android", - "cap:android:open": "cap open android", - "cap:android:run": "cap run android" - }, - "dependencies": { - "@capacitor/app": "^7.1.2", - "@capacitor/android": "^7.4.3", - "@capacitor/browser": "^7.0.2", - "@capacitor/core": "^7.4.3", - "react": "19.2.3", - "react-dom": "19.2.3" - }, - "devDependencies": { - "@capacitor/cli": "^7.4.3", - "@types/react": "^19.2.2", - "@types/react-dom": "^19.2.2", - "@vitejs/plugin-react": "^5.1.0", - "typescript": "^5.9.3", - "vite": "^7.2.2" - } -} diff --git a/mobile-wrapper/src/App.tsx b/mobile-wrapper/src/App.tsx deleted file mode 100644 index bf0541a..0000000 --- a/mobile-wrapper/src/App.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { Browser } from "@capacitor/browser"; - -const HELIUM_URL = "https://helium.srizan.dev"; -const HELIUM_CHROME_INTENT_URL = - "intent://helium.srizan.dev#Intent;scheme=https;package=com.android.chrome;end"; - -function isAndroid(): boolean { - return /android/i.test(navigator.userAgent); -} - -async function openHelium(): Promise { - if (isAndroid()) { - window.location.href = HELIUM_CHROME_INTENT_URL; - return; - } - - await Browser.open({ - url: HELIUM_URL, - presentationStyle: "fullscreen", - }); -} - -async function openHeliumFallback(): Promise { - await Browser.open({ - url: HELIUM_URL, - presentationStyle: "fullscreen", - }); -} - -function App() { - return ( -
-
-

Helium Android Wrapper

-

Open Helium with screen share support

-

- This wrapper launches Helium in a Chrome Custom Tab. On most Android - devices this gives the best chance for WebRTC screen sharing, - including audio when Android and Chrome allow it. -

- - - - - -

- If Chrome is not installed, use the fallback button. For audio capture, - update Chrome and Android, then enable audio in the system - screen-share picker. -

-
-
- ); -} - -export default App; diff --git a/mobile-wrapper/src/main.tsx b/mobile-wrapper/src/main.tsx deleted file mode 100644 index be363fd..0000000 --- a/mobile-wrapper/src/main.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { StrictMode } from "react"; -import { createRoot } from "react-dom/client"; -import App from "./App"; -import "./styles.css"; - -const rootElement = document.getElementById("root"); - -if (!rootElement) { - throw new Error("Root element not found"); -} - -createRoot(rootElement).render( - - - , -); diff --git a/mobile-wrapper/src/styles.css b/mobile-wrapper/src/styles.css deleted file mode 100644 index 4a3fcd7..0000000 --- a/mobile-wrapper/src/styles.css +++ /dev/null @@ -1,91 +0,0 @@ -:root { - font-family: "Manrope", "Segoe UI", sans-serif; - color: #1a2027; - background: radial-gradient(circle at 20% 20%, #e5f5ff 0%, #f4f8ff 45%, #f6f6f2 100%); -} - -* { - box-sizing: border-box; -} - -html, -body, -#root { - margin: 0; - min-height: 100%; -} - -.page { - min-height: 100vh; - display: grid; - place-items: center; - padding: 24px; -} - -.card { - width: min(560px, 100%); - border-radius: 20px; - background: rgba(255, 255, 255, 0.8); - border: 1px solid #d7e3f6; - box-shadow: 0 24px 80px -48px rgba(24, 78, 148, 0.45); - padding: 24px; - display: grid; - gap: 14px; -} - -.eyebrow { - margin: 0; - font-size: 0.8rem; - text-transform: uppercase; - letter-spacing: 0.06em; - color: #4e7ab3; - font-weight: 700; -} - -h1 { - margin: 0; - font-size: clamp(1.3rem, 4vw, 1.8rem); - line-height: 1.2; -} - -.lead, -.note { - margin: 0; - line-height: 1.5; -} - -.lead { - color: #2b3a4d; -} - -.note { - font-size: 0.9rem; - color: #4f5f73; -} - -.cta { - border: 0; - border-radius: 12px; - padding: 12px 16px; - width: fit-content; - font-size: 1rem; - font-weight: 700; - color: #fff; - background: linear-gradient(135deg, #2563eb, #0f67d2); - box-shadow: 0 10px 24px -12px rgba(15, 103, 210, 0.7); -} - -.cta:active { - transform: translateY(1px); -} - -.secondary { - border: 1px solid #c8d9ee; - border-radius: 12px; - padding: 11px 16px; - width: fit-content; - font-size: 0.95rem; - font-weight: 700; - color: #234669; - background: #f7fbff; -} diff --git a/mobile-wrapper/tsconfig.json b/mobile-wrapper/tsconfig.json deleted file mode 100644 index e967365..0000000 --- a/mobile-wrapper/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "useDefineForClassFields": true, - "lib": ["ES2022", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - "moduleResolution": "Bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src", "capacitor.config.ts", "vite.config.ts"] -} diff --git a/mobile-wrapper/vite.config.ts b/mobile-wrapper/vite.config.ts deleted file mode 100644 index 2fd0293..0000000 --- a/mobile-wrapper/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from "vite"; -import react from "@vitejs/plugin-react"; - -export default defineConfig({ - base: "./", - plugins: [react()], -}); diff --git a/native-app/app.json b/native-app/app.json index 5be58dd..e6408b1 100644 --- a/native-app/app.json +++ b/native-app/app.json @@ -4,13 +4,31 @@ "slug": "helium-native", "scheme": "heliumnative", "version": "0.1.0", + "icon": "./assets/images/icon.png", "orientation": "portrait", - "userInterfaceStyle": "light", + "userInterfaceStyle": "automatic", "android": { - "package": "dev.srizan.helium.viewer" + "package": "dev.srizan.helium.viewer", + "adaptiveIcon": { + "foregroundImage": "./assets/images/adaptive-icon.png", + "backgroundColor": "#c026d3", + "monochromeImage": "./assets/images/adaptive-icon-monochrome.png" + } }, "plugins": [ - "expo-secure-store" + "expo-secure-store", + [ + "expo-splash-screen", + { + "backgroundColor": "#fdfbff", + "image": "./assets/images/splash-icon.png", + "imageWidth": 220, + "dark": { + "backgroundColor": "#1e1b2e", + "image": "./assets/images/splash-icon-dark.png" + } + } + ] ], "ios": { "bundleIdentifier": "dev.srizan.helium.viewer" diff --git a/native-app/assets/images/adaptive-icon-monochrome.png b/native-app/assets/images/adaptive-icon-monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..beb3b17c1973a68a93395a117d9a86e60b59409e GIT binary patch literal 29379 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 literal 0 HcmV?d00001 diff --git a/native-app/assets/images/adaptive-icon.png b/native-app/assets/images/adaptive-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..beb3b17c1973a68a93395a117d9a86e60b59409e GIT binary patch literal 29379 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 literal 0 HcmV?d00001 diff --git a/native-app/assets/images/icon.png b/native-app/assets/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..88606172c3c87cbd4578a0c7040b2be3181fd90e GIT binary patch literal 1198 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7?_xW6jSkG0U)K2>=ES4z)+>ez|hdb!0-zw z)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;15}W}(A+871F8}}kAIQry{sdISz?kIi?!uJD zU6TUju$OrHy0X7w;uW=GIo*-O1Qb#&ag8WRNi0dVN-jzTQVd20MrOJOM!JT^Ax4H) zrWRHP#@Yr3Rt5&A)z=xKXvob^$xN%ntzlP{ST9h62Hb{{%-q!ClEmBs+OBLJgI`JZvO;@8vVdm1^U@VoJ|c? zpfon9fP*c^pmGn;F$?5C`EpQ!0De&3MFxxwRLT~UmRx21{wDd{vZI>wKo)qq`njxg HN@xNAye5(v literal 0 HcmV?d00001 diff --git a/native-app/assets/images/logo-brand.svg b/native-app/assets/images/logo-brand.svg new file mode 100644 index 0000000..09fcb77 --- /dev/null +++ b/native-app/assets/images/logo-brand.svg @@ -0,0 +1,18 @@ + + + + diff --git a/native-app/assets/images/logo-white.svg b/native-app/assets/images/logo-white.svg new file mode 100644 index 0000000..d0b06e5 --- /dev/null +++ b/native-app/assets/images/logo-white.svg @@ -0,0 +1,18 @@ + + + + diff --git a/native-app/assets/images/splash-icon-dark.png b/native-app/assets/images/splash-icon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec965247bed28ea2dfcc04cfc1b212c871e5a1d GIT binary patch literal 52516 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 RfR?0g_TnzV0k3;jJK^rHk^FW=6D#db8bl>h^Vz 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 AJpcdz literal 0 HcmV?d00001 diff --git a/native-app/assets/images/splash-icon.png b/native-app/assets/images/splash-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c143d5703cebbdc8e6235c7315d1a465152d3635 GIT binary patch literal 144244 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 UT#vs9fO|hma_X}6pUuPn58I88P5=M^ literal 0 HcmV?d00001 diff --git a/native-app/package.json b/native-app/package.json index a94a7d0..1132891 100644 --- a/native-app/package.json +++ b/native-app/package.json @@ -14,6 +14,7 @@ "@clerk/clerk-expo": "^2.19.22", "expo": "^54.0.0", "expo-secure-store": "^15.0.0", + "expo-splash-screen": "~31.0.13", "react": "19.2.0", "react-native": "0.82.0", "react-native-url-polyfill": "^2.0.0", diff --git a/native-app/src/components/ui/Button.tsx b/native-app/src/components/ui/Button.tsx new file mode 100644 index 0000000..6f8f93c --- /dev/null +++ b/native-app/src/components/ui/Button.tsx @@ -0,0 +1,138 @@ +import React from "react"; +import { + ActivityIndicator, + Pressable, + PressableProps, + StyleSheet, + Text, + View, +} from "react-native"; + +import { useAppTheme } from "../../lib/theme"; + +interface ButtonProps extends PressableProps { + variant?: "default" | "secondary" | "destructive" | "outline" | "ghost"; + size?: "default" | "sm" | "lg" | "icon"; + label?: string; + loading?: boolean; + children?: React.ReactNode; +} + +export function Button({ + variant = "default", + size = "default", + label, + loading = false, + children, + style, + disabled, + ...props +}: ButtonProps) { + const theme = useAppTheme(); + + const getBackgroundColor = (pressed: boolean) => { + if (disabled) return theme.muted; + switch (variant) { + case "default": + return theme.primary; + case "destructive": + return theme.destructive; + case "secondary": + return theme.secondary; + case "outline": + case "ghost": + return pressed ? theme.accent : "transparent"; + default: + return theme.primary; + } + }; + + const getBorderColor = () => { + if (variant === "outline") return theme.input; + return "transparent"; + }; + + const getTextColor = () => { + if (disabled) return theme.mutedForeground; + switch (variant) { + case "default": + return theme.primaryForeground; + case "destructive": + return theme.destructiveForeground; + case "secondary": + return theme.secondaryForeground; + case "outline": + case "ghost": + return theme.foreground; + default: + return theme.primaryForeground; + } + }; + + const getPadding = () => { + switch (size) { + case "sm": + return { paddingVertical: 8, paddingHorizontal: 12 }; + case "lg": + return { paddingVertical: 12, paddingHorizontal: 32 }; + case "icon": + return { padding: 10, width: 40, height: 40, justifyContent: "center", alignItems: "center" } as const; + default: + return { paddingVertical: 10, paddingHorizontal: 16 }; + } + }; + + return ( + [ + styles.base, + { + backgroundColor: getBackgroundColor(pressed), + borderColor: getBorderColor(), + borderWidth: variant === "outline" ? 1 : 0, + opacity: pressed && variant !== "outline" && variant !== "ghost" ? 0.9 : 1, + }, + getPadding(), + style as any, + ]} + {...props} + > + {loading ? ( + + ) : ( + + {children ? ( + children + ) : ( + + {label} + + )} + + )} + + ); +} + +const styles = StyleSheet.create({ + base: { + flexDirection: "row", + alignItems: "center", + justifyContent: "center", + borderRadius: 8, // radius-md + }, + contentContainer: { + flexDirection: "row", + alignItems: "center", + gap: 8, + }, + text: { + fontWeight: "600", + }, +}); diff --git a/native-app/src/components/ui/Card.tsx b/native-app/src/components/ui/Card.tsx new file mode 100644 index 0000000..8ec80ae --- /dev/null +++ b/native-app/src/components/ui/Card.tsx @@ -0,0 +1,87 @@ +import React from "react"; +import { StyleSheet, Text, TextProps, View, ViewProps } from "react-native"; + +import { useAppTheme } from "../../lib/theme"; + +export function Card({ style, ...props }: ViewProps) { + const theme = useAppTheme(); + return ( + + ); +} + +export function CardHeader({ style, ...props }: ViewProps) { + return ; +} + +export function CardTitle({ style, ...props }: TextProps) { + const theme = useAppTheme(); + return ( + + ); +} + +export function CardDescription({ style, ...props }: TextProps) { + const theme = useAppTheme(); + return ( + + ); +} + +export function CardContent({ style, ...props }: ViewProps) { + return ; +} + +export function CardFooter({ style, ...props }: ViewProps) { + return ; +} + +const styles = StyleSheet.create({ + card: { + borderRadius: 12, // radius-xl + borderWidth: 1, + overflow: "hidden", + }, + header: { + padding: 18, + gap: 4, + }, + title: { + fontSize: 20, + fontWeight: "700", + letterSpacing: -0.5, + }, + description: { + fontSize: 14, + }, + content: { + paddingHorizontal: 18, + paddingBottom: 18, + }, + footer: { + padding: 18, + paddingTop: 0, + flexDirection: "row", + alignItems: "center", + }, +}); diff --git a/native-app/src/components/ui/Input.tsx b/native-app/src/components/ui/Input.tsx new file mode 100644 index 0000000..83345f7 --- /dev/null +++ b/native-app/src/components/ui/Input.tsx @@ -0,0 +1,55 @@ +import React from "react"; +import { StyleSheet, TextInput, TextInputProps, View, Text } from "react-native"; + +import { useAppTheme } from "../../lib/theme"; + +interface InputProps extends TextInputProps { + label?: string; + error?: string; +} + +export function Input({ label, error, style, ...props }: InputProps) { + const theme = useAppTheme(); + + return ( + + {label && {label}} + + {error && {error}} + + ); +} + +const styles = StyleSheet.create({ + container: { + gap: 8, + marginBottom: 16, + }, + label: { + fontSize: 14, + fontWeight: "500", + }, + input: { + height: 40, // h-10 + borderWidth: 1, + borderRadius: 8, // radius-md + paddingHorizontal: 12, + fontSize: 14, + }, + error: { + fontSize: 12, + marginTop: 4, + }, +}); diff --git a/native-app/src/components/ui/index.ts b/native-app/src/components/ui/index.ts new file mode 100644 index 0000000..000b8ef --- /dev/null +++ b/native-app/src/components/ui/index.ts @@ -0,0 +1,3 @@ +export * from "./Button"; +export * from "./Card"; +export * from "./Input"; diff --git a/native-app/src/i18n/messages.ts b/native-app/src/i18n/messages.ts index 6d61f15..fff48cd 100644 --- a/native-app/src/i18n/messages.ts +++ b/native-app/src/i18n/messages.ts @@ -93,43 +93,43 @@ export const messages: Record = { }, es: { missingClerkKey: "Falta EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY", - appTitle: "Helium Nativo", - signInSubtitle: "Inicia sesion con Clerk", + appTitle: "Helium (Android)", + signInSubtitle: "Inicia sesión con Clerk", email: "Correo", - password: "Contrasena", - signIn: "Iniciar sesion", - signingIn: "Iniciando sesion...", - signedIn: "Sesion iniciada", - signInFailed: "Error al iniciar sesion", + password: "Contraseña", + signIn: "Iniciar sesión", + signingIn: "Iniciando sesión...", + signedIn: "Sesión iniciada", + signInFailed: "Error al iniciar sesión", needsExtraStep: "Falta un paso adicional: {status}", - loadingPresets: "Cargando presets", + loadingPresets: "Cargando ajustes predefinidos", couldNotReadToken: "No se pudo leer el token", - noPresetsFound: "No se encontraron presets", + noPresetsFound: "No se encontraron ajustes predefinidos", loadedIceServers: "Se cargaron {count} entradas ICE", - failedToLoadPresets: "Error al cargar presets: {message}", + failedToLoadPresets: "Error al cargar ajustes predefinidos: {message}", failedToParsePreset: "Error al parsear ICE del preset", streamerTitle: "Helium Emisor", streamerSubtitle: "Comparte la pantalla de Android con Helium", preset: "Preset", - session: "Sesion", + session: "Sesión", status: "Estado", viewers: "Espectadores", defaultLabel: "predeterminado", startShare: "Iniciar pantalla", stop: "Detener", - signOut: "Cerrar sesion", + signOut: "Cerrar sesión", previewActive: "Captura activa. Vista previa desactivada para menor latencia.", previewIdle: "Inicia la captura para transmitir esta pantalla", statusIdle: "En espera", statusStopped: "Detenido", - statusNoPreset: "No hay preset seleccionado", + statusNoPreset: "No hay ajuste predefinido seleccionado", statusRequestingCapture: "Solicitando captura de pantalla", statusNoVideoTrack: "La captura inicio sin pista de video", statusCapturing: "Capturando {video} video / {audio} audio", - statusConnectingSignaling: "Conectando senalizacion", + statusConnectingSignaling: "Conectando señalización", statusCreatingRoom: "Creando sala", - statusRoomCreated: "Codigo de sala: {roomId}", - statusViewerJoined: "Se unio un espectador", + statusRoomCreated: "Código de sala: {roomId}", + statusViewerJoined: "Se unió un espectador", statusPeerState: "Estado del peer: {state}", statusWebsocketError: "Error de WebSocket", statusWebsocketClosed: "WebSocket cerrado", diff --git a/native-app/src/lib/theme.ts b/native-app/src/lib/theme.ts index 2c273c1..43d6203 100644 --- a/native-app/src/lib/theme.ts +++ b/native-app/src/lib/theme.ts @@ -14,41 +14,62 @@ export interface AppTheme { secondaryForeground: string; accent: string; destructive: string; + destructiveForeground: string; } const lightTheme: AppTheme = { - background: "#f0eff5", - foreground: "#4f4c64", - card: "#eceaf2", - border: "#e1dee9", - input: "#dfdce8", - muted: "#e7e5ee", - mutedForeground: "#66637d", - primary: "#a43ad7", - primaryForeground: "#ffffff", - secondary: "#be9bcd", - secondaryForeground: "#3f3452", - accent: "#d0cee0", - destructive: "#b4435a", + background: "#FAFAFA", // slightly off-white + foreground: "#09090b", // zinc-950 + card: "#FFFFFF", + border: "#E4E4E7", // zinc-200 + input: "#E4E4E7", + muted: "#F4F4F5", // zinc-100 + mutedForeground: "#71717A", // zinc-500 + primary: "#c026d3", // fuchsia-600 + primaryForeground: "#FFFFFF", + secondary: "#F4F4F5", // zinc-100 + secondaryForeground: "#18181B", // zinc-900 + accent: "#F4F4F5", + destructive: "#EF4444", // red-500 + destructiveForeground: "#FFFFFF", }; const darkTheme: AppTheme = { - background: "#30273b", - foreground: "#e4deec", - card: "#2a2234", - border: "#494055", - input: "#534a5f", - muted: "#3b3347", - mutedForeground: "#bbb3c7", - primary: "#d28ee8", - primaryForeground: "#48245f", - secondary: "#6d4a82", - secondaryForeground: "#eadcf1", - accent: "#5a5268", - destructive: "#d46f7a", + background: "#18181b", // zinc-950 (or slight purple tint per brand: #1a1625) + foreground: "#FAFAFA", // zinc-50 + card: "#18181b", // Matches background often in shadcn default, or slightly lighter + border: "#27272A", // zinc-800 + input: "#27272A", + muted: "#27272A", + mutedForeground: "#A1A1AA", // zinc-400 + primary: "#d946ef", // fuchsia-500 + primaryForeground: "#1a1625", + secondary: "#27272A", + secondaryForeground: "#FAFAFA", + accent: "#27272A", + destructive: "#7F1D1D", // red-900 + destructiveForeground: "#FFFFFF", +}; + +// Override with specific brand colors from oklch analysis if needed +const brandLightTheme = { + ...lightTheme, + background: "#fdfbff", // slightly purple white + primary: "#c026d3", + secondary: "#f5f3ff", // light violet +}; + +const brandDarkTheme = { + ...darkTheme, + background: "#1e1b2e", // Deep purple/slate + card: "#1e1b2e", + border: "#2e2a45", + input: "#2e2a45", + muted: "#2e2a45", + primary: "#e879f9", // bright fuchsia }; export function useAppTheme(): AppTheme { const colorScheme = useColorScheme(); - return colorScheme === "dark" ? darkTheme : lightTheme; + return colorScheme === "dark" ? brandDarkTheme : brandLightTheme; } diff --git a/native-app/src/screens/SignInScreen.tsx b/native-app/src/screens/SignInScreen.tsx index 861a9f1..6736f94 100644 --- a/native-app/src/screens/SignInScreen.tsx +++ b/native-app/src/screens/SignInScreen.tsx @@ -1,16 +1,18 @@ import { useState } from "react"; import { useSignIn } from "@clerk/clerk-expo"; import { - ActivityIndicator, - Pressable, + KeyboardAvoidingView, + Platform, StyleSheet, Text, - TextInput, View, } from "react-native"; import { useAppTheme } from "../lib/theme"; import { useI18n } from "../i18n/I18nProvider"; +import { Button } from "../components/ui/Button"; +import { Input } from "../components/ui/Input"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../components/ui/Card"; export function SignInScreen() { const theme = useAppTheme(); @@ -48,42 +50,52 @@ export function SignInScreen() { return ( - {t("appTitle")} - {t("signInSubtitle")} - - - - - { - void onSignIn(); - }} - style={styles.button} + - {isLoaded ? ( - {t("signIn")} - ) : ( - - )} - + + + {t("appTitle")} + + {t("signInSubtitle")} + + + + + - {status} + + + ); })} - - + + - - {t("session")} - {t("status")}: {t(statusKey, statusParams)} - {t("viewers")}: {viewerCount} - {roomCode || "------"} + + + {t("session")} + + {t("status")}: {t(statusKey, statusParams)} • {t("viewers")}: {viewerCount} + + + + + {roomCode || "------"} + - - { - void startSharing(); - }} - style={styles.primaryButton} - > - {t("startShare")} - - - - {t("stop")} - - - + +