stim 1.17.1 → 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-B6rDWrTm.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-CUDz870h.mjs → budget-DIhL2BKx.mjs} +1581 -61
- 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-CxNotugx.mjs → client-DzhapoMB.mjs} +184 -49
- 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-BF_435OC.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-BsWKa_-d.mjs → gc-Dh6mXOKC.mjs} +23 -469
- package/dist/{gradle-bsBRy6i9.mjs → gradle-C6GKnunQ.mjs} +6 -6
- package/dist/{guide-status-Du-ZQ3FD.mjs → guide-status-Bhf9SJXc.mjs} +3 -3
- package/dist/{guide-DC3n6-NH.mjs → guide-tm6igAaa.mjs} +314 -72
- package/dist/{hosted-android-DgU31wY3.mjs → hosted-android-Bv285t_t.mjs} +3 -3
- package/dist/{hosted-client-CdSoH-G6.mjs → hosted-client-C-rMtppF.mjs} +2 -2
- package/dist/{hosted-ios-BTaVj4Jb.mjs → hosted-ios-D5mNmtj4.mjs} +1 -1
- package/dist/{hosted-logs-SxfBvSvc.mjs → hosted-logs-DN8Iz4mJ.mjs} +9 -9
- package/dist/{hosted-macos-CT9E3meL.mjs → hosted-macos-B-wEjlwG.mjs} +5 -5
- package/dist/{hosted-native-CZLOrMrN.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-C7JuT1bI.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-DNxKcok9.mjs → logs-1Ylc1Ri6.mjs} +13 -13
- package/dist/macos-Ck7OBMNY.mjs +2 -0
- package/dist/{macos-BEs8cwKx.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-CHqK0p-a.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-YhaSxP4v.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-BJSXzsCL.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-byOjE3P4.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 +128 -5
- 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-BHIersSm.mjs → start-D-IeOyoK.mjs} +19 -19
- package/dist/{start-BEP-XmEA.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-CqeWbIWW.mjs → status-DCjZeE-K.mjs} +34 -35
- 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-D03prQnW.mjs → stop-BGhKMOuH.mjs} +5 -5
- package/dist/{stop-Cj01je8D.mjs → stop-BTjs3xbc.mjs} +17 -18
- package/dist/{stop-DOxwkH4j.mjs → stop-DIJtD2GL.mjs} +2 -2
- package/dist/supervisor-run.d.mts +24 -22
- package/dist/supervisor-run.mjs +21 -22
- package/dist/{support-BE-tbOP9.mjs → support-BaayeYCf.mjs} +7 -7
- package/dist/{support-WvD__tSV.mjs → support-Bwvbrq5-.mjs} +5 -5
- package/dist/{toolchain-CdrxgUeA.mjs → toolchain-Bnyd_K3A.mjs} +480 -27
- 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-DddUdJzr.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-CsAjSmEo.mjs → worktree-BJfnU6r5.mjs} +1 -1
- package/dist/{worktree-AK_m-d_m.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-BLQqDGlX.mjs +0 -51
- package/dist/deps-CVxlsRFn.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-C_JjkEy4.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,55 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { _ as stepTimer, c as launchErrorReport, g as stepClock,
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { m as
|
|
13
|
-
import { ft as parkedMaxSetting, ot as POOL_SETTING_REMEDY } from "./android-
|
|
14
|
-
import {
|
|
15
|
-
import { a as workspaceLinks, i as workspaceLinkLine } from "./stim-desktop-
|
|
16
|
-
import {
|
|
17
|
-
import { r as createNdjsonWriter } from "./ndjson-
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { r as
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import { n as
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import { i as
|
|
28
|
-
import { c as
|
|
29
|
-
import {
|
|
30
|
-
import { n as
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import { a as
|
|
41
|
-
import { t as
|
|
42
|
-
import {
|
|
43
|
-
import { a as iosPoolCandidates, c as isWirelessIosDevice, f as resolveIosPhysicalDevice, i as iosDeviceProcess, l as listIosDevices, n as installIosDeviceApp, o as iosPoolNoCandidatesRefusal, p as verifyIosDeviceReleaseLaunch, r as iosDeviceBounds, t as awaitIosDeviceLaunch, u as localNetworkPending } from "./ios-device-
|
|
44
|
-
import { n as prepareHostedIos, t as placeHostedIos } from "./hosted-ios-BTaVj4Jb.mjs";
|
|
45
|
-
import { X509Certificate } from "node:crypto";
|
|
1
|
+
import { n as ownership_claim_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
|
+
import { t as getExecutor } from "./exec-DWhCZDGm.mjs";
|
|
3
|
+
import { t as spawnEntry } from "./spawn-entry-Dcb7sDUz.mjs";
|
|
4
|
+
import { _ as stepTimer, c as launchErrorReport, g as stepClock, i as formatDuration, l as phaseLine, m as shortHash, n as appReadinessMessage, v as launchErrorPreview } from "./command-output-CBtzyIgF.mjs";
|
|
5
|
+
import { E as upsertProject, L as deviceSlotFileKey, R as deviceSlotKey, V as parseDeviceSlotOption, W as validateDeviceSlot, p as getProject, u as getConcurrencyLimits, v as recordIosSchemeApprovals, z as deviceSlotPlatforms } from "./config-CgYMahz7.mjs";
|
|
6
|
+
import { D as makeTemporaryDirectory, O as removeTemporaryEntry, s as gitCommonDir, y as repoRoot } from "./worktree-CsKYexJM.mjs";
|
|
7
|
+
import { i as detectIsExpo, n as appProjectProblem, s as findProjectRoot$1, t as NO_PROJECT_REFUSAL } from "./project-C3ChRLZy.mjs";
|
|
8
|
+
import { l as resolveProjectMetro, o as pidExists, u as signalProcessTree } from "./metro-Dh8T4Ytd.mjs";
|
|
9
|
+
import { c as writeWorkspaceState, g as workspaceAgentDeviceDir, i as recordWorkspaceUse, r as readWorkspaceState$1, v as workspaceDir, x as workspaceLogsDir$1 } from "./workspace-state-C59dqG-Z.mjs";
|
|
10
|
+
import { F as recordFinishedBuild, Ft as MODE_BARE, I as startBuildProgress, It as MODE_EXPO, Jt as writeWorkspaceLaunch, L as tapBuildLog, O as NO_BUILD_PROGRESS, R as createRunRecorder, U as recordRunStats, V as recordCapacityRefusal, W as statsProjectKey$1, t as budgetGate, z as readRunEstimates } from "./budget-DIhL2BKx.mjs";
|
|
11
|
+
import { N as releaseBuildSlot, j as acquireBuildSlot } from "./workspaces-xXItD8Dj.mjs";
|
|
12
|
+
import { A as providerDownloadPath, D as fingerprintProject, E as fingerprintDiffRecord, L as untrackedMissLine, M as refingerprintAfterMutation, N as resolveBuild, O as inputsChangedDuringBuild, P as storeBuild, R as untrackedNativeFiles, S as configInputsChanged, T as filesystemBuildCapability, _ as waitForBuild, b as buildCacheKey, g as releaseBuildLock, j as providerUploadOutcome, k as prepareProviderDownloadDir, m as acquireBuildLock, v as waitForSharedBuild, x as changedDuringBuildLine } from "./device-lease-Co-EwifR.mjs";
|
|
13
|
+
import { ft as parkedMaxSetting, ot as POOL_SETTING_REMEDY } from "./android-DC3ZLuw0.mjs";
|
|
14
|
+
import { d as listAllIosSims, i as createIosSimSnapshot, m as listIosRuntimes, r as clearIosAppData } from "./ios-B3SbOWdw.mjs";
|
|
15
|
+
import { a as workspaceLinks, i as workspaceLinkLine } from "./stim-desktop-Behws_fi.mjs";
|
|
16
|
+
import { A as publicUrlSetting, C as metroWarmupUrlSetting, F as resolveSettings, H as tunnelModeSetting, K as detectProviders, N as remoteIosSetting, P as resolveCacheProviderConfig, Q as resolveOptimizations, R as settingOriginScope, T as parseIosRemote, U as unknownSettingKeys, V as settingsLayers, Y as artifactCachePolicy, Z as optimizationBuildProfile, _ as iosSigningIdentitySha1SettingError, f as iosLanHostSetting, g as iosSigningIdentitySha1Setting, h as iosSigningIdentitySettingError, i as SETTING_SHAPE_REMEDY, m as iosSigningIdentitySetting, p as iosLanHostSettingError, u as cacheProviderSettingError, x as metroPortSetting, z as settingShapeErrors } from "./settings-CQyMElEP.mjs";
|
|
17
|
+
import { r as createNdjsonWriter } from "./ndjson-LGZAMsqa.mjs";
|
|
18
|
+
import { _ as resolveBuildPlacement, a as offloadBuild, c as placementLoad, d as setRemoteLogSink, f as OffloadRefusal, h as parseBuildMachineOption, i as closeOffload, l as remotePhaseText, m as namedBuildMachine, n as buildPlacementCandidates, r as chooseBuildMachine, s as offloadPlacement, u as simulatorRuntime } from "./client-DzhapoMB.mjs";
|
|
19
|
+
import { r as checkDeviceCapacity } from "./device-capacity-EUOOYr8T.mjs";
|
|
20
|
+
import { C as readBundleId, O as bundlerPin, S as readBundleExecutable, _ as buildIos, l as podsAreStale, m as COMPILATION_CACHE_NOT_RUN, p as runPodInstall, r as iosToolchain, u as readPodState, w as resolveScheme, x as discoverXcodeProject, y as compilationCacheActivityLine } from "./toolchain-Bnyd_K3A.mjs";
|
|
21
|
+
import { r as hostedMetroSettings } from "./metro-gateway-CEUw9RMH.mjs";
|
|
22
|
+
import { i as writeDevicePlacement, n as readHostedIos, o as writeHostedIos } from "./ios-state-B2pES6Vs.mjs";
|
|
23
|
+
import { a as printPlan, b as automaticDevicePlacement, c as fingerprintErrorMissReason, g as ensureOwnedDevice, h as ensureBooted, i as planPayload, l as skippedMissReason, m as didSetUpDevice, n as planCachedBuild, o as refusePlan, p as swapJsBundle, r as planFlagRefusal, s as explainBuildMiss, t as planHostedDevice, x as devicePlacementLine, y as warmMetro } from "./plan-placement-CtxkCO54.mjs";
|
|
24
|
+
import { n as devicePlacementRecord, t as buildPlacementRecord } from "./placement-log-BcPhRwR4.mjs";
|
|
25
|
+
import { S as restartedAppNote, _ as installIosApp, a as IOS_DEV_MENU_OFF_DEFAULTS_PLIST, d as devClientUrl, l as clearOtherUserApps, r as DEFAULT_METRO_PORT, v as iosAppProcess, x as launchIosApp } from "./app-install-D-PUENug.mjs";
|
|
26
|
+
import { n as nativeRunCommand, r as siblingPlatformSlots, t as launchSlotScope } from "./slot-launch-C1nqh4mu.mjs";
|
|
27
|
+
import { c as readMetroRecords, f as verifyLaunch, i as RELEASE_VERIFY_WAIT_MS, l as unattributedLaunchLines, n as LAUNCH_FATAL, o as isBundleProof, p as verifyReleaseLaunch, r as LAUNCH_UNVERIFIED, s as readCollectorRecords, t as LAUNCH_BUNDLING, u as unverifiedLaunchLines } from "./launch-verify-hskNcWkZ.mjs";
|
|
28
|
+
import { a as easAuthNote, c as loadProjectProvider, f as resolveEasCliBin, i as checkEasAuth, m as uploadRemote, n as UPLOAD_TIMEOUT_MS, o as exitAfterFlush, p as resolveRemote, r as cacheLevel, s as isEasAuthFailureText, t as RESOLVE_TIMEOUT_MS } from "./remote-cache-BGg7aGIZ.mjs";
|
|
29
|
+
import { n as devClientTakesDevMenuParams, t as devClientScheme } from "./dev-client-CLnIH02x.mjs";
|
|
30
|
+
import { O as readRemoteSimulatorArch, a as ensureMetroReachable, k as gateMetroOrigin, l as remoteIosDeps, n as binOnPath, o as ensureRemoteBootOwned, r as bundleEntryPoint, u as resolveRemoteContext, w as ownedSessionName } from "./device-remote-tHbd1fKy.mjs";
|
|
31
|
+
import { d as runCancellationSignal, f as withNativeBuildRun, r as cancelledFailure, u as runCancellation } from "./native-run-B06FkmZx.mjs";
|
|
32
|
+
import { a as isEasBuildFailure, i as easDeviceBuildRemedy, o as planEasDevelopmentBuild, s as resolveEasDevelopmentBuild } from "./simslim-EHBQ2R4G.mjs";
|
|
33
|
+
import { c as startDevServer, h as detectBundleId } from "./start-D-IeOyoK.mjs";
|
|
34
|
+
import { a as acquireRunLease, c as lostRefusal, d as runLease, f as waitFlagConflict, o as leaseExpiryText, s as lostLine, t as DEBUG_VERIFY_STEP_MS, u as releaseLeaseOnSignal } from "./device-lease-run-w1xhCqIW.mjs";
|
|
35
|
+
import { n as verifyCollectorOwnership } from "./ownership-D6Se7gg_.mjs";
|
|
36
|
+
import { a as sleep, i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-D_603JiC.mjs";
|
|
37
|
+
import { n as clearIosAdoptionPending } from "./device-ios-6MewKKnc.mjs";
|
|
38
|
+
import { t as selectFromPool } from "./device-pool-F5WvRPtD.mjs";
|
|
39
|
+
import { i as staleNativeDirRefusal, n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-juCyreaR.mjs";
|
|
40
|
+
import { a as printNativeCrashReport, n as IOS_CRASH_REPORT_RETRY, o as simulatorConsolePaths, r as captureNativeCrashes, t as errorDiagnostics } from "./error-diagnostics-BRXOqDzG.mjs";
|
|
41
|
+
import { _ as resolveSimulatorAppFlag, a as deviceModelRefusal, c as iosProviderRunOptions, d as podAction, f as printDiagnostics, g as resolveRuntime, h as resolveIosWait, i as deviceLabel, l as isReleaseConfiguration, m as resolveDeviceType, n as buildLogFile, o as deviceShortName, p as resolveConfiguration, r as createIosDeviceWaitRun, t as appNameFromPath, u as ownedSimFailure, v as simulatorBuildArch, y as xcodeFailureReport } from "./support-BaayeYCf.mjs";
|
|
42
|
+
import { n as prepareHostedIos, t as placeHostedIos } from "./hosted-ios-D5mNmtj4.mjs";
|
|
43
|
+
import { a as iosPoolCandidates, c as isWirelessIosDevice, f as resolveIosPhysicalDevice, i as iosDeviceProcess, l as listIosDevices, n as installIosDeviceApp, o as iosPoolNoCandidatesRefusal, p as verifyIosDeviceReleaseLaunch, r as iosDeviceBounds, t as awaitIosDeviceLaunch, u as localNetworkPending } from "./ios-device-vOaByMhw.mjs";
|
|
46
44
|
import { existsSync, mkdirSync, mkdtempSync, openSync, rmSync, writeFileSync } from "node:fs";
|
|
47
45
|
import { basename, join } from "node:path";
|
|
48
|
-
import { hostSimulatorArch, workspaceId } from "@stim-cli/core";
|
|
49
|
-
import { InvalidArgumentError } from "commander";
|
|
50
46
|
import { buildDiagnostics, hostedIosStatus, machineCapacity, parseMachine } from "@stim-cli/core/state";
|
|
51
47
|
import { networkInterfaces, tmpdir } from "node:os";
|
|
52
48
|
import chalk from "chalk";
|
|
49
|
+
import { InvalidArgumentError } from "commander";
|
|
50
|
+
import { hostSimulatorArch, workspaceId } from "@stim-cli/core";
|
|
51
|
+
import { X509Certificate } from "node:crypto";
|
|
53
52
|
import { createWarnOnce, loadCacheProvider, resolveTieredBuild, storeTieredBuild } from "@stim-cli/cache";
|
|
54
53
|
//#region src/engine/ios-lan.ts
|
|
55
54
|
const IP_TXT = "ip.txt";
|
|
@@ -385,7 +384,18 @@ async function acquireIosArtifact({ root, logFile, udid, remoteDestination, host
|
|
|
385
384
|
let hereReason = "no remote Mac is paired";
|
|
386
385
|
let slotWaitMs;
|
|
387
386
|
let builtOn;
|
|
388
|
-
const fallBack = (reason, line = reason) => {
|
|
387
|
+
const fallBack = (reason, line = reason, info = {}) => {
|
|
388
|
+
logWriter().write(buildPlacementRecord({
|
|
389
|
+
platform: "ios",
|
|
390
|
+
buildMachine,
|
|
391
|
+
candidates: info.candidates,
|
|
392
|
+
event: "placement_fallback",
|
|
393
|
+
fallback: {
|
|
394
|
+
code: info.code ?? "fallback",
|
|
395
|
+
reason,
|
|
396
|
+
machine: info.machine
|
|
397
|
+
}
|
|
398
|
+
}));
|
|
389
399
|
if (namedBuildMachine(buildMachine)) throw new OffloadRefusal(buildMachine, reason);
|
|
390
400
|
offloadFallback = reason;
|
|
391
401
|
buildFailure = {
|
|
@@ -795,12 +805,21 @@ async function acquireIosArtifact({ root, logFile, udid, remoteDestination, host
|
|
|
795
805
|
});
|
|
796
806
|
if (!placement.offload) {
|
|
797
807
|
hereReason = placement.reason;
|
|
808
|
+
logWriter().write(buildPlacementRecord({
|
|
809
|
+
platform: "ios",
|
|
810
|
+
buildMachine,
|
|
811
|
+
stays: {
|
|
812
|
+
code: placement.code,
|
|
813
|
+
reason: placement.reason
|
|
814
|
+
}
|
|
815
|
+
}));
|
|
798
816
|
if (mode !== "off") phase("build", `placement: here (${placement.reason})`);
|
|
799
817
|
return null;
|
|
800
818
|
}
|
|
801
819
|
return {
|
|
802
820
|
mode,
|
|
803
821
|
here,
|
|
822
|
+
code: placement.code,
|
|
804
823
|
reason: placement.reason,
|
|
805
824
|
runtime,
|
|
806
825
|
machines
|
|
@@ -808,12 +827,13 @@ async function acquireIosArtifact({ root, logFile, udid, remoteDestination, host
|
|
|
808
827
|
}
|
|
809
828
|
/** Asks the paired machines once the post-mutation key is known; null builds here. */
|
|
810
829
|
async function chooseMachine(candidate) {
|
|
830
|
+
let asked = [];
|
|
811
831
|
const choice = await chooseBuildMachine({
|
|
812
832
|
projectRoot: root,
|
|
813
833
|
target: {
|
|
814
834
|
platform: "ios",
|
|
815
835
|
local: {
|
|
816
|
-
...iosToolchain(),
|
|
836
|
+
...iosToolchain(root),
|
|
817
837
|
...hostedDestination ? { arch: hostedDestination.architecture === "x86_64" ? "x64" : "arm64" } : {}
|
|
818
838
|
},
|
|
819
839
|
runtime: candidate.runtime,
|
|
@@ -823,15 +843,28 @@ async function acquireIosArtifact({ root, logFile, udid, remoteDestination, host
|
|
|
823
843
|
here: candidate.here,
|
|
824
844
|
note: (line) => note(chalk.dim(phaseLine("build", `offload: ${line}`))),
|
|
825
845
|
machines: candidate.machines,
|
|
826
|
-
selected: buildMachine
|
|
846
|
+
selected: buildMachine,
|
|
847
|
+
onCandidates: (each) => asked = each
|
|
827
848
|
});
|
|
828
849
|
if (typeof choice === "string") {
|
|
829
850
|
const only = candidate.machines.length === 1 ? candidate.machines[0].machine : null;
|
|
830
851
|
if (only && choice.startsWith(`${only}: `)) fallbackMachine = only;
|
|
831
|
-
fallBack(choice
|
|
852
|
+
fallBack(choice, choice, {
|
|
853
|
+
code: "no-remote-mac-took-it",
|
|
854
|
+
candidates: asked
|
|
855
|
+
});
|
|
832
856
|
return null;
|
|
833
857
|
}
|
|
834
858
|
openOffload.choice = choice;
|
|
859
|
+
logWriter().write(buildPlacementRecord({
|
|
860
|
+
platform: "ios",
|
|
861
|
+
buildMachine,
|
|
862
|
+
candidates: asked,
|
|
863
|
+
chose: {
|
|
864
|
+
machine: choice.machine,
|
|
865
|
+
reason: `${candidate.reason}${placementLoad(choice)}`
|
|
866
|
+
}
|
|
867
|
+
}));
|
|
835
868
|
phase("build", `placement: ${choice.machine} (${candidate.reason}${placementLoad(choice)})`);
|
|
836
869
|
return choice;
|
|
837
870
|
}
|
|
@@ -907,7 +940,10 @@ async function acquireIosArtifact({ root, logFile, udid, remoteDestination, host
|
|
|
907
940
|
if (!outcome.ok || !prepared) {
|
|
908
941
|
const why = reason ?? "the stored app is not installable";
|
|
909
942
|
fallbackMachine = choice.machine;
|
|
910
|
-
fallBack(`${choice.machine}: ${why}`, `offload failed: ${why}
|
|
943
|
+
fallBack(`${choice.machine}: ${why}`, `offload failed: ${why}`, {
|
|
944
|
+
code: "offload-failed",
|
|
945
|
+
machine: choice.machine
|
|
946
|
+
});
|
|
911
947
|
logWriter().write({
|
|
912
948
|
src: "build",
|
|
913
949
|
level: "warn",
|
|
@@ -1312,7 +1348,7 @@ function selectIosTarget({ root, slot, opts, settings, physical, release, metroC
|
|
|
1312
1348
|
async function selectIosPlacement(args) {
|
|
1313
1349
|
const selection = selectIosTarget(args);
|
|
1314
1350
|
if ("failure" in selection || selection.machine !== "auto") return selection;
|
|
1315
|
-
const { root, slot, d, opts, deviceType, runtime, noWait, phase, release, metroCheck } = args;
|
|
1351
|
+
const { root, slot, d, opts, deviceType, runtime, noWait, phase, log, release, metroCheck } = args;
|
|
1316
1352
|
const viewer = resolveSimulatorAppFlag(opts.simulatorApp, args.physical, null);
|
|
1317
1353
|
if ("refusal" in viewer) return { failure: viewer.refusal };
|
|
1318
1354
|
const refusal = args.validateSelectors();
|
|
@@ -1327,6 +1363,11 @@ async function selectIosPlacement(args) {
|
|
|
1327
1363
|
noWait
|
|
1328
1364
|
});
|
|
1329
1365
|
phase("placement:", devicePlacementLine(placed.placement, placed.skipped));
|
|
1366
|
+
log?.(devicePlacementRecord({
|
|
1367
|
+
platform: "ios",
|
|
1368
|
+
fromFlag: opts.remote !== void 0,
|
|
1369
|
+
placed
|
|
1370
|
+
}));
|
|
1330
1371
|
if (placed.target && !release && !metroCheck) return { failure: {
|
|
1331
1372
|
code: "STIM_BAD_ARG",
|
|
1332
1373
|
message: "Hosted Debug runs require the local Metro supervisor; --no-metro-check cannot be used.",
|
|
@@ -1376,7 +1417,7 @@ function hostedIosBuildTarget(target) {
|
|
|
1376
1417
|
architecture: target.choice.architecture
|
|
1377
1418
|
} } : {};
|
|
1378
1419
|
}
|
|
1379
|
-
async function iosPlacementBudget(d, root, note, hosted, automatic) {
|
|
1420
|
+
async function iosPlacementBudget(d, root, note, hosted, automatic, simSnapshot) {
|
|
1380
1421
|
if (automatic) return {
|
|
1381
1422
|
...automatic,
|
|
1382
1423
|
refusal: hosted ? null : automatic.refusal
|
|
@@ -1386,7 +1427,8 @@ async function iosPlacementBudget(d, root, note, hosted, automatic) {
|
|
|
1386
1427
|
refusal: null
|
|
1387
1428
|
} : d.budgetGate({
|
|
1388
1429
|
root,
|
|
1389
|
-
note
|
|
1430
|
+
note,
|
|
1431
|
+
simSnapshot
|
|
1390
1432
|
});
|
|
1391
1433
|
}
|
|
1392
1434
|
function hostedIosMetroNote(hosted, settings, note, simulatorApp) {
|
|
@@ -2932,10 +2974,9 @@ async function planIos(opts, d, schemeRefusal) {
|
|
|
2932
2974
|
refusal: eas.missing
|
|
2933
2975
|
}), json);
|
|
2934
2976
|
}
|
|
2935
|
-
|
|
2936
|
-
if (remoteBackend) return refuse({
|
|
2977
|
+
if (iosRemote?.kind === "backend") return refuse({
|
|
2937
2978
|
code: "STIM_BAD_ARG",
|
|
2938
|
-
message: `ios.remote
|
|
2979
|
+
message: `ios.remote is ${iosRemote.backend}, whose simulator architecture --plan cannot read without a session.`,
|
|
2939
2980
|
remedy: "Run `stim ios` to build for the remote device, or unset ios.remote to plan the owned simulator."
|
|
2940
2981
|
});
|
|
2941
2982
|
const refusal = schemeRefusal(root, opts.scheme, isExpo);
|
|
@@ -2958,12 +2999,31 @@ async function planIos(opts, d, schemeRefusal) {
|
|
|
2958
2999
|
message: `Could not fingerprint ${root}: @expo/fingerprint produced no hash for it.`,
|
|
2959
3000
|
remedy: "Check the project native inputs and the @expo/fingerprint error above, then retry."
|
|
2960
3001
|
});
|
|
2961
|
-
const
|
|
3002
|
+
const keyArch = (remoteArch) => simulatorBuildArch({
|
|
2962
3003
|
physical: false,
|
|
2963
|
-
remoteArch
|
|
3004
|
+
remoteArch,
|
|
2964
3005
|
hostArch: d.hostSimulatorArch(),
|
|
2965
3006
|
configuration
|
|
2966
3007
|
});
|
|
3008
|
+
let arch = keyArch(null);
|
|
3009
|
+
let placement;
|
|
3010
|
+
if (iosRemote?.kind === "machine") {
|
|
3011
|
+
const planned = await planHostedDevice({
|
|
3012
|
+
root,
|
|
3013
|
+
slot,
|
|
3014
|
+
platform: "ios",
|
|
3015
|
+
machine: iosRemote.machine,
|
|
3016
|
+
selectors: hostedIosSelectors(resolveDeviceType(opts.deviceType, settings), resolveRuntime(opts.runtime, settings)),
|
|
3017
|
+
sameKey: (choice) => keyArch("runtime" in choice ? choice.architecture : null) === arch
|
|
3018
|
+
});
|
|
3019
|
+
if (planned.kind === "unknown") return refuse({
|
|
3020
|
+
code: "STIM_BAD_ARG",
|
|
3021
|
+
message: `ios.remote is ${iosRemote.machine}, and its simulator architecture is unknown here: ${planned.reason}.`,
|
|
3022
|
+
remedy: "Run `stim ios` to build for the remote device, or unset ios.remote to plan the owned simulator."
|
|
3023
|
+
});
|
|
3024
|
+
placement = planned.placement;
|
|
3025
|
+
if (planned.kind === "hosted" && "runtime" in planned.choice) arch = keyArch(planned.choice.architecture);
|
|
3026
|
+
}
|
|
2967
3027
|
const cacheKey = buildCacheKey("ios", fingerprint.hash, {
|
|
2968
3028
|
scheme: opts.scheme,
|
|
2969
3029
|
...configuration ? { configuration } : {},
|
|
@@ -2988,7 +3048,10 @@ async function planIos(opts, d, schemeRefusal) {
|
|
|
2988
3048
|
planPrebuild: d.planPrebuild,
|
|
2989
3049
|
note
|
|
2990
3050
|
});
|
|
2991
|
-
printPlan(
|
|
3051
|
+
printPlan(placement ? {
|
|
3052
|
+
...plan,
|
|
3053
|
+
placement
|
|
3054
|
+
} : plan, json);
|
|
2992
3055
|
}
|
|
2993
3056
|
//#endregion
|
|
2994
3057
|
//#region src/commands/ios.ts
|
|
@@ -3014,34 +3077,36 @@ function registerIos(program, deps = {}) {
|
|
|
3014
3077
|
await planIos(opts, d, (root, scheme, isExpo) => explicitSchemeRefusal(root, scheme, isExpo, d));
|
|
3015
3078
|
return;
|
|
3016
3079
|
}
|
|
3017
|
-
const
|
|
3018
|
-
const run = (progress) => runIos({
|
|
3080
|
+
const completion = await runIosOperation((deps.findProjectRoot ?? DEFAULT_DEPS.findProjectRoot)(process.cwd()), {
|
|
3019
3081
|
...opts,
|
|
3020
3082
|
waitConflict: waitFlagConflict(process.argv)
|
|
3021
|
-
}, deps
|
|
3022
|
-
const completion = root ? await withNativeBuildRun(root, {
|
|
3023
|
-
command: "ios",
|
|
3024
|
-
platform: "ios",
|
|
3025
|
-
slot: opts.slot ?? "default"
|
|
3026
|
-
}, async (claim) => {
|
|
3027
|
-
recordWorkspaceUse(root);
|
|
3028
|
-
const progress = startBuildProgress({
|
|
3029
|
-
root,
|
|
3030
|
-
platform: "ios",
|
|
3031
|
-
slot: opts.slot ?? "default",
|
|
3032
|
-
claim,
|
|
3033
|
-
note: (line) => writeNote(chalk.dim(line))
|
|
3034
|
-
});
|
|
3035
|
-
try {
|
|
3036
|
-
return await run(progress);
|
|
3037
|
-
} finally {
|
|
3038
|
-
progress.clear();
|
|
3039
|
-
}
|
|
3040
|
-
}, { write: (line) => writeNote(chalk.dim(phaseLine("lock", line))) }) : await run();
|
|
3083
|
+
}, deps);
|
|
3041
3084
|
if (!completion) process.exit(runCancellation() ? 130 : 1);
|
|
3042
3085
|
else if (completion.uploadsAbandoned) exitAfterFlush(0);
|
|
3043
3086
|
});
|
|
3044
3087
|
}
|
|
3088
|
+
function runIosOperation(root, opts = {}, deps = {}, onFailure = () => {}) {
|
|
3089
|
+
const run = (progress) => runIos(root, opts, deps, progress, onFailure);
|
|
3090
|
+
return root ? withNativeBuildRun(root, {
|
|
3091
|
+
command: "ios",
|
|
3092
|
+
platform: "ios",
|
|
3093
|
+
slot: opts.slot ?? "default"
|
|
3094
|
+
}, async (claim) => {
|
|
3095
|
+
recordWorkspaceUse(root);
|
|
3096
|
+
const progress = startBuildProgress({
|
|
3097
|
+
root,
|
|
3098
|
+
platform: "ios",
|
|
3099
|
+
slot: opts.slot ?? "default",
|
|
3100
|
+
claim,
|
|
3101
|
+
note: (line) => writeNote(chalk.dim(line))
|
|
3102
|
+
});
|
|
3103
|
+
try {
|
|
3104
|
+
return await run(progress);
|
|
3105
|
+
} finally {
|
|
3106
|
+
progress.clear();
|
|
3107
|
+
}
|
|
3108
|
+
}, { write: (line) => writeNote(chalk.dim(phaseLine("lock", line))) }) : run();
|
|
3109
|
+
}
|
|
3045
3110
|
function unlessCancelled(result) {
|
|
3046
3111
|
if (!result.ok || !runCancellation()) return result;
|
|
3047
3112
|
return {
|
|
@@ -3137,7 +3202,7 @@ function iosSlotDeps(d, slot) {
|
|
|
3137
3202
|
}
|
|
3138
3203
|
return d;
|
|
3139
3204
|
}
|
|
3140
|
-
async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
3205
|
+
async function runIos(projectRoot, opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS, onFailure) {
|
|
3141
3206
|
const slot = validateDeviceSlot(opts.slot);
|
|
3142
3207
|
let d = iosSlotDeps({
|
|
3143
3208
|
...DEFAULT_DEPS,
|
|
@@ -3160,12 +3225,15 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3160
3225
|
message,
|
|
3161
3226
|
remedy
|
|
3162
3227
|
}));
|
|
3163
|
-
|
|
3228
|
+
onFailure({
|
|
3229
|
+
code: "STIM_NO_PROJECT",
|
|
3230
|
+
message,
|
|
3231
|
+
remedy
|
|
3232
|
+
});
|
|
3164
3233
|
return null;
|
|
3165
3234
|
};
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
const root = foundRoot;
|
|
3235
|
+
if (!projectRoot) return refuseProject(NO_PROJECT_REFUSAL);
|
|
3236
|
+
const root = projectRoot;
|
|
3169
3237
|
const projectProblem = appProjectProblem(root);
|
|
3170
3238
|
if (projectProblem) return refuseProject(projectProblem);
|
|
3171
3239
|
try {
|
|
@@ -3180,7 +3248,11 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3180
3248
|
message,
|
|
3181
3249
|
remedy: "Check that STIM_HOME is writable and has free space."
|
|
3182
3250
|
}));
|
|
3183
|
-
|
|
3251
|
+
onFailure({
|
|
3252
|
+
code,
|
|
3253
|
+
message,
|
|
3254
|
+
remedy: "Check that STIM_HOME is writable and has free space."
|
|
3255
|
+
});
|
|
3184
3256
|
return null;
|
|
3185
3257
|
}
|
|
3186
3258
|
const logsDir = workspaceLogsDir$1(root);
|
|
@@ -3193,6 +3265,7 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3193
3265
|
slot
|
|
3194
3266
|
}
|
|
3195
3267
|
}), progress);
|
|
3268
|
+
setRemoteLogSink((record) => logWriter().write(record));
|
|
3196
3269
|
let leaseHandle = null;
|
|
3197
3270
|
let stopLeaseSignals = null;
|
|
3198
3271
|
const releaseLease = () => {
|
|
@@ -3262,7 +3335,16 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3262
3335
|
...reclaimed.length ? { reclaimed } : {}
|
|
3263
3336
|
}));
|
|
3264
3337
|
writer?.close?.();
|
|
3265
|
-
|
|
3338
|
+
onFailure({
|
|
3339
|
+
code,
|
|
3340
|
+
message,
|
|
3341
|
+
remedy,
|
|
3342
|
+
lines,
|
|
3343
|
+
logPath,
|
|
3344
|
+
build,
|
|
3345
|
+
lease,
|
|
3346
|
+
setup
|
|
3347
|
+
});
|
|
3266
3348
|
return null;
|
|
3267
3349
|
};
|
|
3268
3350
|
const settingsRepoRoot = d.repoRoot(root);
|
|
@@ -3375,7 +3457,8 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3375
3457
|
}),
|
|
3376
3458
|
noWait: deviceSlotWaitMs === 0,
|
|
3377
3459
|
note,
|
|
3378
|
-
phase
|
|
3460
|
+
phase,
|
|
3461
|
+
log: (entry) => logWriter().write(entry)
|
|
3379
3462
|
});
|
|
3380
3463
|
if ("failure" in remoteSelection) return fail(remoteSelection.failure);
|
|
3381
3464
|
devicePlacement = remoteSelection.devicePlacement;
|
|
@@ -3404,7 +3487,8 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3404
3487
|
if ("failure" in connected) return fail(connected.failure);
|
|
3405
3488
|
const hostedTarget = connected.target;
|
|
3406
3489
|
try {
|
|
3407
|
-
const
|
|
3490
|
+
const simSnapshot = createIosSimSnapshot();
|
|
3491
|
+
const budget = await iosPlacementBudget(d, root, note, Boolean(hostedTarget), remoteSelection.budget, simSnapshot);
|
|
3408
3492
|
reclaimed = budget.reclaimed;
|
|
3409
3493
|
if (budget.refusal) return fail(budget.refusal);
|
|
3410
3494
|
const backendConnection = await connectIosBackend(root, remoteBackend, opts.deviceType, d);
|
|
@@ -3489,7 +3573,8 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3489
3573
|
const capacity = d.checkDeviceCapacity({
|
|
3490
3574
|
platform: "ios",
|
|
3491
3575
|
project: proj,
|
|
3492
|
-
max: limits.maxDevices
|
|
3576
|
+
max: limits.maxDevices,
|
|
3577
|
+
sims: () => simSnapshot.read().filter((sim) => sim.available)
|
|
3493
3578
|
});
|
|
3494
3579
|
if (capacity) {
|
|
3495
3580
|
if (capacity.code === "STIM_AT_CAPACITY") d.recordCapacityRefusal({
|
|
@@ -3533,7 +3618,8 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3533
3618
|
simulatorApp
|
|
3534
3619
|
},
|
|
3535
3620
|
note,
|
|
3536
|
-
out: note
|
|
3621
|
+
out: note,
|
|
3622
|
+
simSnapshot
|
|
3537
3623
|
});
|
|
3538
3624
|
} catch (e) {
|
|
3539
3625
|
return fail(ownedSimFailure(e));
|
|
@@ -3864,4 +3950,4 @@ async function runIos(opts = {}, overrides = {}, progress = NO_BUILD_PROGRESS) {
|
|
|
3864
3950
|
}
|
|
3865
3951
|
}
|
|
3866
3952
|
//#endregion
|
|
3867
|
-
export {
|
|
3953
|
+
export { replaceCollector as a, lastBuildRecord as c, collectorEntry as i, writeLastBuild as l, registerIos as n, cacheDescription as o, runIosOperation as r, iosFacts as s, iosCommand as t };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { h as shortUdid, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CBtzyIgF.mjs";
|
|
2
|
+
import { D as schemesFromInfoPlist, T as pickDevClientScheme } from "./app-install-D-PUENug.mjs";
|
|
3
|
+
import { t as devClientScheme } from "./dev-client-CLnIH02x.mjs";
|
|
4
|
+
import { n as ensureWorkspaceStorageSafely } from "./native-runtime-D_603JiC.mjs";
|
|
5
|
+
import { a as replaceCollector, c as lastBuildRecord, i as collectorEntry, l as writeLastBuild, n as registerIos, o as cacheDescription, r as runIosOperation, s as iosFacts, t as iosCommand } from "./ios-CPdkoKaa.mjs";
|
|
6
|
+
import { d as podAction, g as resolveRuntime, i as deviceLabel, l as isReleaseConfiguration, m as resolveDeviceType, n as buildLogFile, p as resolveConfiguration, s as iosConfigurationSetting, t as appNameFromPath } from "./support-BaayeYCf.mjs";
|
|
7
|
+
export { appNameFromPath, buildLogFile, cacheDescription, collectorEntry, iosCommand as default, devClientScheme, deviceLabel, ensureWorkspaceStorageSafely, formatDuration, iosConfigurationSetting, iosFacts, isReleaseConfiguration, lastBuildRecord, phaseLine, pickDevClientScheme, podAction, registerIos, replaceCollector, resolveConfiguration, resolveDeviceType, resolveRuntime, runIosOperation, schemesFromInfoPlist, shortHash, shortUdid, writeLastBuild };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { t as getExecutor } from "./exec-DWhCZDGm.mjs";
|
|
2
|
+
import { i as INSTALL_ERROR } from "./app-install-D-PUENug.mjs";
|
|
3
|
+
import { n as TOOL_ERROR_PREFIX } from "./ios-device-Bn7jWDB1.mjs";
|
|
4
4
|
import { mkdtempSync, readFileSync, rmSync } from "node:fs";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { tmpdir } from "node:os";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-
|
|
1
|
+
import { a as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-C59dqG-Z.mjs";
|
|
2
2
|
import { HOSTED_METRO_REQUESTS_KEY, hostedMetroRequests, hostedNativeRecords, isJsonObject, parseHostedNativePlacement, unreadableHostedNative } from "@stim-cli/core/state";
|
|
3
3
|
//#region src/device-host/ios-state.ts
|
|
4
4
|
function readHostedNative(root, platform, slot) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
2
|
-
import { s as isAppLaunchError } from "./command-output-
|
|
3
|
-
import { o as readNdjsonGenerations } from "./ndjson-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { t as getExecutor } from "./exec-DWhCZDGm.mjs";
|
|
2
|
+
import { s as isAppLaunchError } from "./command-output-CBtzyIgF.mjs";
|
|
3
|
+
import { o as readNdjsonGenerations } from "./ndjson-LGZAMsqa.mjs";
|
|
4
|
+
import { f as deviceShellArg, n as ANDROID_DISABLE_AUTO_LAUNCH_EXTRA, s as androidAppProcess } from "./app-install-D-PUENug.mjs";
|
|
5
|
+
import { t as DEV_MENU_LAUNCH_ARGS } from "./ios-device-Bn7jWDB1.mjs";
|
|
6
6
|
import { join } from "node:path";
|
|
7
7
|
//#region src/engine/app-readiness.ts
|
|
8
8
|
const APP_READINESS_TIMEOUT_MS = 3e4;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { o as findCommandWorkspace } from "./project-
|
|
5
|
-
import { r as readWorkspaceState$1, x as workspaceLogsDir$1 } from "./workspace-state-
|
|
6
|
-
import { n as agentDeviceLiveness, u as readAgentDeviceRecords } from "./activity-
|
|
7
|
-
import { n as SOURCES, t as LEVELS } from "./ndjson-
|
|
8
|
-
import { o as connectHost } from "./hosted-client-
|
|
9
|
-
import { n as pullHostedNativeLogs, t as pullHostedMacosLogs } from "./hosted-logs-
|
|
10
|
-
import "./
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
1
|
+
import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
|
+
import { f as refuseNoProject, l as phaseLine, v as launchErrorPreview } from "./command-output-CBtzyIgF.mjs";
|
|
3
|
+
import { H as projectDeviceSlots, V as parseDeviceSlotOption, _ as loadConfig$1, g as isPathPrefix } from "./config-CgYMahz7.mjs";
|
|
4
|
+
import { o as findCommandWorkspace } from "./project-C3ChRLZy.mjs";
|
|
5
|
+
import { r as readWorkspaceState$1, x as workspaceLogsDir$1 } from "./workspace-state-C59dqG-Z.mjs";
|
|
6
|
+
import { n as agentDeviceLiveness, u as readAgentDeviceRecords } from "./activity-BxnkDZDi.mjs";
|
|
7
|
+
import { n as SOURCES, t as LEVELS } from "./ndjson-LGZAMsqa.mjs";
|
|
8
|
+
import { o as connectHost } from "./hosted-client-C-rMtppF.mjs";
|
|
9
|
+
import { n as pullHostedNativeLogs, t as pullHostedMacosLogs } from "./hosted-logs-DN8Iz4mJ.mjs";
|
|
10
|
+
import { n as readHostedIos, t as readHostedAndroid } from "./ios-state-B2pES6Vs.mjs";
|
|
11
|
+
import { i as captureWorkspaceCrashes, t as errorDiagnostics } from "./error-diagnostics-BRXOqDzG.mjs";
|
|
12
|
+
import "./hosted-macos-B-wEjlwG.mjs";
|
|
13
13
|
import { t as watchStdoutReader } from "./stdout-reader-C8yjre1x.mjs";
|
|
14
14
|
import { realpathSync } from "node:fs";
|
|
15
15
|
import { dirname, join, relative, resolve, sep } from "node:path";
|
|
@@ -251,7 +251,7 @@ const LEVEL_COLOURS = {
|
|
|
251
251
|
fatal: chalk.bgRed
|
|
252
252
|
};
|
|
253
253
|
function logsCommand(program) {
|
|
254
|
-
program.command("logs").description("Query this workspace's merged NDJSON log timeline (bundler, client, device, build, agent actions, maintenance). Prints and exits; an existing timeline with nothing matching is a successful, empty result. Use --follow to stream.").option("--slot <name>", "Only this device slot's records, plus the shared Metro and app client records once it has launched", parseDeviceSlotOption).option("--source <s...>", "Only these sources: metro, client, device, build, agent, maintenance, or all").option("--level <l>", `Minimum level: ${LEVELS.join(", ")}`).option("--since <d>", "Only records newer than this, e.g. 30s, 5m, 2h").option("--grep <re>", "Only records whose message matches this regular expression").option("--tail <n>", "Only the last n matching records").option("--errors", "Errors and fatals since the last marker, from metro, client and build, plus confirmed native app-crash reports and stim web browser errors. Add --source maintenance for maintenance failures, or --source device or --source all for general device errors.").option("--follow", "Keep streaming new records until interrupted").option("--json", "Emit the raw records, one per line (valid NDJSON; zero matches is zero bytes, exit 0)").action(async (opts) => {
|
|
254
|
+
program.command("logs").description("Query this workspace's merged NDJSON log timeline (bundler, client, device, build, agent actions, maintenance). Prints and exits; an existing timeline with nothing matching is a successful, empty result. Use --follow to stream.").option("--slot <name>", "Only this device slot's records, plus the shared Metro and app client records once it has launched", parseDeviceSlotOption).option("--source <s...>", "Only these sources: metro, client, device, build, agent, maintenance, placement, or all").option("--level <l>", `Minimum level: ${LEVELS.join(", ")}`).option("--since <d>", "Only records newer than this, e.g. 30s, 5m, 2h").option("--grep <re>", "Only records whose message matches this regular expression").option("--tail <n>", "Only the last n matching records").option("--errors", "Errors and fatals since the last marker, from metro, client and build, plus confirmed native app-crash reports and stim web browser errors. Add --source maintenance for maintenance failures, or --source device or --source all for general device errors.").option("--follow", "Keep streaming new records until interrupted").option("--json", "Emit the raw records, one per line (valid NDJSON; zero matches is zero bytes, exit 0)").action(async (opts) => {
|
|
255
255
|
const root = findCommandWorkspace(process.cwd());
|
|
256
256
|
if (!root) {
|
|
257
257
|
refuseNoProject({ json: false });
|