stim 1.23.1 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/{acquire-artifact-BzYRDgaP.mjs → acquire-artifact-zA4S7RHE.mjs} +2 -2
- package/dist/{act-vxiMwdf5.mjs → act-BbHS3oV8.mjs} +41 -26
- package/dist/{activity-BpWUPgUm.mjs → activity-BpjwrQXU.mjs} +6 -6
- package/dist/{agent-device-usage-output-CUlLsbRt.mjs → agent-device-usage-output-Bnkerfod.mjs} +5 -5
- package/dist/{android-DtfRGLcc.mjs → android-BGwuK3Mc.mjs} +75 -50
- package/dist/{android-CLi6DSiS.mjs → android-CNZgRC-4.mjs} +5 -5
- package/dist/{android-C7sVmyI9.mjs → android-Cjcj8MCw.mjs} +140 -46
- package/dist/{android-cas-ngferVq2.mjs → android-cas-BVqh2Zep.mjs} +3 -3
- package/dist/android-cas-compiler.mjs +1 -1
- package/dist/{android-project-DVWyCbWU.d.mts → android-project-CTYaETc0.d.mts} +6 -2
- package/dist/{android-DR5lZ2Az.mjs → android-saBeB4lr.mjs} +13 -3
- package/dist/api.d.mts +22 -5
- package/dist/api.mjs +32 -31
- package/dist/{artifact-Xvgibgzq.mjs → artifact-Co8zixVx.mjs} +19 -17
- package/dist/{artifact-DBI3DALs.mjs → artifact-DN8JNwqS.mjs} +18 -17
- package/dist/{artifact-platform-CXcmX_j3.mjs → artifact-platform-CMRc0M_r.mjs} +3 -3
- package/dist/{browser-web-BJN9ZHxB.mjs → browser-web-CCgZsHmI.mjs} +16 -17
- package/dist/{budget-3ivAK99e.mjs → budget-HyShrIpL.mjs} +149 -47
- package/dist/{build-Dv9s8Fz-.mjs → build-CAiw8Ezm.mjs} +33 -29
- package/dist/{build-cache-Dv7RN200.mjs → build-cache-CKCzxzxA.mjs} +172 -21
- package/dist/{build-plan-BmbdHQbr.mjs → build-plan-zCuHGlA8.mjs} +8 -7
- package/dist/{cache-manifest-DSeQjt-Q.mjs → cache-manifest-BPXRONJz.mjs} +1 -1
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{ccache-CH2EWGPB.mjs → ccache-h1FKhZeg.mjs} +6 -6
- package/dist/{cdp-3fwICjzi.mjs → cdp-BG3FJCCx.mjs} +1 -1
- package/dist/{chrome-Bbw689-6.mjs → chrome-BvV8ssI3.mjs} +1 -1
- package/dist/{cli-BkK6Wr5i.mjs → cli-C4w607Pz.mjs} +20 -20
- package/dist/cli.mjs +1 -1
- package/dist/{client-B4MMzfo_.mjs → client-BQsmyp_-.mjs} +274 -39
- package/dist/collector-run.mjs +6 -6
- package/dist/{command-output-YKGWivpG.mjs → command-output-BBvS1H6v.mjs} +3 -2
- package/dist/{config-DlrsduwG.mjs → config-BZhXY15H.mjs} +3 -3
- package/dist/{created-devices-x9rN6bhs.mjs → created-devices-D2Aca-xu.mjs} +6 -2
- package/dist/{dependency-state-1I9KZT1Y.mjs → dependency-state-BwNCYG5Q.mjs} +2 -2
- package/dist/{detached-entry-BwNEtIrP.mjs → detached-entry-KmieOKgN.mjs} +1 -1
- package/dist/{dev-client-BFxiDpkf.mjs → dev-client-CHoXXZeg.mjs} +3 -3
- package/dist/{device-CiNYxqp6.mjs → device-B9FqTBYW.mjs} +81 -54
- package/dist/{device-B7ljwccX.mjs → device-F5-4z9ef.mjs} +16 -16
- package/dist/{device-capacity-DH0QsZYZ.mjs → device-capacity-ZYaRALv5.mjs} +20 -16
- package/dist/device-host-worker.mjs +17 -17
- package/dist/{device-ios-CbVDtDIy.mjs → device-ios-DkHBrmvH.mjs} +32 -50
- package/dist/{device-lease-run-DXPSwdbb.mjs → device-lease-run-ogEeJ62K.mjs} +6 -6
- package/dist/{device-pool-B4iOXIrD.mjs → device-pool-BIg8MU8l.mjs} +3 -3
- package/dist/{doctor-DRu-8ld6.mjs → doctor-A_Nr_fDe.mjs} +1 -1
- package/dist/{doctor-HUC1igzw.mjs → doctor-Bm8TVpGn.mjs} +37 -31
- package/dist/{doctor-fingerprint-DZLoYFVb.mjs → doctor-fingerprint-zlujA1Gs.mjs} +1 -1
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-C6t4Maue.mjs → doctor-k3P3PizH.mjs} +14 -14
- package/dist/{doctor-watchman-iGBpC6KM.mjs → doctor-watchman-BovI1y3-.mjs} +5 -5
- package/dist/{eas-build-DMWSSvxq.mjs → eas-build-CyDKNTBP.mjs} +4 -4
- package/dist/{eas-fallback-vKlrqxgE.mjs → eas-fallback-gaZi-dJL.mjs} +16 -15
- package/dist/{eas-session-ledger-BQF9Yyy9.mjs → eas-session-ledger-BMCA1gdO.mjs} +12 -8
- package/dist/{error-diagnostics-DYsjJIHz.mjs → error-diagnostics-B1Mj_-7h.mjs} +17 -42
- package/dist/{errors-ccaPc4ox.mjs → errors-DHm_U5gv.mjs} +2 -1
- package/dist/{exec-DEoAhcze.mjs → exec-VFRpu1iA.mjs} +116 -28
- package/dist/{gc-BW8E1uSC.mjs → gc-B9jcnmIk.mjs} +205 -28
- package/dist/{gc-dDE4QPVu.mjs → gc-eaz403W6.mjs} +2 -2
- package/dist/{guide-DYYEO3Wz.mjs → guide-DR0K0xW9.mjs} +328 -89
- package/dist/{hosted-android-xcfgCgSF.mjs → hosted-android-Bvb2-ZxD.mjs} +4 -4
- package/dist/{hosted-client-Bt-tndxV.mjs → hosted-client-rsRqysJc.mjs} +4 -4
- package/dist/{hosted-ios-y19jCYFF.mjs → hosted-ios-RtVcJH3u.mjs} +1 -1
- package/dist/{hosted-logs-DzJKzKlj.mjs → hosted-logs-CWKGYWNX.mjs} +11 -6
- package/dist/{hosted-macos-BJusKvqL.mjs → hosted-macos-d0pv9Tth.mjs} +7 -7
- package/dist/{hosted-native-BmQC6U_x.mjs → hosted-native-BxTizGU2.mjs} +58 -11
- package/dist/{idle-shutdown-CJmUOV5x.mjs → idle-shutdown-BIyfl0Zj.mjs} +10 -10
- package/dist/{ios-hcBpnEGk.mjs → ios-BQzvJlzw.mjs} +122 -17
- package/dist/{ios-CWjqfSm_.mjs → ios-BRVM8b0P.mjs} +81 -49
- package/dist/{ios-DTOYZGMJ.mjs → ios-Dvt97HgQ.mjs} +8 -8
- package/dist/{ios-xtlRHaeB.mjs → ios-ENC4sRPA.mjs} +1 -1
- package/dist/{ios-device-BXZ0c7Kb.mjs → ios-device-B6HK951C.mjs} +1 -1
- package/dist/{ios-device-DFGuwF4U.mjs → ios-device-CKSvk0bu.mjs} +3 -3
- package/dist/{ios-project-CSZYI1iu.mjs → ios-project-DCUDo06I.mjs} +5 -5
- package/dist/{ios-signing-BtAffm0A.mjs → ios-signing-4c_qXvQm.mjs} +2 -2
- package/dist/{ios-state-Dtw5K2aI.mjs → ios-state-CT9nV5SP.mjs} +15 -7
- package/dist/{js-swap-BSBHldmm.mjs → js-swap-Z9HbC4cj.mjs} +7 -6
- package/dist/{launch-D-zq8SHG.mjs → launch-D0lPvFFu.mjs} +49 -30
- package/dist/{launch-CP2wDCVd.mjs → launch-DscF1QfM.mjs} +52 -50
- package/dist/{logs-pNvA2hHK.mjs → logs-BsIRre8x.mjs} +16 -9
- package/dist/{logs-By5aw3g9.mjs → logs-Crs9y34Z.mjs} +8 -6
- package/dist/{macos-CPMahOC2.mjs → macos-CcUlJPMu.mjs} +1 -1
- package/dist/{macos-C67FZ2ft.mjs → macos-D477nfzH.mjs} +49 -42
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +7 -7
- package/dist/{metro-DiXtA3Ty.mjs → metro-1pJgCX4U.mjs} +4 -4
- package/dist/{metro-gateway-CKZqKqx7.mjs → metro-gateway-Bp9gJQAN.mjs} +3 -4
- package/dist/{named-ports-DkEzOfzO.mjs → named-ports-BVbn8SvC.mjs} +3 -3
- package/dist/{native-android-_MWSs3PP.mjs → native-android-BvMizJn1.mjs} +17 -17
- package/dist/{native-gradle-artifact-inputs-DHFnmrVf.mjs → native-gradle-artifact-inputs-BJscK4vN.mjs} +5 -5
- package/dist/{native-run-Dv88i0aU.mjs → native-run-D5OJsGwA.mjs} +6 -6
- package/dist/{native-runtime-DBRfY_PN.mjs → native-runtime-B9w_Qyz3.mjs} +10 -9
- package/dist/{native-source-Y0yLhFyQ.mjs → native-source-D-4Dh4JU.mjs} +7 -4
- package/dist/{native-xcode-inputs-CqViUh3r.mjs → native-xcode-inputs-Cv4l-obn.mjs} +2 -2
- package/dist/{native-xcode-ios-vFgqL_yS.mjs → native-xcode-ios-DGrg90hE.mjs} +21 -20
- package/dist/offload-worker.d.mts +12 -4
- package/dist/offload-worker.mjs +78 -43
- package/dist/{operation-exec-BW0em61G.mjs → operation-exec-CUZifp6Z.mjs} +2 -25
- package/dist/{ownership-C5fo5Edb.mjs → ownership-jxxz-19m.mjs} +3 -3
- package/dist/{page-DBL2PiUU.mjs → page-CzEA_-5_.mjs} +2 -3
- package/dist/phone-reverses-CYb7RRAx.mjs +57 -0
- package/dist/{placement-log-BnGgJRRZ.mjs → placement-log-DjOXJRIH.mjs} +1 -1
- package/dist/{plan-placement-cr0fEU7b.mjs → plan-placement-BqKgKHCi.mjs} +3 -3
- package/dist/{ports-DpXjKkSV.mjs → ports-DtS1Amb0.mjs} +3 -3
- package/dist/{prebuild-BligW0QS.mjs → prebuild-JUaqOLpc.mjs} +14 -9
- package/dist/{project-DhCtQWWU.mjs → project-BiC68mIp.mjs} +21 -17
- package/dist/{pull-request-W1IuLXDt.mjs → pull-request-CbNlkFok.mjs} +2 -2
- package/dist/pull-requests.mjs +1 -1
- package/dist/{react-native-android-ZlhQfhvq.mjs → react-native-android-DRYqoJc4.mjs} +76 -32
- package/dist/{react-native-build-CelbTO_y.mjs → react-native-build-CwZB-agu.mjs} +23 -20
- package/dist/{react-native-doctor-LTIaP7lv.mjs → react-native-doctor-BCrytK7h.mjs} +10 -9
- package/dist/{react-native-ios-C5W0SA6f.mjs → react-native-ios-Cr1buNFo.mjs} +41 -24
- package/dist/{recordings-CQmfzAh7.mjs → recordings-BaoQ0t-J.mjs} +1 -1
- package/dist/{registration-BcRgF6Ox.mjs → registration-CN6nlhcD.mjs} +1 -1
- package/dist/{reload-QcwnYLYV.mjs → reload-Beftw2X3.mjs} +1 -1
- package/dist/{reload-COJWTbae.mjs → reload-FbSgMF8x.mjs} +144 -42
- package/dist/{remote-DR8qUERM.mjs → remote-BuZj6AyU.mjs} +16 -7
- package/dist/{result-utnBea7x.mjs → result-CR2vk2cj.mjs} +41 -18
- package/dist/{run-DidHghD1.mjs → run-BtzE09Dl.mjs} +2 -2
- package/dist/{selection-DSMbWEX2.mjs → selection-D5cxEl3t.mjs} +13 -7
- package/dist/{server-bare-CafzuyFB.mjs → server-bare-CH9X0RLn.mjs} +56 -4
- package/dist/{server-command-B9o92sLM.mjs → server-command-CaBbDNU2.mjs} +5 -5
- package/dist/server-expo-C16Zf2k7.mjs +2 -0
- package/dist/{server-expo-BXrWxNYh.mjs → server-expo-Ck8EIidM.mjs} +14 -9
- package/dist/{settings-C7O8A6ZI.mjs → settings-B5tCoq9N.mjs} +132 -39
- package/dist/{settings-PfJx8uK1.mjs → settings-DzH9mGQZ.mjs} +1 -1
- package/dist/{settings-write-Chuy7Cte.mjs → settings-write-n0zwfohx.mjs} +7 -7
- package/dist/settings.schema.json +51 -0
- package/dist/{simslim-BNckWpXi.mjs → simslim-BjxszUAb.mjs} +22 -7
- package/dist/{slot-launch-B7AuoWJv.mjs → slot-launch-QeuJMlnJ.mjs} +6 -6
- package/dist/{stage-C4u17aES.mjs → stage-D8xlRU2D.mjs} +2 -3
- package/dist/{start-BL_BsiWt.mjs → start-C1JLjkNw.mjs} +1 -1
- package/dist/{start-CU8mCPC7.mjs → start-YMpNwLhh.mjs} +75 -35
- package/dist/{state--smjFSTL.mjs → state-DMRNP7-4.mjs} +4 -4
- package/dist/{state-08I3hw3_.mjs → state-DPaM3u5K.mjs} +2 -2
- package/dist/{stats-CO6sK0Nh.mjs → stats-CP7STzZw.mjs} +5 -5
- package/dist/{stats-report-BzaPrRm6.mjs → stats-report-n2U5plhk.mjs} +1 -1
- package/dist/{status-_WPHzVft.mjs → status-CRLiJ-O_.mjs} +24 -24
- package/dist/{status-BRROykC8.mjs → status-Fect2w9R.mjs} +1 -1
- package/dist/{status-CrJutl6-.mjs → status-cNw6i0_t.mjs} +1 -1
- package/dist/{status-watch-BHFasOZN.mjs → status-watch-Bc2J4TZn.mjs} +5 -5
- package/dist/status-worker.mjs +1 -1
- package/dist/stim-clonefile.c +18 -0
- package/dist/{stim-desktop-D5OGpYZM.mjs → stim-desktop-DS0mzR8U.mjs} +2 -2
- package/dist/{stop-iuFHjUST.mjs → stop-Br7LKxBE.mjs} +2 -2
- package/dist/{stop-CR5689oB.mjs → stop-COP6PQqw.mjs} +5 -5
- package/dist/{stop-BJ06ipTZ.mjs → stop-Db9Kh-UA.mjs} +109 -56
- package/dist/supervisor-run.mjs +17 -17
- package/dist/{support-CbXPbUMJ.mjs → support-Cxj9CmII.mjs} +6 -6
- package/dist/{support-TWuQlHQo.mjs → support-qKcbgmI5.mjs} +14 -11
- package/dist/{swiftpm-artifact-inputs-DFcGsXDP.mjs → swiftpm-artifact-inputs-iY9fsmOc.mjs} +4 -4
- package/dist/{swiftpm-macos-DbwGCpZg.mjs → swiftpm-macos-Bp_sn9P4.mjs} +15 -14
- package/dist/{toolchain-XkA2PfJZ.mjs → toolchain-DB1aeqxO.mjs} +1 -1
- package/dist/{toolchain-B9hCFCQw.mjs → toolchain-VzLJzZ7O.mjs} +69 -37
- package/dist/trigger-BLsHgAGR.mjs +2 -0
- package/dist/{trigger-Cbyc41d_.mjs → trigger-CBMe2YLH.mjs} +2 -2
- package/dist/{warm-progress-CA3TgT3-.mjs → warm-progress-BV3ZPmcY.mjs} +6 -6
- package/dist/{web-DRF_oFXk.mjs → web-B4Yjyt1G.mjs} +12 -10
- package/dist/web-DS4UDWvf.mjs +2 -0
- package/dist/web-run.mjs +8 -9
- package/dist/windows-report.mjs +12 -1
- package/dist/windows-report.ps1 +1 -1
- package/dist/{workspace-state-U08dEzhG.mjs → workspace-state-CPSp3mav.mjs} +11 -4
- package/dist/{workspaces-e41xsjKr.mjs → workspaces-C9w4aeXF.mjs} +36 -32
- package/dist/{worktree-B4Nj3EGS.mjs → worktree-CclFIe1Z.mjs} +324 -99
- package/dist/{worktree-BEwxVwKF.mjs → worktree-Ct9Gk3KL.mjs} +1 -1
- package/dist/{xcode-Rq744mBF.mjs → xcode-CiIIDnuD.mjs} +42 -28
- package/package.json +7 -7
- package/shim/bundle-response.cjs +53 -1
- package/shim/bundle-response.d.cts +1 -1
- package/shim/expo-metro-config.cjs +23 -1
- package/dist/native-gradle-inputs-Dnh84Zbd.mjs +0 -211
- package/dist/server-expo-Ddr8cG_c.mjs +0 -2
- package/dist/trigger-yb_nFzPF.mjs +0 -2
- package/dist/web-kDE9Myoy.mjs +0 -2
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { D as ownership_claim_exports, c as throwIfCancelled, x as withDrainingCancellation } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { d as workspaceDir } from "./paths-DQtTgsBf.mjs";
|
|
3
|
-
import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { o as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { t as
|
|
14
|
-
import {
|
|
15
|
-
import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-CSZYI1iu.mjs";
|
|
3
|
+
import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BBvS1H6v.mjs";
|
|
4
|
+
import { Bn as RESOLVE_TIMEOUT_MS, Gn as isEasAuthFailureText, Wn as easAuthNote } from "./budget-HyShrIpL.mjs";
|
|
5
|
+
import { d as runCancellationSignal, r as cancelledFailure } from "./native-run-D5OJsGwA.mjs";
|
|
6
|
+
import { _ as providerUploadOutcome, g as providerDownloadPath, h as prepareProviderDownloadDir, x as storedAppId } from "./build-cache-CKCzxzxA.mjs";
|
|
7
|
+
import { o as compilationCacheActivityLine, t as COMPILATION_CACHE_NOT_RUN } from "./xcode-CiIIDnuD.mjs";
|
|
8
|
+
import { C as COMPILATION_CACHE_CORRUPT, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText, w as clearCorruptCompilationCache } from "./client-BQsmyp_-.mjs";
|
|
9
|
+
import { i as namedBuildMachine, o as requireLocalBuild, r as fingerprintMismatchRemedy, t as OffloadRefusal } from "./selection-D5cxEl3t.mjs";
|
|
10
|
+
import { S as xcodeFailureReport, p as printDiagnostics } from "./support-qKcbgmI5.mjs";
|
|
11
|
+
import { u as skippedMissReason } from "./prebuild-JUaqOLpc.mjs";
|
|
12
|
+
import { t as buildPlacementRecord } from "./placement-log-DjOXJRIH.mjs";
|
|
13
|
+
import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-zA4S7RHE.mjs";
|
|
14
|
+
import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-DCUDo06I.mjs";
|
|
16
15
|
import { rmSync } from "node:fs";
|
|
17
16
|
import { join } from "node:path";
|
|
18
17
|
import { machineCapacity } from "@stim-cli/core/state";
|
|
@@ -64,7 +63,7 @@ async function acquireIosArtifact({ context, root, logFile, recipe, physical, co
|
|
|
64
63
|
machine: info.machine
|
|
65
64
|
}
|
|
66
65
|
}));
|
|
67
|
-
if (namedBuildMachine(buildMachine)) throw new OffloadRefusal(buildMachine, reason);
|
|
66
|
+
if (namedBuildMachine(buildMachine)) throw new OffloadRefusal(buildMachine, reason, info.remedy);
|
|
68
67
|
requireLocalBuild(buildMachine);
|
|
69
68
|
offloadFallback = reason;
|
|
70
69
|
buildFailure = {
|
|
@@ -424,6 +423,7 @@ async function acquireIosArtifact({ context, root, logFile, recipe, physical, co
|
|
|
424
423
|
choice,
|
|
425
424
|
expectedFingerprint: storeHash,
|
|
426
425
|
request: recipe.offload.request(runtime),
|
|
426
|
+
fingerprintInputs: recipe.offload.fingerprintInputs,
|
|
427
427
|
stagingDir,
|
|
428
428
|
onPhase: (name, msg) => phase(name, remotePhaseText(name, msg, choice.machine)),
|
|
429
429
|
onEnter: (name) => {
|
|
@@ -483,7 +483,8 @@ async function acquireIosArtifact({ context, root, logFile, recipe, physical, co
|
|
|
483
483
|
});
|
|
484
484
|
fallBack(`${choice.machine}: ${why}`, `offload failed: ${why}`, {
|
|
485
485
|
code: corrupt === void 0 ? "offload-failed" : COMPILATION_CACHE_CORRUPT,
|
|
486
|
-
machine: choice.machine
|
|
486
|
+
machine: choice.machine,
|
|
487
|
+
remedy: outcome.ok ? void 0 : fingerprintMismatchRemedy(outcome.reason)
|
|
487
488
|
});
|
|
488
489
|
logWriter().write({
|
|
489
490
|
src: "build",
|
|
@@ -788,7 +789,7 @@ async function acquireIosArtifact({ context, root, logFile, recipe, physical, co
|
|
|
788
789
|
artifact: {
|
|
789
790
|
handoff,
|
|
790
791
|
path: appPath,
|
|
791
|
-
bundleId,
|
|
792
|
+
bundleId: bundleId ?? (cacheHit && storeKey ? storedAppId("ios", storeKey) : null),
|
|
792
793
|
cache: {
|
|
793
794
|
identity: storeHash && storeKey ? {
|
|
794
795
|
fingerprint: storeHash,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
1
|
+
import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
//#region src/macos/artifact-platform.ts
|
|
4
|
-
async function validateMacosArtifactPlatform(context, bundle, product, signal) {
|
|
4
|
+
async function validateMacosArtifactPlatform(context, bundle, product, signal, nodeArch = process.arch) {
|
|
5
5
|
const binary = join(bundle, "Contents", "MacOS", product);
|
|
6
6
|
const options = {
|
|
7
7
|
timeoutMs: 3e4,
|
|
8
8
|
signal,
|
|
9
9
|
declareFor: context
|
|
10
10
|
};
|
|
11
|
-
const architecture =
|
|
11
|
+
const architecture = nodeArch === "x64" ? "x86_64" : nodeArch;
|
|
12
12
|
const archs = await getExecutor().runFileAsync("xcrun", [
|
|
13
13
|
"lipo",
|
|
14
14
|
"-archs",
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { D as ownership_claim_exports, S as process_identity_exports, c as throwIfCancelled, l as WorkspaceProcessCleanupError, s as cancelledError, t as getExecutor, u as withWorkspaceProcessLock } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { d as workspaceDir, m as workspaceLogsDir$1 } from "./paths-DQtTgsBf.mjs";
|
|
3
|
-
import { p as getProject } from "./config-
|
|
4
|
-
import { l as phaseLine } from "./command-output-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
3
|
+
import { p as getProject } from "./config-BZhXY15H.mjs";
|
|
4
|
+
import { l as phaseLine } from "./command-output-BBvS1H6v.mjs";
|
|
5
|
+
import { l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-CPSp3mav.mjs";
|
|
6
|
+
import { M as metroPortSetting, a as SETTING_SHAPE_REMEDY, ot as webSettings } from "./settings-B5tCoq9N.mjs";
|
|
7
|
+
import { b as isPackageResolvable, v as detectIsExpo } from "./project-BiC68mIp.mjs";
|
|
8
|
+
import { d as resolveProjectMetro } from "./metro-1pJgCX4U.mjs";
|
|
9
9
|
import { s as readNdjsonGenerations$1 } from "./ndjson-CgE_o3Dl.mjs";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { o as resolveWorkspaceMetroPort } from "./start-CU8mCPC7.mjs";
|
|
10
|
+
import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-DMRNP7-4.mjs";
|
|
11
|
+
import { rn as readMetroRecords } from "./budget-HyShrIpL.mjs";
|
|
12
|
+
import { D as teardownBrowserHeld, g as resolveSupervisorTarget } from "./workspaces-C9w4aeXF.mjs";
|
|
13
|
+
import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-BVbn8SvC.mjs";
|
|
14
|
+
import { n as sendToOwnedPage, t as liveWebRecord } from "./page-CzEA_-5_.mjs";
|
|
15
|
+
import { o as resolveWorkspaceMetroPort } from "./start-YMpNwLhh.mjs";
|
|
17
16
|
import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
|
|
18
|
-
import { n as windowsLauncherArgs } from "./detached-entry-
|
|
19
|
-
import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-
|
|
17
|
+
import { n as windowsLauncherArgs } from "./detached-entry-KmieOKgN.mjs";
|
|
18
|
+
import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-BvV8ssI3.mjs";
|
|
20
19
|
import { randomUUID } from "node:crypto";
|
|
21
20
|
import { mkdirSync, openSync, statSync, watch } from "node:fs";
|
|
22
21
|
import { ambientEnv } from "@stim-cli/core";
|
|
@@ -260,7 +259,7 @@ async function launchOwnedBrowser({ url, config }, { root, note, signal }) {
|
|
|
260
259
|
const since = Date.now();
|
|
261
260
|
try {
|
|
262
261
|
await sendToOwnedPage(live, "Page.navigate", { url }, signal);
|
|
263
|
-
updateWebRecord(root, live, { url });
|
|
262
|
+
await withWorkspaceStateLockAsync(root, () => updateWebRecord(root, live, { url }));
|
|
264
263
|
note(chalk.dim(phaseLine("device", `reusing the owned Chrome (pid ${live.chromeProcess?.pid})`)));
|
|
265
264
|
return {
|
|
266
265
|
ok: true,
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { D as ownership_claim_exports, E as debugLog, S as process_identity_exports, b as operationState, c as throwIfCancelled, d as workspaceProcessLockError, l as WorkspaceProcessCleanupError, n as isTimeoutError, o as cancellableSleep, s as cancelledError, t as getExecutor, u as withWorkspaceProcessLock, y as isTermination } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { d as workspaceDir, f as workspaceId$1, g as workspaceStateFile$1, i as sharedBuildCache, m as workspaceLogsDir$1 } from "./paths-DQtTgsBf.mjs";
|
|
3
|
-
import { D as withConfigLock$1, F as isOnMountedVolume, G as projectDeviceSlots, H as deviceSlotPlatforms, L as measuredDirectorySizeAsync, M as directorySize, N as directorySizeAsync, O as withConfigLockAsync$1, P as formatBytes, R as volumeRootFor, _ as loadConfig$1, a as clearDevice, d as getConfigDir, o as clearSupervisor, p as getProject } from "./config-
|
|
3
|
+
import { D as withConfigLock$1, F as isOnMountedVolume, G as projectDeviceSlots, H as deviceSlotPlatforms, L as measuredDirectorySizeAsync, M as directorySize, N as directorySizeAsync, O as withConfigLockAsync$1, P as formatBytes, R as volumeRootFor, _ as loadConfig$1, a as clearDevice, d as getConfigDir, o as clearSupervisor, p as getProject } from "./config-BZhXY15H.mjs";
|
|
4
4
|
import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
|
|
5
|
-
import { a as formatElapsed, l as phaseLine, o as formatLongDuration, s as isAppLaunchError, u as plural } from "./command-output-
|
|
6
|
-
import { a as killOnAbort,
|
|
7
|
-
import { d as writeWorkspaceState, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-
|
|
8
|
-
import {
|
|
9
|
-
import { C as resolvePackageJson, M as readMetroTunnel, N as readPidFile, P as readRemoteSession, i as findProjectRoot$1, j as clearWorkspaceSupervisor, k as clearRemoteSession, s as ownedDeviceLabel, v as detectIsExpo } from "./project-
|
|
5
|
+
import { a as formatElapsed, l as phaseLine, o as formatLongDuration, s as isAppLaunchError, u as plural } from "./command-output-BBvS1H6v.mjs";
|
|
6
|
+
import { a as killOnAbort, n as runOperationFileQuiet, r as childEnvironment, t as runOperationFile } from "./operation-exec-CUZifp6Z.mjs";
|
|
7
|
+
import { d as writeWorkspaceState, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-CPSp3mav.mjs";
|
|
8
|
+
import { Y as resolveProjectSettingsAsync, d as androidLayoutSetting, ut as planMetroReach } from "./settings-B5tCoq9N.mjs";
|
|
9
|
+
import { C as resolvePackageJson, M as readMetroTunnel, N as readPidFile, P as readRemoteSession, i as findProjectRoot$1, j as clearWorkspaceSupervisor, k as clearRemoteSession, s as ownedDeviceLabel, v as detectIsExpo } from "./project-BiC68mIp.mjs";
|
|
10
|
+
import { F as listAvdsAsync, G as ownedAvdSerialResolverAsync, I as listInstalledSystemImages, J as parseAvdSystemImage, V as ownedAvdDirectory, W as ownedAvdSerialResolver, d as androidToolPath, dt as isStimOwnedSim, m as avdIniPaths, mt as dropParked, o as androidHome, q as parseAvdDeviceProfile, ut as isStimOwnedAvd, v as avdStorageRoots, yt as readParked } from "./android-Cjcj8MCw.mjs";
|
|
11
|
+
import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, r as killMetroTreeAsync, u as processCwds } from "./metro-1pJgCX4U.mjs";
|
|
10
12
|
import { r as createNdjsonWriter, s as readNdjsonGenerations$1 } from "./ndjson-CgE_o3Dl.mjs";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { i as registeredCaches } from "./cache-manifest-DSeQjt-Q.mjs";
|
|
13
|
+
import { C as environmentState, a as removeEasSessionClaim, d as parseWatchRoots, f as parseWatchmanClients, i as recordEasSessionClaim, l as parseSubscriberNames, n as easMachineStateRoot$1, o as removeEasSessionClaimAsync, p as parseWatchmanPid, r as readEasSessionLedger$1, s as compareStimVersions, t as assertEasMachineRootWritable, u as parseTriggerCount, w as formatSpace, y as capacity } from "./eas-session-ledger-BMCA1gdO.mjs";
|
|
14
|
+
import { i as registeredCaches } from "./cache-manifest-BPXRONJz.mjs";
|
|
14
15
|
import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
|
|
15
|
-
import { c as nativeRunWaitNotice, d as runCancellationSignal, m as claimForEmptying } from "./native-run-
|
|
16
|
-
import { A as
|
|
17
|
-
import { N as listBuildLocks, b as leaseIsExpired, g as workspaceActivity, i as createActivityReaderAsync, o as envDir, p as readHostProcessTableAsync, r as createActivityReader, s as idleForMs, x as listLeaseFiles } from "./activity-
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { n as supervisorError } from "./errors-
|
|
21
|
-
import { n as expoBinFromPackage, r as expoBinPath, s as
|
|
22
|
-
import { t as DEV_MENU_LAUNCH_ARGS } from "./ios-device-
|
|
16
|
+
import { c as nativeRunWaitNotice, d as runCancellationSignal, m as claimForEmptying } from "./native-run-D5OJsGwA.mjs";
|
|
17
|
+
import { A as teardownOwnedIosSim, B as GC_OUTPUT, E as eraseParkedIosSim, F as measureDu, I as writeUsageCache, M as teardownParkedIosSim, N as probePublicHttp, O as teardownOwnedAvd, P as canonical, R as listBuildSlots, T as eraseParkedAvd, a as collectWorkspaceOutputs, g as resolveSupervisorTarget, j as teardownParkedAvd, p as withIdleWorkspace, r as clearWorkspaceOutputs } from "./workspaces-C9w4aeXF.mjs";
|
|
18
|
+
import { N as listBuildLocks, b as leaseIsExpired, g as workspaceActivity, i as createActivityReaderAsync, o as envDir, p as readHostProcessTableAsync, r as createActivityReader, s as idleForMs, x as listLeaseFiles } from "./activity-BpjwrQXU.mjs";
|
|
19
|
+
import { c as expoConfigContents } from "./build-cache-CKCzxzxA.mjs";
|
|
20
|
+
import { D as sanitizeDeviceLabel, H as deviceHoldsApk, U as deviceHoldsBundle, b as parseSimctlList, f as listAllIosSimsAsync, g as listUserApps, k as uninstallIosApp, p as listIosDeviceTypesAsync, u as iosSimulatorFailureAdvice, y as parseRuntimeVersion } from "./ios-BQzvJlzw.mjs";
|
|
21
|
+
import { n as supervisorError } from "./errors-DHm_U5gv.mjs";
|
|
22
|
+
import { c as findBinUpward, n as expoBinFromPackage, r as expoBinPath, s as expoTelemetryEnv } from "./server-expo-Ck8EIidM.mjs";
|
|
23
|
+
import { t as DEV_MENU_LAUNCH_ARGS } from "./ios-device-B6HK951C.mjs";
|
|
23
24
|
import { createRequire } from "node:module";
|
|
24
25
|
import { randomUUID } from "node:crypto";
|
|
25
26
|
import { closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, realpathSync, renameSync, rmSync, statSync, statfsSync, writeFileSync } from "node:fs";
|
|
@@ -2224,7 +2225,10 @@ async function readProjectConfig(root, { context, run = null, timeoutMs = CONFIG
|
|
|
2224
2225
|
"config",
|
|
2225
2226
|
"--json",
|
|
2226
2227
|
root
|
|
2227
|
-
], {
|
|
2228
|
+
], {
|
|
2229
|
+
timeoutMs,
|
|
2230
|
+
env: expoTelemetryEnv(context?.env ?? process.env)
|
|
2231
|
+
});
|
|
2228
2232
|
} catch (err) {
|
|
2229
2233
|
if (err instanceof Error && "code" in err && err.code === "STIM_CLAIM_UNAVAILABLE") throw err;
|
|
2230
2234
|
context?.signal.throwIfAborted();
|
|
@@ -2239,9 +2243,24 @@ async function readProjectConfig(root, { context, run = null, timeoutMs = CONFIG
|
|
|
2239
2243
|
return { unavailable: `\`expo config --json\` did not print JSON: ${firstLine(err)}` };
|
|
2240
2244
|
}
|
|
2241
2245
|
}
|
|
2242
|
-
|
|
2246
|
+
/**
|
|
2247
|
+
* The app config the fingerprint already evaluated, for a dynamic config. @expo/fingerprint's ExpoConfigEASProject
|
|
2248
|
+
* skip removes `owner`, so a missing owner under the EAS provider cannot be told from a stripped one and is read from
|
|
2249
|
+
* `expo config --json` instead.
|
|
2250
|
+
*/
|
|
2251
|
+
function fingerprintedConfig(projectRoot, sources) {
|
|
2252
|
+
if (!sources || !dynamicConfigFile(projectRoot)) return null;
|
|
2253
|
+
const config = expoConfigContents(sources);
|
|
2254
|
+
if (!config) return null;
|
|
2255
|
+
if (normalizeProvider(providerFromConfig(config))?.reference === "eas-build-cache-provider" && ownerFromConfig(config) === null) return null;
|
|
2256
|
+
return {
|
|
2257
|
+
config,
|
|
2258
|
+
source: "fingerprint"
|
|
2259
|
+
};
|
|
2260
|
+
}
|
|
2261
|
+
async function loadProjectProvider(projectRoot, { context, isExpo = true, run = null, requireFrom = null, timeoutMs = CONFIG_TIMEOUT_MS, sources } = {}) {
|
|
2243
2262
|
if (!isExpo) return { none: true };
|
|
2244
|
-
const read = await readProjectConfig(projectRoot, {
|
|
2263
|
+
const read = fingerprintedConfig(projectRoot, sources) ?? await readProjectConfig(projectRoot, {
|
|
2245
2264
|
context,
|
|
2246
2265
|
run,
|
|
2247
2266
|
timeoutMs
|
|
@@ -2779,9 +2798,9 @@ async function writeIosDevMenuOffDefaults(udid, bundleId, exec) {
|
|
|
2779
2798
|
"false"
|
|
2780
2799
|
], { timeoutMs: 6e4 });
|
|
2781
2800
|
}
|
|
2782
|
-
function describeIosSimulatorFailure(error, exec) {
|
|
2801
|
+
async function describeIosSimulatorFailure(error, exec) {
|
|
2783
2802
|
const detail = describe$1(error);
|
|
2784
|
-
return error?.code === "ETIMEDOUT" ? `${detail}. ${iosSimulatorFailureAdvice(exec)}` : detail;
|
|
2803
|
+
return error?.code === "ETIMEDOUT" ? `${detail}. ${await iosSimulatorFailureAdvice(exec)}` : detail;
|
|
2785
2804
|
}
|
|
2786
2805
|
async function installIosApp({ udid, appPath, bundleId = null, devClientScheme = null, schemeApprovals = [], proveInstalled = true }, { exec = null, now = null } = {}) {
|
|
2787
2806
|
const e = exec || getExecutor();
|
|
@@ -2805,7 +2824,7 @@ async function installIosApp({ udid, appPath, bundleId = null, devClientScheme =
|
|
|
2805
2824
|
return {
|
|
2806
2825
|
failed: true,
|
|
2807
2826
|
code: INSTALL_ERROR,
|
|
2808
|
-
reason: `simctl install failed for ${appPath}: ${describeIosSimulatorFailure(err, e)}`
|
|
2827
|
+
reason: `simctl install failed for ${appPath}: ${await describeIosSimulatorFailure(err, e)}`
|
|
2809
2828
|
};
|
|
2810
2829
|
}
|
|
2811
2830
|
const artifactFinishedAt = now?.();
|
|
@@ -2831,7 +2850,7 @@ async function installIosApp({ udid, appPath, bundleId = null, devClientScheme =
|
|
|
2831
2850
|
return {
|
|
2832
2851
|
failed: true,
|
|
2833
2852
|
code: INSTALL_ERROR,
|
|
2834
|
-
reason: `Installed ${bundleId}, but could not prepare the dev client: ${describeIosSimulatorFailure(err, e)}`
|
|
2853
|
+
reason: `Installed ${bundleId}, but could not prepare the dev client: ${await describeIosSimulatorFailure(err, e)}`
|
|
2835
2854
|
};
|
|
2836
2855
|
}
|
|
2837
2856
|
const devClientPreparationDurationMs = now && preparationStartedAt !== void 0 ? now() - preparationStartedAt : void 0;
|
|
@@ -2911,7 +2930,7 @@ function appProcessFromPid(pid) {
|
|
|
2911
2930
|
pid
|
|
2912
2931
|
};
|
|
2913
2932
|
}
|
|
2914
|
-
async function iosAppProcess(udid, bundleId, { exec = null } = {}) {
|
|
2933
|
+
async function iosAppProcess(udid, bundleId, { exec = null, timeoutMs = 2e3 } = {}) {
|
|
2915
2934
|
const e = exec || getExecutor();
|
|
2916
2935
|
const started = performance.now();
|
|
2917
2936
|
let probe = { state: "unknown" };
|
|
@@ -2923,7 +2942,7 @@ async function iosAppProcess(udid, bundleId, { exec = null } = {}) {
|
|
|
2923
2942
|
udid,
|
|
2924
2943
|
"launchctl",
|
|
2925
2944
|
"list"
|
|
2926
|
-
], { timeoutMs
|
|
2945
|
+
], { timeoutMs });
|
|
2927
2946
|
const label = `UIKitApplication:${bundleId}[`;
|
|
2928
2947
|
probe = { state: "stopped" };
|
|
2929
2948
|
for (const line of out.split("\n")) {
|
|
@@ -2966,16 +2985,18 @@ async function launchIosApp({ udid, bundleId, metroPort, devClientScheme = null,
|
|
|
2966
2985
|
const e = exec || getExecutor();
|
|
2967
2986
|
const running = await iosAppProcess(udid, bundleId, { exec: e });
|
|
2968
2987
|
const stateUnknown = running.state === "unknown";
|
|
2988
|
+
const launchRestarts = metroPort === null || !devClientScheme || Boolean(consolePaths);
|
|
2969
2989
|
const launchArgs = [
|
|
2970
2990
|
"simctl",
|
|
2971
2991
|
"launch",
|
|
2972
2992
|
...consolePaths ? [`--stdout=${consolePaths.stdout}`, `--stderr=${consolePaths.stderr}`] : [],
|
|
2973
|
-
...stateUnknown ? ["--terminate-running-process"] : [],
|
|
2993
|
+
...stateUnknown || running.state === "running" && launchRestarts ? ["--terminate-running-process"] : [],
|
|
2974
2994
|
udid,
|
|
2975
2995
|
bundleId
|
|
2976
2996
|
];
|
|
2977
2997
|
const restart = {};
|
|
2978
|
-
if (running.state === "running")
|
|
2998
|
+
if (running.state === "running" && launchRestarts) restart.restartedPid = running.pid;
|
|
2999
|
+
else if (running.state === "running") {
|
|
2979
3000
|
try {
|
|
2980
3001
|
await e.runFileAsync("xcrun", [
|
|
2981
3002
|
"simctl",
|
|
@@ -2987,7 +3008,7 @@ async function launchIosApp({ udid, bundleId, metroPort, devClientScheme = null,
|
|
|
2987
3008
|
return {
|
|
2988
3009
|
failed: true,
|
|
2989
3010
|
code: LAUNCH_ERROR,
|
|
2990
|
-
reason: `simctl terminate ${bundleId} failed, so the running app (pid ${running.pid}) was not restarted: ${describeIosSimulatorFailure(err, e)}`
|
|
3011
|
+
reason: `simctl terminate ${bundleId} failed, so the running app (pid ${running.pid}) was not restarted: ${await describeIosSimulatorFailure(err, e)}`
|
|
2991
3012
|
};
|
|
2992
3013
|
}
|
|
2993
3014
|
restart.restartedPid = running.pid;
|
|
@@ -3008,7 +3029,7 @@ async function launchIosApp({ udid, bundleId, metroPort, devClientScheme = null,
|
|
|
3008
3029
|
return {
|
|
3009
3030
|
failed: true,
|
|
3010
3031
|
code: LAUNCH_ERROR,
|
|
3011
|
-
reason: `Could not point ${bundleId} at Metro port ${metroPort} (defaults write RCT_jsLocation): ${describeIosSimulatorFailure(err, e)}`
|
|
3032
|
+
reason: `Could not point ${bundleId} at Metro port ${metroPort} (defaults write RCT_jsLocation): ${await describeIosSimulatorFailure(err, e)}`
|
|
3012
3033
|
};
|
|
3013
3034
|
}
|
|
3014
3035
|
if (devClientScheme) {
|
|
@@ -3020,7 +3041,7 @@ async function launchIosApp({ udid, bundleId, metroPort, devClientScheme = null,
|
|
|
3020
3041
|
return {
|
|
3021
3042
|
failed: true,
|
|
3022
3043
|
code: LAUNCH_ERROR,
|
|
3023
|
-
reason: `Could not turn off ${bundleId}'s dev menu before opening it (defaults write): ${describeIosSimulatorFailure(err, e)}`
|
|
3044
|
+
reason: `Could not turn off ${bundleId}'s dev menu before opening it (defaults write): ${await describeIosSimulatorFailure(err, e)}`
|
|
3024
3045
|
};
|
|
3025
3046
|
}
|
|
3026
3047
|
let launchedWithInitialUrl = false;
|
|
@@ -3069,7 +3090,7 @@ async function launchIosApp({ udid, bundleId, metroPort, devClientScheme = null,
|
|
|
3069
3090
|
return {
|
|
3070
3091
|
failed: true,
|
|
3071
3092
|
code: LAUNCH_ERROR,
|
|
3072
|
-
reason: `simctl ${launchedWithInitialUrl ? `launch ${bundleId}` : `openurl ${url}`} failed: ${describeIosSimulatorFailure(err, e)}`
|
|
3093
|
+
reason: `simctl ${launchedWithInitialUrl ? `launch ${bundleId}` : `openurl ${url}`} failed: ${await describeIosSimulatorFailure(err, e)}`
|
|
3073
3094
|
};
|
|
3074
3095
|
}
|
|
3075
3096
|
}
|
|
@@ -3098,7 +3119,7 @@ async function launchIosApp({ udid, bundleId, metroPort, devClientScheme = null,
|
|
|
3098
3119
|
return {
|
|
3099
3120
|
failed: true,
|
|
3100
3121
|
code: LAUNCH_ERROR,
|
|
3101
|
-
reason: `simctl launch ${bundleId} failed: ${describeIosSimulatorFailure(err, e)}`
|
|
3122
|
+
reason: `simctl launch ${bundleId} failed: ${await describeIosSimulatorFailure(err, e)}`
|
|
3102
3123
|
};
|
|
3103
3124
|
}
|
|
3104
3125
|
}
|
|
@@ -3658,7 +3679,10 @@ const LAUNCH_UNVERIFIED = "unverified";
|
|
|
3658
3679
|
const LAUNCH_BUNDLING = "bundling";
|
|
3659
3680
|
const LAUNCH_FATAL = "fatal";
|
|
3660
3681
|
const VERIFY_TIMEOUT_MS = 2e4;
|
|
3682
|
+
const MANIFEST_GRACE_MS = 15e3;
|
|
3683
|
+
const MANIFEST_VERIFY_TIMEOUT_MS = 6e4;
|
|
3661
3684
|
const STABILITY_WINDOW_MS = 3e3;
|
|
3685
|
+
const JS_RUNNING_SETTLE_MS = 500;
|
|
3662
3686
|
const VERIFY_POLL_MS = 500;
|
|
3663
3687
|
const BUNDLE_EVENTS = /* @__PURE__ */ new Set([
|
|
3664
3688
|
"bundle_build_started",
|
|
@@ -3695,6 +3719,21 @@ function isBundleRequestProof(record, since = 0, port = null, platform = null) {
|
|
|
3695
3719
|
if (!new RegExp(`:${digits}\\b`).test(rec.msg)) return false;
|
|
3696
3720
|
return BUNDLE_URL_PATH.test(rec.msg);
|
|
3697
3721
|
}
|
|
3722
|
+
const JS_RUNNING = /^Running "[^"]*"/;
|
|
3723
|
+
function isJsRunning(record, platform) {
|
|
3724
|
+
return record.src === "device" && record.platform === platform && (record.level === "info" || record.level === "debug") && typeof record.msg === "string" && JS_RUNNING.test(record.msg);
|
|
3725
|
+
}
|
|
3726
|
+
function jsRunningSince(signals, since, runtimeWaiting, platform) {
|
|
3727
|
+
if (since === null || runtimeWaiting) return null;
|
|
3728
|
+
const running = signals.find((record) => Number(record.ts) >= since && isJsRunning(record, platform));
|
|
3729
|
+
return running ? Number(running.ts) : null;
|
|
3730
|
+
}
|
|
3731
|
+
function settledWindowEnd(stabilityDeadline, jsRunningAt) {
|
|
3732
|
+
return stabilityDeadline !== null && jsRunningAt !== null ? Math.min(stabilityDeadline, jsRunningAt + JS_RUNNING_SETTLE_MS) : stabilityDeadline;
|
|
3733
|
+
}
|
|
3734
|
+
function jsRunningFields(jsRunningAt) {
|
|
3735
|
+
return jsRunningAt === null ? {} : { jsRunning: true };
|
|
3736
|
+
}
|
|
3698
3737
|
function expoBundleLine(msg) {
|
|
3699
3738
|
return /\bBundl(?:ing|ed)\b/.test(msg);
|
|
3700
3739
|
}
|
|
@@ -3710,6 +3749,19 @@ async function nativeLaunchFailure({ readCrashes, since, platform, processAlive,
|
|
|
3710
3749
|
waitedMs
|
|
3711
3750
|
} : null;
|
|
3712
3751
|
}
|
|
3752
|
+
function manifestDeadline(records, { startedAt, timeoutMs }) {
|
|
3753
|
+
const base = startedAt + timeoutMs;
|
|
3754
|
+
const open = /* @__PURE__ */ new Set();
|
|
3755
|
+
let servedAt = null;
|
|
3756
|
+
for (const record of records.toSorted((a, b) => Number(a.ts) - Number(b.ts))) if (record.event === "manifest_request_started") open.add(record.requestId);
|
|
3757
|
+
else {
|
|
3758
|
+
open.delete(record.requestId);
|
|
3759
|
+
if (record.event === "manifest_request_finished") servedAt = Number(record.ts);
|
|
3760
|
+
}
|
|
3761
|
+
const cap = startedAt + Math.max(timeoutMs, MANIFEST_VERIFY_TIMEOUT_MS);
|
|
3762
|
+
if (open.size > 0) return cap;
|
|
3763
|
+
return servedAt === null ? base : Math.min(cap, Math.max(base, servedAt + MANIFEST_GRACE_MS));
|
|
3764
|
+
}
|
|
3713
3765
|
async function verifyLaunch({ slot, appPid, platformShared, logsDir, since, metroPort = null, platform = null, mode = null, requireBundleResponse, timeoutMs = VERIFY_TIMEOUT_MS, stabilityMs = STABILITY_WINDOW_MS, pollMs = VERIFY_POLL_MS, readRecords = null, readDeviceRecords = null, readClientRecords = null, readNativeCrashes = null, processAlive = null, onReadinessPending = null, onActivity, now = Date.now, sleep = (ms) => new Promise((r) => setTimeout(r, ms)) } = {}) {
|
|
3714
3766
|
const delivered = (record) => deliveryOwner(record, {
|
|
3715
3767
|
slot,
|
|
@@ -3720,7 +3772,8 @@ async function verifyLaunch({ slot, appPid, platformShared, logsDir, since, metr
|
|
|
3720
3772
|
const readDevice = readDeviceRecords || (() => readNdjson(logsDir, "device.ndjson"));
|
|
3721
3773
|
const readClient = readClientRecords || (() => readNdjson(logsDir, "client.ndjson"));
|
|
3722
3774
|
const startedAt = now();
|
|
3723
|
-
const
|
|
3775
|
+
const baseTimeoutMs = Math.max(0, timeoutMs);
|
|
3776
|
+
let bundleDeadline = startedAt + baseTimeoutMs;
|
|
3724
3777
|
let proof = null;
|
|
3725
3778
|
let activity = null;
|
|
3726
3779
|
let stabilityDeadline = null;
|
|
@@ -3741,6 +3794,10 @@ async function verifyLaunch({ slot, appPid, platformShared, logsDir, since, metr
|
|
|
3741
3794
|
const bundleRecords = metroRecords.filter((record) => (!requireBundleResponse || String(record.event).startsWith("bundle_response_")) && delivered(record));
|
|
3742
3795
|
const deviceRecords = readDevice().filter((record) => after(record, since) && (slot === void 0 || (record.slot ?? "default") === slot));
|
|
3743
3796
|
const clientRecords = readClient().filter((record) => after(record, since) && !platformShared);
|
|
3797
|
+
bundleDeadline = manifestDeadline(metroRecords.filter((record) => String(record.event).startsWith("manifest_request_") && (!platform || record.platform === platform)), {
|
|
3798
|
+
startedAt,
|
|
3799
|
+
timeoutMs: baseTimeoutMs
|
|
3800
|
+
});
|
|
3744
3801
|
if (now() >= nextCrashCheck) {
|
|
3745
3802
|
nextCrashCheck = now() + 2e3;
|
|
3746
3803
|
const crash = await nativeLaunchFailure({
|
|
@@ -3782,6 +3839,8 @@ async function verifyLaunch({ slot, appPid, platformShared, logsDir, since, metr
|
|
|
3782
3839
|
const runtimeWaiting = runtimeLoadingAt !== null && runtimeStartedAt === null;
|
|
3783
3840
|
const completedAt = proof ? Math.max(Number(proof.ts), runtimeStartedAt ?? 0) : null;
|
|
3784
3841
|
if (completedAt !== null) stabilityDeadline = completedAt + Math.max(0, stabilityMs);
|
|
3842
|
+
const jsRunningAt = jsRunningSince(signals, completedAt, runtimeWaiting, platform);
|
|
3843
|
+
const windowEnd = settledWindowEnd(stabilityDeadline, jsRunningAt);
|
|
3785
3844
|
const readinessDeadline = completedAt !== null ? completedAt + APP_READINESS_TIMEOUT_MS : bundleDeadline;
|
|
3786
3845
|
if (pendingAt === null) {
|
|
3787
3846
|
const pending = signals.find((record) => appReadinessSignal(record, platform) === "pending" && (runtimeWaiting || stabilityDeadline === null || Number(record.ts) <= stabilityDeadline));
|
|
@@ -3808,7 +3867,7 @@ async function verifyLaunch({ slot, appPid, platformShared, logsDir, since, metr
|
|
|
3808
3867
|
...pendingAt !== null ? { readiness: "error" } : {}
|
|
3809
3868
|
};
|
|
3810
3869
|
}
|
|
3811
|
-
if (proof &&
|
|
3870
|
+
if (proof && windowEnd !== null && (pendingAt !== null || now() >= windowEnd)) {
|
|
3812
3871
|
const errorSince = pendingAt === null ? Number(proof.ts ?? since ?? 0) : Number(since ?? 0);
|
|
3813
3872
|
const errors = [
|
|
3814
3873
|
...metroRecords.filter((record) => after(record, errorSince) && recordCouldBelongToPlatform(record, platform)),
|
|
@@ -3836,7 +3895,8 @@ async function verifyLaunch({ slot, appPid, platformShared, logsDir, since, metr
|
|
|
3836
3895
|
processAlive: alive,
|
|
3837
3896
|
mode,
|
|
3838
3897
|
waitedMs,
|
|
3839
|
-
...pendingAt !== null ? { readiness: appErrors ? "error" : ready ? "ready" : "timed-out" } : {}
|
|
3898
|
+
...pendingAt !== null ? { readiness: appErrors ? "error" : ready ? "ready" : "timed-out" } : {},
|
|
3899
|
+
...jsRunningFields(jsRunningAt)
|
|
3840
3900
|
};
|
|
3841
3901
|
}
|
|
3842
3902
|
if ((!proof || runtimeWaiting) && now() >= bundleDeadline) return await bundleTimeoutOutcome({
|
|
@@ -3852,7 +3912,7 @@ async function verifyLaunch({ slot, appPid, platformShared, logsDir, since, metr
|
|
|
3852
3912
|
mode,
|
|
3853
3913
|
waitedMs: now() - startedAt
|
|
3854
3914
|
});
|
|
3855
|
-
await sleep(Math.min(pollMs, Math.max(0, (runtimeWaiting ? bundleDeadline : proof && pendingAt !== null ? readinessDeadline :
|
|
3915
|
+
await sleep(Math.min(pollMs, Math.max(0, (runtimeWaiting ? bundleDeadline : proof && pendingAt !== null ? readinessDeadline : windowEnd ?? bundleDeadline) - now())));
|
|
3856
3916
|
}
|
|
3857
3917
|
}
|
|
3858
3918
|
function launchActivity(pendingAt, proof, bundling) {
|
|
@@ -4052,6 +4112,7 @@ function resolveMetroOrigin({ metroPort, publicUrl = null, mode = "auto", isExpo
|
|
|
4052
4112
|
remedy: "This is a Stim bug: the tunnel step did not run before the launch."
|
|
4053
4113
|
};
|
|
4054
4114
|
}
|
|
4115
|
+
const EAS_PROJECT_NOT_CONFIGURED = /EAS project not configured/i;
|
|
4055
4116
|
function describe(err) {
|
|
4056
4117
|
const e = err;
|
|
4057
4118
|
const stderr = typeof e?.stderr === "string" ? e.stderr.trim() : "";
|
|
@@ -4137,7 +4198,8 @@ function remoteDeviceDeps(ctx) {
|
|
|
4137
4198
|
reason: cleanup.reason ?? `Could not verify recorded EAS session ${recorded.sessionId}.`,
|
|
4138
4199
|
remedy: "Inspect the recorded session, then run `stim stop` again."
|
|
4139
4200
|
};
|
|
4140
|
-
|
|
4201
|
+
const sessionId = recorded.sessionId;
|
|
4202
|
+
await withWorkspaceStateLockAsync(ctx.root, () => clearRemoteSession(ctx.root, sessionId));
|
|
4141
4203
|
}
|
|
4142
4204
|
}
|
|
4143
4205
|
}
|
|
@@ -4168,9 +4230,16 @@ function remoteDeviceDeps(ctx) {
|
|
|
4168
4230
|
remedy: `Run \`eas simulator:list --name ${name}\` and stop any running session with \`eas simulator:stop --id <id>\`, then retry.`
|
|
4169
4231
|
};
|
|
4170
4232
|
}
|
|
4233
|
+
const failure = describe(err);
|
|
4234
|
+
if (EAS_PROJECT_NOT_CONFIGURED.test(failure)) return {
|
|
4235
|
+
failed: true,
|
|
4236
|
+
code: "STIM_REMOTE_EAS_UNAVAILABLE",
|
|
4237
|
+
reason: "The Expo app is not linked to an EAS project, so no EAS Simulator session was created.",
|
|
4238
|
+
remedy: `Link it with \`eas init --id <project-id> --non-interactive\` (existing project) or \`eas init --account <account-name> --non-interactive\` (new project), then run \`stim ${ctx.platform ?? "ios"} --remote eas\` again.`
|
|
4239
|
+
};
|
|
4171
4240
|
return {
|
|
4172
4241
|
failed: true,
|
|
4173
|
-
reason: `eas sim failed: ${
|
|
4242
|
+
reason: `eas sim failed: ${failure}`
|
|
4174
4243
|
};
|
|
4175
4244
|
}
|
|
4176
4245
|
const created = parseCreatedSession(stdout);
|
|
@@ -4379,6 +4448,18 @@ async function resolveRemoteContext({ root, backend, platform = "ios", easBin, e
|
|
|
4379
4448
|
code: "STIM_BAD_ARG"
|
|
4380
4449
|
};
|
|
4381
4450
|
}
|
|
4451
|
+
let sessionMaxMinutes = maxDurationMinutes;
|
|
4452
|
+
if (backend === "eas" && sessionMaxMinutes === null) {
|
|
4453
|
+
const setting = settingDefinition("remote.easMaxDurationMinutes");
|
|
4454
|
+
const configured = loadConfig$1()?.remote?.easMaxDurationMinutes;
|
|
4455
|
+
const problem = setting && configured !== void 0 ? settingValueError(setting, configured) : null;
|
|
4456
|
+
if (problem) return {
|
|
4457
|
+
failed: `Invalid remote.easMaxDurationMinutes value ${JSON.stringify(configured)}. Expected ${problem}.`,
|
|
4458
|
+
remedy: "Run `stim settings set remote.easMaxDurationMinutes <minutes> --scope machine`, then retry.",
|
|
4459
|
+
code: "STIM_BAD_ARG"
|
|
4460
|
+
};
|
|
4461
|
+
sessionMaxMinutes = typeof configured === "number" ? configured : Number(setting?.default);
|
|
4462
|
+
}
|
|
4382
4463
|
return { ctx: {
|
|
4383
4464
|
root,
|
|
4384
4465
|
label: `${ownedDeviceLabel(root)}-${workspaceId$1(root)}`,
|
|
@@ -4387,7 +4468,7 @@ async function resolveRemoteContext({ root, backend, platform = "ios", easBin, e
|
|
|
4387
4468
|
easBin: easBin ?? "",
|
|
4388
4469
|
agentDeviceBin,
|
|
4389
4470
|
operation,
|
|
4390
|
-
maxDurationMinutes,
|
|
4471
|
+
maxDurationMinutes: sessionMaxMinutes,
|
|
4391
4472
|
deviceType: backend === "eas" ? deviceType : null,
|
|
4392
4473
|
publicMetroUrl: null,
|
|
4393
4474
|
existingDaemon
|
|
@@ -4504,7 +4585,7 @@ async function ensureRemoteBootOwned({ root, platform, sessionName, startedAt, d
|
|
|
4504
4585
|
const sessionId = createdSessionId();
|
|
4505
4586
|
if (!sessionId) return booted;
|
|
4506
4587
|
try {
|
|
4507
|
-
recordEasSessionClaim({
|
|
4588
|
+
await recordEasSessionClaim({
|
|
4508
4589
|
sessionId,
|
|
4509
4590
|
name: sessionName,
|
|
4510
4591
|
platform,
|
|
@@ -4513,7 +4594,7 @@ async function ensureRemoteBootOwned({ root, platform, sessionName, startedAt, d
|
|
|
4513
4594
|
stateFile: workspaceStateFile$1(root)
|
|
4514
4595
|
}, ledgerRoot);
|
|
4515
4596
|
const preview = webPreviewUrl();
|
|
4516
|
-
writeState(root, { remoteDevice: {
|
|
4597
|
+
await writeState(root, { remoteDevice: {
|
|
4517
4598
|
platform,
|
|
4518
4599
|
sessionId,
|
|
4519
4600
|
startedAt,
|
|
@@ -5777,8 +5858,8 @@ async function deleteProjectDevices(orphanedDevices, staleDevices, staleDeviceRe
|
|
|
5777
5858
|
projectPath: d.project,
|
|
5778
5859
|
slot: d.slot
|
|
5779
5860
|
} } : {},
|
|
5780
|
-
..."project" in d ? { onRemoved: () => {
|
|
5781
|
-
if (clearDevice(d.project, d.kind, d.slot, d.id)) output.log(chalk.dim(` cleared the ${d.kind} record for ${d.project}`));
|
|
5861
|
+
..."project" in d ? { onRemoved: async () => {
|
|
5862
|
+
if (await withConfigLockAsync$1(() => clearDevice(d.project, d.kind, d.slot, d.id))) output.log(chalk.dim(` cleared the ${d.kind} record for ${d.project}`));
|
|
5782
5863
|
} } : {},
|
|
5783
5864
|
..."orphanedDirectory" in d ? { orphanedDirectory: d.orphanedDirectory } : {}
|
|
5784
5865
|
});
|
|
@@ -5811,7 +5892,7 @@ async function deleteProjectDevices(orphanedDevices, staleDevices, staleDeviceRe
|
|
|
5811
5892
|
for (const d of staleDevices) {
|
|
5812
5893
|
const status = await reap(d);
|
|
5813
5894
|
if (d.kind === "ios" && (status === "torn-down" || status === "missing")) {
|
|
5814
|
-
clearDevice(d.project, d.kind, d.slot, d.id);
|
|
5895
|
+
await withConfigLockAsync$1(() => clearDevice(d.project, d.kind, d.slot, d.id));
|
|
5815
5896
|
output.log(chalk.dim(` cleared the ${d.kind} record for ${d.project}`));
|
|
5816
5897
|
}
|
|
5817
5898
|
}
|
|
@@ -7645,6 +7726,7 @@ const NO_BUILD_PROGRESS = {
|
|
|
7645
7726
|
waitingFor: () => {},
|
|
7646
7727
|
output: () => {},
|
|
7647
7728
|
durations: () => ({}),
|
|
7729
|
+
phase: () => null,
|
|
7648
7730
|
steps: () => null,
|
|
7649
7731
|
clear: () => {}
|
|
7650
7732
|
};
|
|
@@ -7671,6 +7753,23 @@ function tapBuildLog(writer, progress) {
|
|
|
7671
7753
|
}
|
|
7672
7754
|
};
|
|
7673
7755
|
}
|
|
7756
|
+
function runFailureRecord({ code, message, phase }) {
|
|
7757
|
+
return {
|
|
7758
|
+
src: "build",
|
|
7759
|
+
level: "error",
|
|
7760
|
+
event: "run_failed",
|
|
7761
|
+
...code ? { code } : {},
|
|
7762
|
+
...phase ? { phase } : {},
|
|
7763
|
+
msg: [code, message].filter(Boolean).join(": ") || "the run failed"
|
|
7764
|
+
};
|
|
7765
|
+
}
|
|
7766
|
+
function thrownRunFailureRecord(error, phase) {
|
|
7767
|
+
return runFailureRecord({
|
|
7768
|
+
code: typeof error === "object" && error !== null && "code" in error && typeof error.code === "string" ? error.code : void 0,
|
|
7769
|
+
message: error instanceof Error ? error.message : String(error),
|
|
7770
|
+
phase
|
|
7771
|
+
});
|
|
7772
|
+
}
|
|
7674
7773
|
const DETAIL_WRITE_MS = 2e3;
|
|
7675
7774
|
function toolLine(record) {
|
|
7676
7775
|
if (!record || typeof record !== "object") return null;
|
|
@@ -7853,6 +7952,9 @@ function startBuildProgress({ root, platform, slot, claim, now = Date.now, note
|
|
|
7853
7952
|
durations() {
|
|
7854
7953
|
return phaseDurations(record.phases, now());
|
|
7855
7954
|
},
|
|
7955
|
+
phase() {
|
|
7956
|
+
return record.phase;
|
|
7957
|
+
},
|
|
7856
7958
|
steps() {
|
|
7857
7959
|
const detail = parser.detail("");
|
|
7858
7960
|
return detail?.unit === "steps" ? detail.total : null;
|
|
@@ -9282,4 +9384,4 @@ function budgetLine(report) {
|
|
|
9282
9384
|
return `${report.volumes.length ? `${report.volumes.map((v) => `${v.freeGb} GB free on ${v.volume}`).join(", ")} (reclaims below ${Math.max(budget.minFreeDiskGb, budget.hardFloorDiskGb)} GB, ${budget.hardFloorDiskGb ? `refuses below ${budget.hardFloorDiskGb} GB` : "never refuses"})` : "disk budget off"}; ${report.memory ? `roughly ${report.memory.committedGb} GB of a ${budget.maxCommittedMemoryGb} GB memory budget committed` : "memory budget off"}`;
|
|
9283
9385
|
}
|
|
9284
9386
|
//#endregion
|
|
9285
|
-
export {
|
|
9387
|
+
export { includesArchives as $, bundleInvocation as $n, RELEASE_VERIFY_WAIT_MS as $t, workspaceBuildInProgress as A, reverseMetroPorts as An, findStaleDeviceRecords as At, recordFinishedBuild as B, RESOLVE_TIMEOUT_MS as Bn, bundleEntryPoint as Bt, collectIdleDevices as C, installConflictKind as Cn, discoverCaches as Cr, deleteParkedSims as Ct, idleDeviceLines as D, launchAndroidReleaseApp as Dn, deviceSweepIsScoped as Dt, collectOwnedDeviceActivityAsync as E, launchAndroidApp as En, describeUnverifiableDevices as Et, buildStatusLine as F, readRemoteSimulatorArch as Fn, deleteEasSessions as Ft, createRunRecorder as G, isEasAuthFailureText as Gn, remoteAndroidDeps as Gt, startBuildProgress as H, cacheLevel as Hn, ensureMetroReachable as Ht, bundlingActivity as I, gateMetroOrigin as In, describeError as It, recordCapacityRefusal as J, providerFromConfig as Jn, withEasProjectLock as Jt, readRunEstimates as K, loadProjectProvider as Kn, remoteIosDeps as Kt, estimateBuild as L, exitAfterFlush as Ln, withRemoteSessionGcLocks as Lt, NO_BUILD_PROGRESS as M, pickDevClientScheme as Mn, unverifiedDeviceCommand as Mt, activeBuildState as N, readBundleSchemes as Nn, withAndroidAvdSizes as Nt, parseIdleDuration as O, launchIosApp as On, eraseParkedDevices as Ot, buildReport as P, schemesFromInfoPlist as Pn, collectEasSessionSweep as Pt, emptyCaches as Q, uploadRemote as Qn, MANIFEST_VERIFY_TIMEOUT_MS as Qt, parseActiveBuild as R, processContext as Rn, REMOTE_SESSION_ERROR as Rt, withdrawDevServerStopRequest as S, installAndroidApp as Sn, readFootprints as Sr, deleteParkedAvds as St, collectOwnedDeviceActivity as T, iosAppProcess as Tn, sizeCaches as Tr, describeParkedSims as Tt, tapBuildLog as U, checkEasAuth as Un, ensureRemoteBootOwned as Ut, runFailureRecord as V, UPLOAD_TIMEOUT_MS as Vn, endRecordedSession as Vt, thrownRunFailureRecord as W, easAuthNote as Wn, readInstalledEasCliVersionAsync as Wt, recordRunStats as X, resolveEasCliBin as Xn, LAUNCH_FATAL as Xt, recordCapacityWait as Y, readProjectConfig as Yn, LAUNCH_BUNDLING as Yt, statsProjectKey$1 as Z, resolveRemote as Zn, LAUNCH_UNVERIFIED as Zt, devServerStopRecord as _, clearOtherUserApps as _n, reclaimMemory as _r, collectInventory as _t, inspectBudget as a, unverifiedLaunchLines as an, easCliUpgradeRemedy as ar, previewScopedEmptying as at, requestDevServerStop as b, ensureMetroReverse as bn, phase as br, collectParkedAvds as bt, readVolumeSpace as c, verifyReleaseLaunch as cn, GRADLE_DAEMONS_KIND as cr, trimCaches as ct, trimmableCaches as d, DEFAULT_METRO_PORT as dn, inspectWatchmanMemory as dr, deleteGradleVersions as dt, VERIFY_TIMEOUT_MS as en, remoteCliInvocation as er, includesParkedDevices as et, stopOwnedMetro as f, INSTALL_ERROR as fn, memoryCacheKind as fr, gradleVersionLines as ft, devServerStopLevel as g, appProcessFromPid as gn, memoryWorkPending as gr, getMachineCacheReport as gt, describeMetroLastStop as h, androidDevClientUrl as hn, memorySweepIsScoped as hr, waitForGradleExit as ht, enforceBudget as i, unattributedLaunchLines as in, easCliSupport as ir, planCacheEmptying as it, ACTIVE_BUILD_KEY as j, writeDebugHttpHost as jn, findStaleProjectDevices as jt, shutDownIdleDevices as k, restartedAppNote as kn, findOrphanedDevices as kt, readVolumeSpaceAsync as l, APP_READINESS_TIMEOUT_MS as ln, WATCHMAN_KIND as lr, collectGradleVersions as lt, describeDevServerStop as m, androidAppProcess as mn, memoryScope as mr, includesGradleVersions as mt, budgetLine as n, readCollectorRecords as nn, MIN_EAS_CLI_DEVICE_VERSION as nr, includesWorkspaceOutputs as nt, machineNumber as o, verifyAndroidReleaseLaunch as on, ownedSessionName as or, selectCaches as ot, stopOwnedMetroForReset as p, IOS_DEV_MENU_OFF_DEFAULTS_PLIST as pn, memoryLines as pr, gradleVersionsPending as pt, readStats$1 as q, ownerFromConfig as qn, resolveRemoteContext as qt, cacheLabel as r, readMetroRecords as rn, MIN_EAS_CLI_SIMULATOR_VERSION as rr, isWorkspacesScope as rt, peekBudget as s, verifyLaunch as sn, parseArchiveSelector as sr, selectsBeyondCaches as st, budgetGate as t, isBundleProof as tn, remoteCommand as tr, includesRecordings as tt, resolveBudget as u, ADB_INSTALL_TIMEOUT_MS as un, collectMemoryReport as ur, deleteGradleVersion as ut, logVanishedSupervisor as v, devClientUrl as vn, scopedMemoryReport as vr, DEVICE_LIST_TIMEOUT_MS$1 as vt, collectIdleDevicesAsync as w, installIosApp as wn, pruneCache as wr, deleteProjectDevices as wt, vanishedSupervisorMessage as x, hasMetroReverse as xn, attributeMachineUsage as xr, collectParkedSims as xt, metroLastStop as y, deviceShellArg as yn, stopIdleGradleDaemons as yr, collectDeviceLeases as yt, recordBuildPhase as z, runProcessOperation as zn, binOnPath as zt };
|