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.
Files changed (217) hide show
  1. package/README.md +88 -8
  2. package/dist/acquire-artifact-CD4lbiWE.mjs +153 -0
  3. package/dist/act-DHAw2A2S.mjs +2667 -0
  4. package/dist/activity-BzVfHSrY.mjs +1376 -0
  5. package/dist/{agent-device-usage-output-Dzgv6lgR.mjs → agent-device-usage-output-zh1vhbLp.mjs} +21 -65
  6. package/dist/{android-HqP1_vB_.mjs → android-BEJ8Jpl7.mjs} +2 -2
  7. package/dist/{android-DCKZrNvV.mjs → android-BLgbNqox.mjs} +128 -78
  8. package/dist/{android-Dlzxshgp.mjs → android-CV_GCELZ.mjs} +5 -5
  9. package/dist/{android-Mz_Inn3w.mjs → android-DUYkNF4u.mjs} +184 -102
  10. package/dist/{android-cas-Bl-cLJBk.mjs → android-cas-Ct5b1xCK.mjs} +7 -6
  11. package/dist/android-cas-compiler.mjs +2 -2
  12. package/dist/android-project-BCAAmMwz.mjs +12 -0
  13. package/dist/api.d.mts +740 -8
  14. package/dist/api.mjs +585 -1
  15. package/dist/{artifact-HSwkIWEQ.mjs → artifact-B8T3S5gi.mjs} +223 -201
  16. package/dist/{artifact-D3czlUvT.mjs → artifact-DAuZ-FNU.mjs} +158 -148
  17. package/dist/{browser-web-CA-F1GQo.mjs → browser-web-QQzVjz3O.mjs} +26 -24
  18. package/dist/budget-Bs6SxxzO.mjs +9154 -0
  19. package/dist/{build-DYDbfkk5.mjs → build-CoPzQRNw.mjs} +144 -96
  20. package/dist/build-cache-DmyR9Zzc.mjs +602 -0
  21. package/dist/build-plan-CaFskB7_.mjs +188 -0
  22. package/dist/{cache-manifest-XH-fvDUj.mjs → cache-manifest-DkkqguoK.mjs} +2 -2
  23. package/dist/cache-manifest.mjs +1 -1
  24. package/dist/{ccache-zdKiYQ3E.mjs → ccache-BJRZ9pG3.mjs} +10 -9
  25. package/dist/{cdp-Dq_ypAlJ.mjs → cdp-CWmIUMbw.mjs} +18 -5
  26. package/dist/{chrome-BnzZMqsR.mjs → chrome-B6tfCta1.mjs} +7 -4
  27. package/dist/{cli-CLP3diBm.mjs → cli-0DYf8QhQ.mjs} +20 -20
  28. package/dist/cli.mjs +1 -1
  29. package/dist/client-B7QVOlCr.d.mts +253 -0
  30. package/dist/client-UXD70ZbM.mjs +1406 -0
  31. package/dist/collector-run.d.mts +4 -40
  32. package/dist/collector-run.mjs +9 -8
  33. package/dist/{command-output-BTy8hZ0F.mjs → command-output-B1UrjZHL.mjs} +1 -1
  34. package/dist/config-CYcBF478.mjs +949 -0
  35. package/dist/{created-devices-Dzd5C2LF.mjs → created-devices-CqeBlrEn.mjs} +3 -3
  36. package/dist/{dependency-state-DG0p31-y.mjs → dependency-state-BbKQW83h.mjs} +20 -5
  37. package/dist/{detached-entry-B9C_zeQC.mjs → detached-entry-DFRyG1_o.mjs} +1 -1
  38. package/dist/{dev-client-DAWVIGBu.mjs → dev-client-UOeESKm6.mjs} +2 -2
  39. package/dist/device-DCxH7_By.mjs +1068 -0
  40. package/dist/{device-BECOiufl.mjs → device-ExJq8Ei7.mjs} +35 -35
  41. package/dist/{device-capacity-CBUAcRyQ.mjs → device-capacity-CMlqEcvw.mjs} +43 -13
  42. package/dist/device-host-worker.mjs +65 -61
  43. package/dist/{device-ios-COSi6oS1.mjs → device-ios-DRUeKaFV.mjs} +48 -45
  44. package/dist/{device-lease-run-Cw2M4z51.mjs → device-lease-run-C8raGFoP.mjs} +14 -26
  45. package/dist/{device-pool-Bf-pOhSw.mjs → device-pool-DMRpVX9a.mjs} +5 -5
  46. package/dist/doctor-BLHCYxzi.mjs +2 -0
  47. package/dist/{doctor-kfMBnUw6.mjs → doctor-DTvaDOda.mjs} +281 -317
  48. package/dist/{doctor-CB8oZKCk.mjs → doctor-Dhqebm0q.mjs} +183 -91
  49. package/dist/doctor-fingerprint.mjs +19 -0
  50. package/dist/{doctor-watchman-BRyV2adA.mjs → doctor-watchman-Cv1F10Kj.mjs} +40 -21
  51. package/dist/{eas-build-JyfqyHfC.mjs → eas-build-BomfRnFT.mjs} +53 -20
  52. package/dist/{build-plan-B7SZsc2N.mjs → eas-fallback-DJwZpy0c.mjs} +26 -208
  53. package/dist/{watchman-CPQFZLXY.mjs → eas-session-ledger-op6A54yi.mjs} +229 -11
  54. package/dist/{error-diagnostics-BR677IDM.mjs → error-diagnostics-Bf0rZvG9.mjs} +172 -82
  55. package/dist/exec-H20xSg2T.d.mts +65 -0
  56. package/dist/exec-_UbtCQcG.mjs +750 -0
  57. package/dist/gc-C-WwL0yi.mjs +3 -0
  58. package/dist/{gc-qWOMdnER.mjs → gc-_-dCXdyL.mjs} +584 -796
  59. package/dist/git-C3iTsJaZ.mjs +73 -0
  60. package/dist/{guide-G9cAbVAc.mjs → guide-Yqwt2bd6.mjs} +941 -269
  61. package/dist/{hosted-android-C3MHGld1.mjs → hosted-android-Bw-honsd.mjs} +8 -6
  62. package/dist/{hosted-client-ZEKpS9vw.mjs → hosted-client-DB_gBPfY.mjs} +34 -19
  63. package/dist/{hosted-ios-l-o3iM9J.mjs → hosted-ios-CUvOf4Vr.mjs} +1 -1
  64. package/dist/{hosted-logs-EzQM7-3Z.mjs → hosted-logs-DL_P5AdN.mjs} +77 -43
  65. package/dist/{hosted-macos-BACVAVqE.mjs → hosted-macos-QI141yKk.mjs} +21 -17
  66. package/dist/{hosted-native-A4s1QPXe.mjs → hosted-native-Ksyjgzq-.mjs} +30 -21
  67. package/dist/idle-BVeRGroT.d.mts +24 -0
  68. package/dist/{idle-shutdown-DtxhPTKe.mjs → idle-shutdown-DaKmZi0z.mjs} +11 -10
  69. package/dist/{ios-BwVCF7oA.mjs → ios-CQ68hG9s.mjs} +8 -8
  70. package/dist/{ios-RkW4pnQf.mjs → ios-CpByZy12.mjs} +140 -80
  71. package/dist/{ios-device-B5veSDDQ.mjs → ios-device-CXGP1bsD.mjs} +1 -1
  72. package/dist/{ios-device-D7pi2Sca.mjs → ios-device-CwFMehUS.mjs} +51 -26
  73. package/dist/{ios-project-K9hY_Jab.mjs → ios-project-WuwwBdvW.mjs} +13 -13
  74. package/dist/{ios-nOLJGVdy.mjs → ios-qNJt4dFm.mjs} +1 -1
  75. package/dist/ios-signing-DTTIChGs.mjs +489 -0
  76. package/dist/{ios-state-CBLe1xYw.mjs → ios-state-DvFX-K_l.mjs} +1 -1
  77. package/dist/{ios-Ce7bc7br.mjs → ios-ubFsBzwq.mjs} +129 -86
  78. package/dist/{js-swap-Bb3nsS07.mjs → js-swap-Cc1dttps.mjs} +53 -26
  79. package/dist/{launch-F4sOqAhB.mjs → launch-CD1yVc7U.mjs} +91 -90
  80. package/dist/{launch-C3qJ6Agb.mjs → launch-Zq2mOSDy.mjs} +82 -541
  81. package/dist/logs-BS00Anxf.mjs +352 -0
  82. package/dist/logs-CMm05HxN.mjs +255 -0
  83. package/dist/{macos-D7uDvO-z.mjs → macos-B65--pPd.mjs} +1 -1
  84. package/dist/{macos-Ch5VJmcS.mjs → macos-C-0qJ6zq.mjs} +225 -212
  85. package/dist/macos-run.mjs +1 -1
  86. package/dist/maintenance-run.mjs +122 -247
  87. package/dist/{metro-DnCEjCxs.mjs → metro-DEXpIhHC.mjs} +67 -12
  88. package/dist/{metro-gateway-CX9Xlkq2.mjs → metro-gateway-BMJNlj3E.mjs} +20 -12
  89. package/dist/{named-ports-4WopRPg-.mjs → named-ports-BWTzt6mu.mjs} +8 -63
  90. package/dist/native-android-JACyjTZs.mjs +844 -0
  91. package/dist/{native-gradle-inputs-BsLRrl7u.mjs → native-gradle-inputs-Bep9JcSF.mjs} +128 -140
  92. package/dist/native-inputs-TRTTTRxt.mjs +91 -0
  93. package/dist/native-run-DY_RLx3C.mjs +277 -0
  94. package/dist/{native-runtime-k8dTIrbK.mjs → native-runtime-Dg1Q7tfF.mjs} +9 -8
  95. package/dist/{native-xcode-inputs-CykopJdM.mjs → native-xcode-inputs-CB2iQeWq.mjs} +27 -18
  96. package/dist/{native-xcode-ios-Bbf30Gm0.mjs → native-xcode-ios-CXX39F7o.mjs} +96 -47
  97. package/dist/{ndjson-GOnbyvso.mjs → ndjson-CgE_o3Dl.mjs} +3 -3
  98. package/dist/offload-worker.d.mts +1 -46
  99. package/dist/offload-worker.mjs +197 -66
  100. package/dist/{ownership-DCtw_2IA.mjs → ownership-DEmM5vhh.mjs} +3 -3
  101. package/dist/{page-DRHy329N.mjs → page-CPaHeYqj.mjs} +7 -4
  102. package/dist/paths-BsJMoPP2.mjs +12 -0
  103. package/dist/paths-DQtTgsBf.mjs +42 -0
  104. package/dist/{placement-log-MOfPVgaM.mjs → placement-log-BqGbTa61.mjs} +5 -5
  105. package/dist/{plan-placement-V0TdzYXp.mjs → plan-placement-Bwj-IjY1.mjs} +6 -6
  106. package/dist/{ports-DdSUicVo.mjs → ports-D-MmCTdv.mjs} +3 -3
  107. package/dist/prebuild-uD_ipCxF.mjs +449 -0
  108. package/dist/{project-_phNIJfs.mjs → project-BZNjmW_8.mjs} +65 -37
  109. package/dist/{pull-request-CQ8sPbZa.mjs → pull-request-Lfetn8Kr.mjs} +2 -2
  110. package/dist/pull-request-zjCSAryH.d.mts +120 -0
  111. package/dist/pull-requests.d.mts +1 -119
  112. package/dist/pull-requests.mjs +1 -1
  113. package/dist/{react-native-android-CM1XRDwv.mjs → react-native-android-DuzH0cn3.mjs} +74 -48
  114. package/dist/{gradle-DSrXb6lG.mjs → react-native-build-rhk4smwQ.mjs} +292 -15
  115. package/dist/react-native-doctor-CQpuIMso.mjs +234 -0
  116. package/dist/{react-native-ios-Dhq_eiYQ.mjs → react-native-ios-Bhq1rJeV.mjs} +46 -28
  117. package/dist/{recordings-D0d5aQt0.mjs → recordings-DYteQSu4.mjs} +12 -9
  118. package/dist/{reload-C8JhxjSh.mjs → reload-CmTRFJaX.mjs} +93 -47
  119. package/dist/reload-DzjSl5P_.mjs +2 -0
  120. package/dist/{remote-BiR6aYjy.mjs → remote-ByYkXdGD.mjs} +15 -10
  121. package/dist/result-DNiS-tTP.mjs +434 -0
  122. package/dist/{run-BtPgpKks.mjs → run-D23HmJMs.mjs} +4 -5
  123. package/dist/selection-CSl9i5qU.mjs +619 -0
  124. package/dist/{server-bare-R2m_gsH8.mjs → server-bare-CxTrvDg8.mjs} +3 -4
  125. package/dist/{server-command-CTtCkmcQ.mjs → server-command-CtzloH3v.mjs} +14 -7
  126. package/dist/server-expo-C-90EhcG.mjs +2 -0
  127. package/dist/{server-expo-DsguMGUF.mjs → server-expo-DT_F_uVI.mjs} +50 -9
  128. package/dist/{settings-B717odTD.mjs → settings-CsJDEXgK.mjs} +234 -24
  129. package/dist/{settings-vk3mJGSm.d.mts → settings-DkdmlelE.d.mts} +6 -4
  130. package/dist/settings-T1gtc3bf.mjs +114 -0
  131. package/dist/settings-write-HyVZ8eQ8.mjs +359 -0
  132. package/dist/settings.schema.json +163 -16
  133. package/dist/{simslim-CCr3rE-A.mjs → simslim-Cgk17SXV.mjs} +14 -12
  134. package/dist/{slot-launch-DPt0m9Nd.mjs → slot-launch-DF8VfT64.mjs} +15 -20
  135. package/dist/{spawn-entry-Dcb7sDUz.mjs → spawn-entry-jw19m8Nl.mjs} +0 -1
  136. package/dist/stage-BIS0ydsV.mjs +183 -0
  137. package/dist/{start-BWqzODpb.mjs → start-7lpH7hmN.mjs} +63 -44
  138. package/dist/{start-TXeMmmO2.mjs → start-RChynRDp.mjs} +1 -1
  139. package/dist/{state-D1Icyjlu.mjs → state-C4ZtUisW.mjs} +40 -13
  140. package/dist/{state-CG_OFoaA.mjs → state-XMziexv2.mjs} +3 -2
  141. package/dist/{stats-BoY5sEPU.mjs → stats-53T7OTb9.mjs} +7 -13
  142. package/dist/stats-report-BFfMpWWF.mjs +16 -0
  143. package/dist/{status-WgFbkRzj.mjs → status-BL7jVyAB.mjs} +535 -447
  144. package/dist/status-CSi6tlRq.mjs +2 -0
  145. package/dist/{status-BTA7kKiQ.mjs → status-DqEUSSxs.mjs} +6 -4
  146. package/dist/{status-watch-C23ILtf9.mjs → status-watch-GDCfqpTE.mjs} +187 -22
  147. package/dist/status-worker.d.mts +1 -0
  148. package/dist/status-worker.mjs +19 -0
  149. package/dist/stim-desktop-C12we7lz.mjs +112 -0
  150. package/dist/{stop-DR6VoDIk.mjs → stop-Bk_1qiV6.mjs} +2 -2
  151. package/dist/{stop-BNmBMi1F.mjs → stop-CPzlM1L-.mjs} +138 -98
  152. package/dist/{stop-DPEhunlw.mjs → stop-D7h6jAXQ.mjs} +11 -10
  153. package/dist/supervisor-run.d.mts +8 -17
  154. package/dist/supervisor-run.mjs +63 -27
  155. package/dist/{support-DMTqj3Hm.mjs → support-67vraa1Q.mjs} +18 -11
  156. package/dist/{support-CwjbFs9H.mjs → support-Dlu37g6H.mjs} +12 -12
  157. package/dist/{swiftpm-macos-DRNVJWlb.mjs → swiftpm-macos-p8WZbxKU.mjs} +35 -24
  158. package/dist/toolchain-DhKwp9iI.mjs +2 -0
  159. package/dist/toolchain-Hp9sCpK4.mjs +873 -0
  160. package/dist/{trigger-CigAYjeL.mjs → trigger-BAahxUPq.mjs} +20 -5
  161. package/dist/trigger-Bf3uDcpv.mjs +2 -0
  162. package/dist/{warm-progress-BuY-Fvfn.mjs → warm-progress-BHX5r0Ei.mjs} +250 -156
  163. package/dist/{web-BDBMxDpx.mjs → web-CJmIj6AI.mjs} +18 -13
  164. package/dist/web-DknQETPs.mjs +2 -0
  165. package/dist/web-run.mjs +11 -12
  166. package/dist/windows-report.d.mts +1 -0
  167. package/dist/windows-report.mjs +18 -0
  168. package/dist/windows-report.ps1 +43 -0
  169. package/dist/workspace-process-lock-1_1OoVW5.mjs +57 -0
  170. package/dist/{workspace-state-DJt_MMvf.mjs → workspace-state-Cjuigeeu.mjs} +62 -58
  171. package/dist/{workspaces-C36s2jb9.mjs → workspaces-BccMFmGQ.mjs} +1188 -1079
  172. package/dist/worktree-CK2MpJW5.mjs +2 -0
  173. package/dist/{worktree-CgvJYJ-Q.mjs → worktree-DQ6Zi2Mv.mjs} +304 -53
  174. package/dist/xcode-Zlx3qjEs.mjs +896 -0
  175. package/package.json +7 -5
  176. package/shim/android-optimizations.gradle +7 -5
  177. package/dist/activity-BSV745Kz.mjs +0 -629
  178. package/dist/api-qvOzWyfO.mjs +0 -154
  179. package/dist/api-run.mjs +0 -294
  180. package/dist/app-install-BIKtMfPq.mjs +0 -896
  181. package/dist/artifact-lifecycle-DzPpBYvK.mjs +0 -30
  182. package/dist/budget-f7516Zk0.mjs +0 -4106
  183. package/dist/build-facts-DcLv2HSd.d.mts +0 -111
  184. package/dist/cancellation-C_22VQTH.mjs +0 -24
  185. package/dist/client-qQAaXSUs.mjs +0 -1771
  186. package/dist/config-BYDxlMY3.mjs +0 -562
  187. package/dist/device-DuiPJQSn.mjs +0 -290
  188. package/dist/device-lease-BX1sJQ2E.mjs +0 -1224
  189. package/dist/device-remote-xRT0Vmo9.mjs +0 -1272
  190. package/dist/eas-session-ledger-Cm0Gwq2F.mjs +0 -207
  191. package/dist/exec-DqKo9GKJ.mjs +0 -268
  192. package/dist/git-DDfFzkMm.mjs +0 -45
  193. package/dist/launch-verify-B6Q8hZP-.mjs +0 -428
  194. package/dist/logs-BGrEUaEs.mjs +0 -383
  195. package/dist/miss-reason-mKzZ4VvN.mjs +0 -238
  196. package/dist/native-android-D5qc3-_v.mjs +0 -226
  197. package/dist/ndjson-Du3j0AQ9.d.mts +0 -17
  198. package/dist/plan-C4TjdPsR.mjs +0 -260
  199. package/dist/prebuild-DYbucPXy.mjs +0 -212
  200. package/dist/preview-78a9kR_-.mjs +0 -1011
  201. package/dist/react-native-build-CtCccJtb.mjs +0 -239
  202. package/dist/react-native-doctor-CfRnFfjs.mjs +0 -78
  203. package/dist/remote-cache-OyOyVIS3.mjs +0 -526
  204. package/dist/result-CaJg5Iat.mjs +0 -186
  205. package/dist/server-expo-Bigriskl.mjs +0 -2
  206. package/dist/settings-BORNaaCO.mjs +0 -402
  207. package/dist/spawn-claims-DVS5RkMS.mjs +0 -72
  208. package/dist/stage-KNTQopqv.mjs +0 -157
  209. package/dist/stim-desktop-BzBN2Em2.mjs +0 -63
  210. package/dist/tailnet-Dh-qiYzG.mjs +0 -265
  211. package/dist/toolchain-BFkAcstd.mjs +0 -2
  212. package/dist/toolchain-DxSsNssu.mjs +0 -1657
  213. package/dist/trigger-9_USgmxz.mjs +0 -2
  214. package/dist/web-Dq-i3wzJ.mjs +0 -2
  215. package/dist/worktree-DpLdCHga.mjs +0 -2
  216. package/dist/{api-run.d.mts → doctor-fingerprint.d.mts} +0 -0
  217. package/dist/{errors-DzkMYh8Q.mjs → errors-ccaPc4ox.mjs} +2 -2
@@ -1,14 +1,14 @@
1
- import { C as saveConfig, D as withConfigLock, V as deviceSlotPlatforms, W as projectDeviceSlots, _ as loadConfig, a as clearDevice, d as getConfigDir, j as ownership_claim_exports, w as setDevice } from "./config-BYDxlMY3.mjs";
2
- import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
- import { T as iosSimSlimProfileSetting } from "./settings-B717odTD.mjs";
4
- import { S as workspaceId } from "./workspace-state-DJt_MMvf.mjs";
5
- import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
6
- import { dt as parkedMaxSetting, ft as readParked, mt as selectParked, ot as adoptParked, st as dropParked } from "./android-Mz_Inn3w.mjs";
7
- import { S as teardownParkedIosSim } from "./workspaces-C36s2jb9.mjs";
8
- import { a as withWorkspaceProcessLock } from "./named-ports-4WopRPg-.mjs";
9
- import { t as cancellableSleep } from "./cancellation-C_22VQTH.mjs";
10
- import { A as configuredIosSimulatorViewer, C as resetIosKeychain, E as resolveOwnedIosSim, M as hostMemoryPressureAdvice, N as memoryCulpritsUnder, P as readHostMemoryPressure, S as renameIosSim, T as resolveIosCreation, _ as ownedSimName, a as createOwnedIosSim, d as listAllIosSims, m as listIosRuntimes, n as bootIosSim, p as listIosDeviceTypes, u as iosSimulatorFailureAdvice, w as resetIosPrivacy, y as parseRuntimeVersion } from "./ios-RkW4pnQf.mjs";
11
- import { a as deviceTypeMismatch, c as runtimeMismatch, n as DeviceAdmissionRefusal, p as withDeviceBootAdmission } from "./device-capacity-CBUAcRyQ.mjs";
1
+ import { f as ownership_claim_exports, t as getExecutor } from "./exec-_UbtCQcG.mjs";
2
+ import { f as workspaceId$1 } from "./paths-DQtTgsBf.mjs";
3
+ import { C as saveConfig, D as withConfigLock, K as projectDeviceSlots, O as withConfigLockAsync, U as deviceSlotPlatforms, _ as loadConfig, a as clearDevice, d as getConfigDir, w as setDevice } from "./config-CYcBF478.mjs";
4
+ import { l as phaseLine } from "./command-output-B1UrjZHL.mjs";
5
+ import { Qt as cancellableSleep, T as iosSimSlimProfileSetting } from "./settings-CsJDEXgK.mjs";
6
+ import { A as teardownParkedIosSim } from "./workspaces-BccMFmGQ.mjs";
7
+ import { dt as dropParked, gt as readParked, ht as parkedMaxSetting, ut as adoptParked, vt as selectParked } from "./android-DUYkNF4u.mjs";
8
+ import { A as configuredIosSimulatorViewer, C as resetIosKeychain, E as resolveOwnedIosSim, M as hostMemoryPressureAdvice, N as memoryCulpritsUnder, P as readHostMemoryPressure, S as renameIosSim, T as resolveIosCreation, _ as ownedSimName, a as createOwnedIosSim, d as listAllIosSims, f as listAllIosSimsAsync, h as listIosRuntimesAsync, n as bootIosSim, p as listIosDeviceTypesAsync, u as iosSimulatorFailureAdvice, w as resetIosPrivacy, y as parseRuntimeVersion } from "./ios-CpByZy12.mjs";
9
+ import { t as withWorkspaceProcessLock } from "./workspace-process-lock-1_1OoVW5.mjs";
10
+ import { l as runtimeMismatch, m as withDeviceBootAdmission, n as DeviceAdmissionRefusal, o as deviceTypeMismatch } from "./device-capacity-CMlqEcvw.mjs";
11
+ import { ambientContext } from "@stim-cli/core";
12
12
  import chalk from "chalk";
13
13
  //#region src/engine/device-ios.ts
14
14
  function startIosBoot(udid, configure, label, out, simulatorApp, root, deviceSlotWait) {
@@ -20,7 +20,8 @@ function startIosBoot(udid, configure, label, out, simulatorApp, root, deviceSlo
20
20
  await bootIosSim(udid, {
21
21
  label,
22
22
  out,
23
- simulatorApp
23
+ simulatorApp,
24
+ env: ambientContext()?.env
24
25
  });
25
26
  await configure();
26
27
  }, {
@@ -50,10 +51,10 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
50
51
  else if (resolved.missing) {} else {
51
52
  const sim = resolved.sim;
52
53
  const wantedType = flags.deviceType || settings?.ios?.deviceType;
53
- const deviceTypes = listIosDeviceTypes();
54
+ const deviceTypes = await listIosDeviceTypesAsync();
54
55
  const mismatch = deviceTypeMismatch(sim.deviceTypeIdentifier, wantedType, deviceTypes);
55
56
  if (mismatch) throw new IosDeviceMismatchError(`${mismatch}. Stim will not silently boot a different model.`);
56
- const versionMismatch = flags.runtimeFlag ? runtimeMismatch(sim.runtime, flags.runtimeFlag, listIosRuntimes()) : null;
57
+ const versionMismatch = flags.runtimeFlag ? runtimeMismatch(sim.runtime, flags.runtimeFlag, await listIosRuntimesAsync()) : null;
57
58
  if (versionMismatch) throw new IosDeviceMismatchError(`${versionMismatch}. Stim will not silently boot a different iOS version.`);
58
59
  const model = {
59
60
  model: deviceTypes.find((d) => d.identifier === sim.deviceTypeIdentifier)?.name ?? null,
@@ -71,7 +72,7 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
71
72
  ...record.schemeApprovals ? { schemeApprovals: record.schemeApprovals } : {}
72
73
  };
73
74
  const configure = async () => {
74
- if (record.adoptionPending) resetAdoptedSim(sim.udid, out);
75
+ if (record.adoptionPending) await resetAdoptedSim(sim.udid, out);
75
76
  return configureOwnedIosSim({
76
77
  record: updated,
77
78
  projectPath,
@@ -97,7 +98,7 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
97
98
  };
98
99
  }
99
100
  } else {
100
- const sim = listAllIosSims().find((s) => s.udid === record.deviceUdid);
101
+ const sim = (await listAllIosSimsAsync()).find((s) => s.udid === record.deviceUdid);
101
102
  if (sim) {
102
103
  if (sim.state !== "Booted") {
103
104
  note(chalk.yellow(`Note: assigned sim ${sim.name} (${sim.udid}) is shut down and is not owned by Stim, so it will not be booted automatically.`));
@@ -106,14 +107,14 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
106
107
  return record;
107
108
  }
108
109
  }
109
- withConfigLock(() => {
110
+ await withConfigLockAsync(() => {
110
111
  const current = deviceSlotPlatforms(loadConfig()?.projects?.[projectPath], slot)?.ios;
111
112
  if (!current) return;
112
113
  if (current.deviceUdid !== record.deviceUdid || current.owned !== record.owned) throw new Error("The simulator assignment changed during recovery. Run `stim ios` again.");
113
114
  clearDevice(projectPath, "ios", slot);
114
115
  });
115
116
  }
116
- const choice = resolveIosCreation({
117
+ const choice = await resolveIosCreation({
117
118
  deviceType: flags.deviceType || settings.ios?.deviceType,
118
119
  runtime: flags.runtime || settings.ios?.runtime
119
120
  });
@@ -126,7 +127,7 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
126
127
  })) : null;
127
128
  if (adopted) {
128
129
  const booting = startIosBoot(adopted.deviceUdid, async () => {
129
- resetAdoptedSim(adopted.deviceUdid, out);
130
+ await resetAdoptedSim(adopted.deviceUdid, out);
130
131
  await configureOwnedIosSim({
131
132
  record: adopted,
132
133
  projectPath,
@@ -143,12 +144,12 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
143
144
  runtime: choice.runtime
144
145
  };
145
146
  }
146
- const created = await withIosDeviceNameLock(() => {
147
+ const created = await withIosDeviceNameLock(async () => {
147
148
  const suffix = ownedIosNameSuffix(label, {
148
149
  model: choice.deviceType,
149
150
  runtime: choice.runtime
150
- }, projectPath);
151
- const result = createOwnedIosSim(label, { suffix }, choice);
151
+ }, projectPath, void 0, await listAllIosSimsAsync({ includeUnavailable: true }));
152
+ const result = await createOwnedIosSim(label, { suffix }, choice);
152
153
  setDevice(projectPath, "ios", {
153
154
  deviceUdid: result.udid,
154
155
  owned: true,
@@ -180,7 +181,7 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
180
181
  function withIosDeviceNameLock(fn) {
181
182
  return withWorkspaceProcessLock(getConfigDir(), "ios-device-names", async () => fn(), { external: true });
182
183
  }
183
- function ownedIosNameSuffix(label, model, projectPath, udid, listed = listAllIosSims({ includeUnavailable: true })) {
184
+ function ownedIosNameSuffix(label, model, projectPath, udid, listed) {
184
185
  const names = new Set(listed.filter((sim) => sim.udid !== udid).map((sim) => sim.name));
185
186
  for (const project of Object.values(loadConfig()?.projects ?? {})) for (const { platforms } of projectDeviceSlots(project)) {
186
187
  const record = platforms.ios;
@@ -188,39 +189,39 @@ function ownedIosNameSuffix(label, model, projectPath, udid, listed = listAllIos
188
189
  }
189
190
  for (const parked of readParked("ios")) if (parked.udid !== udid) names.add(parked.name);
190
191
  let suffix = "";
191
- for (let attempt = 0; names.has(ownedSimName(label, model, suffix)); attempt++) suffix = ` ${workspaceId(projectPath)}${attempt ? `-${attempt}` : ""}`;
192
+ for (let attempt = 0; names.has(ownedSimName(label, model, suffix)); attempt++) suffix = ` ${workspaceId$1(projectPath)}${attempt ? `-${attempt}` : ""}`;
192
193
  return suffix;
193
194
  }
194
195
  function ownedIosName(sim, label, model, projectPath, listed) {
195
196
  return ownedSimName(label, model, ownedIosNameSuffix(label, model, projectPath, sim.udid, listed));
196
197
  }
197
- function renameToOwnedName(sim, label, model, projectPath) {
198
- const wanted = ownedIosName(sim, label, model, projectPath);
198
+ async function renameToOwnedName(sim, label, model, projectPath) {
199
+ const wanted = ownedIosName(sim, label, model, projectPath, await listAllIosSimsAsync({ includeUnavailable: true }));
199
200
  if (sim.name === wanted) return wanted;
200
201
  try {
201
- renameIosSim(sim.udid, wanted);
202
+ await renameIosSim(sim.udid, wanted);
202
203
  return wanted;
203
204
  } catch {
204
205
  return sim.name;
205
206
  }
206
207
  }
207
- function resetAdoptedSim(udid, out) {
208
+ async function resetAdoptedSim(udid, out) {
208
209
  out(chalk.dim(phaseLine("device", `resetting privacy grants and the keychain on ${udid}`)));
209
- resetIosPrivacy(udid);
210
- resetIosKeychain(udid);
210
+ await resetIosPrivacy(udid);
211
+ await resetIosKeychain(udid);
211
212
  }
212
- function takeParkedIosSim({ projectPath, slot, label, choice, out }) {
213
+ async function takeParkedIosSim({ projectPath, slot, label, choice, out }) {
213
214
  const candidates = selectParked(readParked("ios"), {
214
215
  deviceTypeIdentifier: choice.deviceTypeId,
215
216
  runtimeIdentifier: choice.runtimeId
216
217
  });
217
218
  if (candidates.length === 0) return null;
218
- const listed = new Map(listAllIosSims({ includeUnavailable: true }).map((sim) => [sim.udid, sim]));
219
+ const listed = new Map((await listAllIosSimsAsync({ includeUnavailable: true })).map((sim) => [sim.udid, sim]));
219
220
  for (const parked of candidates) {
220
221
  const sim = listed.get(parked.udid);
221
222
  if (!sim || !sim.available) {
222
- const result = sim ? teardownParkedIosSim(parked.udid, { label: parked.name }) : null;
223
- if (sim ? result?.status === "torn-down" : dropParked("ios", parked.udid)) out(chalk.dim(phaseLine("device", `deleted parked ${parked.name} (${parked.udid}): ${sim ? "unavailable" : "gone"}`)));
223
+ const result = sim ? await teardownParkedIosSim(parked.udid, { label: parked.name }) : null;
224
+ if (sim ? result?.status === "torn-down" : await dropParked("ios", parked.udid)) out(chalk.dim(phaseLine("device", `deleted parked ${parked.name} (${parked.udid}): ${sim ? "unavailable" : "gone"}`)));
224
225
  else if (result?.status === "failed") out(chalk.yellow(phaseLine("device", `could not delete unavailable parked ${parked.name} (${parked.udid}): ${result.reason}`)));
225
226
  continue;
226
227
  }
@@ -232,7 +233,7 @@ function takeParkedIosSim({ projectPath, slot, label, choice, out }) {
232
233
  model: choice.deviceType,
233
234
  runtime: choice.runtime
234
235
  };
235
- const name = ownedSimName(label, model, ownedIosNameSuffix(label, model, projectPath, parked.udid));
236
+ const name = ownedSimName(label, model, ownedIosNameSuffix(label, model, projectPath, parked.udid, [...listed.values()]));
236
237
  const device = {
237
238
  deviceUdid: parked.udid,
238
239
  owned: true,
@@ -251,7 +252,7 @@ function takeParkedIosSim({ projectPath, slot, label, choice, out }) {
251
252
  });
252
253
  if (!adopted) continue;
253
254
  try {
254
- renameIosSim(parked.udid, name);
255
+ await renameIosSim(parked.udid, name);
255
256
  } catch {}
256
257
  return adopted.schemeApprovals && adopted.schemeApprovals.length > 0 ? {
257
258
  ...device,
@@ -284,6 +285,7 @@ async function configureOwnedIosSim({ record, projectPath, slot, profile, out, r
284
285
  record = pending;
285
286
  }
286
287
  const result = await reconcileIosSimulator({
288
+ context: ambientContext(),
287
289
  udid: record.deviceUdid,
288
290
  profile,
289
291
  previouslyManaged,
@@ -301,9 +303,9 @@ async function ensureIosBooted({ device, projectPath, deviceSlotWait, simulatorA
301
303
  failed: true,
302
304
  reason: "No iOS simulator is recorded for this project."
303
305
  };
304
- const ready = () => {
306
+ const ready = async () => {
305
307
  try {
306
- getExecutor().runFile("xcrun", [
308
+ await getExecutor().runFileAsync("xcrun", [
307
309
  "simctl",
308
310
  "spawn",
309
311
  udid,
@@ -330,14 +332,14 @@ async function ensureIosBooted({ device, projectPath, deviceSlotWait, simulatorA
330
332
  }
331
333
  return ready();
332
334
  }
333
- const readiness = device?.booted === udid ? ready() : null;
335
+ const readiness = device?.booted === udid ? await ready() : null;
334
336
  if (readiness?.ok) {
335
- if (simulatorApp !== void 0) configuredIosSimulatorViewer(simulatorApp).open(udid);
337
+ if (simulatorApp !== void 0) await configuredIosSimulatorViewer(simulatorApp, ambientContext()?.env).open(udid);
336
338
  return readiness;
337
339
  }
338
340
  let resolved;
339
341
  try {
340
- resolved = resolveOwnedIosSim(udid);
342
+ resolved = resolveOwnedIosSim(udid, await listAllIosSimsAsync());
341
343
  } catch (e) {
342
344
  return {
343
345
  failed: true,
@@ -354,8 +356,8 @@ async function ensureIosBooted({ device, projectPath, deviceSlotWait, simulatorA
354
356
  };
355
357
  const sim = resolved.sim;
356
358
  if (sim.state === "Booted") {
357
- const result = readiness ?? ready();
358
- if (result.ok && simulatorApp !== void 0) configuredIosSimulatorViewer(simulatorApp).open(udid);
359
+ const result = readiness ?? await ready();
360
+ if (result.ok && simulatorApp !== void 0) await configuredIosSimulatorViewer(simulatorApp, ambientContext()?.env).open(udid);
359
361
  return result;
360
362
  }
361
363
  const bootDeadline = Date.now() + timeoutMs;
@@ -369,7 +371,8 @@ async function ensureIosBooted({ device, projectPath, deviceSlotWait, simulatorA
369
371
  timeoutMs,
370
372
  label: sim.name,
371
373
  out,
372
- simulatorApp
374
+ simulatorApp,
375
+ env: ambientContext()?.env
373
376
  });
374
377
  }, {
375
378
  ...deviceSlotWait,
@@ -384,7 +387,7 @@ async function ensureIosBooted({ device, projectPath, deviceSlotWait, simulatorA
384
387
  await cancellableSleep(pollMs);
385
388
  let state = null;
386
389
  try {
387
- state = listAllIosSims({ timeoutMs: 3e4 }).find((s) => s.udid === udid)?.state ?? null;
390
+ state = (await listAllIosSimsAsync({ timeoutMs: 3e4 })).find((s) => s.udid === udid)?.state ?? null;
388
391
  } catch {}
389
392
  if (state === "Booted") return ready();
390
393
  }
@@ -1,7 +1,8 @@
1
- import { B as deviceSlotKey } from "./config-BYDxlMY3.mjs";
2
- import { a as parseLease, c as raiseLease, l as releaseRunLease, n as fileLeaseIo, p as takeLease, r as leaseIsExpired, t as deviceLeasePath } from "./device-lease-BX1sJQ2E.mjs";
3
- import { a as formatElapsed, r as clockTime } from "./command-output-BTy8hZ0F.mjs";
4
- import { a as VERIFY_TIMEOUT_MS, m as APP_READINESS_TIMEOUT_MS } from "./launch-verify-B6Q8hZP-.mjs";
1
+ import { u as operationState } from "./exec-_UbtCQcG.mjs";
2
+ import { H as deviceSlotKey } from "./config-CYcBF478.mjs";
3
+ import { a as formatElapsed, r as clockTime } from "./command-output-B1UrjZHL.mjs";
4
+ import { Zt as VERIFY_TIMEOUT_MS, on as APP_READINESS_TIMEOUT_MS } from "./budget-Bs6SxxzO.mjs";
5
+ import { E as releaseRunLease, S as parseLease, T as raiseLease, b as leaseIsExpired, j as takeLease, v as deviceLeasePath, y as fileLeaseIo } from "./activity-BzVfHSrY.mjs";
5
6
  //#region src/engine/device-lease-run.ts
6
7
  const LEASE_STEP_FLOOR_MS = 6e4;
7
8
  const DEBUG_VERIFY_STEP_MS = VERIFY_TIMEOUT_MS + APP_READINESS_TIMEOUT_MS;
@@ -154,28 +155,15 @@ function runLease({ root, platform, slot = "default", kind, expiresAt, io = file
154
155
  };
155
156
  return handle;
156
157
  }
157
- const SIGNAL_EXIT_CODES = {
158
- SIGINT: 130,
159
- SIGTERM: 143
160
- };
161
- function releaseLeaseOnSignal(release, { on = (signal, handler) => {
162
- process.once(signal, handler);
163
- }, off = (signal, handler) => {
164
- process.off(signal, handler);
165
- }, exit = (code) => process.exit(code) } = {}) {
166
- const installed = [];
167
- for (const signal of Object.keys(SIGNAL_EXIT_CODES)) {
168
- const handler = () => {
169
- release();
170
- exit(SIGNAL_EXIT_CODES[signal]);
171
- };
172
- installed.push([signal, handler]);
173
- on(signal, handler);
174
- }
175
- return () => {
176
- for (const [signal, handler] of installed) off(signal, handler);
177
- installed.length = 0;
158
+ /** Release the run's lease as soon as `context`'s operation is aborted; returns a function that stops listening. */
159
+ function releaseLeaseOnAbort(context, release) {
160
+ const onAbort = () => {
161
+ operationState(context).handled = true;
162
+ release();
178
163
  };
164
+ if (context.signal.aborted) onAbort();
165
+ else context.signal.addEventListener("abort", onAbort, { once: true });
166
+ return () => context.signal.removeEventListener("abort", onAbort);
179
167
  }
180
168
  async function waitForDevice({ root, platform, slot = "default", id, idLabel, waitSeconds, noWait = false, appId = null, holderAppId = () => null, now = Date.now, sleep = (ms) => new Promise((r) => setTimeout(r, ms)), warn = () => {}, io = fileLeaseIo, deadline, lastLine }) {
181
169
  const path = deviceLeasePath(platform, id);
@@ -291,4 +279,4 @@ async function acquireRunLease({ root, platform, slot = "default", id, deviceNam
291
279
  }
292
280
  }
293
281
  //#endregion
294
- export { acquireRunLease as a, lostRefusal as c, runLease as d, waitFlagConflict as f, DEVICE_WAIT_POLL_MS as i, parseDeviceWait as l, DEVICE_BUSY as n, leaseExpiryText as o, waitForDevice as p, DEVICE_WAIT_LINE_MS as r, lostLine as s, DEBUG_VERIFY_STEP_MS as t, releaseLeaseOnSignal as u };
282
+ export { acquireRunLease as a, lostRefusal as c, runLease as d, waitFlagConflict as f, DEVICE_WAIT_POLL_MS as i, parseDeviceWait as l, DEVICE_BUSY as n, leaseExpiryText as o, waitForDevice as p, DEVICE_WAIT_LINE_MS as r, lostLine as s, DEBUG_VERIFY_STEP_MS as t, releaseLeaseOnAbort as u };
@@ -1,6 +1,6 @@
1
- import { B as deviceSlotKey } from "./config-BYDxlMY3.mjs";
2
- import { a as parseLease, f as selectPoolDevice, n as fileLeaseIo, r as leaseIsExpired, t as deviceLeasePath } from "./device-lease-BX1sJQ2E.mjs";
3
- import { i as DEVICE_WAIT_POLL_MS, n as DEVICE_BUSY, o as leaseExpiryText } from "./device-lease-run-Cw2M4z51.mjs";
1
+ import { H as deviceSlotKey } from "./config-CYcBF478.mjs";
2
+ import { A as selectPoolDevice, S as parseLease, b as leaseIsExpired, v as deviceLeasePath, y as fileLeaseIo } from "./activity-BzVfHSrY.mjs";
3
+ import { i as DEVICE_WAIT_POLL_MS, n as DEVICE_BUSY, o as leaseExpiryText } from "./device-lease-run-C8raGFoP.mjs";
4
4
  //#region src/engine/device-pool.ts
5
5
  function heldPoolId(root, platform, now, io = fileLeaseIo, slot = "default") {
6
6
  const record = io.readHolder(root)[deviceSlotKey(platform, slot)];
@@ -74,7 +74,7 @@ async function selectFromPool({ root, platform, slot = "default", idLabel, list,
74
74
  const until = deadline ?? now() + waitSeconds * 1e3;
75
75
  let lastLine = null;
76
76
  for (;;) {
77
- const { usable, leases, unreadable } = readPool(platform, list(), io);
77
+ const { usable, leases, unreadable } = readPool(platform, await list(), io);
78
78
  const selection = selectPoolDevice({
79
79
  candidates: usable,
80
80
  leases,
@@ -91,7 +91,7 @@ async function selectFromPool({ root, platform, slot = "default", idLabel, list,
91
91
  status: "refused",
92
92
  refusal: poolBusyRefusal([], leases, unreadable, now(), waitSeconds)
93
93
  };
94
- const { message, remedy } = noCandidates();
94
+ const { message, remedy } = await noCandidates();
95
95
  return {
96
96
  status: "refused",
97
97
  refusal: {
@@ -0,0 +1,2 @@
1
+ import { a as readDoctorReport, i as parseDoctorPlatform, n as doctorCommand, o as shadowedStimFinding, r as doctorSuccessLines, s as toolchainReport, t as applySandboxFix } from "./doctor-Dhqebm0q.mjs";
2
+ export { applySandboxFix, doctorCommand as default, doctorSuccessLines, parseDoctorPlatform, readDoctorReport, shadowedStimFinding, toolchainReport };