stim 1.20.2 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +141 -8
- package/dist/acquire-artifact-Co2k4f7O.mjs +171 -0
- package/dist/act-DsuqEkiM.mjs +2801 -0
- package/dist/activity-CMLmzp7o.mjs +1397 -0
- package/dist/{agent-device-usage-output-Dzgv6lgR.mjs → agent-device-usage-output-DUFaTMdd.mjs} +23 -67
- package/dist/{android-DCKZrNvV.mjs → android-ByRMUoiJ.mjs} +157 -93
- package/dist/{android-Mz_Inn3w.mjs → android-C7sVmyI9.mjs} +299 -116
- package/dist/{android-Dlzxshgp.mjs → android-DGkNqa_c.mjs} +5 -5
- package/dist/{android-HqP1_vB_.mjs → android-DR5lZ2Az.mjs} +2 -2
- package/dist/android-cas-compiler.mjs +2 -2
- package/dist/{android-cas-Bl-cLJBk.mjs → android-cas-ngferVq2.mjs} +7 -6
- package/dist/android-project-BCAAmMwz.mjs +12 -0
- package/dist/android-project-DVWyCbWU.d.mts +391 -0
- package/dist/api.d.mts +810 -64
- package/dist/api.mjs +782 -1
- package/dist/{artifact-HSwkIWEQ.mjs → artifact-8EY8SAPw.mjs} +240 -213
- package/dist/{artifact-D3czlUvT.mjs → artifact-DJPy518Y.mjs} +203 -164
- package/dist/artifact-platform-CXcmX_j3.mjs +27 -0
- package/dist/{browser-web-CA-F1GQo.mjs → browser-web-Bcv99PBM.mjs} +194 -64
- package/dist/budget-Cvwn54qV.mjs +9285 -0
- package/dist/{build-DYDbfkk5.mjs → build-CabC3G23.mjs} +153 -98
- package/dist/build-cache-Dv7RN200.mjs +602 -0
- package/dist/build-plan-DUC8Ka9y.mjs +248 -0
- package/dist/{cache-manifest-XH-fvDUj.mjs → cache-manifest-DSeQjt-Q.mjs} +2 -2
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{ccache-zdKiYQ3E.mjs → ccache-Btwc36-I.mjs} +10 -9
- package/dist/{cdp-Dq_ypAlJ.mjs → cdp-3fwICjzi.mjs} +18 -5
- package/dist/{chrome-BnzZMqsR.mjs → chrome-Bbw689-6.mjs} +7 -4
- package/dist/{cli-CLP3diBm.mjs → cli-CHZa9Lvk.mjs} +20 -20
- package/dist/cli.mjs +1 -1
- package/dist/client-OyRoEuSr.mjs +1577 -0
- package/dist/collector-run.d.mts +4 -40
- package/dist/collector-run.mjs +9 -8
- package/dist/{command-output-BTy8hZ0F.mjs → command-output-gwpm28fu.mjs} +1 -1
- package/dist/config-DlrsduwG.mjs +955 -0
- package/dist/{created-devices-Dzd5C2LF.mjs → created-devices-x9rN6bhs.mjs} +14 -4
- package/dist/{dependency-state-DG0p31-y.mjs → dependency-state-1I9KZT1Y.mjs} +20 -5
- package/dist/{detached-entry-B9C_zeQC.mjs → detached-entry-BwNEtIrP.mjs} +1 -1
- package/dist/{dev-client-DAWVIGBu.mjs → dev-client-BSDR5h3F.mjs} +2 -2
- package/dist/{device-BECOiufl.mjs → device-B-L3Fbxy.mjs} +91 -34
- package/dist/device-DklWZLqb.mjs +1068 -0
- package/dist/{device-capacity-CBUAcRyQ.mjs → device-capacity-DK5_EwRS.mjs} +42 -13
- package/dist/device-host-worker.mjs +76 -79
- package/dist/{device-ios-COSi6oS1.mjs → device-ios-DoB6KFCO.mjs} +77 -51
- package/dist/{device-lease-run-Cw2M4z51.mjs → device-lease-run-xJPQ_QQG.mjs} +14 -26
- package/dist/{device-pool-Bf-pOhSw.mjs → device-pool-BMkdsefq.mjs} +5 -5
- package/dist/{doctor-kfMBnUw6.mjs → doctor-Bo7BXLux.mjs} +271 -320
- package/dist/{doctor-CB8oZKCk.mjs → doctor-D5_EzwfA.mjs} +186 -91
- package/dist/doctor-fingerprint-DZLoYFVb.mjs +16 -0
- package/dist/doctor-fingerprint.mjs +19 -0
- package/dist/doctor-thjWAV0z.mjs +2 -0
- package/dist/{doctor-watchman-BRyV2adA.mjs → doctor-watchman-N2wDotwQ.mjs} +40 -21
- package/dist/{eas-build-JyfqyHfC.mjs → eas-build-CwknaQYj.mjs} +53 -20
- package/dist/{build-plan-B7SZsc2N.mjs → eas-fallback-CSgAulr5.mjs} +41 -214
- package/dist/{watchman-CPQFZLXY.mjs → eas-session-ledger-DlY_serQ.mjs} +230 -11
- package/dist/{error-diagnostics-BR677IDM.mjs → error-diagnostics-DBWO2rxE.mjs} +172 -82
- package/dist/exec-DEoAhcze.mjs +858 -0
- package/dist/exec-DnYc4HGH.d.mts +78 -0
- package/dist/{gc-qWOMdnER.mjs → gc-CXxN-4SE.mjs} +1091 -1029
- package/dist/gc-DnNDQyaP.mjs +3 -0
- package/dist/{guide-G9cAbVAc.mjs → guide-Br0LEfKy.mjs} +1165 -297
- package/dist/{hosted-android-C3MHGld1.mjs → hosted-android-B-9f-jkd.mjs} +10 -8
- package/dist/{hosted-client-ZEKpS9vw.mjs → hosted-client-DZAPrcro.mjs} +34 -19
- package/dist/{hosted-ios-l-o3iM9J.mjs → hosted-ios-CsCS21hn.mjs} +1 -1
- package/dist/{hosted-logs-EzQM7-3Z.mjs → hosted-logs-FIRx9X2f.mjs} +77 -43
- package/dist/{hosted-macos-BACVAVqE.mjs → hosted-macos-_awYSpfv.mjs} +35 -22
- package/dist/{hosted-native-A4s1QPXe.mjs → hosted-native-BdzE668-.mjs} +49 -27
- package/dist/idle-C4cZ757K.d.mts +24 -0
- package/dist/{idle-shutdown-DtxhPTKe.mjs → idle-shutdown-DDg3SdvY.mjs} +11 -10
- package/dist/ios-CDvlmUs7.d.mts +24 -0
- package/dist/{ios-BwVCF7oA.mjs → ios-Ds1clbIt.mjs} +8 -8
- package/dist/{ios-device-D7pi2Sca.mjs → ios-device--h_-8ENa.mjs} +51 -26
- package/dist/{ios-device-B5veSDDQ.mjs → ios-device-BXZ0c7Kb.mjs} +1 -1
- package/dist/{ios-RkW4pnQf.mjs → ios-hcBpnEGk.mjs} +200 -93
- package/dist/{ios-Ce7bc7br.mjs → ios-pm4nL6By.mjs} +160 -108
- package/dist/{ios-project-K9hY_Jab.mjs → ios-project-CZhKODF3.mjs} +13 -13
- package/dist/ios-signing-BtAffm0A.mjs +489 -0
- package/dist/{ios-state-CBLe1xYw.mjs → ios-state-Dtw5K2aI.mjs} +1 -1
- package/dist/{ios-nOLJGVdy.mjs → ios-xtlRHaeB.mjs} +1 -1
- package/dist/{js-swap-Bb3nsS07.mjs → js-swap-Bwhh4S7V.mjs} +30 -25
- package/dist/{launch-C3qJ6Agb.mjs → launch-BjxemNpK.mjs} +85 -543
- package/dist/{launch-F4sOqAhB.mjs → launch-CCzXlc8r.mjs} +91 -90
- package/dist/logs-BfwwadsZ.mjs +479 -0
- package/dist/logs-jTS_lHSo.mjs +248 -0
- package/dist/{macos-D7uDvO-z.mjs → macos-DVlSSyUg.mjs} +1 -1
- package/dist/macos-NfV2D7dO.mjs +694 -0
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +123 -248
- package/dist/{metro-DnCEjCxs.mjs → metro-DiXtA3Ty.mjs} +107 -30
- package/dist/metro-gateway-CKZqKqx7.mjs +209 -0
- package/dist/{named-ports-4WopRPg-.mjs → named-ports-DkEzOfzO.mjs} +42 -90
- package/dist/native-android-CqgnOgsT.mjs +645 -0
- package/dist/native-gradle-artifact-inputs-DHFnmrVf.mjs +270 -0
- package/dist/native-gradle-inputs-Dnh84Zbd.mjs +211 -0
- package/dist/native-inputs-TRTTTRxt.mjs +91 -0
- package/dist/native-run-NwUuxbkg.mjs +276 -0
- package/dist/{native-runtime-k8dTIrbK.mjs → native-runtime-B7KIafpM.mjs} +11 -9
- package/dist/native-source-Y0yLhFyQ.mjs +133 -0
- package/dist/{native-xcode-inputs-CykopJdM.mjs → native-xcode-inputs-D_VOfFL7.mjs} +26 -18
- package/dist/{native-xcode-ios-Bbf30Gm0.mjs → native-xcode-ios-BYDOHWLN.mjs} +104 -60
- package/dist/{ndjson-GOnbyvso.mjs → ndjson-CgE_o3Dl.mjs} +3 -3
- package/dist/offload-worker.d.mts +59 -41
- package/dist/offload-worker.mjs +478 -115
- package/dist/operation-exec-BW0em61G.mjs +171 -0
- package/dist/{ownership-DCtw_2IA.mjs → ownership-C5fo5Edb.mjs} +3 -3
- package/dist/{page-DRHy329N.mjs → page-DBL2PiUU.mjs} +12 -5
- package/dist/paths-BsJMoPP2.mjs +12 -0
- package/dist/paths-DQtTgsBf.mjs +42 -0
- package/dist/{placement-log-MOfPVgaM.mjs → placement-log-BnGgJRRZ.mjs} +5 -5
- package/dist/{plan-placement-V0TdzYXp.mjs → plan-placement-DIsMtN-d.mjs} +15 -11
- package/dist/{ports-DdSUicVo.mjs → ports-Cy1RkmuQ.mjs} +3 -3
- package/dist/prebuild-D4JoEAEs.mjs +484 -0
- package/dist/{project-_phNIJfs.mjs → project-wM_XFTvE.mjs} +65 -37
- package/dist/{pull-request-CQ8sPbZa.mjs → pull-request-W1IuLXDt.mjs} +102 -20
- package/dist/pull-request-eODyIqZF.d.mts +124 -0
- package/dist/pull-requests.d.mts +2 -120
- package/dist/pull-requests.mjs +2 -2
- package/dist/{react-native-android-CM1XRDwv.mjs → react-native-android-6OZ7MSM7.mjs} +121 -72
- package/dist/{gradle-DSrXb6lG.mjs → react-native-build-Dvd8hC21.mjs} +292 -15
- package/dist/react-native-doctor-DsoSF1Y9.mjs +234 -0
- package/dist/{react-native-ios-Dhq_eiYQ.mjs → react-native-ios-4u1Rn-GR.mjs} +71 -39
- package/dist/{recordings-D0d5aQt0.mjs → recordings-CQmfzAh7.mjs} +12 -9
- package/dist/registration-BcRgF6Ox.mjs +51 -0
- package/dist/{reload-C8JhxjSh.mjs → reload-BzkYabB-.mjs} +94 -47
- package/dist/reload-D7AVlb8N.mjs +2 -0
- package/dist/{remote-BiR6aYjy.mjs → remote-DjGDmlTZ.mjs} +26 -18
- package/dist/result-D2Ykz_iD.mjs +435 -0
- package/dist/{run-BtPgpKks.mjs → run-DidHghD1.mjs} +5 -5
- package/dist/selection-DSMbWEX2.mjs +620 -0
- package/dist/{server-bare-R2m_gsH8.mjs → server-bare-CafzuyFB.mjs} +3 -4
- package/dist/{server-command-CTtCkmcQ.mjs → server-command-C6QjeupS.mjs} +14 -7
- package/dist/{server-expo-DsguMGUF.mjs → server-expo-CrjB29pq.mjs} +54 -11
- package/dist/server-expo-D58c9L0M.mjs +2 -0
- package/dist/{settings-B717odTD.mjs → settings-C7O8A6ZI.mjs} +309 -119
- package/dist/settings-DpR-1Wnn.mjs +114 -0
- package/dist/settings-write-CzD60rOD.mjs +360 -0
- package/dist/settings.schema.json +176 -16
- package/dist/{simslim-CCr3rE-A.mjs → simslim-BNckWpXi.mjs} +14 -12
- package/dist/{slot-launch-DPt0m9Nd.mjs → slot-launch-CbfmNgM6.mjs} +15 -20
- package/dist/{spawn-entry-Dcb7sDUz.mjs → spawn-entry-jw19m8Nl.mjs} +0 -1
- package/dist/stage-Bps5oius.mjs +200 -0
- package/dist/{start-TXeMmmO2.mjs → start-Br-oxqMD.mjs} +1 -1
- package/dist/start-EojN4WFz.mjs +1364 -0
- package/dist/{state-D1Icyjlu.mjs → state--smjFSTL.mjs} +55 -13
- package/dist/{state-CG_OFoaA.mjs → state-08I3hw3_.mjs} +3 -2
- package/dist/{stats-BoY5sEPU.mjs → stats-D3GerlFW.mjs} +7 -13
- package/dist/stats-report-BzaPrRm6.mjs +16 -0
- package/dist/{status-BTA7kKiQ.mjs → status-BRROykC8.mjs} +7 -5
- package/dist/status-EvrK72L2.mjs +2 -0
- package/dist/{status-WgFbkRzj.mjs → status-WBDajew2.mjs} +554 -452
- package/dist/{status-watch-C23ILtf9.mjs → status-watch-Bg_u-pwR.mjs} +222 -25
- package/dist/status-worker.d.mts +1 -0
- package/dist/status-worker.mjs +19 -0
- package/dist/stim-desktop-D5OGpYZM.mjs +112 -0
- package/dist/{stop-DR6VoDIk.mjs → stop-DTZ9uTw3.mjs} +2 -2
- package/dist/{stop-DPEhunlw.mjs → stop-Dky10AEJ.mjs} +33 -23
- package/dist/{stop-BNmBMi1F.mjs → stop-Mv6W9FAk.mjs} +137 -98
- package/dist/supervisor-run.d.mts +8 -17
- package/dist/supervisor-run.mjs +56 -28
- package/dist/{support-CwjbFs9H.mjs → support-CNioewsd.mjs} +14 -14
- package/dist/{support-DMTqj3Hm.mjs → support-yUiOjnVY.mjs} +20 -13
- package/dist/swiftpm-artifact-inputs-DFcGsXDP.mjs +153 -0
- package/dist/swiftpm-macos-BIak-Rxv.mjs +532 -0
- package/dist/toolchain-BY8X8HXx.mjs +2 -0
- package/dist/toolchain-DpJMHq0n.mjs +876 -0
- package/dist/{trigger-CigAYjeL.mjs → trigger-Cbyc41d_.mjs} +21 -6
- package/dist/trigger-yb_nFzPF.mjs +2 -0
- package/dist/{warm-progress-BuY-Fvfn.mjs → warm-progress-CA3TgT3-.mjs} +263 -156
- package/dist/web-CZ07gd77.mjs +2 -0
- package/dist/{web-BDBMxDpx.mjs → web-DKx6yoFA.mjs} +20 -14
- package/dist/web-run.mjs +13 -12
- package/dist/windows-report.d.mts +1 -0
- package/dist/windows-report.mjs +18 -0
- package/dist/windows-report.ps1 +43 -0
- package/dist/{workspace-state-DJt_MMvf.mjs → workspace-state-U08dEzhG.mjs} +62 -58
- package/dist/{workspaces-C36s2jb9.mjs → workspaces-CpANmBlq.mjs} +1723 -1286
- package/dist/{worktree-CgvJYJ-Q.mjs → worktree-CHecZ4Oq.mjs} +1097 -547
- package/dist/worktree-ZqZVjD9K.mjs +2 -0
- package/dist/xcode-BXn9-xYx.mjs +896 -0
- package/package.json +7 -5
- package/shim/android-audio/Main.java +24 -0
- package/shim/android-audio/README.md +17 -0
- package/shim/android-audio.jar +0 -0
- package/shim/android-optimizations.gradle +7 -5
- package/dist/activity-BSV745Kz.mjs +0 -629
- package/dist/api-qvOzWyfO.mjs +0 -154
- package/dist/api-run.mjs +0 -294
- package/dist/app-install-BIKtMfPq.mjs +0 -896
- package/dist/artifact-lifecycle-DzPpBYvK.mjs +0 -30
- package/dist/budget-f7516Zk0.mjs +0 -4106
- package/dist/build-facts-DcLv2HSd.d.mts +0 -111
- package/dist/cancellation-C_22VQTH.mjs +0 -24
- package/dist/client-qQAaXSUs.mjs +0 -1771
- package/dist/config-BYDxlMY3.mjs +0 -562
- package/dist/device-DuiPJQSn.mjs +0 -290
- package/dist/device-lease-BX1sJQ2E.mjs +0 -1224
- package/dist/device-remote-xRT0Vmo9.mjs +0 -1272
- package/dist/eas-session-ledger-Cm0Gwq2F.mjs +0 -207
- package/dist/exec-DqKo9GKJ.mjs +0 -268
- package/dist/git-DDfFzkMm.mjs +0 -45
- package/dist/launch-verify-B6Q8hZP-.mjs +0 -428
- package/dist/logs-BGrEUaEs.mjs +0 -383
- package/dist/macos-Ch5VJmcS.mjs +0 -584
- package/dist/metro-gateway-CX9Xlkq2.mjs +0 -103
- package/dist/miss-reason-mKzZ4VvN.mjs +0 -238
- package/dist/native-android-D5qc3-_v.mjs +0 -226
- package/dist/native-gradle-inputs-BsLRrl7u.mjs +0 -349
- package/dist/ndjson-Du3j0AQ9.d.mts +0 -17
- package/dist/plan-C4TjdPsR.mjs +0 -260
- package/dist/prebuild-DYbucPXy.mjs +0 -212
- package/dist/preview-78a9kR_-.mjs +0 -1011
- package/dist/react-native-build-CtCccJtb.mjs +0 -239
- package/dist/react-native-doctor-CfRnFfjs.mjs +0 -78
- package/dist/remote-cache-OyOyVIS3.mjs +0 -526
- package/dist/result-CaJg5Iat.mjs +0 -186
- package/dist/server-expo-Bigriskl.mjs +0 -2
- package/dist/settings-BORNaaCO.mjs +0 -402
- package/dist/settings-vk3mJGSm.d.mts +0 -13
- package/dist/spawn-claims-DVS5RkMS.mjs +0 -72
- package/dist/stage-KNTQopqv.mjs +0 -157
- package/dist/start-BWqzODpb.mjs +0 -1116
- package/dist/stim-desktop-BzBN2Em2.mjs +0 -63
- package/dist/swiftpm-macos-DRNVJWlb.mjs +0 -119
- package/dist/tailnet-Dh-qiYzG.mjs +0 -265
- package/dist/toolchain-BFkAcstd.mjs +0 -2
- package/dist/toolchain-DxSsNssu.mjs +0 -1657
- package/dist/trigger-9_USgmxz.mjs +0 -2
- package/dist/web-Dq-i3wzJ.mjs +0 -2
- package/dist/worktree-DpLdCHga.mjs +0 -2
- package/dist/{api-run.d.mts → doctor-fingerprint.d.mts} +0 -0
- package/dist/{errors-DzkMYh8Q.mjs → errors-ccaPc4ox.mjs} +2 -2
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { Ft as makeTemporaryDirectory, It as removeTemporaryEntry, L as publicUrlSetting, U as resolveAndroidLayout, V as remoteEasFallbackSetting, Z as settingOriginScope, et as settingsLayers, m as defaultAndroidLayout, tt as tunnelModeSetting, z as realpathInside } from "./settings-B717odTD.mjs";
|
|
4
|
-
import { B as captureAssetManifest, D as fingerprintProject, E as fingerprintDiffRecord, F as storedAssetManifest, H as readAssetManifest, L as untrackedMissLine, M as refingerprintAfterMutation, N as resolveBuild, O as inputsChangedDuringBuild, P as storeBuild, R as untrackedNativeFiles, S as configInputsChanged, T as filesystemBuildCapability, V as compareAssetManifests, b as buildCacheKey, x as changedDuringBuildLine, z as assetDiffReason } from "./device-lease-BX1sJQ2E.mjs";
|
|
5
|
-
import { r as readWorkspaceState } from "./workspace-state-DJt_MMvf.mjs";
|
|
1
|
+
import { _ as reportSignal, d as spawnDeclared, m as operationState, t as getExecutor } from "./exec-DEoAhcze.mjs";
|
|
2
|
+
import { H as deviceSlotPlatforms, p as getProject, q as validateDeviceSlot } from "./config-DlrsduwG.mjs";
|
|
6
3
|
import { r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
7
|
-
import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { h as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import { t as
|
|
26
|
-
import {
|
|
4
|
+
import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-gwpm28fu.mjs";
|
|
5
|
+
import { a as killOnAbort, f as throwIfCancelled, t as runOperationFile } from "./operation-exec-BW0em61G.mjs";
|
|
6
|
+
import { r as readWorkspaceState } from "./workspace-state-U08dEzhG.mjs";
|
|
7
|
+
import { $ as settingOriginScope, B as realpathInside, H as remoteEasFallbackSetting, Ht as makeTemporaryDirectory, R as publicUrlSetting, Ut as removeTemporaryEntry, W as resolveAndroidLayout, m as defaultAndroidLayout, nt as settingsLayers, rt as tunnelModeSetting } from "./settings-C7O8A6ZI.mjs";
|
|
8
|
+
import { v as detectIsExpo } from "./project-wM_XFTvE.mjs";
|
|
9
|
+
import { Bn as checkEasAuth, Fn as processContext, Jn as resolveRemote, Un as loadProjectProvider, Xn as bundleInvocation, Y as statsProjectKey } from "./budget-Cvwn54qV.mjs";
|
|
10
|
+
import { C as compareAssetManifests, S as captureAssetManifest, _ as storedAssetManifest, b as untrackedNativeFiles, c as fingerprintDiffRecord, g as storeBuild, h as resolveBuild, i as configInputsChanged, l as fingerprintProject, m as refingerprintAfterMutation, n as buildCacheKey, r as changedDuringBuildLine, s as filesystemBuildCapability, u as inputsChangedDuringBuild, w as readAssetManifest, x as assetDiffReason, y as untrackedMissLine } from "./build-cache-Dv7RN200.mjs";
|
|
11
|
+
import { E as findBuildTool, F as listAvdsAsync, I as listInstalledSystemImages, K as ownedAvdSystemImage, V as ownedAvdDirectory, X as pickDefaultSystemImage, k as hostSystemImageArch, l as androidSystemImageAbi, r as androidBuildToolName } from "./android-C7sVmyI9.mjs";
|
|
12
|
+
import { t as cleanLine } from "./server-expo-CrjB29pq.mjs";
|
|
13
|
+
import { o as resolveCcache } from "./ccache-Btwc36-I.mjs";
|
|
14
|
+
import { _ as tailLines, h as startBuildHeartbeat, r as HEARTBEAT_INTERVAL_MS } from "./xcode-BXn9-xYx.mjs";
|
|
15
|
+
import { r as androidToolchainAsync, t as androidRequirements } from "./toolchain-DpJMHq0n.mjs";
|
|
16
|
+
import { h as detectAppIds, m as detectAndroidPackage } from "./start-EojN4WFz.mjs";
|
|
17
|
+
import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-Dvd8hC21.mjs";
|
|
18
|
+
import { t as readDoctorFingerprint } from "./doctor-fingerprint-DZLoYFVb.mjs";
|
|
19
|
+
import { i as planEasDevelopmentBuild } from "./eas-build-CwknaQYj.mjs";
|
|
20
|
+
import { a as staleNativeDirRefusal, i as runPrebuild, n as planPrebuildAsync, o as explainBuildMiss, r as recordPrebuild, s as fingerprintErrorMissReason, t as planPrebuild } from "./prebuild-D4JoEAEs.mjs";
|
|
21
|
+
import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-yUiOjnVY.mjs";
|
|
22
|
+
import { t as AndroidRecipeRefusal } from "./android-project-BCAAmMwz.mjs";
|
|
23
|
+
import { c as resolveAndroidRunPlan } from "./result-D2Ykz_iD.mjs";
|
|
24
|
+
import { t as checkEasFallback } from "./eas-fallback-CSgAulr5.mjs";
|
|
25
|
+
import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-CCzXlc8r.mjs";
|
|
26
|
+
import { n as planFlagRefusal, r as planPayload, t as planCachedBuild } from "./build-plan-DUC8Ka9y.mjs";
|
|
27
|
+
import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-Bwhh4S7V.mjs";
|
|
28
|
+
import { t as planHostedDevice } from "./plan-placement-DIsMtN-d.mjs";
|
|
29
|
+
import { constants, existsSync, mkdirSync, readFileSync, renameSync } from "node:fs";
|
|
27
30
|
import { basename, dirname, isAbsolute, join, relative } from "node:path";
|
|
28
|
-
import { loadCacheProvider } from "@stim-cli/cache";
|
|
29
31
|
import chalk from "chalk";
|
|
32
|
+
import { copyFile } from "node:fs/promises";
|
|
33
|
+
import { loadCacheProvider } from "@stim-cli/cache";
|
|
30
34
|
//#region src/engine/apk-swap.ts
|
|
31
35
|
const ANDROID_BUNDLE_NAME = "index.android.bundle";
|
|
32
36
|
const LAST_LINES = 5;
|
|
@@ -176,7 +180,7 @@ function apksignerArgs({ keystore, apkPath }) {
|
|
|
176
180
|
apkPath
|
|
177
181
|
];
|
|
178
182
|
}
|
|
179
|
-
async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter = null, exec = null, spawnFn = null, mkdtemp = () => makeTemporaryDirectory(cachedApkPath, "stim-apk-swap-"), exists = existsSync, hermesEnabled = null, layout = defaultAndroidLayout(root), buildTools = null, findTool = findBuildTool, storedAssets = null, readManifest = readAssetManifest, now = Date.now, heartbeatMs = HEARTBEAT_INTERVAL_MS, onHeartbeat = (line) => console.error(line), platform = process.platform }) {
|
|
183
|
+
async function swapApkBundle({ context, root, isExpo, cachedApkPath, keystore, logWriter = null, exec = null, spawnFn = null, mkdtemp = () => makeTemporaryDirectory(cachedApkPath, "stim-apk-swap-"), exists = existsSync, hermesEnabled = null, layout = defaultAndroidLayout(root), buildTools = null, findTool = findBuildTool, storedAssets = null, readManifest = readAssetManifest, now = Date.now, heartbeatMs = HEARTBEAT_INTERVAL_MS, onHeartbeat = (line) => console.error(line), platform = process.platform }) {
|
|
180
184
|
const e = exec || getExecutor();
|
|
181
185
|
const startedAt = now();
|
|
182
186
|
const elapsed = () => now() - startedAt;
|
|
@@ -204,7 +208,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
204
208
|
const base = basename(cachedApkPath);
|
|
205
209
|
work = join(tmp, `unaligned-${base}`);
|
|
206
210
|
final = join(tmp, base);
|
|
207
|
-
copyApk(e, cachedApkPath, work, platform);
|
|
211
|
+
await copyApk(context, e, cachedApkPath, work, platform);
|
|
208
212
|
} catch (err) {
|
|
209
213
|
return fail("copy", `could not copy ${cachedApkPath} aside: ${describe(err)}`);
|
|
210
214
|
}
|
|
@@ -245,7 +249,8 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
245
249
|
};
|
|
246
250
|
let child;
|
|
247
251
|
try {
|
|
248
|
-
|
|
252
|
+
const invocation = bundleInvocation(root, isExpo, command.args.slice(1));
|
|
253
|
+
child = spawnDeclared(context, () => spawn(invocation.file, invocation.args, {
|
|
249
254
|
cwd: root,
|
|
250
255
|
stdio: [
|
|
251
256
|
"ignore",
|
|
@@ -253,10 +258,11 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
253
258
|
"pipe"
|
|
254
259
|
],
|
|
255
260
|
env: {
|
|
256
|
-
...process.env,
|
|
261
|
+
...context?.env ?? process.env,
|
|
257
262
|
FORCE_COLOR: "0"
|
|
258
263
|
}
|
|
259
|
-
});
|
|
264
|
+
}));
|
|
265
|
+
killOnAbort(context ? operationState(context).runSignal ?? context.signal : void 0)(child);
|
|
260
266
|
} catch (err) {
|
|
261
267
|
return fail("bundle", `could not run ${command.file} ${command.args[0]}: ${describe(err)}`);
|
|
262
268
|
}
|
|
@@ -296,7 +302,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
296
302
|
else {
|
|
297
303
|
const hbc = `${bundleOutput}.hbc`;
|
|
298
304
|
try {
|
|
299
|
-
e
|
|
305
|
+
await runOperationFile(context, e, hermesc, androidHermescArgs({
|
|
300
306
|
bundle: bundleOutput,
|
|
301
307
|
out: hbc
|
|
302
308
|
}), { timeoutMs: "unbounded" });
|
|
@@ -328,10 +334,10 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
328
334
|
if (!fresh) return fail("assets", `could not hash the assets emitted into ${assetsDest}, so the asset set cannot be verified`);
|
|
329
335
|
const diff = compareAssetManifests(fresh, storedAssets);
|
|
330
336
|
if (!diff.same) return refuse(assetDiffReason(diff), diff);
|
|
331
|
-
const jar = jarPath();
|
|
337
|
+
const jar = jarPath({ javaHome: (context?.env ?? process.env).JAVA_HOME ?? "" });
|
|
332
338
|
const updatesManifest = join(stage, "assets", UPDATES_MANIFEST_NAME);
|
|
333
339
|
try {
|
|
334
|
-
e
|
|
340
|
+
await runOperationFile(context, e, jar, [
|
|
335
341
|
"--extract",
|
|
336
342
|
"--file",
|
|
337
343
|
work,
|
|
@@ -345,7 +351,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
345
351
|
return fail("updates", `could not refresh the expo-updates manifest from ${work}: ${describe(err)}`);
|
|
346
352
|
}
|
|
347
353
|
try {
|
|
348
|
-
e
|
|
354
|
+
await runOperationFile(context, e, jar, [
|
|
349
355
|
"--update",
|
|
350
356
|
"--file",
|
|
351
357
|
work,
|
|
@@ -360,7 +366,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
360
366
|
const tools = buildTools ?? findTool(["zipalign"]);
|
|
361
367
|
if (!tools) return fail("zipalign", "no zipalign found under the Android SDK build-tools; install one with `sdkmanager \"build-tools;36.0.0\"`");
|
|
362
368
|
try {
|
|
363
|
-
e
|
|
369
|
+
await runOperationFile(context, e, tools.path, zipalignArgs({
|
|
364
370
|
buildToolsMajor: tools.major,
|
|
365
371
|
input: work,
|
|
366
372
|
output: final
|
|
@@ -374,10 +380,19 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
374
380
|
} : findTool(["apksigner"]);
|
|
375
381
|
if (!signer) return fail("apksigner", "no apksigner found under the Android SDK build-tools; install one with `sdkmanager \"build-tools;36.0.0\"`");
|
|
376
382
|
try {
|
|
377
|
-
|
|
383
|
+
let signerFile = signer.path;
|
|
384
|
+
const signerArgs = apksignerArgs({
|
|
378
385
|
keystore,
|
|
379
386
|
apkPath: final
|
|
380
|
-
})
|
|
387
|
+
});
|
|
388
|
+
if (platform === "win32") {
|
|
389
|
+
const javaHome = ((context?.env ?? process.env).JAVA_HOME ?? "").replaceAll("\"", "");
|
|
390
|
+
signerFile = javaHome ? join(javaHome, "bin", "java.exe") : "java.exe";
|
|
391
|
+
const fallbackJar = join(dirname(signer.path), "..", "framework", "apksigner.jar");
|
|
392
|
+
const signerJar = [join(dirname(signer.path), "apksigner.jar"), join(dirname(signer.path), "lib", "apksigner.jar")].find(exists) ?? fallbackJar;
|
|
393
|
+
signerArgs.unshift("-Xmx1024M", "-Xss1m", "-jar", signerJar);
|
|
394
|
+
}
|
|
395
|
+
await runOperationFile(context, e, signerFile, signerArgs, keystore.password === null ? { timeoutMs: "unbounded" } : {
|
|
381
396
|
timeoutMs: "unbounded",
|
|
382
397
|
env: { [KEYSTORE_PASSWORD_ENV]: keystore.password },
|
|
383
398
|
redact: [keystore.password]
|
|
@@ -401,16 +416,20 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
|
|
|
401
416
|
if (note) result.note = note;
|
|
402
417
|
return result;
|
|
403
418
|
}
|
|
404
|
-
function copyApk(e, from, to, platform) {
|
|
419
|
+
async function copyApk(context, e, from, to, platform) {
|
|
405
420
|
if (platform === "darwin") try {
|
|
406
|
-
e
|
|
421
|
+
await runOperationFile(context, e, "cp", [
|
|
407
422
|
"-c",
|
|
408
423
|
from,
|
|
409
424
|
to
|
|
410
425
|
], { timeoutMs: "unbounded" });
|
|
411
426
|
return;
|
|
412
|
-
} catch {
|
|
413
|
-
|
|
427
|
+
} catch {
|
|
428
|
+
throwIfCancelled(context ? operationState(context).runSignal ?? context.signal : void 0, "APK swap");
|
|
429
|
+
}
|
|
430
|
+
throwIfCancelled(context ? operationState(context).runSignal ?? context.signal : void 0, "APK swap");
|
|
431
|
+
await copyFile(from, to, constants.COPYFILE_FICLONE);
|
|
432
|
+
throwIfCancelled(context ? operationState(context).runSignal ?? context.signal : void 0, "APK swap");
|
|
414
433
|
}
|
|
415
434
|
function describe(err) {
|
|
416
435
|
const e = err;
|
|
@@ -425,27 +444,24 @@ const DEFAULT_PLAN_DEPS = {
|
|
|
425
444
|
listSystemImages: listInstalledSystemImages,
|
|
426
445
|
avdSystemImage: ownedAvdSystemImage,
|
|
427
446
|
avdDirectory: ownedAvdDirectory,
|
|
428
|
-
listAvds,
|
|
447
|
+
listAvds: listAvdsAsync,
|
|
429
448
|
loadCacheProvider,
|
|
430
449
|
loadProjectProvider,
|
|
431
450
|
checkEasAuth,
|
|
432
451
|
resolveRemote,
|
|
433
|
-
planPrebuild
|
|
452
|
+
planPrebuild: planPrebuildAsync
|
|
434
453
|
};
|
|
435
|
-
function note(line) {
|
|
436
|
-
console.error(line);
|
|
437
|
-
}
|
|
438
454
|
function refuse(refusal, lines = []) {
|
|
439
455
|
return {
|
|
440
456
|
refusal,
|
|
441
457
|
lines
|
|
442
458
|
};
|
|
443
459
|
}
|
|
444
|
-
function emulatorImage(root, slot, requested, deps) {
|
|
460
|
+
async function emulatorImage(root, slot, requested, deps, signal) {
|
|
445
461
|
const record = deviceSlotPlatforms(getProject(root), slot)?.android;
|
|
446
462
|
if (record?.avdName && !record.setupIncomplete) {
|
|
447
463
|
if (record.owned && deps.avdDirectory(record.avdName)) return { systemImage: deps.avdSystemImage(record.avdName) };
|
|
448
|
-
if (!record.owned && avdListed(record.avdName, deps.listAvds)) return { systemImage: null };
|
|
464
|
+
if (!record.owned && await avdListed(record.avdName, deps.listAvds, signal)) return { systemImage: null };
|
|
449
465
|
}
|
|
450
466
|
let images;
|
|
451
467
|
try {
|
|
@@ -466,22 +482,29 @@ function emulatorImage(root, slot, requested, deps) {
|
|
|
466
482
|
remedy: `Install one, e.g.: sdkmanager "system-images;android-36;google_apis;${arch}", then try again.`
|
|
467
483
|
} };
|
|
468
484
|
}
|
|
469
|
-
function avdListed(avdName, list) {
|
|
485
|
+
async function avdListed(avdName, list, signal) {
|
|
470
486
|
try {
|
|
471
|
-
return list({
|
|
487
|
+
return (await list({
|
|
488
|
+
timeoutMs: 1e4,
|
|
489
|
+
signal
|
|
490
|
+
})).includes(avdName);
|
|
472
491
|
} catch {
|
|
492
|
+
signal?.throwIfAborted();
|
|
473
493
|
return false;
|
|
474
494
|
}
|
|
475
495
|
}
|
|
476
|
-
async function planReactNativeAndroid(root, opts, runtimeKind, { context: settingsContext, settings }, layout, variantProblem, overrides = {}) {
|
|
496
|
+
async function planReactNativeAndroid(root, opts, runtimeKind, { context: settingsContext, settings }, layout, variantProblem, overrides = {}, operation = processContext(root)) {
|
|
497
|
+
const note = (line) => operation.output("stderr", `${line}\n`);
|
|
477
498
|
const deps = {
|
|
478
499
|
...DEFAULT_PLAN_DEPS,
|
|
479
500
|
...overrides
|
|
480
501
|
};
|
|
481
502
|
const slot = validateDeviceSlot(opts.slot);
|
|
482
|
-
const planned = resolveAndroidRunPlan({
|
|
503
|
+
const planned = await resolveAndroidRunPlan({
|
|
483
504
|
settings,
|
|
484
505
|
settingsContext,
|
|
506
|
+
env: operation?.env,
|
|
507
|
+
signal: operation?.signal,
|
|
485
508
|
slot,
|
|
486
509
|
easProfile: opts.easProfile,
|
|
487
510
|
variant: opts.variant ?? null,
|
|
@@ -516,6 +539,9 @@ async function planReactNativeAndroid(root, opts, runtimeKind, { context: settin
|
|
|
516
539
|
};
|
|
517
540
|
if (opts.easProfile !== void 0) {
|
|
518
541
|
const eas = await planEasDevelopmentBuild({
|
|
542
|
+
context: operation,
|
|
543
|
+
env: operation?.env,
|
|
544
|
+
signal: operation?.signal,
|
|
519
545
|
root,
|
|
520
546
|
platform: PLATFORM,
|
|
521
547
|
profile: opts.easProfile,
|
|
@@ -547,12 +573,14 @@ async function planReactNativeAndroid(root, opts, runtimeKind, { context: settin
|
|
|
547
573
|
remedy: "Run `stim android` to build with the CAS, or set optimizations.android.compilerCache to ccache."
|
|
548
574
|
});
|
|
549
575
|
const abiKeyed = build.targetAbiOnly && !build.release;
|
|
550
|
-
|
|
576
|
+
let localImageRead;
|
|
577
|
+
const localImage = () => localImageRead ??= abiKeyed ? emulatorImage(root, slot, target.systemImage, deps, operation.signal) : Promise.resolve({ systemImage: null });
|
|
551
578
|
let image;
|
|
552
579
|
let hostedAbi = null;
|
|
553
580
|
let placement;
|
|
554
581
|
if (target.kind === "hosted") {
|
|
555
582
|
const hostedPlan = await planHostedDevice({
|
|
583
|
+
operation,
|
|
556
584
|
root,
|
|
557
585
|
slot,
|
|
558
586
|
platform: "android",
|
|
@@ -561,14 +589,16 @@ async function planReactNativeAndroid(root, opts, runtimeKind, { context: settin
|
|
|
561
589
|
...target.systemImage ? { systemImage: target.systemImage } : {},
|
|
562
590
|
...target.deviceProfile ? { deviceProfile: target.deviceProfile } : {}
|
|
563
591
|
},
|
|
564
|
-
sameKey: (choice) => {
|
|
592
|
+
sameKey: async (choice) => {
|
|
565
593
|
if (build.targetAbiOnly && build.release) return !("architecture" in choice && choice.architecture);
|
|
566
594
|
if (!abiKeyed) return true;
|
|
567
|
-
const local = localImage();
|
|
595
|
+
const local = await localImage();
|
|
568
596
|
if ("refusal" in local || !("systemImage" in choice)) return null;
|
|
569
597
|
return androidSystemImageAbi(local.systemImage) === androidSystemImageAbi(choice.systemImage);
|
|
570
598
|
},
|
|
571
599
|
...remoteEasFallbackSetting(settings) ? { eas: () => checkEasFallback({
|
|
600
|
+
operation,
|
|
601
|
+
env: operation?.env,
|
|
572
602
|
root,
|
|
573
603
|
platform: "android",
|
|
574
604
|
slot,
|
|
@@ -586,8 +616,8 @@ async function planReactNativeAndroid(root, opts, runtimeKind, { context: settin
|
|
|
586
616
|
});
|
|
587
617
|
placement = hostedPlan.placement;
|
|
588
618
|
if (hostedPlan.kind === "hosted" && "architecture" in hostedPlan.choice) hostedAbi = hostedPlan.choice.architecture ?? null;
|
|
589
|
-
image = hostedPlan.kind === "hosted" ? { systemImage: abiKeyed && "systemImage" in hostedPlan.choice ? hostedPlan.choice.systemImage : null } : localImage();
|
|
590
|
-
} else image = localImage();
|
|
619
|
+
image = hostedPlan.kind === "hosted" ? { systemImage: abiKeyed && "systemImage" in hostedPlan.choice ? hostedPlan.choice.systemImage : null } : await localImage();
|
|
620
|
+
} else image = await localImage();
|
|
591
621
|
if ("refusal" in image) return refuse(image.refusal);
|
|
592
622
|
const { abi, runOptions, remoteRunOptions } = androidBuildOptions({
|
|
593
623
|
release: build.release,
|
|
@@ -602,22 +632,30 @@ async function planReactNativeAndroid(root, opts, runtimeKind, { context: settin
|
|
|
602
632
|
});
|
|
603
633
|
let fingerprint;
|
|
604
634
|
try {
|
|
605
|
-
fingerprint = await
|
|
635
|
+
fingerprint = operation && reportSignal(operation) ? await readDoctorFingerprint(operation, {
|
|
636
|
+
root,
|
|
637
|
+
platform: PLATFORM,
|
|
638
|
+
androidLayout: layout
|
|
639
|
+
}) : await deps.fingerprint(root, {
|
|
606
640
|
platform: PLATFORM,
|
|
607
641
|
androidLayout: layout
|
|
608
642
|
});
|
|
609
643
|
} catch (error) {
|
|
644
|
+
operation?.signal.throwIfAborted();
|
|
610
645
|
return refuse({
|
|
611
646
|
code: NO_FINGERPRINT,
|
|
612
647
|
message: `@expo/fingerprint could not fingerprint ${root}: ${error?.message || error}`,
|
|
613
648
|
remedy: "Fix the @expo/fingerprint error above, then retry."
|
|
614
649
|
});
|
|
615
650
|
}
|
|
616
|
-
if (!fingerprint?.hash)
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
651
|
+
if (!fingerprint?.hash) {
|
|
652
|
+
operation?.signal.throwIfAborted();
|
|
653
|
+
return refuse({
|
|
654
|
+
code: NO_FINGERPRINT,
|
|
655
|
+
message: `@expo/fingerprint returned no hash for ${root}, so the build cache cannot be addressed.`,
|
|
656
|
+
remedy: "Check the project native inputs and the @expo/fingerprint error above, then retry."
|
|
657
|
+
});
|
|
658
|
+
}
|
|
621
659
|
const plan = await planCachedBuild({
|
|
622
660
|
...planTarget,
|
|
623
661
|
isExpo,
|
|
@@ -629,6 +667,7 @@ async function planReactNativeAndroid(root, opts, runtimeKind, { context: settin
|
|
|
629
667
|
expoRemote: abi || build.profile || !build.cache.remote ? null : { runOptions: remoteRunOptions }
|
|
630
668
|
}, {
|
|
631
669
|
...deps,
|
|
670
|
+
operation,
|
|
632
671
|
note
|
|
633
672
|
});
|
|
634
673
|
return placement ? {
|
|
@@ -647,7 +686,7 @@ function reactNativeAndroidProject(root, { context, settings }, dependencies = {
|
|
|
647
686
|
variant
|
|
648
687
|
});
|
|
649
688
|
return {
|
|
650
|
-
plan: (options, resolved) => planReactNativeAndroid(root, options, runtimeKind, resolved, layout, variantProblem, dependencies.plan),
|
|
689
|
+
plan: (options, resolved, operation) => planReactNativeAndroid(root, options, runtimeKind, resolved, layout, variantProblem, dependencies.plan, operation),
|
|
651
690
|
isExpo,
|
|
652
691
|
appIds: () => detectAppIds(root, void 0, layout.moduleDir),
|
|
653
692
|
packageRemedy: `Set \`expo.android.package\` in app.json / app.config.js, or \`namespace\` in ${relative(root, layout.moduleDir) || "."}/build.gradle.`,
|
|
@@ -670,7 +709,7 @@ function reactNativeAndroidProject(root, { context, settings }, dependencies = {
|
|
|
670
709
|
artifact: (artifactContext) => reactNativeAndroidArtifact(artifactContext, isExpo, layout, context, dependencies)
|
|
671
710
|
};
|
|
672
711
|
}
|
|
673
|
-
function reactNativeAndroidArtifact({ root, buildLog, writer, settings, buildPlan, target, phase, out, step, estimates }, isExpo, layout, context, { fingerprint = fingerprintProject, untracked = untrackedNativeFiles, resolveCached = resolveBuild, storeCached = storeBuild, storedAssets = storedAssetManifest, captureAssets = captureAssetManifest, loadProvider = loadProjectProvider, planPrebuildFor = planPrebuild, prebuild = runPrebuild, build = buildAndroid, ccacheFor = resolveCcache, swapApk = swapApkBundle, readState = readWorkspaceState }) {
|
|
712
|
+
function reactNativeAndroidArtifact({ operation, root, buildLog, writer, settings, buildPlan, target, phase, out, step, estimates }, isExpo, layout, context, { fingerprint = fingerprintProject, untracked = untrackedNativeFiles, resolveCached = resolveBuild, storeCached = storeBuild, storedAssets = storedAssetManifest, captureAssets = captureAssetManifest, loadProvider = loadProjectProvider, planPrebuildFor = planPrebuild, prebuild = runPrebuild, build = buildAndroid, ccacheFor = resolveCcache, swapApk = swapApkBundle, readState = readWorkspaceState }) {
|
|
674
713
|
const { variant, release, profile, cas } = buildPlan;
|
|
675
714
|
const runOptions = {
|
|
676
715
|
...variant ? { variant } : {},
|
|
@@ -702,6 +741,8 @@ function reactNativeAndroidArtifact({ root, buildLog, writer, settings, buildPla
|
|
|
702
741
|
return null;
|
|
703
742
|
}
|
|
704
743
|
const swap = await swapApk({
|
|
744
|
+
context: operation,
|
|
745
|
+
onHeartbeat: out,
|
|
705
746
|
root,
|
|
706
747
|
isExpo,
|
|
707
748
|
cachedApkPath: cachedPath,
|
|
@@ -751,6 +792,7 @@ function reactNativeAndroidArtifact({ root, buildLog, writer, settings, buildPla
|
|
|
751
792
|
return identity();
|
|
752
793
|
},
|
|
753
794
|
cache: (compiled = false) => filesystemBuildCapability({
|
|
795
|
+
context: operation,
|
|
754
796
|
resolve: resolveCached,
|
|
755
797
|
store: storeCached,
|
|
756
798
|
sources,
|
|
@@ -816,7 +858,7 @@ function reactNativeAndroidArtifact({ root, buildLog, writer, settings, buildPla
|
|
|
816
858
|
identity: identity(),
|
|
817
859
|
rekeyedBy,
|
|
818
860
|
cacheRefusal: editedConfig.length ? "prebuild changed config inputs, so the APK cannot be cached" : null,
|
|
819
|
-
...prebuildRan ? { androidPackage: detectAndroidPackage(root, layout.moduleDir) } : {}
|
|
861
|
+
...prebuildRan ? { androidPackage: await detectAndroidPackage(root, layout.moduleDir) } : {}
|
|
820
862
|
};
|
|
821
863
|
},
|
|
822
864
|
async validate() {
|
|
@@ -854,10 +896,13 @@ function reactNativeAndroidArtifact({ root, buildLog, writer, settings, buildPla
|
|
|
854
896
|
abi: target.abi
|
|
855
897
|
}, {
|
|
856
898
|
estimateMs: estimates().coldBuildMs,
|
|
899
|
+
onHeartbeat: out,
|
|
900
|
+
onNote: out,
|
|
857
901
|
ccache: buildPlan.compilerCache === "ccache" ? ccacheFor({
|
|
858
902
|
root,
|
|
859
903
|
layout,
|
|
860
|
-
onNote: out
|
|
904
|
+
onNote: out,
|
|
905
|
+
env: operation?.env
|
|
861
906
|
}) : null,
|
|
862
907
|
cas,
|
|
863
908
|
buildCache: buildPlan.gradleBuildCache,
|
|
@@ -885,19 +930,23 @@ function reactNativeAndroidArtifact({ root, buildLog, writer, settings, buildPla
|
|
|
885
930
|
};
|
|
886
931
|
},
|
|
887
932
|
untrackedLine: () => untrackedMissLine(untracked({ projectRoot: root })),
|
|
888
|
-
|
|
889
|
-
load: () => loadProvider(root, {
|
|
933
|
+
expoCache: target.abi || cas || profile || !buildPlan.cache.remote ? null : {
|
|
934
|
+
load: () => loadProvider(root, {
|
|
935
|
+
context: operation,
|
|
936
|
+
isExpo
|
|
937
|
+
}),
|
|
890
938
|
runOptions: Object.keys(runOptions).length ? runOptions : null
|
|
891
939
|
},
|
|
892
940
|
offload: {
|
|
893
941
|
unsupported: release ? `${variant} builds build here` : cas ? "Apple Clang CAS builds build here" : !buildPlan.cache.write ? "the build cache is off" : null,
|
|
894
|
-
target: () => ({
|
|
942
|
+
target: async () => ({
|
|
895
943
|
platform: "android",
|
|
896
|
-
local:
|
|
944
|
+
local: await androidToolchainAsync(operation?.env),
|
|
897
945
|
requires: androidRequirements(root)
|
|
898
946
|
}),
|
|
899
947
|
request: {
|
|
900
948
|
platform: "android",
|
|
949
|
+
cacheArtifact: buildPlan.cache.write && buildPlan.cache.remote,
|
|
901
950
|
isExpo,
|
|
902
951
|
android: {
|
|
903
952
|
variant,
|