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.
Files changed (231) hide show
  1. package/README.md +141 -8
  2. package/dist/acquire-artifact-Co2k4f7O.mjs +171 -0
  3. package/dist/act-DsuqEkiM.mjs +2801 -0
  4. package/dist/activity-CMLmzp7o.mjs +1397 -0
  5. package/dist/{agent-device-usage-output-Dzgv6lgR.mjs → agent-device-usage-output-DUFaTMdd.mjs} +23 -67
  6. package/dist/{android-DCKZrNvV.mjs → android-ByRMUoiJ.mjs} +157 -93
  7. package/dist/{android-Mz_Inn3w.mjs → android-C7sVmyI9.mjs} +299 -116
  8. package/dist/{android-Dlzxshgp.mjs → android-DGkNqa_c.mjs} +5 -5
  9. package/dist/{android-HqP1_vB_.mjs → android-DR5lZ2Az.mjs} +2 -2
  10. package/dist/android-cas-compiler.mjs +2 -2
  11. package/dist/{android-cas-Bl-cLJBk.mjs → android-cas-ngferVq2.mjs} +7 -6
  12. package/dist/android-project-BCAAmMwz.mjs +12 -0
  13. package/dist/android-project-DVWyCbWU.d.mts +391 -0
  14. package/dist/api.d.mts +810 -64
  15. package/dist/api.mjs +782 -1
  16. package/dist/{artifact-HSwkIWEQ.mjs → artifact-8EY8SAPw.mjs} +240 -213
  17. package/dist/{artifact-D3czlUvT.mjs → artifact-DJPy518Y.mjs} +203 -164
  18. package/dist/artifact-platform-CXcmX_j3.mjs +27 -0
  19. package/dist/{browser-web-CA-F1GQo.mjs → browser-web-Bcv99PBM.mjs} +194 -64
  20. package/dist/budget-Cvwn54qV.mjs +9285 -0
  21. package/dist/{build-DYDbfkk5.mjs → build-CabC3G23.mjs} +153 -98
  22. package/dist/build-cache-Dv7RN200.mjs +602 -0
  23. package/dist/build-plan-DUC8Ka9y.mjs +248 -0
  24. package/dist/{cache-manifest-XH-fvDUj.mjs → cache-manifest-DSeQjt-Q.mjs} +2 -2
  25. package/dist/cache-manifest.mjs +1 -1
  26. package/dist/{ccache-zdKiYQ3E.mjs → ccache-Btwc36-I.mjs} +10 -9
  27. package/dist/{cdp-Dq_ypAlJ.mjs → cdp-3fwICjzi.mjs} +18 -5
  28. package/dist/{chrome-BnzZMqsR.mjs → chrome-Bbw689-6.mjs} +7 -4
  29. package/dist/{cli-CLP3diBm.mjs → cli-CHZa9Lvk.mjs} +20 -20
  30. package/dist/cli.mjs +1 -1
  31. package/dist/client-OyRoEuSr.mjs +1577 -0
  32. package/dist/collector-run.d.mts +4 -40
  33. package/dist/collector-run.mjs +9 -8
  34. package/dist/{command-output-BTy8hZ0F.mjs → command-output-gwpm28fu.mjs} +1 -1
  35. package/dist/config-DlrsduwG.mjs +955 -0
  36. package/dist/{created-devices-Dzd5C2LF.mjs → created-devices-x9rN6bhs.mjs} +14 -4
  37. package/dist/{dependency-state-DG0p31-y.mjs → dependency-state-1I9KZT1Y.mjs} +20 -5
  38. package/dist/{detached-entry-B9C_zeQC.mjs → detached-entry-BwNEtIrP.mjs} +1 -1
  39. package/dist/{dev-client-DAWVIGBu.mjs → dev-client-BSDR5h3F.mjs} +2 -2
  40. package/dist/{device-BECOiufl.mjs → device-B-L3Fbxy.mjs} +91 -34
  41. package/dist/device-DklWZLqb.mjs +1068 -0
  42. package/dist/{device-capacity-CBUAcRyQ.mjs → device-capacity-DK5_EwRS.mjs} +42 -13
  43. package/dist/device-host-worker.mjs +76 -79
  44. package/dist/{device-ios-COSi6oS1.mjs → device-ios-DoB6KFCO.mjs} +77 -51
  45. package/dist/{device-lease-run-Cw2M4z51.mjs → device-lease-run-xJPQ_QQG.mjs} +14 -26
  46. package/dist/{device-pool-Bf-pOhSw.mjs → device-pool-BMkdsefq.mjs} +5 -5
  47. package/dist/{doctor-kfMBnUw6.mjs → doctor-Bo7BXLux.mjs} +271 -320
  48. package/dist/{doctor-CB8oZKCk.mjs → doctor-D5_EzwfA.mjs} +186 -91
  49. package/dist/doctor-fingerprint-DZLoYFVb.mjs +16 -0
  50. package/dist/doctor-fingerprint.mjs +19 -0
  51. package/dist/doctor-thjWAV0z.mjs +2 -0
  52. package/dist/{doctor-watchman-BRyV2adA.mjs → doctor-watchman-N2wDotwQ.mjs} +40 -21
  53. package/dist/{eas-build-JyfqyHfC.mjs → eas-build-CwknaQYj.mjs} +53 -20
  54. package/dist/{build-plan-B7SZsc2N.mjs → eas-fallback-CSgAulr5.mjs} +41 -214
  55. package/dist/{watchman-CPQFZLXY.mjs → eas-session-ledger-DlY_serQ.mjs} +230 -11
  56. package/dist/{error-diagnostics-BR677IDM.mjs → error-diagnostics-DBWO2rxE.mjs} +172 -82
  57. package/dist/exec-DEoAhcze.mjs +858 -0
  58. package/dist/exec-DnYc4HGH.d.mts +78 -0
  59. package/dist/{gc-qWOMdnER.mjs → gc-CXxN-4SE.mjs} +1091 -1029
  60. package/dist/gc-DnNDQyaP.mjs +3 -0
  61. package/dist/{guide-G9cAbVAc.mjs → guide-Br0LEfKy.mjs} +1165 -297
  62. package/dist/{hosted-android-C3MHGld1.mjs → hosted-android-B-9f-jkd.mjs} +10 -8
  63. package/dist/{hosted-client-ZEKpS9vw.mjs → hosted-client-DZAPrcro.mjs} +34 -19
  64. package/dist/{hosted-ios-l-o3iM9J.mjs → hosted-ios-CsCS21hn.mjs} +1 -1
  65. package/dist/{hosted-logs-EzQM7-3Z.mjs → hosted-logs-FIRx9X2f.mjs} +77 -43
  66. package/dist/{hosted-macos-BACVAVqE.mjs → hosted-macos-_awYSpfv.mjs} +35 -22
  67. package/dist/{hosted-native-A4s1QPXe.mjs → hosted-native-BdzE668-.mjs} +49 -27
  68. package/dist/idle-C4cZ757K.d.mts +24 -0
  69. package/dist/{idle-shutdown-DtxhPTKe.mjs → idle-shutdown-DDg3SdvY.mjs} +11 -10
  70. package/dist/ios-CDvlmUs7.d.mts +24 -0
  71. package/dist/{ios-BwVCF7oA.mjs → ios-Ds1clbIt.mjs} +8 -8
  72. package/dist/{ios-device-D7pi2Sca.mjs → ios-device--h_-8ENa.mjs} +51 -26
  73. package/dist/{ios-device-B5veSDDQ.mjs → ios-device-BXZ0c7Kb.mjs} +1 -1
  74. package/dist/{ios-RkW4pnQf.mjs → ios-hcBpnEGk.mjs} +200 -93
  75. package/dist/{ios-Ce7bc7br.mjs → ios-pm4nL6By.mjs} +160 -108
  76. package/dist/{ios-project-K9hY_Jab.mjs → ios-project-CZhKODF3.mjs} +13 -13
  77. package/dist/ios-signing-BtAffm0A.mjs +489 -0
  78. package/dist/{ios-state-CBLe1xYw.mjs → ios-state-Dtw5K2aI.mjs} +1 -1
  79. package/dist/{ios-nOLJGVdy.mjs → ios-xtlRHaeB.mjs} +1 -1
  80. package/dist/{js-swap-Bb3nsS07.mjs → js-swap-Bwhh4S7V.mjs} +30 -25
  81. package/dist/{launch-C3qJ6Agb.mjs → launch-BjxemNpK.mjs} +85 -543
  82. package/dist/{launch-F4sOqAhB.mjs → launch-CCzXlc8r.mjs} +91 -90
  83. package/dist/logs-BfwwadsZ.mjs +479 -0
  84. package/dist/logs-jTS_lHSo.mjs +248 -0
  85. package/dist/{macos-D7uDvO-z.mjs → macos-DVlSSyUg.mjs} +1 -1
  86. package/dist/macos-NfV2D7dO.mjs +694 -0
  87. package/dist/macos-run.mjs +1 -1
  88. package/dist/maintenance-run.mjs +123 -248
  89. package/dist/{metro-DnCEjCxs.mjs → metro-DiXtA3Ty.mjs} +107 -30
  90. package/dist/metro-gateway-CKZqKqx7.mjs +209 -0
  91. package/dist/{named-ports-4WopRPg-.mjs → named-ports-DkEzOfzO.mjs} +42 -90
  92. package/dist/native-android-CqgnOgsT.mjs +645 -0
  93. package/dist/native-gradle-artifact-inputs-DHFnmrVf.mjs +270 -0
  94. package/dist/native-gradle-inputs-Dnh84Zbd.mjs +211 -0
  95. package/dist/native-inputs-TRTTTRxt.mjs +91 -0
  96. package/dist/native-run-NwUuxbkg.mjs +276 -0
  97. package/dist/{native-runtime-k8dTIrbK.mjs → native-runtime-B7KIafpM.mjs} +11 -9
  98. package/dist/native-source-Y0yLhFyQ.mjs +133 -0
  99. package/dist/{native-xcode-inputs-CykopJdM.mjs → native-xcode-inputs-D_VOfFL7.mjs} +26 -18
  100. package/dist/{native-xcode-ios-Bbf30Gm0.mjs → native-xcode-ios-BYDOHWLN.mjs} +104 -60
  101. package/dist/{ndjson-GOnbyvso.mjs → ndjson-CgE_o3Dl.mjs} +3 -3
  102. package/dist/offload-worker.d.mts +59 -41
  103. package/dist/offload-worker.mjs +478 -115
  104. package/dist/operation-exec-BW0em61G.mjs +171 -0
  105. package/dist/{ownership-DCtw_2IA.mjs → ownership-C5fo5Edb.mjs} +3 -3
  106. package/dist/{page-DRHy329N.mjs → page-DBL2PiUU.mjs} +12 -5
  107. package/dist/paths-BsJMoPP2.mjs +12 -0
  108. package/dist/paths-DQtTgsBf.mjs +42 -0
  109. package/dist/{placement-log-MOfPVgaM.mjs → placement-log-BnGgJRRZ.mjs} +5 -5
  110. package/dist/{plan-placement-V0TdzYXp.mjs → plan-placement-DIsMtN-d.mjs} +15 -11
  111. package/dist/{ports-DdSUicVo.mjs → ports-Cy1RkmuQ.mjs} +3 -3
  112. package/dist/prebuild-D4JoEAEs.mjs +484 -0
  113. package/dist/{project-_phNIJfs.mjs → project-wM_XFTvE.mjs} +65 -37
  114. package/dist/{pull-request-CQ8sPbZa.mjs → pull-request-W1IuLXDt.mjs} +102 -20
  115. package/dist/pull-request-eODyIqZF.d.mts +124 -0
  116. package/dist/pull-requests.d.mts +2 -120
  117. package/dist/pull-requests.mjs +2 -2
  118. package/dist/{react-native-android-CM1XRDwv.mjs → react-native-android-6OZ7MSM7.mjs} +121 -72
  119. package/dist/{gradle-DSrXb6lG.mjs → react-native-build-Dvd8hC21.mjs} +292 -15
  120. package/dist/react-native-doctor-DsoSF1Y9.mjs +234 -0
  121. package/dist/{react-native-ios-Dhq_eiYQ.mjs → react-native-ios-4u1Rn-GR.mjs} +71 -39
  122. package/dist/{recordings-D0d5aQt0.mjs → recordings-CQmfzAh7.mjs} +12 -9
  123. package/dist/registration-BcRgF6Ox.mjs +51 -0
  124. package/dist/{reload-C8JhxjSh.mjs → reload-BzkYabB-.mjs} +94 -47
  125. package/dist/reload-D7AVlb8N.mjs +2 -0
  126. package/dist/{remote-BiR6aYjy.mjs → remote-DjGDmlTZ.mjs} +26 -18
  127. package/dist/result-D2Ykz_iD.mjs +435 -0
  128. package/dist/{run-BtPgpKks.mjs → run-DidHghD1.mjs} +5 -5
  129. package/dist/selection-DSMbWEX2.mjs +620 -0
  130. package/dist/{server-bare-R2m_gsH8.mjs → server-bare-CafzuyFB.mjs} +3 -4
  131. package/dist/{server-command-CTtCkmcQ.mjs → server-command-C6QjeupS.mjs} +14 -7
  132. package/dist/{server-expo-DsguMGUF.mjs → server-expo-CrjB29pq.mjs} +54 -11
  133. package/dist/server-expo-D58c9L0M.mjs +2 -0
  134. package/dist/{settings-B717odTD.mjs → settings-C7O8A6ZI.mjs} +309 -119
  135. package/dist/settings-DpR-1Wnn.mjs +114 -0
  136. package/dist/settings-write-CzD60rOD.mjs +360 -0
  137. package/dist/settings.schema.json +176 -16
  138. package/dist/{simslim-CCr3rE-A.mjs → simslim-BNckWpXi.mjs} +14 -12
  139. package/dist/{slot-launch-DPt0m9Nd.mjs → slot-launch-CbfmNgM6.mjs} +15 -20
  140. package/dist/{spawn-entry-Dcb7sDUz.mjs → spawn-entry-jw19m8Nl.mjs} +0 -1
  141. package/dist/stage-Bps5oius.mjs +200 -0
  142. package/dist/{start-TXeMmmO2.mjs → start-Br-oxqMD.mjs} +1 -1
  143. package/dist/start-EojN4WFz.mjs +1364 -0
  144. package/dist/{state-D1Icyjlu.mjs → state--smjFSTL.mjs} +55 -13
  145. package/dist/{state-CG_OFoaA.mjs → state-08I3hw3_.mjs} +3 -2
  146. package/dist/{stats-BoY5sEPU.mjs → stats-D3GerlFW.mjs} +7 -13
  147. package/dist/stats-report-BzaPrRm6.mjs +16 -0
  148. package/dist/{status-BTA7kKiQ.mjs → status-BRROykC8.mjs} +7 -5
  149. package/dist/status-EvrK72L2.mjs +2 -0
  150. package/dist/{status-WgFbkRzj.mjs → status-WBDajew2.mjs} +554 -452
  151. package/dist/{status-watch-C23ILtf9.mjs → status-watch-Bg_u-pwR.mjs} +222 -25
  152. package/dist/status-worker.d.mts +1 -0
  153. package/dist/status-worker.mjs +19 -0
  154. package/dist/stim-desktop-D5OGpYZM.mjs +112 -0
  155. package/dist/{stop-DR6VoDIk.mjs → stop-DTZ9uTw3.mjs} +2 -2
  156. package/dist/{stop-DPEhunlw.mjs → stop-Dky10AEJ.mjs} +33 -23
  157. package/dist/{stop-BNmBMi1F.mjs → stop-Mv6W9FAk.mjs} +137 -98
  158. package/dist/supervisor-run.d.mts +8 -17
  159. package/dist/supervisor-run.mjs +56 -28
  160. package/dist/{support-CwjbFs9H.mjs → support-CNioewsd.mjs} +14 -14
  161. package/dist/{support-DMTqj3Hm.mjs → support-yUiOjnVY.mjs} +20 -13
  162. package/dist/swiftpm-artifact-inputs-DFcGsXDP.mjs +153 -0
  163. package/dist/swiftpm-macos-BIak-Rxv.mjs +532 -0
  164. package/dist/toolchain-BY8X8HXx.mjs +2 -0
  165. package/dist/toolchain-DpJMHq0n.mjs +876 -0
  166. package/dist/{trigger-CigAYjeL.mjs → trigger-Cbyc41d_.mjs} +21 -6
  167. package/dist/trigger-yb_nFzPF.mjs +2 -0
  168. package/dist/{warm-progress-BuY-Fvfn.mjs → warm-progress-CA3TgT3-.mjs} +263 -156
  169. package/dist/web-CZ07gd77.mjs +2 -0
  170. package/dist/{web-BDBMxDpx.mjs → web-DKx6yoFA.mjs} +20 -14
  171. package/dist/web-run.mjs +13 -12
  172. package/dist/windows-report.d.mts +1 -0
  173. package/dist/windows-report.mjs +18 -0
  174. package/dist/windows-report.ps1 +43 -0
  175. package/dist/{workspace-state-DJt_MMvf.mjs → workspace-state-U08dEzhG.mjs} +62 -58
  176. package/dist/{workspaces-C36s2jb9.mjs → workspaces-CpANmBlq.mjs} +1723 -1286
  177. package/dist/{worktree-CgvJYJ-Q.mjs → worktree-CHecZ4Oq.mjs} +1097 -547
  178. package/dist/worktree-ZqZVjD9K.mjs +2 -0
  179. package/dist/xcode-BXn9-xYx.mjs +896 -0
  180. package/package.json +7 -5
  181. package/shim/android-audio/Main.java +24 -0
  182. package/shim/android-audio/README.md +17 -0
  183. package/shim/android-audio.jar +0 -0
  184. package/shim/android-optimizations.gradle +7 -5
  185. package/dist/activity-BSV745Kz.mjs +0 -629
  186. package/dist/api-qvOzWyfO.mjs +0 -154
  187. package/dist/api-run.mjs +0 -294
  188. package/dist/app-install-BIKtMfPq.mjs +0 -896
  189. package/dist/artifact-lifecycle-DzPpBYvK.mjs +0 -30
  190. package/dist/budget-f7516Zk0.mjs +0 -4106
  191. package/dist/build-facts-DcLv2HSd.d.mts +0 -111
  192. package/dist/cancellation-C_22VQTH.mjs +0 -24
  193. package/dist/client-qQAaXSUs.mjs +0 -1771
  194. package/dist/config-BYDxlMY3.mjs +0 -562
  195. package/dist/device-DuiPJQSn.mjs +0 -290
  196. package/dist/device-lease-BX1sJQ2E.mjs +0 -1224
  197. package/dist/device-remote-xRT0Vmo9.mjs +0 -1272
  198. package/dist/eas-session-ledger-Cm0Gwq2F.mjs +0 -207
  199. package/dist/exec-DqKo9GKJ.mjs +0 -268
  200. package/dist/git-DDfFzkMm.mjs +0 -45
  201. package/dist/launch-verify-B6Q8hZP-.mjs +0 -428
  202. package/dist/logs-BGrEUaEs.mjs +0 -383
  203. package/dist/macos-Ch5VJmcS.mjs +0 -584
  204. package/dist/metro-gateway-CX9Xlkq2.mjs +0 -103
  205. package/dist/miss-reason-mKzZ4VvN.mjs +0 -238
  206. package/dist/native-android-D5qc3-_v.mjs +0 -226
  207. package/dist/native-gradle-inputs-BsLRrl7u.mjs +0 -349
  208. package/dist/ndjson-Du3j0AQ9.d.mts +0 -17
  209. package/dist/plan-C4TjdPsR.mjs +0 -260
  210. package/dist/prebuild-DYbucPXy.mjs +0 -212
  211. package/dist/preview-78a9kR_-.mjs +0 -1011
  212. package/dist/react-native-build-CtCccJtb.mjs +0 -239
  213. package/dist/react-native-doctor-CfRnFfjs.mjs +0 -78
  214. package/dist/remote-cache-OyOyVIS3.mjs +0 -526
  215. package/dist/result-CaJg5Iat.mjs +0 -186
  216. package/dist/server-expo-Bigriskl.mjs +0 -2
  217. package/dist/settings-BORNaaCO.mjs +0 -402
  218. package/dist/settings-vk3mJGSm.d.mts +0 -13
  219. package/dist/spawn-claims-DVS5RkMS.mjs +0 -72
  220. package/dist/stage-KNTQopqv.mjs +0 -157
  221. package/dist/start-BWqzODpb.mjs +0 -1116
  222. package/dist/stim-desktop-BzBN2Em2.mjs +0 -63
  223. package/dist/swiftpm-macos-DRNVJWlb.mjs +0 -119
  224. package/dist/tailnet-Dh-qiYzG.mjs +0 -265
  225. package/dist/toolchain-BFkAcstd.mjs +0 -2
  226. package/dist/toolchain-DxSsNssu.mjs +0 -1657
  227. package/dist/trigger-9_USgmxz.mjs +0 -2
  228. package/dist/web-Dq-i3wzJ.mjs +0 -2
  229. package/dist/worktree-DpLdCHga.mjs +0 -2
  230. package/dist/{api-run.d.mts → doctor-fingerprint.d.mts} +0 -0
  231. package/dist/{errors-DzkMYh8Q.mjs → errors-ccaPc4ox.mjs} +2 -2
@@ -1,36 +1,66 @@
1
- import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
- import { r as register } from "./cache-manifest-XH-fvDUj.mjs";
3
- import { Dt as repoRoot, H as remoteIosSetting, Q as settingShapeErrors, W as resolveCacheProviderConfig, ht as gitCommonDir, q as resolveSettings } from "./settings-B717odTD.mjs";
4
- import { T as filesystemBuildCapability, b as buildCacheKey } from "./device-lease-BX1sJQ2E.mjs";
5
- import { g as sharedCompilationCache } from "./workspace-state-DJt_MMvf.mjs";
6
- import { f as NativeXcodeError, h as selectNativeXcodeProject, m as pbxString } from "./project-_phNIJfs.mjs";
7
- import { It as statsProjectKey } from "./budget-f7516Zk0.mjs";
8
- import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DzkMYh8Q.mjs";
9
- import { a as nativeTransferRefusal } from "./client-qQAaXSUs.mjs";
10
- import { i as skippedMissReason, t as explainBuildMiss } from "./miss-reason-mKzZ4VvN.mjs";
11
- import { C as compilationCacheSettings, D as parseXcodeMajor, E as parseSwiftVersion, f as podsAreStale, g as runPodInstall, h as runCaptured, p as readPodState, r as iosToolchain, x as buildXcode, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-DxSsNssu.mjs";
12
- import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-B7SZsc2N.mjs";
13
- import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CwjbFs9H.mjs";
14
- import { t as IosRecipeRefusal } from "./ios-project-K9hY_Jab.mjs";
15
- import { d as gateProfileForDevice, i as DEFAULT_DEPS, r as iosProcessRuntime } from "./launch-C3qJ6Agb.mjs";
16
- import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-CykopJdM.mjs";
1
+ import { t as getExecutor } from "./exec-DEoAhcze.mjs";
2
+ import { o as sharedCompilationCache } from "./paths-DQtTgsBf.mjs";
3
+ import { G as resolveCacheProviderConfig, Nt as repoRootAsync, U as remoteIosSetting, et as settingShapeErrors } from "./settings-C7O8A6ZI.mjs";
4
+ import { g as selectNativeXcodeProject, h as pbxString, p as NativeXcodeError } from "./project-wM_XFTvE.mjs";
5
+ import { r as register } from "./cache-manifest-DSeQjt-Q.mjs";
6
+ import { Fn as processContext, Y as statsProjectKey } from "./budget-Cvwn54qV.mjs";
7
+ import { d as runCancellationSignal } from "./native-run-NwUuxbkg.mjs";
8
+ import { n as buildCacheKey, s as filesystemBuildCapability } from "./build-cache-Dv7RN200.mjs";
9
+ import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-ccaPc4ox.mjs";
10
+ import { a as buildXcode, l as parseSwiftVersion, r as HEARTBEAT_INTERVAL_MS, s as compilationCacheSettings, u as parseXcodeMajor } from "./xcode-BXn9-xYx.mjs";
11
+ import { a as nativeTransferRefusal } from "./client-OyRoEuSr.mjs";
12
+ import { _ as runCaptured, a as iosToolchainAsync, h as readPodState, m as podsAreStale, v as runPodInstall } from "./toolchain-DpJMHq0n.mjs";
13
+ import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CNioewsd.mjs";
14
+ import { r as gateProfileForDevice } from "./ios-signing-BtAffm0A.mjs";
15
+ import { l as skippedMissReason, o as explainBuildMiss } from "./prebuild-D4JoEAEs.mjs";
16
+ import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-DUC8Ka9y.mjs";
17
+ import { t as IosRecipeRefusal } from "./ios-project-CZhKODF3.mjs";
18
+ import { i as DEFAULT_DEPS, r as iosProcessRuntime } from "./launch-BjxemNpK.mjs";
19
+ import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-D_VOfFL7.mjs";
17
20
  import { existsSync } from "node:fs";
18
21
  import { join } from "node:path";
19
22
  //#region src/integrations/native-xcode-ios.ts
20
- function toolchain(sdk) {
23
+ async function toolchain(sdk, context) {
21
24
  const executor = getExecutor();
25
+ const env = context?.env ?? process.env;
26
+ const signal = context?.signal;
27
+ const childEnv = Object.fromEntries(Object.entries(env).filter((entry) => entry[1] !== void 0));
28
+ const omitEnv = Object.keys(process.env).filter((name) => env[name] === void 0);
29
+ const probe = async (file, args) => {
30
+ signal?.throwIfAborted();
31
+ let cancel;
32
+ try {
33
+ return await executor.runFileAsync(file, args, {
34
+ timeoutMs: 1e4,
35
+ env: childEnv,
36
+ omitEnv,
37
+ cwd: context?.cwd,
38
+ onSpawn(child) {
39
+ if (!signal) return;
40
+ cancel = () => {
41
+ child.kill("SIGKILL");
42
+ };
43
+ signal.addEventListener("abort", cancel, { once: true });
44
+ if (signal.aborted) cancel();
45
+ }
46
+ });
47
+ } finally {
48
+ if (cancel) signal?.removeEventListener("abort", cancel);
49
+ signal?.throwIfAborted();
50
+ }
51
+ };
22
52
  const identity = {
23
- xcode: executor.runFile("xcodebuild", ["-version"], { timeoutMs: 1e4 }),
24
- sdk: executor.runFile("xcodebuild", [
53
+ xcode: await probe("xcodebuild", ["-version"]),
54
+ sdk: await probe("xcodebuild", [
25
55
  "-version",
26
56
  "-sdk",
27
57
  sdk
28
- ], { timeoutMs: 1e4 }),
29
- swift: executor.runFile("xcrun", ["swift", "--version"], { timeoutMs: 1e4 }),
30
- clang: executor.runFile("xcrun", ["clang", "--version"], { timeoutMs: 1e4 }),
31
- developer: executor.runFile("xcode-select", ["-p"], { timeoutMs: 1e4 }),
32
- developerOverride: process.env.DEVELOPER_DIR ?? "",
33
- toolchains: process.env.TOOLCHAINS ?? ""
58
+ ]),
59
+ swift: await probe("xcrun", ["swift", "--version"]),
60
+ clang: await probe("xcrun", ["clang", "--version"]),
61
+ developer: await probe("xcode-select", ["-p"]),
62
+ developerOverride: env.DEVELOPER_DIR ?? "",
63
+ toolchains: env.TOOLCHAINS ?? ""
34
64
  };
35
65
  if (!identity.xcode.trim() || !identity.sdk.trim() || !identity.swift.trim() || !identity.clang.trim() || !identity.developer.trim()) throw new Error("An Xcode toolchain probe returned no identity.");
36
66
  return identity;
@@ -46,14 +76,8 @@ function refusal(error) {
46
76
  remedy: "Check the native Xcode project and its selected toolchain, then retry."
47
77
  };
48
78
  }
49
- function settingsContext(root) {
50
- return {
51
- projectPath: root,
52
- gitCommonDir: gitCommonDir(root),
53
- repoRoot: repoRoot(root)
54
- };
55
- }
56
79
  function nativeRecipe(root, context) {
80
+ const env = context.operation?.env ?? process.env;
57
81
  const configuration = context.configuration ?? "Debug";
58
82
  let selected = selectNativeXcodeProject(root, context.buildScheme, configuration);
59
83
  let tools = null;
@@ -76,7 +100,7 @@ function nativeRecipe(root, context) {
76
100
  throw new IosRecipeRefusal(refusal(error));
77
101
  }
78
102
  };
79
- const read = () => {
103
+ const read = async () => {
80
104
  if (!tools) return { cacheIneligible: ineligible ?? "Xcode toolchain identity is unavailable" };
81
105
  reselect();
82
106
  return nativeXcodeInputSnapshot(root, selected, {
@@ -84,17 +108,21 @@ function nativeRecipe(root, context) {
84
108
  architecture: context.target.keyArch,
85
109
  toolchain: tools,
86
110
  optimizations: context.optimizations
87
- }, repoRoot(root) ?? root);
111
+ }, env, await repoRootAsync(root, {
112
+ env,
113
+ signal: context.operation?.signal
114
+ }) ?? root, context.operation?.signal);
88
115
  };
89
116
  return {
90
117
  async identity() {
91
118
  try {
92
- tools = toolchain(context.target.sdk);
119
+ tools = await toolchain(context.target.sdk, context.operation);
93
120
  } catch (error) {
121
+ context.operation?.signal.throwIfAborted();
94
122
  ineligible = `Xcode toolchain identity is unavailable: ${error.message}`;
95
123
  return { cacheIneligible: ineligible };
96
124
  }
97
- const value = read();
125
+ const value = await read();
98
126
  if ("cacheIneligible" in value) {
99
127
  ineligible = value.cacheIneligible;
100
128
  return value;
@@ -102,7 +130,10 @@ function nativeRecipe(root, context) {
102
130
  snapshot = value;
103
131
  return identity(value);
104
132
  },
105
- cache: () => filesystemBuildCapability({ sources: snapshot ? nativeXcodeSources(snapshot) : null }),
133
+ cache: () => filesystemBuildCapability({
134
+ context: context.operation,
135
+ sources: snapshot ? nativeXcodeSources(snapshot) : null
136
+ }),
106
137
  async prepare(beforePrepare) {
107
138
  const pods = readPodState(root, root);
108
139
  const state = podsAreStale(pods.lockText, pods.manifestText);
@@ -110,6 +141,7 @@ function nativeRecipe(root, context) {
110
141
  beforePrepare();
111
142
  context.step("pods");
112
143
  const result = await runPodInstall(root, context.logWriter(), {
144
+ onHeartbeat: context.note,
113
145
  directory: root,
114
146
  estimateMs: context.estimates().podsMs
115
147
  });
@@ -139,7 +171,7 @@ function nativeRecipe(root, context) {
139
171
  ],
140
172
  cwd: root,
141
173
  env: {
142
- ...process.env,
174
+ ...env,
143
175
  NSUnbufferedIO: "YES",
144
176
  FORCE_COLOR: "0"
145
177
  },
@@ -161,7 +193,7 @@ function nativeRecipe(root, context) {
161
193
  }
162
194
  },
163
195
  async reconcile() {
164
- const current = snapshot && !mutations.length ? snapshot : read();
196
+ const current = snapshot && !mutations.length ? snapshot : await read();
165
197
  if ("cacheIneligible" in current) {
166
198
  ineligible = current.cacheIneligible;
167
199
  snapshot = null;
@@ -175,10 +207,11 @@ function nativeRecipe(root, context) {
175
207
  async validate() {
176
208
  if (!snapshot) return null;
177
209
  try {
178
- tools = toolchain(context.target.sdk);
179
- const after = read();
210
+ tools = await toolchain(context.target.sdk, context.operation);
211
+ const after = await read();
180
212
  return !("cacheIneligible" in after) && after.hash === snapshot.hash ? identity(snapshot) : null;
181
213
  } catch {
214
+ context.operation?.signal.throwIfAborted();
182
215
  return null;
183
216
  }
184
217
  },
@@ -191,10 +224,12 @@ function nativeRecipe(root, context) {
191
224
  },
192
225
  async materialize(path) {
193
226
  if (context.device) {
194
- const gate = gateProfileForDevice({
227
+ const gate = await gateProfileForDevice({
195
228
  appPath: path,
196
229
  udid: context.device.udid,
197
- configuration
230
+ configuration,
231
+ env: context.operation?.env,
232
+ signal: runCancellationSignal(context.operation) ?? context.operation?.signal
198
233
  });
199
234
  if (!gate.ok) throw new IosRecipeRefusal({
200
235
  code: gate.code,
@@ -205,6 +240,7 @@ function nativeRecipe(root, context) {
205
240
  return path;
206
241
  },
207
242
  compile: () => buildXcode({
243
+ context: context.operation,
208
244
  root,
209
245
  project: selected.container,
210
246
  scheme: selected.scheme,
@@ -219,6 +255,7 @@ function nativeRecipe(root, context) {
219
255
  arch: context.target.arch,
220
256
  logWriter: context.logWriter(),
221
257
  estimateMs: context.estimates().coldBuildMs,
258
+ onHeartbeat: context.note,
222
259
  extraArgs: nativeXcodeHasPackages(selected) ? [
223
260
  "-clonedSourcePackagesDirPath",
224
261
  nativeXcodePackages(root),
@@ -232,7 +269,7 @@ function nativeRecipe(root, context) {
232
269
  casPath,
233
270
  xcodeMajor: parseXcodeMajor(tools?.xcode),
234
271
  swiftVersion: parseSwiftVersion(tools?.swift),
235
- swiftCacheCompatible: (!process.env.SWIFT_ENABLE_EXPLICIT_MODULES || process.env.SWIFT_ENABLE_EXPLICIT_MODULES === "YES") && !selected.projects.some((project) => [...project.objects.values()].some((entry) => {
272
+ swiftCacheCompatible: (!env.SWIFT_ENABLE_EXPLICIT_MODULES || env.SWIFT_ENABLE_EXPLICIT_MODULES === "YES") && !selected.projects.some((project) => [...project.objects.values()].some((entry) => {
236
273
  if (entry.isa !== "XCBuildConfiguration" || pbxString(entry.name) !== configuration) return false;
237
274
  const targetSettings = entry.buildSettings;
238
275
  const explicitModules = pbxString(targetSettings?.SWIFT_ENABLE_EXPLICIT_MODULES);
@@ -242,6 +279,7 @@ function nativeRecipe(root, context) {
242
279
  });
243
280
  if (settings.length && context.optimizations.compilationCache) register({
244
281
  dir: casPath,
282
+ registeredBy: context.operation?.cwd ?? root,
245
283
  name: "Xcode compilation cache",
246
284
  prune: "atomic",
247
285
  note: "shared Xcode compilation cache"
@@ -268,20 +306,23 @@ function nativeRecipe(root, context) {
268
306
  };
269
307
  },
270
308
  untrackedLine: () => null,
271
- legacyCache: null,
309
+ expoCache: null,
272
310
  offload: {
273
- context: () => {
311
+ context: async () => {
274
312
  const runtime = context.target.sdk === "iphonesimulator" ? context.target.offloadRuntime() : null;
275
313
  return {
276
314
  runtime,
277
- unsupported: context.target.offloadRefusal ?? (context.device ? "Physical native Xcode builds build here" : !context.cache.write ? "the build cache is off" : !runtime ? "no simulator runtime is available for worker selection" : !snapshot ? "the native inputs have no verified identity" : nativeTransferRefusal(repoRoot(root) ?? root, snapshot))
315
+ unsupported: context.target.offloadRefusal ?? (context.device ? "Physical native Xcode builds build here" : !context.cache.write ? "the build cache is off" : !runtime ? "no simulator runtime is available for worker selection" : !snapshot ? "the native inputs have no verified identity" : await nativeTransferRefusal(await repoRootAsync(root, {
316
+ env,
317
+ signal: context.operation?.signal
318
+ }) ?? root, snapshot, runCancellationSignal(context.operation) ?? context.operation?.signal))
278
319
  };
279
320
  },
280
- target: (runtime) => ({
321
+ target: async (runtime) => ({
281
322
  platform: "ios",
282
323
  native: "xcode",
283
324
  local: {
284
- ...iosToolchain(root, "xcode"),
325
+ ...await iosToolchainAsync(root, "xcode"),
285
326
  ...context.target.hostedArchitecture ? { arch: context.target.hostedArchitecture === "x86_64" ? "x64" : "arm64" } : {}
286
327
  },
287
328
  runtime,
@@ -305,22 +346,21 @@ function nativeRecipe(root, context) {
305
346
  };
306
347
  },
307
348
  unchanged: async () => {
308
- const current = read();
349
+ const current = await read();
309
350
  return snapshot !== null && !("cacheIneligible" in current) && current.hash === snapshot.hash;
310
351
  }
311
352
  }
312
353
  };
313
354
  }
314
- async function planNativeXcode(root, options) {
355
+ async function planNativeXcode(root, options, resolved, operation = processContext(root)) {
315
356
  if (options.easProfile !== void 0) return { refusal: planFlagRefusal("--eas-profile") };
316
357
  try {
317
- const context = settingsContext(root);
318
- const settings = resolveSettings(context);
358
+ const { context, settings } = resolved;
319
359
  const errors = settingShapeErrors(settings);
320
360
  if (errors.length) throw new NativeXcodeError(errors.join("; "), "Correct the project settings and retry.");
321
361
  if (remoteIosSetting(settings)) throw new NativeXcodeError("Native Xcode planning does not resolve hosted placement.", "Unset ios.remote to plan a local build, or run stim ios without --plan.");
322
362
  const layers = DEFAULT_DEPS.settingsLayers(context);
323
- const modelRefusal = deviceModelRefusal({
363
+ const modelRefusal = await deviceModelRefusal({
324
364
  slot: options.slot ?? "default",
325
365
  deviceTypeFlag: options.deviceType,
326
366
  runtimeFlag: options.runtime,
@@ -330,7 +370,8 @@ async function planNativeXcode(root, options) {
330
370
  runtimeOrigin: DEFAULT_DEPS.settingOriginScope(layers, "ios.runtime"),
331
371
  physical: false,
332
372
  remoteBackend: null,
333
- listRuntimes: DEFAULT_DEPS.listIosRuntimes
373
+ listRuntimes: DEFAULT_DEPS.listIosRuntimes,
374
+ signal: operation?.signal
334
375
  });
335
376
  if (modelRefusal) return { refusal: modelRefusal };
336
377
  const configuration = resolveConfiguration(options.configuration, settings) ?? "Debug";
@@ -342,12 +383,12 @@ async function planNativeXcode(root, options) {
342
383
  hostArch: process.arch === "arm64" ? "arm64" : "x86_64",
343
384
  configuration
344
385
  });
345
- const snapshot = nativeXcodeInputSnapshot(root, selection, {
386
+ const snapshot = await nativeXcodeInputSnapshot(root, selection, {
346
387
  sdk: "iphonesimulator",
347
388
  architecture,
348
- toolchain: toolchain("iphonesimulator"),
389
+ toolchain: await toolchain("iphonesimulator", operation),
349
390
  optimizations: optimizations.ios
350
- }, context.repoRoot ?? root);
391
+ }, operation?.env ?? process.env, context.repoRoot ?? root, operation?.signal);
351
392
  if ("cacheIneligible" in snapshot) throw new NativeXcodeError(`No reusable native artifact can be predicted: ${snapshot.cacheIneligible}.`, "Run stim ios without --plan; it can prepare dependencies and build locally without artifact caching.");
352
393
  const key = buildCacheKey("ios", snapshot.hash, {
353
394
  configuration,
@@ -373,10 +414,13 @@ async function planNativeXcode(root, options) {
373
414
  expoRemote: null
374
415
  }, {
375
416
  ...DEFAULT_DEPS,
417
+ operation,
376
418
  planPrebuild: () => "none",
377
- note: (line) => console.error(line)
419
+ note: (line) => operation.output("stderr", `${line}\n`)
378
420
  });
379
421
  } catch (error) {
422
+ if (error instanceof Error && "reportCleanup" in error) throw error;
423
+ operation?.signal.throwIfAborted();
380
424
  return { refusal: refusal(error) };
381
425
  }
382
426
  }
@@ -390,7 +434,7 @@ function nativeXcodeIosProject(root) {
390
434
  ],
391
435
  eas: false,
392
436
  runtimeKind: () => "process",
393
- plan: (options) => planNativeXcode(root, options),
437
+ plan: (options, resolved, operation) => planNativeXcode(root, options, resolved, operation),
394
438
  bundleId: () => null,
395
439
  schemeProblem(scheme, configuration) {
396
440
  try {
@@ -1,7 +1,7 @@
1
+ import { ensurePrivateDir, rotateLog } from "@stim-cli/core";
2
+ import { LEVELS as LEVELS$1, SOURCES as SOURCES$1, levelRank, parseNdjsonLine, parseNdjsonText, readNdjsonGenerations as readNdjsonGenerations$1, runId } from "@stim-cli/core/state";
1
3
  import { dirname } from "path";
2
- import { LEVELS, SOURCES, levelRank, parseNdjsonLine, parseNdjsonText, readNdjsonGenerations as readNdjsonGenerations$1, runId } from "@stim-cli/core/state";
3
4
  import { closeSync, openSync, writeSync } from "fs";
4
- import { ensurePrivateDir, rotateLog } from "@stim-cli/core";
5
5
  //#region src/ndjson.ts
6
6
  const ROTATE_CHECK_MS = 1e3;
7
7
  function formatNdjsonLine(record) {
@@ -115,4 +115,4 @@ function stamp(record) {
115
115
  };
116
116
  }
117
117
  //#endregion
118
- export { parseNdjsonLine as a, levelRank as i, SOURCES as n, parseNdjsonText as o, createNdjsonWriter as r, readNdjsonGenerations$1 as s, LEVELS as t };
118
+ export { parseNdjsonLine as a, levelRank as i, SOURCES$1 as n, parseNdjsonText as o, createNdjsonWriter as r, readNdjsonGenerations$1 as s, LEVELS$1 as t };
@@ -1,49 +1,55 @@
1
- import { n as CcacheActivity, r as CompilationCacheActivity } from "./build-facts-DcLv2HSd.mjs";
2
- import "./settings-vk3mJGSm.mjs";
3
- import "./ndjson-Du3j0AQ9.mjs";
4
- import "@stim-cli/core/state";
5
- import { readFileSync } from "fs";
6
- import "@expo/fingerprint";
7
- import { BuildStartParams } from "@stim-cli/core/protocol";
8
- //#region src/optimizations.d.ts
9
- interface Optimizations {
10
- buildCache: boolean;
11
- remoteBuildCache: boolean;
12
- releaseBundleSwap: boolean;
13
- metroSharedCache: boolean;
14
- metroWarmup: boolean;
15
- ios: {
16
- compilationCache: boolean;
17
- swiftCompilationCache: boolean | null;
18
- prefixMapping: boolean;
1
+ import { c as IosToolchain, g as CompilationCacheActivity, h as CcacheActivity, i as AndroidBuildOptions, l as WorkerToolchain, p as Optimizations, r as SwiftpmArtifactToolchain, t as NativeGradleArtifactReceipt } from "./android-project-DVWyCbWU.mjs";
2
+ import { StimContext } from "@stim-cli/core";
3
+ import { BuildReactNativeArtifactQuery, BuildStartParams, BuildSwiftpmArtifactQuery } from "@stim-cli/core/protocol";
4
+ //#region src/offload/react-native-artifact.d.ts
5
+ type ArtifactTools = (IosToolchain & {
6
+ os: string;
7
+ }) | Pick<WorkerToolchain, "stimBuild" | "os" | "arch" | "jdk" | "androidSdk">;
8
+ interface ArtifactReceipt {
9
+ identity: {
10
+ hash: string;
11
+ key: string;
19
12
  };
20
- android: {
21
- compilerCache: "ccache" | "cas" | "none";
22
- casToolchain: string | null;
23
- compilerCacheFallback: CompilerCacheFallback | null;
24
- pch: "auto" | "on" | "off";
25
- gradleBuildCache: boolean;
26
- targetAbiOnly: boolean;
13
+ receipt: {
14
+ query: BuildReactNativeArtifactQuery;
15
+ toolchain: ArtifactTools;
27
16
  };
28
17
  }
29
- interface CompilerCacheFallback {
30
- key: string;
31
- reason: string;
32
- fromEnvironment: boolean;
33
- manifest: string | null;
34
- }
18
+ declare function reactNativeArtifactReceipt(query: BuildReactNativeArtifactQuery, toolchain: ArtifactTools | null): ArtifactReceipt | null;
35
19
  //#endregion
36
- //#region src/offload/client.d.ts
37
- /** The Gradle choices that shape the APK, so the machine builds what this Mac's cache key describes. */
38
- interface AndroidBuildOptions {
39
- variant: string | null;
40
- abi: string | null;
41
- gradleBuildCache: boolean;
42
- pch: "auto" | "on" | "off";
43
- compilerCache: "ccache" | "none";
44
- gradleRoot?: string | null;
45
- module?: string | null;
20
+ //#region src/offload/swiftpm-artifact.d.ts
21
+ interface SwiftpmWorkerToolchain extends SwiftpmArtifactToolchain {
22
+ selection: {
23
+ command: string;
24
+ compiler: string;
25
+ sdk: string;
26
+ xcrun: string;
27
+ xcodebuild: string;
28
+ overrides: Record<string, {
29
+ command: string;
30
+ version: string;
31
+ }>;
32
+ checkoutRequired: boolean;
33
+ };
34
+ }
35
+ interface SwiftpmArtifactReceipt {
36
+ query: BuildSwiftpmArtifactQuery;
37
+ identity: {
38
+ hash: string;
39
+ key: string;
40
+ };
41
+ privateHash: string;
42
+ privateLockfile: boolean;
43
+ checkoutRequired: boolean;
46
44
  }
45
+ /** Certifies actual worker inputs, not the client's transfer digest or cache identity. */
46
+ declare function swiftpmWorkerArtifactSnapshot(root: string, query: BuildSwiftpmArtifactQuery, toolchain: SwiftpmWorkerToolchain, env: NodeJS.ProcessEnv, signal?: AbortSignal): Promise<{
47
+ identity: {
48
+ hash: string;
49
+ key: string;
50
+ };
51
+ receipt: SwiftpmArtifactReceipt;
52
+ }>;
47
53
  //#endregion
48
54
  //#region src/offload/worker.d.ts
49
55
  /** One entry of the source transfer: a visible file of the checkout, or a native build's file or directory input. */
@@ -66,6 +72,7 @@ interface WorkerJob {
66
72
  bundleId: string;
67
73
  resources?: Record<string, string>;
68
74
  assetCatalog?: string | null;
75
+ artifactInputs?: BuildSwiftpmArtifactQuery["inputs"];
69
76
  } | null;
70
77
  swiftpmCache: string;
71
78
  project: string;
@@ -77,6 +84,8 @@ interface WorkerJob {
77
84
  runtime: string | null;
78
85
  android: AndroidBuildOptions | null;
79
86
  expectedFingerprint: string | null;
87
+ cacheArtifact?: boolean;
88
+ stimBuild?: string;
80
89
  native?: BuildStartParams["native"];
81
90
  optimizations: Optimizations["ios"] | null;
82
91
  /** How long the client's Gradle daemon stays warm after an Android build; 0 or absent stops it when the build ends. */
@@ -102,6 +111,15 @@ type WorkerResult = {
102
111
  fingerprint: string | null;
103
112
  androidPackage?: string;
104
113
  sourceDigest?: string;
114
+ cacheArtifact?: {
115
+ identity: {
116
+ hash: string;
117
+ key: string;
118
+ };
119
+ receipt: NativeGradleArtifactReceipt;
120
+ };
121
+ reactNativeArtifact?: NonNullable<ReturnType<typeof reactNativeArtifactReceipt>>;
122
+ swiftpmArtifact?: Awaited<ReturnType<typeof swiftpmWorkerArtifactSnapshot>>;
105
123
  compilationCache: CompilationCacheActivity | CcacheActivity | Record<string, never>;
106
124
  timings: WorkerTimings;
107
125
  } | {