stim 1.16.0 → 1.17.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 (107) hide show
  1. package/dist/{activity-BxwdD81S.mjs → activity-IRvJY_ru.mjs} +23 -3
  2. package/dist/{agent-device-usage-output-Dpih1Tfa.mjs → agent-device-usage-output-BK41vnzN.mjs} +3 -3
  3. package/dist/{android-Ift4kVvt.mjs → android--GorydsK.mjs} +679 -317
  4. package/dist/{android-B_NumVyQ.mjs → android-B_YNZy61.mjs} +7 -43
  5. package/dist/{android-r2rBL8kV.mjs → android-DE4v59Mb.mjs} +12 -3
  6. package/dist/{android-cas-8U4DPqeR.mjs → android-cas-ZFpjJBL_.mjs} +6 -5
  7. package/dist/{app-install-CKWdbXIX.mjs → app-install-VPkI5WEg.mjs} +6 -5
  8. package/dist/{budget-DjrURfQn.mjs → budget-DM984mnd.mjs} +34 -18
  9. package/dist/{build-plan-DjeSb2Xl.mjs → build-plan-CmQCoyT-.mjs} +345 -86
  10. package/dist/{build-slots-rUk77xqh.mjs → build-slots-41v_d2x9.mjs} +35 -25
  11. package/dist/{cli-BkYZ_6hy.mjs → cli-Daxug5-K.mjs} +17 -17
  12. package/dist/cli.mjs +1 -1
  13. package/dist/collector-run.mjs +3 -3
  14. package/dist/{command-output-DnJMdEY-.mjs → command-output-CDAIFD-8.mjs} +3 -3
  15. package/dist/{created-devices-D5owjN4C.mjs → created-devices-CpvzBL25.mjs} +1 -1
  16. package/dist/{dependency-state-B6cMXZab.mjs → dependency-state-CLcBHH2M.mjs} +1 -1
  17. package/dist/{deps-urbmfXig.mjs → deps-DNWaQs4V.mjs} +1 -1
  18. package/dist/{dev-client-CroAIjjj.mjs → dev-client-B-XC4uRH.mjs} +2 -2
  19. package/dist/{device-DZQjF7H5.mjs → device-C8IOoJPv.mjs} +7 -7
  20. package/dist/device-capacity-D0GWHnTM.mjs +580 -0
  21. package/dist/device-host-worker.mjs +436 -154
  22. package/dist/{device-ios-BadmeL2V.mjs → device-ios-Bc7vbGwl.mjs} +75 -44
  23. package/dist/{device-lease-D-hLqx1b.mjs → device-lease-DpoS36_u.mjs} +2 -2
  24. package/dist/{device-lease-run-CqjShqWW.mjs → device-lease-run-B8YltIH_.mjs} +3 -3
  25. package/dist/{device-pool-CUaEWMMm.mjs → device-pool-3o7s5lo4.mjs} +2 -2
  26. package/dist/{device-remote-D5WVWqOq.mjs → device-remote-hFSkpfQu.mjs} +12 -12
  27. package/dist/{doctor-Cimf-gGB.mjs → doctor-Cnk9d7Hm.mjs} +32 -51
  28. package/dist/{error-diagnostics-B9L4Ae0x.mjs → error-diagnostics-C-NMnhrk.mjs} +7 -7
  29. package/dist/{gc-Bqy4bjEu.mjs → gc-DxCL2A46.mjs} +308 -26
  30. package/dist/{gradle-BsO1MdsH.mjs → gradle-D7-L2Th3.mjs} +3 -3
  31. package/dist/{guide-B_uyKTxW.mjs → guide-DjrTQGik.mjs} +1662 -565
  32. package/dist/{guide-status-CjEZMAD4.mjs → guide-status-Du-ZQ3FD.mjs} +1 -1
  33. package/dist/hosted-android-DwLS4Mse.mjs +32 -0
  34. package/dist/{hosted-client-a-WmqE2L.mjs → hosted-client-wk1W_CNW.mjs} +2 -3
  35. package/dist/hosted-ios-aMo7Cljf.mjs +15 -0
  36. package/dist/{hosted-logs-D5g041Q3.mjs → hosted-logs-DqYmWtXc.mjs} +16 -16
  37. package/dist/{hosted-macos-BSZyIb3y.mjs → hosted-macos-dlHXEeF5.mjs} +4 -4
  38. package/dist/{hosted-ios-CIWelIqf.mjs → hosted-native-C9xJ9rpA.mjs} +77 -42
  39. package/dist/{idle-DYVymG92.mjs → idle-B2m-Ovod.mjs} +122 -58
  40. package/dist/{idle-shutdown-CTsDnAde.mjs → idle-shutdown-_3oOV1V_.mjs} +25 -17
  41. package/dist/{in-use-DvBw0Kxo.mjs → in-use-CvGOUn-x.mjs} +11 -11
  42. package/dist/{ios-aq3QoGI3.mjs → ios-DE6duQoz.mjs} +170 -88
  43. package/dist/{ios-BaInn3sW.mjs → ios-DSfnPfse.mjs} +4 -4
  44. package/dist/{ios-device-FfCN_C8p.mjs → ios-device-pAN4t54-.mjs} +1 -1
  45. package/dist/ios-state-8L3lgum6.mjs +89 -0
  46. package/dist/{launch-verify-2DBRizjo.mjs → launch-verify-lTnWZikR.mjs} +2 -2
  47. package/dist/{logs-CHEVK8zD.mjs → logs-DUoKlDoS.mjs} +36 -23
  48. package/dist/{client-BTY686R6.mjs → machines-C2XiNwh9.mjs} +278 -20
  49. package/dist/{macos-CSYEAFmF.mjs → macos-32po3kUq.mjs} +14 -14
  50. package/dist/macos-run.mjs +1 -1
  51. package/dist/maintenance-run.mjs +2 -2
  52. package/dist/{metro-BeK1ZPz1.mjs → metro-g8NqiJp-.mjs} +1 -1
  53. package/dist/{metro-gateway-BJ-rxQAB.mjs → metro-gateway-DmslUM30.mjs} +22 -3
  54. package/dist/{named-ports-Bk_YXEmE.mjs → named-ports-C8m8EQs2.mjs} +2 -2
  55. package/dist/{native-run-NaBrRFtQ.mjs → native-run-D1Q56rAD.mjs} +17 -6
  56. package/dist/{native-runtime-DBzRnEKS.mjs → native-runtime-DhJI3IVQ.mjs} +6 -6
  57. package/dist/offload-worker.mjs +8 -8
  58. package/dist/{teardown-CL6vDs2Y.mjs → ownership-BMLqyBgJ.mjs} +603 -26
  59. package/dist/{ownership-DiA16AsN.mjs → ownership-DyRQru0q.mjs} +2 -2
  60. package/dist/{ports-R2k4Knz3.mjs → ports-4nYqxPWC.mjs} +2 -2
  61. package/dist/{prebuild-D2fsca_Z.mjs → prebuild-D7RUMkwN.mjs} +3 -3
  62. package/dist/{preview-DhVbvPAZ.mjs → preview-CxPRIEht.mjs} +7 -7
  63. package/dist/{project-Du91Ilvc.mjs → project-D47Rh0ly.mjs} +7 -2
  64. package/dist/{recordings-BIXOzVnr.mjs → recordings-BNgsD1Tr.mjs} +1 -1
  65. package/dist/{reload-rM9jV1fz.mjs → reload-qZei6iWn.mjs} +62 -35
  66. package/dist/{remote-cache-C8-V13XN.mjs → remote-cache-Ci4DQYYj.mjs} +3 -3
  67. package/dist/{run-f4vI6EnK.mjs → run-CkE9y0nc.mjs} +1 -1
  68. package/dist/{server-bare-CpPGmnmO.mjs → server-bare-BkrSxSsZ.mjs} +1 -1
  69. package/dist/{server-expo-MC0rHlOC.mjs → server-expo-CHTyXD0G.mjs} +2 -2
  70. package/dist/server-expo-CeakhI8P.mjs +2 -0
  71. package/dist/{settings-oTSkkNrM.mjs → settings-Cfd-0r2d.mjs} +10 -9
  72. package/dist/{settings-ZkDzkzvB.mjs → settings-SR9OmW9h.mjs} +3 -3
  73. package/dist/settings.schema.json +42 -13
  74. package/dist/{simslim-B8-7AoTI.mjs → simslim-BWNrc3M3.mjs} +3 -3
  75. package/dist/{slot-launch-B8VrHxn1.mjs → slot-launch-DmjBmpQV.mjs} +8 -8
  76. package/dist/{start-CX8Ig-U2.mjs → start-BopZcr4n.mjs} +1 -1
  77. package/dist/{start-ClDfwXa4.mjs → start-uee1wWjY.mjs} +11 -11
  78. package/dist/{state-DcW6vOd_.mjs → state-BKa8wNN5.mjs} +1 -1
  79. package/dist/{state-3DwSQIBK.mjs → state-DyaNTgfR.mjs} +1 -1
  80. package/dist/{state-C1jB7Q8q.mjs → state-PeQiJuIu.mjs} +2 -2
  81. package/dist/{stats-CEZ_i5je.mjs → stats-Bq4fJOdB.mjs} +7 -4
  82. package/dist/{status-BuvBFeII.mjs → status-CzS4bPO9.mjs} +4 -4
  83. package/dist/{status-Cs7VLg9D.mjs → status-dXX2JX1C.mjs} +125 -35
  84. package/dist/{stop-Dt_dM16A.mjs → stop-BCwvvs7F.mjs} +2 -2
  85. package/dist/{stop-Bffozsac.mjs → stop-BjizrQwv.mjs} +48 -27
  86. package/dist/{stop-B0Yxtmiy.mjs → stop-Cr1d8DSE.mjs} +4 -4
  87. package/dist/{stop-cause-CidxIqup.mjs → stop-cause-rhmGfwvt.mjs} +1 -1
  88. package/dist/supervisor-run.d.mts +7 -4
  89. package/dist/supervisor-run.mjs +26 -28
  90. package/dist/{support-D4aYJniO.mjs → support-BJPgYCu-.mjs} +44 -19
  91. package/dist/{support-CAP8qDUF.mjs → support-F9-sr0Oi.mjs} +6 -6
  92. package/dist/{toolchain-DkUflduf.mjs → toolchain-CNIBTIOv.mjs} +7 -7
  93. package/dist/{warm-progress-CpGv3Wb6.mjs → warm-progress-DF4JRvYI.mjs} +3 -3
  94. package/dist/watchman-APYjXSQa.mjs +48 -0
  95. package/dist/{web-DWUaMp8P.mjs → web-exQtGkoc.mjs} +12 -13
  96. package/dist/web-run.mjs +4 -4
  97. package/dist/{workspace-process-lock-BL7Q0HCO.mjs → workspace-process-lock-2mNzOlaB.mjs} +3 -2
  98. package/dist/{workspace-state-B8-aJ1_5.mjs → workspace-state-DqcCbpE7.mjs} +2 -2
  99. package/dist/{workspaces-BV4pdHFz.mjs → workspaces-Bcib97-6.mjs} +3 -3
  100. package/dist/{worktree-jnG8Iph5.mjs → worktree-Dc98cE6_.mjs} +1 -1
  101. package/dist/{worktree-K-xj9Db0.mjs → worktree-ZpZR3S1k.mjs} +141 -40
  102. package/package.json +5 -5
  103. package/dist/device-capacity-BHwxNBlu.mjs +0 -136
  104. package/dist/ios-state-DS5UpYTH.mjs +0 -48
  105. package/dist/machines-BIBUdhpj.mjs +0 -265
  106. package/dist/ownership-hCkPzGmr.mjs +0 -571
  107. package/dist/server-expo-CVqO2c35.mjs +0 -2
@@ -1,24 +1,24 @@
1
1
  import { t as getExecutor } from "./exec-CaErVv7t.mjs";
2
2
  import { E as upsertProject, u as getConcurrencyLimits } from "./config-D0DbpZtM.mjs";
3
3
  import { t as process_identity_exports } from "./process-identity-BmRm1qV0.mjs";
4
- import { l as phaseLine } from "./command-output-DnJMdEY-.mjs";
5
- import { P as resolveSettings, R as settingShapeErrors, a as SETTING_SHAPE_REMEDY, gt as repoRoot, it as gitCommonDir } from "./settings-oTSkkNrM.mjs";
6
- import { o as findProjectRoot$1 } from "./project-Du91Ilvc.mjs";
7
- import { c as writeWorkspaceState, g as workspaceAgentDeviceDir, i as recordWorkspaceUse, u as ensureWorkspaceStorage, v as workspaceDir, x as workspaceLogsDir$1 } from "./workspace-state-B8-aJ1_5.mjs";
4
+ import { l as phaseLine } from "./command-output-CDAIFD-8.mjs";
5
+ import { P as resolveSettings, R as settingShapeErrors, gt as repoRoot, i as SETTING_SHAPE_REMEDY, it as gitCommonDir } from "./settings-Cfd-0r2d.mjs";
6
+ import { s as findProjectRoot$1 } from "./project-D47Rh0ly.mjs";
7
+ import { c as writeWorkspaceState, g as workspaceAgentDeviceDir, i as recordWorkspaceUse, u as ensureWorkspaceStorage, v as workspaceDir, x as workspaceLogsDir$1 } from "./workspace-state-DqcCbpE7.mjs";
8
8
  import { a as spawnDeclared } from "./spawn-claims-D0XfSe8u.mjs";
9
- import { r as releaseBuildSlot, t as acquireBuildSlot } from "./build-slots-rUk77xqh.mjs";
10
- import { t as withWorkspaceProcessLock } from "./workspace-process-lock-BL7Q0HCO.mjs";
11
- import { a as requiredMacosRecord, n as macosLogFile, r as macosProcess, t as macosDir } from "./state-3DwSQIBK.mjs";
9
+ import { r as releaseBuildSlot, t as acquireBuildSlot } from "./build-slots-41v_d2x9.mjs";
10
+ import { t as withWorkspaceProcessLock } from "./workspace-process-lock-2mNzOlaB.mjs";
11
+ import { a as requiredMacosRecord, n as macosLogFile, r as macosProcess, t as macosDir } from "./state-DyaNTgfR.mjs";
12
12
  import { r as createNdjsonWriter } from "./ndjson-PclOIwVY.mjs";
13
- import { i as macosToolchain } from "./toolchain-DkUflduf.mjs";
14
- import { a as offloadBuild, c as placementLoad, d as OffloadRefusal, f as namedBuildMachine, i as closeOffload, l as remotePhaseText, m as resolveBuildPlacement, n as buildPlacementCandidates, p as parseBuildMachineOption, r as chooseBuildMachine, s as offloadPlacement } from "./client-BTY686R6.mjs";
15
- import { o as connectHost } from "./hosted-client-a-WmqE2L.mjs";
16
- import { t as logLines } from "./run-f4vI6EnK.mjs";
17
- import { t as placeHostedMacos } from "./hosted-macos-BSZyIb3y.mjs";
18
- import { n as stopMacosAppHeld } from "./stop-B0Yxtmiy.mjs";
13
+ import { i as macosToolchain } from "./toolchain-CNIBTIOv.mjs";
14
+ import { _ as resolveBuildPlacement, a as chooseBuildMachine, d as remotePhaseText, h as parseBuildMachineOption, i as buildPlacementCandidates, l as offloadPlacement, m as namedBuildMachine, o as closeOffload, p as OffloadRefusal, s as offloadBuild, u as placementLoad } from "./machines-C2XiNwh9.mjs";
15
+ import { o as connectHost } from "./hosted-client-wk1W_CNW.mjs";
16
+ import { t as logLines } from "./run-CkE9y0nc.mjs";
17
+ import { t as placeHostedMacos } from "./hosted-macos-dlHXEeF5.mjs";
18
+ import { n as stopMacosAppHeld } from "./stop-Cr1d8DSE.mjs";
19
19
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
20
20
  import { n as stageBundle, r as validateInfoPlist, t as resolveBundleExtras } from "./stage-CzaiwFsI.mjs";
21
- import { d as withNativeBuildRun } from "./native-run-NaBrRFtQ.mjs";
21
+ import { f as withNativeBuildRun } from "./native-run-D1Q56rAD.mjs";
22
22
  import { createHash, randomUUID } from "node:crypto";
23
23
  import { closeSync, existsSync, mkdirSync, mkdtempSync, openSync, realpathSync, renameSync, rmSync } from "node:fs";
24
24
  import { join, relative, resolve } from "node:path";
@@ -1,2 +1,2 @@
1
- import { n as runMacosSupervisor, t as logLines } from "./run-f4vI6EnK.mjs";
1
+ import { n as runMacosSupervisor, t as logLines } from "./run-CkE9y0nc.mjs";
2
2
  export { logLines, runMacosSupervisor };
@@ -1,10 +1,10 @@
1
1
  import { j as formatBytes } from "./config-D0DbpZtM.mjs";
2
2
  import { t as relaunchWithLogFile } from "./detached-entry-CiTEgMR1.mjs";
3
- import { s as resolveBudget } from "./budget-DjrURfQn.mjs";
3
+ import { c as resolveBudget } from "./budget-DM984mnd.mjs";
4
4
  import { r as createNdjsonWriter } from "./ndjson-PclOIwVY.mjs";
5
5
  import { t as resolveMaintenanceSettings } from "./settings-BBpMcDbD.mjs";
6
6
  import { r as due, t as capChildLog } from "./attempt-Bk2ouQVL.mjs";
7
- import { a as sizeScanDeferred, i as measureSizes, r as measurePressure, t as plannedMaintenance } from "./preview-DhVbvPAZ.mjs";
7
+ import { a as sizeScanDeferred, i as measureSizes, r as measurePressure, t as plannedMaintenance } from "./preview-CxPRIEht.mjs";
8
8
  import { appendFileSync, mkdirSync, renameSync, statSync, unlinkSync, writeFileSync } from "node:fs";
9
9
  import { basename, join, resolve } from "node:path";
10
10
  import { LOG_ROTATE_BYTES, rotatedLogPath, withDirLock } from "@stim-cli/core";
@@ -1,7 +1,7 @@
1
1
  import { t as getExecutor } from "./exec-CaErVv7t.mjs";
2
2
  import { M as isOnMountedVolume, N as listMountedVolumes, _ as loadConfig, n as allMetroPorts, r as claimMetroPort, x as releaseMetroPort } from "./config-D0DbpZtM.mjs";
3
3
  import { t as process_identity_exports } from "./process-identity-BmRm1qV0.mjs";
4
- import { r as readWorkspaceState } from "./workspace-state-B8-aJ1_5.mjs";
4
+ import { r as readWorkspaceState } from "./workspace-state-DqcCbpE7.mjs";
5
5
  import { existsSync, readlinkSync, realpathSync } from "fs";
6
6
  import { sep } from "path";
7
7
  import { request } from "http";
@@ -1,6 +1,6 @@
1
1
  import { t as process_identity_exports } from "./process-identity-BmRm1qV0.mjs";
2
- import { a as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-B8-aJ1_5.mjs";
3
- import { b as realIo } from "./client-BTY686R6.mjs";
2
+ import { a as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-DqcCbpE7.mjs";
3
+ import { x as realIo } from "./machines-C2XiNwh9.mjs";
4
4
  import { randomBytes, randomUUID } from "node:crypto";
5
5
  import { HOSTED_METRO_REQUESTS_KEY, findPeer, hostedMetroGateways, hostedMetroRequests, isJsonObject, parseMachine } from "@stim-cli/core/state";
6
6
  import { isIP } from "node:net";
@@ -80,5 +80,24 @@ async function closeHostedMetro(root, session) {
80
80
  await new Promise((done) => setTimeout(done, 100));
81
81
  }
82
82
  }
83
+ function hostedMetroSettings(settings, hosted) {
84
+ return hosted ? {
85
+ ...settings,
86
+ ios: {
87
+ ...isJsonObject(settings.ios) ? settings.ios : {},
88
+ remote: void 0
89
+ },
90
+ android: {
91
+ ...isJsonObject(settings.android) ? settings.android : {},
92
+ remote: void 0
93
+ },
94
+ metro: {
95
+ ...isJsonObject(settings.metro) ? settings.metro : {},
96
+ tunnel: void 0,
97
+ publicUrl: void 0,
98
+ ngrokUrl: void 0
99
+ }
100
+ } : settings;
101
+ }
83
102
  //#endregion
84
- export { requireHostedMetro as i, closeHostedMetro as n, requestHostedMetro as r, clearHostedMetro as t };
103
+ export { requireHostedMetro as a, requestHostedMetro as i, closeHostedMetro as n, hostedMetroSettings as r, clearHostedMetro as t };
@@ -1,8 +1,8 @@
1
1
  import { t as getExecutor } from "./exec-CaErVv7t.mjs";
2
2
  import { C as saveConfig, D as withConfigLock, _ as loadConfig, c as ensureConfig, d as getConfigDir, p as getProject } from "./config-D0DbpZtM.mjs";
3
3
  import { t as process_identity_exports } from "./process-identity-BmRm1qV0.mjs";
4
- import { f as isPortFree, i as listeningPids, u as signalProcessTree } from "./metro-BeK1ZPz1.mjs";
5
- import { t as withWorkspaceProcessLock } from "./workspace-process-lock-BL7Q0HCO.mjs";
4
+ import { f as isPortFree, i as listeningPids, u as signalProcessTree } from "./metro-g8NqiJp-.mjs";
5
+ import { t as withWorkspaceProcessLock } from "./workspace-process-lock-2mNzOlaB.mjs";
6
6
  import { realpathSync } from "node:fs";
7
7
  //#region src/named-ports.ts
8
8
  const FIRST_PORT = 8900;
@@ -1,7 +1,7 @@
1
- import { a as formatElapsed } from "./command-output-DnJMdEY-.mjs";
2
- import { a as updateWorkspaceState, r as readWorkspaceState, t as clearWorkspaceStateKey, v as workspaceDir } from "./workspace-state-B8-aJ1_5.mjs";
1
+ import { a as formatElapsed } from "./command-output-CDAIFD-8.mjs";
2
+ import { a as updateWorkspaceState, r as readWorkspaceState, t as clearWorkspaceStateKey, v as workspaceDir } from "./workspace-state-DqcCbpE7.mjs";
3
3
  import { i as signalDeclaredSpawns, r as refuseDeclaredSpawns, t as allowDeclaredSpawns } from "./spawn-claims-D0XfSe8u.mjs";
4
- import { t as withWorkspaceProcessLock } from "./workspace-process-lock-BL7Q0HCO.mjs";
4
+ import { t as withWorkspaceProcessLock } from "./workspace-process-lock-2mNzOlaB.mjs";
5
5
  //#region src/engine/native-run.ts
6
6
  const NATIVE_RUN_LOCK = "native-run";
7
7
  const NATIVE_RUN_WAIT_MS = 18e5;
@@ -79,6 +79,11 @@ function clearNativeRunCancel(root, claimId) {
79
79
  } catch {}
80
80
  }
81
81
  let cancelled = null;
82
+ let cancellationSignal;
83
+ /** The active native run aborts this signal when it is cancelled. */
84
+ function runCancellationSignal() {
85
+ return cancellationSignal;
86
+ }
82
87
  /** Why this process's native run was cancelled, or null while it was not. */
83
88
  function runCancellation() {
84
89
  return cancelled;
@@ -92,7 +97,7 @@ function cancelledFailure(platform, { code, message }) {
92
97
  lines: [`it stopped at ${code ?? "an unfinished step"}${message ? `: ${message}` : ""}`]
93
98
  };
94
99
  }
95
- function cancelOnInterrupt({ root, claim, write, exit }) {
100
+ function cancelOnInterrupt({ root, claim, write, exit, controller }) {
96
101
  let signals = 0;
97
102
  const onInterrupt = () => {
98
103
  signals += 1;
@@ -102,6 +107,7 @@ function cancelOnInterrupt({ root, claim, write, exit }) {
102
107
  }
103
108
  const request = cancelRequestFor(root, claim.claimId);
104
109
  cancelled = request ? `cancelled by \`stim stop\` (pid ${request.pid})` : "cancelled by an interrupt";
110
+ controller.abort();
105
111
  refuseDeclaredSpawns(`the run was ${cancelled}`);
106
112
  const signalled = signalDeclaredSpawns("SIGINT");
107
113
  write(signalled > 0 ? `${cancelled}; stopping the running build tool` : request ? `${cancelled}; stopping before the next build tool or install` : cancelled);
@@ -124,16 +130,21 @@ function cancelOnInterrupt({ root, claim, write, exit }) {
124
130
  function withNativeBuildRun(root, details, fn, { write, exit = (code) => process.exit(code) }) {
125
131
  const notice = nativeRunWaitNotice({ write });
126
132
  return withWorkspaceProcessLock(workspaceDir(root), NATIVE_RUN_LOCK, async (claim) => {
133
+ cancelled = null;
134
+ const controller = new AbortController();
135
+ cancellationSignal = controller.signal;
127
136
  const dispose = cancelOnInterrupt({
128
137
  root,
129
138
  claim,
130
139
  write,
131
- exit
140
+ exit,
141
+ controller
132
142
  });
133
143
  try {
134
144
  return await fn(claim);
135
145
  } finally {
136
146
  dispose();
147
+ cancellationSignal = void 0;
137
148
  }
138
149
  }, {
139
150
  external: true,
@@ -144,4 +155,4 @@ function withNativeBuildRun(root, details, fn, { write, exit = (code) => process
144
155
  });
145
156
  }
146
157
  //#endregion
147
- export { decideStopAction as a, nativeRunWaitNotice as c, withNativeBuildRun as d, clearNativeRunCancel as i, requestNativeRunCancel as l, NATIVE_RUN_WAIT_MS as n, describeNativeRunHolder as o, cancelledFailure as r, nativeRunHolder as s, NATIVE_RUN_LOCK as t, runCancellation as u };
158
+ export { decideStopAction as a, nativeRunWaitNotice as c, runCancellationSignal as d, withNativeBuildRun as f, clearNativeRunCancel as i, requestNativeRunCancel as l, NATIVE_RUN_WAIT_MS as n, describeNativeRunHolder as o, cancelledFailure as r, nativeRunHolder as s, NATIVE_RUN_LOCK as t, runCancellation as u };
@@ -1,9 +1,9 @@
1
- import { l as phaseLine } from "./command-output-DnJMdEY-.mjs";
2
- import { S as metroPortSetting } from "./settings-oTSkkNrM.mjs";
3
- import { l as resolveProjectMetro } from "./metro-BeK1ZPz1.mjs";
4
- import { r as readWorkspaceState$1, u as ensureWorkspaceStorage } from "./workspace-state-B8-aJ1_5.mjs";
5
- import { r as LAUNCH_UNVERIFIED, t as LAUNCH_BUNDLING } from "./launch-verify-2DBRizjo.mjs";
6
- import { c as startDevServer } from "./start-ClDfwXa4.mjs";
1
+ import { l as phaseLine } from "./command-output-CDAIFD-8.mjs";
2
+ import { x as metroPortSetting } from "./settings-Cfd-0r2d.mjs";
3
+ import { l as resolveProjectMetro } from "./metro-g8NqiJp-.mjs";
4
+ import { r as readWorkspaceState$1, u as ensureWorkspaceStorage } from "./workspace-state-DqcCbpE7.mjs";
5
+ import { r as LAUNCH_UNVERIFIED, t as LAUNCH_BUNDLING } from "./launch-verify-lTnWZikR.mjs";
6
+ import { c as startDevServer } from "./start-uee1wWjY.mjs";
7
7
  import { readIdleStop } from "@stim-cli/core/state";
8
8
  import chalk from "chalk";
9
9
  //#region src/commands/native-runtime.ts
@@ -1,13 +1,13 @@
1
1
  import { t as getExecutor } from "./exec-CaErVv7t.mjs";
2
2
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
3
- import { D as fingerprintProject, M as refingerprintAfterMutation } from "./device-lease-D-hLqx1b.mjs";
4
- import { T as CCACHE_UNAVAILABLE, d as buildIos, k as resolveCcache, o as workerToolchain, s as manifestDigest } from "./toolchain-DkUflduf.mjs";
5
- import { t as logLines } from "./run-f4vI6EnK.mjs";
6
- import { a as runPodInstall, n as podsAreStale, r as readPodState } from "./deps-urbmfXig.mjs";
7
- import { n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-D2fsca_Z.mjs";
8
- import { a as gradlewPath, i as buildAndroid, r as assembleTaskFor } from "./gradle-BsO1MdsH.mjs";
3
+ import { D as fingerprintProject, M as refingerprintAfterMutation } from "./device-lease-DpoS36_u.mjs";
4
+ import { T as CCACHE_UNAVAILABLE, d as buildIos, k as resolveCcache, o as workerToolchain, s as manifestDigest } from "./toolchain-CNIBTIOv.mjs";
5
+ import { t as logLines } from "./run-CkE9y0nc.mjs";
6
+ import { a as runPodInstall, n as podsAreStale, r as readPodState } from "./deps-DNWaQs4V.mjs";
7
+ import { n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-D7RUMkwN.mjs";
8
+ import { a as gradlewPath, i as buildAndroid, r as assembleTaskFor } from "./gradle-D7-L2Th3.mjs";
9
9
  import { n as stageBundle, t as resolveBundleExtras } from "./stage-CzaiwFsI.mjs";
10
- import { u as podAction } from "./support-D4aYJniO.mjs";
10
+ import { d as podAction } from "./support-BJPgYCu-.mjs";
11
11
  import { createHash } from "node:crypto";
12
12
  import { chmodSync, constants, copyFileSync, cpSync, createReadStream, existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
13
13
  import { basename, dirname, join } from "node:path";
@@ -355,7 +355,7 @@ async function build(job) {
355
355
  mkdirSync(out, { recursive: true });
356
356
  const archive = join(out, "app.tgz");
357
357
  const name = basename(compiled.path);
358
- if (job.platform === "ios") cpSync(compiled.path, join(out, name), {
358
+ if (job.platform === "ios" || job.platform === "android") cpSync(compiled.path, join(out, name), {
359
359
  recursive: true,
360
360
  verbatimSymlinks: true,
361
361
  mode: constants.COPYFILE_FICLONE