stim 1.17.2 → 1.18.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 +50 -1
- package/dist/{activity-IRvJY_ru.mjs → activity-BxnkDZDi.mjs} +4 -4
- package/dist/{agent-device-usage-output-BK41vnzN.mjs → agent-device-usage-output-CZ66YA4T.mjs} +8 -8
- package/dist/android-BKA16DTf.mjs +4 -0
- package/dist/{android-B9yaNKwa.mjs → android-BvwuMUJ9.mjs} +192 -98
- package/dist/{android-DE4v59Mb.mjs → android-CBwCNicO.mjs} +2 -2
- package/dist/{android-B_YNZy61.mjs → android-DC3ZLuw0.mjs} +9 -9
- package/dist/{android-cas-ZFpjJBL_.mjs → android-cas-BBFyr9CA.mjs} +5 -5
- package/dist/android-cas-compiler.mjs +2 -2
- package/dist/api-D0VtFhqk.mjs +152 -0
- package/dist/api-run.d.mts +1 -0
- package/dist/api-run.mjs +145 -0
- package/dist/api.d.mts +212 -0
- package/dist/api.mjs +2 -0
- package/dist/{app-install-VPkI5WEg.mjs → app-install-D-PUENug.mjs} +3 -3
- package/dist/{attempt-Bk2ouQVL.mjs → attempt-DW-mQqM7.mjs} +14 -4
- package/dist/{budget-DfcgFdQB.mjs → budget-DIhL2BKx.mjs} +1578 -58
- package/dist/build-facts-DcLv2HSd.d.mts +111 -0
- package/dist/{cache-manifest-DnUHBJaU.mjs → cache-manifest-BI7ozfmH.mjs} +3 -3
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{chrome-BrcVWQyD.mjs → chrome-DJnmnS5q.mjs} +1 -1
- package/dist/cli-DNJMwADx.mjs +68 -0
- package/dist/cli.mjs +1 -1
- package/dist/{client-SvBdgObD.mjs → client-DzhapoMB.mjs} +139 -32
- package/dist/collector-run.mjs +9 -9
- package/dist/{command-output-CDAIFD-8.mjs → command-output-CBtzyIgF.mjs} +2 -2
- package/dist/{config-D0DbpZtM.mjs → config-CgYMahz7.mjs} +5 -5
- package/dist/{created-devices-CpvzBL25.mjs → created-devices-DKbeWsiK.mjs} +2 -2
- package/dist/{dependency-state-CLcBHH2M.mjs → dependency-state-xKoOypBm.mjs} +2 -2
- package/dist/{detached-entry-CiTEgMR1.mjs → detached-entry-BLfcgc4O.mjs} +1 -1
- package/dist/{dev-client-B-XC4uRH.mjs → dev-client-CLnIH02x.mjs} +2 -2
- package/dist/{device-C8IOoJPv.mjs → device-D7oCHGWi.mjs} +8 -8
- package/dist/{device-capacity-ZC4XSZ4R.mjs → device-capacity-EUOOYr8T.mjs} +13 -13
- package/dist/device-host-worker.mjs +19 -19
- package/dist/{device-ios-C2Um-XUR.mjs → device-ios-6MewKKnc.mjs} +13 -13
- package/dist/{device-lease-DpoS36_u.mjs → device-lease-Co-EwifR.mjs} +9 -9
- package/dist/{device-lease-run-B8YltIH_.mjs → device-lease-run-w1xhCqIW.mjs} +4 -4
- package/dist/{device-pool-3o7s5lo4.mjs → device-pool-F5WvRPtD.mjs} +3 -3
- package/dist/{device-remote-hFSkpfQu.mjs → device-remote-tHbd1fKy.mjs} +15 -15
- package/dist/{doctor-CFv1fCrF.mjs → doctor-B9ckYUoU.mjs} +33 -30
- package/dist/{error-diagnostics-C-NMnhrk.mjs → error-diagnostics-BRXOqDzG.mjs} +11 -11
- package/dist/{exec-CaErVv7t.mjs → exec-DWhCZDGm.mjs} +65 -2
- package/dist/{gc-DEmkg3Xh.mjs → gc-Dh6mXOKC.mjs} +23 -469
- package/dist/{gradle-dJpre3Yn.mjs → gradle-C6GKnunQ.mjs} +6 -6
- package/dist/{guide-status-Du-ZQ3FD.mjs → guide-status-Bhf9SJXc.mjs} +3 -3
- package/dist/{guide-CSmhMTf8.mjs → guide-tm6igAaa.mjs} +290 -53
- package/dist/{hosted-android-E1Heoqnv.mjs → hosted-android-Bv285t_t.mjs} +3 -3
- package/dist/{hosted-client-Bp4knSwu.mjs → hosted-client-C-rMtppF.mjs} +2 -2
- package/dist/{hosted-ios-BnbeYOUD.mjs → hosted-ios-D5mNmtj4.mjs} +1 -1
- package/dist/{hosted-logs-OcgIBvCT.mjs → hosted-logs-DN8Iz4mJ.mjs} +9 -9
- package/dist/{hosted-macos-DcxKjtfH.mjs → hosted-macos-B-wEjlwG.mjs} +5 -5
- package/dist/{hosted-native-1Ebbig4w.mjs → hosted-native-DeeOG8xZ.mjs} +6 -6
- package/dist/{idle-shutdown-IGyNV8Cr.mjs → idle-shutdown-jjtxAn5C.mjs} +7 -8
- package/dist/{ios-DSfnPfse.mjs → ios-B3SbOWdw.mjs} +19 -7
- package/dist/{ios-Cr1h5gnO.mjs → ios-Bvbf0SGY.mjs} +1 -1
- package/dist/{ios-BJ4XUSe1.mjs → ios-CPdkoKaa.mjs} +181 -95
- package/dist/ios-DNpdygiv.mjs +7 -0
- package/dist/{ios-device-Ee7sDXfp.mjs → ios-device-Bn7jWDB1.mjs} +1 -1
- package/dist/{ios-device-pAN4t54-.mjs → ios-device-vOaByMhw.mjs} +3 -3
- package/dist/{ios-state-8L3lgum6.mjs → ios-state-B2pES6Vs.mjs} +1 -1
- package/dist/{launch-verify-lTnWZikR.mjs → launch-verify-hskNcWkZ.mjs} +5 -5
- package/dist/{logs-BAaS7gS2.mjs → logs-1Ylc1Ri6.mjs} +13 -13
- package/dist/macos-Ck7OBMNY.mjs +2 -0
- package/dist/{macos-BIRQS90f.mjs → macos-DF6C7wUU.mjs} +118 -34
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +349 -47
- package/dist/{metro-g8NqiJp-.mjs → metro-Dh8T4Ytd.mjs} +5 -5
- package/dist/{metro-gateway-C-ijGI2F.mjs → metro-gateway-CEUw9RMH.mjs} +4 -4
- package/dist/{metro-store-CDDZHtPl.mjs → metro-store-BAHFcJm6.mjs} +16 -2
- package/dist/{named-ports-C8m8EQs2.mjs → named-ports-BFIz1Shz.mjs} +61 -6
- package/dist/{native-run-D1Q56rAD.mjs → native-run-B06FkmZx.mjs} +4 -4
- package/dist/{native-runtime-BEK171xQ.mjs → native-runtime-D_603JiC.mjs} +6 -6
- package/dist/{ndjson-PclOIwVY.mjs → ndjson-LGZAMsqa.mjs} +8 -4
- package/dist/offload-worker.d.mts +3 -17
- package/dist/offload-worker.mjs +10 -11
- package/dist/{ownership-DyRQru0q.mjs → ownership-D6Se7gg_.mjs} +3 -3
- package/dist/{page-QF_Ke10s.mjs → page-Bv9s2KwY.mjs} +1 -1
- package/dist/placement-log-BcPhRwR4.mjs +84 -0
- package/dist/{build-plan-BDsSi09V.mjs → plan-placement-CtxkCO54.mjs} +122 -48
- package/dist/{ports-4nYqxPWC.mjs → ports-BLTtfBq-.mjs} +3 -3
- package/dist/{prebuild-D7RUMkwN.mjs → prebuild-juCyreaR.mjs} +5 -5
- package/dist/preview-D5V07Nrl.mjs +987 -0
- package/dist/{rolldown-runtime-BsOwBuO_.mjs → process-identity-Biv3arCO.mjs} +11 -1
- package/dist/{project-D47Rh0ly.mjs → project-C3ChRLZy.mjs} +4 -68
- package/dist/projects-DD7dBTCj.mjs +92 -0
- package/dist/{pull-request-pxnDCQzn.mjs → pull-request-u4vp7zmK.mjs} +1 -1
- package/dist/pull-requests.mjs +1 -1
- package/dist/{recordings-BNgsD1Tr.mjs → recordings-BAWltsVt.mjs} +1 -1
- package/dist/{reload-DcRxj3qG.mjs → reload-DvyWzVjJ.mjs} +15 -15
- package/dist/{remote-cache-Ci4DQYYj.mjs → remote-cache-BGg7aGIZ.mjs} +5 -5
- package/dist/{run-CkE9y0nc.mjs → run-vhtDgpHO.mjs} +5 -5
- package/dist/{server-bare-BkrSxSsZ.mjs → server-bare-B9E7S1aR.mjs} +4 -5
- package/dist/server-expo-Db9HBUoa.mjs +2 -0
- package/dist/{server-expo-CHTyXD0G.mjs → server-expo-DoBHhuzK.mjs} +5 -6
- package/dist/{settings-SR9OmW9h.mjs → settings-Byp2AQ_E.mjs} +6 -5
- package/dist/{settings-Cfd-0r2d.mjs → settings-CQyMElEP.mjs} +24 -763
- package/dist/{settings-BBpMcDbD.mjs → settings-Djl-mpjX.mjs} +1 -1
- package/dist/settings.schema.json +126 -3
- package/dist/{simslim-BWNrc3M3.mjs → simslim-EHBQ2R4G.mjs} +7 -7
- package/dist/{slot-launch-DmjBmpQV.mjs → slot-launch-C1nqh4mu.mjs} +6 -6
- package/dist/{spawn-claims-D0XfSe8u.mjs → spawn-claims-Kqiifsk2.mjs} +1 -1
- package/dist/{spawn-entry-jw19m8Nl.mjs → spawn-entry-Dcb7sDUz.mjs} +1 -0
- package/dist/{stage-CzaiwFsI.mjs → stage-g_WqWeaE.mjs} +14 -3
- package/dist/{start-DUz3mYdb.mjs → start-D-IeOyoK.mjs} +19 -19
- package/dist/{start-AlfCPRVU.mjs → start-NTc1Ifqs.mjs} +1 -1
- package/dist/{state-PeQiJuIu.mjs → state-BG-aAk4k.mjs} +4 -4
- package/dist/{state-B4PQFXMW.d.mts → state-lKh8shBp.d.mts} +2 -3
- package/dist/{state-DyaNTgfR.mjs → state-xnqpx3AD.mjs} +2 -2
- package/dist/{stats-Bq4fJOdB.mjs → stats-DY6ekz8F.mjs} +5 -5
- package/dist/{status-DlKvVJBE.mjs → status-BEeL6IKz.mjs} +6 -4
- package/dist/{status-BA2pehwf.mjs → status-DCjZeE-K.mjs} +33 -34
- package/dist/{status-CzS4bPO9.mjs → status-Dcr0Qexd.mjs} +5 -5
- package/dist/{stim-desktop-Cnz8CPnl.mjs → stim-desktop-Behws_fi.mjs} +1 -1
- package/dist/{stim-installations-QMEI32v1.mjs → stim-installations-aR_WsNOA.mjs} +1 -1
- package/dist/{stop-BIiM49EY.mjs → stop-BGhKMOuH.mjs} +5 -5
- package/dist/{stop-DQIasgKp.mjs → stop-BTjs3xbc.mjs} +17 -18
- package/dist/{stop-zF1y04f2.mjs → stop-DIJtD2GL.mjs} +2 -2
- package/dist/supervisor-run.d.mts +24 -22
- package/dist/supervisor-run.mjs +21 -22
- package/dist/{support-CsJNVfOc.mjs → support-BaayeYCf.mjs} +7 -7
- package/dist/{support-WvD__tSV.mjs → support-Bwvbrq5-.mjs} +5 -5
- package/dist/{toolchain-DNyR3NPq.mjs → toolchain-Bnyd_K3A.mjs} +471 -22
- package/dist/{trigger-Bemu8ytw.mjs → trigger-CJMhwXe8.mjs} +5 -5
- package/dist/trigger-DWAq9hkw.mjs +2 -0
- package/dist/{warm-progress-DF4JRvYI.mjs → warm-progress-CjB-MP6H.mjs} +7 -7
- package/dist/web-B6_bFDn7.mjs +2 -0
- package/dist/{web-Dl0KSRHf.mjs → web-DTU0uiWj.mjs} +22 -22
- package/dist/web-run.mjs +10 -10
- package/dist/{workspace-state-DqcCbpE7.mjs → workspace-state-C59dqG-Z.mjs} +3 -3
- package/dist/{ownership-BMLqyBgJ.mjs → workspaces-xXItD8Dj.mjs} +577 -23
- package/dist/{worktree-j3IcFAI5.mjs → worktree-BJfnU6r5.mjs} +1 -1
- package/dist/{worktree-Be_7NLKy.mjs → worktree-BSYlofkq.mjs} +234 -35
- package/dist/worktree-CsKYexJM.mjs +753 -0
- package/package.json +10 -5
- package/dist/build-progress-D0WkjCPd.mjs +0 -1036
- package/dist/build-slots-41v_d2x9.mjs +0 -142
- package/dist/cli-CYXb29oE.mjs +0 -51
- package/dist/deps-iKw0eD4P.mjs +0 -438
- package/dist/errors-B6W7FkxQ.mjs +0 -15
- package/dist/idle-BXG__1BA.mjs +0 -176
- package/dist/in-use-CvGOUn-x.mjs +0 -130
- package/dist/preview-B-g9d7kV.mjs +0 -318
- package/dist/process-identity-BmRm1qV0.mjs +0 -12
- package/dist/server-expo-CeakhI8P.mjs +0 -2
- package/dist/state-BKa8wNN5.mjs +0 -148
- package/dist/stop-cause-rhmGfwvt.mjs +0 -97
- package/dist/trigger-CXts6qt1.mjs +0 -2
- package/dist/watchman-APYjXSQa.mjs +0 -48
- package/dist/workspace-process-lock-2mNzOlaB.mjs +0 -58
- package/dist/workspaces-Bcib97-6.mjs +0 -306
|
@@ -1,24 +1,10 @@
|
|
|
1
|
+
import "./state-lKh8shBp.mjs";
|
|
2
|
+
import { n as CcacheActivity, r as CompilationCacheActivity } from "./build-facts-DcLv2HSd.mjs";
|
|
1
3
|
import "./ndjson-Du3j0AQ9.mjs";
|
|
2
|
-
import "./state-B4PQFXMW.mjs";
|
|
3
|
-
import { readFileSync } from "fs";
|
|
4
4
|
import "@stim-cli/core/state";
|
|
5
|
+
import { readFileSync } from "fs";
|
|
5
6
|
import "@expo/fingerprint";
|
|
6
7
|
import "@stim-cli/core/protocol";
|
|
7
|
-
//#region src/engine/build-facts.d.ts
|
|
8
|
-
interface CompilationCacheActivity {
|
|
9
|
-
status: "reported" | "unavailable" | "not-run";
|
|
10
|
-
hits: number | null;
|
|
11
|
-
cacheableTasks: number | null;
|
|
12
|
-
hitRatePercent: number | null;
|
|
13
|
-
swiftTargetsWithoutExplicitModules?: number;
|
|
14
|
-
}
|
|
15
|
-
interface CcacheActivity {
|
|
16
|
-
status: "reported" | "unavailable" | "not-run";
|
|
17
|
-
hits: number | null;
|
|
18
|
-
misses: number | null;
|
|
19
|
-
hitRatePercent: number | null;
|
|
20
|
-
}
|
|
21
|
-
//#endregion
|
|
22
8
|
//#region src/optimizations.d.ts
|
|
23
9
|
interface Optimizations {
|
|
24
10
|
buildCache: boolean;
|
package/dist/offload-worker.mjs
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
1
|
+
import { t as getExecutor } from "./exec-DWhCZDGm.mjs";
|
|
2
2
|
import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
|
|
3
|
-
import { D as fingerprintProject, M as refingerprintAfterMutation } from "./device-lease-
|
|
4
|
-
import {
|
|
5
|
-
import { t as
|
|
6
|
-
import { a as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { d as podAction } from "./support-CsJNVfOc.mjs";
|
|
11
|
-
import { createHash } from "node:crypto";
|
|
3
|
+
import { D as fingerprintProject, M as refingerprintAfterMutation } from "./device-lease-Co-EwifR.mjs";
|
|
4
|
+
import { F as resolveCcache, _ as buildIos, j as CCACHE_UNAVAILABLE, l as podsAreStale, o as workerToolchain, p as runPodInstall, s as manifestDigest, u as readPodState } from "./toolchain-Bnyd_K3A.mjs";
|
|
5
|
+
import { n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-juCyreaR.mjs";
|
|
6
|
+
import { a as gradlewPath, i as buildAndroid, r as assembleTaskFor } from "./gradle-C6GKnunQ.mjs";
|
|
7
|
+
import { d as podAction } from "./support-BaayeYCf.mjs";
|
|
8
|
+
import { t as logLines } from "./run-vhtDgpHO.mjs";
|
|
9
|
+
import { r as stageBundle, t as resolveBundleExtras } from "./stage-g_WqWeaE.mjs";
|
|
12
10
|
import { chmodSync, constants, copyFileSync, cpSync, createReadStream, existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
|
|
13
11
|
import { basename, dirname, join } from "node:path";
|
|
12
|
+
import { createHash } from "node:crypto";
|
|
14
13
|
//#region src/offload/worker.ts
|
|
15
14
|
function emit(value) {
|
|
16
15
|
process.stdout.write(`${JSON.stringify(value)}\n`);
|
|
@@ -582,7 +581,7 @@ async function compileAndroid(job, root, log, time) {
|
|
|
582
581
|
}
|
|
583
582
|
async function main() {
|
|
584
583
|
const mode = process.argv[2];
|
|
585
|
-
if (mode === "offer") return emit(workerToolchain());
|
|
584
|
+
if (mode === "offer") return emit(workerToolchain(process.argv[3] ?? null));
|
|
586
585
|
if (mode === "build") {
|
|
587
586
|
const chunks = [];
|
|
588
587
|
for await (const chunk of process.stdin) chunks.push(chunk);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as process_identity_exports } from "./process-identity-
|
|
2
|
-
import { o as pidExists } from "./metro-
|
|
3
|
-
import { c as writeWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState } from "./workspace-state-
|
|
1
|
+
import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
|
+
import { o as pidExists } from "./metro-Dh8T4Ytd.mjs";
|
|
3
|
+
import { c as writeWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState } from "./workspace-state-C59dqG-Z.mjs";
|
|
4
4
|
import { realpathSync } from "node:fs";
|
|
5
5
|
//#region src/collector/state.ts
|
|
6
6
|
function collectorRoot(root) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as process_identity_exports } from "./process-identity-
|
|
1
|
+
import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
2
|
import { t as connectOwnedBrowser } from "./cdp-Dq_ypAlJ.mjs";
|
|
3
3
|
//#region src/web/page.ts
|
|
4
4
|
/** The record of a verified live browser: its supervisor and Chrome are the processes the record names. */
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { p as buildPlacementSettings } from "./client-DzhapoMB.mjs";
|
|
2
|
+
//#region src/placement-log.ts
|
|
3
|
+
/** `machine` is `local` when the run stays on this Mac. */
|
|
4
|
+
function placementRecord(input) {
|
|
5
|
+
const { choice, fallback } = input;
|
|
6
|
+
const event = input.event ?? (input.kind === "build" ? "build_placement" : "device_placement");
|
|
7
|
+
const base = `${input.kind} placement: ${choice.machine} (${choice.msg})`;
|
|
8
|
+
return {
|
|
9
|
+
src: "placement",
|
|
10
|
+
level: fallback ? "warn" : "info",
|
|
11
|
+
...input,
|
|
12
|
+
event,
|
|
13
|
+
msg: fallback ? `${base}; fell back: ${fallback.msg}` : base
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function skippedCandidates(skipped) {
|
|
17
|
+
return skipped.map(({ machine, code, reason }) => ({
|
|
18
|
+
machine,
|
|
19
|
+
code,
|
|
20
|
+
msg: reason
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
function devicePlacementRecord({ platform, fromFlag, placed }) {
|
|
24
|
+
return placementRecord({
|
|
25
|
+
kind: "device",
|
|
26
|
+
platform,
|
|
27
|
+
settings: [{
|
|
28
|
+
key: `${platform}.remote`,
|
|
29
|
+
value: "auto",
|
|
30
|
+
from: fromFlag ? "flag" : "setting"
|
|
31
|
+
}],
|
|
32
|
+
candidates: skippedCandidates(placed.skipped),
|
|
33
|
+
choice: {
|
|
34
|
+
machine: placed.placement.machine ?? "local",
|
|
35
|
+
code: placed.code,
|
|
36
|
+
msg: placed.placement.reason
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The record for where a build runs. `stays` is the reason this Mac builds it, `chose` the remote Mac that takes it,
|
|
42
|
+
* and `fallback` why a remote Mac that was meant to build it did not.
|
|
43
|
+
*/
|
|
44
|
+
function buildPlacementRecord({ platform, buildMachine, candidates = [], ...outcome }) {
|
|
45
|
+
const base = {
|
|
46
|
+
kind: "build",
|
|
47
|
+
platform,
|
|
48
|
+
settings: buildPlacementSettings(buildMachine),
|
|
49
|
+
candidates
|
|
50
|
+
};
|
|
51
|
+
if ("stays" in outcome) return placementRecord({
|
|
52
|
+
...base,
|
|
53
|
+
choice: {
|
|
54
|
+
machine: "local",
|
|
55
|
+
code: outcome.stays.code,
|
|
56
|
+
msg: outcome.stays.reason
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
if ("chose" in outcome) return placementRecord({
|
|
60
|
+
...base,
|
|
61
|
+
choice: {
|
|
62
|
+
machine: outcome.chose.machine,
|
|
63
|
+
code: "placed",
|
|
64
|
+
msg: outcome.chose.reason
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
const { code, reason, machine } = outcome.fallback;
|
|
68
|
+
return placementRecord({
|
|
69
|
+
...base,
|
|
70
|
+
event: outcome.event ?? "build_placement",
|
|
71
|
+
choice: {
|
|
72
|
+
machine: "local",
|
|
73
|
+
code,
|
|
74
|
+
msg: "building on this Mac"
|
|
75
|
+
},
|
|
76
|
+
fallback: {
|
|
77
|
+
code,
|
|
78
|
+
msg: reason,
|
|
79
|
+
...machine ? { machine } : {}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
export { devicePlacementRecord as n, buildPlacementRecord as t };
|
|
@@ -1,45 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { n as ownership_claim_exports } from "./process-identity-BmRm1qV0.mjs";
|
|
1
|
+
import { n as ownership_claim_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
|
+
import { t as getExecutor } from "./exec-DWhCZDGm.mjs";
|
|
4
3
|
import { r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
5
|
-
import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
4
|
+
import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-CBtzyIgF.mjs";
|
|
5
|
+
import { D as withConfigLock$1, H as projectDeviceSlots, _ as loadConfig$1, a as clearDevice, b as releaseAndroidConsolePort, i as clearAndroidBootPending, k as acquireAvdClaim, p as getProject, t as allConsolePortsAndSerials, w as setDevice, z as deviceSlotPlatforms } from "./config-CgYMahz7.mjs";
|
|
6
|
+
import { D as makeTemporaryDirectory, O as removeTemporaryEntry, c as gitCommonDirOnDisk } from "./worktree-CsKYexJM.mjs";
|
|
7
|
+
import { u as ownedDeviceLabel } from "./project-C3ChRLZy.mjs";
|
|
8
|
+
import { o as pidExists } from "./metro-Dh8T4Ytd.mjs";
|
|
9
|
+
import { d as sharedBuildCache } from "./workspace-state-C59dqG-Z.mjs";
|
|
10
|
+
import { B as readStats$1, M as estimateBuild, s as peekBudget } from "./budget-DIhL2BKx.mjs";
|
|
11
|
+
import { E as teardownOwnedAvd, k as teardownParkedAvd } from "./workspaces-xXItD8Dj.mjs";
|
|
12
|
+
import { C as diffFingerprintSources, I as storedSources, w as entryDir, y as artifactIn } from "./device-lease-Co-EwifR.mjs";
|
|
13
|
+
import { A as listAvds, B as ownedAvdSystemImage, E as getAvdNameForSerial, F as ownedAvdDeviceProfile, J as resolveOwnedAvdSerial, L as ownedAvdMatchesConfiguration, O as listAdbDevices, P as nextConsolePort, R as ownedAvdName, W as pickDefaultSystemImage, b as createOwnedAvd, f as assertOwnedAvdStopped, ft as parkedMaxSetting, g as avdPoolConfiguration, j as listInstalledSystemImages, n as OWNED_AVD_CONFIG_DEFAULTS, pt as readParked, st as adoptParked, t as DEFAULT_AVD_DEVICE_PROFILE, tt as waitForBoot, ut as isLegacyDeletionClaim, v as bootAndroidEmulator, y as configureNewOwnedAvd } from "./android-DC3ZLuw0.mjs";
|
|
14
|
+
import { M as readHostMemoryPressure, d as listAllIosSims } from "./ios-B3SbOWdw.mjs";
|
|
15
|
+
import { a as androidAvdConfigSetting, c as androidDataPartitionSizeGbSetting } from "./settings-CQyMElEP.mjs";
|
|
16
|
+
import { b as hostingMachines, g as resolveBuildMachine, m as namedBuildMachine } from "./client-DzhapoMB.mjs";
|
|
17
|
+
import { t as clearDeviceIdleShutdown } from "./idle-shutdown-jjtxAn5C.mjs";
|
|
18
|
+
import { i as countLiveOwnedDevices, n as DeviceAdmissionRefusal, p as withDeviceBootAdmission, s as peekDeviceSlots } from "./device-capacity-EUOOYr8T.mjs";
|
|
19
|
+
import { E as tailLines, T as startBuildHeartbeat, g as HEARTBEAT_INTERVAL_MS } from "./toolchain-Bnyd_K3A.mjs";
|
|
20
|
+
import { t as cleanLine } from "./server-expo-DoBHhuzK.mjs";
|
|
21
|
+
import { a as call, o as connectHost } from "./hosted-client-C-rMtppF.mjs";
|
|
22
|
+
import { r as readHostedNative, s as writeHostedNative } from "./ios-state-B2pES6Vs.mjs";
|
|
23
|
+
import { n as prepareHostedNative } from "./hosted-native-DeeOG8xZ.mjs";
|
|
24
|
+
import { a as easAuthNote } from "./remote-cache-BGg7aGIZ.mjs";
|
|
25
|
+
import { t as reconcileSimSlim } from "./simslim-EHBQ2R4G.mjs";
|
|
26
|
+
import { i as ensureOwnedIosDevice, r as ensureIosBooted } from "./device-ios-6MewKKnc.mjs";
|
|
27
|
+
import { i as staleNativeDirRefusal } from "./prebuild-juCyreaR.mjs";
|
|
29
28
|
import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, rmSync, writeFileSync } from "node:fs";
|
|
30
29
|
import { basename, dirname, join, relative } from "node:path";
|
|
31
30
|
import { LAST_BUILD_KEYS, isJsonObject, loadConfig, machineCapacity, parseHostedChoice, parseHostedNativeOffer, readWorkspaceState } from "@stim-cli/core/state";
|
|
32
|
-
import { claimRemoveCommand, clearClaimChild, markClaimChildPending, processGroupAlive, releaseClaim, setClaimChild } from "@stim-cli/core/ownership-claim";
|
|
33
|
-
import { captureProcessIdentity } from "@stim-cli/core/process-identity";
|
|
34
31
|
import chalk from "chalk";
|
|
35
32
|
import { isDeepStrictEqual } from "node:util";
|
|
33
|
+
import { claimRemoveCommand, clearClaimChild, markClaimChildPending, processGroupAlive, releaseClaim, setClaimChild } from "@stim-cli/core/ownership-claim";
|
|
34
|
+
import { captureProcessIdentity } from "@stim-cli/core/process-identity";
|
|
35
|
+
import { randomUUID } from "node:crypto";
|
|
36
36
|
import * as expoFingerprint from "@expo/fingerprint";
|
|
37
37
|
import { resolveTieredBuild } from "@stim-cli/cache";
|
|
38
38
|
import { request } from "node:http";
|
|
39
39
|
//#region src/device-host/placement.ts
|
|
40
|
-
function local$1(reason, skipped = []) {
|
|
40
|
+
function local$1(code, reason, skipped = []) {
|
|
41
41
|
return {
|
|
42
42
|
kind: "local",
|
|
43
|
+
code,
|
|
43
44
|
reason,
|
|
44
45
|
skipped
|
|
45
46
|
};
|
|
@@ -50,6 +51,7 @@ function decideDevicePlacement(inputs) {
|
|
|
50
51
|
const reason = `recorded session on ${inputs.sticky.machine}`;
|
|
51
52
|
return {
|
|
52
53
|
kind: "host",
|
|
54
|
+
code: "sticky",
|
|
53
55
|
reason,
|
|
54
56
|
machines: [{
|
|
55
57
|
machine: inputs.sticky.machine,
|
|
@@ -60,6 +62,7 @@ function decideDevicePlacement(inputs) {
|
|
|
60
62
|
}
|
|
61
63
|
return {
|
|
62
64
|
kind: "local",
|
|
65
|
+
code: "sticky",
|
|
63
66
|
reason: "this workspace's device runs here",
|
|
64
67
|
skipped: []
|
|
65
68
|
};
|
|
@@ -69,21 +72,22 @@ function decideDevicePlacement(inputs) {
|
|
|
69
72
|
const cannotTake = !(max === 0 || count !== null && count < max) || queued > 0;
|
|
70
73
|
const usage = max > 0 ? `${count} of ${max} devices in use` : `${count} devices in use, no device cap`;
|
|
71
74
|
const localReason = count === null ? "cannot tell how many devices run here; local boot admission decides" : cannotTake ? `${usage}${queued ? `, ${queued} runs queued ahead` : ""}` : here.budgetRefusal ?? (here.memoryPressure !== "normal" ? `host memory pressure ${here.memoryPressure ?? "unknown"} here` : `load ${here.loadPerCore.toFixed(1)}/core here, ${usage}`);
|
|
72
|
-
if (!offers.length) return local$1("no remote Macs configured; " + localReason);
|
|
73
|
-
if (count === null) return local$1(localReason);
|
|
74
|
-
if (!cannotTake && here.memoryPressure === "normal" && !here.budgetRefusal && here.loadPerCore < here.maxLoadPerCore) return local$1(localReason);
|
|
75
|
+
if (!offers.length) return local$1("no-remote-mac", "no remote Macs configured; " + localReason);
|
|
76
|
+
if (count === null) return local$1("device-count-unknown", localReason);
|
|
77
|
+
if (!cannotTake && here.memoryPressure === "normal" && !here.budgetRefusal && here.loadPerCore < here.maxLoadPerCore) return local$1("this-mac-free", localReason);
|
|
75
78
|
const skipped = [];
|
|
76
79
|
const admitted = [];
|
|
77
80
|
offers.forEach((probe, index) => {
|
|
78
81
|
let reason = null;
|
|
82
|
+
let code = "unreachable";
|
|
79
83
|
if ("failure" in probe) reason = probe.failure;
|
|
80
84
|
else {
|
|
81
85
|
const { offer } = probe;
|
|
82
|
-
if (offer.declined !== null) reason = `declined: ${offer.declined}
|
|
83
|
-
else if (offer.platform !== platform || !offer.choice) reason = `no matching ${platform} device choice
|
|
84
|
-
else if (offer.resources.memoryPressure !== "normal") reason = "host memory pressure unknown or elevated";
|
|
85
|
-
else if (offer.capacity.available === 0) reason = "no hosted device capacity available";
|
|
86
|
-
else if (!cannotTake && (offer.resources.loadPerCore === null || offer.resources.loadPerCore >= here.loadPerCore)) reason = offer.resources.loadPerCore === null ? "host load unknown while this Mac has room" : "host is not less loaded than this Mac";
|
|
86
|
+
if (offer.declined !== null) [code, reason] = ["declined", `declined: ${offer.declined}`];
|
|
87
|
+
else if (offer.platform !== platform || !offer.choice) [code, reason] = ["no-matching-device", `no matching ${platform} device choice`];
|
|
88
|
+
else if (offer.resources.memoryPressure !== "normal") [code, reason] = ["memory", "host memory pressure unknown or elevated"];
|
|
89
|
+
else if (offer.capacity.available === 0) [code, reason] = ["no-capacity", "no hosted device capacity available"];
|
|
90
|
+
else if (!cannotTake && (offer.resources.loadPerCore === null || offer.resources.loadPerCore >= here.loadPerCore)) [code, reason] = ["load", offer.resources.loadPerCore === null ? "host load unknown while this Mac has room" : "host is not less loaded than this Mac"];
|
|
87
91
|
else admitted.push({
|
|
88
92
|
machine: probe.machine,
|
|
89
93
|
offer,
|
|
@@ -92,17 +96,19 @@ function decideDevicePlacement(inputs) {
|
|
|
92
96
|
}
|
|
93
97
|
if (reason) skipped.push({
|
|
94
98
|
machine: probe.machine,
|
|
99
|
+
code,
|
|
95
100
|
reason
|
|
96
101
|
});
|
|
97
102
|
});
|
|
98
103
|
admitted.sort((a, b) => Number(b.machine === buildMachine) - Number(a.machine === buildMachine) || (a.offer.resources.loadPerCore ?? Infinity) - (b.offer.resources.loadPerCore ?? Infinity) || b.offer.resources.memoryFreeBytes - a.offer.resources.memoryFreeBytes || a.index - b.index);
|
|
99
|
-
if (!admitted.length) return local$1(`${localReason}; no host admits${cannotTake && !noWait ? "; waiting locally if needed" : ""}`, skipped);
|
|
104
|
+
if (!admitted.length) return local$1("no-host-admits", `${localReason}; no host admits${cannotTake && !noWait ? "; waiting locally if needed" : ""}`, skipped);
|
|
100
105
|
const machines = admitted.map(({ machine, offer }) => ({
|
|
101
106
|
machine,
|
|
102
107
|
reason: `${localReason}; ${machine}${machine === buildMachine ? " is the explicit remote Mac," : ""} load ${offer.resources.loadPerCore === null ? "unknown" : offer.resources.loadPerCore.toFixed(1) + "/core"}`
|
|
103
108
|
}));
|
|
104
109
|
return {
|
|
105
110
|
kind: "host",
|
|
111
|
+
code: "placed",
|
|
106
112
|
machines,
|
|
107
113
|
reason: machines[0].reason,
|
|
108
114
|
skipped
|
|
@@ -160,7 +166,7 @@ async function probeHost(machine, platform, selectors) {
|
|
|
160
166
|
host?.connection.close();
|
|
161
167
|
}
|
|
162
168
|
}
|
|
163
|
-
function hosted(target, reason, skipped = []) {
|
|
169
|
+
function hosted(target, code, reason, skipped = []) {
|
|
164
170
|
target.selection = {
|
|
165
171
|
selected: "auto",
|
|
166
172
|
reason
|
|
@@ -172,16 +178,18 @@ function hosted(target, reason, skipped = []) {
|
|
|
172
178
|
machine: target.host.machine,
|
|
173
179
|
reason
|
|
174
180
|
},
|
|
181
|
+
code,
|
|
175
182
|
skipped
|
|
176
183
|
};
|
|
177
184
|
}
|
|
178
|
-
function local(reason, skipped = []) {
|
|
185
|
+
function local(code, reason, skipped = []) {
|
|
179
186
|
return {
|
|
180
187
|
target: null,
|
|
181
188
|
placement: {
|
|
182
189
|
decision: "local",
|
|
183
190
|
reason
|
|
184
191
|
},
|
|
192
|
+
code,
|
|
185
193
|
skipped
|
|
186
194
|
};
|
|
187
195
|
}
|
|
@@ -200,6 +208,7 @@ async function automaticDevicePlacement({ root, slot, platform, selectors, build
|
|
|
200
208
|
machine: recorded.machine,
|
|
201
209
|
reason: recorded.reason ?? decideDevicePlacement({ sticky: { machine: recorded.machine } }).reason
|
|
202
210
|
},
|
|
211
|
+
code: "sticky",
|
|
203
212
|
skipped: [],
|
|
204
213
|
sticky: true
|
|
205
214
|
};
|
|
@@ -207,7 +216,7 @@ async function automaticDevicePlacement({ root, slot, platform, selectors, build
|
|
|
207
216
|
}
|
|
208
217
|
const devices = peek();
|
|
209
218
|
if (devices.localLive) return {
|
|
210
|
-
...local(decideDevicePlacement({ sticky: { local: true } }).reason),
|
|
219
|
+
...local("sticky", decideDevicePlacement({ sticky: { local: true } }).reason),
|
|
211
220
|
sticky: true
|
|
212
221
|
};
|
|
213
222
|
const entries = machines();
|
|
@@ -232,7 +241,7 @@ async function automaticDevicePlacement({ root, slot, platform, selectors, build
|
|
|
232
241
|
buildMachine,
|
|
233
242
|
noWait
|
|
234
243
|
});
|
|
235
|
-
if (early.kind === "local" && early.skipped.length === 0) return local(early.reason);
|
|
244
|
+
if (early.kind === "local" && early.skipped.length === 0) return local(early.code, early.reason);
|
|
236
245
|
const probes = await Promise.all(entries.map((machine) => probe(machine, platform, selectors)));
|
|
237
246
|
const decision = decideDevicePlacement({
|
|
238
247
|
platform,
|
|
@@ -241,9 +250,9 @@ async function automaticDevicePlacement({ root, slot, platform, selectors, build
|
|
|
241
250
|
buildMachine,
|
|
242
251
|
noWait
|
|
243
252
|
});
|
|
244
|
-
if (decision.kind === "local") return local(decision.reason, decision.skipped);
|
|
253
|
+
if (decision.kind === "local") return local(decision.code, decision.reason, decision.skipped);
|
|
245
254
|
const target = probes.find((each) => each.probe.machine === decision.machines[0].machine).target;
|
|
246
|
-
return hosted(target, decision.reason, decision.skipped);
|
|
255
|
+
return hosted(target, decision.code, decision.reason, decision.skipped);
|
|
247
256
|
}
|
|
248
257
|
function devicePlacementLine(placement, skipped) {
|
|
249
258
|
return `${placement.machine ?? "local"}, ${placement.reason}${placement.decision !== "hosted" && skipped.length ? "; " + skipped.map((each) => `${each.machine}: ${each.reason}`).join("; ") : ""}`;
|
|
@@ -891,7 +900,7 @@ async function ensureAndroidBooted({ device, deviceSlotWait, projectPath, slot,
|
|
|
891
900
|
function didSetUpDevice(device, remote) {
|
|
892
901
|
return remote ? void 0 : Boolean(device.setup || device.booting);
|
|
893
902
|
}
|
|
894
|
-
async function ensureOwnedDevice({ platform, project, projectPath, slot, settingsRoot = projectPath, label = ownedDeviceLabel(projectPath), settings, flags = {}, note = () => {}, out = () => {}, logFile = null, alive = pidExists, configureAvd = configureNewOwnedAvd, teardownAvd = teardownOwnedAvd, reconcileIosSimulator = reconcileSimSlim }) {
|
|
903
|
+
async function ensureOwnedDevice({ platform, project, projectPath, slot, settingsRoot = projectPath, label = ownedDeviceLabel(projectPath), settings, flags = {}, note = () => {}, out = () => {}, logFile = null, alive = pidExists, configureAvd = configureNewOwnedAvd, teardownAvd = teardownOwnedAvd, reconcileIosSimulator = reconcileSimSlim, simSnapshot }) {
|
|
895
904
|
clearDeviceIdleShutdown(projectPath, platform, slot);
|
|
896
905
|
if (slot && slot !== "default") label = `${label}-${slot}`;
|
|
897
906
|
const record = deviceSlotPlatforms(project, slot)?.[platform] ?? null;
|
|
@@ -905,7 +914,8 @@ async function ensureOwnedDevice({ platform, project, projectPath, slot, setting
|
|
|
905
914
|
flags,
|
|
906
915
|
note,
|
|
907
916
|
out,
|
|
908
|
-
reconcileIosSimulator
|
|
917
|
+
reconcileIosSimulator,
|
|
918
|
+
simSnapshot
|
|
909
919
|
});
|
|
910
920
|
return ensureOwnedAndroidDevice({
|
|
911
921
|
record,
|
|
@@ -1753,6 +1763,7 @@ function printPlan(plan, json) {
|
|
|
1753
1763
|
}
|
|
1754
1764
|
const slot = plan.slot ? ` [${plan.slot}]` : "";
|
|
1755
1765
|
console.log(phaseLine("plan", `${plan.platform}${slot} ${shortHash(plan.fingerprint)} -> ${cacheLine(plan)}`));
|
|
1766
|
+
if (plan.placement) console.log(phaseLine("placement", plan.placement));
|
|
1756
1767
|
if (plan.missReason) console.log(phaseLine("cache", `miss: ${plan.missReason.summary}`));
|
|
1757
1768
|
if (plan.refusal) {
|
|
1758
1769
|
console.log(phaseLine("error", plan.refusal.message));
|
|
@@ -1782,4 +1793,67 @@ function planFlagRefusal(flag) {
|
|
|
1782
1793
|
};
|
|
1783
1794
|
}
|
|
1784
1795
|
//#endregion
|
|
1785
|
-
|
|
1796
|
+
//#region src/device-host/plan-placement.ts
|
|
1797
|
+
/**
|
|
1798
|
+
* Where `--plan` assumes the next run puts its simulator or emulator, with no session, reservation or state write.
|
|
1799
|
+
* A named Mac, or the Mac a recorded session already holds, answers with the device its `device-host.offer` would
|
|
1800
|
+
* give; `auto` repeats the placement decision a run makes now and, when that stays on this Mac, notes any Mac
|
|
1801
|
+
* whose device would key differently. The result predicts the cache key only; a run reads its own device.
|
|
1802
|
+
*/
|
|
1803
|
+
async function planHostedDevice({ root, slot, platform, machine, selectors, sameKey, deps = {} }) {
|
|
1804
|
+
const { automatic = automaticDevicePlacement, probe = probeHost, machines = hostingMachines } = deps;
|
|
1805
|
+
const named = async (name) => {
|
|
1806
|
+
const result = await probe(name, platform, selectors);
|
|
1807
|
+
if ("failure" in result.probe) return {
|
|
1808
|
+
kind: "unknown",
|
|
1809
|
+
reason: `${name} did not give a ${platform} device (${result.probe.failure})`
|
|
1810
|
+
};
|
|
1811
|
+
const { choice, declined } = result.probe.offer;
|
|
1812
|
+
if (!choice) return {
|
|
1813
|
+
kind: "unknown",
|
|
1814
|
+
reason: `${name} has no ${platform} device for this selection${declined ? ` (${declined})` : ""}`
|
|
1815
|
+
};
|
|
1816
|
+
return {
|
|
1817
|
+
kind: "hosted",
|
|
1818
|
+
choice,
|
|
1819
|
+
placement: `on ${name}`
|
|
1820
|
+
};
|
|
1821
|
+
};
|
|
1822
|
+
if (machine !== "auto") return named(machine);
|
|
1823
|
+
try {
|
|
1824
|
+
const recorded = readHostedNative(root, platform, slot)[slot];
|
|
1825
|
+
if (recorded) return await named(recorded.machine);
|
|
1826
|
+
const placed = await automatic({
|
|
1827
|
+
root,
|
|
1828
|
+
slot,
|
|
1829
|
+
platform,
|
|
1830
|
+
selectors,
|
|
1831
|
+
noWait: false
|
|
1832
|
+
}, {
|
|
1833
|
+
read: () => ({}),
|
|
1834
|
+
write: () => {}
|
|
1835
|
+
});
|
|
1836
|
+
if (placed.target) return {
|
|
1837
|
+
kind: "hosted",
|
|
1838
|
+
choice: placed.target.choice,
|
|
1839
|
+
placement: `on ${placed.target.host.machine}, as auto would now`
|
|
1840
|
+
};
|
|
1841
|
+
const names = machines() ?? [];
|
|
1842
|
+
const differs = (await Promise.all(names.map((name) => probe(name, platform, selectors)))).flatMap(({ probe: each }) => "offer" in each && each.offer.choice && sameKey(each.offer.choice) === false ? [each.machine] : []);
|
|
1843
|
+
if (differs.length) return {
|
|
1844
|
+
kind: "local",
|
|
1845
|
+
placement: `this Mac; auto may use ${differs.join(", ")}, which builds for another architecture, so its key differs`
|
|
1846
|
+
};
|
|
1847
|
+
return {
|
|
1848
|
+
kind: "local",
|
|
1849
|
+
placement: names.length ? `this Mac; auto may use ${names.join(", ")}` : "this Mac"
|
|
1850
|
+
};
|
|
1851
|
+
} catch (error) {
|
|
1852
|
+
return {
|
|
1853
|
+
kind: "unknown",
|
|
1854
|
+
reason: error.message
|
|
1855
|
+
};
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1858
|
+
//#endregion
|
|
1859
|
+
export { AvdBootError as _, printPlan as a, automaticDevicePlacement as b, fingerprintErrorMissReason as c, detectEntryFile as d, refreshUpdatesManifestFile as f, ensureOwnedDevice as g, ensureBooted as h, planPayload as i, skippedMissReason as l, didSetUpDevice as m, planCachedBuild as n, refusePlan as o, swapJsBundle as p, planFlagRefusal as r, explainBuildMiss as s, planHostedDevice as t, UPDATES_MANIFEST_NAME as u, AvdRecoveryError as v, devicePlacementLine as x, warmMetro as y };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { p as getProject } from "./config-
|
|
2
|
-
import { o as findCommandWorkspace } from "./project-
|
|
3
|
-
import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-
|
|
1
|
+
import { p as getProject } from "./config-CgYMahz7.mjs";
|
|
2
|
+
import { o as findCommandWorkspace } from "./project-C3ChRLZy.mjs";
|
|
3
|
+
import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-BFIz1Shz.mjs";
|
|
4
4
|
//#region src/commands/ports.ts
|
|
5
5
|
async function inProject(action) {
|
|
6
6
|
try {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
1
|
+
import { t as getExecutor } from "./exec-DWhCZDGm.mjs";
|
|
2
2
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { a as updateWorkspaceState, r as readWorkspaceState } from "./workspace-state-
|
|
5
|
-
import { a as spawnDeclared } from "./spawn-claims-
|
|
6
|
-
import { i as expoBinRefusal, r as expoBinPath } from "./server-expo-
|
|
3
|
+
import { i as detectIsExpo } from "./project-C3ChRLZy.mjs";
|
|
4
|
+
import { a as updateWorkspaceState, r as readWorkspaceState } from "./workspace-state-C59dqG-Z.mjs";
|
|
5
|
+
import { a as spawnDeclared } from "./spawn-claims-Kqiifsk2.mjs";
|
|
6
|
+
import { i as expoBinRefusal, r as expoBinPath } from "./server-expo-DoBHhuzK.mjs";
|
|
7
7
|
import { existsSync } from "node:fs";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
//#region src/engine/prebuild.ts
|