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.
- package/README.md +3 -3
- package/dist/{android-BkM4qTaN.mjs → android-BkYmndPp.mjs} +5 -5
- package/dist/{android-BTR1KTMP.mjs → android-DLJB8ljN.mjs} +22 -22
- package/dist/{android-cas-BjLRZyks.mjs → android-cas-CrzI_Zha.mjs} +5 -5
- package/dist/{build-slots-D6sDzOe-.mjs → build-slots-CuPszJDu.mjs} +1 -1
- package/dist/{cache-manifest-D02TpYjA.mjs → cache-manifest-uoOKhgUD.mjs} +1 -1
- package/dist/cache-manifest.mjs +1 -1
- package/dist/cli.mjs +14 -14
- package/dist/collector-run.mjs +3 -3
- package/dist/{config-6vdGngKa.mjs → config-DMP7L7H6.mjs} +1 -1
- package/dist/{dependency-state-BMirHEPD.mjs → dependency-state-CTL8A9p3.mjs} +1 -1
- package/dist/{deps-Ck4wuTwa.mjs → deps-C1zGnr61.mjs} +1 -1
- package/dist/{dev-client-Cd0v7iZk.mjs → dev-client-BaTXAAnC.mjs} +9 -9
- package/dist/{device-CMDFzx7C.mjs → device-XY_5eGdN.mjs} +8 -8
- package/dist/{device-lease-DDJr85OK.mjs → device-lease-DBW-IL4p.mjs} +3 -3
- package/dist/{device-pool-DJvbIBGW.mjs → device-pool-C0s_83Og.mjs} +2 -2
- package/dist/{device-remote-CMfHhoc8.mjs → device-remote-D9wN3CdE.mjs} +6 -6
- package/dist/{device-CKXLnRRb.mjs → device-xoQxw8hR.mjs} +5 -5
- package/dist/{doctor-B_mfURdt.mjs → doctor-BRO8UKlK.mjs} +25 -168
- package/dist/{error-diagnostics-_VmkqRZo.mjs → error-diagnostics-B5STzxqN.mjs} +6 -6
- package/dist/{gc-0AyxmECv.mjs → gc-C-6grAQI.mjs} +12 -12
- package/dist/{guide-CGxdmQ0K.mjs → guide-CYtd7xbA.mjs} +49 -21
- package/dist/guide-status-BF6RsJJp.mjs +271 -0
- package/dist/{ios-CtmGLx3X.mjs → ios-Ccm6c8Hj.mjs} +21 -21
- package/dist/{logs-BF3qPA7w.mjs → logs-D4Poojxy.mjs} +4 -4
- package/dist/{metro-DFLmaVz8.mjs → metro-ato6ef3J.mjs} +3 -3
- package/dist/{named-ports-BO7Zpjp0.mjs → named-ports-DH9SXd0f.mjs} +3 -3
- package/dist/{ownership-BvSpZVBk.mjs → ownership-CD_XnpDu.mjs} +3 -3
- package/dist/{ownership-C08Yzrp7.mjs → ownership-CVY9cqCr.mjs} +3 -3
- package/dist/{ports-BiKqP92J.mjs → ports-A6uTJSPj.mjs} +3 -3
- package/dist/{ports-ClqG8GPt.mjs → ports-BZprTJRa.mjs} +1 -1
- package/dist/{project-CBFCwnN5.mjs → project-B_SDt4ip.mjs} +2 -2
- package/dist/{reclaim-DpDVo-AP.mjs → reclaim-WXTbXPX4.mjs} +10 -10
- package/dist/{reload-ByTqg6ZI.mjs → reload-xlQvHKfN.mjs} +6 -6
- package/dist/{server-bare-Buk-k8tI.mjs → server-bare-CCLb90FS.mjs} +11 -32
- package/dist/{server-expo-D4P7iTvf.mjs → server-expo-CX-zkgWl.mjs} +6 -14
- package/dist/server-expo-CjeTJ273.mjs +2 -0
- package/dist/{settings-DwfltIXQ.mjs → settings-CGHTt5vb.mjs} +7 -4
- package/dist/{slot-launch-DeKen9e5.mjs → slot-launch-BYjnljAs.mjs} +3 -3
- package/dist/{start-BpKUHcU_.mjs → start-DHYAyGzm.mjs} +16 -20
- package/dist/{state-CDbvmZdt.mjs → state-CnWzvCWP.mjs} +2 -2
- package/dist/{stats-k5qMjyxo.mjs → stats-DHrO0frH.mjs} +3 -3
- package/dist/{stats-C59QLKm2.mjs → stats-Fo9ACIv7.mjs} +1 -1
- package/dist/{status-Y2ij3dm6.mjs → status-QeLZb8SM.mjs} +14 -12
- package/dist/{stop-vKmmxhea.mjs → stop-CHTaw65F.mjs} +2 -2
- package/dist/{stop-_P2OQwmZ.mjs → stop-DsdOx9Hj.mjs} +11 -11
- package/dist/supervisor-run.d.mts +4 -1
- package/dist/supervisor-run.mjs +18 -10
- package/dist/{teardown-KsPpvldq.mjs → teardown-sm1FwF6V.mjs} +5 -5
- package/dist/{workspace-process-lock-UEIrvZMJ.mjs → workspace-process-lock-Bz19_R9R.mjs} +1 -1
- package/dist/{workspace-state-Do1e2mOH.mjs → workspace-state-WVwWw_hB.mjs} +1 -1
- package/dist/{worktree-BvcAIMdJ.mjs → worktree-CCNPg_f0.mjs} +25 -20
- package/dist/{worktree-DWNx4tUg.mjs → worktree-DJnBbQZ9.mjs} +49 -22
- package/dist/{xcode-D9tVItl-.mjs → xcode-DUF7jrXj.mjs} +89 -14
- package/package.json +5 -5
- package/shim/expo-metro-config.cjs +11 -17
- package/dist/server-expo-Dho5Raiw.mjs +0 -2
- package/shim/metro-cache-generation.cjs +0 -20
- package/shim/metro-cache-generation.d.cts +0 -5
package/README.md
CHANGED
|
@@ -50,9 +50,9 @@ registered descendant app with logs when one exists.
|
|
|
50
50
|
|
|
51
51
|
Use `stim start --reset-cache` to recover from stale Metro transforms or file-map
|
|
52
52
|
state. It restarts only this app's verified owned Metro, keeping its port and
|
|
53
|
-
devices
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
devices, with Metro's own reset: every store in the app's Metro config is cleared,
|
|
54
|
+
including this app's shared transform store, so other worktrees of the same app
|
|
55
|
+
rebuild their transforms too. Other apps and native build caches are unchanged.
|
|
56
56
|
|
|
57
57
|
Use `stim doctor --platform ios` or `stim doctor --platform android` when only
|
|
58
58
|
one native platform is in scope; shared project checks still run. Doctor also
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
|
-
import { E as ownership_claim_exports, u as getConfigDir } from "./config-
|
|
3
|
-
import { r as register } from "./cache-manifest-
|
|
4
|
-
import { l as sharedBuildCache } from "./workspace-state-
|
|
5
|
-
import { r as pidExists } from "./metro-
|
|
2
|
+
import { E as ownership_claim_exports, u as getConfigDir } from "./config-DMP7L7H6.mjs";
|
|
3
|
+
import { r as register } from "./cache-manifest-uoOKhgUD.mjs";
|
|
4
|
+
import { l as sharedBuildCache } from "./workspace-state-WVwWw_hB.mjs";
|
|
5
|
+
import { r as pidExists } from "./metro-ato6ef3J.mjs";
|
|
6
6
|
import { a as formatElapsed } from "./command-output-BuIb_ZOI.mjs";
|
|
7
|
-
import { c as androidDataPartitionSizeBytes } from "./settings-
|
|
7
|
+
import { c as androidDataPartitionSizeBytes } from "./settings-CGHTt5vb.mjs";
|
|
8
8
|
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
9
9
|
import { createHash } from "node:crypto";
|
|
10
10
|
import { join } from "node:path";
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
|
-
import { C as withConfigLock, E as ownership_claim_exports, F as deviceSlotPlatforms, P as deviceSlotKey, S as upsertProject, b as setDevice, f as getProject, g as loadConfig, l as getConcurrencyLimits, y as saveConfig, z as validateDeviceSlot } from "./config-
|
|
2
|
+
import { C as withConfigLock, E as ownership_claim_exports, F as deviceSlotPlatforms, P as deviceSlotKey, S as upsertProject, b as setDevice, f as getProject, g as loadConfig, l as getConcurrencyLimits, y as saveConfig, z as validateDeviceSlot } from "./config-DMP7L7H6.mjs";
|
|
3
3
|
import { r as createNdjsonWriter } from "./ndjson-BZwI1NBv.mjs";
|
|
4
|
-
import { _ as workspaceLogsDir, h as workspaceDir, o as writeWorkspaceState, r as readWorkspaceState, s as emulatorLogFile } from "./workspace-state-
|
|
5
|
-
import {
|
|
6
|
-
import { a as findProjectRoot, c as projectShortcut, i as detectIsExpo, n as detectAndroidPackage, r as detectBundleId, t as appProjectProblem } from "./project-
|
|
7
|
-
import { n as MODE_EXPO, p as writeWorkspaceLaunch, t as MODE_BARE } from "./state-
|
|
4
|
+
import { _ as workspaceLogsDir, h as workspaceDir, o as writeWorkspaceState, r as readWorkspaceState, s as emulatorLogFile } from "./workspace-state-WVwWw_hB.mjs";
|
|
5
|
+
import { T as removeTemporaryEntry, g as repoRoot, s as gitCommonDir, w as makeTemporaryDirectory } from "./worktree-DJnBbQZ9.mjs";
|
|
6
|
+
import { a as findProjectRoot, c as projectShortcut, i as detectIsExpo, n as detectAndroidPackage, r as detectBundleId, t as appProjectProblem } from "./project-B_SDt4ip.mjs";
|
|
7
|
+
import { n as MODE_EXPO, p as writeWorkspaceLaunch, t as MODE_BARE } from "./state-CnWzvCWP.mjs";
|
|
8
8
|
import { r as waitForChild, t as createLineReader } from "./process-output-C7IlIzd7.mjs";
|
|
9
|
-
import { i as resolveProjectMetro, r as pidExists } from "./metro-
|
|
10
|
-
import { n as verifyCollectorOwnership, r as readCollectors } from "./ownership-
|
|
9
|
+
import { i as resolveProjectMetro, r as pidExists } from "./metro-ato6ef3J.mjs";
|
|
10
|
+
import { n as verifyCollectorOwnership, r as readCollectors } from "./ownership-CD_XnpDu.mjs";
|
|
11
11
|
import { _ as launchErrorPreview, c as launchErrorReport, g as stepTimer, h as stepClock, i as formatDuration, l as phaseLine, n as appReadinessMessage, p as shortHash } from "./command-output-BuIb_ZOI.mjs";
|
|
12
|
-
import { $ as providerDownloadPath, C as memoizeEmulatorProbe, G as buildCacheKey, J as filesystemBuildCapability, K as describeFingerprintMiss, L as waitForBoot, M as resetAdoptedAvd, N as resolveOwnedAvdSerial, P as resolvePhysicalDevice, Q as prepareProviderDownloadDir, R as WAIT_CEILING_MS, U as takeoverLine, V as releaseBuildLock, W as waitForBuild, X as fingerprintDiffSuffix, Y as fingerprintDiffRecord, Z as fingerprintProject, _ as findBuildTool, a as androidSystemImageAbi, at as untrackedMissLine, ct as captureAssetManifest, et as providerUploadOutcome, g as extractEmulatorFailure, h as emulatorFailureRemedy, i as androidPoolNoCandidatesRefusal, it as storedAssetManifest, j as probeEmulatorSerial, k as physicalDeviceModel, lt as compareAssetManifests, m as emulatorDiskSpaceRemedy, n as androidHome, nt as resolveBuild, ot as untrackedNativeFiles, r as androidPoolCandidates, rt as storeBuild, st as assetDiffReason, t as androidDeviceAbi, tt as refingerprintAfterMutation, ut as readAssetManifest, x as listInstalledSystemImages, y as listAdbDevices, z as acquireBuildLock } from "./android-
|
|
13
|
-
import { A as resolveSettings, B as artifactCachePolicy, D as remoteDeviceSettingError, E as remoteAndroidSetting, F as tunnelModeSetting, H as optimizationBuildProfile, I as unknownSettingKeys, N as settingShapeErrors, R as detectProviders, T as publicUrlSetting, U as resolveOptimizations, V as compilerCacheFallbackMessage, a as SETTING_SHAPE_REMEDY, d as cacheProviderSettingError, j as settingFile, k as resolveCacheProviderConfig, r as REMOTE_DEVICE_BACKENDS, s as androidAvdConfigSettingError, u as androidDataPartitionSizeGbSettingError, x as metroWarmupUrlSetting } from "./settings-
|
|
14
|
-
import { t as cleanLine } from "./server-expo-
|
|
15
|
-
import { C as resolveRemote, S as resolveEasCliBin, _ as exitAfterFlush, f as RESOLVE_TIMEOUT_MS, g as easAuthNote, h as checkEasAuth, l as parkedMaxSetting, m as cacheLevel, p as UPLOAD_TIMEOUT_MS, v as isEasAuthFailureText, w as uploadRemote, y as loadProjectProvider } from "./teardown-
|
|
16
|
-
import { c as ensureWorkspaceStorageSafely, d as launchOutcomeRecord, f as noMetroMessage, g as warmMetro, i as detectEntryFile, m as resolveMetroWithRetry, n as pickDevClientScheme, o as needsPrebuild, p as noMetroRemedy, s as runPrebuild, t as devClientScheme, u as isPhysicalDeviceRequest, v as isEasBuildFailure, y as resolveEasDevelopmentBuild } from "./dev-client-
|
|
17
|
-
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-
|
|
12
|
+
import { $ as providerDownloadPath, C as memoizeEmulatorProbe, G as buildCacheKey, J as filesystemBuildCapability, K as describeFingerprintMiss, L as waitForBoot, M as resetAdoptedAvd, N as resolveOwnedAvdSerial, P as resolvePhysicalDevice, Q as prepareProviderDownloadDir, R as WAIT_CEILING_MS, U as takeoverLine, V as releaseBuildLock, W as waitForBuild, X as fingerprintDiffSuffix, Y as fingerprintDiffRecord, Z as fingerprintProject, _ as findBuildTool, a as androidSystemImageAbi, at as untrackedMissLine, ct as captureAssetManifest, et as providerUploadOutcome, g as extractEmulatorFailure, h as emulatorFailureRemedy, i as androidPoolNoCandidatesRefusal, it as storedAssetManifest, j as probeEmulatorSerial, k as physicalDeviceModel, lt as compareAssetManifests, m as emulatorDiskSpaceRemedy, n as androidHome, nt as resolveBuild, ot as untrackedNativeFiles, r as androidPoolCandidates, rt as storeBuild, st as assetDiffReason, t as androidDeviceAbi, tt as refingerprintAfterMutation, ut as readAssetManifest, x as listInstalledSystemImages, y as listAdbDevices, z as acquireBuildLock } from "./android-BkYmndPp.mjs";
|
|
13
|
+
import { A as resolveSettings, B as artifactCachePolicy, D as remoteDeviceSettingError, E as remoteAndroidSetting, F as tunnelModeSetting, H as optimizationBuildProfile, I as unknownSettingKeys, N as settingShapeErrors, R as detectProviders, T as publicUrlSetting, U as resolveOptimizations, V as compilerCacheFallbackMessage, a as SETTING_SHAPE_REMEDY, d as cacheProviderSettingError, j as settingFile, k as resolveCacheProviderConfig, r as REMOTE_DEVICE_BACKENDS, s as androidAvdConfigSettingError, u as androidDataPartitionSizeGbSettingError, x as metroWarmupUrlSetting } from "./settings-CGHTt5vb.mjs";
|
|
14
|
+
import { t as cleanLine } from "./server-expo-CX-zkgWl.mjs";
|
|
15
|
+
import { C as resolveRemote, S as resolveEasCliBin, _ as exitAfterFlush, f as RESOLVE_TIMEOUT_MS, g as easAuthNote, h as checkEasAuth, l as parkedMaxSetting, m as cacheLevel, p as UPLOAD_TIMEOUT_MS, v as isEasAuthFailureText, w as uploadRemote, y as loadProjectProvider } from "./teardown-sm1FwF6V.mjs";
|
|
16
|
+
import { c as ensureWorkspaceStorageSafely, d as launchOutcomeRecord, f as noMetroMessage, g as warmMetro, i as detectEntryFile, m as resolveMetroWithRetry, n as pickDevClientScheme, o as needsPrebuild, p as noMetroRemedy, s as runPrebuild, t as devClientScheme, u as isPhysicalDeviceRequest, v as isEasBuildFailure, y as resolveEasDevelopmentBuild } from "./dev-client-BaTXAAnC.mjs";
|
|
17
|
+
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-Bz19_R9R.mjs";
|
|
18
18
|
import { D as verifyAndroidReleaseLaunch, E as unverifiedLaunchLines, O as verifyLaunch, S as launchAndroidReleaseApp, _ as installConflictKind, c as RELEASE_VERIFY_WAIT_MS, d as androidDevClientUrl, g as installAndroidApp, h as deviceShellArg, i as LAUNCH_BUNDLING, l as VERIFY_TIMEOUT_MS, n as DEFAULT_METRO_PORT, o as LAUNCH_FATAL, s as LAUNCH_UNVERIFIED, t as ADB_INSTALL_TIMEOUT_MS, u as androidAppProcess, x as launchAndroidApp } from "./app-install--PAocWvq.mjs";
|
|
19
|
-
import { a as lostLine, c as releaseLeaseOnSignal, i as leaseExpiryText, l as runLease, n as DEBUG_VERIFY_STEP_MS, o as lostRefusal, r as acquireRunLease, s as parseDeviceWait, t as selectFromPool, u as waitFlagConflict } from "./device-pool-
|
|
20
|
-
import { r as releaseBuildSlot, t as acquireBuildSlot } from "./build-slots-
|
|
21
|
-
import { a as statsProjectKey, i as recordRunStats, n as readRunEstimates, t as createRunRecorder } from "./stats-
|
|
22
|
-
import { i as ensureOwnedDevice, l as AvdBootError, o as unknownAndroidSystemImageRefusal, r as ensureBooted, t as checkDeviceCapacity, u as AvdRecoveryError } from "./device-
|
|
23
|
-
import { a as ensureMetroReachable, b as ownedSessionName, l as resolveRemoteContext, n as binOnPath, o as ensureRemoteBootOwned, s as remoteAndroidDeps } from "./device-remote-
|
|
24
|
-
import { a as buildAndroid, c as CCACHE_NOT_RUN, f as resolveCcache, l as CCACHE_UNAVAILABLE, n as resolveAndroidCas, o as productFlavorRefusal, p as formatDiagnostic, r as resolveAndroidCompilerCache, s as readProductFlavors, u as ccacheActivityLine } from "./android-cas-
|
|
25
|
-
import { d as startBuildHeartbeat, f as tailLines, n as HEARTBEAT_INTERVAL_MS } from "./xcode-
|
|
26
|
-
import { n as nativeRunCommand, t as launchSlotScope } from "./slot-launch-
|
|
19
|
+
import { a as lostLine, c as releaseLeaseOnSignal, i as leaseExpiryText, l as runLease, n as DEBUG_VERIFY_STEP_MS, o as lostRefusal, r as acquireRunLease, s as parseDeviceWait, t as selectFromPool, u as waitFlagConflict } from "./device-pool-C0s_83Og.mjs";
|
|
20
|
+
import { r as releaseBuildSlot, t as acquireBuildSlot } from "./build-slots-CuPszJDu.mjs";
|
|
21
|
+
import { a as statsProjectKey, i as recordRunStats, n as readRunEstimates, t as createRunRecorder } from "./stats-Fo9ACIv7.mjs";
|
|
22
|
+
import { i as ensureOwnedDevice, l as AvdBootError, o as unknownAndroidSystemImageRefusal, r as ensureBooted, t as checkDeviceCapacity, u as AvdRecoveryError } from "./device-XY_5eGdN.mjs";
|
|
23
|
+
import { a as ensureMetroReachable, b as ownedSessionName, l as resolveRemoteContext, n as binOnPath, o as ensureRemoteBootOwned, s as remoteAndroidDeps } from "./device-remote-D9wN3CdE.mjs";
|
|
24
|
+
import { a as buildAndroid, c as CCACHE_NOT_RUN, f as resolveCcache, l as CCACHE_UNAVAILABLE, n as resolveAndroidCas, o as productFlavorRefusal, p as formatDiagnostic, r as resolveAndroidCompilerCache, s as readProductFlavors, u as ccacheActivityLine } from "./android-cas-CrzI_Zha.mjs";
|
|
25
|
+
import { d as startBuildHeartbeat, f as tailLines, n as HEARTBEAT_INTERVAL_MS } from "./xcode-DUF7jrXj.mjs";
|
|
26
|
+
import { n as nativeRunCommand, t as launchSlotScope } from "./slot-launch-BYjnljAs.mjs";
|
|
27
27
|
import { t as spawnEntry } from "./spawn-entry-nCE6m770.mjs";
|
|
28
|
-
import { a as printNativeCrashReport, r as captureNativeCrashes, t as errorDiagnostics } from "./error-diagnostics-
|
|
28
|
+
import { a as printNativeCrashReport, r as captureNativeCrashes, t as errorDiagnostics } from "./error-diagnostics-B5STzxqN.mjs";
|
|
29
29
|
import { existsSync, mkdirSync, openSync, readFileSync, readdirSync, rmSync } from "node:fs";
|
|
30
30
|
import { InvalidArgumentError } from "commander";
|
|
31
31
|
import { basename, dirname, join, relative } from "node:path";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
|
-
import { D as withDirLock, u as getConfigDir } from "./config-
|
|
3
|
-
import { r as register } from "./cache-manifest-
|
|
4
|
-
import { _ as workspaceLogsDir, c as ensureWorkspaceStorage, u as sharedCcache } from "./workspace-state-
|
|
2
|
+
import { D as withDirLock, u as getConfigDir } from "./config-DMP7L7H6.mjs";
|
|
3
|
+
import { r as register } from "./cache-manifest-uoOKhgUD.mjs";
|
|
4
|
+
import { _ as workspaceLogsDir, c as ensureWorkspaceStorage, u as sharedCcache } from "./workspace-state-WVwWw_hB.mjs";
|
|
5
5
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-C7IlIzd7.mjs";
|
|
6
6
|
import { l as phaseLine } from "./command-output-BuIb_ZOI.mjs";
|
|
7
|
-
import { n as androidHome } from "./android-
|
|
8
|
-
import { d as startBuildHeartbeat, n as HEARTBEAT_INTERVAL_MS } from "./xcode-
|
|
7
|
+
import { n as androidHome } from "./android-BkYmndPp.mjs";
|
|
8
|
+
import { d as startBuildHeartbeat, n as HEARTBEAT_INTERVAL_MS } from "./xcode-DUF7jrXj.mjs";
|
|
9
9
|
import { accessSync, constants, existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
|
|
10
10
|
import { createHash, randomUUID } from "node:crypto";
|
|
11
11
|
import { dirname, isAbsolute, join, relative } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as ownership_claim_exports, u as getConfigDir } from "./config-
|
|
1
|
+
import { E as ownership_claim_exports, u as getConfigDir } from "./config-DMP7L7H6.mjs";
|
|
2
2
|
import { a as formatElapsed } from "./command-output-BuIb_ZOI.mjs";
|
|
3
3
|
import { readdirSync, statSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
package/dist/cache-manifest.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-
|
|
1
|
+
import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-uoOKhgUD.mjs";
|
|
2
2
|
export { manifestPath, readManifest, register, registeredCaches, unregister };
|
package/dist/cli.mjs
CHANGED
|
@@ -3,20 +3,20 @@ import { readFileSync } from "node:fs";
|
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
//#region bin/cli.ts
|
|
5
5
|
const commands = /* @__PURE__ */ new Map([
|
|
6
|
-
["doctor", () => import("./doctor-
|
|
7
|
-
["worktree", () => import("./worktree-
|
|
8
|
-
["start", () => import("./start-
|
|
9
|
-
["ports", () => import("./ports-
|
|
10
|
-
["stop", () => import("./stop-
|
|
11
|
-
["ios", () => import("./ios-
|
|
12
|
-
["android", () => import("./android-
|
|
13
|
-
["reload", () => import("./reload-
|
|
14
|
-
["device", () => import("./device-
|
|
15
|
-
["logs", () => import("./logs-
|
|
16
|
-
["status", () => import("./status-
|
|
17
|
-
["stats", () => import("./stats-
|
|
18
|
-
["gc", () => import("./gc-
|
|
19
|
-
["guide", () => import("./guide-
|
|
6
|
+
["doctor", () => import("./doctor-BRO8UKlK.mjs")],
|
|
7
|
+
["worktree", () => import("./worktree-CCNPg_f0.mjs")],
|
|
8
|
+
["start", () => import("./start-DHYAyGzm.mjs")],
|
|
9
|
+
["ports", () => import("./ports-A6uTJSPj.mjs")],
|
|
10
|
+
["stop", () => import("./stop-CHTaw65F.mjs")],
|
|
11
|
+
["ios", () => import("./ios-Ccm6c8Hj.mjs")],
|
|
12
|
+
["android", () => import("./android-DLJB8ljN.mjs")],
|
|
13
|
+
["reload", () => import("./reload-xlQvHKfN.mjs")],
|
|
14
|
+
["device", () => import("./device-xoQxw8hR.mjs")],
|
|
15
|
+
["logs", () => import("./logs-D4Poojxy.mjs")],
|
|
16
|
+
["status", () => import("./status-QeLZb8SM.mjs")],
|
|
17
|
+
["stats", () => import("./stats-DHrO0frH.mjs")],
|
|
18
|
+
["gc", () => import("./gc-C-6grAQI.mjs")],
|
|
19
|
+
["guide", () => import("./guide-CYtd7xbA.mjs")]
|
|
20
20
|
]);
|
|
21
21
|
const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
|
|
22
22
|
const program = new Command();
|
package/dist/collector-run.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
|
-
import { P as deviceSlotKey, w as process_identity_exports, z as validateDeviceSlot } from "./config-
|
|
2
|
+
import { P as deviceSlotKey, w as process_identity_exports, z as validateDeviceSlot } from "./config-DMP7L7H6.mjs";
|
|
3
3
|
import { r as createNdjsonWriter } from "./ndjson-BZwI1NBv.mjs";
|
|
4
|
-
import { _ as workspaceLogsDir } from "./workspace-state-
|
|
4
|
+
import { _ as workspaceLogsDir } from "./workspace-state-WVwWw_hB.mjs";
|
|
5
5
|
import { t as createLineReader } from "./process-output-C7IlIzd7.mjs";
|
|
6
6
|
import { i as startIosDeviceConsole, r as parseDeviceConsoleLine } from "./ios-device-D3pzTKQE.mjs";
|
|
7
|
-
import { a as unregisterCollector, i as registerCollector, r as readCollectors, t as collectorProcessTitle } from "./ownership-
|
|
7
|
+
import { a as unregisterCollector, i as registerCollector, r as readCollectors, t as collectorProcessTitle } from "./ownership-CD_XnpDu.mjs";
|
|
8
8
|
import { a as watchAppPid, i as waitForAppPid, n as parseLogcatLine, r as startAndroidLogcat, t as androidClockOffset } from "./android-BW8i_YxU.mjs";
|
|
9
9
|
import { existsSync } from "node:fs";
|
|
10
10
|
import { isAbsolute, join, resolve } from "node:path";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { g as repoRoot } from "./worktree-DJnBbQZ9.mjs";
|
|
3
3
|
import { existsSync } from "node:fs";
|
|
4
4
|
import { dirname, join, relative } from "node:path";
|
|
5
5
|
//#region src/dependency-state.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
2
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-C7IlIzd7.mjs";
|
|
3
|
-
import { d as startBuildHeartbeat, m as bundlerPin, n as HEARTBEAT_INTERVAL_MS } from "./xcode-
|
|
3
|
+
import { d as startBuildHeartbeat, m as bundlerPin, n as HEARTBEAT_INTERVAL_MS } from "./xcode-DUF7jrXj.mjs";
|
|
4
4
|
import { existsSync, readFileSync } from "node:fs";
|
|
5
5
|
import { dirname, join, relative, resolve, sep } from "node:path";
|
|
6
6
|
import { homedir } from "node:os";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
|
-
import { E as ownership_claim_exports } from "./config-
|
|
3
|
-
import { c as ensureWorkspaceStorage } from "./workspace-state-
|
|
4
|
-
import {
|
|
5
|
-
import { i as detectIsExpo, o as isPackageResolvable } from "./project-
|
|
2
|
+
import { E as ownership_claim_exports } from "./config-DMP7L7H6.mjs";
|
|
3
|
+
import { c as ensureWorkspaceStorage } from "./workspace-state-WVwWw_hB.mjs";
|
|
4
|
+
import { T as removeTemporaryEntry, w as makeTemporaryDirectory } from "./worktree-DJnBbQZ9.mjs";
|
|
5
|
+
import { i as detectIsExpo, o as isPackageResolvable } from "./project-B_SDt4ip.mjs";
|
|
6
6
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-C7IlIzd7.mjs";
|
|
7
|
-
import { t as NOT_OURS_FOREIGN_CWD } from "./metro-
|
|
8
|
-
import { V as releaseBuildLock, z as acquireBuildLock } from "./android-
|
|
9
|
-
import { i as expoBinRefusal, r as expoBinPath, t as cleanLine } from "./server-expo-
|
|
10
|
-
import { S as resolveEasCliBin } from "./teardown-
|
|
7
|
+
import { t as NOT_OURS_FOREIGN_CWD } from "./metro-ato6ef3J.mjs";
|
|
8
|
+
import { V as releaseBuildLock, z as acquireBuildLock } from "./android-BkYmndPp.mjs";
|
|
9
|
+
import { i as expoBinRefusal, r as expoBinPath, t as cleanLine } from "./server-expo-CX-zkgWl.mjs";
|
|
10
|
+
import { S as resolveEasCliBin } from "./teardown-sm1FwF6V.mjs";
|
|
11
11
|
import { i as LAUNCH_BUNDLING, s as LAUNCH_UNVERIFIED } from "./app-install--PAocWvq.mjs";
|
|
12
|
-
import { d as startBuildHeartbeat, f as tailLines, n as HEARTBEAT_INTERVAL_MS } from "./xcode-
|
|
12
|
+
import { d as startBuildHeartbeat, f as tailLines, n as HEARTBEAT_INTERVAL_MS } from "./xcode-DUF7jrXj.mjs";
|
|
13
13
|
import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync } from "node:fs";
|
|
14
14
|
import { createHash } from "node:crypto";
|
|
15
15
|
import { basename, join } from "node:path";
|
|
@@ -1,14 +1,14 @@
|
|
|
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, T as acquireAvdClaim, _ as releaseAndroidConsolePort, b as setDevice, g as loadConfig, i as clearDevice, t as allConsolePortsAndSerials, u as getConfigDir, w as process_identity_exports, y as saveConfig } from "./config-
|
|
3
|
-
import { g as workspaceId } from "./workspace-state-
|
|
4
|
-
import { s as ownedDeviceLabel } from "./project-
|
|
2
|
+
import { C as withConfigLock, E as ownership_claim_exports, F as deviceSlotPlatforms, L as projectDeviceSlots, T as acquireAvdClaim, _ as releaseAndroidConsolePort, b as setDevice, g as loadConfig, i as clearDevice, t as allConsolePortsAndSerials, u as getConfigDir, w as process_identity_exports, y as saveConfig } from "./config-DMP7L7H6.mjs";
|
|
3
|
+
import { g as workspaceId } from "./workspace-state-WVwWw_hB.mjs";
|
|
4
|
+
import { s as ownedDeviceLabel } from "./project-B_SDt4ip.mjs";
|
|
5
5
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-C7IlIzd7.mjs";
|
|
6
|
-
import { r as pidExists } from "./metro-
|
|
6
|
+
import { r as pidExists } from "./metro-ato6ef3J.mjs";
|
|
7
7
|
import { l as phaseLine } from "./command-output-BuIb_ZOI.mjs";
|
|
8
|
-
import { A as pickDefaultSystemImage, D as ownedAvdName, E as ownedAvdMatchesConfiguration, L as waitForBoot, N as resolveOwnedAvdSerial, O as ownedAvdSystemImage, b as listAvds, c as avdPoolConfiguration, d as configureNewOwnedAvd, f as createOwnedAvd, o as assertOwnedAvdStopped, u as bootAndroidEmulator, v as getAvdNameForSerial, w as nextConsolePort, x as listInstalledSystemImages, y as listAdbDevices } from "./android-
|
|
9
|
-
import { l as androidDataPartitionSizeGbSetting, o as androidAvdConfigSetting, v as iosSimSlimProfileSetting } from "./settings-
|
|
10
|
-
import { c as isLegacyDeletionClaim, d as selectParked, i as teardownParkedIosSim, l as parkedMaxSetting, o as adoptParked, r as teardownParkedAvd, s as dropParked, t as teardownOwnedAvd, u as readParked } from "./teardown-
|
|
11
|
-
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-
|
|
8
|
+
import { A as pickDefaultSystemImage, D as ownedAvdName, E as ownedAvdMatchesConfiguration, L as waitForBoot, N as resolveOwnedAvdSerial, O as ownedAvdSystemImage, b as listAvds, c as avdPoolConfiguration, d as configureNewOwnedAvd, f as createOwnedAvd, o as assertOwnedAvdStopped, u as bootAndroidEmulator, v as getAvdNameForSerial, w as nextConsolePort, x as listInstalledSystemImages, y as listAdbDevices } from "./android-BkYmndPp.mjs";
|
|
9
|
+
import { l as androidDataPartitionSizeGbSetting, o as androidAvdConfigSetting, v as iosSimSlimProfileSetting } from "./settings-CGHTt5vb.mjs";
|
|
10
|
+
import { c as isLegacyDeletionClaim, d as selectParked, i as teardownParkedIosSim, l as parkedMaxSetting, o as adoptParked, r as teardownParkedAvd, s as dropParked, t as teardownOwnedAvd, u as readParked } from "./teardown-sm1FwF6V.mjs";
|
|
11
|
+
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-Bz19_R9R.mjs";
|
|
12
12
|
import { E as readHostMemoryPressure, T as hostMemoryPressureAdvice, _ as renameIosSim, b as resolveIosCreation, c as iosRuntimeMatches, d as listIosDeviceTypes, g as parseRuntimeVersion, i as createOwnedIosSim, l as iosSimulatorFailureAdvice, m as ownedSimName, n as bootIosSim, u as listAllIosSims, v as resetIosKeychain, x as resolveOwnedIosSim, y as resetIosPrivacy } from "./ios-Deh5js5V.mjs";
|
|
13
13
|
import { randomUUID } from "node:crypto";
|
|
14
14
|
import { join } from "node:path";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { D as withDirLock, I as parseDeviceSlotKey, P as deviceSlotKey, u as getConfigDir, z as validateDeviceSlot } from "./config-
|
|
2
|
-
import { a as withWorkspaceStateLock, n as clearWorkspaceStateKeys, o as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-
|
|
3
|
-
import { H as segment } from "./android-
|
|
1
|
+
import { D as withDirLock, I as parseDeviceSlotKey, P as deviceSlotKey, u as getConfigDir, z as validateDeviceSlot } from "./config-DMP7L7H6.mjs";
|
|
2
|
+
import { a as withWorkspaceStateLock, n as clearWorkspaceStateKeys, o as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-WVwWw_hB.mjs";
|
|
3
|
+
import { H as segment } from "./android-BkYmndPp.mjs";
|
|
4
4
|
import { mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
5
5
|
import { randomBytes } from "node:crypto";
|
|
6
6
|
import { join } from "node:path";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as deviceSlotKey } from "./config-
|
|
1
|
+
import { P as deviceSlotKey } from "./config-DMP7L7H6.mjs";
|
|
2
2
|
import { a as formatElapsed, r as clockTime } from "./command-output-BuIb_ZOI.mjs";
|
|
3
3
|
import { A as APP_READINESS_TIMEOUT_MS, l as VERIFY_TIMEOUT_MS } from "./app-install--PAocWvq.mjs";
|
|
4
|
-
import { a as parseLease, c as releaseRunLease, d as selectPoolDevice, f as takeLease, n as fileLeaseIo, r as leaseIsExpired, s as raiseLease, t as deviceLeasePath } from "./device-lease-
|
|
4
|
+
import { a as parseLease, c as releaseRunLease, d as selectPoolDevice, f as takeLease, n as fileLeaseIo, r as leaseIsExpired, s as raiseLease, t as deviceLeasePath } from "./device-lease-DBW-IL4p.mjs";
|
|
5
5
|
//#region src/engine/device-lease-run.ts
|
|
6
6
|
const LEASE_STEP_FLOOR_MS = 6e4;
|
|
7
7
|
const DEBUG_VERIFY_STEP_MS = VERIFY_TIMEOUT_MS + APP_READINESS_TIMEOUT_MS;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
|
-
import { D as withDirLock, u as getConfigDir } from "./config-
|
|
3
|
-
import { _ as workspaceLogsDir, h as workspaceDir, v as workspaceName, y as workspaceStateFile } from "./workspace-state-
|
|
4
|
-
import { a as clearRemoteSession, l as readRemoteSession, s as readMetroTunnel } from "./state-
|
|
5
|
-
import { r as pidExists } from "./metro-
|
|
6
|
-
import { z as planMetroReach } from "./settings-
|
|
7
|
-
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-
|
|
2
|
+
import { D as withDirLock, u as getConfigDir } from "./config-DMP7L7H6.mjs";
|
|
3
|
+
import { _ as workspaceLogsDir, h as workspaceDir, v as workspaceName, y as workspaceStateFile } from "./workspace-state-WVwWw_hB.mjs";
|
|
4
|
+
import { a as clearRemoteSession, l as readRemoteSession, s as readMetroTunnel } from "./state-CnWzvCWP.mjs";
|
|
5
|
+
import { r as pidExists } from "./metro-ato6ef3J.mjs";
|
|
6
|
+
import { z as planMetroReach } from "./settings-CGHTt5vb.mjs";
|
|
7
|
+
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-Bz19_R9R.mjs";
|
|
8
8
|
import { T as readMetroRecords, a as LAUNCH_ERROR, b as isBundleProof, p as devClientDeepLink, r as INSTALL_ERROR } from "./app-install--PAocWvq.mjs";
|
|
9
9
|
import { S as sanitizeDeviceLabel } from "./ios-Deh5js5V.mjs";
|
|
10
10
|
import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { z as validateDeviceSlot } from "./config-
|
|
2
|
-
import { a as findProjectRoot } from "./project-
|
|
1
|
+
import { z as validateDeviceSlot } from "./config-DMP7L7H6.mjs";
|
|
2
|
+
import { a as findProjectRoot } from "./project-B_SDt4ip.mjs";
|
|
3
3
|
import { r as clockTime } from "./command-output-BuIb_ZOI.mjs";
|
|
4
|
-
import { C as memoizeEmulatorProbe, P as resolvePhysicalDevice, i as androidPoolNoCandidatesRefusal, j as probeEmulatorSerial, k as physicalDeviceModel, r as androidPoolCandidates, y as listAdbDevices } from "./android-
|
|
5
|
-
import { f as takeLease, l as releaseWorkspaceLeases, n as fileLeaseIo, o as parseLeaseDuration } from "./device-lease-
|
|
6
|
-
import { d as waitForDevice, s as parseDeviceWait, t as selectFromPool } from "./device-pool-
|
|
4
|
+
import { C as memoizeEmulatorProbe, P as resolvePhysicalDevice, i as androidPoolNoCandidatesRefusal, j as probeEmulatorSerial, k as physicalDeviceModel, r as androidPoolCandidates, y as listAdbDevices } from "./android-BkYmndPp.mjs";
|
|
5
|
+
import { f as takeLease, l as releaseWorkspaceLeases, n as fileLeaseIo, o as parseLeaseDuration } from "./device-lease-DBW-IL4p.mjs";
|
|
6
|
+
import { d as waitForDevice, s as parseDeviceWait, t as selectFromPool } from "./device-pool-C0s_83Og.mjs";
|
|
7
7
|
import { c as listIosDevices, o as iosPoolCandidates, s as iosPoolNoCandidatesRefusal, u as resolveIosPhysicalDevice } from "./ios-device-DJOi9FR5.mjs";
|
|
8
8
|
import chalk from "chalk";
|
|
9
9
|
//#region src/commands/device.ts
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CyylIdq9.mjs";
|
|
2
|
-
import { g as loadConfig, l as getConcurrencyLimits, o as configCorruptRepair } from "./config-
|
|
3
|
-
import { l as sharedBuildCache, m as workspaceDerivedData } from "./workspace-state-
|
|
4
|
-
import { C as
|
|
5
|
-
import { a as findProjectRoot, i as detectIsExpo, t as appProjectProblem } from "./project-
|
|
2
|
+
import { g as loadConfig, l as getConcurrencyLimits, o as configCorruptRepair } from "./config-DMP7L7H6.mjs";
|
|
3
|
+
import { l as sharedBuildCache, m as workspaceDerivedData } from "./workspace-state-WVwWw_hB.mjs";
|
|
4
|
+
import { C as filesystemDevice, E as temporaryRoot, a as dirtyFingerprintFiles, d as listWorktrees, f as locallyKnownUpstream, g as repoRoot, s as gitCommonDir, v as resolveSourceCheckout, w as makeTemporaryDirectory } from "./worktree-DJnBbQZ9.mjs";
|
|
5
|
+
import { a as findProjectRoot, i as detectIsExpo, t as appProjectProblem } from "./project-B_SDt4ip.mjs";
|
|
6
6
|
import { d as quotedPath, l as phaseLine, u as plural } from "./command-output-BuIb_ZOI.mjs";
|
|
7
|
-
import { B as listBuildLocks, Z as fingerprintProject, q as diffFingerprintSources, y as listAdbDevices } from "./android-
|
|
8
|
-
import { A as resolveSettings, E as remoteAndroidSetting, I as unknownSettingKeys, M as settingOrigin, N as settingShapeErrors, O as remoteIosSetting, P as settingsLayers, U as resolveOptimizations, V as compilerCacheFallbackMessage, a as SETTING_SHAPE_REMEDY, i as SETTINGS_WITH_RESOLVE_TIME_FALLBACK, n as PATH_SETTINGS, v as iosSimSlimProfileSetting, w as projectOptimizations, y as mergeSettingsLayers } from "./settings-
|
|
9
|
-
import { S as resolveEasCliBin, a as POOL_SETTING_REMEDY, b as ownerFromConfig, h as checkEasAuth$1, l as parkedMaxSetting, x as providerFromConfig } from "./teardown-
|
|
7
|
+
import { B as listBuildLocks, Z as fingerprintProject, q as diffFingerprintSources, y as listAdbDevices } from "./android-BkYmndPp.mjs";
|
|
8
|
+
import { A as resolveSettings, E as remoteAndroidSetting, I as unknownSettingKeys, M as settingOrigin, N as settingShapeErrors, O as remoteIosSetting, P as settingsLayers, U as resolveOptimizations, V as compilerCacheFallbackMessage, a as SETTING_SHAPE_REMEDY, i as SETTINGS_WITH_RESOLVE_TIME_FALLBACK, n as PATH_SETTINGS, v as iosSimSlimProfileSetting, w as projectOptimizations, y as mergeSettingsLayers } from "./settings-CGHTt5vb.mjs";
|
|
9
|
+
import { S as resolveEasCliBin, a as POOL_SETTING_REMEDY, b as ownerFromConfig, h as checkEasAuth$1, l as parkedMaxSetting, x as providerFromConfig } from "./teardown-sm1FwF6V.mjs";
|
|
10
10
|
import { E as readHostMemoryPressure, T as hostMemoryPressureAdvice, u as listAllIosSims } from "./ios-Deh5js5V.mjs";
|
|
11
|
-
import { n as listBuildSlots } from "./build-slots-
|
|
12
|
-
import { a as liveOwnedDeviceCount, d as simslimIsOnPath } from "./device-
|
|
13
|
-
import { d as projectCmakeLauncher, i as apkOutputsDir, r as resolveAndroidCompilerCache, t as readAndroidCasToolchain } from "./android-cas-
|
|
14
|
-
import { h as podInstallCommand, i as ccacheEnabled, o as detectXcodeMajor } from "./xcode-
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
11
|
+
import { n as listBuildSlots } from "./build-slots-CuPszJDu.mjs";
|
|
12
|
+
import { a as liveOwnedDeviceCount, d as simslimIsOnPath } from "./device-XY_5eGdN.mjs";
|
|
13
|
+
import { d as projectCmakeLauncher, i as apkOutputsDir, r as resolveAndroidCompilerCache, t as readAndroidCasToolchain } from "./android-cas-CrzI_Zha.mjs";
|
|
14
|
+
import { h as podInstallCommand, i as ccacheEnabled, o as detectXcodeMajor } from "./xcode-DUF7jrXj.mjs";
|
|
15
|
+
import { i as inspectStimVersions, n as recordDoctorRun, r as compareStimVersions } from "./guide-status-BF6RsJJp.mjs";
|
|
16
|
+
import { n as hasInstalledDependencies, r as installedNpmTreeIsValid, t as dependencyState } from "./dependency-state-CTL8A9p3.mjs";
|
|
17
|
+
import { existsSync, lstatSync, readFileSync, readdirSync, realpathSync, rmSync } from "node:fs";
|
|
17
18
|
import { InvalidArgumentError } from "commander";
|
|
18
|
-
import { basename,
|
|
19
|
+
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
19
20
|
import { existsSync as existsSync$1, lstatSync as lstatSync$1, mkdirSync as mkdirSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, realpathSync as realpathSync$1, renameSync as renameSync$1, rmSync as rmSync$1, writeFileSync as writeFileSync$1 } from "fs";
|
|
20
21
|
import { homedir } from "os";
|
|
21
22
|
import { dirname as dirname$1, isAbsolute as isAbsolute$1, join as join$1, relative as relative$1, resolve as resolve$1 } from "path";
|
|
@@ -238,7 +239,8 @@ function checkStorageLayout(projectRoot, { platform, device = filesystemDevice,
|
|
|
238
239
|
};
|
|
239
240
|
try {
|
|
240
241
|
const target = repoRoot(projectRoot) ?? projectRoot;
|
|
241
|
-
|
|
242
|
+
const source = resolveSourceCheckout(target);
|
|
243
|
+
check("Worktree copy", ["path" in source ? source.path : target, target], "Keep the source checkout and linked worktree on the same volume to share file blocks when warming.");
|
|
242
244
|
const cache = sharedBuildCache();
|
|
243
245
|
check("Cached app/APK staging", [cache, stagingRoot(join(cache, "artifact.app"))], temporaryFix);
|
|
244
246
|
const cacheFix = "Place STIM_BUILD_CACHE / machine caches.buildCache on the build-output volume, or accept the full-copy cost of keeping the cache on a separate volume.";
|
|
@@ -657,11 +659,11 @@ function mainCheckoutProjectRoot(projectRoot) {
|
|
|
657
659
|
const currentRepoRoot = repoRoot(projectRoot);
|
|
658
660
|
if (!currentRepoRoot) return projectRoot;
|
|
659
661
|
try {
|
|
660
|
-
const
|
|
661
|
-
if (
|
|
662
|
+
const source = resolveSourceCheckout(currentRepoRoot);
|
|
663
|
+
if ("refusal" in source) return projectRoot;
|
|
662
664
|
const projectRel = relative$1(currentRepoRoot, realpathSync$1(projectRoot));
|
|
663
665
|
if (projectRel.startsWith("..")) return projectRoot;
|
|
664
|
-
return resolve$1(
|
|
666
|
+
return resolve$1(source.path, projectRel);
|
|
665
667
|
} catch {
|
|
666
668
|
return projectRoot;
|
|
667
669
|
}
|
|
@@ -692,7 +694,7 @@ function hasIosWarmOutput(root) {
|
|
|
692
694
|
function hasLinkedWorktree(projectRoot) {
|
|
693
695
|
const root = repoRoot(projectRoot);
|
|
694
696
|
if (!root) return false;
|
|
695
|
-
return listWorktrees(root).filter((entry) => !entry.prunable).length > 1;
|
|
697
|
+
return listWorktrees(root).filter((entry) => !entry.prunable && !entry.bare).length > 1;
|
|
696
698
|
}
|
|
697
699
|
function headBranch(root) {
|
|
698
700
|
const ref = getExecutor().runFileQuiet("git", [
|
|
@@ -1234,154 +1236,6 @@ async function detectFingerprintParity(projectRoot, { createFingerprint = expoFi
|
|
|
1234
1236
|
}
|
|
1235
1237
|
}
|
|
1236
1238
|
//#endregion
|
|
1237
|
-
//#region src/stim-installations.ts
|
|
1238
|
-
const VERSION_OUTPUT_LIMIT = 4096;
|
|
1239
|
-
function parsedVersion(version) {
|
|
1240
|
-
const match = /^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(version);
|
|
1241
|
-
if (!match) return null;
|
|
1242
|
-
const core = [
|
|
1243
|
-
match[1],
|
|
1244
|
-
match[2],
|
|
1245
|
-
match[3]
|
|
1246
|
-
];
|
|
1247
|
-
if (core.some((part) => part.length > 1 && part.startsWith("0"))) return null;
|
|
1248
|
-
const prereleaseParts = match[4]?.split(".");
|
|
1249
|
-
if (prereleaseParts?.some((part) => !part || /^\d+$/.test(part) && part.length > 1 && part.startsWith("0"))) return null;
|
|
1250
|
-
const prerelease = prereleaseParts?.map((part) => /^\d+$/.test(part) ? Number(part) : part);
|
|
1251
|
-
return {
|
|
1252
|
-
core: core.map(Number),
|
|
1253
|
-
prerelease: prerelease ?? null
|
|
1254
|
-
};
|
|
1255
|
-
}
|
|
1256
|
-
function compareStimVersions(left, right) {
|
|
1257
|
-
const a = parsedVersion(left);
|
|
1258
|
-
const b = parsedVersion(right);
|
|
1259
|
-
if (!a || !b) return null;
|
|
1260
|
-
for (let index = 0; index < a.core.length; index += 1) {
|
|
1261
|
-
const difference = (a.core[index] ?? 0) - (b.core[index] ?? 0);
|
|
1262
|
-
if (difference !== 0) return difference;
|
|
1263
|
-
}
|
|
1264
|
-
if (!a.prerelease && !b.prerelease) return 0;
|
|
1265
|
-
if (!a.prerelease) return 1;
|
|
1266
|
-
if (!b.prerelease) return -1;
|
|
1267
|
-
for (let index = 0; index < Math.max(a.prerelease.length, b.prerelease.length); index += 1) {
|
|
1268
|
-
const x = a.prerelease[index];
|
|
1269
|
-
const y = b.prerelease[index];
|
|
1270
|
-
if (x === void 0) return -1;
|
|
1271
|
-
if (y === void 0) return 1;
|
|
1272
|
-
if (x === y) continue;
|
|
1273
|
-
if (typeof x === "number" && typeof y === "number") return x - y;
|
|
1274
|
-
if (typeof x === "number") return -1;
|
|
1275
|
-
if (typeof y === "number") return 1;
|
|
1276
|
-
return x < y ? -1 : 1;
|
|
1277
|
-
}
|
|
1278
|
-
return 0;
|
|
1279
|
-
}
|
|
1280
|
-
function parseStimVersionOutput(output) {
|
|
1281
|
-
const version = output?.split("\n")[0]?.trim() ?? "";
|
|
1282
|
-
return parsedVersion(version) ? version.replace(/^v/, "") : null;
|
|
1283
|
-
}
|
|
1284
|
-
function executableNames(platform) {
|
|
1285
|
-
return platform === "win32" ? [
|
|
1286
|
-
"stim.cmd",
|
|
1287
|
-
"stim.exe",
|
|
1288
|
-
"stim"
|
|
1289
|
-
] : ["stim"];
|
|
1290
|
-
}
|
|
1291
|
-
function stimExecutablePaths(pathValue, { platform = process.platform, cwd = process.cwd() } = {}) {
|
|
1292
|
-
const found = [];
|
|
1293
|
-
const seen = /* @__PURE__ */ new Set();
|
|
1294
|
-
for (const entry of pathValue.split(delimiter)) {
|
|
1295
|
-
const directory = resolve(cwd, entry || ".");
|
|
1296
|
-
for (const name of executableNames(platform)) {
|
|
1297
|
-
const path = join(directory, name);
|
|
1298
|
-
try {
|
|
1299
|
-
accessSync(path, platform === "win32" ? constants.F_OK : constants.X_OK);
|
|
1300
|
-
if (!statSync(path).isFile()) continue;
|
|
1301
|
-
const realPath = realpathSync(path);
|
|
1302
|
-
if (seen.has(realPath)) continue;
|
|
1303
|
-
seen.add(realPath);
|
|
1304
|
-
found.push({
|
|
1305
|
-
path,
|
|
1306
|
-
realPath
|
|
1307
|
-
});
|
|
1308
|
-
} catch {}
|
|
1309
|
-
}
|
|
1310
|
-
}
|
|
1311
|
-
return found;
|
|
1312
|
-
}
|
|
1313
|
-
function canonicalPath(path) {
|
|
1314
|
-
if (!path) return null;
|
|
1315
|
-
try {
|
|
1316
|
-
return realpathSync(resolve(path));
|
|
1317
|
-
} catch {
|
|
1318
|
-
return resolve(path);
|
|
1319
|
-
}
|
|
1320
|
-
}
|
|
1321
|
-
function analyzeStimVersions(runningVersion, runningPath, installations) {
|
|
1322
|
-
const candidates = [runningVersion, ...installations.map((entry) => entry.version)];
|
|
1323
|
-
const versions = [...new Set(candidates)].filter((version) => version !== null && compareStimVersions(version, version) !== null).toSorted((left, right) => -(compareStimVersions(left, right) ?? 0));
|
|
1324
|
-
const highestVersion = versions[0] ?? null;
|
|
1325
|
-
const resolved = installations[0] ?? null;
|
|
1326
|
-
return {
|
|
1327
|
-
runningVersion,
|
|
1328
|
-
runningPath,
|
|
1329
|
-
resolved,
|
|
1330
|
-
installations,
|
|
1331
|
-
versions,
|
|
1332
|
-
highestVersion,
|
|
1333
|
-
resolvedIsOlder: Boolean(resolved?.version && highestVersion && (compareStimVersions(resolved.version, highestVersion) ?? 0) < 0)
|
|
1334
|
-
};
|
|
1335
|
-
}
|
|
1336
|
-
function probeStimVersion(path, timeoutMs) {
|
|
1337
|
-
return new Promise((resolveProbe) => {
|
|
1338
|
-
let settled = false;
|
|
1339
|
-
let output = "";
|
|
1340
|
-
const finish = (version) => {
|
|
1341
|
-
if (settled) return;
|
|
1342
|
-
settled = true;
|
|
1343
|
-
clearTimeout(timer);
|
|
1344
|
-
resolveProbe(version);
|
|
1345
|
-
};
|
|
1346
|
-
let child;
|
|
1347
|
-
try {
|
|
1348
|
-
child = getExecutor().spawn(path, ["--version"], {
|
|
1349
|
-
stdio: [
|
|
1350
|
-
"ignore",
|
|
1351
|
-
"pipe",
|
|
1352
|
-
"ignore"
|
|
1353
|
-
],
|
|
1354
|
-
detached: process.platform !== "win32"
|
|
1355
|
-
});
|
|
1356
|
-
} catch {
|
|
1357
|
-
resolveProbe(null);
|
|
1358
|
-
return;
|
|
1359
|
-
}
|
|
1360
|
-
const timer = setTimeout(() => {
|
|
1361
|
-
try {
|
|
1362
|
-
if (process.platform !== "win32" && child.pid) process.kill(-child.pid, "SIGKILL");
|
|
1363
|
-
else child.kill("SIGKILL");
|
|
1364
|
-
} catch {}
|
|
1365
|
-
finish(null);
|
|
1366
|
-
}, timeoutMs);
|
|
1367
|
-
child.stdout?.on("data", (chunk) => {
|
|
1368
|
-
if (output.length < VERSION_OUTPUT_LIMIT) output += String(chunk).slice(0, VERSION_OUTPUT_LIMIT - output.length);
|
|
1369
|
-
});
|
|
1370
|
-
child.on("error", () => finish(null));
|
|
1371
|
-
child.on("close", (code) => finish(code === 0 ? parseStimVersionOutput(output) : null));
|
|
1372
|
-
});
|
|
1373
|
-
}
|
|
1374
|
-
async function inspectStimVersions(runningVersion, { pathValue = process.env.PATH ?? "", runningPath = process.argv[1], probeTimeoutMs = 5e3 } = {}) {
|
|
1375
|
-
const paths = stimExecutablePaths(pathValue);
|
|
1376
|
-
const versions = await Promise.all(paths.map((entry) => probeStimVersion(entry.path, probeTimeoutMs)));
|
|
1377
|
-
const installations = paths.map((entry, index) => ({
|
|
1378
|
-
path: entry.path,
|
|
1379
|
-
realPath: entry.realPath,
|
|
1380
|
-
version: versions[index] ?? null
|
|
1381
|
-
}));
|
|
1382
|
-
return analyzeStimVersions(runningVersion, canonicalPath(runningPath), installations);
|
|
1383
|
-
}
|
|
1384
|
-
//#endregion
|
|
1385
1239
|
//#region src/commands/doctor.ts
|
|
1386
1240
|
function parseDoctorPlatform(value) {
|
|
1387
1241
|
if (value === "ios" || value === "android") return value;
|
|
@@ -1485,7 +1339,7 @@ function applySandboxFix(root, env = process.env) {
|
|
|
1485
1339
|
console.error(chalk.dim("Added writes to Stim's state directory, the simulator XPC service, and local port binding. Claude Code reads project settings from the directory a session starts in, so this file only counts for sessions rooted there. Restart the session for it to take effect."));
|
|
1486
1340
|
}
|
|
1487
1341
|
function doctorCommand(program, version, inspectVersions = inspectStimVersions) {
|
|
1488
|
-
program.command("doctor").description("Inspect the source checkout and report project state that can make native worktrees slow or invalid.
|
|
1342
|
+
program.command("doctor").description("Inspect the source checkout and report project state that can make native worktrees slow or invalid. The checkout is left untouched unless --fix is passed; --platform filters native findings. Each run is recorded in Stim state so guide can say when doctor is due.").option("--json", "print the findings as JSON").option("--platform <platform>", "report shared findings plus only this native platform: ios or android", parseDoctorPlatform).option("--fix", "repair the sandbox allowance when the report names it, and stale Android .cxx configurations in this checkout. Stop native builds first. Generated CMake output must be ignored and untracked; custom launcher settings and source files are preserved.").action(async (opts) => {
|
|
1489
1343
|
const root = findProjectRoot(process.cwd());
|
|
1490
1344
|
if (!root) {
|
|
1491
1345
|
console.error(chalk.red("Not in a React Native project (no package.json found)."));
|
|
@@ -1526,6 +1380,7 @@ function doctorCommand(program, version, inspectVersions = inspectStimVersions)
|
|
|
1526
1380
|
stim,
|
|
1527
1381
|
findings
|
|
1528
1382
|
}));
|
|
1383
|
+
recordDoctorRun(root, opts.platform, version);
|
|
1529
1384
|
return;
|
|
1530
1385
|
}
|
|
1531
1386
|
if (findings.length === 0) {
|
|
@@ -1533,6 +1388,7 @@ function doctorCommand(program, version, inspectVersions = inspectStimVersions)
|
|
|
1533
1388
|
for (const [index, line] of lines.entries()) if (index === 1) console.log(chalk.green(line));
|
|
1534
1389
|
else if (line && !line.startsWith(" ")) console.log(chalk.bold(line));
|
|
1535
1390
|
else console.log(chalk.dim(line));
|
|
1391
|
+
recordDoctorRun(root, opts.platform, version);
|
|
1536
1392
|
return;
|
|
1537
1393
|
}
|
|
1538
1394
|
const ordered = findings.toSorted((a, b) => a.level === b.level ? 0 : a.level === "cost" ? -1 : 1);
|
|
@@ -1545,6 +1401,7 @@ function doctorCommand(program, version, inspectVersions = inspectStimVersions)
|
|
|
1545
1401
|
if (f.fix) console.log(chalk.dim(` -> ${f.fix}`));
|
|
1546
1402
|
}
|
|
1547
1403
|
console.log(chalk.dim(`\n${findings.length} finding(s). Fix relevant "costs time" findings before copying the source checkout into a native worktree.`));
|
|
1404
|
+
recordDoctorRun(root, opts.platform, version);
|
|
1548
1405
|
});
|
|
1549
1406
|
}
|
|
1550
1407
|
//#endregion
|