From f808f2f5359e3c99c3ef7334b322715579bc6c1e Mon Sep 17 00:00:00 2001 From: devsyncwrld Date: Thu, 3 Sep 2026 13:09:15 -0300 Subject: [PATCH] feat(mobile): Android app shell with Capacitor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The web client already has a full mobile UI (MobileShell and 17 sibling screens) and ships as a PWA, so what was missing to get an APK was a native container, not an interface. The WebView loads the instance over the network instead of bundling a copy of the web build. Bundling would mean republishing an APK on every site deploy — there is no electron-updater equivalent here — and it would move the page to https://localhost, turning every same-origin /api and /ws call into a cross-origin one. The cost is no offline mode, which for a realtime chat app costs nothing: public/index.html covers the unreachable-server case. packages/mobile sits outside the pnpm workspace on purpose. Capacitor's CLI and Gradle both assume a flat node_modules, and keeping it out leaves pnpm-lock.yaml and the existing web/desktop CI untouched by it. Icons are generated from the existing brand art. The launch screen is a layer-list over the brand background rather than Capacitor's per-density splash.png set, which is light and flashed white before the WebView painted. CI builds an *unsigned* APK. The signing key stays on the VPS and is applied there — an APK signature is what proves an update came from us, so the key has no reason to exist on a second machine. Background voice (foreground service) is not in this commit: a plain WebView is throttled when the screen goes off and the call drops. That is the next phase. Co-Authored-By: Claude Opus 5 --- .github/workflows/android.yml | 86 ++ packages/mobile/.gitignore | 7 + packages/mobile/android/.gitignore | 101 ++ packages/mobile/android/app/.gitignore | 2 + packages/mobile/android/app/build.gradle | 57 + .../mobile/android/app/capacitor.build.gradle | 19 + .../mobile/android/app/proguard-rules.pro | 21 + .../myapp/ExampleInstrumentedTest.java | 26 + .../android/app/src/main/AndroidManifest.xml | 62 + .../com/resenhacord/app/MainActivity.java | 5 + .../main/res/drawable-nodpi/brand_mark.png | Bin 0 -> 17663 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 + .../res/drawable/ic_launcher_background.xml | 170 +++ .../app/src/main/res/drawable/splash.xml | 15 + .../app/src/main/res/layout/activity_main.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5264 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 2829 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5405 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3074 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 1903 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3175 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7066 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 3652 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7254 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 12116 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 5674 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 12281 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 16274 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 7539 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 16556 bytes .../app/src/main/res/values/colors.xml | 9 + .../res/values/ic_launcher_background.xml | 6 + .../app/src/main/res/values/strings.xml | 7 + .../app/src/main/res/values/styles.xml | 22 + .../app/src/main/res/xml/file_paths.xml | 5 + .../getcapacitor/myapp/ExampleUnitTest.java | 18 + packages/mobile/android/build.gradle | 29 + .../mobile/android/capacitor.settings.gradle | 3 + packages/mobile/android/gradle.properties | 22 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + packages/mobile/android/gradlew | 252 ++++ packages/mobile/android/gradlew.bat | 94 ++ packages/mobile/android/settings.gradle | 5 + packages/mobile/android/variables.gradle | 16 + packages/mobile/capacitor.config.ts | 41 + packages/mobile/package-lock.json | 1181 +++++++++++++++++ packages/mobile/package.json | 21 + packages/mobile/public/index.html | 18 + pnpm-workspace.yaml | 5 + 52 files changed, 2388 insertions(+) create mode 100644 .github/workflows/android.yml create mode 100644 packages/mobile/.gitignore create mode 100644 packages/mobile/android/.gitignore create mode 100644 packages/mobile/android/app/.gitignore create mode 100644 packages/mobile/android/app/build.gradle create mode 100644 packages/mobile/android/app/capacitor.build.gradle create mode 100644 packages/mobile/android/app/proguard-rules.pro create mode 100644 packages/mobile/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java create mode 100644 packages/mobile/android/app/src/main/AndroidManifest.xml create mode 100644 packages/mobile/android/app/src/main/java/com/resenhacord/app/MainActivity.java create mode 100644 packages/mobile/android/app/src/main/res/drawable-nodpi/brand_mark.png create mode 100644 packages/mobile/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 packages/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 packages/mobile/android/app/src/main/res/drawable/splash.xml create mode 100644 packages/mobile/android/app/src/main/res/layout/activity_main.xml create mode 100644 packages/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 packages/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 packages/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 packages/mobile/android/app/src/main/res/values/colors.xml create mode 100644 packages/mobile/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 packages/mobile/android/app/src/main/res/values/strings.xml create mode 100644 packages/mobile/android/app/src/main/res/values/styles.xml create mode 100644 packages/mobile/android/app/src/main/res/xml/file_paths.xml create mode 100644 packages/mobile/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java create mode 100644 packages/mobile/android/build.gradle create mode 100644 packages/mobile/android/capacitor.settings.gradle create mode 100644 packages/mobile/android/gradle.properties create mode 100644 packages/mobile/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 packages/mobile/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 packages/mobile/android/gradlew create mode 100644 packages/mobile/android/gradlew.bat create mode 100644 packages/mobile/android/settings.gradle create mode 100644 packages/mobile/android/variables.gradle create mode 100644 packages/mobile/capacitor.config.ts create mode 100644 packages/mobile/package-lock.json create mode 100644 packages/mobile/package.json create mode 100644 packages/mobile/public/index.html diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 00000000..70d48be8 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,86 @@ +# Compila o APK do Android no GitHub e o devolve como artefato. +# +# O runner entra só como máquina de build, pelo mesmo motivo do desktop: a VPS +# tem ~2 GB de RAM livres e roda a produção, então um Gradle com o SDK do +# Android ali dentro arrisca derrubar as chamadas de quem está usando o app. +# +# O APK sai **sem assinatura**. A chave de assinatura fica na VPS e não sobe +# para cá: quem assina é /opt/ops/release-android.sh, depois de baixar este +# artefato. Um APK assinado é instalável por qualquer um, e a chave é o que +# prova que uma atualização veio de nós — ela não tem por que existir em duas +# máquinas. +name: Android APK + +on: + workflow_dispatch: + push: + tags: ['android-v*'] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 + + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '21' + + - name: Setup Node.js + uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0 + with: + node-version: 22 + + # npm, não pnpm: packages/mobile fica fora do workspace de propósito + # (ver pnpm-workspace.yaml). Ele tem o próprio package-lock.json. + - name: Install Capacitor + working-directory: packages/mobile + run: npm ci + + # Copia a config e os arquivos de public/ para dentro do projeto nativo. + # Sem isso o APK sai com o que estiver commitado em assets/, que pode + # estar velho — esses arquivos são gerados, não versionados. + - name: Sync Capacitor + working-directory: packages/mobile + run: npx cap sync android + + - name: Cache Gradle + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: gradle-${{ hashFiles('packages/mobile/android/**/*.gradle', 'packages/mobile/android/gradle/wrapper/gradle-wrapper.properties') }} + restore-keys: gradle- + + - name: Build unsigned release APK + working-directory: packages/mobile/android + run: ./gradlew assembleRelease --no-daemon --stacktrace + + # O nome do arquivo muda conforme a versão do AGP (app-release-unsigned.apk + # ou app-release.apk quando não há config de assinatura). Localiza em vez + # de supor, e falha alto se nada saiu — um artefato vazio só apareceria + # como erro lá na frente, na hora de assinar. + - name: Collect APK + run: | + set -euo pipefail + mkdir -p out + found=$(find packages/mobile/android/app/build/outputs/apk/release -name '*.apk' | head -1) + [ -n "$found" ] || { echo "::error::o build não produziu APK nenhum"; exit 1; } + cp "$found" out/resenhacord-unsigned.apk + ls -l out/ + + - name: Upload APK artifact + uses: actions/upload-artifact@v4 + with: + name: resenhacord-apk-unsigned + path: out/resenhacord-unsigned.apk + retention-days: 14 + if-no-files-found: error diff --git a/packages/mobile/.gitignore b/packages/mobile/.gitignore new file mode 100644 index 00000000..9b7eac6a --- /dev/null +++ b/packages/mobile/.gitignore @@ -0,0 +1,7 @@ +node_modules/ + +# Gerados por `cap sync` a cada build — versioná-los só criaria diffs ruidosos +# e o risco de o APK sair com uma cópia velha. +android/app/src/main/assets/public/ +android/app/src/main/assets/capacitor.config.json +android/app/src/main/assets/capacitor.plugins.json diff --git a/packages/mobile/android/.gitignore b/packages/mobile/android/.gitignore new file mode 100644 index 00000000..48354a3d --- /dev/null +++ b/packages/mobile/android/.gitignore @@ -0,0 +1,101 @@ +# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore + +# Built application files +*.apk +*.aar +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ +# Uncomment the following line in case you need and you don't have the release build type files in your app +# release/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/assetWizardSettings.xml +.idea/dictionaries +.idea/libraries +# Android Studio 3 in .gitignore file. +.idea/caches +.idea/modules.xml +# Comment next line if keeping position of elements in Navigation Editor is relevant for you +.idea/navEditor.xml + +# Keystore files +# Uncomment the following lines if you do not want to check your keystore files in. +#*.jks +#*.keystore + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild +.cxx/ + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Version control +vcs.xml + +# lint +lint/intermediates/ +lint/generated/ +lint/outputs/ +lint/tmp/ +# lint/reports/ + +# Android Profiling +*.hprof + +# Cordova plugins for Capacitor +capacitor-cordova-android-plugins + +# Copied web assets +app/src/main/assets/public + +# Generated Config files +app/src/main/assets/capacitor.config.json +app/src/main/assets/capacitor.plugins.json +app/src/main/res/xml/config.xml diff --git a/packages/mobile/android/app/.gitignore b/packages/mobile/android/app/.gitignore new file mode 100644 index 00000000..043df802 --- /dev/null +++ b/packages/mobile/android/app/.gitignore @@ -0,0 +1,2 @@ +/build/* +!/build/.npmkeep diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle new file mode 100644 index 00000000..ae90eee5 --- /dev/null +++ b/packages/mobile/android/app/build.gradle @@ -0,0 +1,57 @@ +apply plugin: 'com.android.application' + +android { + namespace "com.resenhacord.app" + compileSdk rootProject.ext.compileSdkVersion + defaultConfig { + applicationId "com.resenhacord.app" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + // Mantidos em sincronia com a versao do monorepo. O versionCode e o + // numero que o Android usa para decidir se um APK e mais novo, e ele + // precisa ser inteiro e sempre crescente: 2.1.0 -> 20100. + versionCode 20100 + versionName "2.1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + aaptOptions { + // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. + // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 + ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +repositories { + flatDir{ + dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" + implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion" + implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion" + implementation project(':capacitor-android') + testImplementation "junit:junit:$junitVersion" + androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" + androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" + implementation project(':capacitor-cordova-android-plugins') +} + +apply from: 'capacitor.build.gradle' + +try { + def servicesJSON = file('google-services.json') + if (servicesJSON.text) { + apply plugin: 'com.google.gms.google-services' + } +} catch(Exception e) { + logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work") +} diff --git a/packages/mobile/android/app/capacitor.build.gradle b/packages/mobile/android/app/capacitor.build.gradle new file mode 100644 index 00000000..bbfb44fa --- /dev/null +++ b/packages/mobile/android/app/capacitor.build.gradle @@ -0,0 +1,19 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN + +android { + compileOptions { + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 + } +} + +apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" +dependencies { + + +} + + +if (hasProperty('postBuildExtras')) { + postBuildExtras() +} diff --git a/packages/mobile/android/app/proguard-rules.pro b/packages/mobile/android/app/proguard-rules.pro new file mode 100644 index 00000000..f1b42451 --- /dev/null +++ b/packages/mobile/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/packages/mobile/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/packages/mobile/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java new file mode 100644 index 00000000..f2c2217e --- /dev/null +++ b/packages/mobile/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import android.content.Context; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.platform.app.InstrumentationRegistry; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("com.getcapacitor.app", appContext.getPackageName()); + } +} diff --git a/packages/mobile/android/app/src/main/AndroidManifest.xml b/packages/mobile/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..37bb9aee --- /dev/null +++ b/packages/mobile/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/mobile/android/app/src/main/java/com/resenhacord/app/MainActivity.java b/packages/mobile/android/app/src/main/java/com/resenhacord/app/MainActivity.java new file mode 100644 index 00000000..6e647975 --- /dev/null +++ b/packages/mobile/android/app/src/main/java/com/resenhacord/app/MainActivity.java @@ -0,0 +1,5 @@ +package com.resenhacord.app; + +import com.getcapacitor.BridgeActivity; + +public class MainActivity extends BridgeActivity {} diff --git a/packages/mobile/android/app/src/main/res/drawable-nodpi/brand_mark.png b/packages/mobile/android/app/src/main/res/drawable-nodpi/brand_mark.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc603615a43d5ec70a635c1b5f950e622a4f39c GIT binary patch literal 17663 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 + + + + + + + + + + diff --git a/packages/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml b/packages/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 00000000..d5fccc53 --- /dev/null +++ b/packages/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/mobile/android/app/src/main/res/drawable/splash.xml b/packages/mobile/android/app/src/main/res/drawable/splash.xml new file mode 100644 index 00000000..e0c71f81 --- /dev/null +++ b/packages/mobile/android/app/src/main/res/drawable/splash.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/packages/mobile/android/app/src/main/res/layout/activity_main.xml b/packages/mobile/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 00000000..b5ad1387 --- /dev/null +++ b/packages/mobile/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/packages/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/packages/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..036d09bc --- /dev/null +++ b/packages/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/packages/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..036d09bc --- /dev/null +++ b/packages/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7d83d3cd12a70dd364bdc399518b5ed29de66d0f GIT binary patch literal 5264 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 WM-h~iPR?-v0000(x8} literal 0 HcmV?d00001 diff --git a/packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..c605efb0c4ac96daa845bbef50efa5c6157b0ee4 GIT binary patch literal 2829 zcmbuB`#;l-`^R;6nq$44&x?g9a>%Jfb6Diq$|;nsIgOlR(Hu%+n>l47IVId{DTZo< zd|Hz;3q{$IP-tiv#=85szkkB_b3Gof>-ocVJzkI3_1i`Ca62n0rYt5RA|mPJXb<1v zqkje3x6>Ib@+vzJjdt|CE+Vpf?qBVCfrW>Qh=_GK*+VZTlrC~yBOtSCT|E8dyN^fB zHS#`-Kk}2RS@ZC0FYwb%v$MSTL7w`AnQnkS>ZvDNs9j>w+LLdt(=g2(Wag;pl$f6) zo;JZWmYDlI9G2JD)2E&3Gmw^z7ya7kYGpFC>LRS?T6}7|X600x<(dMXPt7!S3V!{7 zK2C<5-AVR8lvuHHO>0Qk03{eUu(|d)F-A}COGRepsDR*D1_r3tA)2O^$KYf;O;e-8 z@E+*ha}vMUM}AvrZSV?Izf%+LQ;_Xea^k$v1Onw4e#C-{R3qPoYiW=A} zU$i}vT4}J}6R6N(H5W7_xz*e;86x!0pX(b(NRor)}Ef^v~LI~?=rOEGIUx4It_(h zg+i-Nr#;#QJ>T(=P%+|YP63D`G-lXi(nwzJ$iv)`TSX&hbSVEw{msYTZ|!oWPqgO* zf&&Pw#U`Wc#wuT-_7<=1fQB$AyP47DDcQ)7F)T-Df!vh1X$_mKP*d=xXB#%g<9c>y z(dtjDXi_elQ@)r52s6iDhd%=jAG*~LsmWqV!UGBbiQ>=hdb==66cp0J&wd7NC0Npn!)-AZ@Hh>ADyz!x7+Zj@>xkTkt5Y=Nhaal?HEVk5^9`Xoe zydXHOugUuZR+E^kFbO~7tOUOnaT~{ zJ15ZFgvWQc*$836_8qcx~8%Urk zEqTOt7#HX>X2z0O-iK^Aba6W#kxGb)PSEe2yyL2ff{IG z4Iii>U2Wl%9JSSm(hJ=CM{Odzx;FdHSvpC8!s>w>t`@^<9qLZvp>8y#6mfq36;Uv! zFzf}!eEtK<{xjHtB zVlf*lhTbWkWs%Q%TiYBGOI3%G-@Mirv5dWM9>upLrvc~WArV(vbx_`8)@8T%NlzML zuM+)l?N>wi8Q3HB#f&IP#V>j%?WD~z@dBCs0Ajr~dU5Lh*32^D%ec+8T$+~3BU@Ng zQb2e<*fz^dY1uTjP9P%uT=LY>AwEv!uZOfSu{klj(Ar(cD={up06!gHL&(N z0}Jt@!)O5MG{4%2-JWQX#jKubE(@58UrkN-&v?lvw@6GyAwz_2DeTGa+#9AV({OT1 zT##?uDKN4U)Giie?ehL)u>|pbQKY@a>cUpN%==-L<;igwOgZFS6aP5NvLT0>1}wY) zHO#DGeV*OxdMhZ&7Ayt-)|t>hs_-cNZG&QB$^}#l%b`$)3%o-O@r1`@aG4FMt}VaRJ=-C9t^@^1?wC1x>GLUF$IZ zf{#Q$$3m!F+OKf=N@_g!T%Mp;P7@)m9~3&@Yx=G1$5?>cYIi3)-DT-faKdfI2E^ayKJY!w?+7)-njEUv~&bF+9)HZ8dyFHh(WbD^k zI0j_w^wrsemERrnyvjBoH;2n&v}TYmjsp8GWeILwXicrJg>TN}G!j^MCC?|z%@^DX ztc}rCK-BV(4~>35Lmne1&g%3*7<+1Jr5ljKLE8T00r4AqCbDX{SW%K-IYjb`usoLF zQG1Sse6gisk7~Nrx9Jd#rw2d%rY?8}&oxYj%aP>Bd!txycljGFk2U(X3V*_LJo?;% z81yS0HU*$qi^wT;0lWv6V9e89&%on8-fbqg6dZ8YXT$}?hE*C1Oj^eds2=)aFiD|z z+UOR8+_eYdW|>jI8x2(RXsd7SN(Ki&>yW9PdVFZ>*#2>X>fPf?`n_NYidE`Y?=H_L zm7dyu^)@E2my8mlyYGyat?cfnCisx8D$RB4m0Ww}s*G$T1=OJ-rP)lcqKZqM<6F=C zpRmx<-ou}$g99b==y-#GnvCb@*}J2}`GDU8s)5co7n$dud3i=P>O5tl@9eIrfUCQW z9j=Sy?c2u$?I&H*q%TOl&vzHAwDvDWK@q literal 0 HcmV?d00001 diff --git a/packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/packages/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..06ed711cac537e7cf7e06cae731a14852c50ddde GIT binary patch literal 5405 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 Hu0mjfGny&x literal 0 HcmV?d00001 diff --git a/packages/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dc03f3546d0fe7dbb906eac8c28994cf88683732 GIT binary patch literal 3074 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 Q5&!@I07*qoM6N<$g2GJ#vH$=8 literal 0 HcmV?d00001 diff --git a/packages/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/packages/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc8274920cd8c150a3e0a112c84d37db879e1ea GIT binary patch literal 1903 zcmaKt`8yK~0LQlxsR?1uOudncf`9S(Du4$TdlGw{pBXCe0c3 zmSZN9a^wihOH9US6H=O2|G@jh_xpLC@AG_q{@!$Uw2?fZd;kCdNZMkoT=p39EBnRv zntbv6z#b&RF&fXL@x0XE0FTmk^Z)orcJ-L94Mro2MDHlQ8+5y{I^a&AqwM|eO@ z-?shg4rS>K5q35IMsdEh#k8pToFCC5#at(}?C*%UY$%@CyTxdGZyQ3*b}fM4uy1>S z4ylrF8p&6*lq)WjIbpK6quVD{@u}(I)ci#4)dI+_$?$HE;7r!~z;2>&GeQ)oenZ+~ z|Nm8RWe<9#q5>X0;Lwnf=S2V63lGlFZ#QWONnDz{b>T;?j@N{BJet9MY)I&+y&sK$U8qLwK>$qBHE%y&V1gC~&o(7?EOry!&49 zMQ4m&v7>(RpUBs}N~+LGq)ZhOR)aLes4KuV6@F{{ARVjN?UPob^lZBhq@Zv>l~a4h z+ky7*1Toh-hahKdA(x&ir!P{CR!;UpmOEshooIFbmpYMks^KcFPmK7N_^}Hhx#5IJ zI42oTY!U-@+)V=|HkQx@xxFcFrpeVs2$bp<*_^SYz4;A^=C_Qq;V}dzICL%%*D;ZpeY$h9GlQW)LQOUZtKF`??!dA`;G_s&X*v~*`XO|!|WKV@0t$V=;=!}g{1 zO==(m(;42(=qYn$_&XzQEYoHxC#q|1P7>|DV_+};j_)RMtw9uh4g|rgS!xmVWN>bx zhQ~nJnP%O~8k!)7nXtU#Pn%bBkX$=ww)Rmib&+6vyhgUDMaQT8;wYgFJEBpmsUd{6hgFh||Rz%_g-Cb=boByJjFXL>f z);a8Z^v*!eseXMd73^7WwL7En@%N_6xc!@s%%!3-W)|)(0{JmOY4O3TSTvlnT4=s@ z$J`iUdbH_LpJ-bcG1F~@VOJWR)m$Edc7jZi^eG99{qUF@SPFS~Chu%tTj}#22>mc@ zJytQ{6Aq?;pBcja!2zp4JlQza(1Em#*BIRRK&&U0KFz6%r$(rfizZL_Yvlp8?*dRK zU1hWL5Flu5t04ssL$~s$cV%s(9hV_Dc!+>>H8g8HeH>aDId>&M30$+Nwc@fSCZoXk;&dMSkQ_df6f`|bopVp zDrR)E#;oRGKykjr;E#dlJxu-2Lp4`SPkt?d=4R@yT|kW9PntY#lZGwgjvE*FRvi6j zKB*$nks!0=WUTzy9@uOdq~Ph(KrNhu@wQ0hRKl!+rZ>?T^4K+*r6Q=`^GJ2mq?+Dg z!qR8Q9v5R)q6l#FU5ck%=p4nO_Q$)ARV9r0a~n4<{Vy-;;qeY>OItF@v|*J#z9 z_Z+@nt;KuVR88vNnZt2`9^}0{d^wzE+;K@L3)#ruDdaf6e5jKu*m`#P)uEkt=ca2(eaUtiZ{9oZtMbvsqUK|@ zc`S)$XqAtVS<)ZcVTDxB7#|a_82S33@lkz`nC7^rg7XVPw$LMAlB><)F{kz!_a6D* e|Bh9P3rVUAe*lmXLfHUJ7CnRwI zV-_0+GMN~c9aEmzIN(Zb$~MBrVv~@BgoF^F1xf6*S_=^f+u58r87G-aCaF|8NtLTS zGoH#gRko4(b+@eF)V=*0Nxg{>;dIqkboYC$_kHJ_d(OG%l9Mw9FOy003ZZQhLaP-* zyDWtEju6_Ph0vk~{%m}A*|=w;{7uf^@+E}kFqyQch0y+82#uS>&xFvPl7H*dB%UXP zRwINq^j8p1#x)_dY9X}1tt5V%5ZYEDw2!lq$<4Kqn`_Si8$w8A{QZy+TDcI~w5cXP zTL|qx(mymo*n!#XG~mLb;2sB;`d(g__r}F&nea;?v{_R{etjmZOXAlFTijSI9;^~p zuK}L{wy}SS@a>Ru7uhhi3IF z*sK9;);zQc2pEv}NKu9mbHXe3bRtHC(6-zx`6n`ki+o_5xOa@WmWNHt$EFovw@DNx zp#YnNx+ia(5U&ym>Gm}HfWYT^i z(|I=QKbJ1kObna6>!Fe>e3+)Y)xYLkKNfQy7IQvUO956(A)0kO3KXPRuV=3Ej7teA z8Rw0J2#?9EhPxw@l$P!AvbOLHptsf5^ zO=TNNx(IWwk45vA(|F)*-sm3X&3^b{4}3oauU~|#=V9N1OsQH^mpm>c0>rZ>jYbME}qaie@y30v(Bj_VLBVabkv7wuM5*!tJBp0Ej2pJ zmV6zjy);QgF%DZ1nq1g2lq?>jMx=P*+Jpws=qj^VKY-IQL&f`!XHN3g0Q7ea^WD=U z^mmQW+Yuww9;3T8#>Epc&L59)=4h1DN1}8!MCquH(q0#(wKhs~)etA^VCVL?@wyk_ z_b$Neo_k${3{ANn;>FL%O6k4uZ{t0X)Dn-6eLpr^JlFd?bLc$s2VM`trBl)CvUdp-S|HI&U=*h2D;68uBqtH$^$s zm>?gar8>;NB@_B(=xL}Q^=n&$agkGX*;CTekjK21{AvLq2my=Rgcno z5LznXp1Zz*-#wqgz!C!9h4C2>NON5cnsLpBEL3NI?Pn~c_)X9c*Z9KHLmGx^*uq*9SpLYErMUS%f?oDi4`8eBGKF+okkFxE{oB7s#UuWwVzs9pG z9_QODpWx{)Z04WlejbZW_ECv!G$UmprxEau6!1ZI0R?dZwjxT3{(-jo|02{5=Z-~{ zuw88JUb{!JFmT1DTp`=PCm(ay`zc?C`mLfas;UWF4^q4^3lU4e$ngsVav+OQqx z^*%`oD40yZpQM1uWFC;#NOY1lyMIaVNjTG_ParQBtc>~Q%8$5X!M_mNz8B8DMzlGI z-gFVYF^Jv}BwQaPd?-k`CdhDgH$zq33{`d$sqBHnZ}95sZ!+DSkK0i)sRv9ZO;0Z% zX$?pLGDpiEX#J`e)f(t(9Hz5TSL9FDMQN!CbE*NhKJgm&FMWtl+WHjv$k8CNqak8V zJwzKqMC&Dbh}8BFsp%n7-K)qC?+X#z-_L)SpP@9c5Ua5<%C-g)0zQ~53&}Jp-J0m{ zw{1B`PaB**GNQ=0)kZj0b&a!4uxUdFPp^1Hg^aX(tSLmSK1ihc9MQUNqBTJx`!5hV z7$S0@8-4c$^nE>q_w}Ohk?3Rjyw5RRHjIXVELrGJvW@utWOYF1WSQEe7vdtyShu2_ zx>w&-mX}4UwKm4_N}bg!>)E#Q(YSykL1Kr4#5%7s^8H^CZR{i3GDz%=UlXb8C(?YC z*wtU7*A5V_2%%T>qVMkGzWK|UZua3&A(XWaypuMKCRbwVN?9FU&Qg`DrIaj7pRMizUE=D|ge~0u6iq zkNfWZj;g4#AXyxXcy9HR(0ZBhVHq+PiCuh?Pk#3v(dH{ePybN8k2DSv>G%;Nzj+V6 z@pXpFLxf-HL*LcU7w6r}?YSQ8S|D35biI&mOmiWn8;$RMi&d$YRe9(3A5m5QM;6Rk zh21ujg1}uA=P$+LSje~U-vTEFRJMuMg@{xI(f6KLF(26%M1T1L`koN_D5UZ1jz5GsIllRDb-Ba=G{|7Lwnc70`IGX?f N002ovPDHLkV1g=;G1veA literal 0 HcmV?d00001 diff --git a/packages/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..63ab4df9253fadaa6beec2730b40ea1843e7c8e4 GIT binary patch literal 7066 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 Eg27=z?EnA( literal 0 HcmV?d00001 diff --git a/packages/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/packages/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..aa5a7f62f5a25f089c29fc96b2c10cd7a5e97601 GIT binary patch literal 3652 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 kd+2*KjVSG`2YX_07*qoM6N<$f_yf#Jpcdz literal 0 HcmV?d00001 diff --git a/packages/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..27c40d229dc65dc28628c43ff69603ad15ce61ad GIT binary patch literal 12116 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 IM6N<$f)-pOumAu6 literal 0 HcmV?d00001 diff --git a/packages/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/packages/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a8ba9c886ef85972ddce2f4291bccec82cfc3b GIT binary patch literal 7539 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 + + + #0B0B10 + #0B0B10 + #0B0B10 + #A78BFA + diff --git a/packages/mobile/android/app/src/main/res/values/ic_launcher_background.xml b/packages/mobile/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 00000000..ee3589e4 --- /dev/null +++ b/packages/mobile/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,6 @@ + + + + #0B0B10 + diff --git a/packages/mobile/android/app/src/main/res/values/strings.xml b/packages/mobile/android/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..39bcf2fb --- /dev/null +++ b/packages/mobile/android/app/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ + + + Resenhacord + Resenhacord + com.resenhacord.app + com.resenhacord.app + diff --git a/packages/mobile/android/app/src/main/res/values/styles.xml b/packages/mobile/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..be874e54 --- /dev/null +++ b/packages/mobile/android/app/src/main/res/values/styles.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/packages/mobile/android/app/src/main/res/xml/file_paths.xml b/packages/mobile/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 00000000..bd0c4d80 --- /dev/null +++ b/packages/mobile/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/mobile/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/packages/mobile/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java new file mode 100644 index 00000000..02973278 --- /dev/null +++ b/packages/mobile/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java @@ -0,0 +1,18 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} diff --git a/packages/mobile/android/build.gradle b/packages/mobile/android/build.gradle new file mode 100644 index 00000000..f1b3b0e5 --- /dev/null +++ b/packages/mobile/android/build.gradle @@ -0,0 +1,29 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.7.2' + classpath 'com.google.gms:google-services:4.4.2' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +apply from: "variables.gradle" + +allprojects { + repositories { + google() + mavenCentral() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/packages/mobile/android/capacitor.settings.gradle b/packages/mobile/android/capacitor.settings.gradle new file mode 100644 index 00000000..9a5fa872 --- /dev/null +++ b/packages/mobile/android/capacitor.settings.gradle @@ -0,0 +1,3 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN +include ':capacitor-android' +project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') diff --git a/packages/mobile/android/gradle.properties b/packages/mobile/android/gradle.properties new file mode 100644 index 00000000..2e87c52f --- /dev/null +++ b/packages/mobile/android/gradle.properties @@ -0,0 +1,22 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true diff --git a/packages/mobile/android/gradle/wrapper/gradle-wrapper.jar b/packages/mobile/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties b/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..c1d5e018 --- /dev/null +++ b/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/packages/mobile/android/gradlew b/packages/mobile/android/gradlew new file mode 100755 index 00000000..f5feea6d --- /dev/null +++ b/packages/mobile/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/packages/mobile/android/gradlew.bat b/packages/mobile/android/gradlew.bat new file mode 100644 index 00000000..9b42019c --- /dev/null +++ b/packages/mobile/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/packages/mobile/android/settings.gradle b/packages/mobile/android/settings.gradle new file mode 100644 index 00000000..3b4431d7 --- /dev/null +++ b/packages/mobile/android/settings.gradle @@ -0,0 +1,5 @@ +include ':app' +include ':capacitor-cordova-android-plugins' +project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') + +apply from: 'capacitor.settings.gradle' \ No newline at end of file diff --git a/packages/mobile/android/variables.gradle b/packages/mobile/android/variables.gradle new file mode 100644 index 00000000..2c8e4083 --- /dev/null +++ b/packages/mobile/android/variables.gradle @@ -0,0 +1,16 @@ +ext { + minSdkVersion = 23 + compileSdkVersion = 35 + targetSdkVersion = 35 + androidxActivityVersion = '1.9.2' + androidxAppCompatVersion = '1.7.0' + androidxCoordinatorLayoutVersion = '1.2.0' + androidxCoreVersion = '1.15.0' + androidxFragmentVersion = '1.8.4' + coreSplashScreenVersion = '1.0.1' + androidxWebkitVersion = '1.12.1' + junitVersion = '4.13.2' + androidxJunitVersion = '1.2.1' + androidxEspressoCoreVersion = '3.6.1' + cordovaAndroidVersion = '10.1.1' +} \ No newline at end of file diff --git a/packages/mobile/capacitor.config.ts b/packages/mobile/capacitor.config.ts new file mode 100644 index 00000000..ca6c39c5 --- /dev/null +++ b/packages/mobile/capacitor.config.ts @@ -0,0 +1,41 @@ +import type { CapacitorConfig } from '@capacitor/cli'; + +/** + * O APK e uma casca fina: a WebView carrega a instancia pela rede em vez de + * servir uma copia do app web embutida no pacote. + * + * Duas razoes, nesta ordem: + * + * 1. Atualizacao. O site muda a cada deploy. Com os arquivos embutidos, cada + * mudanca no app web exigiria republicar e reinstalar o APK a mao — nao ha + * updater automatico no Android como o electron-updater faz no desktop. + * Pela rede, o telefone recebe a mesma versao que o navegador, na hora. + * + * 2. Origem. O cliente fala com /api e /ws na mesma origem. Embutido, a pagina + * rodaria em https://localhost e toda chamada viraria cross-origin, o que + * obrigaria a abrir CORS no servidor para uma origem que qualquer app pode + * reivindicar. + * + * O preco e nao funcionar offline, o que para um app de chat em tempo real nao + * e perda: sem servidor nao ha o que mostrar. A pagina em public/ so aparece se + * a WebView nao alcancar o servidor. + */ +const config: CapacitorConfig = { + appId: 'com.resenhacord.app', + appName: 'Resenhacord', + webDir: 'public', + android: { + // A captura de audio e video da WebView e concedida pelo bridge do + // Capacitor, que traduz o pedido do getUserMedia para a permissao nativa. + allowMixedContent: false, + }, + server: { + url: 'https://chat.resenha.website', + // Sem cleartext: a instancia e servida por HTTPS (Caddy), e o WebRTC do + // LiveKit exige contexto seguro de qualquer forma. + cleartext: false, + androidScheme: 'https', + }, +}; + +export default config; diff --git a/packages/mobile/package-lock.json b/packages/mobile/package-lock.json new file mode 100644 index 00000000..9cdc9999 --- /dev/null +++ b/packages/mobile/package-lock.json @@ -0,0 +1,1181 @@ +{ + "name": "@backspace/mobile", + "version": "2.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@backspace/mobile", + "version": "2.1.0", + "license": "AGPL-3.0-only", + "dependencies": { + "@capacitor/android": "^7.0.0", + "@capacitor/core": "^7.0.0" + }, + "devDependencies": { + "@capacitor/cli": "^7.0.0", + "typescript": "^5.7.2" + } + }, + "node_modules/@capacitor/android": { + "version": "7.6.9", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-7.6.9.tgz", + "integrity": "sha512-jvfU42aOuj92/KJqRscfDm+5612WzJainFL09xjJgD9oI3OMXN4PBfccn8Ig9i8x7bkVqZv/XNwFshiIRqmggg==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": "^7.6.0" + } + }, + "node_modules/@capacitor/cli": { + "version": "7.6.9", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-7.6.9.tgz", + "integrity": "sha512-QBDEf38yBAFTJehbi5FvAmhDWV1I/e7Zr3Z6XX0Bj+9T+/OY5EkGbw5/1e+3oIyyeepq3WtdSkLWHs3VNH2gCA==", + "dev": true, + "license": "MIT", + "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.3", + "open": "^8.4.0", + "plist": "^3.1.0", + "prompts": "^2.4.2", + "rimraf": "^6.0.1", + "semver": "^7.6.3", + "tar": "^7.5.3", + "tslib": "^2.8.1", + "xml2js": "^0.6.2" + }, + "bin": { + "cap": "bin/capacitor", + "capacitor": "bin/capacitor" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@capacitor/core": { + "version": "7.6.9", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.6.9.tgz", + "integrity": "sha512-4DOh/xySC9S5ryhUIqpOppasIyi2WiTdF0JuZ/2DEs+vf5eunRzHDdNYBp1snA3faHciTw/3SVGXfR+WkYxsMA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@ionic/cli-framework-output": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz", + "integrity": "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-array": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz", + "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz", + "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^8.0.0", + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ionic/utils-object": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz", + "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-process": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.12.tgz", + "integrity": "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.7.tgz", + "integrity": "sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-subprocess": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-3.0.1.tgz", + "integrity": "sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-terminal": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz", + "integrity": "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "26.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.1.tgz", + "integrity": "sha512-k97ENvZWtvA6yqz5/FS6a7duDgOPEeOQOc2iKS/nY6mX6qJUKtLnWzQS+Xj6tXweyj6ZcTAK2Qecetnvi9nCLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.12.tgz", + "integrity": "sha512-5AXjrcMClTryPe9LgZrygpB1lj7s0S9E0+W+AHaVKAVyHanafK86iPSvG5xHVSp/jC+VH1UXu0TAEmY279xH7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fs-extra": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/native-run": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-2.0.3.tgz", + "integrity": "sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/plist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.1.tgz", + "integrity": "sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.9.10", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rimraf": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==", + "dev": true, + "license": "ISC" + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "7.5.22", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", + "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/packages/mobile/package.json b/packages/mobile/package.json new file mode 100644 index 00000000..8887c439 --- /dev/null +++ b/packages/mobile/package.json @@ -0,0 +1,21 @@ +{ + "name": "@backspace/mobile", + "version": "2.1.0", + "private": true, + "license": "AGPL-3.0-only", + "description": "Resenhacord para Android", + "scripts": { + "sync": "cap sync android", + "open": "cap open android", + "build:debug": "cd android && ./gradlew assembleDebug", + "build:release": "cd android && ./gradlew assembleRelease" + }, + "dependencies": { + "@capacitor/android": "^7.0.0", + "@capacitor/core": "^7.0.0" + }, + "devDependencies": { + "@capacitor/cli": "^7.0.0", + "typescript": "^5.7.2" + } +} diff --git a/packages/mobile/public/index.html b/packages/mobile/public/index.html new file mode 100644 index 00000000..245fbaa8 --- /dev/null +++ b/packages/mobile/public/index.html @@ -0,0 +1,18 @@ + + + +Resenhacord + +

Sem conexão

+

Não deu pra falar com o servidor. Confere a internet e abre de novo.

diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dee51e92..bb74215d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,7 @@ packages: - "packages/*" + # O app Android fica de fora do workspace de proposito. Ele usa npm com um + # node_modules normal: o layout de links simbolicos do pnpm quebra as + # suposicoes de caminho do CLI do Capacitor e do Gradle. Mantendo-o fora, o + # pnpm-lock.yaml e o CI do desktop/web seguem intocados por ele. + - "!packages/mobile"