stim 1.36.0 → 1.38.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.
Files changed (167) hide show
  1. package/README.md +3 -1
  2. package/dist/{acquire-artifact-DGTHCd0Q.mjs → acquire-artifact-QKPDkesw.mjs} +2 -2
  3. package/dist/{act-CvN9xyV6.mjs → act-Bh3t-NuH.mjs} +28 -34
  4. package/dist/{activity-BpdDvA8Q.mjs → activity-CANftndU.mjs} +6 -6
  5. package/dist/{agent-device-usage-output-pbhaW7_k.mjs → agent-device-usage-output-CuROXefb.mjs} +5 -5
  6. package/dist/{android-SJx1V3R3.mjs → android-27_JgJ1T.mjs} +7 -7
  7. package/dist/{android-B0qTdwnt.mjs → android-Biwc4Dck.mjs} +5 -5
  8. package/dist/{android-5wkcMFDG.mjs → android-DGLG_VQ3.mjs} +2 -2
  9. package/dist/{android-e9WP10cE.mjs → android-Z6Eev9rL.mjs} +51 -42
  10. package/dist/{android-cas-BS9_55U5.mjs → android-cas-BDAwwL82.mjs} +4 -4
  11. package/dist/android-cas-compiler.mjs +1 -1
  12. package/dist/{android-image-BZ57YL6R.mjs → android-image-BcUD6bPi.mjs} +3 -3
  13. package/dist/api.d.mts +12 -5
  14. package/dist/api.mjs +34 -31
  15. package/dist/{apk-signed-tail-eZyXIrnc.mjs → apk-signed-tail-DHMkXs4s.mjs} +2 -2
  16. package/dist/{artifact-C3srrGVU.mjs → artifact-Dc1GsK7o.mjs} +29 -15
  17. package/dist/{artifact-platform-DqCWUieN.mjs → artifact-platform-BaGL1i1X.mjs} +1 -1
  18. package/dist/{artifact-ubNdxo_K.mjs → artifact-sGoFVK1q.mjs} +12 -12
  19. package/dist/{auto-placement-CKFpFCuq.mjs → auto-placement-RNh4kx2T.mjs} +7 -7
  20. package/dist/{browser-web-B63vLrj6.mjs → browser-web-7Oj57Roa.mjs} +15 -15
  21. package/dist/{build-B_Dx9SKJ.mjs → build-DkE5vjp1.mjs} +29 -28
  22. package/dist/{build-cache-BW8T4oD2.mjs → build-cache-CJ65Efv7.mjs} +10 -7
  23. package/dist/{build-plan-CeIooJqn.mjs → build-plan-DWajg5l_.mjs} +8 -7
  24. package/dist/{cache-manifest-CxWkZmUr.mjs → cache-manifest-BO0TIcPV.mjs} +1 -1
  25. package/dist/cache-manifest.mjs +1 -1
  26. package/dist/{cdp-C216kOAn.mjs → cdp-CgT47_9A.mjs} +1 -1
  27. package/dist/{chrome-C8sC5tdl.mjs → chrome-DL5znvmo.mjs} +1 -1
  28. package/dist/{cli-COdXswmc.mjs → cli-BSlwv9hI.mjs} +21 -21
  29. package/dist/cli.mjs +1 -1
  30. package/dist/{client-KSWIeQLA.mjs → client-qwmHFSga.mjs} +16 -12
  31. package/dist/collector-run.mjs +7 -7
  32. package/dist/{command-output-T3cDctRE.mjs → command-output-DsjhOzJ3.mjs} +1 -1
  33. package/dist/{config-BA3TgoIP.mjs → config-CNmN-ndb.mjs} +2 -2
  34. package/dist/{dependencies-LH-7k1Vr.mjs → dependencies-oku1ZLep.mjs} +144 -71
  35. package/dist/{dependency-state-Blfp3AkG.mjs → dependency-state-CBhPJAs_.mjs} +2 -2
  36. package/dist/{detached-entry-tfrgGVWb.mjs → detached-entry-VqFeEE9W.mjs} +1 -1
  37. package/dist/{dev-client-MO_DjTZr.mjs → dev-client-DL5UtVdx.mjs} +2 -2
  38. package/dist/{device-DNTWFFB1.mjs → device-CxMwX0VO.mjs} +17 -16
  39. package/dist/{device-android-BB9Lugr8.mjs → device-android-CSlBXuh_.mjs} +9 -9
  40. package/dist/{device-capacity-CpAVcKgq.mjs → device-capacity-D_IlxZRL.mjs} +84 -37
  41. package/dist/device-host-worker.mjs +28 -16
  42. package/dist/{device-pool-BJToGG-q.mjs → device-pool-BEaTdtss.mjs} +3 -3
  43. package/dist/{device-provision-CxQDCtrc.mjs → device-provision-C9NPdCne.mjs} +10 -10
  44. package/dist/{device-BZWt_aPJ.mjs → device-yfuJ-v4s.mjs} +11 -11
  45. package/dist/{doctor-C-46SkBe.mjs → doctor-BAA3zN5U.mjs} +1 -1
  46. package/dist/{doctor-DV639Iw_.mjs → doctor-BQ1Kl44s.mjs} +15 -21
  47. package/dist/{doctor-CYZ45LnX.mjs → doctor-QNzDE4aW.mjs} +24 -24
  48. package/dist/{doctor-fingerprint-DqWvIhMb.mjs → doctor-fingerprint-Bo4z8YNP.mjs} +1 -1
  49. package/dist/doctor-fingerprint.mjs +1 -1
  50. package/dist/{doctor-watchman-TZxYt_98.mjs → doctor-watchman-B8e3s9ko.mjs} +5 -5
  51. package/dist/{eas-build-Xf5Jd6LR.mjs → eas-build-4rg9WpEg.mjs} +4 -4
  52. package/dist/{eas-fallback-DNYPNinw.mjs → eas-fallback-UGo0SG7T.mjs} +6 -6
  53. package/dist/{eas-session-ledger-CXZ4aix0.mjs → eas-session-ledger-BDpSdFDM.mjs} +6 -6
  54. package/dist/{error-diagnostics-CvB5bpPU.mjs → error-diagnostics-CW9xl6ot.mjs} +10 -10
  55. package/dist/{exec-CGuDzt40.mjs → exec-L37dbiIb.mjs} +7 -1
  56. package/dist/{gc-DiUhrVFo.mjs → gc-3DHVCn-k.mjs} +52 -36
  57. package/dist/{gc-8Qm_K1iy.mjs → gc-BQ5dXnC7.mjs} +2 -2
  58. package/dist/{guide-CuvHRP53.mjs → guide-DqJCc4vW.mjs} +209 -78
  59. package/dist/{hosted-android-D__HGVIO.mjs → hosted-android-gwLspaz6.mjs} +4 -4
  60. package/dist/{hosted-client-DMOOu8vD.mjs → hosted-client-B_h_bTlz.mjs} +4 -4
  61. package/dist/{hosted-logs-CClIktQM.mjs → hosted-logs-BpQSRDRU.mjs} +17 -10
  62. package/dist/{hosted-logs-sync-B7XCeqVm.mjs → hosted-logs-sync-D3L1hDpM.mjs} +5 -5
  63. package/dist/{hosted-macos-D4sDJIbB.mjs → hosted-macos-GK4O1s7x.mjs} +6 -6
  64. package/dist/{hosted-native-BiiUG_Q6.mjs → hosted-native-B6ur_0OJ.mjs} +8 -8
  65. package/dist/{ios-Qam0bT9n.mjs → ios-2Qr4_Zu2.mjs} +1 -1
  66. package/dist/{ios-BZuhvLGr.mjs → ios-Bi0bQiZ_.mjs} +8 -8
  67. package/dist/{ios-BhfpRfNf.mjs → ios-DQEzde6f.mjs} +23 -10
  68. package/dist/{ios-BhpUWyN7.mjs → ios-M7nRVb33.mjs} +100 -37
  69. package/dist/{ios-device-vhYL1N--.mjs → ios-device-BLm1BZB4.mjs} +3 -3
  70. package/dist/{ios-device-DLdEDWJj.mjs → ios-device-ygijU78G.mjs} +1 -1
  71. package/dist/{ios-project-Cz0S1Sz-.mjs → ios-project-Bsm-eqwv.mjs} +7 -7
  72. package/dist/ios-runtime-DLiKoOkd.mjs +150 -0
  73. package/dist/{ios-signing-BcH88ecn.mjs → ios-signing-rWR_Mu5Z.mjs} +3 -3
  74. package/dist/{ios-state-Avwz2cbZ.mjs → ios-state-tzD0s7pt.mjs} +1 -1
  75. package/dist/{js-swap-Desu2iII.mjs → js-swap-Cuky0ZAQ.mjs} +60 -13
  76. package/dist/{launch-6ckG9UrC.mjs → launch-B-pkNlqg.mjs} +48 -28
  77. package/dist/{lightened-B6TnpHMX.mjs → lightened-KHWHmzGs.mjs} +5 -5
  78. package/dist/{logs-B-DMy1K0.mjs → logs-B0etn-BD.mjs} +7 -7
  79. package/dist/{logs-CO0CJRiC.mjs → logs-HomiqPhV.mjs} +6 -6
  80. package/dist/{macos-CduEmWAK.mjs → macos-C5liDnbP.mjs} +1 -1
  81. package/dist/macos-run.mjs +1 -1
  82. package/dist/{macos-B1aCXhem.mjs → macos-zMxSibx5.mjs} +22 -23
  83. package/dist/maintenance-run.mjs +6 -6
  84. package/dist/{metro-DM3yJL1M.mjs → metro-Cj6W4qOO.mjs} +4 -4
  85. package/dist/{metro-request-O8Q-JvBg.mjs → metro-request-BWCl3Zco.mjs} +2 -2
  86. package/dist/{prebuild-Di2IhUue.mjs → miss-reason-CeHvzeVm.mjs} +12 -272
  87. package/dist/{named-ports-BvB_CO9B.mjs → named-ports-DZ8DrkH1.mjs} +3 -3
  88. package/dist/{native-android-28NOG2-y.mjs → native-android-DtWLzg6g.mjs} +18 -18
  89. package/dist/{native-gradle-artifact-inputs-DxVEtS6_.mjs → native-gradle-artifact-inputs-D4w20_6d.mjs} +5 -5
  90. package/dist/{native-runtime-C3_NkUlW.mjs → native-runtime-BfvvAJLd.mjs} +6 -6
  91. package/dist/{native-source-ChAGj7R1.mjs → native-source-D2ZfiQ6U.mjs} +1 -1
  92. package/dist/{native-xcode-inputs-BWFTw5cJ.mjs → native-xcode-inputs-BHvnAq4o.mjs} +3 -3
  93. package/dist/{native-xcode-ios-B4Qoc7-U.mjs → native-xcode-ios-CYxrg_kK.mjs} +18 -19
  94. package/dist/offload-worker.mjs +23 -22
  95. package/dist/{operation-exec-DKlBcKAL.mjs → operation-exec-DNynwpqO.mjs} +1 -1
  96. package/dist/{ownership-C3y8wLSl.mjs → ownership-BLgOimfp.mjs} +3 -3
  97. package/dist/{page-Dj8IqvGM.mjs → page-CoN9al_x.mjs} +2 -2
  98. package/dist/{phone-reverses-BhSxbqom.mjs → phone-reverses-vRveZKSG.mjs} +4 -4
  99. package/dist/{placement-log-B8RCSzOm.mjs → placement-log-CM0DSELs.mjs} +1 -1
  100. package/dist/{plan-placement-BI4r55aP.mjs → plan-placement-CIrvKq8y.mjs} +6 -6
  101. package/dist/{ports-DhOSyWm9.mjs → ports-CKORWlC0.mjs} +3 -3
  102. package/dist/{project-Clk1JAWL.mjs → project-DIo71tGq.mjs} +16 -16
  103. package/dist/{pull-request-BpMTNkMB.mjs → pull-request-m8cMZ3aE.mjs} +2 -2
  104. package/dist/pull-requests.mjs +1 -1
  105. package/dist/{react-native-android-bdHBMrnf.mjs → react-native-android-B7VYSlKj.mjs} +41 -36
  106. package/dist/{react-native-build-CJega_NM.mjs → react-native-build-CFYTYmG4.mjs} +13 -10
  107. package/dist/{react-native-doctor-CY7BGITE.mjs → react-native-doctor-CnpVfE0k.mjs} +6 -6
  108. package/dist/{react-native-ios-Bo5EDVel.mjs → react-native-ios-ByeXo_NP.mjs} +18 -18
  109. package/dist/{recorded-build-BuGL_fnm.mjs → recorded-build-B4prJjSD.mjs} +20 -2
  110. package/dist/{recordings-6i2-x8LU.mjs → recordings-Byu5SzlI.mjs} +1 -1
  111. package/dist/{registration-DKjJGQ6p.mjs → registration-C-3PDR3X.mjs} +1 -1
  112. package/dist/{reload-BvDuvygc.mjs → reload-DANrKhQR.mjs} +1 -1
  113. package/dist/{reload-A_axEbeS.mjs → reload-DTd9g1EG.mjs} +16 -16
  114. package/dist/{remote-PD6CM0xp.mjs → remote-BWuq9qHV.mjs} +4 -4
  115. package/dist/{remote-WK_swZEw.mjs → remote-NOM82XE0.mjs} +10 -10
  116. package/dist/{result-BkDpN5Mz.mjs → result-C-ISEJ5F.mjs} +17 -17
  117. package/dist/{run-CTFi4Nq2.mjs → run-DQwx6djG.mjs} +2 -2
  118. package/dist/{server-bare-W0aPsRZE.mjs → server-bare-B_wRfchQ.mjs} +2 -2
  119. package/dist/{server-command-S00-ddjK.mjs → server-command-DgXYowQf.mjs} +6 -6
  120. package/dist/{server-expo-cc-cmfsl.mjs → server-expo-ByBM8DVv.mjs} +10 -8
  121. package/dist/server-expo-D7rwjAFp.mjs +2 -0
  122. package/dist/{settings-C_Xu4RNZ.mjs → settings-BthPoY3t.mjs} +2 -2
  123. package/dist/{settings-Bap-qjnp.mjs → settings-Cz8kQJzr.mjs} +49 -12
  124. package/dist/{settings-payload-D5jjhmrw.mjs → settings-payload-BOcxsZ6k.mjs} +5 -5
  125. package/dist/{settings-write-C5huI-iS.mjs → settings-write-BuMPL1rd.mjs} +6 -6
  126. package/dist/settings.schema.json +32 -2
  127. package/dist/{simslim-DlBvwgeF.mjs → simslim-BMgpTRWe.mjs} +2 -2
  128. package/dist/{slot-launch-qEQVTth7.mjs → slot-launch-BIm9w8kH.mjs} +6 -6
  129. package/dist/{stage-CxVI_MlP.mjs → stage-CX1Byp3n.mjs} +6 -5
  130. package/dist/{start-CVzivp35.mjs → start-BZWr85b2.mjs} +1 -1
  131. package/dist/{start-YpT_JpQQ.mjs → start-DI0ofPO-.mjs} +12 -12
  132. package/dist/{state-B4B5P4LU.mjs → state-45P8Kd6Z.mjs} +2 -2
  133. package/dist/{state-B9VFI6r0.mjs → state-C2vELPyr.mjs} +4 -4
  134. package/dist/{stats-COoePEri.mjs → stats-BDljWVWU.mjs} +5 -5
  135. package/dist/{stats-report-BVRCqwWA.mjs → stats-report-Ci6TAfFm.mjs} +1 -1
  136. package/dist/{status-CIvU5-TF.mjs → status-BG2S-a1d.mjs} +1 -1
  137. package/dist/{status-CQWmNl1f.mjs → status-C2PdxK6q.mjs} +1 -1
  138. package/dist/{status-CIg0k7Qb.mjs → status-DEZjHP4q.mjs} +32 -34
  139. package/dist/{status-watch--rfZynD_.mjs → status-watch-Cs18eFkQ.mjs} +5 -5
  140. package/dist/status-worker.mjs +1 -1
  141. package/dist/{stim-desktop-D0P_bzmd.mjs → stim-desktop-DWGAfaud.mjs} +2 -2
  142. package/dist/{stop-BiI4_VFG.mjs → stop-B2zDplJa.mjs} +2 -2
  143. package/dist/{stop-C3d5qG7C.mjs → stop-BPrTEOaz.mjs} +16 -16
  144. package/dist/{stop-BEBBruvD.mjs → stop-DrxHVVX9.mjs} +5 -5
  145. package/dist/supervisor-run.mjs +15 -15
  146. package/dist/{support-BJbXovoO.mjs → support-BeVRaMWT.mjs} +13 -14
  147. package/dist/{support-Vckdzrmk.mjs → support-DBKG3Yyb.mjs} +7 -7
  148. package/dist/{swiftpm-artifact-inputs-DbuF-Yrr.mjs → swiftpm-artifact-inputs-CfNAb6Vm.mjs} +4 -4
  149. package/dist/{swiftpm-macos-Bu8xeBfM.mjs → swiftpm-macos-xdHjJHIj.mjs} +11 -11
  150. package/dist/toolchain-CTsPS5tL.mjs +2 -0
  151. package/dist/{toolchain-DCnWAxQL.mjs → toolchain-CZvtCZ-m.mjs} +11 -8
  152. package/dist/trigger-Bp3lruF2.mjs +2 -0
  153. package/dist/{trigger-BtB4kbe0.mjs → trigger-G_gbfIVB.mjs} +2 -2
  154. package/dist/{warm-progress-DwsGBpph.mjs → warm-progress-D3a0KviW.mjs} +20 -16
  155. package/dist/{web-D2En0Wa5.mjs → web-BvAweypa.mjs} +9 -9
  156. package/dist/web-DDL3usMb.mjs +2 -0
  157. package/dist/web-run.mjs +8 -8
  158. package/dist/windows-report.mjs +1 -1
  159. package/dist/{workspace-state-BhwAJBgA.mjs → workspace-state-CHEN_xzy.mjs} +3 -3
  160. package/dist/{workspaces-Dh5N70qW.mjs → workspaces-BgAYIccE.mjs} +218 -54
  161. package/dist/{worktree-DLm4s2Ib.mjs → worktree-C0YZ6mnk.mjs} +1 -1
  162. package/dist/{worktree-Yw3EW77B.mjs → worktree-kGPE9Pcw.mjs} +339 -37
  163. package/package.json +7 -7
  164. package/dist/server-expo-BWJDa7Qb.mjs +0 -2
  165. package/dist/toolchain-CIRdNl-c.mjs +0 -2
  166. package/dist/trigger-D8B7QR0q.mjs +0 -2
  167. package/dist/web-Dpj70t4p.mjs +0 -2
@@ -1,21 +1,16 @@
1
- import { E as debugLog, b as spawnDeclared, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { M as withDirLock$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, y as sharedBuildCache } from "./workspace-state-BhwAJBgA.mjs";
3
- import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { m as shortHash } from "./command-output-T3cDctRE.mjs";
5
- import { o as git, s as gitAsync } from "./operation-exec-DKlBcKAL.mjs";
6
- import { Ct as gitCommonDirOnDisk } from "./settings-Bap-qjnp.mjs";
7
- import { v as detectIsExpo } from "./project-Clk1JAWL.mjs";
8
- import { ar as remoteCliInvocation } from "./device-capacity-CpAVcKgq.mjs";
9
- import { r as register } from "./cache-manifest-CxWkZmUr.mjs";
10
- import { nt as STIM_VERSION } from "./workspaces-Dh5N70qW.mjs";
11
- import { b as packageIn, d as expoEnvFiles, g as fingerprintProject, h as fingerprintOptions, k as storedSources, s as diffFingerprintSources } from "./build-cache-BW8T4oD2.mjs";
12
- import { i as expoBinRefusal, o as expoSdkMajor, r as expoBinPath, s as expoTelemetryEnv } from "./server-expo-cc-cmfsl.mjs";
13
- import { t as readDoctorFingerprint } from "./doctor-fingerprint-DqWvIhMb.mjs";
1
+ import { E as debugLog } from "./exec-L37dbiIb.mjs";
2
+ import { M as withDirLock, y as sharedBuildCache } from "./workspace-state-CHEN_xzy.mjs";
3
+ import { m as shortHash } from "./command-output-DsjhOzJ3.mjs";
4
+ import { s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
5
+ import { Ct as gitCommonDirOnDisk } from "./settings-Cz8kQJzr.mjs";
6
+ import { r as register } from "./cache-manifest-BO0TIcPV.mjs";
7
+ import { rt as STIM_VERSION } from "./workspaces-BgAYIccE.mjs";
8
+ import { b as packageIn, d as expoEnvFiles, g as fingerprintProject, h as fingerprintOptions, k as storedSources, s as diffFingerprintSources } from "./build-cache-CJ65Efv7.mjs";
9
+ import { t as readDoctorFingerprint } from "./doctor-fingerprint-Bo4z8YNP.mjs";
14
10
  import { createRequire } from "node:module";
15
11
  import { createHash } from "node:crypto";
16
12
  import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
17
13
  import { dirname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
18
- import { ambientContext } from "@stim-cli/core";
19
14
  import { FINGERPRINT_MEMO_SCHEMA, LAST_BUILD_KEYS, fingerprintMemoDir, fingerprintMemoFile, fingerprintMemoLock, loadConfig, readFingerprintMemo, readWorkspaceState, trace } from "@stim-cli/core/state";
20
15
  import { readFile } from "node:fs/promises";
21
16
  import * as expoFingerprint from "@expo/fingerprint";
@@ -556,7 +551,7 @@ function isSourceList(sources) {
556
551
  function writeRecord(record, { onlyIfAbsent = false } = {}) {
557
552
  const dir = fingerprintMemoDir(record.platform);
558
553
  const file = fingerprintMemoFile(record.platform, record.digest);
559
- withDirLock$1(fingerprintMemoLock(), () => {
554
+ withDirLock(fingerprintMemoLock(), () => {
560
555
  if (onlyIfAbsent && existsSync(file)) return;
561
556
  mkdirSync(dir, {
562
557
  recursive: true,
@@ -586,7 +581,7 @@ function writeRecord(record, { onlyIfAbsent = false } = {}) {
586
581
  function dropRecord(platform, digest) {
587
582
  const file = fingerprintMemoFile(platform, digest);
588
583
  if (!existsSync(file)) return;
589
- withDirLock$1(fingerprintMemoLock(), () => rmSync(file, { force: true }));
584
+ withDirLock(fingerprintMemoLock(), () => rmSync(file, { force: true }));
590
585
  }
591
586
  const runBackgroundFingerprint = (operation, projectRoot, target, signal) => readDoctorFingerprint({
592
587
  ...operation,
@@ -988,259 +983,4 @@ function fingerprintErrorMissReason(message) {
988
983
  };
989
984
  }
990
985
  //#endregion
991
- //#region src/engine/prebuild.ts
992
- const PREBUILD_ERROR = "STIM_PREBUILD_FAILED";
993
- const LAST_LINES = 20;
994
- function nativeDirName(platform) {
995
- return platform === "android" ? "android" : "ios";
996
- }
997
- function nativeDir(root, platform) {
998
- return join(root, nativeDirName(platform));
999
- }
1000
- function nativeDirInFingerprint(sources, platform) {
1001
- const dir = nativeDirName(platform);
1002
- return sources.some((source) => source.type === "dir" && source.filePath === dir && source.hash != null);
1003
- }
1004
- /**
1005
- * @expo/fingerprint leaves a native directory out of the hash when git ignores it (CNG), so the cache
1006
- * key only covers that directory when this workspace's recorded prebuild ran on the same fingerprint.
1007
- */
1008
- function prebuildAction({ isExpo, nativeDirExists, nativeDirFingerprinted, nativeDirTracked, generatedFrom, fingerprint }) {
1009
- if (!isExpo) return "none";
1010
- if (!nativeDirExists) return "generate";
1011
- if (nativeDirFingerprinted || generatedFrom === fingerprint) return "none";
1012
- return nativeDirTracked ? "refuse" : "regenerate";
1013
- }
1014
- function prebuildRecord(state) {
1015
- const record = state?.prebuild;
1016
- return record && typeof record === "object" ? record : {};
1017
- }
1018
- function unreadableGitTracksNativeDir(error) {
1019
- if (error instanceof Error && "code" in error && error.code === "ENOENT") return false;
1020
- return !/not a git repository \(or any (of the parent directories|parent up to mount point)/.test(error instanceof Error ? error.message : String(error));
1021
- }
1022
- function gitTracksNativeDir(root, platform) {
1023
- try {
1024
- return git(root, [
1025
- "ls-files",
1026
- "--",
1027
- nativeDirName(platform)
1028
- ], { env: {
1029
- LC_ALL: "C",
1030
- LANGUAGE: "C"
1031
- } }).trim() !== "";
1032
- } catch (error) {
1033
- return unreadableGitTracksNativeDir(error);
1034
- }
1035
- }
1036
- function prebuildInputs(root, platform, { isExpo, fingerprint, sources }) {
1037
- const nativeDirExists = existsSync(nativeDir(root, platform));
1038
- const fingerprinted = nativeDirInFingerprint(sources, platform);
1039
- const generatedFrom = prebuildRecord(readWorkspaceState$1(root))[platform];
1040
- return {
1041
- isExpo,
1042
- nativeDirExists,
1043
- nativeDirFingerprinted: fingerprinted,
1044
- generatedFrom: typeof generatedFrom === "string" ? generatedFrom : null,
1045
- fingerprint
1046
- };
1047
- }
1048
- function planPrebuild(root, platform, options) {
1049
- const inputs = prebuildInputs(root, platform, options);
1050
- return prebuildAction({
1051
- ...inputs,
1052
- nativeDirTracked: inputs.nativeDirExists && !inputs.nativeDirFingerprinted && gitTracksNativeDir(root, platform)
1053
- });
1054
- }
1055
- async function planPrebuildAsync(root, platform, options, signal) {
1056
- signal?.throwIfAborted();
1057
- const untracked = prebuildAction({
1058
- ...prebuildInputs(root, platform, options),
1059
- nativeDirTracked: false
1060
- });
1061
- if (untracked !== "regenerate") return untracked;
1062
- let tracked;
1063
- try {
1064
- tracked = (await gitAsync(root, [
1065
- "ls-files",
1066
- "--",
1067
- nativeDirName(platform)
1068
- ], {
1069
- env: {
1070
- LC_ALL: "C",
1071
- LANGUAGE: "C"
1072
- },
1073
- signal
1074
- })).trim() !== "";
1075
- } catch (error) {
1076
- signal?.throwIfAborted();
1077
- tracked = unreadableGitTracksNativeDir(error);
1078
- }
1079
- return tracked ? "refuse" : "regenerate";
1080
- }
1081
- function recordPrebuild(root, platform, fingerprint) {
1082
- updateWorkspaceState(root, (state) => ({
1083
- ...state,
1084
- prebuild: {
1085
- ...prebuildRecord(state),
1086
- [platform]: fingerprint
1087
- }
1088
- }));
1089
- }
1090
- /** Records the prebuild fingerprint after waiting for the workspace state lock without blocking the event loop. */
1091
- function recordPrebuildAsync(root, platform, fingerprint) {
1092
- return withWorkspaceStateLockAsync(root, () => recordPrebuild(root, platform, fingerprint));
1093
- }
1094
- /**
1095
- * @expo/cli 57 made `expo prebuild` delete existing native folders by default and added `--no-clean`
1096
- * to keep them (expo/expo#47209); earlier CLIs keep them by default and reject `--no-clean`.
1097
- */
1098
- function keepNativeDirArgs(root) {
1099
- return (expoSdkMajor(root) ?? 0) >= 57 ? ["--no-clean"] : [];
1100
- }
1101
- function staleNativeDirRemedy(platform) {
1102
- const dir = nativeDirName(platform);
1103
- return `Fix what the output above reports. Stim ran \`expo prebuild\` over the existing ${dir}/ without deleting it, which keeps what earlier config plugins wrote there. If ${dir}/ predates a removed config plugin or an Expo SDK upgrade, delete ${dir}/ and run again so Stim generates it fresh.`;
1104
- }
1105
- function staleNativeDirRefusal(platform) {
1106
- const dir = nativeDirName(platform);
1107
- return {
1108
- code: PREBUILD_ERROR,
1109
- 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 run \`expo prebuild\` over it.`,
1110
- 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.`
1111
- };
1112
- }
1113
- function prebuildRefusal({ isExpo, platform, nativeDirExists }) {
1114
- if (nativeDirExists || isExpo) return null;
1115
- const dir = nativeDirName(platform);
1116
- return {
1117
- code: PREBUILD_ERROR,
1118
- message: `This project has no ${dir}/ directory and is not an Expo (CNG) project, so Stim cannot generate one.`,
1119
- 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}/.`
1120
- };
1121
- }
1122
- function prebuildFailure(logWriter, result) {
1123
- logWriter?.write?.({
1124
- src: "build",
1125
- level: "error",
1126
- msg: result.reason || "Expo prebuild failed.",
1127
- event: "prebuild_failed"
1128
- });
1129
- return result;
1130
- }
1131
- async function runPrebuild(root, platform, logWriter, { spawnFn = null, now = Date.now, isExpo = null, clean = false } = {}) {
1132
- const dirExists = existsSync(nativeDir(root, platform));
1133
- const refusal = prebuildRefusal({
1134
- isExpo: isExpo === null ? detectIsExpo(root) : isExpo,
1135
- platform,
1136
- nativeDirExists: dirExists
1137
- });
1138
- if (refusal) return prebuildFailure(logWriter, {
1139
- failed: true,
1140
- code: refusal.code,
1141
- reason: refusal.message,
1142
- remedy: refusal.remedy,
1143
- error: refusal,
1144
- lastLines: []
1145
- });
1146
- const bin = expoBinPath(root);
1147
- if (!bin) {
1148
- const binRefusal = expoBinRefusal(root, "prebuild");
1149
- return prebuildFailure(logWriter, {
1150
- failed: true,
1151
- code: PREBUILD_ERROR,
1152
- reason: binRefusal.message,
1153
- remedy: binRefusal.remedy,
1154
- lastLines: []
1155
- });
1156
- }
1157
- const spawn = spawnFn || ((cmd, args, opts) => getExecutor().spawn(cmd, args, opts));
1158
- const startedAt = now();
1159
- const tail = [];
1160
- const push = (line) => {
1161
- const msg = stripAnsi(String(line)).trimEnd();
1162
- if (!msg.trim()) return;
1163
- tail.push(msg);
1164
- if (tail.length > LAST_LINES) tail.shift();
1165
- logWriter?.write?.({
1166
- src: "build",
1167
- level: "debug",
1168
- msg,
1169
- raw: true,
1170
- event: "prebuild"
1171
- });
1172
- };
1173
- let child;
1174
- try {
1175
- const invocation = remoteCliInvocation(bin, [
1176
- "prebuild",
1177
- "-p",
1178
- platform,
1179
- "--no-install",
1180
- ...clean ? ["--clean"] : dirExists ? keepNativeDirArgs(root) : []
1181
- ], "expo");
1182
- child = spawnDeclared(ambientContext(), () => spawn(invocation.file, invocation.args, {
1183
- cwd: root,
1184
- stdio: [
1185
- "ignore",
1186
- "pipe",
1187
- "pipe"
1188
- ],
1189
- env: {
1190
- ...ambientContext()?.env ?? process.env,
1191
- ...expoTelemetryEnv(ambientContext()?.env ?? process.env),
1192
- FORCE_COLOR: "0",
1193
- CI: "1"
1194
- }
1195
- }));
1196
- } catch (err) {
1197
- return prebuildFailure(logWriter, {
1198
- failed: true,
1199
- code: PREBUILD_ERROR,
1200
- reason: `Could not run \`expo prebuild\`: ${err?.message || err}`,
1201
- lastLines: []
1202
- });
1203
- }
1204
- const outReader = createLineReader(push);
1205
- const errReader = createLineReader(push);
1206
- child.stdout?.setEncoding?.("utf-8");
1207
- child.stderr?.setEncoding?.("utf-8");
1208
- child.stdout?.on("data", (chunk) => outReader.push(chunk));
1209
- child.stderr?.on("data", (chunk) => errReader.push(chunk));
1210
- const result = await waitForChild(child);
1211
- outReader.flush();
1212
- errReader.flush();
1213
- const durationMs = now() - startedAt;
1214
- if (result.error) return prebuildFailure(logWriter, {
1215
- failed: true,
1216
- code: PREBUILD_ERROR,
1217
- reason: `Could not run \`expo prebuild\`: ${result.error?.message || result.error}`,
1218
- lastLines: tail.slice(),
1219
- durationMs
1220
- });
1221
- if (result.code !== 0) {
1222
- const how = result.signal ? `signal ${result.signal}` : `exit code ${result.code}`;
1223
- return prebuildFailure(logWriter, {
1224
- failed: true,
1225
- code: PREBUILD_ERROR,
1226
- reason: `\`expo prebuild -p ${platform}\` failed (${how}).`,
1227
- ...dirExists && !clean ? { remedy: staleNativeDirRemedy(platform) } : {},
1228
- lastLines: tail.slice(),
1229
- durationMs
1230
- });
1231
- }
1232
- if (!existsSync(nativeDir(root, platform))) return prebuildFailure(logWriter, {
1233
- failed: true,
1234
- code: PREBUILD_ERROR,
1235
- reason: `\`expo prebuild -p ${platform}\` succeeded but did not create ${nativeDirName(platform)}/.`,
1236
- lastLines: tail.slice(),
1237
- durationMs
1238
- });
1239
- return {
1240
- ok: true,
1241
- durationMs,
1242
- nativeDir: nativeDir(root, platform)
1243
- };
1244
- }
1245
- //#endregion
1246
- export { runPrebuild as a, fingerprintErrorMissReason as c, memoizedFingerprint as d, settleFingerprintCheck as f, recordPrebuildAsync as i, predictBuildMiss as l, planPrebuildAsync as n, staleNativeDirRefusal as o, recordPrebuild as r, explainBuildMiss as s, planPrebuild as t, skippedMissReason as u };
986
+ export { memoizedFingerprint as a, skippedMissReason as i, fingerprintErrorMissReason as n, settleFingerprintCheck as o, predictBuildMiss as r, explainBuildMiss as t };
@@ -1,6 +1,6 @@
1
- import { T as process_identity_exports, p as withWorkspaceProcessLock, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { A as withConfigLockAsync, c as ensureConfig, d as getConfigDir, m as getProject, v as loadConfig, w as saveConfig } from "./config-BA3TgoIP.mjs";
3
- import { f as signalProcessTree, m as createPortProbe, s as parseNetstatPids } from "./metro-DM3yJL1M.mjs";
1
+ import { T as process_identity_exports, p as withWorkspaceProcessLock, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { A as withConfigLockAsync, c as ensureConfig, d as getConfigDir, m as getProject, v as loadConfig, w as saveConfig } from "./config-CNmN-ndb.mjs";
3
+ import { f as signalProcessTree, m as createPortProbe, s as parseNetstatPids } from "./metro-Cj6W4qOO.mjs";
4
4
  import { realpathSync } from "node:fs";
5
5
  //#region src/named-ports.ts
6
6
  const FIRST_PORT = 8900;
@@ -1,21 +1,21 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, y as sharedBuildCache } from "./workspace-state-BhwAJBgA.mjs";
3
- import { m as getProject, pt as deviceSlotPlatforms, vt as validateDeviceSlot } from "./config-BA3TgoIP.mjs";
4
- import { it as settingValueAt } from "./settings-Bap-qjnp.mjs";
5
- import { H as ownedAvdDeviceProfile, J as ownedAvdSystemImage, O as findBuildTool, U as ownedAvdDirectory, l as androidSystemImageAbi, o as androidHome, z as listInstalledSystemImages } from "./android-SJx1V3R3.mjs";
6
- import { O as resolveCcache } from "./device-capacity-CpAVcKgq.mjs";
7
- import { r as register } from "./cache-manifest-CxWkZmUr.mjs";
8
- import { lt as statsProjectKey } from "./workspaces-Dh5N70qW.mjs";
9
- import { _t as runCancellationSignal, r as androidToolchainAsync } from "./toolchain-DCnWAxQL.mjs";
10
- import { T as resolveBuild, c as entryDir, t as artifactIn } from "./build-cache-BW8T4oD2.mjs";
11
- import { b as nativeGradleTransfer, g as gradleOffloadInputs } from "./client-KSWIeQLA.mjs";
12
- import { d as buildGradle, l as androidSdkRefusal } from "./react-native-build-CJega_NM.mjs";
13
- import { n as decideSystemImage, t as androidImageInstallPolicy } from "./android-image-BZ57YL6R.mjs";
14
- import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-Di2IhUue.mjs";
15
- import { u as resolveAndroidRunPlan } from "./result-BkDpN5Mz.mjs";
16
- import { n as androidProcessRuntime } from "./launch-6ckG9UrC.mjs";
17
- import { n as planFlagRefusal, r as planPayload } from "./build-plan-CeIooJqn.mjs";
18
- import { a as nativeGradleWorkerArtifactIdentity, n as gradleArtifactInputs, r as nativeGradleArtifactSnapshot, t as NATIVE_GRADLE_CACHE_LIMIT } from "./native-gradle-artifact-inputs-DxVEtS6_.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir, y as sharedBuildCache } from "./workspace-state-CHEN_xzy.mjs";
3
+ import { m as getProject, pt as deviceSlotPlatforms, vt as validateDeviceSlot } from "./config-CNmN-ndb.mjs";
4
+ import { it as settingValueAt } from "./settings-Cz8kQJzr.mjs";
5
+ import { H as ownedAvdDeviceProfile, J as ownedAvdSystemImage, O as findBuildTool, U as ownedAvdDirectory, l as androidSystemImageAbi, o as androidHome, z as listInstalledSystemImages } from "./android-27_JgJ1T.mjs";
6
+ import { O as resolveCcache } from "./device-capacity-D_IlxZRL.mjs";
7
+ import { r as register } from "./cache-manifest-BO0TIcPV.mjs";
8
+ import { ut as statsProjectKey } from "./workspaces-BgAYIccE.mjs";
9
+ import { mt as runCancellationSignal, r as androidToolchainAsync } from "./toolchain-CZvtCZ-m.mjs";
10
+ import { T as resolveBuild, c as entryDir, t as artifactIn } from "./build-cache-CJ65Efv7.mjs";
11
+ import { b as nativeGradleTransfer, g as gradleOffloadInputs } from "./client-qwmHFSga.mjs";
12
+ import { d as buildGradle, l as androidSdkRefusal } from "./react-native-build-CFYTYmG4.mjs";
13
+ import { n as decideSystemImage, t as androidImageInstallPolicy } from "./android-image-BcUD6bPi.mjs";
14
+ import { i as skippedMissReason, t as explainBuildMiss } from "./miss-reason-CeHvzeVm.mjs";
15
+ import { u as resolveAndroidRunPlan } from "./result-C-ISEJ5F.mjs";
16
+ import { n as androidProcessRuntime } from "./launch-B-pkNlqg.mjs";
17
+ import { n as planFlagRefusal, r as planPayload } from "./build-plan-DWajg5l_.mjs";
18
+ import { a as nativeGradleWorkerArtifactIdentity, n as gradleArtifactInputs, r as nativeGradleArtifactSnapshot, t as NATIVE_GRADLE_CACHE_LIMIT } from "./native-gradle-artifact-inputs-D4w20_6d.mjs";
19
19
  import { createHash } from "node:crypto";
20
20
  import { createReadStream, createWriteStream, existsSync, readFileSync, statSync } from "node:fs";
21
21
  import { tmpdir } from "node:os";
@@ -1,8 +1,8 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { r as childEnvironment } from "./operation-exec-DKlBcKAL.mjs";
3
- import { o as androidHome } from "./android-SJx1V3R3.mjs";
4
- import { n as buildCacheKey } from "./build-cache-BW8T4oD2.mjs";
5
- import { g as gradleOffloadInputs, v as nativeGradleLocalSourceDigest } from "./client-KSWIeQLA.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { r as childEnvironment } from "./operation-exec-DNynwpqO.mjs";
3
+ import { o as androidHome } from "./android-27_JgJ1T.mjs";
4
+ import { n as buildCacheKey } from "./build-cache-CJ65Efv7.mjs";
5
+ import { g as gradleOffloadInputs, v as nativeGradleLocalSourceDigest } from "./client-qwmHFSga.mjs";
6
6
  import { n as fingerprintNativeInputs } from "./native-inputs-TRTTTRxt.mjs";
7
7
  import { createHash } from "node:crypto";
8
8
  import { homedir } from "node:os";
@@ -1,9 +1,9 @@
1
- import { r as readWorkspaceState$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-BhwAJBgA.mjs";
2
- import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
3
- import { N as metroPortSetting } from "./settings-Bap-qjnp.mjs";
4
- import { d as resolveProjectMetro } from "./metro-DM3yJL1M.mjs";
5
- import { an as LAUNCH_UNVERIFIED, rn as LAUNCH_BUNDLING } from "./device-capacity-CpAVcKgq.mjs";
6
- import { c as startDevServer } from "./start-YpT_JpQQ.mjs";
1
+ import { r as readWorkspaceState$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-CHEN_xzy.mjs";
2
+ import { l as phaseLine } from "./command-output-DsjhOzJ3.mjs";
3
+ import { N as metroPortSetting } from "./settings-Cz8kQJzr.mjs";
4
+ import { d as resolveProjectMetro } from "./metro-Cj6W4qOO.mjs";
5
+ import { cn as LAUNCH_UNVERIFIED, on as LAUNCH_BUNDLING } from "./device-capacity-D_IlxZRL.mjs";
6
+ import { c as startDevServer } from "./start-DI0ofPO-.mjs";
7
7
  import { readIdleStop } from "@stim-cli/core/state";
8
8
  import chalk from "chalk";
9
9
  //#region src/commands/native-runtime.ts
@@ -1,4 +1,4 @@
1
- import { s as gitAsync } from "./operation-exec-DKlBcKAL.mjs";
1
+ import { s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
2
2
  import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
3
3
  import { createHash } from "node:crypto";
4
4
  import { createReadStream } from "node:fs";
@@ -1,6 +1,6 @@
1
- import { E as workspaceDir, T as workspaceDerivedData } from "./workspace-state-BhwAJBgA.mjs";
2
- import { a as killOnAbort, l as gitQuietAsync, r as childEnvironment } from "./operation-exec-DKlBcKAL.mjs";
3
- import { h as pbxString, m as pbxReferences } from "./project-Clk1JAWL.mjs";
1
+ import { E as workspaceDir, T as workspaceDerivedData } from "./workspace-state-CHEN_xzy.mjs";
2
+ import { a as killOnAbort, l as gitQuietAsync, r as childEnvironment } from "./operation-exec-DNynwpqO.mjs";
3
+ import { h as pbxString, m as pbxReferences } from "./project-DIo71tGq.mjs";
4
4
  import { n as fingerprintNativeInputs, t as NativeInputError } from "./native-inputs-TRTTTRxt.mjs";
5
5
  import { createHash } from "node:crypto";
6
6
  import { existsSync, readFileSync, realpathSync } from "node:fs";
@@ -1,21 +1,21 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { x as sharedCompilationCache } from "./workspace-state-BhwAJBgA.mjs";
3
- import { G as remoteIosSetting, J as resolveCacheProviderConfig, Vt as repoRootAsync, rt as settingShapeErrors } from "./settings-Bap-qjnp.mjs";
4
- import { g as selectNativeXcodeProject, h as pbxString, p as NativeXcodeError } from "./project-Clk1JAWL.mjs";
5
- import { Un as processContext } from "./device-capacity-CpAVcKgq.mjs";
6
- import { r as register } from "./cache-manifest-CxWkZmUr.mjs";
7
- import { lt as statsProjectKey } from "./workspaces-Dh5N70qW.mjs";
8
- import { E as readPodState, H as readBundleId, I as compilationCacheSettings, M as HEARTBEAT_INTERVAL_MS, O as runCaptured, P as buildXcode, R as parseSwiftVersion, T as podsAreStale, _t as runCancellationSignal, c as iosToolchainAsync, k as runPodInstall, z as parseXcodeMajor } from "./toolchain-DCnWAxQL.mjs";
9
- import { n as buildCacheKey, p as filesystemBuildCapability } from "./build-cache-BW8T4oD2.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { x as sharedCompilationCache } from "./workspace-state-CHEN_xzy.mjs";
3
+ import { G as remoteIosSetting, J as resolveCacheProviderConfig, Vt as repoRootAsync, rt as settingShapeErrors } from "./settings-Cz8kQJzr.mjs";
4
+ import { g as selectNativeXcodeProject, h as pbxString, p as NativeXcodeError } from "./project-DIo71tGq.mjs";
5
+ import { Kn as processContext } from "./device-capacity-D_IlxZRL.mjs";
6
+ import { r as register } from "./cache-manifest-BO0TIcPV.mjs";
7
+ import { ut as statsProjectKey } from "./workspaces-BgAYIccE.mjs";
8
+ import { C as readPodState, E as runPodInstall, F as parseSwiftVersion, I as parseXcodeMajor, N as compilationCacheSettings, S as podsAreStale, T as runCaptured, c as iosToolchainAsync, j as buildXcode, k as HEARTBEAT_INTERVAL_MS, mt as runCancellationSignal, z as readBundleId } from "./toolchain-CZvtCZ-m.mjs";
9
+ import { n as buildCacheKey, p as filesystemBuildCapability } from "./build-cache-CJ65Efv7.mjs";
10
10
  import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
11
- import { a as nativeTransferRefusal } from "./client-KSWIeQLA.mjs";
12
- import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-BJbXovoO.mjs";
13
- import { r as gateProfileForDevice } from "./ios-signing-BcH88ecn.mjs";
14
- import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-BWFTw5cJ.mjs";
15
- import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-Di2IhUue.mjs";
16
- import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-CeIooJqn.mjs";
17
- import { t as IosRecipeRefusal } from "./ios-project-Cz0S1Sz-.mjs";
18
- import { c as iosProcessRuntime, t as DEFAULT_DEPS } from "./dependencies-LH-7k1Vr.mjs";
11
+ import { a as nativeTransferRefusal } from "./client-qwmHFSga.mjs";
12
+ import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-BeVRaMWT.mjs";
13
+ import { r as gateProfileForDevice } from "./ios-signing-rWR_Mu5Z.mjs";
14
+ import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-BHvnAq4o.mjs";
15
+ import { i as skippedMissReason, t as explainBuildMiss } from "./miss-reason-CeHvzeVm.mjs";
16
+ import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-DWajg5l_.mjs";
17
+ import { t as IosRecipeRefusal } from "./ios-project-Bsm-eqwv.mjs";
18
+ import { c as iosProcessRuntime, t as DEFAULT_DEPS } from "./dependencies-oku1ZLep.mjs";
19
19
  import { existsSync } from "node:fs";
20
20
  import { join } from "node:path";
21
21
  //#region src/integrations/native-xcode-ios.ts
@@ -380,8 +380,7 @@ async function planNativeXcode(root, options, resolved, operation = processConte
380
380
  const architecture = simulatorBuildArch({
381
381
  physical: false,
382
382
  remoteArch: null,
383
- hostArch: process.arch === "arm64" ? "arm64" : "x86_64",
384
- configuration
383
+ hostArch: process.arch === "arm64" ? "arm64" : "x86_64"
385
384
  });
386
385
  const snapshot = await nativeXcodeInputSnapshot(root, selection, {
387
386
  sdk: "iphonesimulator",
@@ -1,28 +1,28 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, k as workspaceLogsDir$1 } from "./workspace-state-BhwAJBgA.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir, k as workspaceLogsDir$1 } from "./workspace-state-CHEN_xzy.mjs";
3
3
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
4
- import { j as writeConfigSetting } from "./config-BA3TgoIP.mjs";
5
- import { o as git, s as gitAsync } from "./operation-exec-DKlBcKAL.mjs";
6
- import { b as iosProjectDirSetting, d as androidLayoutSetting } from "./settings-Bap-qjnp.mjs";
7
- import { f as projectRegistry, g as selectNativeXcodeProject } from "./project-Clk1JAWL.mjs";
4
+ import { j as writeConfigSetting } from "./config-CNmN-ndb.mjs";
5
+ import { o as git, s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
6
+ import { b as iosProjectDirSetting, d as androidLayoutSetting } from "./settings-Cz8kQJzr.mjs";
7
+ import { f as projectRegistry, g as selectNativeXcodeProject } from "./project-DIo71tGq.mjs";
8
8
  import { s as parseNdjsonText$1 } from "./ndjson-CrjIsGzw.mjs";
9
- import { C as CCACHE_UNAVAILABLE, O as resolveCcache, Un as processContext } from "./device-capacity-CpAVcKgq.mjs";
10
- import { E as readPodState, S as workerToolchain, T as podsAreStale, i as availableIphone, k as runPodInstall, x as useJdkMajor } from "./toolchain-DCnWAxQL.mjs";
11
- import { a as compareSourceLists, g as fingerprintProject, i as changedOnlyInside, w as refingerprintAfterMutation } from "./build-cache-BW8T4oD2.mjs";
12
- import { _ as unmetNodePin, g as projectNodeLine, h as pathNodeVersion, v as withProjectNode } from "./server-expo-cc-cmfsl.mjs";
13
- import { S as verifyGradleTransfer, T as clearCorruptCompilationCache, _ as gradleStateDirectories, f as reactNativeArtifactReceipt, g as gradleOffloadInputs, h as reusedReactNativeArtifact, m as reactNativeBuildQuery, p as reactNativeArtifactToolchain, w as COMPILATION_CACHE_CORRUPT, x as validateGradleManifest, y as nativeGradleOutputs } from "./client-KSWIeQLA.mjs";
14
- import { f as podAction } from "./support-BJbXovoO.mjs";
9
+ import { C as CCACHE_UNAVAILABLE, Kn as processContext, O as resolveCcache } from "./device-capacity-D_IlxZRL.mjs";
10
+ import { C as readPodState, E as runPodInstall, S as podsAreStale, i as availableIphone, v as useJdkMajor, y as workerToolchain } from "./toolchain-CZvtCZ-m.mjs";
11
+ import { a as compareSourceLists, g as fingerprintProject, i as changedOnlyInside, w as refingerprintAfterMutation } from "./build-cache-CJ65Efv7.mjs";
12
+ import { _ as projectNodeLine, g as pathNodeVersion, v as unmetNodePin, y as withProjectNode } from "./server-expo-ByBM8DVv.mjs";
13
+ import { S as verifyGradleTransfer, T as clearCorruptCompilationCache, _ as gradleStateDirectories, f as reactNativeArtifactReceipt, g as gradleOffloadInputs, h as reusedReactNativeArtifact, m as reactNativeBuildQuery, p as reactNativeArtifactToolchain, w as COMPILATION_CACHE_CORRUPT, x as validateGradleManifest, y as nativeGradleOutputs } from "./client-qwmHFSga.mjs";
14
+ import { f as podAction } from "./support-BeVRaMWT.mjs";
15
15
  import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
16
- import { a as sourceManifest, o as verifyNativeTransfer } from "./native-source-ChAGj7R1.mjs";
17
- import { n as buildAndroid, o as gradlewPath, r as buildIos, u as assembleTaskFor } from "./react-native-build-CJega_NM.mjs";
18
- import { r as nativeXcodeMetadataDirectories } from "./native-xcode-inputs-BWFTw5cJ.mjs";
19
- import { a as runPrebuild, r as recordPrebuild, t as planPrebuild } from "./prebuild-Di2IhUue.mjs";
20
- import { g as dumpApkManifest, p as apkPackage } from "./support-Vckdzrmk.mjs";
21
- import { n as buildAndroidOperation, t as buildIosOperation } from "./build-B_Dx9SKJ.mjs";
22
- import { i as stageBundle, n as resolveBundleExtras } from "./stage-CxVI_MlP.mjs";
23
- import { t as logLines } from "./run-CTFi4Nq2.mjs";
24
- import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-DbuF-Yrr.mjs";
25
- import { a as nativeGradleWorkerArtifactIdentity, i as nativeGradleArtifactSnapshotFromReceipt, o as nativeGradleWorkerScope } from "./native-gradle-artifact-inputs-DxVEtS6_.mjs";
16
+ import { a as sourceManifest, o as verifyNativeTransfer } from "./native-source-D2ZfiQ6U.mjs";
17
+ import { F as recordPrebuild, L as runPrebuild, N as planPrebuild } from "./worktree-kGPE9Pcw.mjs";
18
+ import { n as buildAndroid, o as gradlewPath, r as buildIos, u as assembleTaskFor } from "./react-native-build-CFYTYmG4.mjs";
19
+ import { r as nativeXcodeMetadataDirectories } from "./native-xcode-inputs-BHvnAq4o.mjs";
20
+ import { g as dumpApkManifest, p as apkPackage } from "./support-DBKG3Yyb.mjs";
21
+ import { n as buildAndroidOperation, t as buildIosOperation } from "./build-DkE5vjp1.mjs";
22
+ import { i as stageBundle, n as resolveBundleExtras } from "./stage-CX1Byp3n.mjs";
23
+ import { t as logLines } from "./run-DQwx6djG.mjs";
24
+ import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-CfNAb6Vm.mjs";
25
+ import { a as nativeGradleWorkerArtifactIdentity, i as nativeGradleArtifactSnapshotFromReceipt, o as nativeGradleWorkerScope } from "./native-gradle-artifact-inputs-D4w20_6d.mjs";
26
26
  import { createHash } from "node:crypto";
27
27
  import { chmodSync, constants, copyFileSync, cpSync, createReadStream, createWriteStream, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
28
28
  import { isDeepStrictEqual } from "node:util";
@@ -1362,6 +1362,7 @@ async function main() {
1362
1362
  const input = JSON.parse(Buffer.concat(chunks).toString("utf8"));
1363
1363
  if (!/^[a-f0-9]{64}$/.test(input.sourceDigest)) throw new Error("The completed transfer identity is invalid.");
1364
1364
  gradleOffloadInputs(input.inputs);
1365
+ if (input.jdk && useJdkMajor(input.jdk)) return emit({ identity: null });
1365
1366
  if (input.android) {
1366
1367
  const { android, receipt } = input;
1367
1368
  if (android.variant !== null && android.variant !== receipt.build.variant || (android.abi === "all" ? null : android.abi) !== receipt.abi || android.compilerCache !== receipt.build.compilerCache || android.gradleBuildCache !== receipt.build.gradleBuildCache || android.pch !== receipt.build.pch || receipt.build.cas !== null) throw new Error("The completed Gradle build choices do not match this artifact request.");
@@ -1,4 +1,4 @@
1
- import { C as operationState, d as throwIfCancelled, f as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-CGuDzt40.mjs";
1
+ import { C as operationState, d as throwIfCancelled, f as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
2
  import { sep } from "node:path";
3
3
  //#region src/workspace/git.ts
4
4
  const GIT_TIMEOUT_MS = 1e4;
@@ -1,6 +1,6 @@
1
- import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
2
- import { c as withWorkspaceStateLock, d as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-BhwAJBgA.mjs";
3
- import { c as pidExists } from "./metro-DM3yJL1M.mjs";
1
+ import { T as process_identity_exports } from "./exec-L37dbiIb.mjs";
2
+ import { c as withWorkspaceStateLock, d as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-CHEN_xzy.mjs";
3
+ import { c as pidExists } from "./metro-Cj6W4qOO.mjs";
4
4
  import { realpathSync } from "node:fs";
5
5
  //#region src/collector/state.ts
6
6
  function collectorRoot(root) {
@@ -1,5 +1,5 @@
1
- import { T as process_identity_exports, d as throwIfCancelled } from "./exec-CGuDzt40.mjs";
2
- import { t as connectOwnedBrowser } from "./cdp-C216kOAn.mjs";
1
+ import { T as process_identity_exports, d as throwIfCancelled } from "./exec-L37dbiIb.mjs";
2
+ import { t as connectOwnedBrowser } from "./cdp-CgT47_9A.mjs";
3
3
  //#region src/web/page.ts
4
4
  /** The record of a verified live browser: its supervisor and Chrome are the processes the record names. */
5
5
  function liveWebRecord(record) {
@@ -1,7 +1,7 @@
1
- import { r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-BhwAJBgA.mjs";
2
- import { ft as deviceSlotKey, mt as parseDeviceSlotKey } from "./config-BA3TgoIP.mjs";
3
- import { tt as removeMetroReverses } from "./android-SJx1V3R3.mjs";
4
- import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-BiiUG_Q6.mjs";
1
+ import { r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CHEN_xzy.mjs";
2
+ import { ft as deviceSlotKey, mt as parseDeviceSlotKey } from "./config-CNmN-ndb.mjs";
3
+ import { tt as removeMetroReverses } from "./android-27_JgJ1T.mjs";
4
+ import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-B6ur_0OJ.mjs";
5
5
  import { isJsonObject } from "@stim-cli/core/state";
6
6
  //#region src/device-host/hosted-ios.ts
7
7
  async function prepareHostedIos(machine, selectors, recorded, mode) {
@@ -1,4 +1,4 @@
1
- import { k as buildPlacementSettings } from "./support-BJbXovoO.mjs";
1
+ import { k as buildPlacementSettings } from "./support-BeVRaMWT.mjs";
2
2
  //#region src/placement-log.ts
3
3
  /** `machine` is `local` when the run stays on this machine. */
4
4
  function placementRecord(input) {
@@ -1,9 +1,9 @@
1
- import { v as loadConfig$1 } from "./config-BA3TgoIP.mjs";
2
- import { Un as processContext } from "./device-capacity-CpAVcKgq.mjs";
3
- import { it as hostingMachines } from "./support-BJbXovoO.mjs";
4
- import { r as readHostedNative } from "./ios-state-Avwz2cbZ.mjs";
5
- import { n as buildPreferenceRefusal } from "./settings-payload-D5jjhmrw.mjs";
6
- import { r as probeHost, t as automaticDevicePlacement } from "./auto-placement-CKFpFCuq.mjs";
1
+ import { v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
2
+ import { Kn as processContext } from "./device-capacity-D_IlxZRL.mjs";
3
+ import { it as hostingMachines } from "./support-BeVRaMWT.mjs";
4
+ import { r as readHostedNative } from "./ios-state-tzD0s7pt.mjs";
5
+ import { n as buildPreferenceRefusal } from "./settings-payload-BOcxsZ6k.mjs";
6
+ import { r as probeHost, t as automaticDevicePlacement } from "./auto-placement-RNh4kx2T.mjs";
7
7
  import { automaticMachineEnabled } from "@stim-cli/core/state";
8
8
  //#region src/device-host/plan-placement.ts
9
9
  const DOCTOR_REMEDY = "Run `stim doctor` to check the hosts and settings placement uses.";
@@ -1,6 +1,6 @@
1
- import { m as getProject } from "./config-BA3TgoIP.mjs";
2
- import { n as findCommandWorkspace } from "./project-Clk1JAWL.mjs";
3
- import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-BvB_CO9B.mjs";
1
+ import { m as getProject } from "./config-CNmN-ndb.mjs";
2
+ import { n as findCommandWorkspace } from "./project-DIo71tGq.mjs";
3
+ import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-DZ8DrkH1.mjs";
4
4
  //#region src/commands/ports.ts
5
5
  async function inProject(action) {
6
6
  try {