stim 1.20.0 → 1.20.2

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 (158) hide show
  1. package/README.md +6 -3
  2. package/dist/{activity-BrGh9EAI.mjs → activity-BSV745Kz.mjs} +4 -4
  3. package/dist/{agent-device-usage-output-DVyv_hWj.mjs → agent-device-usage-output-Dzgv6lgR.mjs} +5 -6
  4. package/dist/{android-Brx6EKvJ.mjs → android-DCKZrNvV.mjs} +37 -38
  5. package/dist/{android-0vv-OruW.mjs → android-Dlzxshgp.mjs} +5 -5
  6. package/dist/{android-CK3fpEyZ.mjs → android-HqP1_vB_.mjs} +3 -3
  7. package/dist/{android-BsYNR81W.mjs → android-Mz_Inn3w.mjs} +12 -12
  8. package/dist/{android-cas-DCAuXryb.mjs → android-cas-Bl-cLJBk.mjs} +4 -4
  9. package/dist/android-cas-compiler.mjs +1 -1
  10. package/dist/{api-zuX3ynYN.mjs → api-qvOzWyfO.mjs} +1 -1
  11. package/dist/api-run.mjs +19 -21
  12. package/dist/api.mjs +1 -1
  13. package/dist/{app-install-0LgaQRT7.mjs → app-install-BIKtMfPq.mjs} +71 -48
  14. package/dist/{artifact-DClXJNWx.mjs → artifact-D3czlUvT.mjs} +13 -13
  15. package/dist/{artifact-CnC0mfov.mjs → artifact-HSwkIWEQ.mjs} +12 -12
  16. package/dist/{browser-web-CzBmhmgs.mjs → browser-web-CA-F1GQo.mjs} +18 -18
  17. package/dist/{budget-BONq9vXY.mjs → budget-f7516Zk0.mjs} +23 -26
  18. package/dist/{build-BixRI6sB.mjs → build-DYDbfkk5.mjs} +28 -33
  19. package/dist/{build-plan-CP0tckNU.mjs → build-plan-B7SZsc2N.mjs} +17 -17
  20. package/dist/{cache-manifest-qA3dT2x2.mjs → cache-manifest-XH-fvDUj.mjs} +10 -5
  21. package/dist/cache-manifest.mjs +1 -1
  22. package/dist/cancellation-C_22VQTH.mjs +24 -0
  23. package/dist/{ccache-CjHQ5F8g.mjs → ccache-zdKiYQ3E.mjs} +7 -7
  24. package/dist/{chrome-Dp2lMLBe.mjs → chrome-BnzZMqsR.mjs} +1 -1
  25. package/dist/{cli-B2R8wH1F.mjs → cli-CLP3diBm.mjs} +20 -20
  26. package/dist/cli.mjs +1 -1
  27. package/dist/{client-BLy1Pw2V.mjs → client-qQAaXSUs.mjs} +21 -29
  28. package/dist/collector-run.d.mts +7 -6
  29. package/dist/collector-run.mjs +6 -7
  30. package/dist/{command-output-BjPN99ZB.mjs → command-output-BTy8hZ0F.mjs} +1 -1
  31. package/dist/{config-D0LhTY3S.mjs → config-BYDxlMY3.mjs} +43 -5
  32. package/dist/{created-devices-HU_DAb_Q.mjs → created-devices-Dzd5C2LF.mjs} +2 -2
  33. package/dist/{dependency-state-B2m8eqsS.mjs → dependency-state-DG0p31-y.mjs} +2 -2
  34. package/dist/{detached-entry-BXq4fIl-.mjs → detached-entry-B9C_zeQC.mjs} +1 -1
  35. package/dist/{dev-client-ClATaJoH.mjs → dev-client-DAWVIGBu.mjs} +2 -2
  36. package/dist/{device-DVCwAFlX.mjs → device-BECOiufl.mjs} +13 -14
  37. package/dist/{device-B7lsC0K1.mjs → device-DuiPJQSn.mjs} +8 -8
  38. package/dist/{device-capacity-Ca_ke1LE.mjs → device-capacity-CBUAcRyQ.mjs} +10 -11
  39. package/dist/device-host-worker.mjs +16 -17
  40. package/dist/{device-ios-CRUqPxKw.mjs → device-ios-COSi6oS1.mjs} +12 -15
  41. package/dist/{device-lease-DHOBXGgS.mjs → device-lease-BX1sJQ2E.mjs} +15 -18
  42. package/dist/{device-lease-run-CvDeHTkG.mjs → device-lease-run-Cw2M4z51.mjs} +4 -4
  43. package/dist/{device-pool-L2-5GxMy.mjs → device-pool-Bf-pOhSw.mjs} +3 -3
  44. package/dist/{device-remote-Bmg42063.mjs → device-remote-xRT0Vmo9.mjs} +14 -14
  45. package/dist/{doctor-C2MSuMMg.mjs → doctor-CB8oZKCk.mjs} +13 -13
  46. package/dist/{doctor-DPAqhVCK.mjs → doctor-kfMBnUw6.mjs} +78 -69
  47. package/dist/{doctor-watchman-CB4NnVZm.mjs → doctor-watchman-BRyV2adA.mjs} +9 -10
  48. package/dist/{eas-build-Dw_ec2Km.mjs → eas-build-JyfqyHfC.mjs} +5 -5
  49. package/dist/{eas-session-ledger-DZlC-Fq3.mjs → eas-session-ledger-Cm0Gwq2F.mjs} +6 -4
  50. package/dist/{error-diagnostics-Du7I_GuY.mjs → error-diagnostics-BR677IDM.mjs} +10 -10
  51. package/dist/{exec-B81Qodjn.mjs → exec-DqKo9GKJ.mjs} +22 -8
  52. package/dist/{gc-PWp34zGb.mjs → gc-qWOMdnER.mjs} +75 -24
  53. package/dist/git-DDfFzkMm.mjs +45 -0
  54. package/dist/{gradle-C2OEKCCI.mjs → gradle-DSrXb6lG.mjs} +6 -6
  55. package/dist/{guide-Dai9lphv.mjs → guide-G9cAbVAc.mjs} +81 -178
  56. package/dist/{hosted-android-DQ-Agsd8.mjs → hosted-android-C3MHGld1.mjs} +3 -3
  57. package/dist/{hosted-client-Io01s5By.mjs → hosted-client-ZEKpS9vw.mjs} +19 -11
  58. package/dist/{hosted-ios-DIxFnYp-.mjs → hosted-ios-l-o3iM9J.mjs} +1 -1
  59. package/dist/{hosted-logs-DP-ABU_M.mjs → hosted-logs-EzQM7-3Z.mjs} +7 -7
  60. package/dist/{hosted-macos-Aziw9T_9.mjs → hosted-macos-BACVAVqE.mjs} +10 -8
  61. package/dist/{hosted-native-BdAQi21M.mjs → hosted-native-A4s1QPXe.mjs} +13 -11
  62. package/dist/{idle-shutdown-DdMqoSUB.mjs → idle-shutdown-DtxhPTKe.mjs} +7 -7
  63. package/dist/{ios-BZ9dg2Fr.mjs → ios-BwVCF7oA.mjs} +8 -8
  64. package/dist/{ios-CZuv6gRv.mjs → ios-Ce7bc7br.mjs} +29 -29
  65. package/dist/{ios-CXLIUxXJ.mjs → ios-RkW4pnQf.mjs} +21 -17
  66. package/dist/{ios-device-B1B14xND.mjs → ios-device-B5veSDDQ.mjs} +1 -1
  67. package/dist/{ios-device-BreZOpM0.mjs → ios-device-D7pi2Sca.mjs} +14 -14
  68. package/dist/{ios-VGvNdsv2.mjs → ios-nOLJGVdy.mjs} +1 -1
  69. package/dist/{ios-project-B9drt_aY.mjs → ios-project-K9hY_Jab.mjs} +8 -8
  70. package/dist/{ios-state-CjrL2qv-.mjs → ios-state-CBLe1xYw.mjs} +1 -1
  71. package/dist/{js-swap-C8icNYIY.mjs → js-swap-Bb3nsS07.mjs} +13 -13
  72. package/dist/{launch-YrbqaIFj.mjs → launch-C3qJ6Agb.mjs} +46 -45
  73. package/dist/{launch-DxH0THLP.mjs → launch-F4sOqAhB.mjs} +21 -21
  74. package/dist/{launch-verify-BzRdbuO1.mjs → launch-verify-B6Q8hZP-.mjs} +11 -11
  75. package/dist/{logs-DHaRNfg7.mjs → logs-BGrEUaEs.mjs} +10 -11
  76. package/dist/{macos-V_3Ui7g4.mjs → macos-Ch5VJmcS.mjs} +40 -24
  77. package/dist/macos-D7uDvO-z.mjs +2 -0
  78. package/dist/macos-run.mjs +1 -1
  79. package/dist/maintenance-run.mjs +7 -7
  80. package/dist/{metro-D_j9sN-B.mjs → metro-DnCEjCxs.mjs} +8 -9
  81. package/dist/{metro-gateway-BBJldOdi.mjs → metro-gateway-CX9Xlkq2.mjs} +3 -3
  82. package/dist/{miss-reason-BPAzZS0r.mjs → miss-reason-mKzZ4VvN.mjs} +3 -3
  83. package/dist/{named-ports-C2lvoPsb.mjs → named-ports-4WopRPg-.mjs} +4 -5
  84. package/dist/{native-android-lHzaew7r.mjs → native-android-D5qc3-_v.mjs} +10 -10
  85. package/dist/{native-gradle-inputs-BQnIdAlL.mjs → native-gradle-inputs-BsLRrl7u.mjs} +3 -10
  86. package/dist/{native-runtime-BRmWL7ru.mjs → native-runtime-k8dTIrbK.mjs} +7 -8
  87. package/dist/{native-xcode-inputs-eutS19jU.mjs → native-xcode-inputs-CykopJdM.mjs} +7 -9
  88. package/dist/{native-xcode-ios-DP3cHLwu.mjs → native-xcode-ios-Bbf30Gm0.mjs} +15 -15
  89. package/dist/offload-worker.mjs +34 -38
  90. package/dist/{ownership-DXzMMSx6.mjs → ownership-DCtw_2IA.mjs} +3 -3
  91. package/dist/{page-Bv9s2KwY.mjs → page-DRHy329N.mjs} +1 -1
  92. package/dist/{placement-log-reFbjqEr.mjs → placement-log-MOfPVgaM.mjs} +1 -1
  93. package/dist/{plan-BDk2AeY_.mjs → plan-C4TjdPsR.mjs} +10 -10
  94. package/dist/{plan-placement-D_YYlE6N.mjs → plan-placement-V0TdzYXp.mjs} +3 -3
  95. package/dist/{ports-jzvAJXXL.mjs → ports-DdSUicVo.mjs} +3 -3
  96. package/dist/{prebuild-Bw44QxVh.mjs → prebuild-DYbucPXy.mjs} +7 -8
  97. package/dist/{preview-BaBJ72Al.mjs → preview-78a9kR_-.mjs} +31 -24
  98. package/dist/{project-B8_duAzW.mjs → project-_phNIJfs.mjs} +110 -47
  99. package/dist/{pull-request-vOhLNmIb.mjs → pull-request-CQ8sPbZa.mjs} +5 -18
  100. package/dist/pull-requests.mjs +1 -1
  101. package/dist/{react-native-android-chm1DMlA.mjs → react-native-android-CM1XRDwv.mjs} +34 -30
  102. package/dist/{react-native-build-oAw6gQeW.mjs → react-native-build-CtCccJtb.mjs} +6 -6
  103. package/dist/{react-native-doctor-DYXoh-6I.mjs → react-native-doctor-CfRnFfjs.mjs} +5 -5
  104. package/dist/{react-native-ios-SCTK_CT5.mjs → react-native-ios-Dhq_eiYQ.mjs} +14 -14
  105. package/dist/{recordings-Bk-VivUV.mjs → recordings-D0d5aQt0.mjs} +1 -1
  106. package/dist/{reload-D34GkY78.mjs → reload-C8JhxjSh.mjs} +17 -17
  107. package/dist/{remote-BU9UyhCJ.mjs → remote-BiR6aYjy.mjs} +7 -7
  108. package/dist/{remote-cache-Bsts6f6Y.mjs → remote-cache-OyOyVIS3.mjs} +4 -4
  109. package/dist/{result-BDoRk1k3.mjs → result-CaJg5Iat.mjs} +8 -8
  110. package/dist/{run-qvff78hv.mjs → run-BtPgpKks.mjs} +3 -3
  111. package/dist/{server-bare-dWjAarki.mjs → server-bare-R2m_gsH8.mjs} +3 -3
  112. package/dist/{server-command-7XIKlWtO.mjs → server-command-CTtCkmcQ.mjs} +5 -5
  113. package/dist/server-expo-Bigriskl.mjs +2 -0
  114. package/dist/{server-expo-CsYu2aKL.mjs → server-expo-DsguMGUF.mjs} +5 -10
  115. package/dist/{settings-Bbztm4oV.mjs → settings-B717odTD.mjs} +74 -115
  116. package/dist/{settings-CT3E71-i.mjs → settings-BORNaaCO.mjs} +5 -5
  117. package/dist/settings.schema.json +1 -1
  118. package/dist/{simslim-ChMfe8rg.mjs → simslim-CCr3rE-A.mjs} +2 -3
  119. package/dist/{slot-launch-B9hn96wd.mjs → slot-launch-DPt0m9Nd.mjs} +6 -6
  120. package/dist/{spawn-claims-Kqiifsk2.mjs → spawn-claims-DVS5RkMS.mjs} +1 -1
  121. package/dist/{stage-BNKKdDNc.mjs → stage-KNTQopqv.mjs} +9 -9
  122. package/dist/{start-CdvcTaXr.mjs → start-BWqzODpb.mjs} +19 -20
  123. package/dist/{start-CbQCSnXQ.mjs → start-TXeMmmO2.mjs} +1 -1
  124. package/dist/{state-Boo0IMJq.mjs → state-CG_OFoaA.mjs} +2 -2
  125. package/dist/{state-DI84A-uu.mjs → state-D1Icyjlu.mjs} +8 -7
  126. package/dist/{stats-BIIDrjA8.mjs → stats-BoY5sEPU.mjs} +5 -5
  127. package/dist/{status-BDGHwkCs.mjs → status-BTA7kKiQ.mjs} +1 -1
  128. package/dist/{status-DARMkc9q.mjs → status-WgFbkRzj.mjs} +30 -47
  129. package/dist/{status-watch-DvmI3SmN.mjs → status-watch-C23ILtf9.mjs} +4 -4
  130. package/dist/{stim-desktop-8GQX2OV8.mjs → stim-desktop-BzBN2Em2.mjs} +1 -1
  131. package/dist/{stop-iNemHsJC.mjs → stop-BNmBMi1F.mjs} +18 -19
  132. package/dist/{stop-WQPQHLuy.mjs → stop-DPEhunlw.mjs} +6 -6
  133. package/dist/{stop-CCZS-C9m.mjs → stop-DR6VoDIk.mjs} +2 -2
  134. package/dist/supervisor-run.mjs +16 -17
  135. package/dist/{support-DCco5fut.mjs → support-CwjbFs9H.mjs} +9 -9
  136. package/dist/{support-CnE_SIjt.mjs → support-DMTqj3Hm.mjs} +6 -6
  137. package/dist/{swiftpm-macos-afeNUExW.mjs → swiftpm-macos-DRNVJWlb.mjs} +9 -9
  138. package/dist/{tailnet-CoJUb2tB.mjs → tailnet-Dh-qiYzG.mjs} +5 -5
  139. package/dist/toolchain-BFkAcstd.mjs +2 -0
  140. package/dist/{toolchain-DqyDXs30.mjs → toolchain-DxSsNssu.mjs} +10 -10
  141. package/dist/trigger-9_USgmxz.mjs +2 -0
  142. package/dist/{trigger-C0MWBi8O.mjs → trigger-CigAYjeL.mjs} +2 -2
  143. package/dist/{warm-progress-C3ASD6z5.mjs → warm-progress-BuY-Fvfn.mjs} +43 -61
  144. package/dist/{watchman-CQl51YZu.mjs → watchman-CPQFZLXY.mjs} +6 -6
  145. package/dist/{web-B3eldHFH.mjs → web-BDBMxDpx.mjs} +9 -9
  146. package/dist/web-Dq-i3wzJ.mjs +2 -0
  147. package/dist/web-run.mjs +14 -14
  148. package/dist/{workspace-state-CSIFuuDa.mjs → workspace-state-DJt_MMvf.mjs} +16 -6
  149. package/dist/{workspaces-D2xSHBDY.mjs → workspaces-C36s2jb9.mjs} +15 -16
  150. package/dist/{worktree-BxDqaTev.mjs → worktree-CgvJYJ-Q.mjs} +96 -89
  151. package/dist/{worktree-q7_OZNY0.mjs → worktree-DpLdCHga.mjs} +1 -1
  152. package/package.json +6 -7
  153. package/dist/macos-C0iljhsN.mjs +0 -2
  154. package/dist/process-identity-Biv3arCO.mjs +0 -40
  155. package/dist/server-expo-DV43vep4.mjs +0 -2
  156. package/dist/toolchain-BIupIro1.mjs +0 -2
  157. package/dist/trigger-SHLOWJ4O.mjs +0 -2
  158. package/dist/web-BLXpOe6b.mjs +0 -2
@@ -1,17 +1,17 @@
1
- import { n as ownership_claim_exports } from "./process-identity-Biv3arCO.mjs";
2
- import { A as providerDownloadPath, k as prepareProviderDownloadDir, v as waitForSharedBuild } from "./device-lease-DHOBXGgS.mjs";
3
- import { x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
4
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BjPN99ZB.mjs";
5
- import { x as runCancellationSignal } from "./tailnet-CoJUb2tB.mjs";
6
- import { a as easAuthNote, s as isEasAuthFailureText, t as RESOLVE_TIMEOUT_MS } from "./remote-cache-Bsts6f6Y.mjs";
7
- import { _ as requireLocalBuild, c as offloadPlacement, h as namedBuildMachine, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, p as OffloadRefusal, r as chooseBuildMachine, u as remotePhaseText } from "./client-BLy1Pw2V.mjs";
8
- import { i as skippedMissReason } from "./miss-reason-BPAzZS0r.mjs";
9
- import { t as buildPlacementRecord } from "./placement-log-reFbjqEr.mjs";
1
+ import { j as ownership_claim_exports } from "./config-BYDxlMY3.mjs";
2
+ import { A as providerDownloadPath, k as prepareProviderDownloadDir, v as waitForSharedBuild } from "./device-lease-BX1sJQ2E.mjs";
3
+ import { x as workspaceDir } from "./workspace-state-DJt_MMvf.mjs";
4
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BTy8hZ0F.mjs";
5
+ import { x as runCancellationSignal } from "./tailnet-Dh-qiYzG.mjs";
6
+ import { a as easAuthNote, s as isEasAuthFailureText, t as RESOLVE_TIMEOUT_MS } from "./remote-cache-OyOyVIS3.mjs";
7
+ import { _ as requireLocalBuild, c as offloadPlacement, h as namedBuildMachine, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, p as OffloadRefusal, r as chooseBuildMachine, u as remotePhaseText } from "./client-qQAaXSUs.mjs";
8
+ import { i as skippedMissReason } from "./miss-reason-mKzZ4VvN.mjs";
9
+ import { t as buildPlacementRecord } from "./placement-log-MOfPVgaM.mjs";
10
10
  import { t as runArtifactLifecycle } from "./artifact-lifecycle-DzPpBYvK.mjs";
11
- import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine, t as CCACHE_NOT_RUN } from "./ccache-CjHQ5F8g.mjs";
12
- import { c as formatDiagnostic } from "./gradle-C2OEKCCI.mjs";
13
- import { a as PLATFORM, h as displayPath } from "./support-CnE_SIjt.mjs";
14
- import { i as AndroidRecipeRefusal } from "./plan-BDk2AeY_.mjs";
11
+ import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine, t as CCACHE_NOT_RUN } from "./ccache-zdKiYQ3E.mjs";
12
+ import { c as formatDiagnostic } from "./gradle-DSrXb6lG.mjs";
13
+ import { a as PLATFORM, h as displayPath } from "./support-DMTqj3Hm.mjs";
14
+ import { i as AndroidRecipeRefusal } from "./plan-C4TjdPsR.mjs";
15
15
  import { rmSync } from "node:fs";
16
16
  import { join } from "node:path";
17
17
  import { machineCapacity } from "@stim-cli/core/state";
@@ -1,16 +1,16 @@
1
- import { n as ownership_claim_exports } from "./process-identity-Biv3arCO.mjs";
2
- import { A as providerDownloadPath, j as providerUploadOutcome, k as prepareProviderDownloadDir, v as waitForSharedBuild } from "./device-lease-DHOBXGgS.mjs";
3
- import { x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
4
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BjPN99ZB.mjs";
5
- import { x as runCancellationSignal } from "./tailnet-CoJUb2tB.mjs";
6
- import { a as easAuthNote, s as isEasAuthFailureText, t as RESOLVE_TIMEOUT_MS } from "./remote-cache-Bsts6f6Y.mjs";
7
- import { _ as requireLocalBuild, c as offloadPlacement, h as namedBuildMachine, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, p as OffloadRefusal, r as chooseBuildMachine, u as remotePhaseText } from "./client-BLy1Pw2V.mjs";
8
- import { i as skippedMissReason } from "./miss-reason-BPAzZS0r.mjs";
9
- import { t as buildPlacementRecord } from "./placement-log-reFbjqEr.mjs";
1
+ import { j as ownership_claim_exports } from "./config-BYDxlMY3.mjs";
2
+ import { A as providerDownloadPath, j as providerUploadOutcome, k as prepareProviderDownloadDir, v as waitForSharedBuild } from "./device-lease-BX1sJQ2E.mjs";
3
+ import { x as workspaceDir } from "./workspace-state-DJt_MMvf.mjs";
4
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BTy8hZ0F.mjs";
5
+ import { x as runCancellationSignal } from "./tailnet-Dh-qiYzG.mjs";
6
+ import { a as easAuthNote, s as isEasAuthFailureText, t as RESOLVE_TIMEOUT_MS } from "./remote-cache-OyOyVIS3.mjs";
7
+ import { _ as requireLocalBuild, c as offloadPlacement, h as namedBuildMachine, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, p as OffloadRefusal, r as chooseBuildMachine, u as remotePhaseText } from "./client-qQAaXSUs.mjs";
8
+ import { i as skippedMissReason } from "./miss-reason-mKzZ4VvN.mjs";
9
+ import { t as buildPlacementRecord } from "./placement-log-MOfPVgaM.mjs";
10
10
  import { t as runArtifactLifecycle } from "./artifact-lifecycle-DzPpBYvK.mjs";
11
- import { S as compilationCacheActivityLine, _ as COMPILATION_CACHE_NOT_RUN } from "./toolchain-DqyDXs30.mjs";
12
- import { S as xcodeFailureReport, p as printDiagnostics } from "./support-DCco5fut.mjs";
13
- import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-B9drt_aY.mjs";
11
+ import { S as compilationCacheActivityLine, _ as COMPILATION_CACHE_NOT_RUN } from "./toolchain-DxSsNssu.mjs";
12
+ import { S as xcodeFailureReport, p as printDiagnostics } from "./support-CwjbFs9H.mjs";
13
+ import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-K9hY_Jab.mjs";
14
14
  import { rmSync } from "node:fs";
15
15
  import { join } from "node:path";
16
16
  import { machineCapacity } from "@stim-cli/core/state";
@@ -1,21 +1,21 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
1
+ import { p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
3
  import { t as spawnEntry } from "./spawn-entry-Dcb7sDUz.mjs";
3
- import { p as getProject } from "./config-D0LhTY3S.mjs";
4
- import { a as SETTING_SHAPE_REMEDY, j as metroPortSetting, rt as webSettings } from "./settings-Bbztm4oV.mjs";
5
- import { r as readWorkspaceState, w as workspaceLogsDir, x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
6
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
7
- import { _ as detectIsExpo, y as isPackageResolvable } from "./project-B8_duAzW.mjs";
8
- import { u as resolveProjectMetro } from "./metro-D_j9sN-B.mjs";
9
- import { P as resolveSupervisorTarget, _ as teardownBrowserHeld } from "./workspaces-D2xSHBDY.mjs";
10
- import { a as withWorkspaceProcessLock, i as reserveBrowserPort, n as getNamedPort } from "./named-ports-C2lvoPsb.mjs";
4
+ import { a as SETTING_SHAPE_REMEDY, j as metroPortSetting, rt as webSettings } from "./settings-B717odTD.mjs";
5
+ import { r as readWorkspaceState, w as workspaceLogsDir, x as workspaceDir } from "./workspace-state-DJt_MMvf.mjs";
6
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
7
+ import { _ as detectIsExpo, y as isPackageResolvable } from "./project-_phNIJfs.mjs";
8
+ import { u as resolveProjectMetro } from "./metro-DnCEjCxs.mjs";
9
+ import { P as resolveSupervisorTarget, _ as teardownBrowserHeld } from "./workspaces-C36s2jb9.mjs";
10
+ import { a as withWorkspaceProcessLock, i as reserveBrowserPort, n as getNamedPort } from "./named-ports-4WopRPg-.mjs";
11
+ import { t as cancellableSleep } from "./cancellation-C_22VQTH.mjs";
11
12
  import { s as readNdjsonGenerations } from "./ndjson-GOnbyvso.mjs";
12
- import { o as resolveWorkspaceMetroPort } from "./start-CdvcTaXr.mjs";
13
- import { n as windowsLauncherArgs } from "./detached-entry-BXq4fIl-.mjs";
14
- import { d as webLogFile, o as readWebRecord, p as webSupervisorLogFile, s as updateWebRecord } from "./state-DI84A-uu.mjs";
15
- import { c as readMetroRecords } from "./launch-verify-BzRdbuO1.mjs";
16
- import { a as sleep } from "./native-runtime-BRmWL7ru.mjs";
17
- import { n as sendToOwnedPage, t as liveWebRecord } from "./page-Bv9s2KwY.mjs";
18
- import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-Dp2lMLBe.mjs";
13
+ import { o as resolveWorkspaceMetroPort } from "./start-BWqzODpb.mjs";
14
+ import { n as windowsLauncherArgs } from "./detached-entry-B9C_zeQC.mjs";
15
+ import { d as webLogFile, o as readWebRecord, p as webSupervisorLogFile, s as updateWebRecord } from "./state-D1Icyjlu.mjs";
16
+ import { c as readMetroRecords } from "./launch-verify-B6Q8hZP-.mjs";
17
+ import { n as sendToOwnedPage, t as liveWebRecord } from "./page-DRHy329N.mjs";
18
+ import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-BnzZMqsR.mjs";
19
19
  import { mkdirSync, openSync } from "node:fs";
20
20
  import { randomUUID } from "node:crypto";
21
21
  import chalk from "chalk";
@@ -213,7 +213,7 @@ async function waitForSupervisor(root, child, launchId) {
213
213
  const record = readWebRecord(root);
214
214
  if (record?.launchId === launchId && record.targetId) return record;
215
215
  if (exited) return null;
216
- await sleep(POLL_MS$1);
216
+ await cancellableSleep(POLL_MS$1);
217
217
  }
218
218
  return null;
219
219
  }
@@ -347,7 +347,7 @@ function browserWebProject(root) {
347
347
  elapsedMs: Date.now() - startedAt
348
348
  });
349
349
  if (measured) break;
350
- await sleep(POLL_MS);
350
+ await cancellableSleep(POLL_MS);
351
351
  }
352
352
  const verdict = foreign ? {
353
353
  launched: "unverified",
@@ -1,27 +1,26 @@
1
- import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
3
- import { A as directorySize, D as withConfigLock$1, F as volumeRootFor, H as projectDeviceSlots, M as isOnMountedVolume, P as measuredDirectorySize, _ as loadConfig$1, a as clearDevice, d as getConfigDir, j as formatBytes, o as clearSupervisor, p as getProject, z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
4
- import { i as registeredCaches } from "./cache-manifest-qA3dT2x2.mjs";
5
- import { h as listBuildLocks, i as listLeaseFiles, r as leaseIsExpired } from "./device-lease-DHOBXGgS.mjs";
6
- import { a as updateWorkspaceState, c as writeWorkspaceState, m as sharedBuildCache, r as readWorkspaceState$1, t as clearWorkspaceStateKey, w as workspaceLogsDir$1, x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
7
- import { a as formatElapsed, l as phaseLine, o as formatLongDuration, u as plural } from "./command-output-BjPN99ZB.mjs";
8
- import { A as clearWorkspaceSupervisor, M as readPidFile } from "./project-B8_duAzW.mjs";
9
- import { A as listAvds, I as ownedAvdDirectory, ft as readParked, it as isStimOwnedSim, rt as isStimOwnedAvd, st as dropParked, z as ownedAvdSerialResolver } from "./android-BsYNR81W.mjs";
10
- import { r as killMetroTree, u as resolveProjectMetro } from "./metro-D_j9sN-B.mjs";
11
- import { C as recordGcResult, I as listBuildSlots, P as resolveSupervisorTarget, S as teardownParkedIosSim, T as canonicalPath, a as collectWorkspaceOutputs, b as teardownOwnedIosSim, f as withIdleWorkspace, g as eraseParkedIosSim, h as eraseParkedAvd, r as clearWorkspaceOutputs, v as teardownOwnedAvd, x as teardownParkedAvd } from "./workspaces-D2xSHBDY.mjs";
12
- import { a as withWorkspaceProcessLock, o as workspaceProcessLockError } from "./named-ports-C2lvoPsb.mjs";
1
+ import { D as withConfigLock$1, I as measuredDirectorySize, L as volumeRootFor, M as directorySize, N as formatBytes, P as isOnMountedVolume, V as deviceSlotPlatforms, W as projectDeviceSlots, _ as loadConfig$1, a as clearDevice, d as getConfigDir, j as ownership_claim_exports, k as process_identity_exports, o as clearSupervisor, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
+ import { i as registeredCaches } from "./cache-manifest-XH-fvDUj.mjs";
4
+ import { h as listBuildLocks, i as listLeaseFiles, r as leaseIsExpired } from "./device-lease-BX1sJQ2E.mjs";
5
+ import { a as updateWorkspaceState, c as writeWorkspaceState, m as sharedBuildCache, r as readWorkspaceState$1, t as clearWorkspaceStateKey, w as workspaceLogsDir$1, x as workspaceDir } from "./workspace-state-DJt_MMvf.mjs";
6
+ import { a as formatElapsed, l as phaseLine, o as formatLongDuration, u as plural } from "./command-output-BTy8hZ0F.mjs";
7
+ import { A as clearWorkspaceSupervisor, M as readPidFile } from "./project-_phNIJfs.mjs";
8
+ import { A as listAvds, I as ownedAvdDirectory, ft as readParked, it as isStimOwnedSim, rt as isStimOwnedAvd, st as dropParked, z as ownedAvdSerialResolver } from "./android-Mz_Inn3w.mjs";
9
+ import { r as killMetroTree, u as resolveProjectMetro } from "./metro-DnCEjCxs.mjs";
10
+ import { C as recordGcResult, I as listBuildSlots, P as resolveSupervisorTarget, S as teardownParkedIosSim, T as canonicalPath, a as collectWorkspaceOutputs, b as teardownOwnedIosSim, f as withIdleWorkspace, g as eraseParkedIosSim, h as eraseParkedAvd, r as clearWorkspaceOutputs, v as teardownOwnedAvd, x as teardownParkedAvd } from "./workspaces-C36s2jb9.mjs";
11
+ import { a as withWorkspaceProcessLock, o as workspaceProcessLockError } from "./named-ports-4WopRPg-.mjs";
13
12
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
14
13
  import { n as supervisorError } from "./errors-DzkMYh8Q.mjs";
15
- import { a as parseWatchmanPid, d as capacity, g as formatSpace, h as environmentState, i as parseWatchmanClients, n as parseTriggerCount, r as parseWatchRoots, t as parseSubscriberNames } from "./watchman-CQl51YZu.mjs";
16
- import { i as createDeviceProcessTables, o as idleForMs, p as workspaceActivity, r as createActivityReader } from "./activity-BrGh9EAI.mjs";
17
- import { d as listAllIosSims, p as listIosDeviceTypes, y as parseRuntimeVersion } from "./ios-CXLIUxXJ.mjs";
14
+ import { a as parseWatchmanPid, d as capacity, g as formatSpace, h as environmentState, i as parseWatchmanClients, n as parseTriggerCount, r as parseWatchRoots, t as parseSubscriberNames } from "./watchman-CPQFZLXY.mjs";
15
+ import { i as createDeviceProcessTables, o as idleForMs, p as workspaceActivity, r as createActivityReader } from "./activity-BSV745Kz.mjs";
16
+ import { d as listAllIosSims, p as listIosDeviceTypes, y as parseRuntimeVersion } from "./ios-RkW4pnQf.mjs";
18
17
  import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync, statfsSync, writeFileSync } from "node:fs";
19
18
  import { basename, dirname, isAbsolute, join, resolve, sep } from "node:path";
20
19
  import { basename as basename$1, dirname as dirname$1, isAbsolute as isAbsolute$1, join as join$1, relative as relative$1, resolve as resolve$1 } from "path";
21
20
  import { BUILD_HISTORY_KEY, BUILD_HISTORY_LIMIT, BUILD_PHASES, DEV_SERVER_STOP_REQUEST_KEY, LAST_BUILD_KEYS, MACHINE_OWNER_KINDS, STATS_VERSION, buildWorkerRoot, decodeStats, isJsonObject, loadConfig, parseMissReason, readDevServerStop, readDevServerStopRequest, readRunEstimates, readStats as readStats$1, settingDefinition, settingValueError, statsFile, statsProjectKey as statsProjectKey$1, trimCapacityRefusals, trimCapacityWaits, trimSamples, wholePhases, workspaceBuildDetailFile } from "@stim-cli/core/state";
22
21
  import { fileURLToPath } from "node:url";
23
22
  import { existsSync as existsSync$1, readdirSync as readdirSync$1, realpathSync as realpathSync$1, rmSync as rmSync$1, statSync as statSync$1 } from "fs";
24
- import { LOG_ROTATE_BYTES, METRO_NAMED_CACHE_LAYOUT, compiledHelper, configDir } from "@stim-cli/core";
23
+ import { LOG_ROTATE_BYTES, METRO_NAMED_CACHE_LAYOUT, cacheDirRefusal, compiledHelper, configDir } from "@stim-cli/core";
25
24
  import { homedir, tmpdir } from "os";
26
25
  import { homedir as homedir$1, platform, totalmem as totalmem$1 } from "node:os";
27
26
  import chalk from "chalk";
@@ -1430,7 +1429,7 @@ function canonicalCacheDir(dir) {
1430
1429
  }
1431
1430
  }
1432
1431
  function sizeCaches(caches) {
1433
- return caches.map((c) => Object.assign({}, c, { bytes: c.bytes ?? directorySize(c.dir) }));
1432
+ return caches.map((c) => Object.assign({}, c, { bytes: c.bytes ?? directorySize(c.dir, { timeoutMs: "unbounded" }) }));
1434
1433
  }
1435
1434
  function pruneCache(cache, { olderThanDays, now = Date.now(), protect, evictBytes, byMtime = false } = {}) {
1436
1435
  const cutoff = now - olderThanDays * 24 * 60 * 60 * 1e3;
@@ -1444,6 +1443,11 @@ function pruneCache(cache, { olderThanDays, now = Date.now(), protect, evictByte
1444
1443
  bytes: 0,
1445
1444
  skipped: "index-backed; empty it whole or not at all"
1446
1445
  };
1446
+ if (!cache.files && cacheDirRefusal(cache.dir)) return {
1447
+ removed: 0,
1448
+ bytes: 0,
1449
+ skipped: `${cache.dir} is not a directory this cache owns`
1450
+ };
1447
1451
  const entries = cache.files ?? entriesAtDepth(cache.dir, cache.entriesDepth ?? 1);
1448
1452
  const candidates = [];
1449
1453
  let protectedEntries = 0;
@@ -1470,7 +1474,7 @@ function pruneCache(cache, { olderThanDays, now = Date.now(), protect, evictByte
1470
1474
  if (evictBytes !== void 0 && bytes >= evictBytes) break;
1471
1475
  try {
1472
1476
  if (!existsSync$1(entry) || statSync$1(entry).mtimeMs >= cutoff) continue;
1473
- const entryBytes = isDirectory ? directorySize(entry) : size;
1477
+ const entryBytes = isDirectory ? directorySize(entry, { timeoutMs: "unbounded" }) : size;
1474
1478
  rmSync$1(entry, {
1475
1479
  recursive: true,
1476
1480
  force: true
@@ -2763,14 +2767,7 @@ function previewScopedEmptying(caches) {
2763
2767
  return planCacheEmptying(caches, false).map((c) => Object.assign({}, c, { scopedEmpty: emptyVerdict(c) }));
2764
2768
  }
2765
2769
  function ownsItsDirectory(cache) {
2766
- if (Array.isArray(cache.files)) return false;
2767
- const dir = canonicalPath(cache.dir);
2768
- if (dirname$1(dir) === dir) return false;
2769
- return ![
2770
- homedir(),
2771
- tmpdir(),
2772
- getConfigDir()
2773
- ].map(canonicalPath).includes(dir);
2770
+ return !Array.isArray(cache.files) && !cacheDirRefusal(cache.dir);
2774
2771
  }
2775
2772
  function emptyCache(cache) {
2776
2773
  if (cache.prune === "report-only") return {
@@ -1,26 +1,27 @@
1
- import { E as upsertProject, p as getProject, u as getConcurrencyLimits } from "./config-D0LhTY3S.mjs";
2
- import { K as resolveProjectSettings, W as resolveCacheProviderConfig, a as SETTING_SHAPE_REMEDY } from "./settings-Bbztm4oV.mjs";
3
- import { _ as waitForBuild, g as releaseBuildLock, j as providerUploadOutcome, m as acquireBuildLock } from "./device-lease-DHOBXGgS.mjs";
4
- import { i as recordWorkspaceUse, w as workspaceLogsDir, x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
5
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
6
- import { _ as detectIsExpo, d as projectRegistry } from "./project-B8_duAzW.mjs";
7
- import { D as hostSystemImageArch } from "./android-BsYNR81W.mjs";
8
- import { F as acquireBuildSlot, L as releaseBuildSlot } from "./workspaces-D2xSHBDY.mjs";
9
- import { At as createRunRecorder, Dt as recordFinishedBuild, Ft as recordRunStats, It as statsProjectKey, Ot as startBuildProgress, jt as readRunEstimates, kt as tapBuildLog } from "./budget-BONq9vXY.mjs";
10
- import { S as withNativeBuildRun, x as runCancellationSignal } from "./tailnet-CoJUb2tB.mjs";
1
+ import { E as upsertProject, p as getProject, u as getConcurrencyLimits } from "./config-BYDxlMY3.mjs";
2
+ import { K as resolveProjectSettings, W as resolveCacheProviderConfig, a as SETTING_SHAPE_REMEDY } from "./settings-B717odTD.mjs";
3
+ import { _ as waitForBuild, g as releaseBuildLock, j as providerUploadOutcome, m as acquireBuildLock } from "./device-lease-BX1sJQ2E.mjs";
4
+ import { i as recordWorkspaceUse, w as workspaceLogsDir, x as workspaceDir } from "./workspace-state-DJt_MMvf.mjs";
5
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
6
+ import { _ as detectIsExpo, d as projectRegistry } from "./project-_phNIJfs.mjs";
7
+ import { D as hostSystemImageArch } from "./android-Mz_Inn3w.mjs";
8
+ import { F as acquireBuildSlot, L as releaseBuildSlot } from "./workspaces-C36s2jb9.mjs";
9
+ import { At as createRunRecorder, Dt as recordFinishedBuild, Ft as recordRunStats, It as statsProjectKey, Ot as startBuildProgress, jt as readRunEstimates, kt as tapBuildLog } from "./budget-f7516Zk0.mjs";
10
+ import { S as withNativeBuildRun, x as runCancellationSignal } from "./tailnet-Dh-qiYzG.mjs";
11
+ import { n as cancelledError, r as throwIfCancelled } from "./cancellation-C_22VQTH.mjs";
11
12
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
12
13
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-DzkMYh8Q.mjs";
13
- import { i as checkEasAuth, m as uploadRemote, p as resolveRemote } from "./remote-cache-Bsts6f6Y.mjs";
14
- import { f as setRemoteLogSink, y as resolveBuildPlacement } from "./client-BLy1Pw2V.mjs";
15
- import { m as listIosRuntimes } from "./ios-CXLIUxXJ.mjs";
16
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-BRmWL7ru.mjs";
17
- import { A as readBundleId } from "./toolchain-DqyDXs30.mjs";
18
- import { n as resolveAndroidBuildPlan } from "./plan-BDk2AeY_.mjs";
19
- import { t as acquireAndroidArtifact } from "./artifact-DClXJNWx.mjs";
20
- import { i as persistLastBuild, n as finishAndroidUpload } from "./result-BDoRk1k3.mjs";
21
- import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-DCco5fut.mjs";
22
- import { a as lastBuildRecord } from "./ios-project-B9drt_aY.mjs";
23
- import { t as acquireIosArtifact } from "./artifact-CnC0mfov.mjs";
14
+ import { i as checkEasAuth, m as uploadRemote, p as resolveRemote } from "./remote-cache-OyOyVIS3.mjs";
15
+ import { f as setRemoteLogSink, y as resolveBuildPlacement } from "./client-qQAaXSUs.mjs";
16
+ import { m as listIosRuntimes } from "./ios-RkW4pnQf.mjs";
17
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-k8dTIrbK.mjs";
18
+ import { A as readBundleId } from "./toolchain-DxSsNssu.mjs";
19
+ import { n as resolveAndroidBuildPlan } from "./plan-C4TjdPsR.mjs";
20
+ import { t as acquireAndroidArtifact } from "./artifact-D3czlUvT.mjs";
21
+ import { i as persistLastBuild, n as finishAndroidUpload } from "./result-CaJg5Iat.mjs";
22
+ import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CwjbFs9H.mjs";
23
+ import { a as lastBuildRecord } from "./ios-project-K9hY_Jab.mjs";
24
+ import { t as acquireIosArtifact } from "./artifact-HSwkIWEQ.mjs";
24
25
  import { constants, copyFileSync, cpSync, mkdirSync, mkdtempSync, rmSync } from "node:fs";
25
26
  import { basename, join } from "node:path";
26
27
  import { loadCacheProvider } from "@stim-cli/cache";
@@ -169,7 +170,7 @@ async function buildAndroidOperation(root, options) {
169
170
  });
170
171
  if (!acquired.ok) throw Object.assign(new Error(acquired.failure.message ?? "Android build failed."), acquired.failure, { details: acquired.failure.extra });
171
172
  artifact = acquired.artifact;
172
- if (runCancellationSignal()?.aborted) throw Object.assign(/* @__PURE__ */ new Error("The Android build was cancelled."), { code: "STIM_CANCELLED" });
173
+ throwIfCancelled(runCancellationSignal(), "Android build");
173
174
  if (!artifact.apkPath) throw Object.assign(/* @__PURE__ */ new Error("The Android build produced no APK."), { code: "STIM_BUILD_FAILED" });
174
175
  const artifacts = join(workspaceDir(root), "artifacts");
175
176
  mkdirSync(artifacts, { recursive: true });
@@ -179,7 +180,7 @@ async function buildAndroidOperation(root, options) {
179
180
  await finishAndroidUpload(artifact.uploadPending, artifact.remote, phase);
180
181
  const uploaded = providerUploadOutcome(artifact.providerUpload ? await artifact.providerUpload : null, artifact.providerName);
181
182
  if (uploaded) phase("cache", uploaded.line);
182
- if (runCancellationSignal()?.aborted) throw Object.assign(/* @__PURE__ */ new Error("The Android build was cancelled."), { code: "STIM_CANCELLED" });
183
+ throwIfCancelled(runCancellationSignal(), "Android build");
183
184
  record.appPath = apkPath;
184
185
  record.bundleId = artifact.androidPackage;
185
186
  finishRecord("ok");
@@ -206,10 +207,7 @@ async function buildAndroidOperation(root, options) {
206
207
  logs: { dir: logs }
207
208
  };
208
209
  } catch (error) {
209
- const failure = runCancellationSignal()?.aborted ? Object.assign(/* @__PURE__ */ new Error("The Android build was cancelled."), {
210
- code: "STIM_CANCELLED",
211
- cause: error
212
- }) : error;
210
+ const failure = runCancellationSignal()?.aborted ? cancelledError("Android build", error) : error;
213
211
  finishRecord("failed", failure.code);
214
212
  stats.record({
215
213
  failed: true,
@@ -400,7 +398,7 @@ async function buildIosOperation(root, options) {
400
398
  if (!acquired.ok) throw Object.assign(new Error(acquired.failure.message ?? "The iOS build failed."), acquired.failure);
401
399
  artifact = acquired.artifact;
402
400
  artifact.bundleId ??= readBundleId(artifact.path) ?? integration.bundleId();
403
- if (runCancellationSignal()?.aborted) throw Object.assign(/* @__PURE__ */ new Error("The iOS build was cancelled."), { code: "STIM_CANCELLED" });
401
+ throwIfCancelled(runCancellationSignal(), "iOS build");
404
402
  const artifacts = join(workspaceDir(root), "artifacts");
405
403
  mkdirSync(artifacts, { recursive: true });
406
404
  directory = mkdtempSync(join(artifacts, "ios-"));
@@ -411,7 +409,7 @@ async function buildIosOperation(root, options) {
411
409
  mode: constants.COPYFILE_FICLONE
412
410
  });
413
411
  await artifact.completeUploads();
414
- if (runCancellationSignal()?.aborted) throw Object.assign(/* @__PURE__ */ new Error("The iOS build was cancelled."), { code: "STIM_CANCELLED" });
412
+ throwIfCancelled(runCancellationSignal(), "iOS build");
415
413
  finish("ok", appPath);
416
414
  stats.record({
417
415
  failed: false,
@@ -437,10 +435,7 @@ async function buildIosOperation(root, options) {
437
435
  logs: { dir: logs }
438
436
  };
439
437
  } catch (error) {
440
- const failure = runCancellationSignal()?.aborted ? Object.assign(/* @__PURE__ */ new Error("The iOS build was cancelled."), {
441
- code: "STIM_CANCELLED",
442
- cause: error
443
- }) : error;
438
+ const failure = runCancellationSignal()?.aborted ? cancelledError("iOS build", error) : error;
444
439
  finish("failed", void 0, failure.code);
445
440
  stats.record({
446
441
  failed: true,
@@ -1,20 +1,20 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { _ as loadConfig$1, p as getProject } from "./config-D0LhTY3S.mjs";
3
- import { Ft as removeTemporaryEntry, Pt as makeTemporaryDirectory, at as detectProviders, ot as planMetroReach } from "./settings-Bbztm4oV.mjs";
4
- import { w as entryDir, y as artifactIn } from "./device-lease-DHOBXGgS.mjs";
5
- import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-BjPN99ZB.mjs";
6
- import { N as readRemoteSession, j as readMetroTunnel } from "./project-B8_duAzW.mjs";
7
- import { Mt as readStats$1, s as peekBudget, wt as estimateBuild } from "./budget-BONq9vXY.mjs";
8
- import { a as easAuthNote, f as resolveEasCliBin, s as isEasAuthFailureText } from "./remote-cache-Bsts6f6Y.mjs";
9
- import { S as hostingMachines, h as namedBuildMachine, v as resolveBuildMachine } from "./client-BLy1Pw2V.mjs";
10
- import { P as readHostMemoryPressure } from "./ios-CXLIUxXJ.mjs";
11
- import { r as predictBuildMiss } from "./miss-reason-BPAzZS0r.mjs";
12
- import { s as peekDeviceSlots } from "./device-capacity-Ca_ke1LE.mjs";
13
- import { d as requireHostedAppMode, o as call, s as connectHost } from "./hosted-client-Io01s5By.mjs";
14
- import { r as readHostedNative, s as writeHostedNative } from "./ios-state-CjrL2qv-.mjs";
15
- import { n as prepareHostedNative } from "./hosted-native-BdAQi21M.mjs";
16
- import { h as easCliSupport, m as MIN_EAS_CLI_SIMULATOR_VERSION, p as MIN_EAS_CLI_DEVICE_VERSION, s as readInstalledEasCliVersion } from "./device-remote-Bmg42063.mjs";
17
- import { i as staleNativeDirRefusal } from "./prebuild-Bw44QxVh.mjs";
1
+ import { _ as loadConfig$1, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
+ import { Ft as makeTemporaryDirectory, It as removeTemporaryEntry, ot as detectProviders, st as planMetroReach } from "./settings-B717odTD.mjs";
4
+ import { w as entryDir, y as artifactIn } from "./device-lease-BX1sJQ2E.mjs";
5
+ import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-BTy8hZ0F.mjs";
6
+ import { N as readRemoteSession, j as readMetroTunnel } from "./project-_phNIJfs.mjs";
7
+ import { Mt as readStats$1, s as peekBudget, wt as estimateBuild } from "./budget-f7516Zk0.mjs";
8
+ import { a as easAuthNote, f as resolveEasCliBin, s as isEasAuthFailureText } from "./remote-cache-OyOyVIS3.mjs";
9
+ import { S as hostingMachines, h as namedBuildMachine, v as resolveBuildMachine } from "./client-qQAaXSUs.mjs";
10
+ import { P as readHostMemoryPressure } from "./ios-RkW4pnQf.mjs";
11
+ import { r as predictBuildMiss } from "./miss-reason-mKzZ4VvN.mjs";
12
+ import { s as peekDeviceSlots } from "./device-capacity-CBUAcRyQ.mjs";
13
+ import { c as connectHost, f as requireHostedAppMode, s as call } from "./hosted-client-ZEKpS9vw.mjs";
14
+ import { r as readHostedNative, s as writeHostedNative } from "./ios-state-CBLe1xYw.mjs";
15
+ import { n as prepareHostedNative } from "./hosted-native-A4s1QPXe.mjs";
16
+ import { h as easCliSupport, m as MIN_EAS_CLI_SIMULATOR_VERSION, p as MIN_EAS_CLI_DEVICE_VERSION, s as readInstalledEasCliVersion } from "./device-remote-xRT0Vmo9.mjs";
17
+ import { i as staleNativeDirRefusal } from "./prebuild-DYbucPXy.mjs";
18
18
  import { automaticMachineEnabled, isJsonObject, machineCapacity, parseHostedChoice, parseHostedNativeOffer } from "@stim-cli/core/state";
19
19
  import { resolveTieredBuild } from "@stim-cli/cache";
20
20
  import chalk from "chalk";
@@ -1,14 +1,17 @@
1
- import { d as getConfigDir } from "./config-D0LhTY3S.mjs";
2
- import { isAbsolute, join, resolve } from "path";
1
+ import { d as getConfigDir } from "./config-BYDxlMY3.mjs";
2
+ import { join, resolve } from "path";
3
3
  import { existsSync } from "fs";
4
- import { readCacheManifest, updateCacheManifest } from "@stim-cli/core";
4
+ import { cacheDirRefusal, readCacheManifest, updateCacheManifest } from "@stim-cli/core";
5
5
  import { homedir } from "os";
6
6
  //#region src/cache/cache-manifest.ts
7
7
  function manifestPath() {
8
8
  return join(getConfigDir(), "caches.json");
9
9
  }
10
+ function expandHome(dir) {
11
+ return dir.startsWith("~") ? join(homedir(), dir.slice(1)) : dir;
12
+ }
10
13
  function expand(dir) {
11
- return resolve(dir.startsWith("~") ? join(homedir(), dir.slice(1)) : dir);
14
+ return resolve(expandHome(dir));
12
15
  }
13
16
  function readManifest(path = manifestPath()) {
14
17
  return {
@@ -21,6 +24,8 @@ function cacheEntries(caches) {
21
24
  }
22
25
  function register(entry, path = manifestPath()) {
23
26
  if (!entry?.dir) throw new Error("a cache registration needs a `dir`");
27
+ const refusal = cacheDirRefusal(expandHome(entry.dir));
28
+ if (refusal) throw new Error(`cannot register this cache: ${refusal}`);
24
29
  const dir = expand(entry.dir);
25
30
  const record = {
26
31
  dir,
@@ -53,7 +58,7 @@ function unregister(dir, path = manifestPath()) {
53
58
  return removed;
54
59
  }
55
60
  function registeredCaches(path = manifestPath()) {
56
- return readManifest(path).caches.filter((c) => isAbsolute(c.dir) && existsSync(c.dir)).map((c) => ({
61
+ return readManifest(path).caches.filter((c) => !cacheDirRefusal(c.dir) && existsSync(c.dir)).map((c) => ({
57
62
  name: c.name,
58
63
  dir: c.dir,
59
64
  prune: c.prune === "atomic" ? "atomic" : "entries",
@@ -1,2 +1,2 @@
1
- import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-qA3dT2x2.mjs";
1
+ import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-XH-fvDUj.mjs";
2
2
  export { manifestPath, readManifest, register, registeredCaches, unregister };
@@ -0,0 +1,24 @@
1
+ //#region src/cancellation.ts
2
+ function cancelledError(what, cause) {
3
+ return Object.assign(new Error(`The ${what} was cancelled.`, cause === void 0 ? void 0 : { cause }), { code: "STIM_CANCELLED" });
4
+ }
5
+ function throwIfCancelled(signal, what) {
6
+ if (signal?.aborted) throw cancelledError(what);
7
+ }
8
+ function cancellableSleep(ms, { signal, what = "wait", ref = true } = {}) {
9
+ return new Promise((resolve, reject) => {
10
+ if (signal?.aborted) return reject(cancelledError(what));
11
+ const onAbort = () => {
12
+ clearTimeout(timer);
13
+ reject(cancelledError(what));
14
+ };
15
+ const timer = setTimeout(() => {
16
+ signal?.removeEventListener("abort", onAbort);
17
+ resolve();
18
+ }, ms);
19
+ if (!ref) timer.unref();
20
+ signal?.addEventListener("abort", onAbort, { once: true });
21
+ });
22
+ }
23
+ //#endregion
24
+ export { cancelledError as n, throwIfCancelled as r, cancellableSleep as t };
@@ -1,10 +1,10 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { _ as loadConfig } from "./config-D0LhTY3S.mjs";
3
- import { r as register } from "./cache-manifest-qA3dT2x2.mjs";
4
- import { m as defaultAndroidLayout } from "./settings-Bbztm4oV.mjs";
5
- import { h as sharedCcache, w as workspaceLogsDir } from "./workspace-state-CSIFuuDa.mjs";
6
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
7
- import { o as machineNumber } from "./budget-BONq9vXY.mjs";
1
+ import { _ as loadConfig } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
+ import { r as register } from "./cache-manifest-XH-fvDUj.mjs";
4
+ import { m as defaultAndroidLayout } from "./settings-B717odTD.mjs";
5
+ import { h as sharedCcache, w as workspaceLogsDir } from "./workspace-state-DJt_MMvf.mjs";
6
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
7
+ import { o as machineNumber } from "./budget-f7516Zk0.mjs";
8
8
  import { readFileSync, realpathSync } from "node:fs";
9
9
  import { isAbsolute, join, relative } from "node:path";
10
10
  import chalk from "chalk";
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
1
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
2
  import { existsSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { homedir } from "node:os";
@@ -1,27 +1,27 @@
1
- import { n as debugLog } from "./exec-B81Qodjn.mjs";
2
- import { y as refuseRelativeStimPaths } from "./config-D0LhTY3S.mjs";
1
+ import { y as refuseRelativeStimPaths } from "./config-BYDxlMY3.mjs";
2
+ import { r as debugLog } from "./exec-DqKo9GKJ.mjs";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { runId } from "@stim-cli/core/state";
5
5
  import { Command } from "commander";
6
6
  //#region bin/cli.ts
7
7
  const commands = /* @__PURE__ */ new Map([
8
- ["doctor", () => import("./doctor-C2MSuMMg.mjs")],
9
- ["worktree", () => import("./worktree-q7_OZNY0.mjs")],
10
- ["start", () => import("./start-CbQCSnXQ.mjs")],
11
- ["ports", () => import("./ports-jzvAJXXL.mjs")],
12
- ["stop", () => import("./stop-CCZS-C9m.mjs")],
13
- ["ios", () => import("./ios-BZ9dg2Fr.mjs")],
14
- ["android", () => import("./android-0vv-OruW.mjs")],
15
- ["web", () => import("./web-BLXpOe6b.mjs")],
16
- ["macos", () => import("./macos-C0iljhsN.mjs")],
17
- ["reload", () => import("./reload-D34GkY78.mjs")],
18
- ["device", () => import("./device-B7lsC0K1.mjs")],
19
- ["logs", () => import("./logs-DHaRNfg7.mjs")],
20
- ["settings", () => import("./settings-CT3E71-i.mjs")],
21
- ["status", () => import("./status-DARMkc9q.mjs")],
22
- ["stats", () => import("./stats-BIIDrjA8.mjs")],
23
- ["gc", () => import("./gc-PWp34zGb.mjs")],
24
- ["guide", () => import("./guide-Dai9lphv.mjs")]
8
+ ["doctor", () => import("./doctor-CB8oZKCk.mjs")],
9
+ ["worktree", () => import("./worktree-DpLdCHga.mjs")],
10
+ ["start", () => import("./start-TXeMmmO2.mjs")],
11
+ ["ports", () => import("./ports-DdSUicVo.mjs")],
12
+ ["stop", () => import("./stop-DR6VoDIk.mjs")],
13
+ ["ios", () => import("./ios-BwVCF7oA.mjs")],
14
+ ["android", () => import("./android-Dlzxshgp.mjs")],
15
+ ["web", () => import("./web-Dq-i3wzJ.mjs")],
16
+ ["macos", () => import("./macos-D7uDvO-z.mjs")],
17
+ ["reload", () => import("./reload-C8JhxjSh.mjs")],
18
+ ["device", () => import("./device-DuiPJQSn.mjs")],
19
+ ["logs", () => import("./logs-BGrEUaEs.mjs")],
20
+ ["settings", () => import("./settings-BORNaaCO.mjs")],
21
+ ["status", () => import("./status-WgFbkRzj.mjs")],
22
+ ["stats", () => import("./stats-BoY5sEPU.mjs")],
23
+ ["gc", () => import("./gc-qWOMdnER.mjs")],
24
+ ["guide", () => import("./guide-G9cAbVAc.mjs")]
25
25
  ]);
26
26
  const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
27
27
  const program = new Command();
@@ -52,7 +52,7 @@ try {
52
52
  }));
53
53
  }
54
54
  try {
55
- const { triggerMaintenance } = await import("./trigger-SHLOWJ4O.mjs");
55
+ const { triggerMaintenance } = await import("./trigger-9_USgmxz.mjs");
56
56
  triggerMaintenance(action.name());
57
57
  } catch {}
58
58
  });
package/dist/cli.mjs CHANGED
@@ -4,6 +4,6 @@ const encode = (version) => version.split(".", 3).reduce((sum, part) => sum * 1e
4
4
  if (encode(process.versions.node) < encode("22.12.0")) {
5
5
  process.stderr.write(`STIM_NODE_UNSUPPORTED: Stim needs Node 22.12.0 or later; this is Node ${process.versions.node} at ${process.execPath}. To run Stim where a project pins an older Node, see https://stim.appandflow.com/docs/requirements#older-node-pins\n`);
6
6
  process.exitCode = 1;
7
- } else import("./cli-B2R8wH1F.mjs");
7
+ } else import("./cli-CLP3diBm.mjs");
8
8
  //#endregion
9
9
  export {};