wip bsky client for the web & android bbell.vt3e.cat

android: init

vt3e.cat c715e65b c04b9002

verified
+1396 -21
+2
.gitignore
··· 1 + .android-sdk 2 + 1 3 # Logs 2 4 logs 3 5 *.log
+16
README.md
··· 36 36 you can then view the app at `http://127.0.0.1:5173/`, note that you cannot use 37 37 `localhost` as oauth does not accept it as a valid redirect uri. 38 38 39 + ### android 40 + 41 + bluebell uses [capacitor] for mobile support, so we use the `cap` CLI to run it. 42 + you'll need to make sure you have the android SDK installed, if you use nix, then 43 + `flake.nix` handles all of this for you. if not however, check flake.nix for the 44 + needed dependencies. 45 + 46 + once you have the sdk set up, run the following commands to build, sync, and run 47 + the app on an android device or emulator: 48 + 49 + ```sh 50 + bun run build[-only] 51 + bunx cap sync 52 + bunx cap run android 53 + ``` 54 + 39 55 ## license 40 56 41 57 this project is licensed under the european union public license (eupl) v1.2.
+101
android/.gitignore
··· 1 + # Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore 2 + 3 + # Built application files 4 + *.apk 5 + *.aar 6 + *.ap_ 7 + *.aab 8 + 9 + # Files for the ART/Dalvik VM 10 + *.dex 11 + 12 + # Java class files 13 + *.class 14 + 15 + # Generated files 16 + bin/ 17 + gen/ 18 + out/ 19 + # Uncomment the following line in case you need and you don't have the release build type files in your app 20 + # release/ 21 + 22 + # Gradle files 23 + .gradle/ 24 + build/ 25 + 26 + # Local configuration file (sdk path, etc) 27 + local.properties 28 + 29 + # Proguard folder generated by Eclipse 30 + proguard/ 31 + 32 + # Log Files 33 + *.log 34 + 35 + # Android Studio Navigation editor temp files 36 + .navigation/ 37 + 38 + # Android Studio captures folder 39 + captures/ 40 + 41 + # IntelliJ 42 + *.iml 43 + .idea/workspace.xml 44 + .idea/tasks.xml 45 + .idea/gradle.xml 46 + .idea/assetWizardSettings.xml 47 + .idea/dictionaries 48 + .idea/libraries 49 + # Android Studio 3 in .gitignore file. 50 + .idea/caches 51 + .idea/modules.xml 52 + # Comment next line if keeping position of elements in Navigation Editor is relevant for you 53 + .idea/navEditor.xml 54 + 55 + # Keystore files 56 + # Uncomment the following lines if you do not want to check your keystore files in. 57 + #*.jks 58 + #*.keystore 59 + 60 + # External native build folder generated in Android Studio 2.2 and later 61 + .externalNativeBuild 62 + .cxx/ 63 + 64 + # Google Services (e.g. APIs or Firebase) 65 + # google-services.json 66 + 67 + # Freeline 68 + freeline.py 69 + freeline/ 70 + freeline_project_description.json 71 + 72 + # fastlane 73 + fastlane/report.xml 74 + fastlane/Preview.html 75 + fastlane/screenshots 76 + fastlane/test_output 77 + fastlane/readme.md 78 + 79 + # Version control 80 + vcs.xml 81 + 82 + # lint 83 + lint/intermediates/ 84 + lint/generated/ 85 + lint/outputs/ 86 + lint/tmp/ 87 + # lint/reports/ 88 + 89 + # Android Profiling 90 + *.hprof 91 + 92 + # Cordova plugins for Capacitor 93 + capacitor-cordova-android-plugins 94 + 95 + # Copied web assets 96 + app/src/main/assets/public 97 + 98 + # Generated Config files 99 + app/src/main/assets/capacitor.config.json 100 + app/src/main/assets/capacitor.plugins.json 101 + app/src/main/res/xml/config.xml
+2
android/app/.gitignore
··· 1 + /build/* 2 + !/build/.npmkeep
+54
android/app/build.gradle
··· 1 + apply plugin: 'com.android.application' 2 + 3 + android { 4 + namespace = "cat.vt3e.bbell" 5 + compileSdk = rootProject.ext.compileSdkVersion 6 + defaultConfig { 7 + applicationId "cat.vt3e.bbell" 8 + minSdkVersion rootProject.ext.minSdkVersion 9 + targetSdkVersion rootProject.ext.targetSdkVersion 10 + versionCode 1 11 + versionName "1.0" 12 + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 13 + aaptOptions { 14 + // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. 15 + // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 16 + ignoreAssetsPattern = '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' 17 + } 18 + } 19 + buildTypes { 20 + release { 21 + minifyEnabled false 22 + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 23 + } 24 + } 25 + } 26 + 27 + repositories { 28 + flatDir{ 29 + dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' 30 + } 31 + } 32 + 33 + dependencies { 34 + implementation fileTree(include: ['*.jar'], dir: 'libs') 35 + implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" 36 + implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion" 37 + implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion" 38 + implementation project(':capacitor-android') 39 + testImplementation "junit:junit:$junitVersion" 40 + androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" 41 + androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" 42 + implementation project(':capacitor-cordova-android-plugins') 43 + } 44 + 45 + apply from: 'capacitor.build.gradle' 46 + 47 + try { 48 + def servicesJSON = file('google-services.json') 49 + if (servicesJSON.text) { 50 + apply plugin: 'com.google.gms.google-services' 51 + } 52 + } catch(Exception e) { 53 + logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work") 54 + }
+19
android/app/capacitor.build.gradle
··· 1 + // DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN 2 + 3 + android { 4 + compileOptions { 5 + sourceCompatibility JavaVersion.VERSION_21 6 + targetCompatibility JavaVersion.VERSION_21 7 + } 8 + } 9 + 10 + apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" 11 + dependencies { 12 + 13 + 14 + } 15 + 16 + 17 + if (hasProperty('postBuildExtras')) { 18 + postBuildExtras() 19 + }
+21
android/app/proguard-rules.pro
··· 1 + # Add project specific ProGuard rules here. 2 + # You can control the set of applied configuration files using the 3 + # proguardFiles setting in build.gradle. 4 + # 5 + # For more details, see 6 + # http://developer.android.com/guide/developing/tools/proguard.html 7 + 8 + # If your project uses WebView with JS, uncomment the following 9 + # and specify the fully qualified class name to the JavaScript interface 10 + # class: 11 + #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 + # public *; 13 + #} 14 + 15 + # Uncomment this to preserve the line number information for 16 + # debugging stack traces. 17 + #-keepattributes SourceFile,LineNumberTable 18 + 19 + # If you keep the line number information, uncomment this to 20 + # hide the original source file name. 21 + #-renamesourcefileattribute SourceFile
+26
android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
··· 1 + package com.getcapacitor.myapp; 2 + 3 + import static org.junit.Assert.*; 4 + 5 + import android.content.Context; 6 + import androidx.test.ext.junit.runners.AndroidJUnit4; 7 + import androidx.test.platform.app.InstrumentationRegistry; 8 + import org.junit.Test; 9 + import org.junit.runner.RunWith; 10 + 11 + /** 12 + * Instrumented test, which will execute on an Android device. 13 + * 14 + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> 15 + */ 16 + @RunWith(AndroidJUnit4.class) 17 + public class ExampleInstrumentedTest { 18 + 19 + @Test 20 + public void useAppContext() throws Exception { 21 + // Context of the app under test. 22 + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 23 + 24 + assertEquals("com.getcapacitor.app", appContext.getPackageName()); 25 + } 26 + }
+41
android/app/src/main/AndroidManifest.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <manifest xmlns:android="http://schemas.android.com/apk/res/android"> 3 + 4 + <application 5 + android:allowBackup="true" 6 + android:icon="@mipmap/ic_launcher" 7 + android:label="@string/app_name" 8 + android:roundIcon="@mipmap/ic_launcher_round" 9 + android:supportsRtl="true" 10 + android:theme="@style/AppTheme"> 11 + 12 + <activity 13 + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation|density" 14 + android:name=".MainActivity" 15 + android:label="@string/title_activity_main" 16 + android:theme="@style/AppTheme.NoActionBarLaunch" 17 + android:launchMode="singleTask" 18 + android:exported="true"> 19 + 20 + <intent-filter> 21 + <action android:name="android.intent.action.MAIN" /> 22 + <category android:name="android.intent.category.LAUNCHER" /> 23 + </intent-filter> 24 + 25 + </activity> 26 + 27 + <provider 28 + android:name="androidx.core.content.FileProvider" 29 + android:authorities="${applicationId}.fileprovider" 30 + android:exported="false" 31 + android:grantUriPermissions="true"> 32 + <meta-data 33 + android:name="android.support.FILE_PROVIDER_PATHS" 34 + android:resource="@xml/file_paths"></meta-data> 35 + </provider> 36 + </application> 37 + 38 + <!-- Permissions --> 39 + 40 + <uses-permission android:name="android.permission.INTERNET" /> 41 + </manifest>
+5
android/app/src/main/java/cat/vt3e/bbell/MainActivity.java
··· 1 + package cat.vt3e.bbell; 2 + 3 + import com.getcapacitor.BridgeActivity; 4 + 5 + public class MainActivity extends BridgeActivity {}
android/app/src/main/res/drawable-land-hdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-land-mdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-land-xhdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-land-xxhdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-land-xxxhdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-port-hdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-port-mdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-port-xhdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-port-xxhdpi/splash.png

This is a binary file and will not be displayed.

android/app/src/main/res/drawable-port-xxxhdpi/splash.png

This is a binary file and will not be displayed.

+34
android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
··· 1 + <vector xmlns:android="http://schemas.android.com/apk/res/android" 2 + xmlns:aapt="http://schemas.android.com/aapt" 3 + android:width="108dp" 4 + android:height="108dp" 5 + android:viewportHeight="108" 6 + android:viewportWidth="108"> 7 + <path 8 + android:fillType="evenOdd" 9 + android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z" 10 + android:strokeColor="#00000000" 11 + android:strokeWidth="1"> 12 + <aapt:attr name="android:fillColor"> 13 + <gradient 14 + android:endX="78.5885" 15 + android:endY="90.9159" 16 + android:startX="48.7653" 17 + android:startY="61.0927" 18 + android:type="linear"> 19 + <item 20 + android:color="#44000000" 21 + android:offset="0.0" /> 22 + <item 23 + android:color="#00000000" 24 + android:offset="1.0" /> 25 + </gradient> 26 + </aapt:attr> 27 + </path> 28 + <path 29 + android:fillColor="#FFFFFF" 30 + android:fillType="nonZero" 31 + android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z" 32 + android:strokeColor="#00000000" 33 + android:strokeWidth="1" /> 34 + </vector>
+170
android/app/src/main/res/drawable/ic_launcher_background.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <vector xmlns:android="http://schemas.android.com/apk/res/android" 3 + android:width="108dp" 4 + android:height="108dp" 5 + android:viewportHeight="108" 6 + android:viewportWidth="108"> 7 + <path 8 + android:fillColor="#26A69A" 9 + android:pathData="M0,0h108v108h-108z" /> 10 + <path 11 + android:fillColor="#00000000" 12 + android:pathData="M9,0L9,108" 13 + android:strokeColor="#33FFFFFF" 14 + android:strokeWidth="0.8" /> 15 + <path 16 + android:fillColor="#00000000" 17 + android:pathData="M19,0L19,108" 18 + android:strokeColor="#33FFFFFF" 19 + android:strokeWidth="0.8" /> 20 + <path 21 + android:fillColor="#00000000" 22 + android:pathData="M29,0L29,108" 23 + android:strokeColor="#33FFFFFF" 24 + android:strokeWidth="0.8" /> 25 + <path 26 + android:fillColor="#00000000" 27 + android:pathData="M39,0L39,108" 28 + android:strokeColor="#33FFFFFF" 29 + android:strokeWidth="0.8" /> 30 + <path 31 + android:fillColor="#00000000" 32 + android:pathData="M49,0L49,108" 33 + android:strokeColor="#33FFFFFF" 34 + android:strokeWidth="0.8" /> 35 + <path 36 + android:fillColor="#00000000" 37 + android:pathData="M59,0L59,108" 38 + android:strokeColor="#33FFFFFF" 39 + android:strokeWidth="0.8" /> 40 + <path 41 + android:fillColor="#00000000" 42 + android:pathData="M69,0L69,108" 43 + android:strokeColor="#33FFFFFF" 44 + android:strokeWidth="0.8" /> 45 + <path 46 + android:fillColor="#00000000" 47 + android:pathData="M79,0L79,108" 48 + android:strokeColor="#33FFFFFF" 49 + android:strokeWidth="0.8" /> 50 + <path 51 + android:fillColor="#00000000" 52 + android:pathData="M89,0L89,108" 53 + android:strokeColor="#33FFFFFF" 54 + android:strokeWidth="0.8" /> 55 + <path 56 + android:fillColor="#00000000" 57 + android:pathData="M99,0L99,108" 58 + android:strokeColor="#33FFFFFF" 59 + android:strokeWidth="0.8" /> 60 + <path 61 + android:fillColor="#00000000" 62 + android:pathData="M0,9L108,9" 63 + android:strokeColor="#33FFFFFF" 64 + android:strokeWidth="0.8" /> 65 + <path 66 + android:fillColor="#00000000" 67 + android:pathData="M0,19L108,19" 68 + android:strokeColor="#33FFFFFF" 69 + android:strokeWidth="0.8" /> 70 + <path 71 + android:fillColor="#00000000" 72 + android:pathData="M0,29L108,29" 73 + android:strokeColor="#33FFFFFF" 74 + android:strokeWidth="0.8" /> 75 + <path 76 + android:fillColor="#00000000" 77 + android:pathData="M0,39L108,39" 78 + android:strokeColor="#33FFFFFF" 79 + android:strokeWidth="0.8" /> 80 + <path 81 + android:fillColor="#00000000" 82 + android:pathData="M0,49L108,49" 83 + android:strokeColor="#33FFFFFF" 84 + android:strokeWidth="0.8" /> 85 + <path 86 + android:fillColor="#00000000" 87 + android:pathData="M0,59L108,59" 88 + android:strokeColor="#33FFFFFF" 89 + android:strokeWidth="0.8" /> 90 + <path 91 + android:fillColor="#00000000" 92 + android:pathData="M0,69L108,69" 93 + android:strokeColor="#33FFFFFF" 94 + android:strokeWidth="0.8" /> 95 + <path 96 + android:fillColor="#00000000" 97 + android:pathData="M0,79L108,79" 98 + android:strokeColor="#33FFFFFF" 99 + android:strokeWidth="0.8" /> 100 + <path 101 + android:fillColor="#00000000" 102 + android:pathData="M0,89L108,89" 103 + android:strokeColor="#33FFFFFF" 104 + android:strokeWidth="0.8" /> 105 + <path 106 + android:fillColor="#00000000" 107 + android:pathData="M0,99L108,99" 108 + android:strokeColor="#33FFFFFF" 109 + android:strokeWidth="0.8" /> 110 + <path 111 + android:fillColor="#00000000" 112 + android:pathData="M19,29L89,29" 113 + android:strokeColor="#33FFFFFF" 114 + android:strokeWidth="0.8" /> 115 + <path 116 + android:fillColor="#00000000" 117 + android:pathData="M19,39L89,39" 118 + android:strokeColor="#33FFFFFF" 119 + android:strokeWidth="0.8" /> 120 + <path 121 + android:fillColor="#00000000" 122 + android:pathData="M19,49L89,49" 123 + android:strokeColor="#33FFFFFF" 124 + android:strokeWidth="0.8" /> 125 + <path 126 + android:fillColor="#00000000" 127 + android:pathData="M19,59L89,59" 128 + android:strokeColor="#33FFFFFF" 129 + android:strokeWidth="0.8" /> 130 + <path 131 + android:fillColor="#00000000" 132 + android:pathData="M19,69L89,69" 133 + android:strokeColor="#33FFFFFF" 134 + android:strokeWidth="0.8" /> 135 + <path 136 + android:fillColor="#00000000" 137 + android:pathData="M19,79L89,79" 138 + android:strokeColor="#33FFFFFF" 139 + android:strokeWidth="0.8" /> 140 + <path 141 + android:fillColor="#00000000" 142 + android:pathData="M29,19L29,89" 143 + android:strokeColor="#33FFFFFF" 144 + android:strokeWidth="0.8" /> 145 + <path 146 + android:fillColor="#00000000" 147 + android:pathData="M39,19L39,89" 148 + android:strokeColor="#33FFFFFF" 149 + android:strokeWidth="0.8" /> 150 + <path 151 + android:fillColor="#00000000" 152 + android:pathData="M49,19L49,89" 153 + android:strokeColor="#33FFFFFF" 154 + android:strokeWidth="0.8" /> 155 + <path 156 + android:fillColor="#00000000" 157 + android:pathData="M59,19L59,89" 158 + android:strokeColor="#33FFFFFF" 159 + android:strokeWidth="0.8" /> 160 + <path 161 + android:fillColor="#00000000" 162 + android:pathData="M69,19L69,89" 163 + android:strokeColor="#33FFFFFF" 164 + android:strokeWidth="0.8" /> 165 + <path 166 + android:fillColor="#00000000" 167 + android:pathData="M79,19L79,89" 168 + android:strokeColor="#33FFFFFF" 169 + android:strokeWidth="0.8" /> 170 + </vector>
android/app/src/main/res/drawable/splash.png

This is a binary file and will not be displayed.

+12
android/app/src/main/res/layout/activity_main.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 + xmlns:app="http://schemas.android.com/apk/res-auto" 4 + xmlns:tools="http://schemas.android.com/tools" 5 + android:layout_width="match_parent" 6 + android:layout_height="match_parent" 7 + tools:context=".MainActivity"> 8 + 9 + <WebView 10 + android:layout_width="match_parent" 11 + android:layout_height="match_parent" /> 12 + </androidx.coordinatorlayout.widget.CoordinatorLayout>
+5
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> 3 + <background android:drawable="@color/ic_launcher_background"/> 4 + <foreground android:drawable="@mipmap/ic_launcher_foreground"/> 5 + </adaptive-icon>
+5
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> 3 + <background android:drawable="@color/ic_launcher_background"/> 4 + <foreground android:drawable="@mipmap/ic_launcher_foreground"/> 5 + </adaptive-icon>
android/app/src/main/res/mipmap-hdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-mdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xhdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

+4
android/app/src/main/res/values/ic_launcher_background.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <resources> 3 + <color name="ic_launcher_background">#FFFFFF</color> 4 + </resources>
+7
android/app/src/main/res/values/strings.xml
··· 1 + <?xml version='1.0' encoding='utf-8'?> 2 + <resources> 3 + <string name="app_name">bluebell</string> 4 + <string name="title_activity_main">bluebell</string> 5 + <string name="package_name">cat.vt3e.bbell</string> 6 + <string name="custom_url_scheme">cat.vt3e.bbell</string> 7 + </resources>
+22
android/app/src/main/res/values/styles.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <resources> 3 + 4 + <!-- Base application theme. --> 5 + <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 6 + <!-- Customize your theme here. --> 7 + <item name="colorPrimary">@color/colorPrimary</item> 8 + <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 9 + <item name="colorAccent">@color/colorAccent</item> 10 + </style> 11 + 12 + <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.DayNight.NoActionBar"> 13 + <item name="windowActionBar">false</item> 14 + <item name="windowNoTitle">true</item> 15 + <item name="android:background">@null</item> 16 + </style> 17 + 18 + 19 + <style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen"> 20 + <item name="android:background">@drawable/splash</item> 21 + </style> 22 + </resources>
+5
android/app/src/main/res/xml/file_paths.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <paths xmlns:android="http://schemas.android.com/apk/res/android"> 3 + <external-path name="my_images" path="." /> 4 + <cache-path name="my_cache_images" path="." /> 5 + </paths>
+18
android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
··· 1 + package com.getcapacitor.myapp; 2 + 3 + import static org.junit.Assert.*; 4 + 5 + import org.junit.Test; 6 + 7 + /** 8 + * Example local unit test, which will execute on the development machine (host). 9 + * 10 + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> 11 + */ 12 + public class ExampleUnitTest { 13 + 14 + @Test 15 + public void addition_isCorrect() throws Exception { 16 + assertEquals(4, 2 + 2); 17 + } 18 + }
+29
android/build.gradle
··· 1 + // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 + 3 + buildscript { 4 + 5 + repositories { 6 + google() 7 + mavenCentral() 8 + } 9 + dependencies { 10 + classpath 'com.android.tools.build:gradle:8.13.0' 11 + classpath 'com.google.gms:google-services:4.4.4' 12 + 13 + // NOTE: Do not place your application dependencies here; they belong 14 + // in the individual module build.gradle files 15 + } 16 + } 17 + 18 + apply from: "variables.gradle" 19 + 20 + allprojects { 21 + repositories { 22 + google() 23 + mavenCentral() 24 + } 25 + } 26 + 27 + task clean(type: Delete) { 28 + delete rootProject.buildDir 29 + }
+3
android/capacitor.settings.gradle
··· 1 + // DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN 2 + include ':capacitor-android' 3 + project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
+22
android/gradle.properties
··· 1 + # Project-wide Gradle settings. 2 + 3 + # IDE (e.g. Android Studio) users: 4 + # Gradle settings configured through the IDE *will override* 5 + # any settings specified in this file. 6 + 7 + # For more details on how to configure your build environment visit 8 + # http://www.gradle.org/docs/current/userguide/build_environment.html 9 + 10 + # Specifies the JVM arguments used for the daemon process. 11 + # The setting is particularly useful for tweaking memory settings. 12 + org.gradle.jvmargs=-Xmx1536m 13 + 14 + # When configured, Gradle will run in incubating parallel mode. 15 + # This option should only be used with decoupled projects. More details, visit 16 + # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 + # org.gradle.parallel=true 18 + 19 + # AndroidX package structure to make it clearer which packages are bundled with the 20 + # Android operating system, and which are packaged with your app's APK 21 + # https://developer.android.com/topic/libraries/support-library/androidx-rn 22 + android.useAndroidX=true
android/gradle/wrapper/gradle-wrapper.jar

This is a binary file and will not be displayed.

+7
android/gradle/wrapper/gradle-wrapper.properties
··· 1 + distributionBase=GRADLE_USER_HOME 2 + distributionPath=wrapper/dists 3 + distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-all.zip 4 + networkTimeout=10000 5 + validateDistributionUrl=true 6 + zipStoreBase=GRADLE_USER_HOME 7 + zipStorePath=wrapper/dists
+251
android/gradlew
··· 1 + #!/bin/sh 2 + 3 + # 4 + # Copyright © 2015-2021 the original authors. 5 + # 6 + # Licensed under the Apache License, Version 2.0 (the "License"); 7 + # you may not use this file except in compliance with the License. 8 + # You may obtain a copy of the License at 9 + # 10 + # https://www.apache.org/licenses/LICENSE-2.0 11 + # 12 + # Unless required by applicable law or agreed to in writing, software 13 + # distributed under the License is distributed on an "AS IS" BASIS, 14 + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 + # See the License for the specific language governing permissions and 16 + # limitations under the License. 17 + # 18 + # SPDX-License-Identifier: Apache-2.0 19 + # 20 + 21 + ############################################################################## 22 + # 23 + # Gradle start up script for POSIX generated by Gradle. 24 + # 25 + # Important for running: 26 + # 27 + # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 28 + # noncompliant, but you have some other compliant shell such as ksh or 29 + # bash, then to run this script, type that shell name before the whole 30 + # command line, like: 31 + # 32 + # ksh Gradle 33 + # 34 + # Busybox and similar reduced shells will NOT work, because this script 35 + # requires all of these POSIX shell features: 36 + # * functions; 37 + # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 38 + # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 39 + # * compound commands having a testable exit status, especially «case»; 40 + # * various built-in commands including «command», «set», and «ulimit». 41 + # 42 + # Important for patching: 43 + # 44 + # (2) This script targets any POSIX shell, so it avoids extensions provided 45 + # by Bash, Ksh, etc; in particular arrays are avoided. 46 + # 47 + # The "traditional" practice of packing multiple parameters into a 48 + # space-separated string is a well documented source of bugs and security 49 + # problems, so this is (mostly) avoided, by progressively accumulating 50 + # options in "$@", and eventually passing that to Java. 51 + # 52 + # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 53 + # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 54 + # see the in-line comments for details. 55 + # 56 + # There are tweaks for specific operating systems such as AIX, CygWin, 57 + # Darwin, MinGW, and NonStop. 58 + # 59 + # (3) This script is generated from the Groovy template 60 + # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 61 + # within the Gradle project. 62 + # 63 + # You can find Gradle at https://github.com/gradle/gradle/. 64 + # 65 + ############################################################################## 66 + 67 + # Attempt to set APP_HOME 68 + 69 + # Resolve links: $0 may be a link 70 + app_path=$0 71 + 72 + # Need this for daisy-chained symlinks. 73 + while 74 + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 75 + [ -h "$app_path" ] 76 + do 77 + ls=$( ls -ld "$app_path" ) 78 + link=${ls#*' -> '} 79 + case $link in #( 80 + /*) app_path=$link ;; #( 81 + *) app_path=$APP_HOME$link ;; 82 + esac 83 + done 84 + 85 + # This is normally unused 86 + # shellcheck disable=SC2034 87 + APP_BASE_NAME=${0##*/} 88 + # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) 89 + APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit 90 + 91 + # Use the maximum available, or set MAX_FD != -1 to use that value. 92 + MAX_FD=maximum 93 + 94 + warn () { 95 + echo "$*" 96 + } >&2 97 + 98 + die () { 99 + echo 100 + echo "$*" 101 + echo 102 + exit 1 103 + } >&2 104 + 105 + # OS specific support (must be 'true' or 'false'). 106 + cygwin=false 107 + msys=false 108 + darwin=false 109 + nonstop=false 110 + case "$( uname )" in #( 111 + CYGWIN* ) cygwin=true ;; #( 112 + Darwin* ) darwin=true ;; #( 113 + MSYS* | MINGW* ) msys=true ;; #( 114 + NONSTOP* ) nonstop=true ;; 115 + esac 116 + 117 + CLASSPATH="\\\"\\\"" 118 + 119 + 120 + # Determine the Java command to use to start the JVM. 121 + if [ -n "$JAVA_HOME" ] ; then 122 + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 123 + # IBM's JDK on AIX uses strange locations for the executables 124 + JAVACMD=$JAVA_HOME/jre/sh/java 125 + else 126 + JAVACMD=$JAVA_HOME/bin/java 127 + fi 128 + if [ ! -x "$JAVACMD" ] ; then 129 + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 130 + 131 + Please set the JAVA_HOME variable in your environment to match the 132 + location of your Java installation." 133 + fi 134 + else 135 + JAVACMD=java 136 + if ! command -v java >/dev/null 2>&1 137 + then 138 + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 139 + 140 + Please set the JAVA_HOME variable in your environment to match the 141 + location of your Java installation." 142 + fi 143 + fi 144 + 145 + # Increase the maximum file descriptors if we can. 146 + if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 147 + case $MAX_FD in #( 148 + max*) 149 + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. 150 + # shellcheck disable=SC2039,SC3045 151 + MAX_FD=$( ulimit -H -n ) || 152 + warn "Could not query maximum file descriptor limit" 153 + esac 154 + case $MAX_FD in #( 155 + '' | soft) :;; #( 156 + *) 157 + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. 158 + # shellcheck disable=SC2039,SC3045 159 + ulimit -n "$MAX_FD" || 160 + warn "Could not set maximum file descriptor limit to $MAX_FD" 161 + esac 162 + fi 163 + 164 + # Collect all arguments for the java command, stacking in reverse order: 165 + # * args from the command line 166 + # * the main class name 167 + # * -classpath 168 + # * -D...appname settings 169 + # * --module-path (only if needed) 170 + # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 171 + 172 + # For Cygwin or MSYS, switch paths to Windows format before running java 173 + if "$cygwin" || "$msys" ; then 174 + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 175 + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 176 + 177 + JAVACMD=$( cygpath --unix "$JAVACMD" ) 178 + 179 + # Now convert the arguments - kludge to limit ourselves to /bin/sh 180 + for arg do 181 + if 182 + case $arg in #( 183 + -*) false ;; # don't mess with options #( 184 + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 185 + [ -e "$t" ] ;; #( 186 + *) false ;; 187 + esac 188 + then 189 + arg=$( cygpath --path --ignore --mixed "$arg" ) 190 + fi 191 + # Roll the args list around exactly as many times as the number of 192 + # args, so each arg winds up back in the position where it started, but 193 + # possibly modified. 194 + # 195 + # NB: a `for` loop captures its iteration list before it begins, so 196 + # changing the positional parameters here affects neither the number of 197 + # iterations, nor the values presented in `arg`. 198 + shift # remove old arg 199 + set -- "$@" "$arg" # push replacement arg 200 + done 201 + fi 202 + 203 + 204 + # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 205 + DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 206 + 207 + # Collect all arguments for the java command: 208 + # * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, 209 + # and any embedded shellness will be escaped. 210 + # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be 211 + # treated as '${Hostname}' itself on the command line. 212 + 213 + set -- \ 214 + "-Dorg.gradle.appname=$APP_BASE_NAME" \ 215 + -classpath "$CLASSPATH" \ 216 + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ 217 + "$@" 218 + 219 + # Stop when "xargs" is not available. 220 + if ! command -v xargs >/dev/null 2>&1 221 + then 222 + die "xargs is not available" 223 + fi 224 + 225 + # Use "xargs" to parse quoted args. 226 + # 227 + # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 228 + # 229 + # In Bash we could simply go: 230 + # 231 + # readarray ARGS < <( xargs -n1 <<<"$var" ) && 232 + # set -- "${ARGS[@]}" "$@" 233 + # 234 + # but POSIX shell has neither arrays nor command substitution, so instead we 235 + # post-process each arg (as a line of input to sed) to backslash-escape any 236 + # character that might be a shell metacharacter, then use eval to reverse 237 + # that process (while maintaining the separation between arguments), and wrap 238 + # the whole thing up as a single "set" statement. 239 + # 240 + # This will of course break if any of these variables contains a newline or 241 + # an unmatched quote. 242 + # 243 + 244 + eval "set -- $( 245 + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 246 + xargs -n1 | 247 + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 248 + tr '\n' ' ' 249 + )" '"$@"' 250 + 251 + exec "$JAVACMD" "$@"
+94
android/gradlew.bat
··· 1 + @rem 2 + @rem Copyright 2015 the original author or authors. 3 + @rem 4 + @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 + @rem you may not use this file except in compliance with the License. 6 + @rem You may obtain a copy of the License at 7 + @rem 8 + @rem https://www.apache.org/licenses/LICENSE-2.0 9 + @rem 10 + @rem Unless required by applicable law or agreed to in writing, software 11 + @rem distributed under the License is distributed on an "AS IS" BASIS, 12 + @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 + @rem See the License for the specific language governing permissions and 14 + @rem limitations under the License. 15 + @rem 16 + @rem SPDX-License-Identifier: Apache-2.0 17 + @rem 18 + 19 + @if "%DEBUG%"=="" @echo off 20 + @rem ########################################################################## 21 + @rem 22 + @rem Gradle startup script for Windows 23 + @rem 24 + @rem ########################################################################## 25 + 26 + @rem Set local scope for the variables with windows NT shell 27 + if "%OS%"=="Windows_NT" setlocal 28 + 29 + set DIRNAME=%~dp0 30 + if "%DIRNAME%"=="" set DIRNAME=. 31 + @rem This is normally unused 32 + set APP_BASE_NAME=%~n0 33 + set APP_HOME=%DIRNAME% 34 + 35 + @rem Resolve any "." and ".." in APP_HOME to make it shorter. 36 + for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 37 + 38 + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 39 + set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 40 + 41 + @rem Find java.exe 42 + if defined JAVA_HOME goto findJavaFromJavaHome 43 + 44 + set JAVA_EXE=java.exe 45 + %JAVA_EXE% -version >NUL 2>&1 46 + if %ERRORLEVEL% equ 0 goto execute 47 + 48 + echo. 1>&2 49 + echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 50 + echo. 1>&2 51 + echo Please set the JAVA_HOME variable in your environment to match the 1>&2 52 + echo location of your Java installation. 1>&2 53 + 54 + goto fail 55 + 56 + :findJavaFromJavaHome 57 + set JAVA_HOME=%JAVA_HOME:"=% 58 + set JAVA_EXE=%JAVA_HOME%/bin/java.exe 59 + 60 + if exist "%JAVA_EXE%" goto execute 61 + 62 + echo. 1>&2 63 + echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 64 + echo. 1>&2 65 + echo Please set the JAVA_HOME variable in your environment to match the 1>&2 66 + echo location of your Java installation. 1>&2 67 + 68 + goto fail 69 + 70 + :execute 71 + @rem Setup the command line 72 + 73 + set CLASSPATH= 74 + 75 + 76 + @rem Execute Gradle 77 + "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* 78 + 79 + :end 80 + @rem End local scope for the variables with windows NT shell 81 + if %ERRORLEVEL% equ 0 goto mainEnd 82 + 83 + :fail 84 + rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 85 + rem the _cmd.exe /c_ return code! 86 + set EXIT_CODE=%ERRORLEVEL% 87 + if %EXIT_CODE% equ 0 set EXIT_CODE=1 88 + if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 89 + exit /b %EXIT_CODE% 90 + 91 + :mainEnd 92 + if "%OS%"=="Windows_NT" endlocal 93 + 94 + :omega
+5
android/settings.gradle
··· 1 + include ':app' 2 + include ':capacitor-cordova-android-plugins' 3 + project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') 4 + 5 + apply from: 'capacitor.settings.gradle'
+16
android/variables.gradle
··· 1 + ext { 2 + minSdkVersion = 24 3 + compileSdkVersion = 36 4 + targetSdkVersion = 36 5 + androidxActivityVersion = '1.11.0' 6 + androidxAppCompatVersion = '1.7.1' 7 + androidxCoordinatorLayoutVersion = '1.3.0' 8 + androidxCoreVersion = '1.17.0' 9 + androidxFragmentVersion = '1.8.9' 10 + coreSplashScreenVersion = '1.2.0' 11 + androidxWebkitVersion = '1.14.0' 12 + junitVersion = '4.13.2' 13 + androidxJunitVersion = '1.3.0' 14 + androidxEspressoCoreVersion = '3.7.0' 15 + cordovaAndroidVersion = '14.0.1' 16 + }
+191 -6
bun.lock
··· 10 10 "@atcute/identity-resolver": "^1.2.0", 11 11 "@atcute/lexicons": "^1.2.5", 12 12 "@atcute/oauth-browser-client": "^2.0.3", 13 + "@capacitor/android": "^8.0.0", 14 + "@capacitor/core": "^8.0.0", 13 15 "@iconify-prerendered/vue-material-symbols": "^0.28.1755063979", 16 + "add": "^2.0.6", 17 + "android": "^0.0.8", 18 + "cap": "^0.2.1", 14 19 "hls.js": "^1.6.15", 20 + "i": "^0.3.7", 15 21 "pinia": "^3.0.4", 16 22 "vue": "^3.5.25", 17 23 }, 18 24 "devDependencies": { 25 + "@capacitor/cli": "^8.0.0", 19 26 "@prettier/plugin-oxc": "^0.0.5", 20 27 "@tsconfig/node24": "^24.0.3", 21 28 "@types/node": "^25.0.3", ··· 123 130 124 131 "@bufbuild/protobuf": ["@bufbuild/protobuf@2.10.2", "", {}, "sha512-uFsRXwIGyu+r6AMdz+XijIIZJYpoWeYzILt5yZ2d3mCjQrWUTVpVD9WL/jZAbvp+Ed04rOhrsk7FiTcEDseB5A=="], 125 132 133 + "@capacitor/android": ["@capacitor/android@8.0.0", "", { "peerDependencies": { "@capacitor/core": "^8.0.0" } }, "sha512-FrBSvVAC5JuLaYHNyDnwQny0/SYnP+xDQbc/KA4wInmRkMXLDv22fkx9aBJIDrxjuUVd+jsRih4SAt8FgMEzCw=="], 134 + 135 + "@capacitor/cli": ["@capacitor/cli@8.0.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.0", "env-paths": "^2.2.0", "fs-extra": "^11.2.0", "kleur": "^4.1.5", "native-run": "^2.0.1", "open": "^8.4.0", "plist": "^3.1.0", "prompts": "^2.4.2", "rimraf": "^6.0.1", "semver": "^7.6.3", "tar": "^6.1.11", "tslib": "^2.8.1", "xml2js": "^0.6.2" }, "bin": { "cap": "bin/capacitor", "capacitor": "bin/capacitor" } }, "sha512-v9hEBi69xGxuuZhg55N031bMEenKaPSv71Il8C22VOOH6surDyv/MPeImN0oVfFc7eiklaW3rDFYVz6cmXfJWQ=="], 136 + 137 + "@capacitor/core": ["@capacitor/core@8.0.0", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-250HTVd/W/KdMygoqaedisvNbHbpbQTN2Hy/8ZYGm1nAqE0Fx7sGss4l0nDg33STxEdDhtVRoL2fIaaiukKseA=="], 138 + 126 139 "@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="], 127 140 128 141 "@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="], ··· 157 170 158 171 "@iconify-prerendered/vue-material-symbols": ["@iconify-prerendered/vue-material-symbols@0.28.1755063979", "", { "peerDependencies": { "vue": "^3.0.0" } }, "sha512-twv15c6sQPhr06gAJxPBqdPgGAbaFamMZMECqdzBPePna9mJ6ISV8rBX4bKwan4h3EiSHei/pSu+jOt8G5xVLA=="], 159 172 173 + "@ionic/cli-framework-output": ["@ionic/cli-framework-output@2.2.8", "", { "dependencies": { "@ionic/utils-terminal": "2.3.5", "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g=="], 174 + 175 + "@ionic/utils-array": ["@ionic/utils-array@2.1.6", "", { "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg=="], 176 + 177 + "@ionic/utils-fs": ["@ionic/utils-fs@3.1.7", "", { "dependencies": { "@types/fs-extra": "^8.0.0", "debug": "^4.0.0", "fs-extra": "^9.0.0", "tslib": "^2.0.1" } }, "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA=="], 178 + 179 + "@ionic/utils-object": ["@ionic/utils-object@2.1.6", "", { "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww=="], 180 + 181 + "@ionic/utils-process": ["@ionic/utils-process@2.1.12", "", { "dependencies": { "@ionic/utils-object": "2.1.6", "@ionic/utils-terminal": "2.3.5", "debug": "^4.0.0", "signal-exit": "^3.0.3", "tree-kill": "^1.2.2", "tslib": "^2.0.1" } }, "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg=="], 182 + 183 + "@ionic/utils-stream": ["@ionic/utils-stream@3.1.7", "", { "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w=="], 184 + 185 + "@ionic/utils-subprocess": ["@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.3", "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A=="], 186 + 187 + "@ionic/utils-terminal": ["@ionic/utils-terminal@2.3.5", "", { "dependencies": { "@types/slice-ansi": "^4.0.0", "debug": "^4.0.0", "signal-exit": "^3.0.3", "slice-ansi": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "tslib": "^2.0.1", "untildify": "^4.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A=="], 188 + 189 + "@isaacs/balanced-match": ["@isaacs/balanced-match@4.0.1", "", {}, "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="], 190 + 191 + "@isaacs/brace-expansion": ["@isaacs/brace-expansion@5.0.0", "", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="], 192 + 160 193 "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], 161 194 162 195 "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], ··· 295 328 296 329 "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], 297 330 331 + "@types/fs-extra": ["@types/fs-extra@8.1.5", "", { "dependencies": { "@types/node": "*" } }, "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ=="], 332 + 298 333 "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], 299 334 300 335 "@types/node": ["@types/node@25.0.3", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA=="], 336 + 337 + "@types/slice-ansi": ["@types/slice-ansi@4.0.0", "", {}, "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ=="], 301 338 302 339 "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.50.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.50.0", "@typescript-eslint/type-utils": "8.50.0", "@typescript-eslint/utils": "8.50.0", "@typescript-eslint/visitor-keys": "8.50.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.50.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg=="], 303 340 ··· 367 404 368 405 "@vue/tsconfig": ["@vue/tsconfig@0.8.1", "", { "peerDependencies": { "typescript": "5.x", "vue": "^3.4.0" }, "optionalPeers": ["typescript", "vue"] }, "sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g=="], 369 406 407 + "@xmldom/xmldom": ["@xmldom/xmldom@0.8.11", "", {}, "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw=="], 408 + 370 409 "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], 371 410 372 411 "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], 412 + 413 + "add": ["add@2.0.6", "", {}, "sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q=="], 373 414 374 415 "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], 375 416 376 417 "alien-signals": ["alien-signals@3.1.1", "", {}, "sha512-ogkIWbVrLwKtHY6oOAXaYkAxP+cTH7V5FZ5+Tm4NZFd8VDZ6uNMDrfzqctTZ42eTMCSR3ne3otpcxmqSnFfPYA=="], 377 418 419 + "android": ["android@0.0.8", "", {}, "sha512-cMasrXpHR6APDMSTu5JNMTL37GjYbcC9Uz2cyExSnr0f6XanNhPW3+iavHqRmfNW0QlM4kjZQa2epTjpyZcdjQ=="], 420 + 421 + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], 422 + 378 423 "ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], 379 424 380 425 "ansis": ["ansis@4.2.0", "", {}, "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig=="], 381 426 382 427 "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], 383 428 429 + "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="], 430 + 431 + "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], 432 + 384 433 "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], 385 434 435 + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], 436 + 386 437 "baseline-browser-mapping": ["baseline-browser-mapping@2.9.10", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-2VIKvDx8Z1a9rTB2eCkdPE5nSe28XnA+qivGnWHoB40hMMt/h1hSz0960Zqsn6ZyxWXUie0EBdElKv8may20AA=="], 438 + 439 + "big-integer": ["big-integer@1.6.52", "", {}, "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="], 387 440 388 441 "birpc": ["birpc@2.9.0", "", {}, "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw=="], 389 442 390 443 "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], 391 444 445 + "bplist-parser": ["bplist-parser@0.3.2", "", { "dependencies": { "big-integer": "1.6.x" } }, "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ=="], 446 + 392 447 "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], 393 448 394 449 "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], ··· 396 451 "browserslist": ["browserslist@4.28.1", "", { "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" } }, "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA=="], 397 452 398 453 "buffer-builder": ["buffer-builder@0.2.0", "", {}, "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg=="], 454 + 455 + "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], 399 456 400 457 "bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="], 401 458 ··· 403 460 404 461 "caniuse-lite": ["caniuse-lite@1.0.30001760", "", {}, "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw=="], 405 462 463 + "cap": ["cap@0.2.1", "", { "dependencies": { "nan": "^2.14.0" } }, "sha512-0n10YndTkI4V+rsPVvYFdqlA0Bjf8NFlP/Wgp0W0ymudkijuqkmSVdIWigFe2YdPhjjxTJdW9Mu5ee4VwB0L+A=="], 464 + 406 465 "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], 407 466 408 467 "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], 409 468 469 + "chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], 470 + 410 471 "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], 411 472 412 473 "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], 413 474 414 475 "colorjs.io": ["colorjs.io@0.5.2", "", {}, "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw=="], 476 + 477 + "commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], 415 478 416 479 "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], 417 480 ··· 433 496 434 497 "default-browser-id": ["default-browser-id@5.0.1", "", {}, "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q=="], 435 498 436 - "define-lazy-prop": ["define-lazy-prop@3.0.0", "", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="], 499 + "define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], 437 500 438 501 "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], 439 502 440 503 "electron-to-chromium": ["electron-to-chromium@1.5.267", "", {}, "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw=="], 441 504 505 + "elementtree": ["elementtree@0.1.7", "", { "dependencies": { "sax": "1.1.4" } }, "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg=="], 506 + 507 + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], 508 + 442 509 "entities": ["entities@7.0.0", "", {}, "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ=="], 510 + 511 + "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], 443 512 444 513 "error-stack-parser-es": ["error-stack-parser-es@1.0.5", "", {}, "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA=="], 445 514 ··· 487 556 488 557 "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], 489 558 559 + "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], 560 + 490 561 "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], 491 562 492 563 "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], ··· 499 570 500 571 "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], 501 572 573 + "fs-extra": ["fs-extra@11.3.3", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg=="], 574 + 575 + "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="], 576 + 502 577 "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], 503 578 504 579 "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], 505 580 581 + "glob": ["glob@13.0.0", "", { "dependencies": { "minimatch": "^10.1.1", "minipass": "^7.1.2", "path-scurry": "^2.0.0" } }, "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA=="], 582 + 506 583 "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], 507 584 508 585 "globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], 586 + 587 + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], 509 588 510 589 "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], 511 590 ··· 513 592 514 593 "hookable": ["hookable@5.5.3", "", {}, "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="], 515 594 595 + "i": ["i@0.3.7", "", {}, "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q=="], 596 + 516 597 "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], 517 598 518 599 "immutable": ["immutable@5.1.4", "", {}, "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA=="], ··· 521 602 522 603 "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], 523 604 524 - "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], 605 + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], 606 + 607 + "ini": ["ini@4.1.3", "", {}, "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg=="], 608 + 609 + "is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], 525 610 526 611 "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], 612 + 613 + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], 527 614 528 615 "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], 529 616 ··· 533 620 534 621 "is-what": ["is-what@5.5.0", "", {}, "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw=="], 535 622 536 - "is-wsl": ["is-wsl@3.1.0", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="], 623 + "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], 537 624 538 625 "isexe": ["isexe@3.1.1", "", {}, "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="], 539 626 ··· 557 644 558 645 "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], 559 646 647 + "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], 648 + 560 649 "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], 650 + 651 + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], 561 652 562 653 "kolorist": ["kolorist@1.8.0", "", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="], 563 654 ··· 591 682 592 683 "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], 593 684 594 - "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], 685 + "lru-cache": ["lru-cache@11.2.4", "", {}, "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg=="], 595 686 596 687 "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], 597 688 ··· 603 694 604 695 "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], 605 696 697 + "minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], 698 + 699 + "minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], 700 + 606 701 "mitt": ["mitt@3.0.1", "", {}, "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="], 607 702 703 + "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], 704 + 608 705 "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], 609 706 610 707 "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], 611 708 612 709 "muggle-string": ["muggle-string@0.4.1", "", {}, "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ=="], 613 710 711 + "nan": ["nan@2.24.0", "", {}, "sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg=="], 712 + 614 713 "nanoid": ["nanoid@5.1.6", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg=="], 714 + 715 + "native-run": ["native-run@2.0.3", "", { "dependencies": { "@ionic/utils-fs": "^3.1.7", "@ionic/utils-terminal": "^2.3.4", "bplist-parser": "^0.3.2", "debug": "^4.3.4", "elementtree": "^0.1.7", "ini": "^4.1.1", "plist": "^3.1.0", "split2": "^4.2.0", "through2": "^4.0.2", "tslib": "^2.6.2", "yauzl": "^2.10.0" }, "bin": { "native-run": "bin/native-run" } }, "sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q=="], 615 716 616 717 "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], 617 718 ··· 627 728 628 729 "ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], 629 730 630 - "open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="], 731 + "open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], 631 732 632 733 "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], 633 734 ··· 639 740 640 741 "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], 641 742 743 + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], 744 + 642 745 "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], 643 746 644 747 "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], ··· 646 749 "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], 647 750 648 751 "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], 752 + 753 + "path-scurry": ["path-scurry@2.0.1", "", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA=="], 649 754 650 755 "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], 651 756 757 + "pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="], 758 + 652 759 "perfect-debounce": ["perfect-debounce@2.0.0", "", {}, "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow=="], 653 760 654 761 "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], ··· 659 766 660 767 "pinia": ["pinia@3.0.4", "", { "dependencies": { "@vue/devtools-api": "^7.7.7" }, "peerDependencies": { "typescript": ">=4.5.0", "vue": "^3.5.11" }, "optionalPeers": ["typescript"] }, "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw=="], 661 768 769 + "plist": ["plist@3.1.0", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ=="], 770 + 662 771 "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], 663 772 664 773 "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], ··· 668 777 "prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="], 669 778 670 779 "prettier-linter-helpers": ["prettier-linter-helpers@1.0.0", "", { "dependencies": { "fast-diff": "^1.1.2" } }, "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="], 780 + 781 + "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], 671 782 672 783 "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], 673 784 ··· 675 786 676 787 "read-package-json-fast": ["read-package-json-fast@4.0.0", "", { "dependencies": { "json-parse-even-better-errors": "^4.0.0", "npm-normalize-package-bin": "^4.0.0" } }, "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg=="], 677 788 789 + "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], 790 + 678 791 "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], 679 792 680 793 "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], ··· 683 796 684 797 "rfdc": ["rfdc@1.4.1", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="], 685 798 799 + "rimraf": ["rimraf@6.1.2", "", { "dependencies": { "glob": "^13.0.0", "package-json-from-dist": "^1.0.1" }, "bin": { "rimraf": "dist/esm/bin.mjs" } }, "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g=="], 800 + 686 801 "rolldown": ["rolldown@1.0.0-beta.53", "", { "dependencies": { "@oxc-project/types": "=0.101.0", "@rolldown/pluginutils": "1.0.0-beta.53" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-beta.53", "@rolldown/binding-darwin-arm64": "1.0.0-beta.53", "@rolldown/binding-darwin-x64": "1.0.0-beta.53", "@rolldown/binding-freebsd-x64": "1.0.0-beta.53", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.53", "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.53", "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.53", "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.53", "@rolldown/binding-linux-x64-musl": "1.0.0-beta.53", "@rolldown/binding-openharmony-arm64": "1.0.0-beta.53", "@rolldown/binding-wasm32-wasi": "1.0.0-beta.53", "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.53", "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.53" }, "bin": { "rolldown": "bin/cli.mjs" } }, "sha512-Qd9c2p0XKZdgT5AYd+KgAMggJ8ZmCs3JnS9PTMWkyUfteKlfmKtxJbWTHkVakxwXs1Ub7jrRYVeFeF7N0sQxyw=="], 687 802 688 803 "run-applescript": ["run-applescript@7.1.0", "", {}, "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="], ··· 690 805 "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], 691 806 692 807 "rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="], 808 + 809 + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], 693 810 694 811 "sass": ["sass@1.97.0", "", { "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "optionalDependencies": { "@parcel/watcher": "^2.4.1" }, "bin": { "sass": "sass.js" } }, "sha512-KR0igP1z4avUJetEuIeOdDlwaUDvkH8wSx7FdSjyYBS3dpyX3TzHfAMO0G1Q4/3cdjcmi3r7idh+KCmKqS+KeQ=="], 695 812 ··· 731 848 732 849 "sass-embedded-win32-x64": ["sass-embedded-win32-x64@1.97.0", "", { "os": "win32", "cpu": "x64" }, "sha512-mKIJGXxEl6OoWEoT4ee5OsBOfExla2ilY5J8tupVwSCxf/i3aOJNLm7ZzRWG9er2K3bC8aovgMisMIVGlBM5hw=="], 733 850 851 + "sax": ["sax@1.4.4", "", {}, "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw=="], 852 + 734 853 "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], 735 854 736 855 "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], ··· 739 858 740 859 "shell-quote": ["shell-quote@1.8.3", "", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], 741 860 861 + "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], 862 + 742 863 "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="], 743 864 865 + "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], 866 + 867 + "slice-ansi": ["slice-ansi@4.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ=="], 868 + 744 869 "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], 745 870 746 871 "speakingurl": ["speakingurl@14.0.1", "", {}, "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ=="], 747 872 873 + "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], 874 + 875 + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], 876 + 877 + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], 878 + 879 + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], 880 + 748 881 "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], 749 882 750 883 "superjson": ["superjson@2.2.6", "", { "dependencies": { "copy-anything": "^4" } }, "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA=="], ··· 757 890 758 891 "synckit": ["synckit@0.11.11", "", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="], 759 892 893 + "tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="], 894 + 895 + "through2": ["through2@4.0.2", "", { "dependencies": { "readable-stream": "3" } }, "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw=="], 896 + 760 897 "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], 761 898 762 899 "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], 763 900 764 901 "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], 765 902 903 + "tree-kill": ["tree-kill@1.2.2", "", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="], 904 + 766 905 "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], 767 906 768 907 "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], ··· 775 914 776 915 "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], 777 916 917 + "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], 918 + 778 919 "unplugin-utils": ["unplugin-utils@0.3.1", "", { "dependencies": { "pathe": "^2.0.3", "picomatch": "^4.0.3" } }, "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog=="], 920 + 921 + "untildify": ["untildify@4.0.0", "", {}, "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="], 779 922 780 923 "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], 781 924 ··· 809 952 810 953 "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], 811 954 955 + "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], 956 + 812 957 "wsl-utils": ["wsl-utils@0.1.0", "", { "dependencies": { "is-wsl": "^3.1.0" } }, "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw=="], 813 958 814 959 "xml-name-validator": ["xml-name-validator@4.0.0", "", {}, "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw=="], 815 960 816 - "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], 961 + "xml2js": ["xml2js@0.6.2", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA=="], 962 + 963 + "xmlbuilder": ["xmlbuilder@15.1.1", "", {}, "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="], 964 + 965 + "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], 966 + 967 + "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], 817 968 818 969 "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], 819 970 820 971 "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], 821 972 973 + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], 974 + 822 975 "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], 823 976 824 977 "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], 825 978 826 979 "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], 980 + 981 + "@ionic/utils-fs/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], 827 982 828 983 "@parcel/watcher/detect-libc": ["detect-libc@1.0.3", "", { "bin": { "detect-libc": "./bin/detect-libc.js" } }, "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg=="], 829 984 ··· 839 994 840 995 "cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], 841 996 997 + "elementtree/sax": ["sax@1.1.4", "", {}, "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg=="], 998 + 842 999 "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], 843 1000 1001 + "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], 1002 + 1003 + "glob/minimatch": ["minimatch@10.1.1", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="], 1004 + 1005 + "glob/minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], 1006 + 1007 + "is-inside-container/is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], 1008 + 844 1009 "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], 845 1010 1011 + "minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], 1012 + 1013 + "path-scurry/minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], 1014 + 846 1015 "postcss/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], 847 1016 1017 + "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], 1018 + 848 1019 "rolldown/@oxc-project/types": ["@oxc-project/types@0.101.0", "", {}, "sha512-nuFhqlUzJX+gVIPPfuE6xurd4lST3mdcWOhyK/rZO0B9XWMKm79SuszIQEnSMmmDhq1DC8WWVYGVd+6F93o1gQ=="], 849 1020 1021 + "slice-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], 1022 + 1023 + "vite-plugin-inspect/open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="], 1024 + 1025 + "wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], 1026 + 1027 + "wsl-utils/is-wsl": ["is-wsl@3.1.0", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="], 1028 + 1029 + "xml2js/xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], 1030 + 1031 + "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], 1032 + 850 1033 "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], 851 1034 852 1035 "@vue/devtools-api/@vue/devtools-kit/@vue/devtools-shared": ["@vue/devtools-shared@7.7.9", "", { "dependencies": { "rfdc": "^1.4.1" } }, "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA=="], ··· 854 1037 "@vue/devtools-api/@vue/devtools-kit/perfect-debounce": ["perfect-debounce@1.0.0", "", {}, "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA=="], 855 1038 856 1039 "cross-spawn/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], 1040 + 1041 + "vite-plugin-inspect/open/define-lazy-prop": ["define-lazy-prop@3.0.0", "", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="], 857 1042 } 858 1043 }
+16
capacitor.config.ts
··· 1 + import type { CapacitorConfig } from '@capacitor/cli' 2 + 3 + const config: CapacitorConfig = { 4 + appId: 'cat.vt3e.bbell', 5 + appName: 'bluebell', 6 + webDir: 'dist', 7 + android: {}, 8 + plugins: { 9 + SystemBars: { 10 + insetsHandling: 'css', 11 + }, 12 + SafeArea: {}, 13 + }, 14 + } 15 + 16 + export default config
+61
flake.lock
··· 1 + { 2 + "nodes": { 3 + "flake-utils": { 4 + "inputs": { 5 + "systems": "systems" 6 + }, 7 + "locked": { 8 + "lastModified": 1731533236, 9 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 10 + "owner": "numtide", 11 + "repo": "flake-utils", 12 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 13 + "type": "github" 14 + }, 15 + "original": { 16 + "owner": "numtide", 17 + "repo": "flake-utils", 18 + "type": "github" 19 + } 20 + }, 21 + "nixpkgs": { 22 + "locked": { 23 + "lastModified": 1767892417, 24 + "narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=", 25 + "owner": "NixOS", 26 + "repo": "nixpkgs", 27 + "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", 28 + "type": "github" 29 + }, 30 + "original": { 31 + "owner": "NixOS", 32 + "ref": "nixos-unstable", 33 + "repo": "nixpkgs", 34 + "type": "github" 35 + } 36 + }, 37 + "root": { 38 + "inputs": { 39 + "flake-utils": "flake-utils", 40 + "nixpkgs": "nixpkgs" 41 + } 42 + }, 43 + "systems": { 44 + "locked": { 45 + "lastModified": 1681028828, 46 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 + "owner": "nix-systems", 48 + "repo": "default", 49 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 + "type": "github" 51 + }, 52 + "original": { 53 + "owner": "nix-systems", 54 + "repo": "default", 55 + "type": "github" 56 + } 57 + } 58 + }, 59 + "root": "root", 60 + "version": 7 61 + }
+107
flake.nix
··· 1 + { 2 + inputs = { 3 + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 4 + flake-utils.url = "github:numtide/flake-utils"; 5 + }; 6 + 7 + outputs = 8 + { 9 + self, 10 + nixpkgs, 11 + flake-utils, 12 + }: 13 + flake-utils.lib.eachDefaultSystem ( 14 + system: 15 + let 16 + pkgs = import nixpkgs { 17 + inherit system; 18 + config = { 19 + android_sdk.accept_license = true; 20 + allowUnfree = true; 21 + }; 22 + }; 23 + 24 + androidComposition = pkgs.androidenv.composeAndroidPackages { 25 + cmdLineToolsVersion = "8.0"; 26 + platformToolsVersion = "36.0.2"; 27 + buildToolsVersions = [ "34.0.0" ]; 28 + 29 + toolsVersion = "26.1.1"; 30 + 31 + includeEmulator = true; 32 + emulatorVersion = "36.4.2"; 33 + platformVersions = [ 34 + "28" 35 + "29" 36 + "30" 37 + "31" 38 + "32" 39 + "33" 40 + "34" 41 + "35" 42 + ]; 43 + includeSources = false; 44 + includeSystemImages = false; 45 + systemImageTypes = [ "google_apis_playstore" ]; 46 + abiVersions = [ 47 + "armeabi-v7a" 48 + "arm64-v8a" 49 + ]; 50 + cmakeVersions = [ "3.22.1" ]; 51 + includeNDK = true; 52 + ndkVersions = [ "25.1.8937393" ]; 53 + useGoogleAPIs = false; 54 + useGoogleTVAddOns = false; 55 + includeExtras = [ 56 + "extras;google;gcm" 57 + ]; 58 + }; 59 + 60 + androidSdk = androidComposition.androidsdk; 61 + in 62 + { 63 + self = self; 64 + devShells.default = pkgs.mkShell { 65 + buildInputs = with pkgs; [ 66 + androidSdk 67 + jdk21 68 + gradle 69 + maven 70 + 71 + git 72 + which 73 + unzip 74 + zip 75 + ]; 76 + 77 + shellHook = '' 78 + export PROJECT_ROOT="$(pwd)" 79 + export ANDROID_HOME="$PROJECT_ROOT/.android-sdk" 80 + export ANDROID_SDK_ROOT="$ANDROID_HOME" 81 + 82 + if [ ! -d "$ANDROID_HOME" ]; then 83 + echo "init'ing android sdk at $ANDROID_HOME..." 84 + mkdir -p "$ANDROID_HOME" 85 + cp -r "${androidSdk}/libexec/android-sdk"/* "$ANDROID_HOME/" 86 + chmod -R u+w "$ANDROID_HOME" 87 + fi 88 + 89 + export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH" 90 + export JAVA_HOME="${pkgs.jdk21}" 91 + 92 + echo "android development environment loaded" 93 + echo " ANDROID_HOME : $ANDROID_HOME" 94 + echo " JAVA_HOME : $JAVA_HOME" 95 + echo "" 96 + echo "available tools:" 97 + echo " - adb" 98 + echo " - fastboot" 99 + echo " - sdkmanager" 100 + echo " - avdmanager" 101 + echo "" 102 + echo "using Android SDK at $ANDROID_HOME" 103 + ''; 104 + }; 105 + } 106 + ); 107 + }
+1 -1
index.html
··· 14 14 media="(prefers-color-scheme: dark)" 15 15 type="image/svg+xml" 16 16 /> 17 - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 17 + <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> 18 18 <title>Bluebell</title> 19 19 </head> 20 20 <body>
+7
package.json
··· 24 24 "@atcute/identity-resolver": "^1.2.0", 25 25 "@atcute/lexicons": "^1.2.5", 26 26 "@atcute/oauth-browser-client": "^2.0.3", 27 + "@capacitor/android": "^8.0.0", 28 + "@capacitor/core": "^8.0.0", 27 29 "@iconify-prerendered/vue-material-symbols": "^0.28.1755063979", 30 + "add": "^2.0.6", 31 + "android": "^0.0.8", 32 + "cap": "^0.2.1", 28 33 "hls.js": "^1.6.15", 34 + "i": "^0.3.7", 29 35 "pinia": "^3.0.4", 30 36 "vue": "^3.5.25" 31 37 }, 32 38 "devDependencies": { 39 + "@capacitor/cli": "^8.0.0", 33 40 "@prettier/plugin-oxc": "^0.0.5", 34 41 "@tsconfig/node24": "^24.0.3", 35 42 "@types/node": "^25.0.3",
+5
src/assets/main.css
··· 49 49 } 50 50 51 51 :root { 52 + --inset-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px)); 53 + --inset-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)); 54 + --inset-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px)); 55 + --inset-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px)); 56 + 52 57 --space-1: 0.25rem; 53 58 --space-2: 0.5rem; 54 59 --space-3: 0.75rem;
+2 -2
src/components/Navigation/AppBar.vue
··· 76 76 ref="overlayElement" 77 77 aria-hidden="true" 78 78 :style="{ 79 - height: `calc(var(--safe-area-inset-top, 0) + ${appBarElement?.offsetHeight || 0}px)`, 79 + height: `calc(var(--inset-top) + ${appBarElement?.offsetHeight || 0}px)`, 80 80 }" 81 81 ></div> 82 82 <header ··· 138 138 backdrop-filter, filter; 139 139 140 140 &-buffer { 141 - height: calc(var(--safe-area-inset-top)); 141 + height: calc(var(--inset-top)); 142 142 } 143 143 144 144 &-content {
+1 -1
src/components/Navigation/NavigationBar.vue
··· 56 56 57 57 width: 100%; 58 58 max-width: 100vw; 59 - padding-bottom: calc(var(--safe-area-inset-bottom) + 0.25rem); 59 + padding-bottom: calc(var(--inset-bottom) + 0.25rem); 60 60 padding-top: 0.25rem; 61 61 62 62 position: fixed;
+1 -4
src/components/Navigation/PageLayout.vue
··· 101 101 102 102 .page-content { 103 103 flex: 1; 104 - padding-top: calc(var(--safe-area-inset-top, 4.5rem)); 105 104 -webkit-overflow-scrolling: touch; 106 105 height: 100%; 107 106 overflow-y: scroll; ··· 114 113 width: 100%; 115 114 max-width: 800px; 116 115 padding: 0 1rem; 116 + padding-top: calc(var(--inset-top, 0) + 4.5rem); 117 117 118 118 h1, 119 119 h2, ··· 157 157 } 158 158 159 159 .no-padding { 160 - .page-content { 161 - padding-top: calc(var(--safe-area-inset-top, 3.5rem)); 162 - } 163 160 .content-container { 164 161 padding: 0; 165 162 }
+8 -7
src/main.ts
··· 1 - import { createApp } from "vue"; 2 - import { createPinia } from "pinia"; 1 + import { createApp } from 'vue' 2 + import { createPinia } from 'pinia' 3 + import { SystemBars, SystemBarsStyle } from '@capacitor/core' 3 4 4 - import "./assets/main.css"; 5 - import App from "./App.vue"; 5 + import './assets/main.css' 6 + import App from './App.vue' 6 7 7 - const app = createApp(App); 8 - app.use(createPinia()); 9 - app.mount("#app"); 8 + const app = createApp(App) 9 + app.use(createPinia()) 10 + app.mount('#app')