From 0556df90b1ac96688e99adff3a1195e2c60fe1df Mon Sep 17 00:00:00 2001 From: lodev09 Date: Sun, 8 Feb 2026 10:03:13 +0800 Subject: [PATCH 01/10] feat: add Maestro E2E tests Replace build.yml with e2e.yml that builds and runs Maestro tests. Add main-sheet and child-sheets test flows. --- .github/workflows/{build.yml => e2e.yml} | 70 ++++++++++++++++++++++- .maestro/child-sheets.yaml | 71 ++++++++++++++++++++++++ .maestro/main-sheet.yaml | 44 +++++++++++++++ 3 files changed, 182 insertions(+), 3 deletions(-) rename .github/workflows/{build.yml => e2e.yml} (65%) create mode 100644 .maestro/child-sheets.yaml create mode 100644 .maestro/main-sheet.yaml diff --git a/.github/workflows/build.yml b/.github/workflows/e2e.yml similarity index 65% rename from .github/workflows/build.yml rename to .github/workflows/e2e.yml index 5a6ef766..1e5e0d9c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/e2e.yml @@ -1,14 +1,19 @@ -name: Build +name: E2E on: + workflow_dispatch: + pull_request: + branches: + - main push: branches: - main concurrency: group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: - build-android: + android: runs-on: ubuntu-latest env: @@ -66,7 +71,37 @@ jobs: run: | yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" - build-ios: + - name: Install Maestro + if: env.turbo_cache_hit != 1 + run: | + curl -Ls "https://get.maestro.mobile.dev" | bash + echo "$HOME/.maestro/bin" >> $GITHUB_PATH + + - name: Enable KVM + if: env.turbo_cache_hit != 1 + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Run Maestro tests + if: env.turbo_cache_hit != 1 + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 31 + arch: x86_64 + script: | + adb install example/bare/android/app/build/intermediates/apk/debug/app-debug.apk + maestro test .maestro/ --format junit --output report.xml + + - name: Upload test report + if: always() && env.turbo_cache_hit != 1 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: e2e-android-report + path: report.xml + + ios: runs-on: macos-latest env: @@ -132,3 +167,32 @@ jobs: - name: Build example for iOS run: | yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" + + - name: Install Maestro + if: env.turbo_cache_hit != 1 + uses: dniHze/maestro-test-action@v1 + + - name: Boot iOS Simulator + if: env.turbo_cache_hit != 1 + run: | + DEVICE=$(xcrun simctl list devices available -j | jq -r '[.devices[] | .[] | select(.name | contains("iPhone"))][0].udid') + xcrun simctl boot "$DEVICE" + + - name: Install app on Simulator + if: env.turbo_cache_hit != 1 + run: | + APP_PATH=$(find ~/Library/Developer/Xcode/DerivedData -name "TrueSheetExample.app" -path "*/Debug-iphonesimulator/*" | head -1) + xcrun simctl install booted "$APP_PATH" + + - name: Run Maestro tests + if: env.turbo_cache_hit != 1 + run: | + export PATH="$PATH":"$HOME/.maestro/bin" + maestro test .maestro/ --format junit --output report.xml + + - name: Upload test report + if: always() && env.turbo_cache_hit != 1 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: e2e-ios-report + path: report.xml diff --git a/.maestro/child-sheets.yaml b/.maestro/child-sheets.yaml new file mode 100644 index 00000000..1552ecc5 --- /dev/null +++ b/.maestro/child-sheets.yaml @@ -0,0 +1,71 @@ +appId: truesheet.example +--- + +- launchApp: + clearState: true + +- waitForAnimationToEnd: + timeout: 3000 + +# Expand main sheet +- swipe: + start: "50%, 90%" + end: "50%, 30%" + duration: 500 +- waitForAnimationToEnd + +# --- BasicSheet: header, footer, detent resize, dismiss --- + +- tapOn: "TrueSheet View" +- waitForAnimationToEnd + +- assertVisible: "Enter some text..." +- assertVisible: "FOOTER" +- assertVisible: "Add Content" + +# Resize detents +- tapOn: "Large" +- waitForAnimationToEnd +- tapOn: "Auto" +- waitForAnimationToEnd + +- tapOn: "Dismiss" +- waitForAnimationToEnd +- assertVisible: "True Sheet" + +# --- PromptSheet: scrollable, form inputs --- + +- scrollUntilVisible: + element: "Prompt" + direction: DOWN +- tapOn: "Prompt" +- waitForAnimationToEnd + +- assertVisible: "First name" +- assertVisible: "Last name" +- tapOn: "First name" +- inputText: "John" +- tapOn: "Last name" +- inputText: "Doe" + +- scrollUntilVisible: + element: "Dismiss" + direction: DOWN +- tapOn: "Dismiss" +- waitForAnimationToEnd +- assertVisible: "True Sheet" + +# --- FlatListSheet: scrollable content --- + +- tapOn: "FlatList" +- waitForAnimationToEnd + +- assertVisible: "Enter some text..." +- assertVisible: "Item #0" + +- scrollUntilVisible: + element: "Item #9" + direction: DOWN +- assertVisible: "Item #9" + + diff --git a/.maestro/main-sheet.yaml b/.maestro/main-sheet.yaml new file mode 100644 index 00000000..c0d04583 --- /dev/null +++ b/.maestro/main-sheet.yaml @@ -0,0 +1,44 @@ +appId: truesheet.example +--- + +- launchApp: + clearState: true + +- waitForAnimationToEnd: + timeout: 3000 + +# --- initialDetentIndex + dismissible=false --- + +# Main sheet auto-presents collapsed (header only) +- assertVisible: "True Sheet" +- assertVisible: "Enter some text..." + +# Try to swipe down — main sheet is not dismissible +- swipe: + start: "50%, 90%" + end: "50%, 99%" + duration: 300 +- waitForAnimationToEnd +- assertVisible: "True Sheet" + +# --- Expand and verify content --- + +- swipe: + start: "50%, 90%" + end: "50%, 30%" + duration: 500 +- waitForAnimationToEnd + +- assertVisible: "TrueSheet View" +- assertVisible: "Prompt" +- assertVisible: "ScrollView" +- assertVisible: "FlatList" + +# --- Expand to full, then dismiss --- + +- tapOn: "Expand" +- waitForAnimationToEnd +- tapOn: "Dismiss" +- waitForAnimationToEnd + +- assertNotVisible: "True Sheet" From 913733a538a2d9c111fdfa9c915125373b4f6e8b Mon Sep 17 00:00:00 2001 From: lodev09 Date: Sun, 8 Feb 2026 10:20:04 +0800 Subject: [PATCH 02/10] fix(ci): install Maestro via curl instead of third-party action --- .github/workflows/e2e.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 1e5e0d9c..e3ac8bca 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -170,7 +170,9 @@ jobs: - name: Install Maestro if: env.turbo_cache_hit != 1 - uses: dniHze/maestro-test-action@v1 + run: | + curl -Ls "https://get.maestro.mobile.dev" | bash + echo "$HOME/.maestro/bin" >> $GITHUB_PATH - name: Boot iOS Simulator if: env.turbo_cache_hit != 1 @@ -186,9 +188,7 @@ jobs: - name: Run Maestro tests if: env.turbo_cache_hit != 1 - run: | - export PATH="$PATH":"$HOME/.maestro/bin" - maestro test .maestro/ --format junit --output report.xml + run: maestro test .maestro/ --format junit --output report.xml - name: Upload test report if: always() && env.turbo_cache_hit != 1 From 3b2f4a21f71af2d11fb38c2c3daf811b41732fc9 Mon Sep 17 00:00:00 2001 From: lodev09 Date: Sun, 8 Feb 2026 10:39:05 +0800 Subject: [PATCH 03/10] fix(ci): build Release for E2E, fix Android arch to x86_64 --- .github/workflows/e2e.yml | 65 ++++++--------------------------------- 1 file changed, 9 insertions(+), 56 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index e3ac8bca..5f1a9852 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -16,9 +16,6 @@ jobs: android: runs-on: ubuntu-latest - env: - TURBO_CACHE_DIR: .turbo/android - steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 @@ -26,36 +23,17 @@ jobs: - name: Setup uses: ./.github/actions/setup - - name: Cache turborepo for Android - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 - with: - path: ${{ env.TURBO_CACHE_DIR }} - key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }} - restore-keys: | - ${{ runner.os }}-turborepo-android- - - - name: Check turborepo cache for Android - run: | - TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:android').cache.status") - - if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then - echo "turbo_cache_hit=1" >> $GITHUB_ENV - fi - - name: Install JDK - if: env.turbo_cache_hit != 1 uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: distribution: 'zulu' java-version: '17' - name: Finalize Android SDK - if: env.turbo_cache_hit != 1 run: | /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" - name: Cache Gradle - if: env.turbo_cache_hit != 1 uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 with: path: | @@ -69,33 +47,31 @@ jobs: env: JAVA_OPTS: "-XX:MaxHeapSize=6g" run: | - yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" + cd example/bare + npx react-native build-android --mode release --extra-params "--no-daemon --console=plain -PreactNativeArchitectures=x86_64" - name: Install Maestro - if: env.turbo_cache_hit != 1 run: | curl -Ls "https://get.maestro.mobile.dev" | bash echo "$HOME/.maestro/bin" >> $GITHUB_PATH - name: Enable KVM - if: env.turbo_cache_hit != 1 run: | echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules sudo udevadm control --reload-rules sudo udevadm trigger --name-match=kvm - name: Run Maestro tests - if: env.turbo_cache_hit != 1 uses: reactivecircus/android-emulator-runner@v2 with: api-level: 31 arch: x86_64 script: | - adb install example/bare/android/app/build/intermediates/apk/debug/app-debug.apk + adb install example/bare/android/app/build/outputs/apk/release/app-release.apk maestro test .maestro/ --format junit --output report.xml - name: Upload test report - if: always() && env.turbo_cache_hit != 1 + if: always() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: e2e-android-report @@ -106,7 +82,6 @@ jobs: env: XCODE_VERSION: latest-stable - TURBO_CACHE_DIR: .turbo/ios RCT_USE_RN_DEP: 1 RCT_USE_PREBUILT_RNCORE: 1 @@ -117,30 +92,12 @@ jobs: - name: Setup uses: ./.github/actions/setup - - name: Cache turborepo for iOS - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 - with: - path: ${{ env.TURBO_CACHE_DIR }} - key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }} - restore-keys: | - ${{ runner.os }}-turborepo-ios- - - - name: Check turborepo cache for iOS - run: | - TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status") - - if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then - echo "turbo_cache_hit=1" >> $GITHUB_ENV - fi - - name: Use appropriate Xcode version - if: env.turbo_cache_hit != 1 uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 with: xcode-version: ${{ env.XCODE_VERSION }} - name: Cache iOS build - if: env.turbo_cache_hit != 1 id: ios-cache uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 with: @@ -154,11 +111,10 @@ jobs: ${{ runner.os }}-ios- - name: Install ccache - if: env.turbo_cache_hit != 1 run: brew install ccache - name: Install cocoapods - if: env.turbo_cache_hit != 1 && steps.ios-cache.outputs.cache-hit != 'true' + if: steps.ios-cache.outputs.cache-hit != 'true' run: | cd example/bare bundle install @@ -166,32 +122,29 @@ jobs: - name: Build example for iOS run: | - yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" + cd example/bare + npx react-native build-ios --mode Release - name: Install Maestro - if: env.turbo_cache_hit != 1 run: | curl -Ls "https://get.maestro.mobile.dev" | bash echo "$HOME/.maestro/bin" >> $GITHUB_PATH - name: Boot iOS Simulator - if: env.turbo_cache_hit != 1 run: | DEVICE=$(xcrun simctl list devices available -j | jq -r '[.devices[] | .[] | select(.name | contains("iPhone"))][0].udid') xcrun simctl boot "$DEVICE" - name: Install app on Simulator - if: env.turbo_cache_hit != 1 run: | - APP_PATH=$(find ~/Library/Developer/Xcode/DerivedData -name "TrueSheetExample.app" -path "*/Debug-iphonesimulator/*" | head -1) + APP_PATH=$(find ~/Library/Developer/Xcode/DerivedData -name "TrueSheetExample.app" -path "*/Release-iphonesimulator/*" | head -1) xcrun simctl install booted "$APP_PATH" - name: Run Maestro tests - if: env.turbo_cache_hit != 1 run: maestro test .maestro/ --format junit --output report.xml - name: Upload test report - if: always() && env.turbo_cache_hit != 1 + if: always() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: e2e-ios-report From f96463d73e17b237f90b80b26398db06de271cd2 Mon Sep 17 00:00:00 2001 From: lodev09 Date: Sun, 8 Feb 2026 11:03:06 +0800 Subject: [PATCH 04/10] feat(e2e): switch to expo with fingerprint-based build caching --- .github/workflows/e2e.yml | 58 +---- .maestro/child-sheets.yaml | 2 +- .maestro/main-sheet.yaml | 2 +- example/expo/app.config.ts | 7 + example/expo/package.json | 1 + yarn.lock | 486 +++++++++++++++++++++++++++++++++++-- 6 files changed, 495 insertions(+), 61 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 5f1a9852..a1ba5422 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -12,6 +12,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: + contents: write + jobs: android: runs-on: ubuntu-latest @@ -33,22 +36,13 @@ jobs: run: | /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" - - name: Cache Gradle - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 - with: - path: | - ~/.gradle/wrapper - ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('example/bare/android/gradle/wrapper/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - - name: Build example for Android env: + GITHUB_TOKEN: ${{ github.token }} JAVA_OPTS: "-XX:MaxHeapSize=6g" run: | - cd example/bare - npx react-native build-android --mode release --extra-params "--no-daemon --console=plain -PreactNativeArchitectures=x86_64" + cd example/expo + npx expo run:android --no-install --no-bundler --variant release - name: Install Maestro run: | @@ -67,7 +61,7 @@ jobs: api-level: 31 arch: x86_64 script: | - adb install example/bare/android/app/build/outputs/apk/release/app-release.apk + adb install example/expo/android/app/build/outputs/apk/release/app-release.apk maestro test .maestro/ --format junit --output report.xml - name: Upload test report @@ -80,11 +74,6 @@ jobs: ios: runs-on: macos-latest - env: - XCODE_VERSION: latest-stable - RCT_USE_RN_DEP: 1 - RCT_USE_PREBUILT_RNCORE: 1 - steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 @@ -95,35 +84,14 @@ jobs: - name: Use appropriate Xcode version uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 with: - xcode-version: ${{ env.XCODE_VERSION }} - - - name: Cache iOS build - id: ios-cache - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 - with: - path: | - ~/Library/Caches/ccache - ~/Library/Developer/Xcode/DerivedData - example/bare/ios/Pods - key: ${{ runner.os }}-ios-${{ hashFiles('example/bare/ios/Podfile.lock') }}-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-ios-${{ hashFiles('example/bare/ios/Podfile.lock') }}- - ${{ runner.os }}-ios- - - - name: Install ccache - run: brew install ccache - - - name: Install cocoapods - if: steps.ios-cache.outputs.cache-hit != 'true' - run: | - cd example/bare - bundle install - bundle exec pod install --project-directory=ios + xcode-version: latest-stable - name: Build example for iOS + env: + GITHUB_TOKEN: ${{ github.token }} run: | - cd example/bare - npx react-native build-ios --mode Release + cd example/expo + npx expo run:ios --no-install --no-bundler --configuration Release - name: Install Maestro run: | @@ -137,7 +105,7 @@ jobs: - name: Install app on Simulator run: | - APP_PATH=$(find ~/Library/Developer/Xcode/DerivedData -name "TrueSheetExample.app" -path "*/Release-iphonesimulator/*" | head -1) + APP_PATH=$(find example/expo/ios/build -name "*.app" -path "*/Release-iphonesimulator/*" | head -1) xcrun simctl install booted "$APP_PATH" - name: Run Maestro tests diff --git a/.maestro/child-sheets.yaml b/.maestro/child-sheets.yaml index 1552ecc5..981a4003 100644 --- a/.maestro/child-sheets.yaml +++ b/.maestro/child-sheets.yaml @@ -1,4 +1,4 @@ -appId: truesheet.example +appId: com.lodev09.truesheet.expo --- - launchApp: diff --git a/.maestro/main-sheet.yaml b/.maestro/main-sheet.yaml index c0d04583..b157daac 100644 --- a/.maestro/main-sheet.yaml +++ b/.maestro/main-sheet.yaml @@ -1,4 +1,4 @@ -appId: truesheet.example +appId: com.lodev09.truesheet.expo --- - launchApp: diff --git a/example/expo/app.config.ts b/example/expo/app.config.ts index df5b724c..67e2159e 100644 --- a/example/expo/app.config.ts +++ b/example/expo/app.config.ts @@ -47,4 +47,11 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ experiments: { typedRoutes: true, }, + buildCacheProvider: { + plugin: '@eggl-js/expo-github-cache', + options: { + owner: 'lodev09', + repo: 'react-native-true-sheet', + }, + }, }); diff --git a/example/expo/package.json b/example/expo/package.json index f33417d1..af4e2239 100644 --- a/example/expo/package.json +++ b/example/expo/package.json @@ -38,6 +38,7 @@ "react-native-worklets": "^0.7.0" }, "devDependencies": { + "@eggl-js/expo-github-cache": "^0.2.1", "@types/react": "~19.1.10", "react-native-monorepo-config": "^0.1.9", "react-test-renderer": "19.1.0", diff --git a/yarn.lock b/yarn.lock index 9439bc46..158a45c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -287,6 +287,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:7.23.5": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" + dependencies: + "@babel/highlight": "npm:^7.23.4" + chalk: "npm:^2.4.2" + checksum: 10c0/a10e843595ddd9f97faa99917414813c06214f4d9205294013e20c70fbdf4f943760da37dec1d998bf3e6fc20fa2918a47c0e987a7e458663feb7698063ad7c6 + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.20.0, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.27.1": version: 7.27.1 resolution: "@babel/code-frame@npm:7.27.1" @@ -556,7 +566,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4": +"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.23.4": version: 7.25.9 resolution: "@babel/highlight@npm:7.25.9" dependencies: @@ -3330,6 +3340,31 @@ __metadata: languageName: node linkType: hard +"@eggl-js/expo-github-cache@npm:^0.2.1": + version: 0.2.1 + resolution: "@eggl-js/expo-github-cache@npm:0.2.1" + dependencies: + "@babel/code-frame": "npm:7.23.5" + "@expo/config": "npm:^12.0.10" + "@expo/spawn-async": "npm:^1.7.2" + "@octokit/rest": "npm:^22.0.0" + chalk: "npm:^5.6.2" + env-paths: "npm:^3.0.0" + figures: "npm:^6.1.0" + fs-extra: "npm:11.3.0" + log-symbols: "npm:7.0.1" + node-fetch: "npm:^3.3.2" + octokit: "npm:5.0.3" + ora: "npm:^8.2.0" + tar: "npm:^7.5.1" + tslib: "npm:2.8.1" + uuidv7: "npm:^1.0.2" + peerDependencies: + typescript: ^5.8.3 + checksum: 10c0/ea19ed427a2239675a61010b9a469e5704f3aed826264ede95cb4131acb8754153d15e7db8709518e2c24fe97981a84a07bc4c071e57951a5f02e17d00420c94 + languageName: node + linkType: hard + "@egjs/hammerjs@npm:^2.0.17": version: 2.0.17 resolution: "@egjs/hammerjs@npm:2.0.17" @@ -3487,6 +3522,7 @@ __metadata: version: 0.0.0-use.local resolution: "@example/expo@workspace:example/expo" dependencies: + "@eggl-js/expo-github-cache": "npm:^0.2.1" "@example/shared": "npm:*" "@expo/vector-icons": "npm:^15.0.3" "@gorhom/bottom-sheet": "npm:^5.2.8" @@ -3690,7 +3726,7 @@ __metadata: languageName: node linkType: hard -"@expo/config@npm:~12.0.12, @expo/config@npm:~12.0.13": +"@expo/config@npm:^12.0.10, @expo/config@npm:~12.0.12, @expo/config@npm:~12.0.13": version: 12.0.13 resolution: "@expo/config@npm:12.0.13" dependencies: @@ -4983,6 +5019,75 @@ __metadata: languageName: node linkType: hard +"@octokit/app@npm:^16.0.1": + version: 16.1.2 + resolution: "@octokit/app@npm:16.1.2" + dependencies: + "@octokit/auth-app": "npm:^8.1.2" + "@octokit/auth-unauthenticated": "npm:^7.0.3" + "@octokit/core": "npm:^7.0.6" + "@octokit/oauth-app": "npm:^8.0.3" + "@octokit/plugin-paginate-rest": "npm:^14.0.0" + "@octokit/types": "npm:^16.0.0" + "@octokit/webhooks": "npm:^14.0.0" + checksum: 10c0/64d5f2c5b126c3bac71d11d6394f2b1c2ffa3880496b492b0a175695b83066fcbe857d2c1e72540b646cf85c57b6162cd2a4cad9b05012ea8de17109f2928473 + languageName: node + linkType: hard + +"@octokit/auth-app@npm:^8.1.2": + version: 8.2.0 + resolution: "@octokit/auth-app@npm:8.2.0" + dependencies: + "@octokit/auth-oauth-app": "npm:^9.0.3" + "@octokit/auth-oauth-user": "npm:^6.0.2" + "@octokit/request": "npm:^10.0.6" + "@octokit/request-error": "npm:^7.0.2" + "@octokit/types": "npm:^16.0.0" + toad-cache: "npm:^3.7.0" + universal-github-app-jwt: "npm:^2.2.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/7f1b113c9f2ef4d0aac06ffb0b1930a256c6a8985744c709c36fe8c4565c5c184de742de4c4a52e4d9f25baef00c9b855732cfaeb81db8abe238d6c2ee54d6d6 + languageName: node + linkType: hard + +"@octokit/auth-oauth-app@npm:^9.0.2, @octokit/auth-oauth-app@npm:^9.0.3": + version: 9.0.3 + resolution: "@octokit/auth-oauth-app@npm:9.0.3" + dependencies: + "@octokit/auth-oauth-device": "npm:^8.0.3" + "@octokit/auth-oauth-user": "npm:^6.0.2" + "@octokit/request": "npm:^10.0.6" + "@octokit/types": "npm:^16.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/1b47dc2a6ea480c04cc3b03d03f4836916ef666047b639c78134d49bbf9fb112a0610021aa017abaa30d8a63a5e66117b3d2b3a4d3976d10153bd5efef54da8b + languageName: node + linkType: hard + +"@octokit/auth-oauth-device@npm:^8.0.3": + version: 8.0.3 + resolution: "@octokit/auth-oauth-device@npm:8.0.3" + dependencies: + "@octokit/oauth-methods": "npm:^6.0.2" + "@octokit/request": "npm:^10.0.6" + "@octokit/types": "npm:^16.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/2c43d131fbd0b60abef5f37e6168e31f5ec1b8361bac1d71c19499e1960e5e00957c54db9836d88754b467ad48c4e15f60409b0d66dc740468c49834e787e971 + languageName: node + linkType: hard + +"@octokit/auth-oauth-user@npm:^6.0.1, @octokit/auth-oauth-user@npm:^6.0.2": + version: 6.0.2 + resolution: "@octokit/auth-oauth-user@npm:6.0.2" + dependencies: + "@octokit/auth-oauth-device": "npm:^8.0.3" + "@octokit/oauth-methods": "npm:^6.0.2" + "@octokit/request": "npm:^10.0.6" + "@octokit/types": "npm:^16.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/7af66189e7c0b19c456462d571f61ac787d8464554375b12ded245d0d209a7a0f873f9189d7a3e9afef8aa59eb268c573f8e98b0ee683ebf0989625c20e2125a + languageName: node + linkType: hard + "@octokit/auth-token@npm:^6.0.0": version: 6.0.0 resolution: "@octokit/auth-token@npm:6.0.0" @@ -4990,7 +5095,17 @@ __metadata: languageName: node linkType: hard -"@octokit/core@npm:^7.0.2": +"@octokit/auth-unauthenticated@npm:^7.0.2, @octokit/auth-unauthenticated@npm:^7.0.3": + version: 7.0.3 + resolution: "@octokit/auth-unauthenticated@npm:7.0.3" + dependencies: + "@octokit/request-error": "npm:^7.0.2" + "@octokit/types": "npm:^16.0.0" + checksum: 10c0/7e20ec86314e881201d37283edbf83f4dd8210df74d6bab1273961e2f18064144ea970f18a678dda8cc4396a5128499efda45e81a848fc770836872049d6218f + languageName: node + linkType: hard + +"@octokit/core@npm:^7.0.2, @octokit/core@npm:^7.0.5, @octokit/core@npm:^7.0.6": version: 7.0.6 resolution: "@octokit/core@npm:7.0.6" dependencies: @@ -5026,6 +5141,48 @@ __metadata: languageName: node linkType: hard +"@octokit/oauth-app@npm:^8.0.1, @octokit/oauth-app@npm:^8.0.3": + version: 8.0.3 + resolution: "@octokit/oauth-app@npm:8.0.3" + dependencies: + "@octokit/auth-oauth-app": "npm:^9.0.2" + "@octokit/auth-oauth-user": "npm:^6.0.1" + "@octokit/auth-unauthenticated": "npm:^7.0.2" + "@octokit/core": "npm:^7.0.5" + "@octokit/oauth-authorization-url": "npm:^8.0.0" + "@octokit/oauth-methods": "npm:^6.0.1" + "@types/aws-lambda": "npm:^8.10.83" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/7bb064bfe21a6db45b57f8f5e5ecd533e802c0073d293b1c75abf264d9bc0fc952492757ea5af516207af4ec781cf793cb37e8cbbb3a8df691592bc25c364644 + languageName: node + linkType: hard + +"@octokit/oauth-authorization-url@npm:^8.0.0": + version: 8.0.0 + resolution: "@octokit/oauth-authorization-url@npm:8.0.0" + checksum: 10c0/ab4964bebd8d076f945a2f3210a8a0a221a408362569d9fc2f49875ad06e594365f5fd871dac08d820793f687bff50237f7acf40d9d39c5f9de7575b6f4bad93 + languageName: node + linkType: hard + +"@octokit/oauth-methods@npm:^6.0.1, @octokit/oauth-methods@npm:^6.0.2": + version: 6.0.2 + resolution: "@octokit/oauth-methods@npm:6.0.2" + dependencies: + "@octokit/oauth-authorization-url": "npm:^8.0.0" + "@octokit/request": "npm:^10.0.6" + "@octokit/request-error": "npm:^7.0.2" + "@octokit/types": "npm:^16.0.0" + checksum: 10c0/51d2f3218839ce37609e6e0adc274efcc198bdcae57ef3ecf3ada95f6f30dcc3052f6db34e4aa3a1bc94545d7025baa44058d5c044fdd6bdd83562eb9b8510c2 + languageName: node + linkType: hard + +"@octokit/openapi-types@npm:^25.1.0": + version: 25.1.0 + resolution: "@octokit/openapi-types@npm:25.1.0" + checksum: 10c0/b5b1293b11c6ec7112c7a2713f8507c2696d5db8902ce893b594080ab0329f5a6fcda1b5ac6fe6eed9425e897f4d03326c1bdf5c337e35d324e7b925e52a2661 + languageName: node + linkType: hard + "@octokit/openapi-types@npm:^26.0.0": version: 26.0.0 resolution: "@octokit/openapi-types@npm:26.0.0" @@ -5040,7 +5197,23 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:^13.0.1": +"@octokit/openapi-webhooks-types@npm:12.1.0": + version: 12.1.0 + resolution: "@octokit/openapi-webhooks-types@npm:12.1.0" + checksum: 10c0/0352ee895f849d16e8a33e8474fc87d7c0c117fcd72d3e03271232d82ed9f648ca252737e6453f3cd5919c9a2b92fb048327d306d761d4d750c2eee8eca3669f + languageName: node + linkType: hard + +"@octokit/plugin-paginate-graphql@npm:^6.0.0": + version: 6.0.0 + resolution: "@octokit/plugin-paginate-graphql@npm:6.0.0" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/354553741317a8a5977dffdf26ddeb767f3c67266a18a5d5e3e5c31fbc118f157ed726f43f998c1aad4bfa704312ce11a4f3e7b681e863245eac8afcac2c5861 + languageName: node + linkType: hard + +"@octokit/plugin-paginate-rest@npm:^13.0.0, @octokit/plugin-paginate-rest@npm:^13.0.1": version: 13.2.1 resolution: "@octokit/plugin-paginate-rest@npm:13.2.1" dependencies: @@ -5051,6 +5224,17 @@ __metadata: languageName: node linkType: hard +"@octokit/plugin-paginate-rest@npm:^14.0.0": + version: 14.0.0 + resolution: "@octokit/plugin-paginate-rest@npm:14.0.0" + dependencies: + "@octokit/types": "npm:^16.0.0" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/841d79d4ccfe18fc809a4a67529b75c1dcdda13399bf4bf5b48ce7559c8b4b2cd422e3204bad4cbdea31c0cf0943521067415268e5bcfc615a3b813e058cad6b + languageName: node + linkType: hard + "@octokit/plugin-request-log@npm:^6.0.0": version: 6.0.0 resolution: "@octokit/plugin-request-log@npm:6.0.0" @@ -5071,7 +5255,43 @@ __metadata: languageName: node linkType: hard -"@octokit/request-error@npm:^7.0.2": +"@octokit/plugin-rest-endpoint-methods@npm:^17.0.0": + version: 17.0.0 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:17.0.0" + dependencies: + "@octokit/types": "npm:^16.0.0" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/cf9984d7cf6a36ff7ff1b86078ae45fe246e3df10fcef0bccf20c8cfd27bf5e7d98dcb9cf5a7b56332b9c6fa30be28d159c2987d272a4758f77056903d94402f + languageName: node + linkType: hard + +"@octokit/plugin-retry@npm:^8.0.1": + version: 8.0.3 + resolution: "@octokit/plugin-retry@npm:8.0.3" + dependencies: + "@octokit/request-error": "npm:^7.0.2" + "@octokit/types": "npm:^16.0.0" + bottleneck: "npm:^2.15.3" + peerDependencies: + "@octokit/core": ">=7" + checksum: 10c0/24d35d85f750f9e3e52f63b8ddd8fc8aa7bdd946c77b9ea4d6894d026c5c2c69109e8de3880a9970c906f624eb777c7d0c0a2072e6d41dadc7b36cce104b978c + languageName: node + linkType: hard + +"@octokit/plugin-throttling@npm:^11.0.1": + version: 11.0.3 + resolution: "@octokit/plugin-throttling@npm:11.0.3" + dependencies: + "@octokit/types": "npm:^16.0.0" + bottleneck: "npm:^2.15.3" + peerDependencies: + "@octokit/core": ^7.0.0 + checksum: 10c0/5c7cc386962b6d2881ac769f57b28c28622d18e3dbe2f7600dfdfda0a98b56a95f69d831902b647ad023574921cc801b78aa54563fdb3f465ac8c883aaf6cbe3 + languageName: node + linkType: hard + +"@octokit/request-error@npm:^7.0.0, @octokit/request-error@npm:^7.0.2": version: 7.1.0 resolution: "@octokit/request-error@npm:7.1.0" dependencies: @@ -5105,6 +5325,27 @@ __metadata: languageName: node linkType: hard +"@octokit/rest@npm:^22.0.0": + version: 22.0.1 + resolution: "@octokit/rest@npm:22.0.1" + dependencies: + "@octokit/core": "npm:^7.0.6" + "@octokit/plugin-paginate-rest": "npm:^14.0.0" + "@octokit/plugin-request-log": "npm:^6.0.0" + "@octokit/plugin-rest-endpoint-methods": "npm:^17.0.0" + checksum: 10c0/f3abd84e887cc837973214ce70720a9bba53f5575f40601c6122aa25206e9055d859c0388437f0a137f6cd0e4ff405e1b46b903475b0db32a17bada0c6513d5b + languageName: node + linkType: hard + +"@octokit/types@npm:^14.0.0": + version: 14.1.0 + resolution: "@octokit/types@npm:14.1.0" + dependencies: + "@octokit/openapi-types": "npm:^25.1.0" + checksum: 10c0/4640a6c0a95386be4d015b96c3a906756ea657f7df3c6e706d19fea6bf3ac44fd2991c8c817afe1e670ff9042b85b0e06f7fd373f6bbd47da64208701bb46d5b + languageName: node + linkType: hard + "@octokit/types@npm:^15.0.1": version: 15.0.2 resolution: "@octokit/types@npm:15.0.2" @@ -5123,6 +5364,24 @@ __metadata: languageName: node linkType: hard +"@octokit/webhooks-methods@npm:^6.0.0": + version: 6.0.0 + resolution: "@octokit/webhooks-methods@npm:6.0.0" + checksum: 10c0/7f10740e838d65c78e859bb041499cca69df7831e9f633ee70a46ca8e53d0844f2c84500df204453d171c8c3c0f8eb8b68716ee1d5c95e3cf5d09690f32e13e1 + languageName: node + linkType: hard + +"@octokit/webhooks@npm:^14.0.0": + version: 14.2.0 + resolution: "@octokit/webhooks@npm:14.2.0" + dependencies: + "@octokit/openapi-webhooks-types": "npm:12.1.0" + "@octokit/request-error": "npm:^7.0.0" + "@octokit/webhooks-methods": "npm:^6.0.0" + checksum: 10c0/0d0dcbd90d752aab9a390fba01237009c8fd3d58d7f39d9f46446e9de27bb83a8fcee07a3e3ed39e5020f945d76f1f7cbef2285d8ccff2bfa03dfd6eb03d1182 + languageName: node + linkType: hard + "@opentelemetry/api@npm:1.9.0": version: 1.9.0 resolution: "@opentelemetry/api@npm:1.9.0" @@ -6629,6 +6888,13 @@ __metadata: languageName: node linkType: hard +"@types/aws-lambda@npm:^8.10.83": + version: 8.10.160 + resolution: "@types/aws-lambda@npm:8.10.160" + checksum: 10c0/0f524cbcab95108b9ef4876a0458fec11b948baa43741874bc5f10e6ba66bdde5245185adc33838fc057c6a2610a23ae610d3059ae90961eb8fdd126c042ebea + languageName: node + linkType: hard + "@types/babel__core@npm:^7, @types/babel__core@npm:^7.1.14": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -8505,6 +8771,13 @@ __metadata: languageName: node linkType: hard +"bottleneck@npm:^2.15.3": + version: 2.19.5 + resolution: "bottleneck@npm:2.19.5" + checksum: 10c0/b0f72e45b2e0f56a21ba720183f16bef8e693452fb0495d997fa354e42904353a94bd8fd429868e6751bc85e54b6755190519eed5a0ae0a94a5185209ae7c6d0 + languageName: node + linkType: hard + "boxen@npm:^6.2.1": version: 6.2.1 resolution: "boxen@npm:6.2.1" @@ -9074,7 +9347,7 @@ __metadata: languageName: node linkType: hard -"cli-spinners@npm:^2.0.0, cli-spinners@npm:^2.5.0": +"cli-spinners@npm:^2.0.0, cli-spinners@npm:^2.5.0, cli-spinners@npm:^2.9.2": version: 2.9.2 resolution: "cli-spinners@npm:2.9.2" checksum: 10c0/907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 @@ -10047,6 +10320,13 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 10c0/20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b + languageName: node + linkType: hard + "data-uri-to-buffer@npm:^6.0.2": version: 6.0.2 resolution: "data-uri-to-buffer@npm:6.0.2" @@ -10657,6 +10937,13 @@ __metadata: languageName: node linkType: hard +"emoji-regex@npm:^10.3.0": + version: 10.6.0 + resolution: "emoji-regex@npm:10.6.0" + checksum: 10c0/1e4aa097bb007301c3b4b1913879ae27327fdc48e93eeefefe3b87e495eb33c5af155300be951b4349ff6ac084f4403dc9eff970acba7c1c572d89396a9a32d7 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -10769,6 +11056,13 @@ __metadata: languageName: node linkType: hard +"env-paths@npm:^3.0.0": + version: 3.0.0 + resolution: "env-paths@npm:3.0.0" + checksum: 10c0/76dec878cee47f841103bacd7fae03283af16f0702dad65102ef0a556f310b98a377885e0f32943831eb08b5ab37842a323d02529f3dfd5d0a40ca71b01b435f + languageName: node + linkType: hard + "envinfo@npm:^7.13.0": version: 7.21.0 resolution: "envinfo@npm:7.21.0" @@ -12053,6 +12347,16 @@ __metadata: languageName: node linkType: hard +"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": + version: 3.2.0 + resolution: "fetch-blob@npm:3.2.0" + dependencies: + node-domexception: "npm:^1.0.0" + web-streams-polyfill: "npm:^3.0.3" + checksum: 10c0/60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69 + languageName: node + linkType: hard + "figures@npm:^3.2.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -12062,6 +12366,15 @@ __metadata: languageName: node linkType: hard +"figures@npm:^6.1.0": + version: 6.1.0 + resolution: "figures@npm:6.1.0" + dependencies: + is-unicode-supported: "npm:^2.0.0" + checksum: 10c0/9159df4264d62ef447a3931537de92f5012210cf5135c35c010df50a2169377581378149abfe1eb238bd6acbba1c0d547b1f18e0af6eee49e30363cedaffcfe4 + languageName: node + linkType: hard + "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -12263,6 +12576,15 @@ __metadata: languageName: node linkType: hard +"formdata-polyfill@npm:^4.0.10": + version: 4.0.10 + resolution: "formdata-polyfill@npm:4.0.10" + dependencies: + fetch-blob: "npm:^3.1.2" + checksum: 10c0/5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6 + languageName: node + linkType: hard + "forwarded@npm:0.2.0": version: 0.2.0 resolution: "forwarded@npm:0.2.0" @@ -12291,6 +12613,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:11.3.0": + version: 11.3.0 + resolution: "fs-extra@npm:11.3.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/5f95e996186ff45463059feb115a22fb048bdaf7e487ecee8a8646c78ed8fdca63630e3077d4c16ce677051f5e60d3355a06f3cd61f3ca43f48cc58822a44d0a + languageName: node + linkType: hard + "fs-extra@npm:^10.1.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" @@ -12408,7 +12741,7 @@ __metadata: languageName: node linkType: hard -"get-east-asian-width@npm:^1.3.0": +"get-east-asian-width@npm:^1.0.0, get-east-asian-width@npm:^1.3.0": version: 1.4.0 resolution: "get-east-asian-width@npm:1.4.0" checksum: 10c0/4e481d418e5a32061c36fbb90d1b225a254cc5b2df5f0b25da215dcd335a3c111f0c2023ffda43140727a9cafb62dac41d022da82c08f31083ee89f714ee3b83 @@ -14187,6 +14520,13 @@ __metadata: languageName: node linkType: hard +"is-unicode-supported@npm:^1.3.0": + version: 1.3.0 + resolution: "is-unicode-supported@npm:1.3.0" + checksum: 10c0/b8674ea95d869f6faabddc6a484767207058b91aea0250803cbf1221345cb0c56f466d4ecea375dc77f6633d248d33c47bd296fb8f4cdba0b4edba8917e83d8a + languageName: node + linkType: hard + "is-unicode-supported@npm:^2.0.0, is-unicode-supported@npm:^2.1.0": version: 2.1.0 resolution: "is-unicode-supported@npm:2.1.0" @@ -15442,6 +15782,16 @@ __metadata: languageName: node linkType: hard +"log-symbols@npm:7.0.1, log-symbols@npm:^7.0.1": + version: 7.0.1 + resolution: "log-symbols@npm:7.0.1" + dependencies: + is-unicode-supported: "npm:^2.0.0" + yoctocolors: "npm:^2.1.1" + checksum: 10c0/71d30f9a44b8604b14df5e7c9b579d739997253db7385339d493ece41ee2cc74c1f96c5b4c0b2c1e0829b05348d4f287e68faab495b7a094a80f51351c816075 + languageName: node + linkType: hard + "log-symbols@npm:^2.2.0": version: 2.2.0 resolution: "log-symbols@npm:2.2.0" @@ -15461,13 +15811,13 @@ __metadata: languageName: node linkType: hard -"log-symbols@npm:^7.0.1": - version: 7.0.1 - resolution: "log-symbols@npm:7.0.1" +"log-symbols@npm:^6.0.0": + version: 6.0.0 + resolution: "log-symbols@npm:6.0.0" dependencies: - is-unicode-supported: "npm:^2.0.0" - yoctocolors: "npm:^2.1.1" - checksum: 10c0/71d30f9a44b8604b14df5e7c9b579d739997253db7385339d493ece41ee2cc74c1f96c5b4c0b2c1e0829b05348d4f287e68faab495b7a094a80f51351c816075 + chalk: "npm:^5.3.0" + is-unicode-supported: "npm:^1.3.0" + checksum: 10c0/36636cacedba8f067d2deb4aad44e91a89d9efb3ead27e1846e7b82c9a10ea2e3a7bd6ce28a7ca616bebc60954ff25c67b0f92d20a6a746bb3cc52c3701891f6 languageName: node linkType: hard @@ -17122,6 +17472,13 @@ __metadata: languageName: node linkType: hard +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b + languageName: node + linkType: hard + "node-emoji@npm:^2.1.0": version: 2.2.0 resolution: "node-emoji@npm:2.2.0" @@ -17155,6 +17512,17 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch@npm:3.3.2" + dependencies: + data-uri-to-buffer: "npm:^4.0.0" + fetch-blob: "npm:^3.1.4" + formdata-polyfill: "npm:^4.0.10" + checksum: 10c0/f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538 + languageName: node + linkType: hard + "node-forge@npm:^1, node-forge@npm:^1.2.1, node-forge@npm:^1.3.1": version: 1.3.3 resolution: "node-forge@npm:1.3.3" @@ -17413,6 +17781,25 @@ __metadata: languageName: node linkType: hard +"octokit@npm:5.0.3": + version: 5.0.3 + resolution: "octokit@npm:5.0.3" + dependencies: + "@octokit/app": "npm:^16.0.1" + "@octokit/core": "npm:^7.0.2" + "@octokit/oauth-app": "npm:^8.0.1" + "@octokit/plugin-paginate-graphql": "npm:^6.0.0" + "@octokit/plugin-paginate-rest": "npm:^13.0.0" + "@octokit/plugin-rest-endpoint-methods": "npm:^16.0.0" + "@octokit/plugin-retry": "npm:^8.0.1" + "@octokit/plugin-throttling": "npm:^11.0.1" + "@octokit/request-error": "npm:^7.0.0" + "@octokit/types": "npm:^14.0.0" + "@octokit/webhooks": "npm:^14.0.0" + checksum: 10c0/58b4ce639a45771a4d9244d46e3e76fb5e43707e70a2db6a3cb8d0d28c6e91a8f7cc43b8cb042d902ea1876e744ef878638ba00fb998a60767c389e9d9300bbe + languageName: node + linkType: hard + "ohash@npm:^2.0.11": version: 2.0.11 resolution: "ohash@npm:2.0.11" @@ -17603,6 +17990,23 @@ __metadata: languageName: node linkType: hard +"ora@npm:^8.2.0": + version: 8.2.0 + resolution: "ora@npm:8.2.0" + dependencies: + chalk: "npm:^5.3.0" + cli-cursor: "npm:^5.0.0" + cli-spinners: "npm:^2.9.2" + is-interactive: "npm:^2.0.0" + is-unicode-supported: "npm:^2.0.0" + log-symbols: "npm:^6.0.0" + stdin-discarder: "npm:^0.2.2" + string-width: "npm:^7.2.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/7d9291255db22e293ea164f520b6042a3e906576ab06c9cf408bf9ef5664ba0a9f3bd258baa4ada058cfcc2163ef9b6696d51237a866682ce33295349ba02c3a + languageName: node + linkType: hard + "os-name@npm:6.1.0": version: 6.1.0 resolution: "os-name@npm:6.1.0" @@ -21441,6 +21845,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^7.2.0": + version: 7.2.0 + resolution: "string-width@npm:7.2.0" + dependencies: + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9 + languageName: node + linkType: hard + "string-width@npm:^8.1.0": version: 8.1.0 resolution: "string-width@npm:8.1.0" @@ -21802,6 +22217,19 @@ __metadata: languageName: node linkType: hard +"tar@npm:^7.5.1": + version: 7.5.7 + resolution: "tar@npm:7.5.7" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10c0/51f261afc437e1112c3e7919478d6176ea83f7f7727864d8c2cce10f0b03a631d1911644a567348c3063c45abdae39718ba97abb073d22aa3538b9a53ae1e31c + languageName: node + linkType: hard + "tar@npm:^7.5.2": version: 7.5.2 resolution: "tar@npm:7.5.2" @@ -21995,6 +22423,13 @@ __metadata: languageName: node linkType: hard +"toad-cache@npm:^3.7.0": + version: 3.7.0 + resolution: "toad-cache@npm:3.7.0" + checksum: 10c0/7dae2782ee20b22c9798bb8b71dec7ec6a0091021d2ea9dd6e8afccab6b65b358fdba49a02209fac574499702e2c000660721516c87c2538d1b2c0ba03e8c0c3 + languageName: node + linkType: hard + "toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" @@ -22055,7 +22490,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.6.0": +"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.6.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 @@ -22521,6 +22956,13 @@ __metadata: languageName: node linkType: hard +"universal-github-app-jwt@npm:^2.2.0": + version: 2.2.2 + resolution: "universal-github-app-jwt@npm:2.2.2" + checksum: 10c0/7ae5f031fb89c01a4407459b764c5e6341d725d436e1ceec161f9b754dd4883d9704cc8de53d5b6314b7e1bef8dbc7561799fc23001e706f213d468c17026fb6 + languageName: node + linkType: hard + "universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": version: 7.0.3 resolution: "universal-user-agent@npm:7.0.3" @@ -22713,6 +23155,15 @@ __metadata: languageName: node linkType: hard +"uuidv7@npm:^1.0.2": + version: 1.1.0 + resolution: "uuidv7@npm:1.1.0" + bin: + uuidv7: cli.js + checksum: 10c0/eceeb6cd682e323f14778cda6f221ebfafc339cd8bf8032a905b367cec547bffd5c717a60e956891525066c9a45f44fbe7688c269d1f95773ab940a212f1319c + languageName: node + linkType: hard + "v8-to-istanbul@npm:^9.0.1": version: 9.3.0 resolution: "v8-to-istanbul@npm:9.3.0" @@ -22862,6 +23313,13 @@ __metadata: languageName: node linkType: hard +"web-streams-polyfill@npm:^3.0.3": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 10c0/64e855c47f6c8330b5436147db1c75cb7e7474d924166800e8e2aab5eb6c76aac4981a84261dd2982b3e754490900b99791c80ae1407a9fa0dcff74f82ea3a7f + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" From 957b173a15d9eed8f0abd6c76ae797e2a144f339 Mon Sep 17 00:00:00 2001 From: lodev09 Date: Sun, 8 Feb 2026 11:04:23 +0800 Subject: [PATCH 05/10] chore: remove turbo --- package.json | 1 - turbo.json | 44 -------------------------------- yarn.lock | 72 ---------------------------------------------------- 3 files changed, 117 deletions(-) delete mode 100644 turbo.json diff --git a/package.json b/package.json index cba254f0..e15ca113 100644 --- a/package.json +++ b/package.json @@ -112,7 +112,6 @@ "react-native-worklets": "^0.7.0", "react-test-renderer": "19.1.1", "release-it": "^19.0.4", - "turbo": "^2.5.6", "typescript": "^5.9.2" }, "resolutions": { diff --git a/turbo.json b/turbo.json deleted file mode 100644 index 37a8dc71..00000000 --- a/turbo.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "$schema": "https://turbo.build/schema.json", - "globalDependencies": [".nvmrc", ".yarnrc.yml"], - "globalEnv": ["NODE_ENV"], - "tasks": { - "build:android": { - "env": ["ANDROID_HOME", "ORG_GRADLE_PROJECT_newArchEnabled"], - "inputs": [ - "package.json", - "android", - "!android/build", - "common", - "src/*.ts", - "src/*.tsx", - "example/bare/package.json", - "example/bare/android", - "!example/bare/android/.gradle", - "!example/bare/android/build", - "!example/bare/android/app/build" - ], - "outputs": [] - }, - "build:ios": { - "env": [ - "RCT_NEW_ARCH_ENABLED", - "RCT_USE_RN_DEP", - "RCT_USE_PREBUILT_RNCORE" - ], - "inputs": [ - "package.json", - "*.podspec", - "ios", - "common", - "src/*.ts", - "src/*.tsx", - "example/bare/package.json", - "example/bare/ios", - "!example/bare/ios/build", - "!example/bare/ios/Pods" - ], - "outputs": [] - } - } -} diff --git a/yarn.lock b/yarn.lock index 158a45c4..fed14aa7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4870,7 +4870,6 @@ __metadata: react-native-worklets: "npm:^0.7.0" react-test-renderer: "npm:19.1.1" release-it: "npm:^19.0.4" - turbo: "npm:^2.5.6" typescript: "npm:^5.9.2" peerDependencies: "@gorhom/bottom-sheet": ">=5" @@ -22497,77 +22496,6 @@ __metadata: languageName: node linkType: hard -"turbo-darwin-64@npm:2.6.3": - version: 2.6.3 - resolution: "turbo-darwin-64@npm:2.6.3" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"turbo-darwin-arm64@npm:2.6.3": - version: 2.6.3 - resolution: "turbo-darwin-arm64@npm:2.6.3" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"turbo-linux-64@npm:2.6.3": - version: 2.6.3 - resolution: "turbo-linux-64@npm:2.6.3" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"turbo-linux-arm64@npm:2.6.3": - version: 2.6.3 - resolution: "turbo-linux-arm64@npm:2.6.3" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"turbo-windows-64@npm:2.6.3": - version: 2.6.3 - resolution: "turbo-windows-64@npm:2.6.3" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"turbo-windows-arm64@npm:2.6.3": - version: 2.6.3 - resolution: "turbo-windows-arm64@npm:2.6.3" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"turbo@npm:^2.5.6": - version: 2.6.3 - resolution: "turbo@npm:2.6.3" - dependencies: - turbo-darwin-64: "npm:2.6.3" - turbo-darwin-arm64: "npm:2.6.3" - turbo-linux-64: "npm:2.6.3" - turbo-linux-arm64: "npm:2.6.3" - turbo-windows-64: "npm:2.6.3" - turbo-windows-arm64: "npm:2.6.3" - dependenciesMeta: - turbo-darwin-64: - optional: true - turbo-darwin-arm64: - optional: true - turbo-linux-64: - optional: true - turbo-linux-arm64: - optional: true - turbo-windows-64: - optional: true - turbo-windows-arm64: - optional: true - bin: - turbo: bin/turbo - checksum: 10c0/3dab627a4e0f855c2ea2cc5e7d3d7abed01a7abace1197983c55e0563c413dfe45c80c121e5fa25d2cca013d895bde457d5cdf3a3d47000dc7d432a4cb68e78f - languageName: node - linkType: hard - "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" From 43d45bb378d432bd249e959ce691f2dc00e8046d Mon Sep 17 00:00:00 2001 From: lodev09 Date: Sun, 8 Feb 2026 11:06:43 +0800 Subject: [PATCH 06/10] fix(ios): use parameterless updateState for RN < 0.82 --- ios/TrueSheetView.mm | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/ios/TrueSheetView.mm b/ios/TrueSheetView.mm index 0e934f04..c042f23d 100644 --- a/ios/TrueSheetView.mm +++ b/ios/TrueSheetView.mm @@ -290,16 +290,11 @@ - (void)updateStateWithSize:(CGSize)size { stateData.containerWidth = static_cast(size.width); stateData.containerHeight = static_cast(size.height); - // RN 0.82+ processes state updates in the same layout pass (synchronous). - // TODO: Once stable, we can drop native layout constraints in favor of synchronous Yoga layout. - auto updateMode = #if REACT_NATIVE_VERSION_MINOR >= 82 - facebook::react::EventQueue::UpdateMode::unstable_Immediate; + _state->updateState(std::move(stateData), facebook::react::EventQueue::UpdateMode::unstable_Immediate); #else - facebook::react::EventQueue::UpdateMode::Asynchronous; + _state->updateState(std::move(stateData)); #endif - - _state->updateState(std::move(stateData), updateMode); } - (void)finalizeUpdates:(RNComponentViewUpdateMask)updateMask { From b3461b9c6842602b86fab2d98d60510d7102ada1 Mon Sep 17 00:00:00 2001 From: lodev09 Date: Sun, 8 Feb 2026 11:18:12 +0800 Subject: [PATCH 07/10] fix(e2e): run android build inside emulator runner --- .github/workflows/e2e.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a1ba5422..f6153a05 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -36,14 +36,6 @@ jobs: run: | /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" - - name: Build example for Android - env: - GITHUB_TOKEN: ${{ github.token }} - JAVA_OPTS: "-XX:MaxHeapSize=6g" - run: | - cd example/expo - npx expo run:android --no-install --no-bundler --variant release - - name: Install Maestro run: | curl -Ls "https://get.maestro.mobile.dev" | bash @@ -55,12 +47,18 @@ jobs: sudo udevadm control --reload-rules sudo udevadm trigger --name-match=kvm - - name: Run Maestro tests + - name: Build and run Maestro tests uses: reactivecircus/android-emulator-runner@v2 + env: + GITHUB_TOKEN: ${{ github.token }} + JAVA_OPTS: "-XX:MaxHeapSize=6g" with: api-level: 31 arch: x86_64 script: | + cd example/expo + npx expo run:android --no-install --no-bundler --variant release + cd ../.. adb install example/expo/android/app/build/outputs/apk/release/app-release.apk maestro test .maestro/ --format junit --output report.xml From e060723a9ec91738ccba766259b97b8d23f6bead Mon Sep 17 00:00:00 2001 From: lodev09 Date: Sun, 8 Feb 2026 23:17:18 +0800 Subject: [PATCH 08/10] fix(ci): explicit prebuild and fix android emulator script --- .github/workflows/e2e.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index f6153a05..b33e03d2 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -56,9 +56,7 @@ jobs: api-level: 31 arch: x86_64 script: | - cd example/expo - npx expo run:android --no-install --no-bundler --variant release - cd ../.. + cd example/expo && npx expo prebuild --platform android --clean && npx expo run:android --no-install --no-bundler --variant release && cd ../.. adb install example/expo/android/app/build/outputs/apk/release/app-release.apk maestro test .maestro/ --format junit --output report.xml @@ -89,6 +87,7 @@ jobs: GITHUB_TOKEN: ${{ github.token }} run: | cd example/expo + npx expo prebuild --platform ios --clean npx expo run:ios --no-install --no-bundler --configuration Release - name: Install Maestro From 8d4ee1da8b72f28e5ee8dc738642650ec57b46d5 Mon Sep 17 00:00:00 2001 From: lodev09 Date: Mon, 9 Feb 2026 00:11:39 +0800 Subject: [PATCH 09/10] revert: restore build.yml and turbo, remove e2e.yml --- .github/workflows/build.yml | 134 +++++++++ .github/workflows/e2e.yml | 116 -------- example/expo/app.config.ts | 7 - example/expo/package.json | 1 - package.json | 1 + turbo.json | 44 +++ yarn.lock | 558 ++++++------------------------------ 7 files changed, 265 insertions(+), 596 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/e2e.yml create mode 100644 turbo.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..5a6ef766 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,134 @@ +name: Build +on: + push: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + +jobs: + build-android: + runs-on: ubuntu-latest + + env: + TURBO_CACHE_DIR: .turbo/android + + steps: + - name: Checkout + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + + - name: Setup + uses: ./.github/actions/setup + + - name: Cache turborepo for Android + uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + path: ${{ env.TURBO_CACHE_DIR }} + key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-turborepo-android- + + - name: Check turborepo cache for Android + run: | + TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:android').cache.status") + + if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then + echo "turbo_cache_hit=1" >> $GITHUB_ENV + fi + + - name: Install JDK + if: env.turbo_cache_hit != 1 + uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 + with: + distribution: 'zulu' + java-version: '17' + + - name: Finalize Android SDK + if: env.turbo_cache_hit != 1 + run: | + /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" + + - name: Cache Gradle + if: env.turbo_cache_hit != 1 + uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + path: | + ~/.gradle/wrapper + ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('example/bare/android/gradle/wrapper/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Build example for Android + env: + JAVA_OPTS: "-XX:MaxHeapSize=6g" + run: | + yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" + + build-ios: + runs-on: macos-latest + + env: + XCODE_VERSION: latest-stable + TURBO_CACHE_DIR: .turbo/ios + RCT_USE_RN_DEP: 1 + RCT_USE_PREBUILT_RNCORE: 1 + + steps: + - name: Checkout + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + + - name: Setup + uses: ./.github/actions/setup + + - name: Cache turborepo for iOS + uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + path: ${{ env.TURBO_CACHE_DIR }} + key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-turborepo-ios- + + - name: Check turborepo cache for iOS + run: | + TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status") + + if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then + echo "turbo_cache_hit=1" >> $GITHUB_ENV + fi + + - name: Use appropriate Xcode version + if: env.turbo_cache_hit != 1 + uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 + with: + xcode-version: ${{ env.XCODE_VERSION }} + + - name: Cache iOS build + if: env.turbo_cache_hit != 1 + id: ios-cache + uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + path: | + ~/Library/Caches/ccache + ~/Library/Developer/Xcode/DerivedData + example/bare/ios/Pods + key: ${{ runner.os }}-ios-${{ hashFiles('example/bare/ios/Podfile.lock') }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-ios-${{ hashFiles('example/bare/ios/Podfile.lock') }}- + ${{ runner.os }}-ios- + + - name: Install ccache + if: env.turbo_cache_hit != 1 + run: brew install ccache + + - name: Install cocoapods + if: env.turbo_cache_hit != 1 && steps.ios-cache.outputs.cache-hit != 'true' + run: | + cd example/bare + bundle install + bundle exec pod install --project-directory=ios + + - name: Build example for iOS + run: | + yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml deleted file mode 100644 index b33e03d2..00000000 --- a/.github/workflows/e2e.yml +++ /dev/null @@ -1,116 +0,0 @@ -name: E2E -on: - workflow_dispatch: - pull_request: - branches: - - main - push: - branches: - - main - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: write - -jobs: - android: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - - name: Setup - uses: ./.github/actions/setup - - - name: Install JDK - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 - with: - distribution: 'zulu' - java-version: '17' - - - name: Finalize Android SDK - run: | - /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" - - - name: Install Maestro - run: | - curl -Ls "https://get.maestro.mobile.dev" | bash - echo "$HOME/.maestro/bin" >> $GITHUB_PATH - - - name: Enable KVM - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - - - name: Build and run Maestro tests - uses: reactivecircus/android-emulator-runner@v2 - env: - GITHUB_TOKEN: ${{ github.token }} - JAVA_OPTS: "-XX:MaxHeapSize=6g" - with: - api-level: 31 - arch: x86_64 - script: | - cd example/expo && npx expo prebuild --platform android --clean && npx expo run:android --no-install --no-bundler --variant release && cd ../.. - adb install example/expo/android/app/build/outputs/apk/release/app-release.apk - maestro test .maestro/ --format junit --output report.xml - - - name: Upload test report - if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: e2e-android-report - path: report.xml - - ios: - runs-on: macos-latest - - steps: - - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - - name: Setup - uses: ./.github/actions/setup - - - name: Use appropriate Xcode version - uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 - with: - xcode-version: latest-stable - - - name: Build example for iOS - env: - GITHUB_TOKEN: ${{ github.token }} - run: | - cd example/expo - npx expo prebuild --platform ios --clean - npx expo run:ios --no-install --no-bundler --configuration Release - - - name: Install Maestro - run: | - curl -Ls "https://get.maestro.mobile.dev" | bash - echo "$HOME/.maestro/bin" >> $GITHUB_PATH - - - name: Boot iOS Simulator - run: | - DEVICE=$(xcrun simctl list devices available -j | jq -r '[.devices[] | .[] | select(.name | contains("iPhone"))][0].udid') - xcrun simctl boot "$DEVICE" - - - name: Install app on Simulator - run: | - APP_PATH=$(find example/expo/ios/build -name "*.app" -path "*/Release-iphonesimulator/*" | head -1) - xcrun simctl install booted "$APP_PATH" - - - name: Run Maestro tests - run: maestro test .maestro/ --format junit --output report.xml - - - name: Upload test report - if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: e2e-ios-report - path: report.xml diff --git a/example/expo/app.config.ts b/example/expo/app.config.ts index 67e2159e..df5b724c 100644 --- a/example/expo/app.config.ts +++ b/example/expo/app.config.ts @@ -47,11 +47,4 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ experiments: { typedRoutes: true, }, - buildCacheProvider: { - plugin: '@eggl-js/expo-github-cache', - options: { - owner: 'lodev09', - repo: 'react-native-true-sheet', - }, - }, }); diff --git a/example/expo/package.json b/example/expo/package.json index af4e2239..f33417d1 100644 --- a/example/expo/package.json +++ b/example/expo/package.json @@ -38,7 +38,6 @@ "react-native-worklets": "^0.7.0" }, "devDependencies": { - "@eggl-js/expo-github-cache": "^0.2.1", "@types/react": "~19.1.10", "react-native-monorepo-config": "^0.1.9", "react-test-renderer": "19.1.0", diff --git a/package.json b/package.json index e15ca113..cba254f0 100644 --- a/package.json +++ b/package.json @@ -112,6 +112,7 @@ "react-native-worklets": "^0.7.0", "react-test-renderer": "19.1.1", "release-it": "^19.0.4", + "turbo": "^2.5.6", "typescript": "^5.9.2" }, "resolutions": { diff --git a/turbo.json b/turbo.json new file mode 100644 index 00000000..37a8dc71 --- /dev/null +++ b/turbo.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://turbo.build/schema.json", + "globalDependencies": [".nvmrc", ".yarnrc.yml"], + "globalEnv": ["NODE_ENV"], + "tasks": { + "build:android": { + "env": ["ANDROID_HOME", "ORG_GRADLE_PROJECT_newArchEnabled"], + "inputs": [ + "package.json", + "android", + "!android/build", + "common", + "src/*.ts", + "src/*.tsx", + "example/bare/package.json", + "example/bare/android", + "!example/bare/android/.gradle", + "!example/bare/android/build", + "!example/bare/android/app/build" + ], + "outputs": [] + }, + "build:ios": { + "env": [ + "RCT_NEW_ARCH_ENABLED", + "RCT_USE_RN_DEP", + "RCT_USE_PREBUILT_RNCORE" + ], + "inputs": [ + "package.json", + "*.podspec", + "ios", + "common", + "src/*.ts", + "src/*.tsx", + "example/bare/package.json", + "example/bare/ios", + "!example/bare/ios/build", + "!example/bare/ios/Pods" + ], + "outputs": [] + } + } +} diff --git a/yarn.lock b/yarn.lock index fed14aa7..9439bc46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -287,16 +287,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:7.23.5": - version: 7.23.5 - resolution: "@babel/code-frame@npm:7.23.5" - dependencies: - "@babel/highlight": "npm:^7.23.4" - chalk: "npm:^2.4.2" - checksum: 10c0/a10e843595ddd9f97faa99917414813c06214f4d9205294013e20c70fbdf4f943760da37dec1d998bf3e6fc20fa2918a47c0e987a7e458663feb7698063ad7c6 - languageName: node - linkType: hard - "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.20.0, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.27.1": version: 7.27.1 resolution: "@babel/code-frame@npm:7.27.1" @@ -566,7 +556,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.23.4": +"@babel/highlight@npm:^7.10.4": version: 7.25.9 resolution: "@babel/highlight@npm:7.25.9" dependencies: @@ -3340,31 +3330,6 @@ __metadata: languageName: node linkType: hard -"@eggl-js/expo-github-cache@npm:^0.2.1": - version: 0.2.1 - resolution: "@eggl-js/expo-github-cache@npm:0.2.1" - dependencies: - "@babel/code-frame": "npm:7.23.5" - "@expo/config": "npm:^12.0.10" - "@expo/spawn-async": "npm:^1.7.2" - "@octokit/rest": "npm:^22.0.0" - chalk: "npm:^5.6.2" - env-paths: "npm:^3.0.0" - figures: "npm:^6.1.0" - fs-extra: "npm:11.3.0" - log-symbols: "npm:7.0.1" - node-fetch: "npm:^3.3.2" - octokit: "npm:5.0.3" - ora: "npm:^8.2.0" - tar: "npm:^7.5.1" - tslib: "npm:2.8.1" - uuidv7: "npm:^1.0.2" - peerDependencies: - typescript: ^5.8.3 - checksum: 10c0/ea19ed427a2239675a61010b9a469e5704f3aed826264ede95cb4131acb8754153d15e7db8709518e2c24fe97981a84a07bc4c071e57951a5f02e17d00420c94 - languageName: node - linkType: hard - "@egjs/hammerjs@npm:^2.0.17": version: 2.0.17 resolution: "@egjs/hammerjs@npm:2.0.17" @@ -3522,7 +3487,6 @@ __metadata: version: 0.0.0-use.local resolution: "@example/expo@workspace:example/expo" dependencies: - "@eggl-js/expo-github-cache": "npm:^0.2.1" "@example/shared": "npm:*" "@expo/vector-icons": "npm:^15.0.3" "@gorhom/bottom-sheet": "npm:^5.2.8" @@ -3726,7 +3690,7 @@ __metadata: languageName: node linkType: hard -"@expo/config@npm:^12.0.10, @expo/config@npm:~12.0.12, @expo/config@npm:~12.0.13": +"@expo/config@npm:~12.0.12, @expo/config@npm:~12.0.13": version: 12.0.13 resolution: "@expo/config@npm:12.0.13" dependencies: @@ -4870,6 +4834,7 @@ __metadata: react-native-worklets: "npm:^0.7.0" react-test-renderer: "npm:19.1.1" release-it: "npm:^19.0.4" + turbo: "npm:^2.5.6" typescript: "npm:^5.9.2" peerDependencies: "@gorhom/bottom-sheet": ">=5" @@ -5018,75 +4983,6 @@ __metadata: languageName: node linkType: hard -"@octokit/app@npm:^16.0.1": - version: 16.1.2 - resolution: "@octokit/app@npm:16.1.2" - dependencies: - "@octokit/auth-app": "npm:^8.1.2" - "@octokit/auth-unauthenticated": "npm:^7.0.3" - "@octokit/core": "npm:^7.0.6" - "@octokit/oauth-app": "npm:^8.0.3" - "@octokit/plugin-paginate-rest": "npm:^14.0.0" - "@octokit/types": "npm:^16.0.0" - "@octokit/webhooks": "npm:^14.0.0" - checksum: 10c0/64d5f2c5b126c3bac71d11d6394f2b1c2ffa3880496b492b0a175695b83066fcbe857d2c1e72540b646cf85c57b6162cd2a4cad9b05012ea8de17109f2928473 - languageName: node - linkType: hard - -"@octokit/auth-app@npm:^8.1.2": - version: 8.2.0 - resolution: "@octokit/auth-app@npm:8.2.0" - dependencies: - "@octokit/auth-oauth-app": "npm:^9.0.3" - "@octokit/auth-oauth-user": "npm:^6.0.2" - "@octokit/request": "npm:^10.0.6" - "@octokit/request-error": "npm:^7.0.2" - "@octokit/types": "npm:^16.0.0" - toad-cache: "npm:^3.7.0" - universal-github-app-jwt: "npm:^2.2.0" - universal-user-agent: "npm:^7.0.0" - checksum: 10c0/7f1b113c9f2ef4d0aac06ffb0b1930a256c6a8985744c709c36fe8c4565c5c184de742de4c4a52e4d9f25baef00c9b855732cfaeb81db8abe238d6c2ee54d6d6 - languageName: node - linkType: hard - -"@octokit/auth-oauth-app@npm:^9.0.2, @octokit/auth-oauth-app@npm:^9.0.3": - version: 9.0.3 - resolution: "@octokit/auth-oauth-app@npm:9.0.3" - dependencies: - "@octokit/auth-oauth-device": "npm:^8.0.3" - "@octokit/auth-oauth-user": "npm:^6.0.2" - "@octokit/request": "npm:^10.0.6" - "@octokit/types": "npm:^16.0.0" - universal-user-agent: "npm:^7.0.0" - checksum: 10c0/1b47dc2a6ea480c04cc3b03d03f4836916ef666047b639c78134d49bbf9fb112a0610021aa017abaa30d8a63a5e66117b3d2b3a4d3976d10153bd5efef54da8b - languageName: node - linkType: hard - -"@octokit/auth-oauth-device@npm:^8.0.3": - version: 8.0.3 - resolution: "@octokit/auth-oauth-device@npm:8.0.3" - dependencies: - "@octokit/oauth-methods": "npm:^6.0.2" - "@octokit/request": "npm:^10.0.6" - "@octokit/types": "npm:^16.0.0" - universal-user-agent: "npm:^7.0.0" - checksum: 10c0/2c43d131fbd0b60abef5f37e6168e31f5ec1b8361bac1d71c19499e1960e5e00957c54db9836d88754b467ad48c4e15f60409b0d66dc740468c49834e787e971 - languageName: node - linkType: hard - -"@octokit/auth-oauth-user@npm:^6.0.1, @octokit/auth-oauth-user@npm:^6.0.2": - version: 6.0.2 - resolution: "@octokit/auth-oauth-user@npm:6.0.2" - dependencies: - "@octokit/auth-oauth-device": "npm:^8.0.3" - "@octokit/oauth-methods": "npm:^6.0.2" - "@octokit/request": "npm:^10.0.6" - "@octokit/types": "npm:^16.0.0" - universal-user-agent: "npm:^7.0.0" - checksum: 10c0/7af66189e7c0b19c456462d571f61ac787d8464554375b12ded245d0d209a7a0f873f9189d7a3e9afef8aa59eb268c573f8e98b0ee683ebf0989625c20e2125a - languageName: node - linkType: hard - "@octokit/auth-token@npm:^6.0.0": version: 6.0.0 resolution: "@octokit/auth-token@npm:6.0.0" @@ -5094,17 +4990,7 @@ __metadata: languageName: node linkType: hard -"@octokit/auth-unauthenticated@npm:^7.0.2, @octokit/auth-unauthenticated@npm:^7.0.3": - version: 7.0.3 - resolution: "@octokit/auth-unauthenticated@npm:7.0.3" - dependencies: - "@octokit/request-error": "npm:^7.0.2" - "@octokit/types": "npm:^16.0.0" - checksum: 10c0/7e20ec86314e881201d37283edbf83f4dd8210df74d6bab1273961e2f18064144ea970f18a678dda8cc4396a5128499efda45e81a848fc770836872049d6218f - languageName: node - linkType: hard - -"@octokit/core@npm:^7.0.2, @octokit/core@npm:^7.0.5, @octokit/core@npm:^7.0.6": +"@octokit/core@npm:^7.0.2": version: 7.0.6 resolution: "@octokit/core@npm:7.0.6" dependencies: @@ -5140,48 +5026,6 @@ __metadata: languageName: node linkType: hard -"@octokit/oauth-app@npm:^8.0.1, @octokit/oauth-app@npm:^8.0.3": - version: 8.0.3 - resolution: "@octokit/oauth-app@npm:8.0.3" - dependencies: - "@octokit/auth-oauth-app": "npm:^9.0.2" - "@octokit/auth-oauth-user": "npm:^6.0.1" - "@octokit/auth-unauthenticated": "npm:^7.0.2" - "@octokit/core": "npm:^7.0.5" - "@octokit/oauth-authorization-url": "npm:^8.0.0" - "@octokit/oauth-methods": "npm:^6.0.1" - "@types/aws-lambda": "npm:^8.10.83" - universal-user-agent: "npm:^7.0.0" - checksum: 10c0/7bb064bfe21a6db45b57f8f5e5ecd533e802c0073d293b1c75abf264d9bc0fc952492757ea5af516207af4ec781cf793cb37e8cbbb3a8df691592bc25c364644 - languageName: node - linkType: hard - -"@octokit/oauth-authorization-url@npm:^8.0.0": - version: 8.0.0 - resolution: "@octokit/oauth-authorization-url@npm:8.0.0" - checksum: 10c0/ab4964bebd8d076f945a2f3210a8a0a221a408362569d9fc2f49875ad06e594365f5fd871dac08d820793f687bff50237f7acf40d9d39c5f9de7575b6f4bad93 - languageName: node - linkType: hard - -"@octokit/oauth-methods@npm:^6.0.1, @octokit/oauth-methods@npm:^6.0.2": - version: 6.0.2 - resolution: "@octokit/oauth-methods@npm:6.0.2" - dependencies: - "@octokit/oauth-authorization-url": "npm:^8.0.0" - "@octokit/request": "npm:^10.0.6" - "@octokit/request-error": "npm:^7.0.2" - "@octokit/types": "npm:^16.0.0" - checksum: 10c0/51d2f3218839ce37609e6e0adc274efcc198bdcae57ef3ecf3ada95f6f30dcc3052f6db34e4aa3a1bc94545d7025baa44058d5c044fdd6bdd83562eb9b8510c2 - languageName: node - linkType: hard - -"@octokit/openapi-types@npm:^25.1.0": - version: 25.1.0 - resolution: "@octokit/openapi-types@npm:25.1.0" - checksum: 10c0/b5b1293b11c6ec7112c7a2713f8507c2696d5db8902ce893b594080ab0329f5a6fcda1b5ac6fe6eed9425e897f4d03326c1bdf5c337e35d324e7b925e52a2661 - languageName: node - linkType: hard - "@octokit/openapi-types@npm:^26.0.0": version: 26.0.0 resolution: "@octokit/openapi-types@npm:26.0.0" @@ -5196,23 +5040,7 @@ __metadata: languageName: node linkType: hard -"@octokit/openapi-webhooks-types@npm:12.1.0": - version: 12.1.0 - resolution: "@octokit/openapi-webhooks-types@npm:12.1.0" - checksum: 10c0/0352ee895f849d16e8a33e8474fc87d7c0c117fcd72d3e03271232d82ed9f648ca252737e6453f3cd5919c9a2b92fb048327d306d761d4d750c2eee8eca3669f - languageName: node - linkType: hard - -"@octokit/plugin-paginate-graphql@npm:^6.0.0": - version: 6.0.0 - resolution: "@octokit/plugin-paginate-graphql@npm:6.0.0" - peerDependencies: - "@octokit/core": ">=6" - checksum: 10c0/354553741317a8a5977dffdf26ddeb767f3c67266a18a5d5e3e5c31fbc118f157ed726f43f998c1aad4bfa704312ce11a4f3e7b681e863245eac8afcac2c5861 - languageName: node - linkType: hard - -"@octokit/plugin-paginate-rest@npm:^13.0.0, @octokit/plugin-paginate-rest@npm:^13.0.1": +"@octokit/plugin-paginate-rest@npm:^13.0.1": version: 13.2.1 resolution: "@octokit/plugin-paginate-rest@npm:13.2.1" dependencies: @@ -5223,17 +5051,6 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:^14.0.0": - version: 14.0.0 - resolution: "@octokit/plugin-paginate-rest@npm:14.0.0" - dependencies: - "@octokit/types": "npm:^16.0.0" - peerDependencies: - "@octokit/core": ">=6" - checksum: 10c0/841d79d4ccfe18fc809a4a67529b75c1dcdda13399bf4bf5b48ce7559c8b4b2cd422e3204bad4cbdea31c0cf0943521067415268e5bcfc615a3b813e058cad6b - languageName: node - linkType: hard - "@octokit/plugin-request-log@npm:^6.0.0": version: 6.0.0 resolution: "@octokit/plugin-request-log@npm:6.0.0" @@ -5254,43 +5071,7 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:^17.0.0": - version: 17.0.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:17.0.0" - dependencies: - "@octokit/types": "npm:^16.0.0" - peerDependencies: - "@octokit/core": ">=6" - checksum: 10c0/cf9984d7cf6a36ff7ff1b86078ae45fe246e3df10fcef0bccf20c8cfd27bf5e7d98dcb9cf5a7b56332b9c6fa30be28d159c2987d272a4758f77056903d94402f - languageName: node - linkType: hard - -"@octokit/plugin-retry@npm:^8.0.1": - version: 8.0.3 - resolution: "@octokit/plugin-retry@npm:8.0.3" - dependencies: - "@octokit/request-error": "npm:^7.0.2" - "@octokit/types": "npm:^16.0.0" - bottleneck: "npm:^2.15.3" - peerDependencies: - "@octokit/core": ">=7" - checksum: 10c0/24d35d85f750f9e3e52f63b8ddd8fc8aa7bdd946c77b9ea4d6894d026c5c2c69109e8de3880a9970c906f624eb777c7d0c0a2072e6d41dadc7b36cce104b978c - languageName: node - linkType: hard - -"@octokit/plugin-throttling@npm:^11.0.1": - version: 11.0.3 - resolution: "@octokit/plugin-throttling@npm:11.0.3" - dependencies: - "@octokit/types": "npm:^16.0.0" - bottleneck: "npm:^2.15.3" - peerDependencies: - "@octokit/core": ^7.0.0 - checksum: 10c0/5c7cc386962b6d2881ac769f57b28c28622d18e3dbe2f7600dfdfda0a98b56a95f69d831902b647ad023574921cc801b78aa54563fdb3f465ac8c883aaf6cbe3 - languageName: node - linkType: hard - -"@octokit/request-error@npm:^7.0.0, @octokit/request-error@npm:^7.0.2": +"@octokit/request-error@npm:^7.0.2": version: 7.1.0 resolution: "@octokit/request-error@npm:7.1.0" dependencies: @@ -5324,27 +5105,6 @@ __metadata: languageName: node linkType: hard -"@octokit/rest@npm:^22.0.0": - version: 22.0.1 - resolution: "@octokit/rest@npm:22.0.1" - dependencies: - "@octokit/core": "npm:^7.0.6" - "@octokit/plugin-paginate-rest": "npm:^14.0.0" - "@octokit/plugin-request-log": "npm:^6.0.0" - "@octokit/plugin-rest-endpoint-methods": "npm:^17.0.0" - checksum: 10c0/f3abd84e887cc837973214ce70720a9bba53f5575f40601c6122aa25206e9055d859c0388437f0a137f6cd0e4ff405e1b46b903475b0db32a17bada0c6513d5b - languageName: node - linkType: hard - -"@octokit/types@npm:^14.0.0": - version: 14.1.0 - resolution: "@octokit/types@npm:14.1.0" - dependencies: - "@octokit/openapi-types": "npm:^25.1.0" - checksum: 10c0/4640a6c0a95386be4d015b96c3a906756ea657f7df3c6e706d19fea6bf3ac44fd2991c8c817afe1e670ff9042b85b0e06f7fd373f6bbd47da64208701bb46d5b - languageName: node - linkType: hard - "@octokit/types@npm:^15.0.1": version: 15.0.2 resolution: "@octokit/types@npm:15.0.2" @@ -5363,24 +5123,6 @@ __metadata: languageName: node linkType: hard -"@octokit/webhooks-methods@npm:^6.0.0": - version: 6.0.0 - resolution: "@octokit/webhooks-methods@npm:6.0.0" - checksum: 10c0/7f10740e838d65c78e859bb041499cca69df7831e9f633ee70a46ca8e53d0844f2c84500df204453d171c8c3c0f8eb8b68716ee1d5c95e3cf5d09690f32e13e1 - languageName: node - linkType: hard - -"@octokit/webhooks@npm:^14.0.0": - version: 14.2.0 - resolution: "@octokit/webhooks@npm:14.2.0" - dependencies: - "@octokit/openapi-webhooks-types": "npm:12.1.0" - "@octokit/request-error": "npm:^7.0.0" - "@octokit/webhooks-methods": "npm:^6.0.0" - checksum: 10c0/0d0dcbd90d752aab9a390fba01237009c8fd3d58d7f39d9f46446e9de27bb83a8fcee07a3e3ed39e5020f945d76f1f7cbef2285d8ccff2bfa03dfd6eb03d1182 - languageName: node - linkType: hard - "@opentelemetry/api@npm:1.9.0": version: 1.9.0 resolution: "@opentelemetry/api@npm:1.9.0" @@ -6887,13 +6629,6 @@ __metadata: languageName: node linkType: hard -"@types/aws-lambda@npm:^8.10.83": - version: 8.10.160 - resolution: "@types/aws-lambda@npm:8.10.160" - checksum: 10c0/0f524cbcab95108b9ef4876a0458fec11b948baa43741874bc5f10e6ba66bdde5245185adc33838fc057c6a2610a23ae610d3059ae90961eb8fdd126c042ebea - languageName: node - linkType: hard - "@types/babel__core@npm:^7, @types/babel__core@npm:^7.1.14": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -8770,13 +8505,6 @@ __metadata: languageName: node linkType: hard -"bottleneck@npm:^2.15.3": - version: 2.19.5 - resolution: "bottleneck@npm:2.19.5" - checksum: 10c0/b0f72e45b2e0f56a21ba720183f16bef8e693452fb0495d997fa354e42904353a94bd8fd429868e6751bc85e54b6755190519eed5a0ae0a94a5185209ae7c6d0 - languageName: node - linkType: hard - "boxen@npm:^6.2.1": version: 6.2.1 resolution: "boxen@npm:6.2.1" @@ -9346,7 +9074,7 @@ __metadata: languageName: node linkType: hard -"cli-spinners@npm:^2.0.0, cli-spinners@npm:^2.5.0, cli-spinners@npm:^2.9.2": +"cli-spinners@npm:^2.0.0, cli-spinners@npm:^2.5.0": version: 2.9.2 resolution: "cli-spinners@npm:2.9.2" checksum: 10c0/907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 @@ -10319,13 +10047,6 @@ __metadata: languageName: node linkType: hard -"data-uri-to-buffer@npm:^4.0.0": - version: 4.0.1 - resolution: "data-uri-to-buffer@npm:4.0.1" - checksum: 10c0/20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b - languageName: node - linkType: hard - "data-uri-to-buffer@npm:^6.0.2": version: 6.0.2 resolution: "data-uri-to-buffer@npm:6.0.2" @@ -10936,13 +10657,6 @@ __metadata: languageName: node linkType: hard -"emoji-regex@npm:^10.3.0": - version: 10.6.0 - resolution: "emoji-regex@npm:10.6.0" - checksum: 10c0/1e4aa097bb007301c3b4b1913879ae27327fdc48e93eeefefe3b87e495eb33c5af155300be951b4349ff6ac084f4403dc9eff970acba7c1c572d89396a9a32d7 - languageName: node - linkType: hard - "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -11055,13 +10769,6 @@ __metadata: languageName: node linkType: hard -"env-paths@npm:^3.0.0": - version: 3.0.0 - resolution: "env-paths@npm:3.0.0" - checksum: 10c0/76dec878cee47f841103bacd7fae03283af16f0702dad65102ef0a556f310b98a377885e0f32943831eb08b5ab37842a323d02529f3dfd5d0a40ca71b01b435f - languageName: node - linkType: hard - "envinfo@npm:^7.13.0": version: 7.21.0 resolution: "envinfo@npm:7.21.0" @@ -12346,16 +12053,6 @@ __metadata: languageName: node linkType: hard -"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": - version: 3.2.0 - resolution: "fetch-blob@npm:3.2.0" - dependencies: - node-domexception: "npm:^1.0.0" - web-streams-polyfill: "npm:^3.0.3" - checksum: 10c0/60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69 - languageName: node - linkType: hard - "figures@npm:^3.2.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -12365,15 +12062,6 @@ __metadata: languageName: node linkType: hard -"figures@npm:^6.1.0": - version: 6.1.0 - resolution: "figures@npm:6.1.0" - dependencies: - is-unicode-supported: "npm:^2.0.0" - checksum: 10c0/9159df4264d62ef447a3931537de92f5012210cf5135c35c010df50a2169377581378149abfe1eb238bd6acbba1c0d547b1f18e0af6eee49e30363cedaffcfe4 - languageName: node - linkType: hard - "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -12575,15 +12263,6 @@ __metadata: languageName: node linkType: hard -"formdata-polyfill@npm:^4.0.10": - version: 4.0.10 - resolution: "formdata-polyfill@npm:4.0.10" - dependencies: - fetch-blob: "npm:^3.1.2" - checksum: 10c0/5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6 - languageName: node - linkType: hard - "forwarded@npm:0.2.0": version: 0.2.0 resolution: "forwarded@npm:0.2.0" @@ -12612,17 +12291,6 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:11.3.0": - version: 11.3.0 - resolution: "fs-extra@npm:11.3.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10c0/5f95e996186ff45463059feb115a22fb048bdaf7e487ecee8a8646c78ed8fdca63630e3077d4c16ce677051f5e60d3355a06f3cd61f3ca43f48cc58822a44d0a - languageName: node - linkType: hard - "fs-extra@npm:^10.1.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" @@ -12740,7 +12408,7 @@ __metadata: languageName: node linkType: hard -"get-east-asian-width@npm:^1.0.0, get-east-asian-width@npm:^1.3.0": +"get-east-asian-width@npm:^1.3.0": version: 1.4.0 resolution: "get-east-asian-width@npm:1.4.0" checksum: 10c0/4e481d418e5a32061c36fbb90d1b225a254cc5b2df5f0b25da215dcd335a3c111f0c2023ffda43140727a9cafb62dac41d022da82c08f31083ee89f714ee3b83 @@ -14519,13 +14187,6 @@ __metadata: languageName: node linkType: hard -"is-unicode-supported@npm:^1.3.0": - version: 1.3.0 - resolution: "is-unicode-supported@npm:1.3.0" - checksum: 10c0/b8674ea95d869f6faabddc6a484767207058b91aea0250803cbf1221345cb0c56f466d4ecea375dc77f6633d248d33c47bd296fb8f4cdba0b4edba8917e83d8a - languageName: node - linkType: hard - "is-unicode-supported@npm:^2.0.0, is-unicode-supported@npm:^2.1.0": version: 2.1.0 resolution: "is-unicode-supported@npm:2.1.0" @@ -15781,16 +15442,6 @@ __metadata: languageName: node linkType: hard -"log-symbols@npm:7.0.1, log-symbols@npm:^7.0.1": - version: 7.0.1 - resolution: "log-symbols@npm:7.0.1" - dependencies: - is-unicode-supported: "npm:^2.0.0" - yoctocolors: "npm:^2.1.1" - checksum: 10c0/71d30f9a44b8604b14df5e7c9b579d739997253db7385339d493ece41ee2cc74c1f96c5b4c0b2c1e0829b05348d4f287e68faab495b7a094a80f51351c816075 - languageName: node - linkType: hard - "log-symbols@npm:^2.2.0": version: 2.2.0 resolution: "log-symbols@npm:2.2.0" @@ -15810,13 +15461,13 @@ __metadata: languageName: node linkType: hard -"log-symbols@npm:^6.0.0": - version: 6.0.0 - resolution: "log-symbols@npm:6.0.0" +"log-symbols@npm:^7.0.1": + version: 7.0.1 + resolution: "log-symbols@npm:7.0.1" dependencies: - chalk: "npm:^5.3.0" - is-unicode-supported: "npm:^1.3.0" - checksum: 10c0/36636cacedba8f067d2deb4aad44e91a89d9efb3ead27e1846e7b82c9a10ea2e3a7bd6ce28a7ca616bebc60954ff25c67b0f92d20a6a746bb3cc52c3701891f6 + is-unicode-supported: "npm:^2.0.0" + yoctocolors: "npm:^2.1.1" + checksum: 10c0/71d30f9a44b8604b14df5e7c9b579d739997253db7385339d493ece41ee2cc74c1f96c5b4c0b2c1e0829b05348d4f287e68faab495b7a094a80f51351c816075 languageName: node linkType: hard @@ -17471,13 +17122,6 @@ __metadata: languageName: node linkType: hard -"node-domexception@npm:^1.0.0": - version: 1.0.0 - resolution: "node-domexception@npm:1.0.0" - checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b - languageName: node - linkType: hard - "node-emoji@npm:^2.1.0": version: 2.2.0 resolution: "node-emoji@npm:2.2.0" @@ -17511,17 +17155,6 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^3.3.2": - version: 3.3.2 - resolution: "node-fetch@npm:3.3.2" - dependencies: - data-uri-to-buffer: "npm:^4.0.0" - fetch-blob: "npm:^3.1.4" - formdata-polyfill: "npm:^4.0.10" - checksum: 10c0/f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538 - languageName: node - linkType: hard - "node-forge@npm:^1, node-forge@npm:^1.2.1, node-forge@npm:^1.3.1": version: 1.3.3 resolution: "node-forge@npm:1.3.3" @@ -17780,25 +17413,6 @@ __metadata: languageName: node linkType: hard -"octokit@npm:5.0.3": - version: 5.0.3 - resolution: "octokit@npm:5.0.3" - dependencies: - "@octokit/app": "npm:^16.0.1" - "@octokit/core": "npm:^7.0.2" - "@octokit/oauth-app": "npm:^8.0.1" - "@octokit/plugin-paginate-graphql": "npm:^6.0.0" - "@octokit/plugin-paginate-rest": "npm:^13.0.0" - "@octokit/plugin-rest-endpoint-methods": "npm:^16.0.0" - "@octokit/plugin-retry": "npm:^8.0.1" - "@octokit/plugin-throttling": "npm:^11.0.1" - "@octokit/request-error": "npm:^7.0.0" - "@octokit/types": "npm:^14.0.0" - "@octokit/webhooks": "npm:^14.0.0" - checksum: 10c0/58b4ce639a45771a4d9244d46e3e76fb5e43707e70a2db6a3cb8d0d28c6e91a8f7cc43b8cb042d902ea1876e744ef878638ba00fb998a60767c389e9d9300bbe - languageName: node - linkType: hard - "ohash@npm:^2.0.11": version: 2.0.11 resolution: "ohash@npm:2.0.11" @@ -17989,23 +17603,6 @@ __metadata: languageName: node linkType: hard -"ora@npm:^8.2.0": - version: 8.2.0 - resolution: "ora@npm:8.2.0" - dependencies: - chalk: "npm:^5.3.0" - cli-cursor: "npm:^5.0.0" - cli-spinners: "npm:^2.9.2" - is-interactive: "npm:^2.0.0" - is-unicode-supported: "npm:^2.0.0" - log-symbols: "npm:^6.0.0" - stdin-discarder: "npm:^0.2.2" - string-width: "npm:^7.2.0" - strip-ansi: "npm:^7.1.0" - checksum: 10c0/7d9291255db22e293ea164f520b6042a3e906576ab06c9cf408bf9ef5664ba0a9f3bd258baa4ada058cfcc2163ef9b6696d51237a866682ce33295349ba02c3a - languageName: node - linkType: hard - "os-name@npm:6.1.0": version: 6.1.0 resolution: "os-name@npm:6.1.0" @@ -21844,17 +21441,6 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^7.2.0": - version: 7.2.0 - resolution: "string-width@npm:7.2.0" - dependencies: - emoji-regex: "npm:^10.3.0" - get-east-asian-width: "npm:^1.0.0" - strip-ansi: "npm:^7.1.0" - checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9 - languageName: node - linkType: hard - "string-width@npm:^8.1.0": version: 8.1.0 resolution: "string-width@npm:8.1.0" @@ -22216,19 +21802,6 @@ __metadata: languageName: node linkType: hard -"tar@npm:^7.5.1": - version: 7.5.7 - resolution: "tar@npm:7.5.7" - dependencies: - "@isaacs/fs-minipass": "npm:^4.0.0" - chownr: "npm:^3.0.0" - minipass: "npm:^7.1.2" - minizlib: "npm:^3.1.0" - yallist: "npm:^5.0.0" - checksum: 10c0/51f261afc437e1112c3e7919478d6176ea83f7f7727864d8c2cce10f0b03a631d1911644a567348c3063c45abdae39718ba97abb073d22aa3538b9a53ae1e31c - languageName: node - linkType: hard - "tar@npm:^7.5.2": version: 7.5.2 resolution: "tar@npm:7.5.2" @@ -22422,13 +21995,6 @@ __metadata: languageName: node linkType: hard -"toad-cache@npm:^3.7.0": - version: 3.7.0 - resolution: "toad-cache@npm:3.7.0" - checksum: 10c0/7dae2782ee20b22c9798bb8b71dec7ec6a0091021d2ea9dd6e8afccab6b65b358fdba49a02209fac574499702e2c000660721516c87c2538d1b2c0ba03e8c0c3 - languageName: node - linkType: hard - "toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" @@ -22489,13 +22055,84 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.6.0": +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.6.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 languageName: node linkType: hard +"turbo-darwin-64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-darwin-64@npm:2.6.3" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"turbo-darwin-arm64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-darwin-arm64@npm:2.6.3" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"turbo-linux-64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-linux-64@npm:2.6.3" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"turbo-linux-arm64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-linux-arm64@npm:2.6.3" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"turbo-windows-64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-windows-64@npm:2.6.3" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"turbo-windows-arm64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-windows-arm64@npm:2.6.3" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"turbo@npm:^2.5.6": + version: 2.6.3 + resolution: "turbo@npm:2.6.3" + dependencies: + turbo-darwin-64: "npm:2.6.3" + turbo-darwin-arm64: "npm:2.6.3" + turbo-linux-64: "npm:2.6.3" + turbo-linux-arm64: "npm:2.6.3" + turbo-windows-64: "npm:2.6.3" + turbo-windows-arm64: "npm:2.6.3" + dependenciesMeta: + turbo-darwin-64: + optional: true + turbo-darwin-arm64: + optional: true + turbo-linux-64: + optional: true + turbo-linux-arm64: + optional: true + turbo-windows-64: + optional: true + turbo-windows-arm64: + optional: true + bin: + turbo: bin/turbo + checksum: 10c0/3dab627a4e0f855c2ea2cc5e7d3d7abed01a7abace1197983c55e0563c413dfe45c80c121e5fa25d2cca013d895bde457d5cdf3a3d47000dc7d432a4cb68e78f + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -22884,13 +22521,6 @@ __metadata: languageName: node linkType: hard -"universal-github-app-jwt@npm:^2.2.0": - version: 2.2.2 - resolution: "universal-github-app-jwt@npm:2.2.2" - checksum: 10c0/7ae5f031fb89c01a4407459b764c5e6341d725d436e1ceec161f9b754dd4883d9704cc8de53d5b6314b7e1bef8dbc7561799fc23001e706f213d468c17026fb6 - languageName: node - linkType: hard - "universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": version: 7.0.3 resolution: "universal-user-agent@npm:7.0.3" @@ -23083,15 +22713,6 @@ __metadata: languageName: node linkType: hard -"uuidv7@npm:^1.0.2": - version: 1.1.0 - resolution: "uuidv7@npm:1.1.0" - bin: - uuidv7: cli.js - checksum: 10c0/eceeb6cd682e323f14778cda6f221ebfafc339cd8bf8032a905b367cec547bffd5c717a60e956891525066c9a45f44fbe7688c269d1f95773ab940a212f1319c - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.1": version: 9.3.0 resolution: "v8-to-istanbul@npm:9.3.0" @@ -23241,13 +22862,6 @@ __metadata: languageName: node linkType: hard -"web-streams-polyfill@npm:^3.0.3": - version: 3.3.3 - resolution: "web-streams-polyfill@npm:3.3.3" - checksum: 10c0/64e855c47f6c8330b5436147db1c75cb7e7474d924166800e8e2aab5eb6c76aac4981a84261dd2982b3e754490900b99791c80ae1407a9fa0dcff74f82ea3a7f - languageName: node - linkType: hard - "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" From 3417efad352ebf416fa998bf524b12b0bedb96d5 Mon Sep 17 00:00:00 2001 From: lodev09 Date: Mon, 9 Feb 2026 00:14:06 +0800 Subject: [PATCH 10/10] docs: update changelog for #507 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 926df020..835a29d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ ### 🎉 New features -- **iOS**: Enable synchronous state update for RN 0.82+. ([#505](https://github.com/lodev09/react-native-true-sheet/pull/505) by [@lodev09](https://github.com/lodev09)) +- **iOS**: Enable synchronous state update for RN 0.82+. ([#505](https://github.com/lodev09/react-native-true-sheet/pull/505), [#507](https://github.com/lodev09/react-native-true-sheet/pull/507) by [@lodev09](https://github.com/lodev09)) - Added `maxContentWidth` prop to control the maximum width of the sheet content. ([#495](https://github.com/lodev09/react-native-true-sheet/pull/495) by [@lodev09](https://github.com/lodev09)) - Added `anchor` and `anchorOffset` props for side sheet positioning. ([#496](https://github.com/lodev09/react-native-true-sheet/pull/496), [#500](https://github.com/lodev09/react-native-true-sheet/pull/500) by [@lodev09](https://github.com/lodev09))