stim 1.37.0 → 1.38.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/dist/{acquire-artifact-zBUbPuDP.mjs → acquire-artifact-QKPDkesw.mjs} +1 -1
- package/dist/{act-BGAFjY8f.mjs → act-Bh3t-NuH.mjs} +23 -29
- package/dist/{activity-CdpXXSq2.mjs → activity-CANftndU.mjs} +3 -3
- package/dist/{agent-device-usage-output-D0582GHy.mjs → agent-device-usage-output-CuROXefb.mjs} +3 -3
- package/dist/{android-CGctfYpv.mjs → android-27_JgJ1T.mjs} +3 -3
- package/dist/{android-CaSsewbu.mjs → android-Biwc4Dck.mjs} +5 -5
- package/dist/{android-BPBARZMR.mjs → android-DGLG_VQ3.mjs} +1 -1
- package/dist/{android-BBwLpxRh.mjs → android-Z6Eev9rL.mjs} +44 -38
- package/dist/{android-cas-p8gna03x.mjs → android-cas-BDAwwL82.mjs} +2 -2
- package/dist/{android-image-DY8KxK2m.mjs → android-image-BcUD6bPi.mjs} +2 -2
- package/dist/api.d.mts +2 -2
- package/dist/api.mjs +25 -25
- package/dist/{apk-signed-tail-BMv-KLcB.mjs → apk-signed-tail-DHMkXs4s.mjs} +2 -2
- package/dist/{artifact-BsimBWxG.mjs → artifact-Dc1GsK7o.mjs} +28 -14
- package/dist/{artifact-BrNZTZtA.mjs → artifact-sGoFVK1q.mjs} +11 -11
- package/dist/{auto-placement-CFKNrWLU.mjs → auto-placement-RNh4kx2T.mjs} +6 -6
- package/dist/{browser-web-YFsgCP_a.mjs → browser-web-7Oj57Roa.mjs} +10 -10
- package/dist/{build-DIhuoozz.mjs → build-DkE5vjp1.mjs} +22 -22
- package/dist/{build-cache-Dt-dhCJF.mjs → build-cache-CJ65Efv7.mjs} +7 -4
- package/dist/{build-plan-CgnLDof9.mjs → build-plan-DWajg5l_.mjs} +7 -6
- package/dist/{cli-BGUrlSH3.mjs → cli-BSlwv9hI.mjs} +18 -18
- package/dist/cli.mjs +1 -1
- package/dist/{client-DU6dnGX1.mjs → client-qwmHFSga.mjs} +12 -8
- package/dist/collector-run.mjs +3 -3
- package/dist/{command-output-ByEmIwur.mjs → command-output-DsjhOzJ3.mjs} +1 -1
- package/dist/{dependencies-BozoTBqa.mjs → dependencies-oku1ZLep.mjs} +76 -41
- package/dist/{dependency-state-BQeC4FVn.mjs → dependency-state-CBhPJAs_.mjs} +1 -1
- package/dist/{dev-client-3SQzMRXZ.mjs → dev-client-DL5UtVdx.mjs} +2 -2
- package/dist/{device-DGMvzoZZ.mjs → device-CxMwX0VO.mjs} +15 -14
- package/dist/{device-android-CBat355q.mjs → device-android-CSlBXuh_.mjs} +7 -7
- package/dist/{device-capacity-DWUOvY13.mjs → device-capacity-D_IlxZRL.mjs} +78 -31
- package/dist/device-host-worker.mjs +24 -12
- package/dist/{device-pool-B8IqZKqm.mjs → device-pool-BEaTdtss.mjs} +2 -2
- package/dist/{device-provision-DWAoSKEw.mjs → device-provision-C9NPdCne.mjs} +8 -8
- package/dist/{device-BIg1iExg.mjs → device-yfuJ-v4s.mjs} +9 -9
- package/dist/{doctor-CxgR5vPi.mjs → doctor-BAA3zN5U.mjs} +1 -1
- package/dist/{doctor-CPzwqcXY.mjs → doctor-BQ1Kl44s.mjs} +13 -19
- package/dist/{doctor-Bknt0121.mjs → doctor-QNzDE4aW.mjs} +18 -18
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-watchman-CPE4C8KV.mjs → doctor-watchman-B8e3s9ko.mjs} +3 -3
- package/dist/{eas-build-CwOXKJwa.mjs → eas-build-4rg9WpEg.mjs} +2 -2
- package/dist/{eas-fallback-Cnb12a50.mjs → eas-fallback-UGo0SG7T.mjs} +3 -3
- package/dist/{eas-session-ledger-TE1miVz5.mjs → eas-session-ledger-BDpSdFDM.mjs} +4 -4
- package/dist/{error-diagnostics-CXTT3bYC.mjs → error-diagnostics-CW9xl6ot.mjs} +7 -7
- package/dist/{gc-0jdcnDHs.mjs → gc-3DHVCn-k.mjs} +49 -33
- package/dist/{gc-1ZLq1djg.mjs → gc-BQ5dXnC7.mjs} +2 -2
- package/dist/{guide-COxIANZu.mjs → guide-DqJCc4vW.mjs} +138 -43
- package/dist/{hosted-android-D8JbIzgC.mjs → hosted-android-gwLspaz6.mjs} +3 -3
- package/dist/{hosted-client-BLwuXEZS.mjs → hosted-client-B_h_bTlz.mjs} +2 -2
- package/dist/{hosted-logs-BWEQNJx_.mjs → hosted-logs-BpQSRDRU.mjs} +15 -8
- package/dist/{hosted-logs-sync-uWSrH2mf.mjs → hosted-logs-sync-D3L1hDpM.mjs} +5 -5
- package/dist/{hosted-macos-BnCYAv1y.mjs → hosted-macos-GK4O1s7x.mjs} +5 -5
- package/dist/{hosted-native-OBT2sJxn.mjs → hosted-native-B6ur_0OJ.mjs} +7 -7
- package/dist/{ios-Bjz7aPLy.mjs → ios-Bi0bQiZ_.mjs} +8 -8
- package/dist/{ios-BveW7qK1.mjs → ios-DQEzde6f.mjs} +9 -6
- package/dist/{ios-CGyx4PA7.mjs → ios-M7nRVb33.mjs} +94 -32
- package/dist/{ios-device-ByrDWSpC.mjs → ios-device-BLm1BZB4.mjs} +1 -1
- package/dist/{ios-project-XHg87vyQ.mjs → ios-project-Bsm-eqwv.mjs} +6 -6
- package/dist/ios-runtime-DLiKoOkd.mjs +150 -0
- package/dist/{ios-signing-CRYQ1W42.mjs → ios-signing-rWR_Mu5Z.mjs} +1 -1
- package/dist/{ios-state-enWc5P6U.mjs → ios-state-tzD0s7pt.mjs} +1 -1
- package/dist/{js-swap-C6vl3vEd.mjs → js-swap-Cuky0ZAQ.mjs} +5 -5
- package/dist/{launch-f3RnbFW5.mjs → launch-B-pkNlqg.mjs} +17 -17
- package/dist/{lightened-Cdfmo8MO.mjs → lightened-KHWHmzGs.mjs} +4 -4
- package/dist/{logs-x3em2-oI.mjs → logs-B0etn-BD.mjs} +6 -6
- package/dist/{logs-DAjxBF3c.mjs → logs-HomiqPhV.mjs} +4 -4
- package/dist/{macos-ZfpWlzBO.mjs → macos-C5liDnbP.mjs} +1 -1
- package/dist/macos-run.mjs +1 -1
- package/dist/{macos-D_LAseN9.mjs → macos-zMxSibx5.mjs} +18 -19
- package/dist/maintenance-run.mjs +4 -4
- package/dist/{metro-TIQ1Wft-.mjs → metro-Cj6W4qOO.mjs} +1 -1
- package/dist/{metro-request-DcUxyaq8.mjs → metro-request-BWCl3Zco.mjs} +1 -1
- package/dist/{prebuild-BKkj3OyL.mjs → miss-reason-CeHvzeVm.mjs} +10 -270
- package/dist/{named-ports-BfEMi9bK.mjs → named-ports-DZ8DrkH1.mjs} +1 -1
- package/dist/{native-android-COOrNDk2.mjs → native-android-DtWLzg6g.mjs} +15 -15
- package/dist/{native-gradle-artifact-inputs-B4Mwydmf.mjs → native-gradle-artifact-inputs-D4w20_6d.mjs} +3 -3
- package/dist/{native-runtime-UxUBU8up.mjs → native-runtime-BfvvAJLd.mjs} +6 -6
- package/dist/{native-xcode-inputs-DUv7Q3ok.mjs → native-xcode-inputs-BHvnAq4o.mjs} +2 -2
- package/dist/{native-xcode-ios-DXcteLVi.mjs → native-xcode-ios-CYxrg_kK.mjs} +15 -15
- package/dist/offload-worker.mjs +19 -18
- package/dist/{ownership-CQTg6v1d.mjs → ownership-BLgOimfp.mjs} +2 -2
- package/dist/{phone-reverses-CHtco460.mjs → phone-reverses-vRveZKSG.mjs} +3 -3
- package/dist/{placement-log-oQnELAvQ.mjs → placement-log-CM0DSELs.mjs} +1 -1
- package/dist/{plan-placement-45EOlIG1.mjs → plan-placement-CIrvKq8y.mjs} +5 -5
- package/dist/{ports-DKO7EUNt.mjs → ports-CKORWlC0.mjs} +2 -2
- package/dist/{project-BCtQz48d.mjs → project-DIo71tGq.mjs} +14 -14
- package/dist/{react-native-android-MI4ktuhL.mjs → react-native-android-B7VYSlKj.mjs} +36 -27
- package/dist/{react-native-build-dixAL2G8.mjs → react-native-build-CFYTYmG4.mjs} +10 -7
- package/dist/{react-native-doctor-CvkWincj.mjs → react-native-doctor-CnpVfE0k.mjs} +5 -5
- package/dist/{react-native-ios-DF5otoBR.mjs → react-native-ios-ByeXo_NP.mjs} +15 -14
- package/dist/{recorded-build-CGHGCO8m.mjs → recorded-build-B4prJjSD.mjs} +1 -1
- package/dist/{recordings-BcOzqFD1.mjs → recordings-Byu5SzlI.mjs} +1 -1
- package/dist/{reload-DWxmO9dY.mjs → reload-DANrKhQR.mjs} +1 -1
- package/dist/{reload-DGWfNFwQ.mjs → reload-DTd9g1EG.mjs} +13 -13
- package/dist/{remote-DWYGW2f5.mjs → remote-BWuq9qHV.mjs} +3 -3
- package/dist/{remote-CV2jBcLv.mjs → remote-NOM82XE0.mjs} +8 -8
- package/dist/{result-CWyxwPvZ.mjs → result-C-ISEJ5F.mjs} +15 -15
- package/dist/{run-FZtMQgrx.mjs → run-DQwx6djG.mjs} +1 -1
- package/dist/{server-bare-Ksh1NKeI.mjs → server-bare-B_wRfchQ.mjs} +1 -1
- package/dist/{server-command-BO2DIsJV.mjs → server-command-DgXYowQf.mjs} +5 -5
- package/dist/{server-expo-ZS9_WaNG.mjs → server-expo-ByBM8DVv.mjs} +9 -7
- package/dist/server-expo-D7rwjAFp.mjs +2 -0
- package/dist/{settings-TYrzDh8T.mjs → settings-BthPoY3t.mjs} +2 -2
- package/dist/{settings-Ag4pbs0z.mjs → settings-Cz8kQJzr.mjs} +44 -8
- package/dist/{settings-payload-CUM0DYwz.mjs → settings-payload-BOcxsZ6k.mjs} +2 -2
- package/dist/{settings-write-D_9_IEx7.mjs → settings-write-BuMPL1rd.mjs} +3 -3
- package/dist/settings.schema.json +32 -2
- package/dist/{slot-launch-DW_29Bmu.mjs → slot-launch-BIm9w8kH.mjs} +5 -5
- package/dist/{stage-_8k8p7uq.mjs → stage-CX1Byp3n.mjs} +5 -4
- package/dist/{start-CdgtOksb.mjs → start-BZWr85b2.mjs} +1 -1
- package/dist/{start-CzBB5R7N.mjs → start-DI0ofPO-.mjs} +8 -8
- package/dist/{state-DsrFh3yv.mjs → state-45P8Kd6Z.mjs} +1 -1
- package/dist/{state-CfP-ccP8.mjs → state-C2vELPyr.mjs} +2 -2
- package/dist/{stats-BgTyuzib.mjs → stats-BDljWVWU.mjs} +3 -3
- package/dist/{status-C7Zzb-Eh.mjs → status-BG2S-a1d.mjs} +1 -1
- package/dist/{status-Bcdy5eHt.mjs → status-DEZjHP4q.mjs} +27 -29
- package/dist/{status-watch-DY0EZcmg.mjs → status-watch-Cs18eFkQ.mjs} +4 -4
- package/dist/status-worker.mjs +1 -1
- package/dist/{stop-iGkvEvDn.mjs → stop-B2zDplJa.mjs} +2 -2
- package/dist/{stop-CkmBkNyg.mjs → stop-BPrTEOaz.mjs} +14 -14
- package/dist/{stop-CbxsTKyZ.mjs → stop-DrxHVVX9.mjs} +4 -4
- package/dist/supervisor-run.mjs +11 -11
- package/dist/{support-CfYmOdQs.mjs → support-BeVRaMWT.mjs} +9 -9
- package/dist/{support-JZ4KRW0C.mjs → support-DBKG3Yyb.mjs} +5 -5
- package/dist/{swiftpm-artifact-inputs-C1rZDRDs.mjs → swiftpm-artifact-inputs-CfNAb6Vm.mjs} +1 -1
- package/dist/{swiftpm-macos-DRTjC7Ff.mjs → swiftpm-macos-xdHjJHIj.mjs} +7 -7
- package/dist/toolchain-CTsPS5tL.mjs +2 -0
- package/dist/{toolchain-BeD7tbBW.mjs → toolchain-CZvtCZ-m.mjs} +9 -6
- package/dist/{warm-progress-CJQ8tk5O.mjs → warm-progress-D3a0KviW.mjs} +17 -13
- package/dist/{web-BXbmysa1.mjs → web-BvAweypa.mjs} +6 -6
- package/dist/web-DDL3usMb.mjs +2 -0
- package/dist/web-run.mjs +4 -4
- package/dist/{workspace-state-DOPXG2Gp.mjs → workspace-state-CHEN_xzy.mjs} +1 -1
- package/dist/{workspaces-DCzDzydB.mjs → workspaces-BgAYIccE.mjs} +213 -50
- package/dist/{worktree-6ngObKkw.mjs → worktree-C0YZ6mnk.mjs} +1 -1
- package/dist/{worktree-BAC43Kio.mjs → worktree-kGPE9Pcw.mjs} +335 -33
- package/package.json +7 -7
- package/dist/server-expo-9hQwyLze.mjs +0 -2
- package/dist/toolchain-CNlKc9pH.mjs +0 -2
- package/dist/web-BcaySU05.mjs +0 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
-
import { n as METRO_COMMAND_PORT } from "./settings-
|
|
3
|
-
import { T as MODE_COMMAND } from "./project-
|
|
4
|
-
import { f as signalProcessTree } from "./metro-
|
|
2
|
+
import { n as METRO_COMMAND_PORT } from "./settings-Cz8kQJzr.mjs";
|
|
3
|
+
import { T as MODE_COMMAND } from "./project-DIo71tGq.mjs";
|
|
4
|
+
import { f as signalProcessTree } from "./metro-Cj6W4qOO.mjs";
|
|
5
5
|
import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { _ as projectNodeLine, b as superviseChildServer, m as repositoryRoot, p as recordFromLine, y as withProjectNode } from "./server-expo-ByBM8DVv.mjs";
|
|
7
7
|
import { join } from "node:path";
|
|
8
8
|
import { LOG_ROTATE_BYTES } from "@stim-cli/core";
|
|
9
9
|
//#region src/supervisor/server-command.ts
|
|
@@ -29,7 +29,7 @@ async function startCommandServer({ root, port, logsDir, command, writer = null,
|
|
|
29
29
|
msg: "metro.command starts the dev server, so Stim does not add its shared Metro transform store"
|
|
30
30
|
});
|
|
31
31
|
const group = platform !== "win32";
|
|
32
|
-
const node = withProjectNode(root, process.env);
|
|
32
|
+
const node = withProjectNode(root, process.env, { top: repositoryRoot(root) ?? root });
|
|
33
33
|
if (node.pinned) log.write({
|
|
34
34
|
src: "metro",
|
|
35
35
|
level: "info",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { l as cancellableSleep, t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
2
|
import { n as stripAnsi, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
3
|
-
import { X as resolveProjectSettings } from "./settings-
|
|
4
|
-
import { C as resolvePackageJson } from "./project-
|
|
3
|
+
import { X as resolveProjectSettings } from "./settings-Cz8kQJzr.mjs";
|
|
4
|
+
import { C as resolvePackageJson } from "./project-DIo71tGq.mjs";
|
|
5
5
|
import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
|
|
6
6
|
import { a as expoMetroStoreEnv, c as registerMetroStore, f as resolveMetroSharedCache, i as expoMetroConfigPath, n as supervisorError, o as metroStoreConfirmedRoot, s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
|
|
7
|
-
import { accessSync, constants, existsSync, readFileSync } from "node:fs";
|
|
7
|
+
import { accessSync, constants, existsSync, readFileSync, statSync } from "node:fs";
|
|
8
8
|
import { delimiter, dirname, join } from "node:path";
|
|
9
9
|
import { LOG_ROTATE_BYTES } from "@stim-cli/core";
|
|
10
10
|
import { meetsNodePinMajor, projectNodeBin, projectNodePin, resolveNodePinSpec, satisfiesNodePin } from "@stim-cli/core/toolchain";
|
|
@@ -191,7 +191,7 @@ function findBinUpward(startDir, name, { exists = existsSync } = {}) {
|
|
|
191
191
|
dir = dirname(dir);
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
-
function repositoryRoot(startDir, exists) {
|
|
194
|
+
function repositoryRoot(startDir, exists = existsSync) {
|
|
195
195
|
for (let dir = startDir;; dir = dirname(dir)) {
|
|
196
196
|
if (exists(join(dir, ".git"))) return dir;
|
|
197
197
|
if (dirname(dir) === dir) return null;
|
|
@@ -206,9 +206,11 @@ function isExecutableFile(file) {
|
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
function expoBinRefusal(root, what = "start an Expo dev server for") {
|
|
209
|
+
const repo = repositoryRoot(root, existsSync);
|
|
210
|
+
const linked = repo && statSync(join(repo, ".git"), { throwIfNoEntry: false })?.isFile();
|
|
209
211
|
return {
|
|
210
212
|
message: `Cannot ${what} ${root}: the \`expo\` package is not resolvable from it (require.resolve("expo/package.json") failed, and no node_modules/.bin/expo exists in it or in any parent).`,
|
|
211
|
-
remedy: "Install the project's dependencies (in a monorepo, from the workspace root), or check that this package really depends on `expo`."
|
|
213
|
+
remedy: (linked ? "Run `stim worktree warm` in this worktree, then retry. " : "") + "Install the project's dependencies (in a monorepo, from the workspace root), or check that this package really depends on `expo`."
|
|
212
214
|
};
|
|
213
215
|
}
|
|
214
216
|
const CROSS = "✖";
|
|
@@ -356,7 +358,7 @@ async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = n
|
|
|
356
358
|
port
|
|
357
359
|
});
|
|
358
360
|
const [command, commandArgs] = platform === "win32" && resolved.source === "package" ? [process.execPath, [bin, ...args]] : [bin, args];
|
|
359
|
-
const node = withProjectNode(root, process.env);
|
|
361
|
+
const node = withProjectNode(root, process.env, { top: repositoryRoot(root) ?? root });
|
|
360
362
|
if (node.pinned) log.write({
|
|
361
363
|
src: "metro",
|
|
362
364
|
level: "info",
|
|
@@ -401,4 +403,4 @@ async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = n
|
|
|
401
403
|
return handle;
|
|
402
404
|
}
|
|
403
405
|
//#endregion
|
|
404
|
-
export {
|
|
406
|
+
export { projectNodeLine as _, expoProxyEnv as a, superviseChildServer as b, findBinUpward as c, isDevClientNavigationNotice as d, parseExpoWaitingOnUrl as f, pathNodeVersion as g, startExpoServer as h, expoBinRefusal as i, inferLevel as l, repositoryRoot as m, expoBinFromPackage as n, expoSdkMajor as o, recordFromLine as p, expoBinPath as r, expoTelemetryEnv as s, cleanLine as t, isBundleMarker as u, unmetNodePin as v, withProjectNode as y };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as readSettingsPayload, l as settingEntry, o as layerFile, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-
|
|
2
|
-
import { i as unsetReplacedSetting, n as readScope, r as requireSetting, t as mutateSetting } from "./settings-write-
|
|
1
|
+
import { c as readSettingsPayload, l as settingEntry, o as layerFile, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-BOcxsZ6k.mjs";
|
|
2
|
+
import { i as unsetReplacedSetting, n as readScope, r as requireSetting, t as mutateSetting } from "./settings-write-BuMPL1rd.mjs";
|
|
3
3
|
import { REPLACED_SETTINGS, SETTING_SCOPES } from "@stim-cli/core/state";
|
|
4
4
|
import chalk from "chalk";
|
|
5
5
|
//#region src/commands/settings.ts
|
|
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
|
|
|
6
6
|
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
7
7
|
import { ambientEnv, buildCacheRoot, compiledHelper, configDir } from "@stim-cli/core";
|
|
8
8
|
import { REMOTE_DEVICE_BACKENDS, REPLACED_SETTINGS, SETTINGS, SETTING_GROUPS, TUNNEL_MODES, WEB_VIEWPORTS, acceptsShape, coerceSettingText, expectedShape, isLayeredSetting, isPathPrefix, placementWord, replacementAdvice, settingDefinition, settingValueError, trashRoot } from "@stim-cli/core/state";
|
|
9
|
-
import { basename as basename$1, dirname as dirname$1, isAbsolute as isAbsolute$1, join as join$1, normalize, relative as relative$1, resolve as resolve$1, sep as sep$1 } from "path";
|
|
9
|
+
import { basename as basename$1, dirname as dirname$1, isAbsolute as isAbsolute$1, join as join$1, normalize, posix as posix$1, relative as relative$1, resolve as resolve$1, sep as sep$1 } from "path";
|
|
10
10
|
import { existsSync as existsSync$1, lstatSync as lstatSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, realpathSync as realpathSync$1, statSync as statSync$1 } from "fs";
|
|
11
11
|
import { fileURLToPath } from "node:url";
|
|
12
12
|
import { captureProcessIdentity } from "@stim-cli/core/process-identity";
|
|
@@ -682,7 +682,7 @@ async function removeKnownCopiedPaths(path, rel, signal, trash) {
|
|
|
682
682
|
const root = await realpath(path);
|
|
683
683
|
for (const known of paths) await removeCopiedPath(root, known, signal, trash);
|
|
684
684
|
}
|
|
685
|
-
async function cloneIgnoredEntries({ root, target, patterns, operation }) {
|
|
685
|
+
async function cloneIgnoredEntries({ root, target, patterns, operation, withhold = () => null }) {
|
|
686
686
|
const options = {
|
|
687
687
|
...childEnvironment(operation.env),
|
|
688
688
|
signal: operation.signal,
|
|
@@ -698,10 +698,24 @@ async function cloneIgnoredEntries({ root, target, patterns, operation }) {
|
|
|
698
698
|
const guard = trackedPathsGuard(await listTrackedPaths(target, reads));
|
|
699
699
|
if (!guard.known) throw new Error("Could not list the destination's tracked files.");
|
|
700
700
|
const nested = await nestedWorktreePaths(target, reads);
|
|
701
|
-
const
|
|
701
|
+
const carryable = await listCarryableIgnoredEntries(root, patterns, reads);
|
|
702
|
+
const keptReason = (rel) => guard.covers(rel) ? "tracked" : overlapsNestedWorktree(rel, nested) ? "nested worktree" : missingDestinationReason(target, rel);
|
|
703
|
+
const checks = /* @__PURE__ */ new Map();
|
|
704
|
+
for (const rel of carryable) {
|
|
705
|
+
let copies;
|
|
706
|
+
try {
|
|
707
|
+
copies = keptReason(rel) === null;
|
|
708
|
+
} catch {
|
|
709
|
+
copies = true;
|
|
710
|
+
}
|
|
711
|
+
const check = copies ? withhold(rel) : null;
|
|
712
|
+
if (check) checks.set(rel, check);
|
|
713
|
+
}
|
|
714
|
+
const entries = [...carryable.filter((rel) => !checks.has(rel)), ...checks.keys()];
|
|
702
715
|
const copied = [];
|
|
703
716
|
const skipped = [];
|
|
704
717
|
const failed = [];
|
|
718
|
+
const withheld = [];
|
|
705
719
|
let cloned = true;
|
|
706
720
|
let helper;
|
|
707
721
|
const clonefile = () => helper ??= clonefileHelper(operation);
|
|
@@ -713,7 +727,7 @@ async function cloneIgnoredEntries({ root, target, patterns, operation }) {
|
|
|
713
727
|
const to = join$1(target, rel);
|
|
714
728
|
let copying = false;
|
|
715
729
|
try {
|
|
716
|
-
const reason =
|
|
730
|
+
const reason = keptReason(rel);
|
|
717
731
|
if (reason) {
|
|
718
732
|
skipped.push({
|
|
719
733
|
file: rel,
|
|
@@ -721,6 +735,14 @@ async function cloneIgnoredEntries({ root, target, patterns, operation }) {
|
|
|
721
735
|
});
|
|
722
736
|
continue;
|
|
723
737
|
}
|
|
738
|
+
const withholding = await checks.get(rel);
|
|
739
|
+
if (withholding) {
|
|
740
|
+
withheld.push({
|
|
741
|
+
file: rel,
|
|
742
|
+
reason: withholding
|
|
743
|
+
});
|
|
744
|
+
continue;
|
|
745
|
+
}
|
|
724
746
|
await mkdir(dirname$1(to), { recursive: true });
|
|
725
747
|
copying = true;
|
|
726
748
|
const copiedWith = async (file, args) => {
|
|
@@ -768,6 +790,7 @@ async function cloneIgnoredEntries({ root, target, patterns, operation }) {
|
|
|
768
790
|
copied,
|
|
769
791
|
skipped,
|
|
770
792
|
failed,
|
|
793
|
+
withheld,
|
|
771
794
|
cloned
|
|
772
795
|
};
|
|
773
796
|
}
|
|
@@ -864,14 +887,27 @@ function installedMatchesLockfile(dir, lockfile, { read = readFileSync$1 } = {})
|
|
|
864
887
|
} catch {}
|
|
865
888
|
return null;
|
|
866
889
|
}
|
|
890
|
+
function nearestLockfile(target, dir) {
|
|
891
|
+
for (let current = dir;; current = posix$1.dirname(current)) {
|
|
892
|
+
const at = current === "." ? "" : current;
|
|
893
|
+
const name = LOCKFILE_NAMES.find((candidate) => existsSync$1(join$1(target, at, candidate)));
|
|
894
|
+
if (name) return {
|
|
895
|
+
dir: at,
|
|
896
|
+
name
|
|
897
|
+
};
|
|
898
|
+
if (at === "") return null;
|
|
899
|
+
}
|
|
900
|
+
}
|
|
867
901
|
function depsOutOfSync(root, target, copiedEntries, { read = readFileSync$1 } = {}) {
|
|
868
902
|
const problems = [];
|
|
903
|
+
const checked = /* @__PURE__ */ new Set();
|
|
869
904
|
for (const rel of copiedEntries || []) {
|
|
870
905
|
if (rel !== "node_modules" && !rel.endsWith("/node_modules")) continue;
|
|
871
|
-
const
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
const
|
|
906
|
+
const found = nearestLockfile(target, rel === "node_modules" ? "" : rel.slice(0, -13));
|
|
907
|
+
if (!found || checked.has(found.dir)) continue;
|
|
908
|
+
checked.add(found.dir);
|
|
909
|
+
const { dir, name } = found;
|
|
910
|
+
const installed = copiedEntries?.includes(dir ? `${dir}/node_modules` : "node_modules") ? installedMatchesLockfile(join$1(target, dir), name, { read }) : null;
|
|
875
911
|
if (installed === false) {
|
|
876
912
|
problems.push({
|
|
877
913
|
dir: dir || ".",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { f as getConfigPath$1, g as getRepoSettings, h as getProjectSettings, v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
|
|
2
2
|
import { a as killOnAbort, i as gitPath } from "./operation-exec-DNynwpqO.mjs";
|
|
3
|
-
import { K as removedMachineSettings, V as readCommittedSettings, st as unknownSettingKeys } from "./settings-
|
|
4
|
-
import { r as findCommandWorkspaceAsync } from "./project-
|
|
3
|
+
import { K as removedMachineSettings, V as readCommittedSettings, st as unknownSettingKeys } from "./settings-Cz8kQJzr.mjs";
|
|
4
|
+
import { r as findCommandWorkspaceAsync } from "./project-DIo71tGq.mjs";
|
|
5
5
|
import { i as stimDesktopInstalledAsync, n as settingDefault, r as stimDesktopInstalled } from "./stim-desktop-DWGAfaud.mjs";
|
|
6
6
|
import { join } from "node:path";
|
|
7
7
|
import { SETTINGS, SETTING_SCOPES, coerceSettingText, isJsonObject, replacementAdvice, settingDefinition, settingValueError } from "@stim-cli/core/state";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { p as withWorkspaceProcessLock } from "./exec-L37dbiIb.mjs";
|
|
2
2
|
import { A as withConfigLockAsync$1, M as writeConfigSettingAsync, f as getConfigPath$1 } from "./config-CNmN-ndb.mjs";
|
|
3
|
-
import { t as NO_PROJECT_REFUSAL } from "./project-
|
|
3
|
+
import { t as NO_PROJECT_REFUSAL } from "./project-DIo71tGq.mjs";
|
|
4
4
|
import { i as stimDesktopInstalledAsync } from "./stim-desktop-DWGAfaud.mjs";
|
|
5
|
-
import { n as recordingLayers, t as deleteTurnedOffRecordings } from "./recordings-
|
|
6
|
-
import { d as unknownEntries, l as settingEntry, o as layerFile, r as committedDirectory, s as readSettingsContext, t as SettingsRefusal, u as settingExample } from "./settings-payload-
|
|
5
|
+
import { n as recordingLayers, t as deleteTurnedOffRecordings } from "./recordings-Byu5SzlI.mjs";
|
|
6
|
+
import { d as unknownEntries, l as settingEntry, o as layerFile, r as committedDirectory, s as readSettingsContext, t as SettingsRefusal, u as settingExample } from "./settings-payload-BOcxsZ6k.mjs";
|
|
7
7
|
import { existsSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { configDir } from "@stim-cli/core";
|
|
@@ -260,6 +260,21 @@
|
|
|
260
260
|
]
|
|
261
261
|
}
|
|
262
262
|
},
|
|
263
|
+
"autoInstallRuntime": {
|
|
264
|
+
"description": "Install an explicitly requested missing iOS simulator runtime on the selected Mac",
|
|
265
|
+
"type": "boolean",
|
|
266
|
+
"default": false,
|
|
267
|
+
"x-stim": {
|
|
268
|
+
"key": "ios.autoInstallRuntime",
|
|
269
|
+
"kind": "boolean",
|
|
270
|
+
"scopes": [
|
|
271
|
+
"machine",
|
|
272
|
+
"workspace",
|
|
273
|
+
"repo",
|
|
274
|
+
"committed"
|
|
275
|
+
]
|
|
276
|
+
}
|
|
277
|
+
},
|
|
263
278
|
"configuration": {
|
|
264
279
|
"description": "Xcode configuration to build, such as Debug or Release",
|
|
265
280
|
"type": "string",
|
|
@@ -1338,6 +1353,21 @@
|
|
|
1338
1353
|
]
|
|
1339
1354
|
}
|
|
1340
1355
|
},
|
|
1356
|
+
"autoInstallRuntime": {
|
|
1357
|
+
"description": "Install an explicitly requested missing iOS simulator runtime on the selected Mac",
|
|
1358
|
+
"type": "boolean",
|
|
1359
|
+
"default": false,
|
|
1360
|
+
"x-stim": {
|
|
1361
|
+
"key": "ios.autoInstallRuntime",
|
|
1362
|
+
"kind": "boolean",
|
|
1363
|
+
"scopes": [
|
|
1364
|
+
"machine",
|
|
1365
|
+
"workspace",
|
|
1366
|
+
"repo",
|
|
1367
|
+
"committed"
|
|
1368
|
+
]
|
|
1369
|
+
}
|
|
1370
|
+
},
|
|
1341
1371
|
"remote": {
|
|
1342
1372
|
"description": "Where the iOS simulator runs: local here (overriding a lower layer); auto here first, then a remote.machines entry when this machine is full or busy; remote on a remote.machines entry in order, here only when none takes it; remote-only the same but never here; a machine name exactly that machine; eas or proxy a remote device backend",
|
|
1343
1373
|
"type": "string",
|
|
@@ -2282,10 +2312,10 @@
|
|
|
2282
2312
|
}
|
|
2283
2313
|
},
|
|
2284
2314
|
"swiftCompilationCacheMaxGb": {
|
|
2285
|
-
"description": "Swift compilation-cache cap in GiB;
|
|
2315
|
+
"description": "Swift compilation-cache cap in GiB; above it the cache is emptied whole, while no build holds it; 0 means no cap",
|
|
2286
2316
|
"type": "number",
|
|
2287
2317
|
"minimum": 0,
|
|
2288
|
-
"default":
|
|
2318
|
+
"default": 0,
|
|
2289
2319
|
"x-stim": {
|
|
2290
2320
|
"key": "caches.swiftCompilationCacheMaxGb",
|
|
2291
2321
|
"kind": "number",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { r as readWorkspaceState$1 } from "./workspace-state-
|
|
1
|
+
import { r as readWorkspaceState$1 } from "./workspace-state-CHEN_xzy.mjs";
|
|
2
2
|
import { gt as projectDeviceSlots, m as getProject, mt as parseDeviceSlotKey } from "./config-CNmN-ndb.mjs";
|
|
3
|
-
import { A as getAvdNameForSerialAsync, P as listAdbDevicesAsync } from "./android-
|
|
4
|
-
import {
|
|
5
|
-
import { y as fileLeaseIo } from "./activity-
|
|
6
|
-
import { f as listAllIosSimsAsync } from "./ios-
|
|
3
|
+
import { A as getAvdNameForSerialAsync, P as listAdbDevicesAsync } from "./android-27_JgJ1T.mjs";
|
|
4
|
+
import { An as deviceShellArg } from "./device-capacity-D_IlxZRL.mjs";
|
|
5
|
+
import { y as fileLeaseIo } from "./activity-CANftndU.mjs";
|
|
6
|
+
import { f as listAllIosSimsAsync } from "./ios-DQEzde6f.mjs";
|
|
7
7
|
import { hostedNativeRecords } from "@stim-cli/core/state";
|
|
8
8
|
//#region src/engine/slot-launch.ts
|
|
9
9
|
function launchSlotScope(root, slot = "default") {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as throwIfCancelled, t as getExecutor, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { mt as runCancellationSignal } from "./toolchain-CZvtCZ-m.mjs";
|
|
3
3
|
import { existsSync, lstatSync, promises, readdirSync, realpathSync, statSync } from "node:fs";
|
|
4
4
|
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
5
5
|
import { validMacosResourceDestination } from "@stim-cli/core";
|
|
@@ -108,7 +108,8 @@ async function stageBundle(context, root, product, infoPlist, bin, bundle, bundl
|
|
|
108
108
|
await withDrainingCancellation(context, signal, async () => {
|
|
109
109
|
throwIfCancelled(signal, "macOS bundle staging");
|
|
110
110
|
const { minimumSystemVersion } = await validateInfoPlist(context, root, product, infoPlist);
|
|
111
|
-
|
|
111
|
+
const entries = readdirSync(bin);
|
|
112
|
+
for (const entry of entries.filter((name) => name.endsWith(".bundle"))) for (const [destination, source] of Object.entries(extras.resources)) if (overlaps(destination, entry)) resourceError(`macos.resources[${JSON.stringify(destination)}]`, source, `destination collides with ${entry}`);
|
|
112
113
|
await promises.rm(bundle, {
|
|
113
114
|
recursive: true,
|
|
114
115
|
force: true
|
|
@@ -126,7 +127,7 @@ async function stageBundle(context, root, product, infoPlist, bin, bundle, bundl
|
|
|
126
127
|
join(contents, "Info.plist")
|
|
127
128
|
], { timeoutMs: 1e4 });
|
|
128
129
|
if (displayName !== void 0) await setBundleName(context, join(contents, "Info.plist"), displayName);
|
|
129
|
-
for (const entry of
|
|
130
|
+
for (const entry of entries) if (entry.endsWith(".framework")) {
|
|
130
131
|
const target = join(contents, "Frameworks", entry);
|
|
131
132
|
await copy(context, join(bin, entry), target, {
|
|
132
133
|
recursive: true,
|
|
@@ -141,7 +142,7 @@ async function stageBundle(context, root, product, infoPlist, bin, bundle, bundl
|
|
|
141
142
|
], { timeoutMs: "unbounded" });
|
|
142
143
|
} else if (entry.endsWith(".bundle")) await copy(context, join(bin, entry), join(contents, "Resources", entry), { recursive: true });
|
|
143
144
|
const frameworkPath = "@executable_path/../Frameworks";
|
|
144
|
-
if (!(await tool(context, "otool", ["-l", executable], { timeoutMs: 3e4 })).includes(frameworkPath)) await tool(context, "install_name_tool", [
|
|
145
|
+
if (entries.some((entry) => entry.endsWith(".framework")) && !(await tool(context, "otool", ["-l", executable], { timeoutMs: 3e4 })).includes(frameworkPath)) await tool(context, "install_name_tool", [
|
|
145
146
|
"-add_rpath",
|
|
146
147
|
frameworkPath,
|
|
147
148
|
executable
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-
|
|
1
|
+
import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-DI0ofPO-.mjs";
|
|
2
2
|
export { startCommand as default, failureEvidence, liveSupervisor, parseWait, readLogTail, registerStart, resolveWorkspaceMetroPort, startDevServer, startFacts, supervisorEntry, supervisorSignalable, tailLines, wantsExpoOwnTunnel };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { D as ownership_claim_exports, T as process_identity_exports, c as waitForGroupExit, d as throwIfCancelled, f as WorkspaceProcessCleanupError, l as cancellableSleep, m as workspaceProcessLockError, o as groupExitBudgetMs, p as withWorkspaceProcessLock, t as getExecutor, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
|
|
2
|
-
import { S as supervisorLogFile, _ as ensureWorkspaceStorage, i as recordWorkspaceUse, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync, w as workspaceAgentDeviceDir } from "./workspace-state-
|
|
3
|
-
import { _ as stepTimer, l as phaseLine } from "./command-output-
|
|
2
|
+
import { S as supervisorLogFile, _ as ensureWorkspaceStorage, i as recordWorkspaceUse, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync, w as workspaceAgentDeviceDir } from "./workspace-state-CHEN_xzy.mjs";
|
|
3
|
+
import { _ as stepTimer, l as phaseLine } from "./command-output-DsjhOzJ3.mjs";
|
|
4
4
|
import { A as withConfigLockAsync$1, O as upsertProject, S as releaseMetroPort, m as getProject } from "./config-CNmN-ndb.mjs";
|
|
5
|
-
import { A as metroCommandSetting, B as publicUrlSetting, G as remoteIosSetting, I as ngrokUrlSetting, J as resolveCacheProviderConfig, M as metroIdleStopMinutesSetting, N as metroPortSetting, P as metroTunnelSettingError, U as remoteAndroidSetting, Y as resolveIosProjectDir, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, dt as detectProviders, ft as planMetroReach, h as deviceIdleShutdownMinutesSetting, j as metroCommandSettingError, m as defaultAndroidLayout, ot as tunnelModeSetting, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, st as unknownSettingKeys, ut as PUBLIC_METRO_ENV } from "./settings-
|
|
6
|
-
import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-
|
|
5
|
+
import { A as metroCommandSetting, B as publicUrlSetting, G as remoteIosSetting, I as ngrokUrlSetting, J as resolveCacheProviderConfig, M as metroIdleStopMinutesSetting, N as metroPortSetting, P as metroTunnelSettingError, U as remoteAndroidSetting, Y as resolveIosProjectDir, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, dt as detectProviders, ft as planMetroReach, h as deviceIdleShutdownMinutesSetting, j as metroCommandSettingError, m as defaultAndroidLayout, ot as tunnelModeSetting, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, st as unknownSettingKeys, ut as PUBLIC_METRO_ENV } from "./settings-Cz8kQJzr.mjs";
|
|
6
|
+
import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-DIo71tGq.mjs";
|
|
7
7
|
import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-DWGAfaud.mjs";
|
|
8
|
-
import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, m as createPortProbe, u as processCwds, v as PortInspectionError } from "./metro-
|
|
8
|
+
import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, m as createPortProbe, u as processCwds, v as PortInspectionError } from "./metro-Cj6W4qOO.mjs";
|
|
9
9
|
import { a as levelRank } from "./ndjson-CrjIsGzw.mjs";
|
|
10
|
-
import {
|
|
11
|
-
import { C as
|
|
12
|
-
import { i as restoreLightenedDependencies } from "./lightened-
|
|
10
|
+
import { Gn as exitAfterFlush, V as stopOwnedMetroForReset, cr as remoteCliInvocation, k as budgetGate, qn as runProcessOperation, rr as readProjectConfig } from "./device-capacity-D_IlxZRL.mjs";
|
|
11
|
+
import { C as startTunnelSequence, E as withManagedRemoteWorktreeLock, O as withManagedTunnelLock, T as terminateChild, w as stopTunnel, x as resolveSupervisorTarget } from "./workspaces-BgAYIccE.mjs";
|
|
12
|
+
import { i as restoreLightenedDependencies } from "./lightened-KHWHmzGs.mjs";
|
|
13
13
|
import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
|
|
14
14
|
import { n as windowsLauncherArgs } from "./detached-entry-VqFeEE9W.mjs";
|
|
15
15
|
import { appendFileSync, closeSync, mkdirSync, openSync, readFileSync } from "node:fs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { T as process_identity_exports } from "./exec-L37dbiIb.mjs";
|
|
2
|
-
import { E as workspaceDir, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-
|
|
2
|
+
import { E as workspaceDir, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-CHEN_xzy.mjs";
|
|
3
3
|
import { existsSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { readMacosRecord } from "@stim-cli/core/state";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { D as ownership_claim_exports, T as process_identity_exports, f as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
-
import { E as workspaceDir, d as writeWorkspaceState, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-
|
|
2
|
+
import { E as workspaceDir, d as writeWorkspaceState, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-CHEN_xzy.mjs";
|
|
3
3
|
import { t as runOperationFile } from "./operation-exec-DNynwpqO.mjs";
|
|
4
|
-
import { c as pidExists } from "./metro-
|
|
4
|
+
import { c as pidExists } from "./metro-Cj6W4qOO.mjs";
|
|
5
5
|
import { readFileSync, readlinkSync, rmSync } from "node:fs";
|
|
6
6
|
import { hostname } from "node:os";
|
|
7
7
|
import { join } from "node:path";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { o as formatLongDuration } from "./command-output-
|
|
1
|
+
import { o as formatLongDuration } from "./command-output-DsjhOzJ3.mjs";
|
|
2
2
|
import { it as formatBytes } from "./config-CNmN-ndb.mjs";
|
|
3
|
-
import { i as findProjectRoot$1 } from "./project-
|
|
4
|
-
import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-
|
|
3
|
+
import { i as findProjectRoot$1 } from "./project-DIo71tGq.mjs";
|
|
4
|
+
import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-CuROXefb.mjs";
|
|
5
5
|
import { t as readProjectStats } from "./stats-report-Ci6TAfFm.mjs";
|
|
6
6
|
import { archivedUsage, readArchives } from "@stim-cli/core/state";
|
|
7
7
|
import chalk from "chalk";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-
|
|
1
|
+
import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-DEZjHP4q.mjs";
|
|
2
2
|
export { statusCommand as default, readVolumes, runStatusWatch };
|
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
import { T as process_identity_exports, t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
-
import { O as workspaceLogErrorIndex, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-
|
|
3
|
-
import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-
|
|
2
|
+
import { O as workspaceLogErrorIndex, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-CHEN_xzy.mjs";
|
|
3
|
+
import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-DsjhOzJ3.mjs";
|
|
4
4
|
import { at as isAbsentPath, d as getConfigDir, ft as deviceSlotKey, gt as projectDeviceSlots, it as formatBytes, lt as volumeRootFor, mt as parseDeviceSlotKey, ot as isOnMountedVolume, p as getPlatformDeviceLimits, st as listMountedVolumes, u as getConcurrencyLimits, v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
|
|
5
5
|
import { s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
|
|
6
|
-
import { Bt as repoRoot, Ct as gitCommonDirOnDisk, Ot as linkedWorktreesOnDisk, Q as resolveSettings, lt as workspaceHiddenSetting, xt as gitCommonDir } from "./settings-
|
|
7
|
-
import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
6
|
+
import { Bt as repoRoot, Ct as gitCommonDirOnDisk, Ot as linkedWorktreesOnDisk, Q as resolveSettings, lt as workspaceHiddenSetting, xt as gitCommonDir } from "./settings-Cz8kQJzr.mjs";
|
|
7
|
+
import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-DIo71tGq.mjs";
|
|
8
|
+
import { o as hostedAgentLine } from "./hosted-logs-BpQSRDRU.mjs";
|
|
9
|
+
import { H as ownedAvdDeviceProfile, K as ownedAvdSerialResolver, N as listAdbDevices, P as listAdbDevicesAsync, bt as parkedMaxSetting, mt as POOL_SETTING_REMEDY, xt as readParked } from "./android-27_JgJ1T.mjs";
|
|
10
|
+
import { c as pidExists, d as resolveProjectMetro, h as isMetroRunning, i as listeningPids, l as processCwd, o as listeningPidsByPort, u as processCwds } from "./metro-Cj6W4qOO.mjs";
|
|
10
11
|
import { o as parseNdjsonLine } from "./ndjson-CrjIsGzw.mjs";
|
|
11
|
-
import {
|
|
12
|
-
import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state-
|
|
13
|
-
import { A as poolLine, C as diskLine, D as loadLine, E as gitSummaryText, F as tightVolumes, I as unprovisionedWorktrees, L as withWebFacts, M as remoteDeviceState, N as slotUsageLines, O as metroReverseTargets, P as statusActivity, S as deviceLeaseStates, _ as addReverseMissingIssue, b as capacityLoad, g as activityLabel, j as remoteDeviceLine, k as parseDfFree, r as readEasSessionLedger$1, v as applyMachineMemory, w as environmentState, x as deviceLeaseLines, y as capacity } from "./eas-session-ledger-
|
|
14
|
-
import {
|
|
15
|
-
import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-
|
|
16
|
-
import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-
|
|
17
|
-
import { m as probeHostedSession } from "./hosted-client-
|
|
18
|
-
import "./hosted-macos-
|
|
19
|
-
import { i as readSupervisorState } from "./stop-
|
|
20
|
-
import { l as applyStatusMeasures, n as workspacePhase, s as mergeState, u as createStatusMeasurer } from "./warm-progress-
|
|
21
|
-
import { r as workspaceRecordingEnabled } from "./recordings-
|
|
12
|
+
import { Ar as readFootprints, Mn as hasMetroReverse, P as machineNumber, U as describeMetroLastStop, c as deviceSlotUsages, kr as attributeMachineUsage, q as metroLastStop } from "./device-capacity-D_IlxZRL.mjs";
|
|
13
|
+
import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state-C2vELPyr.mjs";
|
|
14
|
+
import { A as poolLine, C as diskLine, D as loadLine, E as gitSummaryText, F as tightVolumes, I as unprovisionedWorktrees, L as withWebFacts, M as remoteDeviceState, N as slotUsageLines, O as metroReverseTargets, P as statusActivity, S as deviceLeaseStates, _ as addReverseMissingIssue, b as capacityLoad, g as activityLabel, j as remoteDeviceLine, k as parseDfFree, r as readEasSessionLedger$1, v as applyMachineMemory, w as environmentState, x as deviceLeaseLines, y as capacity } from "./eas-session-ledger-BDpSdFDM.mjs";
|
|
15
|
+
import { G as buildReport, H as ACTIVE_BUILD_KEY, K as buildStatusLine, W as activeBuildState, Y as parseActiveBuild, ot as readStats$1, q as bundlingActivity, ut as statsProjectKey$1, wt as buildSlotUsage, x as resolveSupervisorTarget } from "./workspaces-BgAYIccE.mjs";
|
|
16
|
+
import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-CANftndU.mjs";
|
|
17
|
+
import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-DQEzde6f.mjs";
|
|
18
|
+
import { m as probeHostedSession } from "./hosted-client-B_h_bTlz.mjs";
|
|
19
|
+
import "./hosted-macos-GK4O1s7x.mjs";
|
|
20
|
+
import { i as readSupervisorState } from "./stop-BPrTEOaz.mjs";
|
|
21
|
+
import { l as applyStatusMeasures, n as workspacePhase, s as mergeState, u as createStatusMeasurer } from "./warm-progress-D3a0KviW.mjs";
|
|
22
|
+
import { r as workspaceRecordingEnabled } from "./recordings-Byu5SzlI.mjs";
|
|
22
23
|
import { n as maintenanceLines, r as maintenanceStatus } from "./status-C2PdxK6q.mjs";
|
|
23
|
-
import { d as readIosDevices, s as isReachable } from "./ios-device-
|
|
24
|
+
import { d as readIosDevices, s as isReachable } from "./ios-device-BLm1BZB4.mjs";
|
|
24
25
|
import { t as triggerMaintenance } from "./trigger-G_gbfIVB.mjs";
|
|
25
|
-
import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch-
|
|
26
|
+
import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch-Cs18eFkQ.mjs";
|
|
26
27
|
import { t as watchStdoutReader } from "./stdout-reader-C8yjre1x.mjs";
|
|
27
|
-
import {
|
|
28
|
+
import { randomUUID } from "node:crypto";
|
|
28
29
|
import { mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
29
30
|
import { join, posix, resolve } from "node:path";
|
|
30
31
|
import { quotedPath, rotatedLogPath } from "@stim-cli/core";
|
|
31
|
-
import { DEVICE_RECLAIM_REASON, ERROR_SOURCES, archiveRoot, archivedUsage, bundleMarkerPlatform, countErrorEntries, gitMergeCacheDir, hostedAndroidPlacements, hostedAndroidRecords, hostedAndroidStatus, hostedIosPlacements, hostedIosRecords, hostedIosStatus, linkReplacedArchives, loadPerCore, logFiles, macosAppState, maxLoadPerCore, parseHostedAndroidPlacement, parseHostedIosPlacement, queryLogs, readArchives, readBuildDetail, readBuildHistory, readDeviceIdleShutdowns, readDevicePlacement, readIdleStop, readLastBuilds, readMacosRecord, recordMatches, sortByTs, unreadableHostedAndroid, unreadableHostedIos, withDerivedFacts, withGitChip, withStateReadCache } from "@stim-cli/core/state";
|
|
32
|
+
import { DEVICE_RECLAIM_REASON, ERROR_SOURCES, archiveRoot, archivedUsage, bundleMarkerPlatform, countErrorEntries, gitMergeCacheDir, gitMergeCacheFile, hostedAndroidPlacements, hostedAndroidRecords, hostedAndroidStatus, hostedIosPlacements, hostedIosRecords, hostedIosStatus, linkReplacedArchives, loadPerCore, logFiles, macosAppState, maxLoadPerCore, parseHostedAndroidPlacement, parseHostedIosPlacement, queryLogs, readArchives, readBuildDetail, readBuildHistory, readDeviceIdleShutdowns, readDevicePlacement, readIdleStop, readLastBuilds, readMacosRecord, recordMatches, sortByTs, unreadableHostedAndroid, unreadableHostedIos, withDerivedFacts, withGitChip, withStateReadCache } from "@stim-cli/core/state";
|
|
32
33
|
import { basename as basename$1, dirname as dirname$1, join as join$1 } from "path";
|
|
33
34
|
import chalk from "chalk";
|
|
34
35
|
import { closeSync as closeSync$1, existsSync as existsSync$1, fstatSync as fstatSync$1, openSync as openSync$1, readFileSync as readFileSync$1, readSync as readSync$1, renameSync as renameSync$1, rmSync as rmSync$1, statSync as statSync$1, writeFileSync as writeFileSync$1 } from "fs";
|
|
@@ -362,12 +363,9 @@ async function defaultBranchOf(repository) {
|
|
|
362
363
|
sha
|
|
363
364
|
};
|
|
364
365
|
}
|
|
365
|
-
function mergeCacheFile(path) {
|
|
366
|
-
return join(gitMergeCacheDir(), `${createHash("sha256").update(path).digest("hex").slice(0, 32)}.json`);
|
|
367
|
-
}
|
|
368
366
|
function readMergeCache(path) {
|
|
369
367
|
try {
|
|
370
|
-
const entry = JSON.parse(readFileSync(
|
|
368
|
+
const entry = JSON.parse(readFileSync(gitMergeCacheFile(path), "utf-8"));
|
|
371
369
|
if (entry.path !== path || typeof entry.head !== "string" || typeof entry.target !== "string") return null;
|
|
372
370
|
return {
|
|
373
371
|
path,
|
|
@@ -380,7 +378,7 @@ function readMergeCache(path) {
|
|
|
380
378
|
}
|
|
381
379
|
}
|
|
382
380
|
function writeMergeCache(entry) {
|
|
383
|
-
const file =
|
|
381
|
+
const file = gitMergeCacheFile(entry.path);
|
|
384
382
|
const temporary = `${file}.${randomUUID()}.tmp`;
|
|
385
383
|
try {
|
|
386
384
|
mkdirSync(gitMergeCacheDir(), { recursive: true });
|
|
@@ -1416,7 +1414,7 @@ function iosStatusLines(record, slotLabel) {
|
|
|
1416
1414
|
const booted = ios.state === "Booted" ? chalk.green("booted") : chalk.dim(ios.state.toLowerCase());
|
|
1417
1415
|
const owned = ios.owned ? chalk.dim(" (owned)") : "";
|
|
1418
1416
|
out.push(` ios${slotLabel}: ${chalk.cyan(iosStatusName(ios))} ${booted}${owned}${activitySuffix(ios.activity)}${appSuffix(ios.app)}${idleShutdownSuffix(ios.idleShutdown)}`);
|
|
1419
|
-
if (!ios.udid && ios.host
|
|
1417
|
+
if (!ios.udid && ios.host) out.push(chalk.dim(` agent: ${hostedAgentLine(ios.host.agent, ios.host.machine)}`));
|
|
1420
1418
|
}
|
|
1421
1419
|
return out;
|
|
1422
1420
|
}
|
|
@@ -1434,7 +1432,7 @@ function androidStatusLines(record, slotLabel) {
|
|
|
1434
1432
|
out.push(` android${slotLabel}: ${chalk.cyan(`${host.device?.name ?? "Android emulator"} on ${host.machine}${host.selected === "auto" && host.reason ? ` (auto: ${host.reason})` : ""}`)} ${host.state ?? "unverified"}`);
|
|
1435
1433
|
}
|
|
1436
1434
|
}
|
|
1437
|
-
if (record?.host
|
|
1435
|
+
if (record?.host) out.push(chalk.dim(` agent: ${hostedAgentLine(record.host.agent, record.host.machine)}`));
|
|
1438
1436
|
return out;
|
|
1439
1437
|
}
|
|
1440
1438
|
function formatGb(mb) {
|
|
@@ -1554,7 +1552,7 @@ function renderStatus({ archived, archivedUsage: usage, projects, states, labelO
|
|
|
1554
1552
|
const build = state.macos.build;
|
|
1555
1553
|
const placement = build.buildMachine === void 0 ? "" : `; build placement ${build.buildMachine}, built on ${build.builtOn ?? "none"}`;
|
|
1556
1554
|
out.push(` macOS ${state.macos.product}: ${state.macos.state}${where}; build ${build.state}${placement}`);
|
|
1557
|
-
if (host
|
|
1555
|
+
if (host) out.push(chalk.dim(` agent: ${hostedAgentLine(host.agent, host.machine)}`));
|
|
1558
1556
|
}
|
|
1559
1557
|
if (state.web) {
|
|
1560
1558
|
const browser = state.web.running ? chalk.green(`running (pid ${state.web.pid}, DevTools ${state.web.cdpEndpoint})`) : chalk.dim("not running");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
-
import { d as androidToolPath } from "./android-
|
|
3
|
-
import { c as pidExists } from "./metro-
|
|
4
|
-
import { n as easMachineStateRoot } from "./eas-session-ledger-
|
|
5
|
-
import { b as parseSimctlList } from "./ios-
|
|
2
|
+
import { d as androidToolPath } from "./android-27_JgJ1T.mjs";
|
|
3
|
+
import { c as pidExists } from "./metro-Cj6W4qOO.mjs";
|
|
4
|
+
import { n as easMachineStateRoot } from "./eas-session-ledger-BDpSdFDM.mjs";
|
|
5
|
+
import { b as parseSimctlList } from "./ios-DQEzde6f.mjs";
|
|
6
6
|
import { existsSync, readdirSync, statSync, watch } from "node:fs";
|
|
7
7
|
import { basename, dirname, join } from "node:path";
|
|
8
8
|
//#region src/status-watch.ts
|
package/dist/status-worker.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { x as resolveSupervisorTarget } from "./workspaces-
|
|
2
|
-
import { a as resolveCollectorTargets, c as stopWorkspaceNow, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-
|
|
1
|
+
import { x as resolveSupervisorTarget } from "./workspaces-BgAYIccE.mjs";
|
|
2
|
+
import { a as resolveCollectorTargets, c as stopWorkspaceNow, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-BPrTEOaz.mjs";
|
|
3
3
|
export { clearCollectorState, clearSupervisorState, stopCommand as default, readCollectorState, readSupervisorState, resolveCollectorTargets, resolveSupervisorTarget, runStop, stopWorkspaceNow };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { D as ownership_claim_exports, E as debugLog, T as process_identity_exports, f as WorkspaceProcessCleanupError, p as withWorkspaceProcessLock } from "./exec-L37dbiIb.mjs";
|
|
2
|
-
import { E as workspaceDir, c as withWorkspaceStateLock, d as writeWorkspaceState, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-
|
|
3
|
-
import { f as refuseNoProject, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-
|
|
2
|
+
import { E as workspaceDir, c as withWorkspaceStateLock, d as writeWorkspaceState, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CHEN_xzy.mjs";
|
|
3
|
+
import { f as refuseNoProject, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-DsjhOzJ3.mjs";
|
|
4
4
|
import { A as withConfigLockAsync$1, O as upsertProject, gt as projectDeviceSlots, ht as parseDeviceSlotOption, m as getProject, mt as parseDeviceSlotKey, o as clearSupervisor, pt as deviceSlotPlatforms, vt as validateDeviceSlot } from "./config-CNmN-ndb.mjs";
|
|
5
|
-
import { A as clearWorkspaceLaunches, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, j as clearWorkspaceSupervisor, k as clearRemoteSession, n as findCommandWorkspace } from "./project-
|
|
6
|
-
import { t as macosAppPresent } from "./state-
|
|
7
|
-
import { nt as removeOwnedEmulatorMetroReverses } from "./android-
|
|
8
|
-
import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, p as signalProcessTreeAsync, r as killMetroTreeAsync, u as processCwds } from "./metro-
|
|
9
|
-
import { J as requestDevServerStop, K as logVanishedSupervisor,
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { O as releaseWorkspaceLeasesAsync, y as fileLeaseIo } from "./activity-
|
|
13
|
-
import { i as stopHostedAndroid } from "./hosted-android-
|
|
14
|
-
import { a as stopHostedIos, n as removePhoneReverses } from "./phone-reverses-
|
|
15
|
-
import { r as stopMacosApp } from "./stop-
|
|
16
|
-
import { n as verifyCollectorOwnership } from "./ownership-
|
|
5
|
+
import { A as clearWorkspaceLaunches, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, j as clearWorkspaceSupervisor, k as clearRemoteSession, n as findCommandWorkspace } from "./project-DIo71tGq.mjs";
|
|
6
|
+
import { t as macosAppPresent } from "./state-45P8Kd6Z.mjs";
|
|
7
|
+
import { nt as removeOwnedEmulatorMetroReverses } from "./android-27_JgJ1T.mjs";
|
|
8
|
+
import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, p as signalProcessTreeAsync, r as killMetroTreeAsync, u as processCwds } from "./metro-Cj6W4qOO.mjs";
|
|
9
|
+
import { J as requestDevServerStop, K as logVanishedSupervisor, Qt as endRecordedSession, X as withdrawDevServerStopRequest, ir as resolveEasCliBin } from "./device-capacity-D_IlxZRL.mjs";
|
|
10
|
+
import { gt as teardownOwnedIosSim, ht as teardownOwnedBrowser, mt as teardownOwnedAvd, w as stopTunnel, x as resolveSupervisorTarget } from "./workspaces-BgAYIccE.mjs";
|
|
11
|
+
import { at as NATIVE_RUN_WAIT_MS, ct as decideStopAction, dt as nativeRunWaitNotice, ft as requestNativeRunCancel, it as NATIVE_RUN_LOCK, lt as describeNativeRunHolder, st as clearNativeRunCancel, ut as nativeRunHolder } from "./toolchain-CZvtCZ-m.mjs";
|
|
12
|
+
import { O as releaseWorkspaceLeasesAsync, y as fileLeaseIo } from "./activity-CANftndU.mjs";
|
|
13
|
+
import { i as stopHostedAndroid } from "./hosted-android-gwLspaz6.mjs";
|
|
14
|
+
import { a as stopHostedIos, n as removePhoneReverses } from "./phone-reverses-vRveZKSG.mjs";
|
|
15
|
+
import { r as stopMacosApp } from "./stop-DrxHVVX9.mjs";
|
|
16
|
+
import { n as verifyCollectorOwnership } from "./ownership-BLgOimfp.mjs";
|
|
17
17
|
import { hostedAndroidDeviceName, hostedAndroidRecords, hostedIosRecords, hostedNativeRecords, isJsonObject, parseHostedNativePlacement } from "@stim-cli/core/state";
|
|
18
18
|
import chalk from "chalk";
|
|
19
19
|
//#region src/commands/stop.ts
|