stim 1.4.0 → 1.6.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 (59) hide show
  1. package/README.md +3 -3
  2. package/dist/{android-BkM4qTaN.mjs → android-BkYmndPp.mjs} +5 -5
  3. package/dist/{android-BTR1KTMP.mjs → android-DLJB8ljN.mjs} +22 -22
  4. package/dist/{android-cas-BjLRZyks.mjs → android-cas-CrzI_Zha.mjs} +5 -5
  5. package/dist/{build-slots-D6sDzOe-.mjs → build-slots-CuPszJDu.mjs} +1 -1
  6. package/dist/{cache-manifest-D02TpYjA.mjs → cache-manifest-uoOKhgUD.mjs} +1 -1
  7. package/dist/cache-manifest.mjs +1 -1
  8. package/dist/cli.mjs +14 -14
  9. package/dist/collector-run.mjs +3 -3
  10. package/dist/{config-6vdGngKa.mjs → config-DMP7L7H6.mjs} +1 -1
  11. package/dist/{dependency-state-BMirHEPD.mjs → dependency-state-CTL8A9p3.mjs} +1 -1
  12. package/dist/{deps-Ck4wuTwa.mjs → deps-C1zGnr61.mjs} +1 -1
  13. package/dist/{dev-client-Cd0v7iZk.mjs → dev-client-BaTXAAnC.mjs} +9 -9
  14. package/dist/{device-CMDFzx7C.mjs → device-XY_5eGdN.mjs} +8 -8
  15. package/dist/{device-lease-DDJr85OK.mjs → device-lease-DBW-IL4p.mjs} +3 -3
  16. package/dist/{device-pool-DJvbIBGW.mjs → device-pool-C0s_83Og.mjs} +2 -2
  17. package/dist/{device-remote-CMfHhoc8.mjs → device-remote-D9wN3CdE.mjs} +6 -6
  18. package/dist/{device-CKXLnRRb.mjs → device-xoQxw8hR.mjs} +5 -5
  19. package/dist/{doctor-B_mfURdt.mjs → doctor-BRO8UKlK.mjs} +25 -168
  20. package/dist/{error-diagnostics-_VmkqRZo.mjs → error-diagnostics-B5STzxqN.mjs} +6 -6
  21. package/dist/{gc-0AyxmECv.mjs → gc-C-6grAQI.mjs} +12 -12
  22. package/dist/{guide-CGxdmQ0K.mjs → guide-CYtd7xbA.mjs} +49 -21
  23. package/dist/guide-status-BF6RsJJp.mjs +271 -0
  24. package/dist/{ios-CtmGLx3X.mjs → ios-Ccm6c8Hj.mjs} +21 -21
  25. package/dist/{logs-BF3qPA7w.mjs → logs-D4Poojxy.mjs} +4 -4
  26. package/dist/{metro-DFLmaVz8.mjs → metro-ato6ef3J.mjs} +3 -3
  27. package/dist/{named-ports-BO7Zpjp0.mjs → named-ports-DH9SXd0f.mjs} +3 -3
  28. package/dist/{ownership-BvSpZVBk.mjs → ownership-CD_XnpDu.mjs} +3 -3
  29. package/dist/{ownership-C08Yzrp7.mjs → ownership-CVY9cqCr.mjs} +3 -3
  30. package/dist/{ports-BiKqP92J.mjs → ports-A6uTJSPj.mjs} +3 -3
  31. package/dist/{ports-ClqG8GPt.mjs → ports-BZprTJRa.mjs} +1 -1
  32. package/dist/{project-CBFCwnN5.mjs → project-B_SDt4ip.mjs} +2 -2
  33. package/dist/{reclaim-DpDVo-AP.mjs → reclaim-WXTbXPX4.mjs} +10 -10
  34. package/dist/{reload-ByTqg6ZI.mjs → reload-xlQvHKfN.mjs} +6 -6
  35. package/dist/{server-bare-Buk-k8tI.mjs → server-bare-CCLb90FS.mjs} +11 -32
  36. package/dist/{server-expo-D4P7iTvf.mjs → server-expo-CX-zkgWl.mjs} +6 -14
  37. package/dist/server-expo-CjeTJ273.mjs +2 -0
  38. package/dist/{settings-DwfltIXQ.mjs → settings-CGHTt5vb.mjs} +7 -4
  39. package/dist/{slot-launch-DeKen9e5.mjs → slot-launch-BYjnljAs.mjs} +3 -3
  40. package/dist/{start-BpKUHcU_.mjs → start-DHYAyGzm.mjs} +16 -20
  41. package/dist/{state-CDbvmZdt.mjs → state-CnWzvCWP.mjs} +2 -2
  42. package/dist/{stats-k5qMjyxo.mjs → stats-DHrO0frH.mjs} +3 -3
  43. package/dist/{stats-C59QLKm2.mjs → stats-Fo9ACIv7.mjs} +1 -1
  44. package/dist/{status-Y2ij3dm6.mjs → status-QeLZb8SM.mjs} +14 -12
  45. package/dist/{stop-vKmmxhea.mjs → stop-CHTaw65F.mjs} +2 -2
  46. package/dist/{stop-_P2OQwmZ.mjs → stop-DsdOx9Hj.mjs} +11 -11
  47. package/dist/supervisor-run.d.mts +4 -1
  48. package/dist/supervisor-run.mjs +18 -10
  49. package/dist/{teardown-KsPpvldq.mjs → teardown-sm1FwF6V.mjs} +5 -5
  50. package/dist/{workspace-process-lock-UEIrvZMJ.mjs → workspace-process-lock-Bz19_R9R.mjs} +1 -1
  51. package/dist/{workspace-state-Do1e2mOH.mjs → workspace-state-WVwWw_hB.mjs} +1 -1
  52. package/dist/{worktree-BvcAIMdJ.mjs → worktree-CCNPg_f0.mjs} +25 -20
  53. package/dist/{worktree-DWNx4tUg.mjs → worktree-DJnBbQZ9.mjs} +49 -22
  54. package/dist/{xcode-D9tVItl-.mjs → xcode-DUF7jrXj.mjs} +89 -14
  55. package/package.json +5 -5
  56. package/shim/expo-metro-config.cjs +11 -17
  57. package/dist/server-expo-Dho5Raiw.mjs +0 -2
  58. package/shim/metro-cache-generation.cjs +0 -20
  59. package/shim/metro-cache-generation.d.cts +0 -5
@@ -1,13 +1,13 @@
1
- import { E as ownership_claim_exports, L as projectDeviceSlots, T as acquireAvdClaim, f as getProject, v as removeProject, w as process_identity_exports } from "./config-6vdGngKa.mjs";
2
- import { h as workspaceDir, r as readWorkspaceState } from "./workspace-state-Do1e2mOH.mjs";
3
- import { a as clearRemoteSession, i as clearManagedMetroTunnel, s as readMetroTunnel, u as readRemoteSessionId } from "./state-CDbvmZdt.mjs";
4
- import { i as resolveProjectMetro, n as killMetroTree, r as pidExists } from "./metro-DFLmaVz8.mjs";
5
- import { n as verifyCollectorOwnership } from "./ownership-BvSpZVBk.mjs";
6
- import { S as resolveEasCliBin, l as parkedMaxSetting, n as teardownOwnedIosSim, t as teardownOwnedAvd } from "./teardown-KsPpvldq.mjs";
7
- import { l as releaseWorkspaceLeases } from "./device-lease-DDJr85OK.mjs";
8
- import { i as endRecordedSession } from "./device-remote-CMfHhoc8.mjs";
9
- import { t as clearNamedPorts } from "./named-ports-BO7Zpjp0.mjs";
10
- import { r as stopTunnel, t as resolveSupervisorTarget } from "./ownership-C08Yzrp7.mjs";
1
+ import { E as ownership_claim_exports, L as projectDeviceSlots, T as acquireAvdClaim, f as getProject, v as removeProject, w as process_identity_exports } from "./config-DMP7L7H6.mjs";
2
+ import { h as workspaceDir, r as readWorkspaceState } from "./workspace-state-WVwWw_hB.mjs";
3
+ import { a as clearRemoteSession, i as clearManagedMetroTunnel, s as readMetroTunnel, u as readRemoteSessionId } from "./state-CnWzvCWP.mjs";
4
+ import { i as resolveProjectMetro, n as killMetroTree, r as pidExists } from "./metro-ato6ef3J.mjs";
5
+ import { n as verifyCollectorOwnership } from "./ownership-CD_XnpDu.mjs";
6
+ import { S as resolveEasCliBin, l as parkedMaxSetting, n as teardownOwnedIosSim, t as teardownOwnedAvd } from "./teardown-sm1FwF6V.mjs";
7
+ import { l as releaseWorkspaceLeases } from "./device-lease-DBW-IL4p.mjs";
8
+ import { i as endRecordedSession } from "./device-remote-D9wN3CdE.mjs";
9
+ import { t as clearNamedPorts } from "./named-ports-DH9SXd0f.mjs";
10
+ import { r as stopTunnel, t as resolveSupervisorTarget } from "./ownership-CVY9cqCr.mjs";
11
11
  import { existsSync, rmSync } from "node:fs";
12
12
  //#region src/reclaim.ts
13
13
  async function reapCollectors(root, { verify = verifyCollectorOwnership, collectors }) {
@@ -1,12 +1,12 @@
1
- import { F as deviceSlotPlatforms, I as parseDeviceSlotKey, f as getProject } from "./config-6vdGngKa.mjs";
2
- import { a as findProjectRoot } from "./project-CBFCwnN5.mjs";
3
- import { d as readWorkspaceLaunches } from "./state-CDbvmZdt.mjs";
4
- import { i as resolveProjectMetro } from "./metro-DFLmaVz8.mjs";
1
+ import { F as deviceSlotPlatforms, I as parseDeviceSlotKey, f as getProject } from "./config-DMP7L7H6.mjs";
2
+ import { a as findProjectRoot } from "./project-B_SDt4ip.mjs";
3
+ import { d as readWorkspaceLaunches } from "./state-CnWzvCWP.mjs";
4
+ import { i as resolveProjectMetro } from "./metro-ato6ef3J.mjs";
5
5
  import { l as phaseLine } from "./command-output-BuIb_ZOI.mjs";
6
- import { N as resolveOwnedAvdSerial } from "./android-BkM4qTaN.mjs";
6
+ import { N as resolveOwnedAvdSerial } from "./android-BkYmndPp.mjs";
7
7
  import { u as androidAppProcess, y as iosAppProcess } from "./app-install--PAocWvq.mjs";
8
8
  import { x as resolveOwnedIosSim } from "./ios-Deh5js5V.mjs";
9
- import { n as nativeRunCommand } from "./slot-launch-DeKen9e5.mjs";
9
+ import { n as nativeRunCommand } from "./slot-launch-BYjnljAs.mjs";
10
10
  import chalk from "chalk";
11
11
  import { WebSocket } from "ws";
12
12
  //#region src/engine/reload.ts
@@ -1,12 +1,12 @@
1
1
  import { i as __require, t as __commonJSMin } from "./rolldown-runtime-BsOwBuO_.mjs";
2
- import { r as readWorkspaceState } from "./workspace-state-Do1e2mOH.mjs";
3
2
  import { n as supervisorError } from "./errors-B6W7FkxQ.mjs";
4
- import { C as projectMetroSharedCache } from "./settings-DwfltIXQ.mjs";
3
+ import { C as projectMetroSharedCache } from "./settings-CGHTt5vb.mjs";
5
4
  import { a as metroStoreRoot, o as registerMetroStore, t as appendCacheStore } from "./metro-store-CDDZHtPl.mjs";
6
5
  import { createRequire } from "node:module";
7
- import { dirname, isAbsolute, join, relative, sep } from "node:path";
8
- //#region shim/bundle-response.cjs
9
- var require_bundle_response = /* @__PURE__ */ __commonJSMin(((exports, module) => {
6
+ import { isAbsolute, join, relative, sep } from "node:path";
7
+ //#endregion
8
+ //#region src/supervisor/server-bare.ts
9
+ var import_bundle_response = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
10
10
  const { randomUUID } = __require("node:crypto");
11
11
  function bundleResponseMiddleware(write) {
12
12
  return (req, res, next) => {
@@ -52,29 +52,7 @@ var require_bundle_response = /* @__PURE__ */ __commonJSMin(((exports, module) =
52
52
  };
53
53
  }
54
54
  module.exports = { bundleResponseMiddleware };
55
- }));
56
- //#endregion
57
- //#region shim/metro-cache-generation.cjs
58
- var require_metro_cache_generation = /* @__PURE__ */ __commonJSMin(((exports, module) => {
59
- const { createHash } = __require("node:crypto");
60
- const { mkdirSync } = __require("node:fs");
61
- const { join: join$1 } = __require("node:path");
62
- function applyMetroCacheGeneration(config, generation, directory) {
63
- if (!generation) return config;
64
- const fileMapCacheDirectory = join$1(directory, generation);
65
- mkdirSync(fileMapCacheDirectory, { recursive: true });
66
- return {
67
- ...config,
68
- cacheVersion: createHash("sha256").update(JSON.stringify([config.cacheVersion ?? "1.0", generation])).digest("hex"),
69
- fileMapCacheDirectory
70
- };
71
- }
72
- module.exports = { applyMetroCacheGeneration };
73
- }));
74
- //#endregion
75
- //#region src/supervisor/server-bare.ts
76
- var import_bundle_response = require_bundle_response();
77
- var import_metro_cache_generation = require_metro_cache_generation();
55
+ })))();
78
56
  const BARE_PACKAGES = [
79
57
  "metro",
80
58
  "@react-native/dev-middleware",
@@ -266,13 +244,14 @@ function closeHttpServer(httpServer, timeoutMs) {
266
244
  }
267
245
  });
268
246
  }
269
- async function startBareServer({ root, port, logsDir, writer = null, deps = null, reporterFactory = void 0, cacheStore = void 0, fileStore = void 0, closeTimeoutMs = 5e3 }) {
247
+ async function startBareServer({ root, port, logsDir, writer = null, deps = null, reporterFactory = void 0, cacheStore = void 0, fileStore = void 0, closeTimeoutMs = 5e3, resetCache = false }) {
270
248
  const { metro, devMiddleware, serverApi } = deps || resolveBareDeps(root);
271
249
  const makeReporter = reporterFactory === void 0 ? loadNdjsonReporter(root) : reporterFactory;
272
- const config = (0, import_metro_cache_generation.applyMetroCacheGeneration)(await metro.loadConfig({
250
+ const config = await metro.loadConfig({
273
251
  cwd: root,
274
- port
275
- }), readWorkspaceState(root)?.metroCacheGeneration, join(dirname(logsDir), "metro-file-map"));
252
+ port,
253
+ resetCache
254
+ });
276
255
  if (installSharedCacheStore({
277
256
  root,
278
257
  config,
@@ -1,10 +1,9 @@
1
1
  import { t as getExecutor } from "./exec-CyylIdq9.mjs";
2
2
  import { r as createNdjsonWriter } from "./ndjson-BZwI1NBv.mjs";
3
- import { r as readWorkspaceState } from "./workspace-state-Do1e2mOH.mjs";
4
- import { l as resolvePackageJson } from "./project-CBFCwnN5.mjs";
3
+ import { l as resolvePackageJson } from "./project-B_SDt4ip.mjs";
5
4
  import { n as supervisorError } from "./errors-B6W7FkxQ.mjs";
6
5
  import { n as stripAnsi, t as createLineReader } from "./process-output-C7IlIzd7.mjs";
7
- import { C as projectMetroSharedCache } from "./settings-DwfltIXQ.mjs";
6
+ import { C as projectMetroSharedCache } from "./settings-CGHTt5vb.mjs";
8
7
  import { a as metroStoreRoot, i as metroStoreConfirmedRoot, n as expoMetroConfigPath, o as registerMetroStore, r as expoMetroStoreEnv } from "./metro-store-CDDZHtPl.mjs";
9
8
  import { accessSync, constants, existsSync, readFileSync } from "node:fs";
10
9
  import { dirname, join, parse } from "node:path";
@@ -193,7 +192,7 @@ function resolveMetroStoreInjection(root, { log, env }) {
193
192
  });
194
193
  return additions;
195
194
  }
196
- async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = null, killTimeoutMs = 5e3, tunnel = false, onTunnelUrl = null }) {
195
+ async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = null, killTimeoutMs = 5e3, tunnel = false, resetCache = false, onTunnelUrl = null }) {
197
196
  const bin = expoBinPath(root);
198
197
  if (!bin) {
199
198
  const refusal = expoBinRefusal(root);
@@ -201,22 +200,17 @@ async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = n
201
200
  }
202
201
  const log = writer || createNdjsonWriter(join(logsDir, "metro.ndjson"));
203
202
  const spawn = spawnFn || ((cmd, args, opts) => getExecutor().spawn(cmd, args, opts));
204
- const args = tunnel ? [
203
+ const args = [
205
204
  "start",
206
205
  "--port",
207
206
  String(port),
208
- "--tunnel"
209
- ] : [
210
- "start",
211
- "--port",
212
- String(port)
207
+ ...tunnel ? ["--tunnel"] : [],
208
+ ...resetCache ? ["--clear"] : []
213
209
  ];
214
210
  const storeEnv = resolveMetroStoreInjection(root, {
215
211
  log,
216
212
  env: process.env
217
213
  });
218
- const generation = readWorkspaceState(root)?.metroCacheGeneration;
219
- if (generation && !storeEnv) throw supervisorError("STIM_BAD_ARG", "The saved Metro cache reset requires the Expo config adapter.", "Use Expo SDK 54 or newer and repair the Stim installation before starting this app.");
220
214
  const child = spawn(bin, args, {
221
215
  cwd: root,
222
216
  stdio: [
@@ -230,8 +224,6 @@ async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = n
230
224
  FORCE_COLOR: "0",
231
225
  ...expoProxyEnv(process.env),
232
226
  ...storeEnv,
233
- STIM_METRO_CACHE_GENERATION: generation ?? "",
234
- STIM_METRO_FILE_MAP: join(dirname(logsDir), "metro-file-map"),
235
227
  ...tunnel ? { EXPO_UNSTABLE_TUNNEL_V2: "1" } : {}
236
228
  }
237
229
  });
@@ -0,0 +1,2 @@
1
+ import { p as startExpoServer } from "./server-expo-CX-zkgWl.mjs";
2
+ export { startExpoServer };
@@ -1,5 +1,5 @@
1
- import { d as getConfigPath, g as loadConfig, m as getRepoSettings, p as getProjectSettings } from "./config-6vdGngKa.mjs";
2
- import { _ as repoRoot, s as gitCommonDir } from "./worktree-DWNx4tUg.mjs";
1
+ import { d as getConfigPath, g as loadConfig, m as getRepoSettings, p as getProjectSettings } from "./config-DMP7L7H6.mjs";
2
+ import { g as repoRoot, s as gitCommonDir } from "./worktree-DJnBbQZ9.mjs";
3
3
  import { createHash } from "node:crypto";
4
4
  import { isAbsolute } from "node:path";
5
5
  import { existsSync, readFileSync, realpathSync, statSync } from "fs";
@@ -29,7 +29,10 @@ function compilerCacheFallbackMessage({ fallback, compilerCache, file = null })
29
29
  return `${fallback.key}${origin ? ` in ${origin}` : ""} ${fallback.reason}. ${backend}`;
30
30
  }
31
31
  function optimizationBuildProfile(platform, options) {
32
- const selected = platform === "ios" ? options.ios : { pch: options.android.pch };
32
+ const selected = platform === "ios" ? {
33
+ ...options.ios,
34
+ swiftCompilationCache: options.ios.swiftCompilationCache ?? false
35
+ } : { pch: options.android.pch };
33
36
  const defaults = platform === "ios" ? {
34
37
  compilationCache: true,
35
38
  swiftCompilationCache: false,
@@ -82,7 +85,7 @@ function resolveOptimizations(settings = {}, env = process.env) {
82
85
  metroWarmup: optimizationBoolean(settings, "metroWarmup"),
83
86
  ios: {
84
87
  compilationCache: optimizationBoolean(settings, "ios.compilationCache"),
85
- swiftCompilationCache: optimizationBoolean(settings, "ios.swiftCompilationCache", false),
88
+ swiftCompilationCache: optimizationValue(settings, "ios.swiftCompilationCache") === void 0 ? null : optimizationBoolean(settings, "ios.swiftCompilationCache"),
86
89
  prefixMapping: optimizationBoolean(settings, "ios.prefixMapping")
87
90
  },
88
91
  android: {
@@ -1,7 +1,7 @@
1
- import { f as getProject } from "./config-6vdGngKa.mjs";
2
- import { r as readWorkspaceState } from "./workspace-state-Do1e2mOH.mjs";
1
+ import { f as getProject } from "./config-DMP7L7H6.mjs";
2
+ import { r as readWorkspaceState } from "./workspace-state-WVwWw_hB.mjs";
3
3
  import { h as deviceShellArg } from "./app-install--PAocWvq.mjs";
4
- import { n as fileLeaseIo } from "./device-lease-DDJr85OK.mjs";
4
+ import { n as fileLeaseIo } from "./device-lease-DBW-IL4p.mjs";
5
5
  //#region src/engine/slot-launch.ts
6
6
  function launchSlotScope(root, slot = "default") {
7
7
  if (slot !== "default") return slot;
@@ -1,28 +1,24 @@
1
1
  import { t as getExecutor } from "./exec-CyylIdq9.mjs";
2
- import { S as upsertProject, a as clearSupervisor, f as getProject, w as process_identity_exports } from "./config-6vdGngKa.mjs";
3
- import { _ as workspaceLogsDir, c as ensureWorkspaceStorage, f as supervisorLogFile, o as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-Do1e2mOH.mjs";
4
- import { _ as repoRoot, s as gitCommonDir } from "./worktree-DWNx4tUg.mjs";
5
- import { a as findProjectRoot, i as detectIsExpo, n as detectAndroidPackage, r as detectBundleId, t as appProjectProblem } from "./project-CBFCwnN5.mjs";
2
+ import { S as upsertProject, a as clearSupervisor, f as getProject, w as process_identity_exports } from "./config-DMP7L7H6.mjs";
3
+ import { _ as workspaceLogsDir, c as ensureWorkspaceStorage, f as supervisorLogFile, o as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-WVwWw_hB.mjs";
4
+ import { g as repoRoot, s as gitCommonDir } from "./worktree-DJnBbQZ9.mjs";
5
+ import { a as findProjectRoot, i as detectIsExpo, n as detectAndroidPackage, r as detectBundleId, t as appProjectProblem } from "./project-B_SDt4ip.mjs";
6
6
  import { n as supervisorError } from "./errors-B6W7FkxQ.mjs";
7
- import { i as clearManagedMetroTunnel, o as clearWorkspaceSupervisor, s as readMetroTunnel } from "./state-CDbvmZdt.mjs";
8
- import { r as reserveMetroPort } from "./ports-ClqG8GPt.mjs";
9
- import { i as resolveProjectMetro, n as killMetroTree, r as pidExists } from "./metro-DFLmaVz8.mjs";
7
+ import { i as clearManagedMetroTunnel, o as clearWorkspaceSupervisor, s as readMetroTunnel } from "./state-CnWzvCWP.mjs";
8
+ import { r as reserveMetroPort } from "./ports-BZprTJRa.mjs";
9
+ import { i as resolveProjectMetro, n as killMetroTree, r as pidExists } from "./metro-ato6ef3J.mjs";
10
10
  import { g as stepTimer, l as phaseLine } from "./command-output-BuIb_ZOI.mjs";
11
- import { A as resolveSettings, D as remoteDeviceSettingError, E as remoteAndroidSetting, F as tunnelModeSetting, I as unknownSettingKeys, L as PUBLIC_METRO_ENV, N as settingShapeErrors, O as remoteIosSetting, R as detectProviders, S as ngrokUrlSetting, T as publicUrlSetting, a as SETTING_SHAPE_REMEDY, b as metroTunnelSettingError, d as cacheProviderSettingError, k as resolveCacheProviderConfig, z as planMetroReach } from "./settings-DwfltIXQ.mjs";
12
- import { n as expoMetroConfigPath } from "./metro-store-CDDZHtPl.mjs";
13
- import { o as expoSdkMajor } from "./server-expo-D4P7iTvf.mjs";
14
- import { n as workspaceProcessLockError, t as withWorkspaceProcessLock } from "./workspace-process-lock-UEIrvZMJ.mjs";
11
+ import { A as resolveSettings, D as remoteDeviceSettingError, E as remoteAndroidSetting, F as tunnelModeSetting, I as unknownSettingKeys, L as PUBLIC_METRO_ENV, N as settingShapeErrors, O as remoteIosSetting, R as detectProviders, S as ngrokUrlSetting, T as publicUrlSetting, a as SETTING_SHAPE_REMEDY, b as metroTunnelSettingError, d as cacheProviderSettingError, k as resolveCacheProviderConfig, z as planMetroReach } from "./settings-CGHTt5vb.mjs";
12
+ import { n as workspaceProcessLockError, t as withWorkspaceProcessLock } from "./workspace-process-lock-Bz19_R9R.mjs";
15
13
  import { t as spawnEntry } from "./spawn-entry-nCE6m770.mjs";
16
14
  import { c as queryLogs } from "./logs-query-Cdp5aaCH.mjs";
17
- import { a as withManagedRemoteWorktreeLock, i as terminateChild, n as startTunnelSequence, r as stopTunnel, s as withManagedTunnelLock, t as resolveSupervisorTarget } from "./ownership-C08Yzrp7.mjs";
15
+ import { a as withManagedRemoteWorktreeLock, i as terminateChild, n as startTunnelSequence, r as stopTunnel, s as withManagedTunnelLock, t as resolveSupervisorTarget } from "./ownership-CVY9cqCr.mjs";
18
16
  import { mkdirSync, openSync, readFileSync } from "node:fs";
19
- import { randomUUID } from "node:crypto";
20
17
  import { dirname } from "node:path";
21
18
  import { CACHE_PROVIDER_ENV, cacheProviderEnv } from "@stim-cli/cache";
22
19
  import chalk from "chalk";
23
20
  //#region src/supervisor/cache-reset.ts
24
- async function resetMetroCache(root) {
25
- if (detectIsExpo(root) && ((expoSdkMajor(root) ?? 0) < 54 || !expoMetroConfigPath())) throw supervisorError("STIM_BAD_ARG", "An isolated Metro cache reset requires Expo SDK 54 or newer and the Stim Metro config adapter.", "Upgrade Expo or repair the Stim installation before retrying. The running server was not changed.");
21
+ async function stopOwnedMetroForReset(root) {
26
22
  const project = getProject(root);
27
23
  const port = project?.metroPort;
28
24
  const target = resolveSupervisorTarget({
@@ -42,7 +38,6 @@ async function resetMetroCache(root) {
42
38
  clearWorkspaceSupervisor(root, expected);
43
39
  clearSupervisor(root, expected);
44
40
  }
45
- writeWorkspaceState(root, { metroCacheGeneration: randomUUID() });
46
41
  }
47
42
  //#endregion
48
43
  //#region src/commands/start.ts
@@ -144,7 +139,7 @@ function registerStart(program, overrides = {}) {
144
139
  ...DEFAULT_START_DEPS,
145
140
  ...overrides
146
141
  };
147
- program.command("start").description("Start this workspace's dev server under a detached supervisor and wait until it verifies as this project's. Idempotent: a healthy dev server on the reserved port is a no-op. Structured logs land in the global workspace logs directory.").option("--json", "Emit the facts as a single JSON line on stdout; every other line goes to stderr").option("--wait <seconds>", `How long to wait for the dev server to answer (default ${DEFAULT_WAIT_SECONDS})`).option("--remote", "Prepare the dev server for a remote device").option("--reset-cache", "Restart owned Metro with fresh per-app transform and file-map cache state").action(async (opts) => {
142
+ program.command("start").description("Start this workspace's dev server under a detached supervisor and wait until it verifies as this project's. Idempotent: a healthy dev server on the reserved port is a no-op. Structured logs land in the global workspace logs directory.").option("--json", "Emit the facts as a single JSON line on stdout; every other line goes to stderr").option("--wait <seconds>", `How long to wait for the dev server to answer (default ${DEFAULT_WAIT_SECONDS})`).option("--remote", "Prepare the dev server for a remote device").option("--reset-cache", "Restart owned Metro and clear this app's Metro caches").action(async (opts) => {
148
143
  const json = Boolean(opts.json);
149
144
  const waitTimer = stepTimer();
150
145
  const out = (line) => {
@@ -242,7 +237,7 @@ function registerStart(program, overrides = {}) {
242
237
  });
243
238
  if (opts.resetCache) {
244
239
  try {
245
- await resetMetroCache(root);
240
+ await stopOwnedMetroForReset(root);
246
241
  } catch (error) {
247
242
  const failure = error;
248
243
  return fail({
@@ -251,7 +246,7 @@ function registerStart(program, overrides = {}) {
251
246
  remedy: failure.remedy
252
247
  });
253
248
  }
254
- note(phaseLine("cache", "fresh Metro cache state for this app; shared cache entries and devices preserved"));
249
+ note(phaseLine("cache", "clearing this app's Metro transform and file-map caches; devices preserved"));
255
250
  }
256
251
  const logsDir = workspaceLogsDir(root);
257
252
  const logFile = supervisorLogFile(root);
@@ -287,7 +282,8 @@ function registerStart(program, overrides = {}) {
287
282
  root,
288
283
  "--port",
289
284
  String(port),
290
- ...tunnel ? ["--tunnel"] : []
285
+ ...tunnel ? ["--tunnel"] : [],
286
+ ...opts.resetCache ? ["--reset-cache"] : []
291
287
  ];
292
288
  const childEnv = {
293
289
  ...process.env,
@@ -1,5 +1,5 @@
1
- import { I as parseDeviceSlotKey, P as deviceSlotKey, w as process_identity_exports } from "./config-6vdGngKa.mjs";
2
- import { a as withWorkspaceStateLock, i as updateWorkspaceState, p as supervisorPidFile, r as readWorkspaceState, t as clearWorkspaceStateKey, y as workspaceStateFile } from "./workspace-state-Do1e2mOH.mjs";
1
+ import { I as parseDeviceSlotKey, P as deviceSlotKey, w as process_identity_exports } from "./config-DMP7L7H6.mjs";
2
+ import { a as withWorkspaceStateLock, i as updateWorkspaceState, p as supervisorPidFile, r as readWorkspaceState, t as clearWorkspaceStateKey, y as workspaceStateFile } from "./workspace-state-WVwWw_hB.mjs";
3
3
  import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
4
4
  import { dirname } from "node:path";
5
5
  //#region src/supervisor/state.ts
@@ -1,7 +1,7 @@
1
- import { _ as repoRoot, s as gitCommonDir } from "./worktree-DWNx4tUg.mjs";
2
- import { a as findProjectRoot } from "./project-CBFCwnN5.mjs";
1
+ import { g as repoRoot, s as gitCommonDir } from "./worktree-DJnBbQZ9.mjs";
2
+ import { a as findProjectRoot } from "./project-B_SDt4ip.mjs";
3
3
  import { o as formatLongDuration } from "./command-output-BuIb_ZOI.mjs";
4
- import { a as statsProjectKey, r as readStats } from "./stats-C59QLKm2.mjs";
4
+ import { a as statsProjectKey, r as readStats } from "./stats-Fo9ACIv7.mjs";
5
5
  import chalk from "chalk";
6
6
  //#region src/commands/stats.ts
7
7
  const PLATFORMS = ["ios", "android"];
@@ -1,4 +1,4 @@
1
- import { C as withConfigLock, u as getConfigDir } from "./config-6vdGngKa.mjs";
1
+ import { C as withConfigLock, u as getConfigDir } from "./config-DMP7L7H6.mjs";
2
2
  import { readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
3
3
  import { basename, dirname, join, relative, resolve } from "node:path";
4
4
  const PLATFORMS = ["ios", "android"];
@@ -1,18 +1,18 @@
1
1
  import { t as getExecutor } from "./exec-CyylIdq9.mjs";
2
- import { L as projectDeviceSlots, M as volumeRootFor, g as loadConfig, u as getConfigDir } from "./config-6vdGngKa.mjs";
3
- import { _ as workspaceLogsDir } from "./workspace-state-Do1e2mOH.mjs";
4
- import { f as listWorktrees } from "./worktree-DWNx4tUg.mjs";
5
- import { a as findProjectRoot, c as projectShortcut } from "./project-CBFCwnN5.mjs";
6
- import { t as isMetroRunning } from "./ports-ClqG8GPt.mjs";
7
- import { i as resolveProjectMetro } from "./metro-DFLmaVz8.mjs";
2
+ import { L as projectDeviceSlots, M as volumeRootFor, g as loadConfig, u as getConfigDir } from "./config-DMP7L7H6.mjs";
3
+ import { _ as workspaceLogsDir } from "./workspace-state-WVwWw_hB.mjs";
4
+ import { v as resolveSourceCheckout } from "./worktree-DJnBbQZ9.mjs";
5
+ import { a as findProjectRoot, c as projectShortcut } from "./project-B_SDt4ip.mjs";
6
+ import { t as isMetroRunning } from "./ports-BZprTJRa.mjs";
7
+ import { i as resolveProjectMetro } from "./metro-ato6ef3J.mjs";
8
8
  import { a as formatElapsed, r as clockTime, u as plural } from "./command-output-BuIb_ZOI.mjs";
9
- import { N as resolveOwnedAvdSerial } from "./android-BkM4qTaN.mjs";
10
- import { a as POOL_SETTING_REMEDY, l as parkedMaxSetting, u as readParked } from "./teardown-KsPpvldq.mjs";
9
+ import { N as resolveOwnedAvdSerial } from "./android-BkYmndPp.mjs";
10
+ import { a as POOL_SETTING_REMEDY, l as parkedMaxSetting, u as readParked } from "./teardown-sm1FwF6V.mjs";
11
11
  import { u as listAllIosSims } from "./ios-Deh5js5V.mjs";
12
- import { i as listLeaseFiles } from "./device-lease-DDJr85OK.mjs";
12
+ import { i as listLeaseFiles } from "./device-lease-DBW-IL4p.mjs";
13
13
  import { c as queryLogs } from "./logs-query-Cdp5aaCH.mjs";
14
- import { t as resolveSupervisorTarget } from "./ownership-C08Yzrp7.mjs";
15
- import { i as readSupervisorState } from "./stop-_P2OQwmZ.mjs";
14
+ import { t as resolveSupervisorTarget } from "./ownership-CVY9cqCr.mjs";
15
+ import { i as readSupervisorState } from "./stop-DsdOx9Hj.mjs";
16
16
  import { existsSync } from "fs";
17
17
  import { totalmem } from "os";
18
18
  import chalk from "chalk";
@@ -213,7 +213,9 @@ function statusCommand(program) {
213
213
  simsAvailable = false;
214
214
  simctlError = String(e?.message || e).split("\n")[0] ?? "";
215
215
  }
216
- const worktrees = listWorktrees(process.cwd()).slice(1);
216
+ const source = resolveSourceCheckout(process.cwd());
217
+ const sourcePath = "path" in source ? source.path : null;
218
+ const worktrees = source.entries.filter((entry) => !entry.bare && entry.path !== sourcePath);
217
219
  const states = [];
218
220
  const labelOnlyRoots = [];
219
221
  for (const [path, proj] of projects) {
@@ -1,3 +1,3 @@
1
- import { t as resolveSupervisorTarget } from "./ownership-C08Yzrp7.mjs";
2
- import { a as resolveCollectorTargets, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-_P2OQwmZ.mjs";
1
+ import { t as resolveSupervisorTarget } from "./ownership-CVY9cqCr.mjs";
2
+ import { a as resolveCollectorTargets, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-DsdOx9Hj.mjs";
3
3
  export { clearCollectorState, clearSupervisorState, stopCommand as default, readCollectorState, readSupervisorState, resolveCollectorTargets, resolveSupervisorTarget, runStop };
@@ -1,15 +1,15 @@
1
- import { C as withConfigLock, F as deviceSlotPlatforms, I as parseDeviceSlotKey, L as projectDeviceSlots, S as upsertProject, a as clearSupervisor, f as getProject, w as process_identity_exports, z as validateDeviceSlot } from "./config-6vdGngKa.mjs";
2
- import { a as withWorkspaceStateLock, h as workspaceDir, n as clearWorkspaceStateKeys, o as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-Do1e2mOH.mjs";
3
- import { a as findProjectRoot } from "./project-CBFCwnN5.mjs";
4
- import { a as clearRemoteSession, i as clearManagedMetroTunnel, l as readRemoteSession, o as clearWorkspaceSupervisor, s as readMetroTunnel } from "./state-CDbvmZdt.mjs";
5
- import { i as resolveProjectMetro, n as killMetroTree, r as pidExists } from "./metro-DFLmaVz8.mjs";
6
- import { n as verifyCollectorOwnership } from "./ownership-BvSpZVBk.mjs";
1
+ import { C as withConfigLock, F as deviceSlotPlatforms, I as parseDeviceSlotKey, L as projectDeviceSlots, S as upsertProject, a as clearSupervisor, f as getProject, w as process_identity_exports, z as validateDeviceSlot } from "./config-DMP7L7H6.mjs";
2
+ import { a as withWorkspaceStateLock, h as workspaceDir, n as clearWorkspaceStateKeys, o as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-WVwWw_hB.mjs";
3
+ import { a as findProjectRoot } from "./project-B_SDt4ip.mjs";
4
+ import { a as clearRemoteSession, i as clearManagedMetroTunnel, l as readRemoteSession, o as clearWorkspaceSupervisor, s as readMetroTunnel } from "./state-CnWzvCWP.mjs";
5
+ import { i as resolveProjectMetro, n as killMetroTree, r as pidExists } from "./metro-ato6ef3J.mjs";
6
+ import { n as verifyCollectorOwnership } from "./ownership-CD_XnpDu.mjs";
7
7
  import { f as releasedLeaseFact, l as phaseLine, u as plural } from "./command-output-BuIb_ZOI.mjs";
8
- import { S as resolveEasCliBin, n as teardownOwnedIosSim, t as teardownOwnedAvd } from "./teardown-KsPpvldq.mjs";
9
- import { t as withWorkspaceProcessLock } from "./workspace-process-lock-UEIrvZMJ.mjs";
10
- import { l as releaseWorkspaceLeases } from "./device-lease-DDJr85OK.mjs";
11
- import { i as endRecordedSession } from "./device-remote-CMfHhoc8.mjs";
12
- import { r as stopTunnel, t as resolveSupervisorTarget } from "./ownership-C08Yzrp7.mjs";
8
+ import { S as resolveEasCliBin, n as teardownOwnedIosSim, t as teardownOwnedAvd } from "./teardown-sm1FwF6V.mjs";
9
+ import { t as withWorkspaceProcessLock } from "./workspace-process-lock-Bz19_R9R.mjs";
10
+ import { l as releaseWorkspaceLeases } from "./device-lease-DBW-IL4p.mjs";
11
+ import { i as endRecordedSession } from "./device-remote-D9wN3CdE.mjs";
12
+ import { r as stopTunnel, t as resolveSupervisorTarget } from "./ownership-CVY9cqCr.mjs";
13
13
  import chalk from "chalk";
14
14
  //#region src/commands/stop.ts
15
15
  const DEFAULT_WAIT_MS = 1e4;
@@ -14,6 +14,7 @@ interface ParsedSupervisorArgs {
14
14
  root?: string;
15
15
  port?: number;
16
16
  tunnel?: boolean;
17
+ resetCache?: boolean;
17
18
  error?: string;
18
19
  }
19
20
  declare function parseArgs(argv: string[]): ParsedSupervisorArgs;
@@ -34,12 +35,14 @@ type ServerStarter = (opts: {
34
35
  logsDir: string;
35
36
  writer?: NdjsonWriter | null;
36
37
  tunnel?: boolean;
38
+ resetCache?: boolean;
37
39
  onTunnelUrl?: ((url: string) => void) | null;
38
40
  }) => Promise<ServerHandle>;
39
41
  interface RunSupervisorOptions {
40
42
  root: string;
41
43
  port: number;
42
44
  tunnel?: boolean;
45
+ resetCache?: boolean;
43
46
  isExpo?: (projectRoot: string) => boolean;
44
47
  startBare?: ServerStarter | null;
45
48
  startExpo?: ServerStarter | null;
@@ -48,7 +51,7 @@ interface RunSupervisorOptions {
48
51
  attachSignals?: boolean;
49
52
  stderr?: (line: string) => void;
50
53
  }
51
- declare function runSupervisor({ root, port, tunnel, isExpo, startBare, startExpo, now, onExit, attachSignals, stderr }: RunSupervisorOptions): Promise<{
54
+ declare function runSupervisor({ root, port, tunnel, resetCache, isExpo, startBare, startExpo, now, onExit, attachSignals, stderr }: RunSupervisorOptions): Promise<{
52
55
  mode: string;
53
56
  server: ServerHandle | undefined;
54
57
  shutdown: (code: number, event: string, msg: string) => Promise<void>;
@@ -1,9 +1,9 @@
1
- import { a as clearSupervisor, w as process_identity_exports, x as setSupervisor } from "./config-6vdGngKa.mjs";
1
+ import { a as clearSupervisor, w as process_identity_exports, x as setSupervisor } from "./config-DMP7L7H6.mjs";
2
2
  import { r as createNdjsonWriter } from "./ndjson-BZwI1NBv.mjs";
3
- import { _ as workspaceLogsDir, a as withWorkspaceStateLock, o as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-Do1e2mOH.mjs";
4
- import { i as detectIsExpo } from "./project-CBFCwnN5.mjs";
3
+ import { _ as workspaceLogsDir, a as withWorkspaceStateLock, o as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-WVwWw_hB.mjs";
4
+ import { i as detectIsExpo } from "./project-B_SDt4ip.mjs";
5
5
  import { t as describeError } from "./errors-B6W7FkxQ.mjs";
6
- import { c as readPidFile, f as writePidFile, n as MODE_EXPO, o as clearWorkspaceSupervisor, r as clearExpoMetroTunnel, t as MODE_BARE } from "./state-CDbvmZdt.mjs";
6
+ import { c as readPidFile, f as writePidFile, n as MODE_EXPO, o as clearWorkspaceSupervisor, r as clearExpoMetroTunnel, t as MODE_BARE } from "./state-CnWzvCWP.mjs";
7
7
  import { existsSync, realpathSync } from "node:fs";
8
8
  import { isAbsolute, join, resolve } from "node:path";
9
9
  import { fileURLToPath } from "node:url";
@@ -12,6 +12,7 @@ function parseArgs(argv) {
12
12
  let root;
13
13
  let port;
14
14
  let tunnel = false;
15
+ let resetCache = false;
15
16
  for (let i = 0; i < argv.length; i++) {
16
17
  const arg = argv[i];
17
18
  if (arg === "--root") {
@@ -26,19 +27,24 @@ function parseArgs(argv) {
26
27
  tunnel = true;
27
28
  continue;
28
29
  }
29
- return { error: `Unknown supervisor argument "${arg}". Usage: run.js --root <path> --port <n> [--tunnel]` };
30
+ if (arg === "--reset-cache") {
31
+ resetCache = true;
32
+ continue;
33
+ }
34
+ return { error: `Unknown supervisor argument "${arg}". Usage: run.js --root <path> --port <n> [--tunnel] [--reset-cache]` };
30
35
  }
31
- if (!root) return { error: "Missing --root. Usage: run.js --root <path> --port <n> [--tunnel]" };
36
+ if (!root) return { error: "Missing --root. Usage: run.js --root <path> --port <n> [--tunnel] [--reset-cache]" };
32
37
  if (!isAbsolute(root)) return { error: `--root must be an absolute path, got "${root}".` };
33
38
  const parsedPort = Number(port);
34
39
  if (!Number.isInteger(parsedPort) || parsedPort <= 0 || parsedPort > 65535) return { error: `--port must be a TCP port number, got "${port}".` };
35
40
  return {
36
41
  root: resolve(root),
37
42
  port: parsedPort,
38
- tunnel
43
+ tunnel,
44
+ resetCache
39
45
  };
40
46
  }
41
- async function runSupervisor({ root, port, tunnel = false, isExpo = detectIsExpo, startBare = null, startExpo = null, now = Date.now, onExit = (code) => process.exit(code), attachSignals = true, stderr = (line) => console.error(line) }) {
47
+ async function runSupervisor({ root, port, tunnel = false, resetCache = false, isExpo = detectIsExpo, startBare = null, startExpo = null, now = Date.now, onExit = (code) => process.exit(code), attachSignals = true, stderr = (line) => console.error(line) }) {
42
48
  root = realpathSync(root);
43
49
  const logsDir = workspaceLogsDir(root);
44
50
  const writer = createNdjsonWriter(join(logsDir, "metro.ndjson"));
@@ -98,12 +104,13 @@ async function runSupervisor({ root, port, tunnel = false, isExpo = detectIsExpo
98
104
  };
99
105
  let server;
100
106
  try {
101
- server = await (mode === "expo-child" ? startExpo || (await import("./server-expo-Dho5Raiw.mjs")).startExpoServer : startBare || (await import("./server-bare-Buk-k8tI.mjs")).startBareServer)({
107
+ server = await (mode === "expo-child" ? startExpo || (await import("./server-expo-CjeTJ273.mjs")).startExpoServer : startBare || (await import("./server-bare-CCLb90FS.mjs")).startBareServer)({
102
108
  root,
103
109
  port,
104
110
  logsDir,
105
111
  writer,
106
112
  tunnel,
113
+ resetCache,
107
114
  onTunnelUrl: (url) => {
108
115
  try {
109
116
  withWorkspaceStateLock(root, () => {
@@ -191,7 +198,8 @@ async function main(argv = process.argv.slice(2)) {
191
198
  await runSupervisor({
192
199
  root,
193
200
  port: parsed.port,
194
- tunnel: parsed.tunnel ?? false
201
+ tunnel: parsed.tunnel ?? false,
202
+ resetCache: parsed.resetCache ?? false
195
203
  });
196
204
  }
197
205
  function invokedDirectly() {
@@ -1,12 +1,12 @@
1
1
  import { t as getExecutor } from "./exec-CyylIdq9.mjs";
2
- import { C as withConfigLock, E as ownership_claim_exports, F as deviceSlotPlatforms, L as projectDeviceSlots, N as assignSlotDevice, R as removeSlotDevice, T as acquireAvdClaim, d as getConfigPath, g as loadConfig, s as ensureConfig, u as getConfigDir, y as saveConfig } from "./config-6vdGngKa.mjs";
2
+ import { C as withConfigLock, E as ownership_claim_exports, F as deviceSlotPlatforms, L as projectDeviceSlots, N as assignSlotDevice, R as removeSlotDevice, T as acquireAvdClaim, d as getConfigPath, g as loadConfig, s as ensureConfig, u as getConfigDir, y as saveConfig } from "./config-DMP7L7H6.mjs";
3
3
  import { r as createNdjsonWriter } from "./ndjson-BZwI1NBv.mjs";
4
- import { _ as workspaceLogsDir } from "./workspace-state-Do1e2mOH.mjs";
5
- import { l as resolvePackageJson } from "./project-CBFCwnN5.mjs";
4
+ import { _ as workspaceLogsDir } from "./workspace-state-WVwWw_hB.mjs";
5
+ import { l as resolvePackageJson } from "./project-B_SDt4ip.mjs";
6
6
  import { n as stripAnsi } from "./process-output-C7IlIzd7.mjs";
7
7
  import { l as phaseLine } from "./command-output-BuIb_ZOI.mjs";
8
- import { E as ownedAvdMatchesConfiguration, F as shutdownAndroidEmulator, I as waitForAndroidEmulatorShutdown, N as resolveOwnedAvdSerial, O as ownedAvdSystemImage, S as listOrphanedAvdDirectories, T as ownedAvdDirectory, l as avdStorageRoots, o as assertOwnedAvdStopped, p as deleteAvd, s as avdPathExists } from "./android-BkM4qTaN.mjs";
9
- import { n as expoBinFromPackage, r as expoBinPath, s as findBinUpward } from "./server-expo-D4P7iTvf.mjs";
8
+ import { E as ownedAvdMatchesConfiguration, F as shutdownAndroidEmulator, I as waitForAndroidEmulatorShutdown, N as resolveOwnedAvdSerial, O as ownedAvdSystemImage, S as listOrphanedAvdDirectories, T as ownedAvdDirectory, l as avdStorageRoots, o as assertOwnedAvdStopped, p as deleteAvd, s as avdPathExists } from "./android-BkYmndPp.mjs";
9
+ import { n as expoBinFromPackage, r as expoBinPath, s as findBinUpward } from "./server-expo-CX-zkgWl.mjs";
10
10
  import { C as shutdownIosSim, _ as renameIosSim, a as deleteIosSim, d as listIosDeviceTypes, g as parseRuntimeVersion, h as parkedSimName, o as deleteParkedIosSim, r as clearAppDataContainer, s as findAppDataContainer, x as resolveOwnedIosSim } from "./ios-Deh5js5V.mjs";
11
11
  import { createRequire } from "node:module";
12
12
  import { existsSync, lstatSync, readFileSync, renameSync, rmSync } from "node:fs";
@@ -1,4 +1,4 @@
1
- import { E as ownership_claim_exports } from "./config-6vdGngKa.mjs";
1
+ import { E as ownership_claim_exports } from "./config-DMP7L7H6.mjs";
2
2
  import { join } from "node:path";
3
3
  //#region src/engine/workspace-process-lock.ts
4
4
  const DEFAULT_WAIT_MS = 6e4;
@@ -1,4 +1,4 @@
1
- import { D as withDirLock, u as getConfigDir } from "./config-6vdGngKa.mjs";
1
+ import { D as withDirLock, u as getConfigDir } from "./config-DMP7L7H6.mjs";
2
2
  import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
3
3
  import { dirname } from "node:path";
4
4
  import { join as join$1, resolve as resolve$1 } from "path";