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,14 +1,12 @@
1
- import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
- import { B as parseDeviceSlotKey, R as deviceSlotKey, _ as loadConfig$1, g as isPathPrefix, l as findEnclosingWorktreeRoot, p as getProject } from "./config-D0LhTY3S.mjs";
3
- import { $ as settingValueAt, Et as repoRoot, G as resolveIosProjectDir, U as resolveAndroidLayout, rt as webSettings } from "./settings-Bbztm4oV.mjs";
4
- import { E as workspaceStateFile, a as updateWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState$1, t as clearWorkspaceStateKey, v as supervisorPidFile } from "./workspace-state-CSIFuuDa.mjs";
1
+ import { B as deviceSlotKey, H as parseDeviceSlotKey, _ as loadConfig$1, g as isPathPrefix, k as process_identity_exports, l as findEnclosingWorktreeRoot, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { $ as settingValueAt, Dt as repoRoot, G as resolveIosProjectDir, U as resolveAndroidLayout, rt as webSettings } from "./settings-B717odTD.mjs";
3
+ import { E as workspaceStateFile, a as updateWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState$1, t as clearWorkspaceStateKey, v as supervisorPidFile } from "./workspace-state-DJt_MMvf.mjs";
5
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
6
5
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
7
6
  import { basename as basename$1, dirname as dirname$1, join as join$1, resolve as resolve$1 } from "path";
8
7
  import { projectRootDirectories } from "@stim-cli/core/state";
9
8
  import { existsSync as existsSync$1, readFileSync as readFileSync$1, realpathSync as realpathSync$1 } from "fs";
10
9
  import { DOMParser } from "@xmldom/xmldom";
11
- import pbxParser from "xcode/lib/parser/pbxproj.js";
12
10
  //#region src/supervisor/state.ts
13
11
  const MODE_BARE = "bare-inproc";
14
12
  const MODE_EXPO = "expo-child";
@@ -308,42 +306,108 @@ const nativeAndroidIntegration = {
308
306
  application: true,
309
307
  platforms: () => ["android"],
310
308
  validate: (operation) => operation === "android" ? null : void 0,
311
- android: async () => (await import("./native-android-lHzaew7r.mjs")).nativeAndroidProject(root),
312
- doctor: async () => (await import("./native-android-lHzaew7r.mjs")).nativeAndroidDoctor(root)
309
+ android: async () => (await import("./native-android-D5qc3-_v.mjs")).nativeAndroidProject(root),
310
+ doctor: async () => (await import("./native-android-D5qc3-_v.mjs")).nativeAndroidDoctor(root)
313
311
  };
314
312
  }
315
313
  };
316
314
  //#endregion
317
315
  //#region src/integrations/native-xcode-syntax.ts
318
- function parseNativeXcodeSyntax(source) {
319
- let normalized = "";
320
- for (let at = 0; at < source.length;) {
321
- const start = at;
322
- if (source[at] === "\"") {
323
- at++;
324
- while (at < source.length) if (source[at] === "\\") at += 2;
325
- else if (source[at++] === "\"") break;
326
- } else if (source.startsWith("/*", at)) {
327
- const end = source.indexOf("*/", at + 2);
328
- at = end < 0 ? source.length : end + 2;
329
- } else if (source.startsWith("//", at)) {
330
- const end = source.indexOf("\n", at + 2);
331
- at = end < 0 ? source.length : end + 1;
332
- } else if (source.startsWith("$(", at)) {
333
- at += 2;
334
- let depth = 1;
335
- while (at < source.length && depth > 0) {
336
- if (source[at] === "(") depth++;
337
- else if (source[at] === ")") depth--;
338
- at++;
339
- }
340
- } else {
341
- if (source[at] === ")") normalized += "\n";
342
- at++;
316
+ const SPACE = /\s/;
317
+ const LITERAL_END = /[\s,;(){}=]/;
318
+ var NativeXcodeSyntaxError = class extends Error {};
319
+ var Reader = class {
320
+ at = 0;
321
+ source;
322
+ constructor(source) {
323
+ this.source = source;
324
+ }
325
+ parseDocument() {
326
+ const value = this.value();
327
+ this.skip();
328
+ if (this.at < this.source.length) this.fail("unexpected text after the project");
329
+ return value;
330
+ }
331
+ fail(reason) {
332
+ throw new NativeXcodeSyntaxError(`Cannot parse project.pbxproj: ${reason} at offset ${this.at}.`);
333
+ }
334
+ skip() {
335
+ const { source } = this;
336
+ while (this.at < source.length) if (SPACE.test(source[this.at])) this.at++;
337
+ else if (source.startsWith("/*", this.at)) {
338
+ const end = source.indexOf("*/", this.at + 2);
339
+ if (end < 0) this.fail("unterminated comment");
340
+ this.at = end + 2;
341
+ } else if (source.startsWith("//", this.at)) {
342
+ const end = source.indexOf("\n", this.at);
343
+ this.at = end < 0 ? source.length : end + 1;
344
+ } else break;
345
+ }
346
+ expect(char) {
347
+ this.skip();
348
+ if (this.source[this.at] !== char) this.fail(`expected "${char}"`);
349
+ this.at++;
350
+ }
351
+ value() {
352
+ this.skip();
353
+ const char = this.source[this.at];
354
+ if (char === "{") return this.dictionary();
355
+ if (char === "(") return this.list();
356
+ return this.string();
357
+ }
358
+ dictionary() {
359
+ this.at++;
360
+ const result = Object.create(null);
361
+ for (;;) {
362
+ this.skip();
363
+ if (this.source[this.at] === "}") break;
364
+ const key = this.string();
365
+ this.expect("=");
366
+ result[key] = this.value();
367
+ this.expect(";");
368
+ }
369
+ this.at++;
370
+ return result;
371
+ }
372
+ list() {
373
+ this.at++;
374
+ const result = [];
375
+ for (;;) {
376
+ this.skip();
377
+ if (this.source[this.at] === ")") break;
378
+ result.push(this.value());
379
+ this.skip();
380
+ if (this.source[this.at] === ",") this.at++;
381
+ else if (this.source[this.at] !== ")") this.fail("expected \",\" or \")\"");
343
382
  }
344
- normalized += source.slice(start, at);
383
+ this.at++;
384
+ return result;
345
385
  }
346
- return pbxParser.parse(normalized);
386
+ string() {
387
+ const { source } = this;
388
+ const start = this.at;
389
+ if (source[start] === "\"") {
390
+ this.at++;
391
+ while (this.at < source.length && source[this.at] !== "\"") this.at += source[this.at] === "\\" ? 2 : 1;
392
+ if (this.at >= source.length) this.fail("unterminated string");
393
+ this.at++;
394
+ return source.slice(start, this.at);
395
+ }
396
+ while (this.at < source.length && !LITERAL_END.test(source[this.at])) if (source.startsWith("$(", this.at)) {
397
+ let depth = 0;
398
+ this.at++;
399
+ do {
400
+ if (source[this.at] === "(") depth++;
401
+ else if (source[this.at] === ")") depth--;
402
+ this.at++;
403
+ } while (this.at < source.length && depth > 0);
404
+ } else this.at++;
405
+ if (this.at === start) this.fail("expected a value");
406
+ return source.slice(start, this.at);
407
+ }
408
+ };
409
+ function parseNativeXcodeSyntax(source) {
410
+ return new Reader(source).parseDocument();
347
411
  }
348
412
  //#endregion
349
413
  //#region src/integrations/native-xcode-project.ts
@@ -370,12 +434,12 @@ function object(value) {
370
434
  }
371
435
  function pbxReferences(value) {
372
436
  return Array.isArray(value) ? value.flatMap((entry) => {
373
- const name = pbxString(object(entry)?.value ?? entry);
437
+ const name = pbxString(entry);
374
438
  return name === null ? [] : [name];
375
439
  }) : [];
376
440
  }
377
441
  function readNativeXcodeModel(path) {
378
- const project = object(object(parseNativeXcodeSyntax(readFileSync(join(path, "project.pbxproj"), "utf8")))?.project);
442
+ const project = object(parseNativeXcodeSyntax(readFileSync(join(path, "project.pbxproj"), "utf8")));
379
443
  const objects = /* @__PURE__ */ new Map();
380
444
  const collect = (value) => {
381
445
  for (const [id, entry] of Object.entries(object(value) ?? {})) {
@@ -515,7 +579,6 @@ function applicationPlatform(project, target, configuration) {
515
579
  Object.assign(settings, path ? configurationPlatforms(path) : UNKNOWN_PLATFORM_SETTINGS);
516
580
  }
517
581
  for (const [rawKey, value] of Object.entries(object(config?.buildSettings) ?? {})) {
518
- if (rawKey.endsWith("_comment")) continue;
519
582
  const key = pbxString(rawKey);
520
583
  const name = PLATFORM_KEYS.find((candidate) => key === candidate || key.startsWith(`${candidate}[`));
521
584
  if (!name) continue;
@@ -672,8 +735,8 @@ const nativeXcodeProjectIntegration = {
672
735
  application: problem === null,
673
736
  platforms: () => problem ? [] : ["ios"],
674
737
  validate: (operation) => operation === "ios" ? problem : void 0,
675
- ios: async () => (await import("./native-xcode-ios-DP3cHLwu.mjs")).nativeXcodeIosProject(root),
676
- doctor: async () => (await import("./native-xcode-ios-DP3cHLwu.mjs")).nativeXcodeDoctor(root)
738
+ ios: async () => (await import("./native-xcode-ios-Bbf30Gm0.mjs")).nativeXcodeIosProject(root),
739
+ doctor: async () => (await import("./native-xcode-ios-Bbf30Gm0.mjs")).nativeXcodeDoctor(root)
677
740
  };
678
741
  }
679
742
  };
@@ -878,7 +941,7 @@ function createProjectRegistry(integrations) {
878
941
  //#region src/integrations/projects.ts
879
942
  const expo = {
880
943
  mode: MODE_EXPO,
881
- loadDevServer: async () => (await import("./server-expo-DV43vep4.mjs")).startExpoServer,
944
+ loadDevServer: async () => (await import("./server-expo-Bigriskl.mjs")).startExpoServer,
882
945
  platforms(root) {
883
946
  const appJson = readAppJson(root);
884
947
  const config = appJson?.expo ?? appJson;
@@ -898,7 +961,7 @@ const expo = {
898
961
  };
899
962
  const reactNative = {
900
963
  mode: MODE_BARE,
901
- loadDevServer: async () => (await import("./server-bare-dWjAarki.mjs")).startBareServer,
964
+ loadDevServer: async () => (await import("./server-bare-R2m_gsH8.mjs")).startBareServer,
902
965
  platforms(root, { context, settings }) {
903
966
  if (!declaresAppDependency(readPackageJson(root))) return [];
904
967
  const platforms = [];
@@ -928,9 +991,9 @@ const projectRegistry = createProjectRegistry([
928
991
  ownedRoots: problem === null ? [join(root, "ios"), join(root, "android")] : [],
929
992
  platforms: (resolved) => nativeProjectIntegration(root).platforms(root, resolved),
930
993
  validate: (operation) => operation === "ios" || operation === "android" || operation === "dev-server" ? problem : void 0,
931
- ios: async (settings) => (await import("./react-native-ios-SCTK_CT5.mjs")).reactNativeIosProject(root, settings),
932
- android: async (resolved) => (await import("./react-native-android-chm1DMlA.mjs")).reactNativeAndroidProject(root, resolved),
933
- doctor: async () => (await import("./react-native-doctor-DYXoh-6I.mjs")).reactNativeProjectDoctor(root)
994
+ ios: async (settings) => (await import("./react-native-ios-Dhq_eiYQ.mjs")).reactNativeIosProject(root, settings),
995
+ android: async (resolved) => (await import("./react-native-android-CM1XRDwv.mjs")).reactNativeAndroidProject(root, resolved),
996
+ doctor: async () => (await import("./react-native-doctor-CfRnFfjs.mjs")).reactNativeProjectDoctor(root)
934
997
  };
935
998
  }
936
999
  },
@@ -944,9 +1007,9 @@ const projectRegistry = createProjectRegistry([
944
1007
  application: true,
945
1008
  platforms: ({ settings }) => settingValueAt(settings, "macos.product") && settingValueAt(settings, "macos.infoPlist") ? ["macos"] : [],
946
1009
  validate: (operation) => operation === "macos" ? null : void 0,
947
- macos: async () => (await import("./swiftpm-macos-afeNUExW.mjs")).swiftpmMacosProject(root),
1010
+ macos: async () => (await import("./swiftpm-macos-DRNVJWlb.mjs")).swiftpmMacosProject(root),
948
1011
  doctor: async () => {
949
- const { macosToolchain } = await import("./toolchain-BIupIro1.mjs");
1012
+ const { macosToolchain } = await import("./toolchain-BFkAcstd.mjs");
950
1013
  return {
951
1014
  inspect: () => [],
952
1015
  offloadTargets: ({ options: { host = process.platform, platform } }) => host === "darwin" && platform === void 0 ? async () => [{
@@ -966,7 +1029,7 @@ const projectRegistry = createProjectRegistry([
966
1029
  application: false,
967
1030
  platforms: ({ settings }) => webSettings(settings).url !== null ? ["web"] : [],
968
1031
  validate: (operation) => operation === "web" ? null : void 0,
969
- web: async () => (await import("./browser-web-CzBmhmgs.mjs")).browserWebProject(root)
1032
+ web: async () => (await import("./browser-web-CA-F1GQo.mjs")).browserWebProject(root)
970
1033
  };
971
1034
  }
972
1035
  },
@@ -1,4 +1,5 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
1
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
+ import { n as gitAsync, r as gitQuiet } from "./git-DDfFzkMm.mjs";
2
3
  //#region src/workspace/pull-request.ts
3
4
  const GH_TIMEOUT_MS = 2e4;
4
5
  const GH_ENV = {
@@ -141,10 +142,7 @@ function ghFailure(error, command) {
141
142
  };
142
143
  }
143
144
  function ancestry(cwd) {
144
- const exec = getExecutor();
145
- return (ancestor, descendant) => exec.runFileQuiet("git", [
146
- "-C",
147
- cwd,
145
+ return (ancestor, descendant) => gitQuiet(cwd, [
148
146
  "merge-base",
149
147
  "--is-ancestor",
150
148
  ancestor,
@@ -161,12 +159,7 @@ function parseRemoteRepo(url) {
161
159
  return owner && name ? `${owner.toLowerCase()}/${name.toLowerCase()}` : null;
162
160
  }
163
161
  function localRemoteRepos(cwd) {
164
- const out = getExecutor().runFileQuiet("git", [
165
- "-C",
166
- cwd,
167
- "remote",
168
- "-v"
169
- ]);
162
+ const out = gitQuiet(cwd, ["remote", "-v"]);
170
163
  const repos = /* @__PURE__ */ new Set();
171
164
  for (const line of out ? out.split("\n") : []) {
172
165
  const url = /^\S+\s+(\S+)\s+\((?:fetch|push)\)$/.exec(line)?.[1];
@@ -291,17 +284,11 @@ function describePullRequest(pr) {
291
284
  function worktreePullRequests() {
292
285
  const lookup = pullRequestLookups();
293
286
  return async (worktrees) => {
294
- const exec = getExecutor();
295
287
  const repos = /* @__PURE__ */ new Map();
296
288
  for (const { path, branch, repository } of worktrees) {
297
289
  let head;
298
290
  try {
299
- head = (await exec.runFileAsync("git", [
300
- "-C",
301
- path,
302
- "rev-parse",
303
- "HEAD"
304
- ], { timeoutMs: 5e3 })).trim();
291
+ head = (await gitAsync(path, ["rev-parse", "HEAD"], { timeoutMs: 5e3 })).trim();
305
292
  } catch {
306
293
  continue;
307
294
  }
@@ -1,2 +1,2 @@
1
- import { a as pullRequestLookup, c as worktreePullRequests, i as parseRemoteRepo, n as describePullRequest, o as pullRequestLookups, r as endedPullRequest, s as selectPullRequest, t as checkCounts } from "./pull-request-vOhLNmIb.mjs";
1
+ import { a as pullRequestLookup, c as worktreePullRequests, i as parseRemoteRepo, n as describePullRequest, o as pullRequestLookups, r as endedPullRequest, s as selectPullRequest, t as checkCounts } from "./pull-request-CQ8sPbZa.mjs";
2
2
  export { checkCounts, describePullRequest, endedPullRequest, parseRemoteRepo, pullRequestLookup, pullRequestLookups, selectPullRequest, worktreePullRequests };
@@ -1,28 +1,28 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { W as validateDeviceSlot, p as getProject, z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
3
- import { Ft as removeTemporaryEntry, L as publicUrlSetting, Pt as makeTemporaryDirectory, U as resolveAndroidLayout, V as remoteEasFallbackSetting, Z as settingOriginScope, et as settingsLayers, m as defaultAndroidLayout, tt as tunnelModeSetting, z as realpathInside } from "./settings-Bbztm4oV.mjs";
4
- import { B as captureAssetManifest, D as fingerprintProject, E as fingerprintDiffRecord, F as storedAssetManifest, H as readAssetManifest, L as untrackedMissLine, M as refingerprintAfterMutation, N as resolveBuild, O as inputsChangedDuringBuild, P as storeBuild, R as untrackedNativeFiles, S as configInputsChanged, T as filesystemBuildCapability, V as compareAssetManifests, b as buildCacheKey, x as changedDuringBuildLine, z as assetDiffReason } from "./device-lease-DHOBXGgS.mjs";
5
- import { r as readWorkspaceState } from "./workspace-state-CSIFuuDa.mjs";
1
+ import { K as validateDeviceSlot, V as deviceSlotPlatforms, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
+ import { Ft as makeTemporaryDirectory, It as removeTemporaryEntry, L as publicUrlSetting, U as resolveAndroidLayout, V as remoteEasFallbackSetting, Z as settingOriginScope, et as settingsLayers, m as defaultAndroidLayout, tt as tunnelModeSetting, z as realpathInside } from "./settings-B717odTD.mjs";
4
+ import { B as captureAssetManifest, D as fingerprintProject, E as fingerprintDiffRecord, F as storedAssetManifest, H as readAssetManifest, L as untrackedMissLine, M as refingerprintAfterMutation, N as resolveBuild, O as inputsChangedDuringBuild, P as storeBuild, R as untrackedNativeFiles, S as configInputsChanged, T as filesystemBuildCapability, V as compareAssetManifests, b as buildCacheKey, x as changedDuringBuildLine, z as assetDiffReason } from "./device-lease-BX1sJQ2E.mjs";
5
+ import { r as readWorkspaceState } from "./workspace-state-DJt_MMvf.mjs";
6
6
  import { r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
7
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BjPN99ZB.mjs";
8
- import { _ as detectIsExpo } from "./project-B8_duAzW.mjs";
9
- import { A as listAvds, B as ownedAvdSystemImage, D as hostSystemImageArch, I as ownedAvdDirectory, T as findBuildTool, W as pickDefaultSystemImage, j as listInstalledSystemImages, l as androidSystemImageAbi, r as androidBuildToolName } from "./android-BsYNR81W.mjs";
10
- import { It as statsProjectKey } from "./budget-BONq9vXY.mjs";
11
- import { t as cleanLine } from "./server-expo-CsYu2aKL.mjs";
12
- import { c as loadProjectProvider, i as checkEasAuth, p as resolveRemote } from "./remote-cache-Bsts6f6Y.mjs";
13
- import { h as detectAppIds, m as detectAndroidPackage } from "./start-CdvcTaXr.mjs";
14
- import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-BPAzZS0r.mjs";
15
- import { o as resolveCcache } from "./ccache-CjHQ5F8g.mjs";
16
- import { M as startBuildHeartbeat, P as tailLines, n as androidToolchain, t as androidRequirements, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-DqyDXs30.mjs";
17
- import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-CnE_SIjt.mjs";
18
- import { i as AndroidRecipeRefusal, r as resolveAndroidRunPlan } from "./plan-BDk2AeY_.mjs";
19
- import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-oAw6gQeW.mjs";
20
- import { n as planFlagRefusal, o as checkEasFallback, r as planPayload, t as planCachedBuild } from "./build-plan-CP0tckNU.mjs";
21
- import { i as planEasDevelopmentBuild } from "./eas-build-Dw_ec2Km.mjs";
22
- import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-DxH0THLP.mjs";
23
- import { i as staleNativeDirRefusal, n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-Bw44QxVh.mjs";
24
- import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-C8icNYIY.mjs";
25
- import { t as planHostedDevice } from "./plan-placement-D_YYlE6N.mjs";
7
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BTy8hZ0F.mjs";
8
+ import { _ as detectIsExpo } from "./project-_phNIJfs.mjs";
9
+ import { A as listAvds, B as ownedAvdSystemImage, D as hostSystemImageArch, I as ownedAvdDirectory, T as findBuildTool, W as pickDefaultSystemImage, j as listInstalledSystemImages, l as androidSystemImageAbi, r as androidBuildToolName } from "./android-Mz_Inn3w.mjs";
10
+ import { It as statsProjectKey } from "./budget-f7516Zk0.mjs";
11
+ import { t as cleanLine } from "./server-expo-DsguMGUF.mjs";
12
+ import { c as loadProjectProvider, i as checkEasAuth, p as resolveRemote } from "./remote-cache-OyOyVIS3.mjs";
13
+ import { h as detectAppIds, m as detectAndroidPackage } from "./start-BWqzODpb.mjs";
14
+ import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-mKzZ4VvN.mjs";
15
+ import { o as resolveCcache } from "./ccache-zdKiYQ3E.mjs";
16
+ import { M as startBuildHeartbeat, P as tailLines, n as androidToolchain, t as androidRequirements, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-DxSsNssu.mjs";
17
+ import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-DMTqj3Hm.mjs";
18
+ import { i as AndroidRecipeRefusal, r as resolveAndroidRunPlan } from "./plan-C4TjdPsR.mjs";
19
+ import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-CtCccJtb.mjs";
20
+ import { n as planFlagRefusal, o as checkEasFallback, r as planPayload, t as planCachedBuild } from "./build-plan-B7SZsc2N.mjs";
21
+ import { i as planEasDevelopmentBuild } from "./eas-build-JyfqyHfC.mjs";
22
+ import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-F4sOqAhB.mjs";
23
+ import { i as staleNativeDirRefusal, n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-DYbucPXy.mjs";
24
+ import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-Bb3nsS07.mjs";
25
+ import { t as planHostedDevice } from "./plan-placement-V0TdzYXp.mjs";
26
26
  import { constants, copyFileSync, existsSync, mkdirSync, readFileSync, renameSync } from "node:fs";
27
27
  import { basename, dirname, isAbsolute, join, relative } from "node:path";
28
28
  import { loadCacheProvider } from "@stim-cli/cache";
@@ -299,7 +299,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
299
299
  e.runFile(hermesc, androidHermescArgs({
300
300
  bundle: bundleOutput,
301
301
  out: hbc
302
- }));
302
+ }), { timeoutMs: "unbounded" });
303
303
  renameSync(hbc, bundleOutput);
304
304
  hermes = true;
305
305
  } catch (err) {
@@ -336,7 +336,10 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
336
336
  "--file",
337
337
  work,
338
338
  `assets/${UPDATES_MANIFEST_NAME}`
339
- ], { cwd: stage });
339
+ ], {
340
+ cwd: stage,
341
+ timeoutMs: "unbounded"
342
+ });
340
343
  if (exists(updatesManifest)) refreshUpdatesManifestFile(updatesManifest, now());
341
344
  } catch (err) {
342
345
  return fail("updates", `could not refresh the expo-updates manifest from ${work}: ${describe(err)}`);
@@ -350,7 +353,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
350
353
  "-C",
351
354
  stage,
352
355
  "assets"
353
- ]);
356
+ ], { timeoutMs: "unbounded" });
354
357
  } catch (err) {
355
358
  return fail("zip", `${jar} --update ${work} failed: ${describe(err)}`);
356
359
  }
@@ -361,7 +364,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
361
364
  buildToolsMajor: tools.major,
362
365
  input: work,
363
366
  output: final
364
- }));
367
+ }), { timeoutMs: "unbounded" });
365
368
  } catch (err) {
366
369
  return fail("zipalign", `zipalign failed on ${work}: ${describe(err)}`);
367
370
  }
@@ -374,7 +377,8 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
374
377
  e.runFile(signer.path, apksignerArgs({
375
378
  keystore,
376
379
  apkPath: final
377
- }), keystore.password === null ? void 0 : {
380
+ }), keystore.password === null ? { timeoutMs: "unbounded" } : {
381
+ timeoutMs: "unbounded",
378
382
  env: { [KEYSTORE_PASSWORD_ENV]: keystore.password },
379
383
  redact: [keystore.password]
380
384
  });
@@ -403,7 +407,7 @@ function copyApk(e, from, to, platform) {
403
407
  "-c",
404
408
  from,
405
409
  to
406
- ]);
410
+ ], { timeoutMs: "unbounded" });
407
411
  return;
408
412
  } catch {}
409
413
  copyFileSync(from, to, constants.COPYFILE_FICLONE);
@@ -1,10 +1,10 @@
1
- import { r as register } from "./cache-manifest-qA3dT2x2.mjs";
2
- import { g as sharedCompilationCache } from "./workspace-state-CSIFuuDa.mjs";
3
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
4
- import { S as resolvePackageJson } from "./project-B8_duAzW.mjs";
1
+ import { r as register } from "./cache-manifest-XH-fvDUj.mjs";
2
+ import { g as sharedCompilationCache } from "./workspace-state-DJt_MMvf.mjs";
3
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
4
+ import { S as resolvePackageJson } from "./project-_phNIJfs.mjs";
5
5
  import { p as resolveOptimizations } from "./errors-DzkMYh8Q.mjs";
6
- import { a as buildGradle, i as assembleTaskFor, n as BUILD_ERROR, o as parseProductFlavors, s as variantNameOf, t as ASSEMBLE_TASK } from "./gradle-C2OEKCCI.mjs";
7
- import { C as compilationCacheSettings, N as swiftPrefixMappingSupported, O as pickXcodeProject, T as detectXcodeMajor, b as SWIFT_PREFIX_MAPPING_MIN_SWIFT, w as detectSwiftVersion, x as buildXcode } from "./toolchain-DqyDXs30.mjs";
6
+ import { a as buildGradle, i as assembleTaskFor, n as BUILD_ERROR, o as parseProductFlavors, s as variantNameOf, t as ASSEMBLE_TASK } from "./gradle-DSrXb6lG.mjs";
7
+ import { C as compilationCacheSettings, N as swiftPrefixMappingSupported, O as pickXcodeProject, T as detectXcodeMajor, b as SWIFT_PREFIX_MAPPING_MIN_SWIFT, w as detectSwiftVersion, x as buildXcode } from "./toolchain-DxSsNssu.mjs";
8
8
  import { existsSync, readFileSync, readdirSync } from "node:fs";
9
9
  import { join, relative } from "node:path";
10
10
  import chalk from "chalk";
@@ -1,8 +1,8 @@
1
- import { G as resolveIosProjectDir, U as resolveAndroidLayout } from "./settings-Bbztm4oV.mjs";
2
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
3
- import { _ as detectIsExpo } from "./project-B8_duAzW.mjs";
4
- import { I as bundlerPin, i as iosToolchainAsync, n as androidToolchain, t as androidRequirements } from "./toolchain-DqyDXs30.mjs";
5
- import { a as repairCxxLauncherState, n as detectLinkedLibraryGitMetadata, r as reactNativeDoctorFindings, t as detectFingerprintParity } from "./doctor-DPAqhVCK.mjs";
1
+ import { G as resolveIosProjectDir, U as resolveAndroidLayout } from "./settings-B717odTD.mjs";
2
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
3
+ import { _ as detectIsExpo } from "./project-_phNIJfs.mjs";
4
+ import { I as bundlerPin, i as iosToolchainAsync, n as androidToolchain, t as androidRequirements } from "./toolchain-DxSsNssu.mjs";
5
+ import { a as repairCxxLauncherState, n as detectLinkedLibraryGitMetadata, r as reactNativeDoctorFindings, t as detectFingerprintParity } from "./doctor-kfMBnUw6.mjs";
6
6
  import { existsSync } from "node:fs";
7
7
  //#region src/integrations/react-native-doctor.ts
8
8
  function reactNativeProjectDoctor(root) {
@@ -1,18 +1,18 @@
1
- import { G as resolveIosProjectDir, H as remoteIosSetting, L as publicUrlSetting, Q as settingShapeErrors, V as remoteEasFallbackSetting, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, tt as tunnelModeSetting } from "./settings-Bbztm4oV.mjs";
2
- import { E as fingerprintDiffRecord, L as untrackedMissLine, M as refingerprintAfterMutation, O as inputsChangedDuringBuild, S as configInputsChanged, T as filesystemBuildCapability, b as buildCacheKey, x as changedDuringBuildLine } from "./device-lease-DHOBXGgS.mjs";
3
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BjPN99ZB.mjs";
4
- import { It as statsProjectKey } from "./budget-BONq9vXY.mjs";
1
+ import { G as resolveIosProjectDir, H as remoteIosSetting, L as publicUrlSetting, Q as settingShapeErrors, V as remoteEasFallbackSetting, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, tt as tunnelModeSetting } from "./settings-B717odTD.mjs";
2
+ import { E as fingerprintDiffRecord, L as untrackedMissLine, M as refingerprintAfterMutation, O as inputsChangedDuringBuild, S as configInputsChanged, T as filesystemBuildCapability, b as buildCacheKey, x as changedDuringBuildLine } from "./device-lease-BX1sJQ2E.mjs";
3
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BTy8hZ0F.mjs";
4
+ import { It as statsProjectKey } from "./budget-f7516Zk0.mjs";
5
5
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DzkMYh8Q.mjs";
6
- import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-BPAzZS0r.mjs";
7
- import { I as bundlerPin, r as iosToolchain } from "./toolchain-DqyDXs30.mjs";
8
- import { r as planPayload, t as planCachedBuild } from "./build-plan-CP0tckNU.mjs";
9
- import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-Dw_ec2Km.mjs";
10
- import { i as staleNativeDirRefusal, n as recordPrebuild } from "./prebuild-Bw44QxVh.mjs";
11
- import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-DCco5fut.mjs";
12
- import { t as IosRecipeRefusal } from "./ios-project-B9drt_aY.mjs";
13
- import { i as hostedIosSelectors } from "./remote-BU9UyhCJ.mjs";
14
- import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-YrbqaIFj.mjs";
15
- import { t as planHostedDevice } from "./plan-placement-D_YYlE6N.mjs";
6
+ import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-mKzZ4VvN.mjs";
7
+ import { I as bundlerPin, r as iosToolchain } from "./toolchain-DxSsNssu.mjs";
8
+ import { r as planPayload, t as planCachedBuild } from "./build-plan-B7SZsc2N.mjs";
9
+ import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-JyfqyHfC.mjs";
10
+ import { i as staleNativeDirRefusal, n as recordPrebuild } from "./prebuild-DYbucPXy.mjs";
11
+ import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CwjbFs9H.mjs";
12
+ import { t as IosRecipeRefusal } from "./ios-project-K9hY_Jab.mjs";
13
+ import { i as hostedIosSelectors } from "./remote-BiR6aYjy.mjs";
14
+ import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-C3qJ6Agb.mjs";
15
+ import { t as planHostedDevice } from "./plan-placement-V0TdzYXp.mjs";
16
16
  import { rmSync } from "node:fs";
17
17
  import chalk from "chalk";
18
18
  //#region src/integrations/react-native-ios-plan.ts
@@ -1,4 +1,4 @@
1
- import { ht as gitCommonDirOnDisk } from "./settings-Bbztm4oV.mjs";
1
+ import { gt as gitCommonDirOnDisk } from "./settings-B717odTD.mjs";
2
2
  import { existsSync, rmSync } from "node:fs";
3
3
  import { loadConfig, recordingEnabled, workspaceRecordingsDir } from "@stim-cli/core/state";
4
4
  //#region src/workspace/recordings.ts
@@ -1,17 +1,17 @@
1
- import { B as parseDeviceSlotKey, p as getProject, z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
2
- import { i as recordWorkspaceUse, r as readWorkspaceState$1 } from "./workspace-state-CSIFuuDa.mjs";
3
- import { f as refuseNoProject, l as phaseLine } from "./command-output-BjPN99ZB.mjs";
4
- import { F as readWorkspaceLaunches, n as findCommandWorkspace } from "./project-B8_duAzW.mjs";
5
- import { J as resolveOwnedAvdSerial } from "./android-BsYNR81W.mjs";
6
- import { u as resolveProjectMetro } from "./metro-D_j9sN-B.mjs";
7
- import { o as readWebRecord, r as cdpEndpoint, u as webFacts } from "./state-DI84A-uu.mjs";
8
- import { E as resolveOwnedIosSim } from "./ios-CXLIUxXJ.mjs";
9
- import { p as ensureMetroReverse, s as androidAppProcess, v as iosAppProcess } from "./app-install-0LgaQRT7.mjs";
10
- import { u as probeHostedSession } from "./hosted-client-Io01s5By.mjs";
11
- import { r as readHostedNative } from "./ios-state-CjrL2qv-.mjs";
12
- import { r as reopenHostedAndroidMetro } from "./hosted-android-DQ-Agsd8.mjs";
13
- import { n as nativeRunCommand } from "./slot-launch-B9hn96wd.mjs";
14
- import { n as sendToOwnedPage, t as liveWebRecord } from "./page-Bv9s2KwY.mjs";
1
+ import { H as parseDeviceSlotKey, V as deviceSlotPlatforms, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { i as recordWorkspaceUse, r as readWorkspaceState$1 } from "./workspace-state-DJt_MMvf.mjs";
3
+ import { f as refuseNoProject, l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
4
+ import { F as readWorkspaceLaunches, n as findCommandWorkspace } from "./project-_phNIJfs.mjs";
5
+ import { J as resolveOwnedAvdSerial } from "./android-Mz_Inn3w.mjs";
6
+ import { u as resolveProjectMetro } from "./metro-DnCEjCxs.mjs";
7
+ import { o as readWebRecord, r as cdpEndpoint, u as webFacts } from "./state-D1Icyjlu.mjs";
8
+ import { E as resolveOwnedIosSim } from "./ios-RkW4pnQf.mjs";
9
+ import { m as ensureMetroReverse, s as androidAppProcess, y as iosAppProcess } from "./app-install-BIKtMfPq.mjs";
10
+ import { d as probeHostedSession } from "./hosted-client-ZEKpS9vw.mjs";
11
+ import { r as readHostedNative } from "./ios-state-CBLe1xYw.mjs";
12
+ import { r as reopenHostedAndroidMetro } from "./hosted-android-C3MHGld1.mjs";
13
+ import { n as nativeRunCommand } from "./slot-launch-DPt0m9Nd.mjs";
14
+ import { n as sendToOwnedPage, t as liveWebRecord } from "./page-DRHy329N.mjs";
15
15
  import { hostedAndroidDeviceName, hostedNativeRecords } from "@stim-cli/core/state";
16
16
  import chalk from "chalk";
17
17
  import { WebSocket } from "ws";
@@ -193,12 +193,12 @@ async function reloadBrowser(browser, metroPort, d) {
193
193
  };
194
194
  }
195
195
  function processFailure(platform, record, d, slot = "default") {
196
- const process = platform === "ios" ? d.iosProcess(record.deviceId, record.appId) : d.androidProcess(record.deviceId, record.appId);
197
- if (process === void 0) {
196
+ const { state } = platform === "ios" ? d.iosProcess(record.deviceId, record.appId) : d.androidProcess(record.deviceId, record.appId);
197
+ if (state === "unknown") {
198
198
  const probe = platform === "ios" ? `xcrun simctl spawn ${record.deviceId} launchctl list` : `adb -s ${record.deviceId} shell pidof ${record.appId}`;
199
199
  return failure("STIM_RELOAD_PROBE_FAILED", `Stim could not determine whether ${record.appId} is running on ${record.deviceId}.`, `Run \`${probe}\` and retry when the device tool responds.`);
200
200
  }
201
- if (process === null) return failure("STIM_RELOAD_STOPPED", `${record.appId} is not running on ${record.deviceId}.`, `Run \`${nativeRunCommand(platform, slot)}\` to launch it.`);
201
+ if (state === "stopped") return failure("STIM_RELOAD_STOPPED", `${record.appId} is not running on ${record.deviceId}.`, `Run \`${nativeRunCommand(platform, slot)}\` to launch it.`);
202
202
  return null;
203
203
  }
204
204
  function inspectTarget(platform, record, project, d, slot = "default") {
@@ -1,10 +1,10 @@
1
- import { z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
2
- import { F as parseIosRemote, H as remoteIosSetting, L as publicUrlSetting, V as remoteEasFallbackSetting, tt as tunnelModeSetting } from "./settings-Bbztm4oV.mjs";
3
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
4
- import { n as devicePlacementRecord } from "./placement-log-reFbjqEr.mjs";
5
- import { c as devicePlacementLine } from "./build-plan-CP0tckNU.mjs";
6
- import "./device-remote-Bmg42063.mjs";
7
- import { b as resolveSimulatorAppFlag } from "./support-DCco5fut.mjs";
1
+ import { V as deviceSlotPlatforms } from "./config-BYDxlMY3.mjs";
2
+ import { F as parseIosRemote, H as remoteIosSetting, L as publicUrlSetting, V as remoteEasFallbackSetting, tt as tunnelModeSetting } from "./settings-B717odTD.mjs";
3
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
4
+ import { n as devicePlacementRecord } from "./placement-log-MOfPVgaM.mjs";
5
+ import { c as devicePlacementLine } from "./build-plan-B7SZsc2N.mjs";
6
+ import "./device-remote-xRT0Vmo9.mjs";
7
+ import { b as resolveSimulatorAppFlag } from "./support-CwjbFs9H.mjs";
8
8
  import chalk from "chalk";
9
9
  //#region src/commands/ios/remote.ts
10
10
  function resolveIosRemote({ opts, settings, physical, recorded }) {
@@ -1,9 +1,9 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { w as workspaceLogsDir } from "./workspace-state-CSIFuuDa.mjs";
1
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
+ import { w as workspaceLogsDir } from "./workspace-state-DJt_MMvf.mjs";
3
3
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
4
- import { S as resolvePackageJson } from "./project-B8_duAzW.mjs";
4
+ import { S as resolvePackageJson } from "./project-_phNIJfs.mjs";
5
5
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
6
- import { n as expoBinFromPackage, r as expoBinPath, s as findBinUpward } from "./server-expo-CsYu2aKL.mjs";
6
+ import { n as expoBinFromPackage, r as expoBinPath, s as findBinUpward } from "./server-expo-DsguMGUF.mjs";
7
7
  import { createRequire } from "node:module";
8
8
  import { existsSync, readFileSync } from "node:fs";
9
9
  import { join } from "node:path";
@@ -1,11 +1,11 @@
1
- import { y as workspaceAgentDeviceDir } from "./workspace-state-CSIFuuDa.mjs";
2
- import { i as formatDuration, l as phaseLine } from "./command-output-BjPN99ZB.mjs";
3
- import { i as workspaceLinkLine } from "./stim-desktop-8GQX2OV8.mjs";
4
- import { Dt as recordFinishedBuild } from "./budget-BONq9vXY.mjs";
5
- import { a as easAuthNote, n as UPLOAD_TIMEOUT_MS, r as cacheLevel, s as isEasAuthFailureText } from "./remote-cache-Bsts6f6Y.mjs";
6
- import "./launch-verify-BzRdbuO1.mjs";
7
- import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-CjHQ5F8g.mjs";
8
- import { a as PLATFORM } from "./support-CnE_SIjt.mjs";
1
+ import { y as workspaceAgentDeviceDir } from "./workspace-state-DJt_MMvf.mjs";
2
+ import { i as formatDuration, l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
3
+ import { i as workspaceLinkLine } from "./stim-desktop-BzBN2Em2.mjs";
4
+ import { Dt as recordFinishedBuild } from "./budget-f7516Zk0.mjs";
5
+ import { a as easAuthNote, n as UPLOAD_TIMEOUT_MS, r as cacheLevel, s as isEasAuthFailureText } from "./remote-cache-OyOyVIS3.mjs";
6
+ import "./launch-verify-B6Q8hZP-.mjs";
7
+ import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-zdKiYQ3E.mjs";
8
+ import { a as PLATFORM } from "./support-DMTqj3Hm.mjs";
9
9
  import { buildDiagnostics } from "@stim-cli/core/state";
10
10
  import chalk from "chalk";
11
11
  //#region src/commands/android/result.ts
@@ -1,7 +1,7 @@
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";
1
+ import { j as ownership_claim_exports, k as process_identity_exports } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
3
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
4
- import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-Boo0IMJq.mjs";
4
+ import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-CG_OFoaA.mjs";
5
5
  import { readMacosRecord } from "@stim-cli/core/state";
6
6
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
7
7
  import { StringDecoder } from "node:string_decoder";
@@ -1,6 +1,6 @@
1
- import { i as __require, r as __commonJSMin } from "./process-identity-Biv3arCO.mjs";
2
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
3
- import { K as resolveProjectSettings } from "./settings-Bbztm4oV.mjs";
1
+ import { J as __require, q as __commonJSMin } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
+ import { K as resolveProjectSettings } from "./settings-B717odTD.mjs";
4
4
  import { c as registerMetroStore, f as resolveMetroSharedCache, n as supervisorError, r as appendCacheStore, s as metroStoreRoot } from "./errors-DzkMYh8Q.mjs";
5
5
  import { createRequire } from "node:module";
6
6
  import { isAbsolute, join, relative, sep } from "node:path";