stim 1.20.2 → 1.21.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 +88 -8
- package/dist/acquire-artifact-CD4lbiWE.mjs +153 -0
- package/dist/act-DHAw2A2S.mjs +2667 -0
- package/dist/activity-BzVfHSrY.mjs +1376 -0
- package/dist/{agent-device-usage-output-Dzgv6lgR.mjs → agent-device-usage-output-zh1vhbLp.mjs} +21 -65
- package/dist/{android-HqP1_vB_.mjs → android-BEJ8Jpl7.mjs} +2 -2
- package/dist/{android-DCKZrNvV.mjs → android-BLgbNqox.mjs} +128 -78
- package/dist/{android-Dlzxshgp.mjs → android-CV_GCELZ.mjs} +5 -5
- package/dist/{android-Mz_Inn3w.mjs → android-DUYkNF4u.mjs} +184 -102
- package/dist/{android-cas-Bl-cLJBk.mjs → android-cas-Ct5b1xCK.mjs} +7 -6
- package/dist/android-cas-compiler.mjs +2 -2
- package/dist/android-project-BCAAmMwz.mjs +12 -0
- package/dist/api.d.mts +740 -8
- package/dist/api.mjs +585 -1
- package/dist/{artifact-HSwkIWEQ.mjs → artifact-B8T3S5gi.mjs} +223 -201
- package/dist/{artifact-D3czlUvT.mjs → artifact-DAuZ-FNU.mjs} +158 -148
- package/dist/{browser-web-CA-F1GQo.mjs → browser-web-QQzVjz3O.mjs} +26 -24
- package/dist/budget-Bs6SxxzO.mjs +9154 -0
- package/dist/{build-DYDbfkk5.mjs → build-CoPzQRNw.mjs} +144 -96
- package/dist/build-cache-DmyR9Zzc.mjs +602 -0
- package/dist/build-plan-CaFskB7_.mjs +188 -0
- package/dist/{cache-manifest-XH-fvDUj.mjs → cache-manifest-DkkqguoK.mjs} +2 -2
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{ccache-zdKiYQ3E.mjs → ccache-BJRZ9pG3.mjs} +10 -9
- package/dist/{cdp-Dq_ypAlJ.mjs → cdp-CWmIUMbw.mjs} +18 -5
- package/dist/{chrome-BnzZMqsR.mjs → chrome-B6tfCta1.mjs} +7 -4
- package/dist/{cli-CLP3diBm.mjs → cli-0DYf8QhQ.mjs} +20 -20
- package/dist/cli.mjs +1 -1
- package/dist/client-B7QVOlCr.d.mts +253 -0
- package/dist/client-UXD70ZbM.mjs +1406 -0
- package/dist/collector-run.d.mts +4 -40
- package/dist/collector-run.mjs +9 -8
- package/dist/{command-output-BTy8hZ0F.mjs → command-output-B1UrjZHL.mjs} +1 -1
- package/dist/config-CYcBF478.mjs +949 -0
- package/dist/{created-devices-Dzd5C2LF.mjs → created-devices-CqeBlrEn.mjs} +3 -3
- package/dist/{dependency-state-DG0p31-y.mjs → dependency-state-BbKQW83h.mjs} +20 -5
- package/dist/{detached-entry-B9C_zeQC.mjs → detached-entry-DFRyG1_o.mjs} +1 -1
- package/dist/{dev-client-DAWVIGBu.mjs → dev-client-UOeESKm6.mjs} +2 -2
- package/dist/device-DCxH7_By.mjs +1068 -0
- package/dist/{device-BECOiufl.mjs → device-ExJq8Ei7.mjs} +35 -35
- package/dist/{device-capacity-CBUAcRyQ.mjs → device-capacity-CMlqEcvw.mjs} +43 -13
- package/dist/device-host-worker.mjs +65 -61
- package/dist/{device-ios-COSi6oS1.mjs → device-ios-DRUeKaFV.mjs} +48 -45
- package/dist/{device-lease-run-Cw2M4z51.mjs → device-lease-run-C8raGFoP.mjs} +14 -26
- package/dist/{device-pool-Bf-pOhSw.mjs → device-pool-DMRpVX9a.mjs} +5 -5
- package/dist/doctor-BLHCYxzi.mjs +2 -0
- package/dist/{doctor-kfMBnUw6.mjs → doctor-DTvaDOda.mjs} +281 -317
- package/dist/{doctor-CB8oZKCk.mjs → doctor-Dhqebm0q.mjs} +183 -91
- package/dist/doctor-fingerprint.mjs +19 -0
- package/dist/{doctor-watchman-BRyV2adA.mjs → doctor-watchman-Cv1F10Kj.mjs} +40 -21
- package/dist/{eas-build-JyfqyHfC.mjs → eas-build-BomfRnFT.mjs} +53 -20
- package/dist/{build-plan-B7SZsc2N.mjs → eas-fallback-DJwZpy0c.mjs} +26 -208
- package/dist/{watchman-CPQFZLXY.mjs → eas-session-ledger-op6A54yi.mjs} +229 -11
- package/dist/{error-diagnostics-BR677IDM.mjs → error-diagnostics-Bf0rZvG9.mjs} +172 -82
- package/dist/exec-H20xSg2T.d.mts +65 -0
- package/dist/exec-_UbtCQcG.mjs +750 -0
- package/dist/gc-C-WwL0yi.mjs +3 -0
- package/dist/{gc-qWOMdnER.mjs → gc-_-dCXdyL.mjs} +584 -796
- package/dist/git-C3iTsJaZ.mjs +73 -0
- package/dist/{guide-G9cAbVAc.mjs → guide-Yqwt2bd6.mjs} +941 -269
- package/dist/{hosted-android-C3MHGld1.mjs → hosted-android-Bw-honsd.mjs} +8 -6
- package/dist/{hosted-client-ZEKpS9vw.mjs → hosted-client-DB_gBPfY.mjs} +34 -19
- package/dist/{hosted-ios-l-o3iM9J.mjs → hosted-ios-CUvOf4Vr.mjs} +1 -1
- package/dist/{hosted-logs-EzQM7-3Z.mjs → hosted-logs-DL_P5AdN.mjs} +77 -43
- package/dist/{hosted-macos-BACVAVqE.mjs → hosted-macos-QI141yKk.mjs} +21 -17
- package/dist/{hosted-native-A4s1QPXe.mjs → hosted-native-Ksyjgzq-.mjs} +30 -21
- package/dist/idle-BVeRGroT.d.mts +24 -0
- package/dist/{idle-shutdown-DtxhPTKe.mjs → idle-shutdown-DaKmZi0z.mjs} +11 -10
- package/dist/{ios-BwVCF7oA.mjs → ios-CQ68hG9s.mjs} +8 -8
- package/dist/{ios-RkW4pnQf.mjs → ios-CpByZy12.mjs} +140 -80
- package/dist/{ios-device-B5veSDDQ.mjs → ios-device-CXGP1bsD.mjs} +1 -1
- package/dist/{ios-device-D7pi2Sca.mjs → ios-device-CwFMehUS.mjs} +51 -26
- package/dist/{ios-project-K9hY_Jab.mjs → ios-project-WuwwBdvW.mjs} +13 -13
- package/dist/{ios-nOLJGVdy.mjs → ios-qNJt4dFm.mjs} +1 -1
- package/dist/ios-signing-DTTIChGs.mjs +489 -0
- package/dist/{ios-state-CBLe1xYw.mjs → ios-state-DvFX-K_l.mjs} +1 -1
- package/dist/{ios-Ce7bc7br.mjs → ios-ubFsBzwq.mjs} +129 -86
- package/dist/{js-swap-Bb3nsS07.mjs → js-swap-Cc1dttps.mjs} +53 -26
- package/dist/{launch-F4sOqAhB.mjs → launch-CD1yVc7U.mjs} +91 -90
- package/dist/{launch-C3qJ6Agb.mjs → launch-Zq2mOSDy.mjs} +82 -541
- package/dist/logs-BS00Anxf.mjs +352 -0
- package/dist/logs-CMm05HxN.mjs +255 -0
- package/dist/{macos-D7uDvO-z.mjs → macos-B65--pPd.mjs} +1 -1
- package/dist/{macos-Ch5VJmcS.mjs → macos-C-0qJ6zq.mjs} +225 -212
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +122 -247
- package/dist/{metro-DnCEjCxs.mjs → metro-DEXpIhHC.mjs} +67 -12
- package/dist/{metro-gateway-CX9Xlkq2.mjs → metro-gateway-BMJNlj3E.mjs} +20 -12
- package/dist/{named-ports-4WopRPg-.mjs → named-ports-BWTzt6mu.mjs} +8 -63
- package/dist/native-android-JACyjTZs.mjs +844 -0
- package/dist/{native-gradle-inputs-BsLRrl7u.mjs → native-gradle-inputs-Bep9JcSF.mjs} +128 -140
- package/dist/native-inputs-TRTTTRxt.mjs +91 -0
- package/dist/native-run-DY_RLx3C.mjs +277 -0
- package/dist/{native-runtime-k8dTIrbK.mjs → native-runtime-Dg1Q7tfF.mjs} +9 -8
- package/dist/{native-xcode-inputs-CykopJdM.mjs → native-xcode-inputs-CB2iQeWq.mjs} +27 -18
- package/dist/{native-xcode-ios-Bbf30Gm0.mjs → native-xcode-ios-CXX39F7o.mjs} +96 -47
- package/dist/{ndjson-GOnbyvso.mjs → ndjson-CgE_o3Dl.mjs} +3 -3
- package/dist/offload-worker.d.mts +1 -46
- package/dist/offload-worker.mjs +197 -66
- package/dist/{ownership-DCtw_2IA.mjs → ownership-DEmM5vhh.mjs} +3 -3
- package/dist/{page-DRHy329N.mjs → page-CPaHeYqj.mjs} +7 -4
- package/dist/paths-BsJMoPP2.mjs +12 -0
- package/dist/paths-DQtTgsBf.mjs +42 -0
- package/dist/{placement-log-MOfPVgaM.mjs → placement-log-BqGbTa61.mjs} +5 -5
- package/dist/{plan-placement-V0TdzYXp.mjs → plan-placement-Bwj-IjY1.mjs} +6 -6
- package/dist/{ports-DdSUicVo.mjs → ports-D-MmCTdv.mjs} +3 -3
- package/dist/prebuild-uD_ipCxF.mjs +449 -0
- package/dist/{project-_phNIJfs.mjs → project-BZNjmW_8.mjs} +65 -37
- package/dist/{pull-request-CQ8sPbZa.mjs → pull-request-Lfetn8Kr.mjs} +2 -2
- package/dist/pull-request-zjCSAryH.d.mts +120 -0
- package/dist/pull-requests.d.mts +1 -119
- package/dist/pull-requests.mjs +1 -1
- package/dist/{react-native-android-CM1XRDwv.mjs → react-native-android-DuzH0cn3.mjs} +74 -48
- package/dist/{gradle-DSrXb6lG.mjs → react-native-build-rhk4smwQ.mjs} +292 -15
- package/dist/react-native-doctor-CQpuIMso.mjs +234 -0
- package/dist/{react-native-ios-Dhq_eiYQ.mjs → react-native-ios-Bhq1rJeV.mjs} +46 -28
- package/dist/{recordings-D0d5aQt0.mjs → recordings-DYteQSu4.mjs} +12 -9
- package/dist/{reload-C8JhxjSh.mjs → reload-CmTRFJaX.mjs} +93 -47
- package/dist/reload-DzjSl5P_.mjs +2 -0
- package/dist/{remote-BiR6aYjy.mjs → remote-ByYkXdGD.mjs} +15 -10
- package/dist/result-DNiS-tTP.mjs +434 -0
- package/dist/{run-BtPgpKks.mjs → run-D23HmJMs.mjs} +4 -5
- package/dist/selection-CSl9i5qU.mjs +619 -0
- package/dist/{server-bare-R2m_gsH8.mjs → server-bare-CxTrvDg8.mjs} +3 -4
- package/dist/{server-command-CTtCkmcQ.mjs → server-command-CtzloH3v.mjs} +14 -7
- package/dist/server-expo-C-90EhcG.mjs +2 -0
- package/dist/{server-expo-DsguMGUF.mjs → server-expo-DT_F_uVI.mjs} +50 -9
- package/dist/{settings-B717odTD.mjs → settings-CsJDEXgK.mjs} +234 -24
- package/dist/{settings-vk3mJGSm.d.mts → settings-DkdmlelE.d.mts} +6 -4
- package/dist/settings-T1gtc3bf.mjs +114 -0
- package/dist/settings-write-HyVZ8eQ8.mjs +359 -0
- package/dist/settings.schema.json +163 -16
- package/dist/{simslim-CCr3rE-A.mjs → simslim-Cgk17SXV.mjs} +14 -12
- package/dist/{slot-launch-DPt0m9Nd.mjs → slot-launch-DF8VfT64.mjs} +15 -20
- package/dist/{spawn-entry-Dcb7sDUz.mjs → spawn-entry-jw19m8Nl.mjs} +0 -1
- package/dist/stage-BIS0ydsV.mjs +183 -0
- package/dist/{start-BWqzODpb.mjs → start-7lpH7hmN.mjs} +63 -44
- package/dist/{start-TXeMmmO2.mjs → start-RChynRDp.mjs} +1 -1
- package/dist/{state-D1Icyjlu.mjs → state-C4ZtUisW.mjs} +40 -13
- package/dist/{state-CG_OFoaA.mjs → state-XMziexv2.mjs} +3 -2
- package/dist/{stats-BoY5sEPU.mjs → stats-53T7OTb9.mjs} +7 -13
- package/dist/stats-report-BFfMpWWF.mjs +16 -0
- package/dist/{status-WgFbkRzj.mjs → status-BL7jVyAB.mjs} +535 -447
- package/dist/status-CSi6tlRq.mjs +2 -0
- package/dist/{status-BTA7kKiQ.mjs → status-DqEUSSxs.mjs} +6 -4
- package/dist/{status-watch-C23ILtf9.mjs → status-watch-GDCfqpTE.mjs} +187 -22
- package/dist/status-worker.d.mts +1 -0
- package/dist/status-worker.mjs +19 -0
- package/dist/stim-desktop-C12we7lz.mjs +112 -0
- package/dist/{stop-DR6VoDIk.mjs → stop-Bk_1qiV6.mjs} +2 -2
- package/dist/{stop-BNmBMi1F.mjs → stop-CPzlM1L-.mjs} +138 -98
- package/dist/{stop-DPEhunlw.mjs → stop-D7h6jAXQ.mjs} +11 -10
- package/dist/supervisor-run.d.mts +8 -17
- package/dist/supervisor-run.mjs +63 -27
- package/dist/{support-DMTqj3Hm.mjs → support-67vraa1Q.mjs} +18 -11
- package/dist/{support-CwjbFs9H.mjs → support-Dlu37g6H.mjs} +12 -12
- package/dist/{swiftpm-macos-DRNVJWlb.mjs → swiftpm-macos-p8WZbxKU.mjs} +35 -24
- package/dist/toolchain-DhKwp9iI.mjs +2 -0
- package/dist/toolchain-Hp9sCpK4.mjs +873 -0
- package/dist/{trigger-CigAYjeL.mjs → trigger-BAahxUPq.mjs} +20 -5
- package/dist/trigger-Bf3uDcpv.mjs +2 -0
- package/dist/{warm-progress-BuY-Fvfn.mjs → warm-progress-BHX5r0Ei.mjs} +250 -156
- package/dist/{web-BDBMxDpx.mjs → web-CJmIj6AI.mjs} +18 -13
- package/dist/web-DknQETPs.mjs +2 -0
- package/dist/web-run.mjs +11 -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-process-lock-1_1OoVW5.mjs +57 -0
- package/dist/{workspace-state-DJt_MMvf.mjs → workspace-state-Cjuigeeu.mjs} +62 -58
- package/dist/{workspaces-C36s2jb9.mjs → workspaces-BccMFmGQ.mjs} +1188 -1079
- package/dist/worktree-CK2MpJW5.mjs +2 -0
- package/dist/{worktree-CgvJYJ-Q.mjs → worktree-DQ6Zi2Mv.mjs} +304 -53
- package/dist/xcode-Zlx3qjEs.mjs +896 -0
- package/package.json +7 -5
- 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/miss-reason-mKzZ4VvN.mjs +0 -238
- package/dist/native-android-D5qc3-_v.mjs +0 -226
- 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/spawn-claims-DVS5RkMS.mjs +0 -72
- package/dist/stage-KNTQopqv.mjs +0 -157
- package/dist/stim-desktop-BzBN2Em2.mjs +0 -63
- 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,212 +0,0 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
|
|
2
|
-
import { t as git } from "./git-DDfFzkMm.mjs";
|
|
3
|
-
import { a as updateWorkspaceState, r as readWorkspaceState } from "./workspace-state-DJt_MMvf.mjs";
|
|
4
|
-
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
5
|
-
import { _ as detectIsExpo } from "./project-_phNIJfs.mjs";
|
|
6
|
-
import { a as spawnDeclared } from "./spawn-claims-DVS5RkMS.mjs";
|
|
7
|
-
import { i as expoBinRefusal, r as expoBinPath } from "./server-expo-DsguMGUF.mjs";
|
|
8
|
-
import { existsSync } from "node:fs";
|
|
9
|
-
import { join } from "node:path";
|
|
10
|
-
//#region src/engine/prebuild.ts
|
|
11
|
-
const PREBUILD_ERROR = "STIM_PREBUILD_FAILED";
|
|
12
|
-
const LAST_LINES = 20;
|
|
13
|
-
function nativeDirName(platform) {
|
|
14
|
-
return platform === "android" ? "android" : "ios";
|
|
15
|
-
}
|
|
16
|
-
function nativeDir(root, platform) {
|
|
17
|
-
return join(root, nativeDirName(platform));
|
|
18
|
-
}
|
|
19
|
-
function nativeDirInFingerprint(sources, platform) {
|
|
20
|
-
const dir = nativeDirName(platform);
|
|
21
|
-
return sources.some((source) => source.type === "dir" && source.filePath === dir && source.hash != null);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* @expo/fingerprint leaves a native directory out of the hash when git ignores it (CNG), so the cache
|
|
25
|
-
* key only covers that directory when this workspace's recorded prebuild ran on the same fingerprint.
|
|
26
|
-
*/
|
|
27
|
-
function prebuildAction({ isExpo, nativeDirExists, nativeDirFingerprinted, nativeDirTracked, generatedFrom, fingerprint }) {
|
|
28
|
-
if (!isExpo) return "none";
|
|
29
|
-
if (!nativeDirExists) return "generate";
|
|
30
|
-
if (nativeDirFingerprinted || generatedFrom === fingerprint) return "none";
|
|
31
|
-
return nativeDirTracked ? "refuse" : "regenerate";
|
|
32
|
-
}
|
|
33
|
-
function prebuildRecord(state) {
|
|
34
|
-
const record = state?.prebuild;
|
|
35
|
-
return record && typeof record === "object" ? record : {};
|
|
36
|
-
}
|
|
37
|
-
function gitTracksNativeDir(root, platform) {
|
|
38
|
-
try {
|
|
39
|
-
return git(root, [
|
|
40
|
-
"ls-files",
|
|
41
|
-
"--",
|
|
42
|
-
nativeDirName(platform)
|
|
43
|
-
], { env: {
|
|
44
|
-
LC_ALL: "C",
|
|
45
|
-
LANGUAGE: "C"
|
|
46
|
-
} }).trim() !== "";
|
|
47
|
-
} catch (error) {
|
|
48
|
-
if (error?.code === "ENOENT") return false;
|
|
49
|
-
return !/not a git repository \(or any (of the parent directories|parent up to mount point)/.test(String(error?.message));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
function planPrebuild(root, platform, { isExpo, fingerprint, sources }) {
|
|
53
|
-
const nativeDirExists = existsSync(nativeDir(root, platform));
|
|
54
|
-
const fingerprinted = nativeDirInFingerprint(sources, platform);
|
|
55
|
-
const generatedFrom = prebuildRecord(readWorkspaceState(root))[platform];
|
|
56
|
-
return prebuildAction({
|
|
57
|
-
isExpo,
|
|
58
|
-
nativeDirExists,
|
|
59
|
-
nativeDirFingerprinted: fingerprinted,
|
|
60
|
-
nativeDirTracked: nativeDirExists && !fingerprinted && gitTracksNativeDir(root, platform),
|
|
61
|
-
generatedFrom: typeof generatedFrom === "string" ? generatedFrom : null,
|
|
62
|
-
fingerprint
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
function recordPrebuild(root, platform, fingerprint) {
|
|
66
|
-
updateWorkspaceState(root, (state) => ({
|
|
67
|
-
...state,
|
|
68
|
-
prebuild: {
|
|
69
|
-
...prebuildRecord(state),
|
|
70
|
-
[platform]: fingerprint
|
|
71
|
-
}
|
|
72
|
-
}));
|
|
73
|
-
}
|
|
74
|
-
function staleNativeDirRefusal(platform) {
|
|
75
|
-
const dir = nativeDirName(platform);
|
|
76
|
-
return {
|
|
77
|
-
code: PREBUILD_ERROR,
|
|
78
|
-
message: `The fingerprint leaves ${dir}/ out of the cache key, and Stim cannot show that ${dir}/ was generated from the current app config. Git tracks files in it, or could not say whether it does, so Stim will not regenerate it with \`expo prebuild --clean\`.`,
|
|
79
|
-
remedy: `Stop excluding ${dir}/ from the fingerprint (check .fingerprintignore) so the cache key covers its files, or add ${dir}/ to .gitignore and untrack it so Stim regenerates it from the app config.`
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
function prebuildRefusal({ isExpo, platform, nativeDirExists }) {
|
|
83
|
-
if (nativeDirExists || isExpo) return null;
|
|
84
|
-
const dir = nativeDirName(platform);
|
|
85
|
-
return {
|
|
86
|
-
code: PREBUILD_ERROR,
|
|
87
|
-
message: `This project has no ${dir}/ directory and is not an Expo (CNG) project, so Stim cannot generate one.`,
|
|
88
|
-
remedy: `Check out or generate the native project (\`npx @react-native-community/cli init\` produced one originally), or add \`expo\` to the project so \`expo prebuild\` can create ${dir}/.`
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
function prebuildFailure(logWriter, result) {
|
|
92
|
-
logWriter?.write?.({
|
|
93
|
-
src: "build",
|
|
94
|
-
level: "error",
|
|
95
|
-
msg: result.reason || "Expo prebuild failed.",
|
|
96
|
-
event: "prebuild_failed"
|
|
97
|
-
});
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
async function runPrebuild(root, platform, logWriter, { spawnFn = null, now = Date.now, isExpo = null, clean = false } = {}) {
|
|
101
|
-
const dirExists = existsSync(nativeDir(root, platform));
|
|
102
|
-
const refusal = prebuildRefusal({
|
|
103
|
-
isExpo: isExpo === null ? detectIsExpo(root) : isExpo,
|
|
104
|
-
platform,
|
|
105
|
-
nativeDirExists: dirExists
|
|
106
|
-
});
|
|
107
|
-
if (refusal) return prebuildFailure(logWriter, {
|
|
108
|
-
failed: true,
|
|
109
|
-
code: refusal.code,
|
|
110
|
-
reason: refusal.message,
|
|
111
|
-
remedy: refusal.remedy,
|
|
112
|
-
error: refusal,
|
|
113
|
-
lastLines: []
|
|
114
|
-
});
|
|
115
|
-
const bin = expoBinPath(root);
|
|
116
|
-
if (!bin) {
|
|
117
|
-
const binRefusal = expoBinRefusal(root, "prebuild");
|
|
118
|
-
return prebuildFailure(logWriter, {
|
|
119
|
-
failed: true,
|
|
120
|
-
code: PREBUILD_ERROR,
|
|
121
|
-
reason: binRefusal.message,
|
|
122
|
-
remedy: binRefusal.remedy,
|
|
123
|
-
lastLines: []
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
const spawn = spawnFn || ((cmd, args, opts) => getExecutor().spawn(cmd, args, opts));
|
|
127
|
-
const startedAt = now();
|
|
128
|
-
const tail = [];
|
|
129
|
-
const push = (line) => {
|
|
130
|
-
const msg = stripAnsi(String(line)).trimEnd();
|
|
131
|
-
if (!msg.trim()) return;
|
|
132
|
-
tail.push(msg);
|
|
133
|
-
if (tail.length > LAST_LINES) tail.shift();
|
|
134
|
-
logWriter?.write?.({
|
|
135
|
-
src: "build",
|
|
136
|
-
level: "debug",
|
|
137
|
-
msg,
|
|
138
|
-
raw: true,
|
|
139
|
-
event: "prebuild"
|
|
140
|
-
});
|
|
141
|
-
};
|
|
142
|
-
let child;
|
|
143
|
-
try {
|
|
144
|
-
child = spawnDeclared(() => spawn(bin, [
|
|
145
|
-
"prebuild",
|
|
146
|
-
"-p",
|
|
147
|
-
platform,
|
|
148
|
-
"--no-install",
|
|
149
|
-
...clean ? ["--clean"] : []
|
|
150
|
-
], {
|
|
151
|
-
cwd: root,
|
|
152
|
-
stdio: [
|
|
153
|
-
"ignore",
|
|
154
|
-
"pipe",
|
|
155
|
-
"pipe"
|
|
156
|
-
],
|
|
157
|
-
env: {
|
|
158
|
-
...process.env,
|
|
159
|
-
FORCE_COLOR: "0",
|
|
160
|
-
CI: "1"
|
|
161
|
-
}
|
|
162
|
-
}));
|
|
163
|
-
} catch (err) {
|
|
164
|
-
return prebuildFailure(logWriter, {
|
|
165
|
-
failed: true,
|
|
166
|
-
code: PREBUILD_ERROR,
|
|
167
|
-
reason: `Could not run \`expo prebuild\`: ${err?.message || err}`,
|
|
168
|
-
lastLines: []
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
const outReader = createLineReader(push);
|
|
172
|
-
const errReader = createLineReader(push);
|
|
173
|
-
child.stdout?.setEncoding?.("utf-8");
|
|
174
|
-
child.stderr?.setEncoding?.("utf-8");
|
|
175
|
-
child.stdout?.on("data", (chunk) => outReader.push(chunk));
|
|
176
|
-
child.stderr?.on("data", (chunk) => errReader.push(chunk));
|
|
177
|
-
const result = await waitForChild(child);
|
|
178
|
-
outReader.flush();
|
|
179
|
-
errReader.flush();
|
|
180
|
-
const durationMs = now() - startedAt;
|
|
181
|
-
if (result.error) return prebuildFailure(logWriter, {
|
|
182
|
-
failed: true,
|
|
183
|
-
code: PREBUILD_ERROR,
|
|
184
|
-
reason: `Could not run \`expo prebuild\`: ${result.error?.message || result.error}`,
|
|
185
|
-
lastLines: tail.slice(),
|
|
186
|
-
durationMs
|
|
187
|
-
});
|
|
188
|
-
if (result.code !== 0) {
|
|
189
|
-
const how = result.signal ? `signal ${result.signal}` : `exit code ${result.code}`;
|
|
190
|
-
return prebuildFailure(logWriter, {
|
|
191
|
-
failed: true,
|
|
192
|
-
code: PREBUILD_ERROR,
|
|
193
|
-
reason: `\`expo prebuild -p ${platform}\` failed (${how}).`,
|
|
194
|
-
lastLines: tail.slice(),
|
|
195
|
-
durationMs
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
if (!existsSync(nativeDir(root, platform))) return prebuildFailure(logWriter, {
|
|
199
|
-
failed: true,
|
|
200
|
-
code: PREBUILD_ERROR,
|
|
201
|
-
reason: `\`expo prebuild -p ${platform}\` succeeded but did not create ${nativeDirName(platform)}/.`,
|
|
202
|
-
lastLines: tail.slice(),
|
|
203
|
-
durationMs
|
|
204
|
-
});
|
|
205
|
-
return {
|
|
206
|
-
ok: true,
|
|
207
|
-
durationMs,
|
|
208
|
-
nativeDir: nativeDir(root, platform)
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
//#endregion
|
|
212
|
-
export { staleNativeDirRefusal as i, recordPrebuild as n, runPrebuild as r, planPrebuild as t };
|