Merge branch 'master' into dependabot/npm_and_yarn/fast-xml-builder-1.2.0
This commit is contained in:
commit
edff2468d4
@ -10,6 +10,10 @@ on:
|
||||
- master
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: build-ios-release-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macos-26
|
||||
@ -26,7 +30,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout Project
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0 # Ensures the full Git history is
|
||||
|
||||
@ -65,13 +69,12 @@ jobs:
|
||||
echo "Branch Name: ${{ env.CURRENT_BRANCH }}"
|
||||
|
||||
- name: Specify Node.js Version
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1
|
||||
- uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0
|
||||
with:
|
||||
xcode-version: latest
|
||||
|
||||
@ -244,6 +247,17 @@ jobs:
|
||||
- name: Install Node Modules
|
||||
run: npm ci --omit=dev --yes
|
||||
|
||||
- name: Cache CocoaPods
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
with:
|
||||
path: |
|
||||
ios/Pods
|
||||
~/Library/Caches/CocoaPods
|
||||
~/.cocoapods/repos
|
||||
key: ${{ runner.os }}-pods-ios-release-${{ hashFiles('ios/Podfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pods-ios-release-
|
||||
|
||||
- name: Install CocoaPods Dependencies
|
||||
run: |
|
||||
bundle exec fastlane ios install_pods
|
||||
@ -430,7 +444,7 @@ jobs:
|
||||
|
||||
- name: Upload Build Logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: build_logs
|
||||
path: ./ios/build_logs/
|
||||
@ -451,7 +465,7 @@ jobs:
|
||||
|
||||
- name: Upload IPA as Artifact
|
||||
if: success()
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: BlueWallet_IPA
|
||||
path: ${{ env.IPA_OUTPUT_PATH }}
|
||||
@ -473,7 +487,7 @@ jobs:
|
||||
BRANCH_NAME: ${{ needs.build.outputs.branch_name }}
|
||||
steps:
|
||||
- name: Checkout Project
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Set Up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
|
||||
25
.github/workflows/build-mac-catalyst.yml
vendored
25
.github/workflows/build-mac-catalyst.yml
vendored
@ -49,27 +49,26 @@ jobs:
|
||||
|
||||
- name: Checkout project
|
||||
if: github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true'
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js
|
||||
if: github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true'
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: npm
|
||||
cache-dependency-path: package-lock.json
|
||||
cache: 'npm'
|
||||
|
||||
- name: Setup Xcode
|
||||
if: github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true'
|
||||
uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1
|
||||
uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0
|
||||
with:
|
||||
xcode-version: latest
|
||||
|
||||
- name: Set up Ruby
|
||||
if: github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true'
|
||||
uses: ruby/setup-ruby@v1
|
||||
uses: ruby/setup-ruby@c4e5b1316158f92e3d49443a9d58b31d25ac0f8f # v1.306.0
|
||||
with:
|
||||
ruby-version: 3.4.8
|
||||
bundler-cache: true
|
||||
@ -78,6 +77,18 @@ jobs:
|
||||
if: github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true'
|
||||
run: npm ci
|
||||
|
||||
- name: Cache CocoaPods
|
||||
if: github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true'
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
with:
|
||||
path: |
|
||||
ios/Pods
|
||||
~/Library/Caches/CocoaPods
|
||||
~/.cocoapods/repos
|
||||
key: ${{ runner.os }}-pods-catalyst-${{ hashFiles('ios/Podfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pods-catalyst-
|
||||
|
||||
- name: Install CocoaPods dependencies
|
||||
if: github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true'
|
||||
run: bundle exec fastlane ios install_pods
|
||||
@ -110,7 +121,7 @@ jobs:
|
||||
- name: Upload Mac Catalyst DMG
|
||||
id: upload_dmg
|
||||
if: success() && (github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true')
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: BlueWallet-Mac-Catalyst
|
||||
path: ${{ steps.build_catalyst.outputs.catalyst_dmg_path }}
|
||||
|
||||
38
.github/workflows/build-release-apk.yml
vendored
38
.github/workflows/build-release-apk.yml
vendored
@ -11,11 +11,11 @@ on:
|
||||
|
||||
jobs:
|
||||
buildReleaseApk:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- name: Checkout project
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: "0"
|
||||
|
||||
@ -37,18 +37,26 @@ jobs:
|
||||
df -h
|
||||
|
||||
- name: Specify node version
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Use specific Java version for sdkmanager to work
|
||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
cache: 'gradle'
|
||||
|
||||
- name: Use gradle caches
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('android/**/*.gradle', 'android/**/*.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
|
||||
- name: Set up Android SDK
|
||||
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3
|
||||
@ -62,19 +70,11 @@ jobs:
|
||||
run: npm ci --yes
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
uses: ruby/setup-ruby@c4e5b1316158f92e3d49443a9d58b31d25ac0f8f # v1.306.0
|
||||
with:
|
||||
ruby-version: 3.4.8
|
||||
bundler-cache: true
|
||||
|
||||
- name: Cache Ruby Gems
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: ${{ runner.os }}-ruby-${{ hashFiles('**/Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-ruby-
|
||||
|
||||
- name: Generate Build Number based on timestamp
|
||||
id: build_number
|
||||
run: |
|
||||
@ -92,7 +92,7 @@ jobs:
|
||||
|
||||
- name: Upload build logs on failure
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: android-build-logs
|
||||
path: |
|
||||
@ -122,23 +122,23 @@ jobs:
|
||||
echo "APK_PATH=${APK_PATH}" >> $GITHUB_ENV
|
||||
|
||||
- name: Upload APK as artifact
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: signed-apk
|
||||
path: ${{ env.APK_PATH }}
|
||||
if-no-files-found: error
|
||||
|
||||
browserstack:
|
||||
runs-on: macos-latest
|
||||
runs-on: macos-26
|
||||
needs: buildReleaseApk
|
||||
if: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'browserstack') }}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
uses: ruby/setup-ruby@c4e5b1316158f92e3d49443a9d58b31d25ac0f8f # v1.306.0
|
||||
with:
|
||||
ruby-version: 3.4.8
|
||||
bundler-cache: true
|
||||
|
||||
15
.github/workflows/ci.yml
vendored
15
.github/workflows/ci.yml
vendored
@ -14,16 +14,15 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout project
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Specify node version
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Install node_modules
|
||||
run: npm ci || npm ci
|
||||
@ -35,16 +34,15 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout project
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Specify node version
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Install node_modules
|
||||
run: npm ci || npm ci
|
||||
@ -66,16 +64,15 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout project
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Specify node version
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Install node_modules
|
||||
run: npm ci || npm ci
|
||||
|
||||
152
.github/workflows/e2e-android.yml
vendored
Normal file
152
.github/workflows/e2e-android.yml
vendored
Normal file
@ -0,0 +1,152 @@
|
||||
name: Tests e2e Android
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: e2e-android-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Free disk space (Ubuntu)
|
||||
run: |
|
||||
echo "Disk before cleanup:" && df -h
|
||||
sudo rm -rf /usr/share/dotnet /opt/ghc
|
||||
sudo apt-get clean
|
||||
sudo rm -rf /opt/ghc || true
|
||||
sudo rm -rf /usr/local/share/boost || true
|
||||
sudo rm -rf /usr/local/lib/android/sdk/ndk || true
|
||||
sudo docker system prune -af || true
|
||||
sudo rm -rf /usr/local/lib/android/sdk/system-images || true
|
||||
sudo rm -rf /usr/local/lib/android/sdk/emulator || true
|
||||
rm -rf ~/.gradle/caches/modules-2/files-2.1 || true
|
||||
rm -rf ~/.gradle/caches/build-cache || true
|
||||
rm -rf ~/.npm/_cacache ~/.cache || true
|
||||
sudo rm -rf /home/runner/work/_temp || true
|
||||
echo "Disk after cleanup:" && df -h
|
||||
|
||||
- name: Specify node version
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
|
||||
- name: Use gradle caches
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('android/**/*.gradle', 'android/**/*.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
|
||||
- name: Install node_modules
|
||||
run: npm ci || npm ci
|
||||
|
||||
- name: Use specific Java version for sdkmanager to work
|
||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Build
|
||||
run: npm run e2e:release-build || npm run e2e:release-build
|
||||
|
||||
- name: Package APKs
|
||||
run: |
|
||||
tar -czf bluewallet-android-apks.tar.gz \
|
||||
android/app/build/outputs/apk/release/app-release.apk \
|
||||
android/app/build/outputs/apk/androidTest/release/app-release-androidTest.apk
|
||||
|
||||
- name: Upload APKs
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: bluewallet-android-apks
|
||||
path: bluewallet-android-apks.tar.gz
|
||||
retention-days: 3
|
||||
compression-level: 0
|
||||
if-no-files-found: error
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-24.04
|
||||
needs: build
|
||||
env:
|
||||
HD_MNEMONIC: ${{ secrets.HD_MNEMONIC }}
|
||||
HD_MNEMONIC_BIP84: ${{ secrets.HD_MNEMONIC_BIP84 }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Free disk space (Ubuntu)
|
||||
run: |
|
||||
echo "Disk before cleanup:" && df -h
|
||||
sudo rm -rf /usr/share/dotnet /opt/ghc
|
||||
sudo apt-get clean
|
||||
sudo rm -rf /opt/ghc || true
|
||||
sudo rm -rf /usr/local/share/boost || true
|
||||
sudo rm -rf /usr/local/lib/android/sdk/ndk || true
|
||||
sudo docker system prune -af || true
|
||||
rm -rf ~/.npm/_cacache ~/.cache || true
|
||||
sudo rm -rf /home/runner/work/_temp || true
|
||||
echo "Disk after cleanup:" && df -h
|
||||
|
||||
- name: Ensure artifacts directory
|
||||
run: mkdir -p ${{ github.workspace }}/artifacts
|
||||
|
||||
- name: Specify node version
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install node_modules
|
||||
run: npm ci || npm ci
|
||||
|
||||
- name: Use specific Java version for sdkmanager to work
|
||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Enable KVM group perms
|
||||
run: |
|
||||
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger --name-match=kvm
|
||||
|
||||
- name: Download APKs
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
|
||||
with:
|
||||
name: bluewallet-android-apks
|
||||
|
||||
- name: Restore APKs
|
||||
run: tar -xzf bluewallet-android-apks.tar.gz
|
||||
|
||||
- name: Run tests
|
||||
uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2
|
||||
with:
|
||||
api-level: 36
|
||||
profile: pixel
|
||||
avd-name: Pixel_API_29_AOSP
|
||||
force-avd-creation: true
|
||||
enable-hw-keyboard: true
|
||||
emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -camera-back none -camera-front none -partition-size 2047
|
||||
arch: x86_64
|
||||
script: npm run e2e:release-test -- --record-videos failing --record-logs failing --take-screenshots failing --headless --retries 4 --reuse --artifacts-location ${{ github.workspace }}/artifacts
|
||||
|
||||
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: failure()
|
||||
with:
|
||||
name: e2e-android-videos
|
||||
path: ${{ github.workspace }}/artifacts
|
||||
213
.github/workflows/e2e-ios.yml
vendored
Normal file
213
.github/workflows/e2e-ios.yml
vendored
Normal file
@ -0,0 +1,213 @@
|
||||
name: Tests e2e iOS
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: e2e-ios-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macos-26
|
||||
env:
|
||||
BUILD_CONFIGURATION: Release
|
||||
CCACHE_MAXSIZE: "2G"
|
||||
CCACHE_DIR: /Users/runner/.ccache
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
|
||||
- name: Setup Ruby
|
||||
uses: ruby/setup-ruby@c4e5b1316158f92e3d49443a9d58b31d25ac0f8f # v1.306.0
|
||||
with:
|
||||
ruby-version: "3.4.8"
|
||||
bundler-cache: true
|
||||
|
||||
- name: Install Node dependencies
|
||||
run: npm ci || npm ci
|
||||
|
||||
- name: Cache CocoaPods
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
|
||||
with:
|
||||
path: |
|
||||
ios/Pods
|
||||
~/Library/Caches/CocoaPods
|
||||
~/.cocoapods/repos
|
||||
key: ${{ runner.os }}-pods-prebuilt-${{ hashFiles('ios/Podfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pods-prebuilt-
|
||||
|
||||
- name: Install ccache
|
||||
run: brew install ccache
|
||||
|
||||
- name: Cache ccache
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{ runner.os }}-ccache-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-ccache-
|
||||
|
||||
- name: Delete extension and watch targets
|
||||
run: |
|
||||
bundle exec ruby <<'RUBY'
|
||||
require 'xcodeproj'
|
||||
|
||||
project_path = 'ios/BlueWallet.xcodeproj'
|
||||
project = Xcodeproj::Project.open(project_path)
|
||||
|
||||
target_names = %w[BlueWalletWatch WidgetsExtension Stickers]
|
||||
embed_phase_names = ['Embed Watch Content', 'Embed Foundation Extensions']
|
||||
removed_any = false
|
||||
|
||||
target_names.each do |target_name|
|
||||
target = project.targets.find { |t| t.name == target_name }
|
||||
next unless target
|
||||
|
||||
puts "Removing target #{target_name}"
|
||||
target.dependencies.each(&:remove_from_project)
|
||||
target.build_phases.each(&:remove_from_project)
|
||||
project.targets.delete(target)
|
||||
removed_any = true
|
||||
end
|
||||
|
||||
main_target = project.targets.find { |t| t.name == 'BlueWallet' }
|
||||
if main_target
|
||||
main_target.build_phases.select { |phase| embed_phase_names.include?(phase.display_name) }.each do |phase|
|
||||
puts "Removing build phase #{phase.display_name}"
|
||||
phase.remove_from_project
|
||||
main_target.build_phases.delete(phase)
|
||||
removed_any = true
|
||||
end
|
||||
end
|
||||
|
||||
if removed_any
|
||||
project.save
|
||||
puts 'Extension and watch target references removed'
|
||||
else
|
||||
puts 'No extension or watch targets found'
|
||||
end
|
||||
RUBY
|
||||
|
||||
- name: Remove extension and watch schemes
|
||||
run: |
|
||||
rm -f ios/BlueWallet.xcodeproj/xcshareddata/xcschemes/BlueWalletWatch.xcscheme
|
||||
rm -f ios/BlueWallet.xcodeproj/xcshareddata/xcschemes/WidgetsExtension.xcscheme
|
||||
rm -f ios/BlueWallet.xcodeproj/xcshareddata/xcschemes/Stickers.xcscheme
|
||||
|
||||
- name: Install CocoaPods dependencies
|
||||
env:
|
||||
RCT_USE_RN_DEP: "1"
|
||||
RCT_USE_PREBUILT_RNCORE: "1"
|
||||
USE_CCACHE: "1"
|
||||
run: bundle exec fastlane ios install_pods || bundle exec fastlane ios install_pods
|
||||
|
||||
- name: Reset ccache stats
|
||||
run: ccache -z || true
|
||||
|
||||
- name: Build iOS simulator app
|
||||
working-directory: ios
|
||||
env:
|
||||
RCT_NO_LAUNCH_PACKAGER: "1"
|
||||
CCACHE_BINARY: /opt/homebrew/bin/ccache
|
||||
run: |
|
||||
set -eo pipefail
|
||||
build() {
|
||||
xcodebuild \
|
||||
-workspace BlueWallet.xcworkspace \
|
||||
-scheme BlueWallet \
|
||||
-configuration "${BUILD_CONFIGURATION}" \
|
||||
-sdk iphonesimulator \
|
||||
-destination 'generic/platform=iOS Simulator' \
|
||||
-derivedDataPath build \
|
||||
CLANG_ENABLE_EXPLICIT_MODULES=NO \
|
||||
SWIFT_ENABLE_EXPLICIT_MODULES=NO \
|
||||
build
|
||||
}
|
||||
build || build
|
||||
|
||||
- name: ccache stats
|
||||
if: always()
|
||||
run: ccache -s || true
|
||||
|
||||
- name: Package simulator app
|
||||
run: |
|
||||
APP_DIR="ios/build/Build/Products/${BUILD_CONFIGURATION}-iphonesimulator/BlueWallet.app"
|
||||
if [ ! -d "$APP_DIR" ]; then
|
||||
echo "Simulator app not found at $APP_DIR"
|
||||
find ios/build -maxdepth 5 -name '*.app' || true
|
||||
exit 1
|
||||
fi
|
||||
tar -czf BlueWallet.app.tar.gz -C "$(dirname "$APP_DIR")" "$(basename "$APP_DIR")"
|
||||
|
||||
- name: Upload simulator app
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: bluewallet-ios-app
|
||||
path: BlueWallet.app.tar.gz
|
||||
retention-days: 3
|
||||
compression-level: 0
|
||||
if-no-files-found: error
|
||||
|
||||
test:
|
||||
runs-on: macos-26
|
||||
needs: build
|
||||
env:
|
||||
HD_MNEMONIC: ${{ secrets.HD_MNEMONIC }}
|
||||
HD_MNEMONIC_BIP84: ${{ secrets.HD_MNEMONIC_BIP84 }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install Node dependencies
|
||||
run: npm ci || npm ci
|
||||
|
||||
- name: Install applesimutils
|
||||
run: |
|
||||
brew tap wix/brew
|
||||
brew install applesimutils
|
||||
|
||||
- name: Download simulator app
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
|
||||
with:
|
||||
name: bluewallet-ios-app
|
||||
|
||||
- name: Restore simulator app
|
||||
run: |
|
||||
mkdir -p ios/build/Build/Products/Release-iphonesimulator
|
||||
tar -xzf BlueWallet.app.tar.gz -C ios/build/Build/Products/Release-iphonesimulator
|
||||
|
||||
- name: Run detox tests
|
||||
timeout-minutes: 360
|
||||
run: |
|
||||
npm run e2e:test:ios-release -- \
|
||||
--record-videos failing \
|
||||
--record-logs failing \
|
||||
--take-screenshots failing \
|
||||
--headless \
|
||||
--retries 3 \
|
||||
--reuse \
|
||||
--artifacts-location ./artifacts
|
||||
|
||||
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: failure()
|
||||
with:
|
||||
name: e2e-ios-videos
|
||||
path: ./artifacts/
|
||||
247
.github/workflows/e2e.yml
vendored
247
.github/workflows/e2e.yml
vendored
@ -1,247 +0,0 @@
|
||||
name: Tests e2e
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
ios:
|
||||
runs-on: macos-26
|
||||
env:
|
||||
BUILD_CONFIGURATION: Release
|
||||
HD_MNEMONIC: ${{ secrets.HD_MNEMONIC }}
|
||||
HD_MNEMONIC_BIP84: ${{ secrets.HD_MNEMONIC_BIP84 }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Setup Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: "3.4.8"
|
||||
|
||||
- name: Cache Ruby gems
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: ${{ runner.os }}-ruby-${{ hashFiles('Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-ruby-
|
||||
|
||||
- name: Install Ruby gems
|
||||
run: |
|
||||
bundle config path vendor/bundle
|
||||
bundle install --jobs 4 --retry 3 --quiet
|
||||
|
||||
- name: Install Node dependencies
|
||||
run: npm ci || npm ci
|
||||
|
||||
- name: Cache CocoaPods
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
|
||||
with:
|
||||
path: ios/Pods
|
||||
key: ${{ runner.os }}-pods-${{ hashFiles('ios/Podfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pods-
|
||||
|
||||
- name: Install CocoaPods dependencies
|
||||
run: bundle exec fastlane ios install_pods || bundle exec fastlane ios install_pods
|
||||
|
||||
- name: Delete Apple Watch target
|
||||
run: |
|
||||
bundle exec ruby <<'RUBY'
|
||||
require 'xcodeproj'
|
||||
|
||||
project_path = 'ios/BlueWallet.xcodeproj'
|
||||
project = Xcodeproj::Project.open(project_path)
|
||||
|
||||
target_names = %w[BlueWalletWatch]
|
||||
removed_any = false
|
||||
|
||||
target_names.each do |target_name|
|
||||
target = project.targets.find { |t| t.name == target_name }
|
||||
next unless target
|
||||
|
||||
puts "Removing target #{target_name}"
|
||||
target.dependencies.each(&:remove_from_project)
|
||||
target.build_phases.each(&:remove_from_project)
|
||||
project.targets.delete(target)
|
||||
removed_any = true
|
||||
end
|
||||
|
||||
main_target = project.targets.find { |t| t.name == 'BlueWallet' }
|
||||
if main_target
|
||||
main_target.build_phases.select { |phase| phase.display_name == 'Embed Watch Content' }.each do |phase|
|
||||
puts "Removing build phase #{phase.display_name}"
|
||||
phase.remove_from_project
|
||||
main_target.build_phases.delete(phase)
|
||||
removed_any = true
|
||||
end
|
||||
end
|
||||
|
||||
if removed_any
|
||||
project.save
|
||||
puts 'Apple Watch target references removed'
|
||||
else
|
||||
puts 'No Apple Watch targets found'
|
||||
end
|
||||
RUBY
|
||||
|
||||
- name: Remove Watch schemes
|
||||
run: rm -f ios/BlueWallet.xcodeproj/xcshareddata/xcschemes/BlueWalletWatch.xcscheme
|
||||
|
||||
- name: Build iOS simulator app
|
||||
working-directory: ios
|
||||
env:
|
||||
RCT_NO_LAUNCH_PACKAGER: "1"
|
||||
run: |
|
||||
set -eo pipefail
|
||||
build() {
|
||||
xcodebuild \
|
||||
-workspace BlueWallet.xcworkspace \
|
||||
-scheme BlueWallet \
|
||||
-configuration "${BUILD_CONFIGURATION}" \
|
||||
-sdk iphonesimulator \
|
||||
-destination 'generic/platform=iOS Simulator' \
|
||||
-derivedDataPath build \
|
||||
build
|
||||
}
|
||||
build || build
|
||||
|
||||
- name: Package simulator app
|
||||
run: |
|
||||
APP_DIR="ios/build/Build/Products/${BUILD_CONFIGURATION}-iphonesimulator/BlueWallet.app"
|
||||
if [ ! -d "$APP_DIR" ]; then
|
||||
echo "Simulator app not found at $APP_DIR"
|
||||
find ios/build -maxdepth 5 -name '*.app' || true
|
||||
exit 1
|
||||
fi
|
||||
OUTPUT_DIR="BlueWallet-simulator"
|
||||
rm -rf "$OUTPUT_DIR"
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
cp -R "$APP_DIR" "$OUTPUT_DIR/BlueWallet.app"
|
||||
echo "APP_EXPORT_PATH=$OUTPUT_DIR" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Install applesimutils
|
||||
run: |
|
||||
brew tap wix/brew
|
||||
brew install applesimutils
|
||||
|
||||
- name: Run detox tests
|
||||
timeout-minutes: 360
|
||||
run: |
|
||||
npm run e2e:test:ios-release -- \
|
||||
--record-videos failing \
|
||||
--record-logs failing \
|
||||
--take-screenshots failing \
|
||||
--headless \
|
||||
--retries 3 \
|
||||
--reuse \
|
||||
--artifacts-location ./artifacts
|
||||
|
||||
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
||||
if: failure()
|
||||
with:
|
||||
name: e2e-ios-videos
|
||||
path: ./artifacts/
|
||||
|
||||
|
||||
android:
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
HD_MNEMONIC: ${{ secrets.HD_MNEMONIC }}
|
||||
HD_MNEMONIC_BIP84: ${{ secrets.HD_MNEMONIC_BIP84 }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Free disk space (Ubuntu)
|
||||
run: |
|
||||
echo "Disk before cleanup:" && df -h
|
||||
sudo rm -rf /usr/share/dotnet /opt/ghc
|
||||
sudo apt-get clean
|
||||
sudo rm -rf /opt/ghc || true
|
||||
sudo rm -rf /usr/local/share/boost || true
|
||||
sudo rm -rf /usr/local/lib/android/sdk/ndk || true
|
||||
sudo docker system prune -af || true
|
||||
sudo rm -rf /usr/local/lib/android/sdk/system-images || true
|
||||
sudo rm -rf /usr/local/lib/android/sdk/emulator || true
|
||||
rm -rf ~/.gradle/caches/modules-2/files-2.1 || true
|
||||
rm -rf ~/.gradle/caches/build-cache || true
|
||||
rm -rf ~/.npm/_cacache ~/.cache || true
|
||||
sudo rm -rf /home/runner/work/_temp || true
|
||||
echo "Disk after cleanup:" && df -h
|
||||
|
||||
- name: Ensure artifacts directory
|
||||
run: |
|
||||
mkdir -p ${{ github.workspace }}/artifacts
|
||||
|
||||
- name: Specify node version
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'npm'
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Use gradle caches
|
||||
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
|
||||
- name: Install node_modules
|
||||
run: npm ci --omit=dev --yes || npm ci --omit=dev --yes
|
||||
|
||||
- name: Use specific Java version for sdkmanager to work
|
||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Enable KVM group perms
|
||||
run: |
|
||||
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger --name-match=kvm
|
||||
|
||||
- name: Build
|
||||
run: npm run e2e:release-build || npm run e2e:release-build
|
||||
|
||||
- name: Install dev deps needed for tests
|
||||
run: npm i || npm i
|
||||
|
||||
- name: Run tests
|
||||
uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2
|
||||
with:
|
||||
api-level: 36
|
||||
profile: pixel
|
||||
avd-name: Pixel_API_29_AOSP
|
||||
force-avd-creation: true
|
||||
enable-hw-keyboard: true
|
||||
emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -camera-back none -camera-front none -partition-size 2047
|
||||
arch: x86_64
|
||||
script: npm run e2e:release-test -- --record-videos failing --record-logs failing --take-screenshots failing --headless --retries 4 --reuse --artifacts-location ${{ github.workspace }}/artifacts
|
||||
|
||||
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
||||
if: failure()
|
||||
with:
|
||||
name: e2e-android-videos
|
||||
path: ${{ github.workspace }}/artifacts
|
||||
@ -41,7 +41,7 @@ post_install do |installer|
|
||||
react_native_post_install(
|
||||
installer,
|
||||
:mac_catalyst_enabled => true,
|
||||
# :ccache_enabled => true
|
||||
:ccache_enabled => ENV['USE_CCACHE'] == '1',
|
||||
)
|
||||
# Fix RCTDeprecation module map error with Xcode 16+/26+ (required for react-native-notifications).
|
||||
# The bridging header imports RCTBridgeModule.h which does
|
||||
|
||||
656
ios/Podfile.lock
656
ios/Podfile.lock
File diff suppressed because it is too large
Load Diff
196
package-lock.json
generated
196
package-lock.json
generated
@ -31,10 +31,10 @@
|
||||
"@react-native-vector-icons/ionicons": "13.1.1",
|
||||
"@react-native-vector-icons/material-design-icons": "13.1.1",
|
||||
"@react-native-vector-icons/material-icons": "13.1.1",
|
||||
"@react-native/babel-preset": "0.85.2",
|
||||
"@react-native/codegen": "0.85.2",
|
||||
"@react-native/gradle-plugin": "0.85.2",
|
||||
"@react-native/metro-config": "0.85.2",
|
||||
"@react-native/babel-preset": "0.85.3",
|
||||
"@react-native/codegen": "0.85.3",
|
||||
"@react-native/gradle-plugin": "0.85.3",
|
||||
"@react-native/metro-config": "0.85.3",
|
||||
"@react-navigation/devtools": "7.0.56",
|
||||
"@react-navigation/drawer": "7.9.9",
|
||||
"@react-navigation/native": "7.2.2",
|
||||
@ -59,7 +59,7 @@
|
||||
"crypto-browserify": "3.12.1",
|
||||
"crypto-js": "4.2.0",
|
||||
"dayjs": "1.11.20",
|
||||
"detox": "20.51.0",
|
||||
"detox": "20.51.1",
|
||||
"ecpair": "3.0.0",
|
||||
"electrum-client": "github:BlueWallet/rn-electrum-client#d9f511d",
|
||||
"electrum-mnemonic": "2.0.0",
|
||||
@ -71,7 +71,7 @@
|
||||
"qr": "0.5.5",
|
||||
"react": "19.2.3",
|
||||
"react-localization": "github:BlueWallet/react-localization#ae7969a",
|
||||
"react-native": "0.85.2",
|
||||
"react-native": "0.85.3",
|
||||
"react-native-biometrics": "3.0.1",
|
||||
"react-native-blue-crypto": "github:BlueWallet/react-native-blue-crypto#3cb5442",
|
||||
"react-native-camera-kit-no-google": "github:BlueWallet/react-native-camera-kit-no-google#0ed049a62da29cf304019363ec9d9ef3a73652e6",
|
||||
@ -119,11 +119,11 @@
|
||||
"@babel/preset-env": "^7.26.0",
|
||||
"@babel/runtime": "^7.26.0",
|
||||
"@jest/reporters": "^27.5.1",
|
||||
"@react-native/eslint-config": "^0.85.2",
|
||||
"@react-native/jest-preset": "0.85.2",
|
||||
"@react-native/js-polyfills": "^0.85.2",
|
||||
"@react-native/metro-babel-transformer": "^0.85.2",
|
||||
"@react-native/typescript-config": "^0.85.2",
|
||||
"@react-native/eslint-config": "^0.85.3",
|
||||
"@react-native/jest-preset": "0.85.3",
|
||||
"@react-native/js-polyfills": "^0.85.3",
|
||||
"@react-native/metro-babel-transformer": "^0.85.3",
|
||||
"@react-native/typescript-config": "^0.85.3",
|
||||
"@testing-library/react-native": "^13.0.1",
|
||||
"@types/bip38": "^3.1.2",
|
||||
"@types/bs58check": "^2.1.0",
|
||||
@ -3918,31 +3918,31 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/assets-registry": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.85.2.tgz",
|
||||
"integrity": "sha512-kauC/oPaxklU4Y+u9gBfCBJm51qX6WBZq4xx0USCdimtp+G8+554kpygfSWIjoqCJa2o06bWxBEjesiuCv+LzA==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.85.3.tgz",
|
||||
"integrity": "sha512-u9ZiYP23vA2IFtdFQFmetzSmk6SM0xgKIoiOsr1hXNHjHaLhOm+/Ph1ud57wX6+Dbwdzx8coJgnzSKL3W21PCg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/babel-plugin-codegen": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.85.2.tgz",
|
||||
"integrity": "sha512-5Dqn08kRTUIxPLYju9hExI0cR1ESX+P5tEv5yv0q0UZcisRTw0VB8iUWDIph2LdY1i5Dc8PIvuaWMRNCw3vnKg==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.85.3.tgz",
|
||||
"integrity": "sha512-Wc94zGfeFG8Njf9SHMPfYZP04kjigkOps6F1TYTvd7ZVXuGxqseCDgxc50LWcOhOCLypI9n3oVVqz81C3p44ZA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/traverse": "^7.29.0",
|
||||
"@react-native/codegen": "0.85.2"
|
||||
"@react-native/codegen": "0.85.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/babel-preset": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.85.2.tgz",
|
||||
"integrity": "sha512-7d2yW23eKkVt0FbbnZLxqO7KybGLtQXOuvvcO1NUOYGtjzVh6ihNKn0TIHrhSNpMyHwYLDoiiuj95wLtcg3IwQ==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.85.3.tgz",
|
||||
"integrity": "sha512-fD7fxEhkJB/aF57tWoXjaAWpklfrExYZS3k6aXPP3BQ77DZY7gvf/b7dbirwjID6NVnP1JDRJyTuPBGr0K/vlw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.25.2",
|
||||
@ -3974,7 +3974,7 @@
|
||||
"@babel/plugin-transform-runtime": "^7.24.7",
|
||||
"@babel/plugin-transform-typescript": "^7.25.2",
|
||||
"@babel/plugin-transform-unicode-regex": "^7.24.7",
|
||||
"@react-native/babel-plugin-codegen": "0.85.2",
|
||||
"@react-native/babel-plugin-codegen": "0.85.3",
|
||||
"babel-plugin-syntax-hermes-parser": "0.33.3",
|
||||
"babel-plugin-transform-flow-enums": "^0.0.2",
|
||||
"react-refresh": "^0.14.0"
|
||||
@ -3987,9 +3987,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/codegen": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.85.2.tgz",
|
||||
"integrity": "sha512-XCginmxh0//++EXVOEJHBVZxHla294FzLCFF6jXwAUjvXVhqyIKyxhABfz+r4OOmaiuWk4Rtd4arqdAzeHeprg==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.85.3.tgz",
|
||||
"integrity": "sha512-/JkS1lGLyzBWP1FbgDwaqEf7qShIC6pUC1M0a/YMAd/v4iqR24MRkQWe7jkYvcBQ2LpEhs5NGE9InhxSv21zCA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.25.2",
|
||||
@ -4008,17 +4008,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/community-cli-plugin": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.85.2.tgz",
|
||||
"integrity": "sha512-3KLgSg1kHvBpr93zMaQhvfYTgnCw7yZRED+3J4dMcYjfSjtD0Wf8SofU6uBmAw9JaVYvP43lpdwUpI4p0+ABsg==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.85.3.tgz",
|
||||
"integrity": "sha512-fs85dmbIqNmtzEixDb0g+q6R3Vt4H9eAt8/inIZdDKfjN76+sUJA2r1nxODQ76bU23MrIbz8sI7KFBPaWk/zQw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@react-native/dev-middleware": "0.85.2",
|
||||
"@react-native/dev-middleware": "0.85.3",
|
||||
"debug": "^4.4.0",
|
||||
"invariant": "^2.2.4",
|
||||
"metro": "^0.84.0",
|
||||
"metro-config": "^0.84.0",
|
||||
"metro-core": "^0.84.0",
|
||||
"metro": "^0.84.3",
|
||||
"metro-config": "^0.84.3",
|
||||
"metro-core": "^0.84.3",
|
||||
"semver": "^7.1.3"
|
||||
},
|
||||
"engines": {
|
||||
@ -4026,7 +4026,7 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@react-native-community/cli": "*",
|
||||
"@react-native/metro-config": "0.85.2"
|
||||
"@react-native/metro-config": "0.85.3"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@react-native-community/cli": {
|
||||
@ -4050,18 +4050,18 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/debugger-frontend": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.85.2.tgz",
|
||||
"integrity": "sha512-j+0b9H5f5hGTLQxHIhJU/b/W6ijuxJF+ZTLHB0se2kzUBNxFKd7DkIc6753qk3CJdiv55vxG3XDgmlpbHxOpmA==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.85.3.tgz",
|
||||
"integrity": "sha512-uAu7rM5o/Np1zgp6fi5zM1sP1aB8DcS7DdOLcj/TkSutOAjkMqqd2lWt1/+3S7qXexRHVK5XcP+o3VXo4L/V0A==",
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/debugger-shell": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/debugger-shell/-/debugger-shell-0.85.2.tgz",
|
||||
"integrity": "sha512-r5BkhqPMfg3LmaZS5zadHmBNVH5h4bhSpv4BEPGfK4gat9HABAMzUzybi+2wpgU3SoHxnyKGdExEJvoqVcjeRg==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/debugger-shell/-/debugger-shell-0.85.3.tgz",
|
||||
"integrity": "sha512-/jRAaT9boiCttIcEwS02WPwYkUihqsjSaK/TMtHz05vT6uMgac9PaQt5kzBQLIABv5aEIa5gtrMmKVz49MjkjQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cross-spawn": "^7.0.6",
|
||||
@ -4073,14 +4073,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/dev-middleware": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.85.2.tgz",
|
||||
"integrity": "sha512-3J+NaDUg+QEfDeLAUzgaWhpaxEg78g+KwbydlDCewh2G6WnHpsty8XooruxNHzyAsqVWywZMrzmbn78Ctc1O9Q==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.85.3.tgz",
|
||||
"integrity": "sha512-JYzBiT4A8w+KQt+dOD5v+ti+tDrGoPnsSTuApq3Ls4RB5sfWbDlYMyz3dbc8qBIHz9tv0sQ5+eOu6Xwqzr5AQA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@isaacs/ttlcache": "^1.4.1",
|
||||
"@react-native/debugger-frontend": "0.85.2",
|
||||
"@react-native/debugger-shell": "0.85.2",
|
||||
"@react-native/debugger-frontend": "0.85.3",
|
||||
"@react-native/debugger-shell": "0.85.3",
|
||||
"chrome-launcher": "^0.15.2",
|
||||
"chromium-edge-launcher": "^0.3.0",
|
||||
"connect": "^3.6.5",
|
||||
@ -4145,15 +4145,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/eslint-config": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/eslint-config/-/eslint-config-0.85.2.tgz",
|
||||
"integrity": "sha512-bTEC3qY2ZFrKCs4KtZ28OSw4FH3bHZWU+1Tdl67jwDdgRvU9YAo0mfMdlTAIR7BD8V7zLAdqpIlGt/fOH4rPNA==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/eslint-config/-/eslint-config-0.85.3.tgz",
|
||||
"integrity": "sha512-CvE+1H4be7eZXpadoBDnz7B3ooK2Tl/tvbW2+odrsR22Afs2Q4m9fJtKD8lD8/LCufttsT5pnGIhP/ugO6x/mw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.25.2",
|
||||
"@babel/eslint-parser": "^7.25.1",
|
||||
"@react-native/eslint-plugin": "0.85.2",
|
||||
"@react-native/eslint-plugin": "0.85.3",
|
||||
"@typescript-eslint/eslint-plugin": "^8.36.0",
|
||||
"@typescript-eslint/parser": "^8.36.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
@ -4496,9 +4496,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/eslint-plugin": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/eslint-plugin/-/eslint-plugin-0.85.2.tgz",
|
||||
"integrity": "sha512-y4nwd4LR1K8/u1W7n0sRUgaAw6SOUqlvZtTsx/nyhghN5VQ56VGcJEP+1FohEOA6YLBwwa80nzNn/RyVXcUgjw==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/eslint-plugin/-/eslint-plugin-0.85.3.tgz",
|
||||
"integrity": "sha512-xUt6BZkIEPxNpsHsZc/FsjsyslrCW5NrGZDFIayyxQxg0zwwd0nXWFZ0qDfCeA75qYYTnboOwIuDIqykzJp61Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@ -4506,23 +4506,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/gradle-plugin": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.85.2.tgz",
|
||||
"integrity": "sha512-YXBOLeAqFrv7XwUeBPTKZeOV1FIxn4AW7UAEitScf3ibC8bu8+6NpJu4HWgbNQHg7vDbbTZVbcOl8EwGxsSq2w==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.85.3.tgz",
|
||||
"integrity": "sha512-39dY2j50Q1pntejzwt3XL7vwXtrj8jcIfHq6E+gyu3jzYxZJVvMkMutQ39vSg6zinIQOX36oQDhidXUbCXzgoA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/jest-preset": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/jest-preset/-/jest-preset-0.85.2.tgz",
|
||||
"integrity": "sha512-tCps+2P67PKbFMlqlLMmYuvQ3C7QFAWaMvax/SfBktZO4TydFVxwGgXoVC+db35uY8Bue6xrkcNOwrFjY8ewzw==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/jest-preset/-/jest-preset-0.85.3.tgz",
|
||||
"integrity": "sha512-ALPSrM0q2fU+5AXcOXzDKx7rxVKPMvygAZfsTWLdrGRVWIqf/HEfM0R8euQqIKUqmEuQ1TxMWN+px3h6gc4vow==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jest/create-cache-key-function": "^29.7.0",
|
||||
"@react-native/js-polyfills": "0.85.2",
|
||||
"@react-native/js-polyfills": "0.85.3",
|
||||
"babel-jest": "^29.7.0",
|
||||
"jest-environment-node": "^29.7.0",
|
||||
"regenerator-runtime": "^0.13.2"
|
||||
@ -4542,22 +4542,22 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@react-native/js-polyfills": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.85.2.tgz",
|
||||
"integrity": "sha512-esGEAmKVM40DV/yVmNljCKZTIeUo7qXqc+Hwffkv3TG+b3E24xyFovHrbP98gGxZr2ZsEyx+2sKLdXF5asY5nw==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.85.3.tgz",
|
||||
"integrity": "sha512-U2+aMshIXf1uFn77tpBb/xhHWB9vkVrMpt7kkucAugF8hJKYTDGB587X7WwelHduK2KBfhl4giSv0rzZGoef9A==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/metro-babel-transformer": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.85.2.tgz",
|
||||
"integrity": "sha512-lU9XOGahpHvQff30H5lnvh9RYbVwC1zpSHpl84E+7BD2zj0FvW+pD7MBh7CWbmbWmegjtAb+U/2bokXcDVA+jA==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.85.3.tgz",
|
||||
"integrity": "sha512-omuKq+r7jM4XvCMIlNMPP7Up3SyB8o5EAdZtF7YXniKyq7UOMBqhYHFqgsdOXr0lT+3ADf7VCJG3sb82jlBrrQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.25.2",
|
||||
"@react-native/babel-preset": "0.85.2",
|
||||
"@react-native/babel-preset": "0.85.3",
|
||||
"hermes-parser": "0.33.3",
|
||||
"nullthrows": "^1.1.1"
|
||||
},
|
||||
@ -4569,37 +4569,37 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/metro-config": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.85.2.tgz",
|
||||
"integrity": "sha512-YkTIMfTPeyMUrtpQo/7zd3oybVYJCfTp8626PqoakOvEiWi9PxsUpZ8j44a5GFtOIq8Nc6WWVBiFRn/6qdi1uQ==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.85.3.tgz",
|
||||
"integrity": "sha512-sVo6HepUmCcpdfozEf91lA0FjpLNNZYu/Zi9FiYiAQTK8pzATXDVTqhvdxpFrQn435p5eUTSbllvbH/KN+bnyA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@react-native/js-polyfills": "0.85.2",
|
||||
"@react-native/metro-babel-transformer": "0.85.2",
|
||||
"metro-config": "^0.84.0",
|
||||
"metro-runtime": "^0.84.0"
|
||||
"@react-native/js-polyfills": "0.85.3",
|
||||
"@react-native/metro-babel-transformer": "0.85.3",
|
||||
"metro-config": "^0.84.3",
|
||||
"metro-runtime": "^0.84.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-native/normalize-colors": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.85.2.tgz",
|
||||
"integrity": "sha512-svuOLtjbFGXDdHsriHXuND5FgHg7XlkOXCbH/8+X4t76YLH6qSTffSIQQrKLDL5mn4EFU+Oh/PNO0/FfpnTOTg==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.85.3.tgz",
|
||||
"integrity": "sha512-hj0PScZEhIbcOvQV5yMKX3ha4XEIOy/SVE1Rrpp0beW0dpNLOgSC7KDxGewmDnIHK9YdQUXGY9eMEfShUMIaZw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@react-native/typescript-config": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/typescript-config/-/typescript-config-0.85.2.tgz",
|
||||
"integrity": "sha512-kJAIGIQdYSf2llBq28EuEjgkK0ELaOLs9hzZunhwQUWICqUuad4yJtqL1JioFeFrkzN3NvdfgM7eBN4Se4Tq9w==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/typescript-config/-/typescript-config-0.85.3.tgz",
|
||||
"integrity": "sha512-F2Ign3lv/99R5HMDiaQE6NpRdopn87VuXgfHABSk0iwzouLFk1fcwaMkJUmjhnxrQagsUwxOWp4WTPwEvRRazQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@react-native/virtualized-lists": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.85.2.tgz",
|
||||
"integrity": "sha512-wmVKpAlcr+UB0L5SpbrV865EdleUP7I5+X+48e1aRsQK8q+wsTRBXeUwWVip/1l+HZwlZFeO8iOILJ16VRu0Cw==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.85.3.tgz",
|
||||
"integrity": "sha512-dsCjI//OIPEUJMyNHp4l7zNLVjCx7bcaRUceOCkU+IB17hkbtbGWvi7HjGFSzy7FJGmS/MOlcfpb72xXiy1Oig==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"invariant": "^2.2.4",
|
||||
@ -4611,7 +4611,7 @@
|
||||
"peerDependencies": {
|
||||
"@types/react": "^19.2.0",
|
||||
"react": "*",
|
||||
"react-native": "0.85.2"
|
||||
"react-native": "0.85.3"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/react": {
|
||||
@ -7952,9 +7952,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/detox": {
|
||||
"version": "20.51.0",
|
||||
"resolved": "https://registry.npmjs.org/detox/-/detox-20.51.0.tgz",
|
||||
"integrity": "sha512-epO3hZwxY/cN38vZoF5FSOAdDu2rnS4pvurPxpI5RZ7E5h++EiieZDC8yIV/uLjTxEnU5SoKIb6lfUMk57TrTA==",
|
||||
"version": "20.51.1",
|
||||
"resolved": "https://registry.npmjs.org/detox/-/detox-20.51.1.tgz",
|
||||
"integrity": "sha512-SKHM445qJDSaCO0vQHZnzfStpU1nQtBgWPjMZh/R+1q/ra9F2WyvtNSQcDTb2SPC/jN4FNWaj9ZUcJTkaLEB/g==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@ -15835,18 +15835,18 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-native": {
|
||||
"version": "0.85.2",
|
||||
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.85.2.tgz",
|
||||
"integrity": "sha512-GFWEPwLYirfj5X8gMtXOWtqX0cqUEURRHETZfFk37VCa4++izrKvGvv24anvuyulXV87NAhVkfNw93rLg3HByw==",
|
||||
"version": "0.85.3",
|
||||
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.85.3.tgz",
|
||||
"integrity": "sha512-HN/fGC+3nZVcDNcw7gfbM/DuqZAvI9Mz+/SxuhODaua4JY0BPzhfTzWXRyTR4mRgMHmShTPpH2PYMTxvZrsdZA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@react-native/assets-registry": "0.85.2",
|
||||
"@react-native/codegen": "0.85.2",
|
||||
"@react-native/community-cli-plugin": "0.85.2",
|
||||
"@react-native/gradle-plugin": "0.85.2",
|
||||
"@react-native/js-polyfills": "0.85.2",
|
||||
"@react-native/normalize-colors": "0.85.2",
|
||||
"@react-native/virtualized-lists": "0.85.2",
|
||||
"@react-native/assets-registry": "0.85.3",
|
||||
"@react-native/codegen": "0.85.3",
|
||||
"@react-native/community-cli-plugin": "0.85.3",
|
||||
"@react-native/gradle-plugin": "0.85.3",
|
||||
"@react-native/js-polyfills": "0.85.3",
|
||||
"@react-native/normalize-colors": "0.85.3",
|
||||
"@react-native/virtualized-lists": "0.85.3",
|
||||
"abort-controller": "^3.0.0",
|
||||
"anser": "^1.4.9",
|
||||
"ansi-regex": "^5.0.0",
|
||||
@ -15857,8 +15857,8 @@
|
||||
"hermes-compiler": "250829098.0.10",
|
||||
"invariant": "^2.2.4",
|
||||
"memoize-one": "^5.0.0",
|
||||
"metro-runtime": "^0.84.0",
|
||||
"metro-source-map": "^0.84.0",
|
||||
"metro-runtime": "^0.84.3",
|
||||
"metro-source-map": "^0.84.3",
|
||||
"nullthrows": "^1.1.1",
|
||||
"pretty-format": "^29.7.0",
|
||||
"promise": "^8.3.0",
|
||||
@ -15880,7 +15880,7 @@
|
||||
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@react-native/jest-preset": "0.85.2",
|
||||
"@react-native/jest-preset": "0.85.3",
|
||||
"@types/react": "^19.1.1",
|
||||
"react": "^19.2.3"
|
||||
},
|
||||
|
||||
22
package.json
22
package.json
@ -19,11 +19,11 @@
|
||||
"@babel/preset-env": "^7.26.0",
|
||||
"@babel/runtime": "^7.26.0",
|
||||
"@jest/reporters": "^27.5.1",
|
||||
"@react-native/eslint-config": "^0.85.2",
|
||||
"@react-native/jest-preset": "0.85.2",
|
||||
"@react-native/js-polyfills": "^0.85.2",
|
||||
"@react-native/metro-babel-transformer": "^0.85.2",
|
||||
"@react-native/typescript-config": "^0.85.2",
|
||||
"@react-native/eslint-config": "^0.85.3",
|
||||
"@react-native/jest-preset": "0.85.3",
|
||||
"@react-native/js-polyfills": "^0.85.3",
|
||||
"@react-native/metro-babel-transformer": "^0.85.3",
|
||||
"@react-native/typescript-config": "^0.85.3",
|
||||
"@testing-library/react-native": "^13.0.1",
|
||||
"@types/bip38": "^3.1.2",
|
||||
"@types/bs58check": "^2.1.0",
|
||||
@ -114,10 +114,10 @@
|
||||
"@react-native-vector-icons/ionicons": "13.1.1",
|
||||
"@react-native-vector-icons/material-design-icons": "13.1.1",
|
||||
"@react-native-vector-icons/material-icons": "13.1.1",
|
||||
"@react-native/babel-preset": "0.85.2",
|
||||
"@react-native/codegen": "0.85.2",
|
||||
"@react-native/gradle-plugin": "0.85.2",
|
||||
"@react-native/metro-config": "0.85.2",
|
||||
"@react-native/babel-preset": "0.85.3",
|
||||
"@react-native/codegen": "0.85.3",
|
||||
"@react-native/gradle-plugin": "0.85.3",
|
||||
"@react-native/metro-config": "0.85.3",
|
||||
"@react-navigation/devtools": "7.0.56",
|
||||
"@react-navigation/drawer": "7.9.9",
|
||||
"@react-navigation/native": "7.2.2",
|
||||
@ -142,7 +142,7 @@
|
||||
"crypto-browserify": "3.12.1",
|
||||
"crypto-js": "4.2.0",
|
||||
"dayjs": "1.11.20",
|
||||
"detox": "20.51.0",
|
||||
"detox": "20.51.1",
|
||||
"ecpair": "3.0.0",
|
||||
"electrum-client": "github:BlueWallet/rn-electrum-client#d9f511d",
|
||||
"electrum-mnemonic": "2.0.0",
|
||||
@ -154,7 +154,7 @@
|
||||
"qr": "0.5.5",
|
||||
"react": "19.2.3",
|
||||
"react-localization": "github:BlueWallet/react-localization#ae7969a",
|
||||
"react-native": "0.85.2",
|
||||
"react-native": "0.85.3",
|
||||
"react-native-biometrics": "3.0.1",
|
||||
"react-native-blue-crypto": "github:BlueWallet/react-native-blue-crypto#3cb5442",
|
||||
"react-native-camera-kit-no-google": "github:BlueWallet/react-native-camera-kit-no-google#0ed049a62da29cf304019363ec9d9ef3a73652e6",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user