stim 1.11.0 → 1.13.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 -1
- package/dist/{activity-BtG4Va9l.mjs → activity-DfVKZTEB.mjs} +44 -26
- package/dist/{android-BA2i_KAV.mjs → android-BHfAu2mf.mjs} +1 -1
- package/dist/{android-C1q4l523.mjs → android-CD8pr8Q2.mjs} +112 -54
- package/dist/{android-cas-DfJkwCXW.mjs → android-cas-B9Kv9aIy.mjs} +12 -10
- package/dist/{android-C4zG2Tuc.mjs → android-qx_31wJo.mjs} +414 -118
- package/dist/{app-install-DHut6JnV.mjs → app-install-CDFY2nUL.mjs} +1 -1
- package/dist/budget-E5o91NR1.mjs +1739 -0
- package/dist/{build-plan-CeAYgKAx.mjs → build-plan-BTa93o_r.mjs} +125 -107
- package/dist/{build-progress-CDwogz6R.mjs → build-progress-l7d-X-ZP.mjs} +76 -8
- package/dist/{cache-manifest-Pubfp8wV.mjs → cache-manifest-DWPF4RKJ.mjs} +1 -1
- package/dist/cache-manifest.mjs +1 -1
- package/dist/cdp-Dq_ypAlJ.mjs +115 -0
- package/dist/chrome-B5hWgQJS.mjs +61 -0
- package/dist/cli.mjs +17 -16
- package/dist/collector-run.mjs +15 -9
- package/dist/{command-output-D5z2_bcF.mjs → command-output-BIL7rlX7.mjs} +1 -1
- package/dist/{config-BEq0Qw_a.mjs → config-0jCcMM0E.mjs} +10 -1
- package/dist/created-devices-Cd558h31.mjs +37 -0
- package/dist/{dependency-state-r9UesA9a.mjs → dependency-state-DNN0yfx6.mjs} +1 -1
- package/dist/{deps-OF7CD5Dx.mjs → deps-2Wo81np9.mjs} +2 -2
- package/dist/{device-BwH2iI3O.mjs → device-Cf7vl-so.mjs} +7 -7
- package/dist/{device-lease-D83nqeMX.mjs → device-lease-CL9dZf73.mjs} +55 -6
- package/dist/{device-pool-DHj7cdPy.mjs → device-pool-MuoiyRcu.mjs} +4 -4
- package/dist/{device-remote-BQZSnnmE.mjs → device-remote-DT9ngZiD.mjs} +254 -579
- package/dist/{doctor-D8QdMRMf.mjs → doctor-D2iysNNH.mjs} +50 -20
- package/dist/{error-diagnostics-UYFSQwRy.mjs → error-diagnostics-BoiOhck8.mjs} +7 -7
- package/dist/{gc-COZteyiq.mjs → gc-eA-PRBX8.mjs} +1022 -131
- package/dist/{guide-NDvTmMi-.mjs → guide-BfZ0OmiP.mjs} +909 -132
- package/dist/{guide-status-CWvti2Lg.mjs → guide-status-BaMYu55M.mjs} +2 -2
- package/dist/{idle-NETbeNiQ.mjs → idle-DxLi5OkN.mjs} +43 -10
- package/dist/{in-use-DVhlSoyn.mjs → in-use-wYEaKQM9.mjs} +11 -7
- package/dist/{ios-CQLKpNfr.mjs → ios-CcfCeZ19.mjs} +103 -58
- package/dist/{ios-DArbmwer.mjs → ios-CmEzZiOj.mjs} +31 -22
- package/dist/{ios-device-CwDZo0X4.mjs → ios-device-BW-t_Lkv.mjs} +1 -1
- package/dist/{launch-verify-CuPDGXdr.mjs → launch-verify-CuJaBpEa.mjs} +33 -20
- package/dist/{logs-B44a1UeU.mjs → logs-DcSRbC2t.mjs} +12 -11
- package/dist/{merge-state-DDxS-XIZ.mjs → merge-state-ytFQCeh4.mjs} +38 -8
- package/dist/{metro-BWLOJ_Wr.mjs → metro-BPeY1YMh.mjs} +5 -5
- package/dist/{named-ports-Dc7neAlc.mjs → named-ports-n7tnJsI8.mjs} +78 -6
- package/dist/native-runtime-CiiFHt0e.mjs +74 -0
- package/dist/{ownership-D2xbLVoz.mjs → ownership-Bz2kETAS.mjs} +2 -2
- package/dist/{ownership-BiojdtAp.mjs → ownership-PUP4Dwai.mjs} +175 -217
- package/dist/page-BTu7I60K.mjs +29 -0
- package/dist/{ports-DwBaRFJs.mjs → ports-C5UutqpJ.mjs} +5 -5
- package/dist/{project-BXZzOABt.mjs → project-DGeclhvO.mjs} +55 -87
- package/dist/{reload-By9Dwsrt.mjs → reload-C-cV5yy_.mjs} +80 -21
- package/dist/remote-cache--aehr4Pr.mjs +526 -0
- package/dist/{server-bare-D_RK1RCj.mjs → server-bare-Bq8BpSIo.mjs} +1 -1
- package/dist/server-expo-BeYwP_Xy.mjs +2 -0
- package/dist/{server-expo-o6H5gcBc.mjs → server-expo-DUCg52-K.mjs} +2 -2
- package/dist/{settings-C0ugALSC.mjs → settings-ssVBToDR.mjs} +29 -17
- package/dist/{settings-B5oFZEri.mjs → settings-xB0Frkg6.mjs} +13 -4
- package/dist/settings.schema.json +74 -2
- package/dist/{simslim-CIR3IYJO.mjs → simslim-Bbg9UWrt.mjs} +13 -6
- package/dist/{slot-launch-rggO1Esw.mjs → slot-launch-BIWEW-wI.mjs} +4 -4
- package/dist/{spawn-claims-BJwXTMPt.mjs → spawn-claims-PT8aQpCa.mjs} +1 -1
- package/dist/{start-BSsf2tUs.mjs → start-BZhItkiL.mjs} +110 -18
- package/dist/{start-i8zc9VmS.mjs → start-Rw2GD3nV.mjs} +1 -1
- package/dist/{state-WGdIbi_d.mjs → state-DwAU2_-D.mjs} +15 -3
- package/dist/state-l1pYwOre.mjs +148 -0
- package/dist/{stats-DBYJ5bxL.mjs → stats-CaSwmsSZ.mjs} +4 -4
- package/dist/{stats-BAgJaLA4.mjs → stats-D8rUTPHd.mjs} +1 -1
- package/dist/{status-CitcBRsC.mjs → status-TJlL0HWo.mjs} +649 -116
- package/dist/{status-Q-WDEGCB.mjs → status-sszP4XKU.mjs} +130 -28
- package/dist/stim-desktop-CXt8-Z3J.mjs +40 -0
- package/dist/{stop-DIhrvu0B.mjs → stop-BZ2qMiBP.mjs} +50 -18
- package/dist/{stop-rst5mL14.mjs → stop-DskDKNTU.mjs} +2 -2
- package/dist/supervisor-run.mjs +11 -11
- package/dist/web-run.d.mts +22 -0
- package/dist/web-run.mjs +481 -0
- package/dist/web-sWXd5iek.mjs +394 -0
- package/dist/{worktree-DhxDTK44.mjs → worktree-3cBa-bQt.mjs} +1 -1
- package/dist/{worktree-KOjMX3zA.mjs → worktree-D4Do_XiQ.mjs} +229 -21
- package/dist/{worktree-BlizKDpZ.mjs → worktree-DeBQSVtR.mjs} +3 -1
- package/dist/{xcode-B5SPD--o.mjs → xcode-LM6A8cNZ.mjs} +7 -7
- package/package.json +5 -5
- package/dist/budget-De3P2rq_.mjs +0 -620
- package/dist/native-run-D7yB_AsB.mjs +0 -143
- package/dist/server-expo-B-CCUJZj.mjs +0 -2
- package/dist/workspace-process-lock-Cx74RSDZ.mjs +0 -57
- package/dist/workspaces-COD2xCz-.mjs +0 -1013
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as loadConfig$1, s as configCorruptRepair, u as getConcurrencyLimits } from "./config-0jCcMM0E.mjs";
|
|
2
2
|
import { t as getExecutor } from "./exec-DK8KaVHK.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { D as makeTemporaryDirectory, E as filesystemDevice, a as dirtyFingerprintFiles, h as locallyKnownUpstream, k as temporaryRoot, m as listWorktrees, s as gitCommonDir, x as resolveSourceCheckout, y as repoRoot } from "./worktree-
|
|
5
|
-
import { a as
|
|
6
|
-
import { d as quotedPath, f as refuseNoProject, l as phaseLine, u as plural } from "./command-output-
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { F as settingsLayers,
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
3
|
+
import { C as sharedBuildCache, O as workspaceDerivedData } from "./metro-BPeY1YMh.mjs";
|
|
4
|
+
import { D as makeTemporaryDirectory, E as filesystemDevice, a as dirtyFingerprintFiles, h as locallyKnownUpstream, k as temporaryRoot, m as listWorktrees, s as gitCommonDir, x as resolveSourceCheckout, y as repoRoot } from "./worktree-DeBQSVtR.mjs";
|
|
5
|
+
import { a as findProjectRoot, n as appProjectProblem, r as detectIsExpo, s as isPackageResolvable } from "./project-DGeclhvO.mjs";
|
|
6
|
+
import { d as quotedPath, f as refuseNoProject, l as phaseLine, u as plural } from "./command-output-BIL7rlX7.mjs";
|
|
7
|
+
import { C as diffFingerprintSources, D as fingerprintProject, h as listBuildLocks } from "./device-lease-CL9dZf73.mjs";
|
|
8
|
+
import { D as listAdbDevices, E as hostSystemImageArch, a as androidHome, ct as parkedMaxSetting, rt as POOL_SETTING_REMEDY } from "./android-qx_31wJo.mjs";
|
|
9
|
+
import { F as settingsLayers, G as resolveOptimizations, L as unknownSettingKeys, N as settingOrigin, O as remoteAndroidSetting, P as settingShapeErrors, R as webSettings, T as projectOptimizations, U as compilerCacheFallbackMessage, a as SETTING_SHAPE_REMEDY, i as SETTINGS_WITH_RESOLVE_TIME_FALLBACK, j as resolveSettings, k as remoteIosSetting, n as PATH_SETTINGS, v as iosSimSlimProfileSetting, y as mergeSettingsLayers } from "./settings-xB0Frkg6.mjs";
|
|
10
|
+
import { O as hostMemoryPressureAdvice, k as readHostMemoryPressure, l as listAllIosSims } from "./ios-CmEzZiOj.mjs";
|
|
11
|
+
import { o as listBuildSlots } from "./in-use-wYEaKQM9.mjs";
|
|
12
|
+
import { i as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-B5hWgQJS.mjs";
|
|
13
|
+
import { f as resolveEasCliBin, i as checkEasAuth$1, l as ownerFromConfig, u as providerFromConfig } from "./remote-cache--aehr4Pr.mjs";
|
|
14
|
+
import { D as MIN_EAS_CLI_SIMULATOR_VERSION, O as easCliSupport, k as easCliUpgradeRemedy, s as readInstalledEasCliVersion } from "./device-remote-DT9ngZiD.mjs";
|
|
14
15
|
import { n as inspectStimVersions, t as compareStimVersions } from "./stim-installations-CINXy_su.mjs";
|
|
15
|
-
import { a as liveOwnedDeviceCount,
|
|
16
|
-
import { n as budgetLine, r as inspectBudget } from "./budget-
|
|
17
|
-
import {
|
|
18
|
-
import { h as podInstallCommand, i as ccacheEnabled, o as detectXcodeMajor } from "./xcode-
|
|
19
|
-
import { n as recordDoctorRun } from "./guide-status-
|
|
20
|
-
import { n as hasInstalledDependencies, r as installedNpmTreeIsValid, t as dependencyState } from "./dependency-state-
|
|
16
|
+
import { a as liveOwnedDeviceCount, d as MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION, n as simslimIsOnPath } from "./simslim-Bbg9UWrt.mjs";
|
|
17
|
+
import { n as budgetLine, r as inspectBudget } from "./budget-E5o91NR1.mjs";
|
|
18
|
+
import { _ as androidPathRoomRemedy, a as apkOutputsDir, f as projectCmakeLauncher, g as androidPathRoomMessage, h as androidPathRoom, i as androidSdkRefusal, r as resolveAndroidCompilerCache, t as readAndroidCasToolchain } from "./android-cas-B9Kv9aIy.mjs";
|
|
19
|
+
import { h as podInstallCommand, i as ccacheEnabled, o as detectXcodeMajor } from "./xcode-LM6A8cNZ.mjs";
|
|
20
|
+
import { n as recordDoctorRun } from "./guide-status-BaMYu55M.mjs";
|
|
21
|
+
import { n as hasInstalledDependencies, r as installedNpmTreeIsValid, t as dependencyState } from "./dependency-state-DNN0yfx6.mjs";
|
|
21
22
|
import { existsSync, lstatSync, readFileSync, readdirSync, realpathSync, rmSync } from "node:fs";
|
|
22
23
|
import { InvalidArgumentError } from "commander";
|
|
23
24
|
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";
|
|
@@ -845,6 +846,15 @@ function checkCcacheConflict(podfileSource, podfileProperties) {
|
|
|
845
846
|
if (!ccacheEnabled(podfileProperties)) return null;
|
|
846
847
|
return finding("cost", "ccache is enabled, so Stim leaves Xcode compilation caching off", "The ccache launcher script is what disables explicitly built modules, which compilation caching requires -- so enabling both tends to mean neither works. Stim will not add its compilation-cache settings to a build whose project has apple.ccacheEnabled=true, and in its default configuration ccache hashes the working directory and every absolute include path, so it misses across worktrees. (Stim relocates ccache itself on Android, where it drives the compile and can set CCACHE_BASEDIR and CCACHE_NOHASHDIR; the Podfile launcher script here is the project's, not Stim's.)", "Pick one, and on Xcode 26 the compilation cache is the one that survives a different workspace path -- Stim supplies it on its own builds as soon as ccache is off. Turn it off where the value comes FROM: on Expo that is the expo-build-properties plugin in the app config (ios.ccacheEnabled), because prebuild rewrites ios/Podfile.properties.json from it; on a bare project edit ios/Podfile.properties.json directly. Then re-run pod install (or let `stim ios` do it).");
|
|
847
848
|
}
|
|
849
|
+
function checkChrome({ usesWeb, chrome = findChrome }) {
|
|
850
|
+
if (!usesWeb() || chrome()) return null;
|
|
851
|
+
return finding("cost", "No Chrome is installed, so `stim web` cannot open this app", "`stim web` drives the installed Google Chrome or Chromium with a Stim-owned profile, and found neither in /Applications, ~/Applications, Program Files or on PATH. This project renders on the web (web.url is set, app.json lists the web platform, or react-native-web is installed).", CHROME_INSTALL_REMEDY);
|
|
852
|
+
}
|
|
853
|
+
function projectUsesWeb(projectRoot, settings, appConfig, platform) {
|
|
854
|
+
if (platform) return false;
|
|
855
|
+
const platforms = (appConfig?.expo ?? appConfig)?.platforms;
|
|
856
|
+
return webSettings(settings).url !== null || Array.isArray(platforms) && platforms.includes("web") || isPackageResolvable(projectRoot, "react-native-web");
|
|
857
|
+
}
|
|
848
858
|
function checkCcacheInstalled(onPath) {
|
|
849
859
|
if (onPath) return null;
|
|
850
860
|
return finding("cost", "ccache is not on PATH, so Android C++ recompiles in every worktree", "Stim resolves the launcher with a PATH lookup for `ccache` -- the same lookup the build itself uses -- and found nothing, so it passes no CMAKE_C_COMPILER_LAUNCHER / CMAKE_CXX_COMPILER_LAUNCHER to Gradle and every AGP CMake task compiles without one. Those tasks are uncacheable by Gradle, so not one C++ object crosses a worktree. Measured on trailhead (arm64, fresh worktree): 49.6s without the launcher against 34.2s with it.", "brew install ccache, then delete android/app/.cxx and node_modules/**/android/.cxx once so CMake reconfigures with the launcher. The shell that runs Stim must have the install location on PATH -- agent shells often lack /opt/homebrew/bin.");
|
|
@@ -954,7 +964,7 @@ function checkXcodeEnvLineEndings(projectRoot, platform, host) {
|
|
|
954
964
|
if (!content.includes("\r")) return null;
|
|
955
965
|
return finding("cost", "ios/.xcode.env has CRLF line endings", "An EAS build uploads the working-tree bytes of ios/.xcode.env, and Xcode sources that file with sh on the build worker, where each carriage return becomes part of the line and the build fails with `: command not found`. On Windows the usual cause is core.autocrlf=true rewriting the file at checkout.", "Run `git config core.autocrlf input` then `git checkout -- ios/.xcode.env`, or add `ios/.xcode.env text eol=lf` to .gitattributes and check the file out again.");
|
|
956
966
|
}
|
|
957
|
-
function runDoctor(projectRoot, { readFile = readFileSync$1, xcodeMajor = null, easAuth = checkEasAuth$1, concurrency = getConcurrencyLimits, liveDevices = null, activeBuilds = null, remoteEnv = process.env, lookupAgentDevice = null, lookupEasCli = null, lookupSimSlim = null, memoryPressure = readHostMemoryPressure, lookupCcache = null, platform, host = process.platform } = {}) {
|
|
967
|
+
function runDoctor(projectRoot, { readFile = readFileSync$1, xcodeMajor = null, easAuth = checkEasAuth$1, concurrency = getConcurrencyLimits, liveDevices = null, activeBuilds = null, remoteEnv = process.env, lookupAgentDevice = null, lookupEasCli = null, lookupSimSlim = null, memoryPressure = readHostMemoryPressure, lookupCcache = null, lookupChrome, platform, host = process.platform } = {}) {
|
|
958
968
|
const localIos = platform !== "android" && host === "darwin";
|
|
959
969
|
const read = (rel) => {
|
|
960
970
|
const p = join(projectRoot, rel);
|
|
@@ -1061,6 +1071,11 @@ function runDoctor(projectRoot, { readFile = readFileSync$1, xcodeMajor = null,
|
|
|
1061
1071
|
localIos && optimizations?.ios.compilationCache ? checkCcacheConflict(podfile, podfileProperties) : null,
|
|
1062
1072
|
...platform === "ios" || optimizations?.android.compilerCache !== "ccache" ? [] : androidCcacheFindings(projectRoot, platform, lookupCcache),
|
|
1063
1073
|
checkAndroidPathRoom(projectRoot, platform, host),
|
|
1074
|
+
checkAndroidSdk(projectRoot, platform),
|
|
1075
|
+
checkChrome({
|
|
1076
|
+
usesWeb: () => projectUsesWeb(projectRoot, projectSettings, appConfig, platform),
|
|
1077
|
+
chrome: lookupChrome
|
|
1078
|
+
}),
|
|
1064
1079
|
remoteBuildCache ? checkBuildCacheProvider(appConfig, sdkMajor, isExpo, dynamicConfig) : null,
|
|
1065
1080
|
easFinding,
|
|
1066
1081
|
easBuildDownloadFinding,
|
|
@@ -1089,6 +1104,21 @@ function checkAndroidPathRoom(projectRoot, platform, host, hostArch = process.ar
|
|
|
1089
1104
|
...finding("cost", "The project path leaves no room for Android native object paths", `${androidPathRoomMessage(room)} \`stim android\` refuses to build here with STIM_PATH_TOO_LONG, because Gradle would fail deep inside ninja instead.`, androidPathRoomRemedy(room))
|
|
1090
1105
|
};
|
|
1091
1106
|
}
|
|
1107
|
+
function checkAndroidSdk(projectRoot, platform) {
|
|
1108
|
+
const androidDir = join(projectRoot, "android");
|
|
1109
|
+
if (platform === "ios" || platform !== "android" && !existsSync$1(androidDir)) return null;
|
|
1110
|
+
const sdkPath = androidHome();
|
|
1111
|
+
const refusal = androidSdkRefusal({
|
|
1112
|
+
sdkPath,
|
|
1113
|
+
sdkExists: existsSync$1(sdkPath),
|
|
1114
|
+
hasLocalProperties: existsSync$1(join(androidDir, "local.properties"))
|
|
1115
|
+
});
|
|
1116
|
+
if (!refusal) return null;
|
|
1117
|
+
return {
|
|
1118
|
+
code: "android-sdk-missing",
|
|
1119
|
+
...finding("cost", "No Android SDK was found", `${refusal.reason} \`stim android\` refuses with ${refusal.code} before Gradle runs.`, refusal.remedy)
|
|
1120
|
+
};
|
|
1121
|
+
}
|
|
1092
1122
|
function androidCcacheFindings(projectRoot, platform, lookupCcache) {
|
|
1093
1123
|
if (platform !== "android" && !existsSync$1(join(projectRoot, "android"))) return [];
|
|
1094
1124
|
const onPath = lookupCcache ? lookupCcache() : ccacheIsOnPath();
|
|
@@ -1341,7 +1371,7 @@ function doctorSuccessLines(platform, stim, budget = null) {
|
|
|
1341
1371
|
}
|
|
1342
1372
|
if (platform !== "ios") {
|
|
1343
1373
|
lines.push("", "Android");
|
|
1344
|
-
lines.push(phaseLine("setup", "warm state"));
|
|
1374
|
+
lines.push(phaseLine("setup", "Android SDK, warm state"));
|
|
1345
1375
|
lines.push(phaseLine("caches", "Metro, Gradle, ccache, build provider"));
|
|
1346
1376
|
lines.push(phaseLine("devices", "remote device"));
|
|
1347
1377
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as deviceSlotPlatforms, p as getProject, z as deviceSlotKey } from "./config-0jCcMM0E.mjs";
|
|
2
2
|
import { t as getExecutor } from "./exec-DK8KaVHK.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { v as launchErrorPreview } from "./command-output-
|
|
6
|
-
import { a as parseLease, n as fileLeaseIo, t as deviceLeasePath } from "./device-lease-
|
|
7
|
-
import {
|
|
3
|
+
import { F as withDirLock, c as resolveProjectMetro, h as readWorkspaceState$1 } from "./metro-BPeY1YMh.mjs";
|
|
4
|
+
import { f as readWorkspaceLaunches } from "./state-DwAU2_-D.mjs";
|
|
5
|
+
import { v as launchErrorPreview } from "./command-output-BIL7rlX7.mjs";
|
|
6
|
+
import { a as parseLease, n as fileLeaseIo, t as deviceLeasePath } from "./device-lease-CL9dZf73.mjs";
|
|
7
|
+
import { a as androidHome, l as androidToolCwd } from "./android-qx_31wJo.mjs";
|
|
8
8
|
import { r as deviceConsoleLevel } from "./ios-device-BiOsSVzd.mjs";
|
|
9
|
-
import { n as parseLogcatLine, t as androidClockOffset } from "./android-
|
|
9
|
+
import { n as parseLogcatLine, t as androidClockOffset } from "./android-BHfAu2mf.mjs";
|
|
10
10
|
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
11
11
|
import { attachExpoErrorContext, readLogRecords, sortByTs } from "@stim-cli/core/state";
|
|
12
12
|
import { basename, dirname, join, resolve, sep } from "node:path";
|