stim 1.20.2 → 1.21.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 +88 -8
- package/dist/acquire-artifact-CD4lbiWE.mjs +153 -0
- package/dist/act-DHAw2A2S.mjs +2667 -0
- package/dist/activity-BzVfHSrY.mjs +1376 -0
- package/dist/{agent-device-usage-output-Dzgv6lgR.mjs → agent-device-usage-output-zh1vhbLp.mjs} +21 -65
- package/dist/{android-HqP1_vB_.mjs → android-BEJ8Jpl7.mjs} +2 -2
- package/dist/{android-DCKZrNvV.mjs → android-BLgbNqox.mjs} +128 -78
- package/dist/{android-Dlzxshgp.mjs → android-CV_GCELZ.mjs} +5 -5
- package/dist/{android-Mz_Inn3w.mjs → android-DUYkNF4u.mjs} +184 -102
- package/dist/{android-cas-Bl-cLJBk.mjs → android-cas-Ct5b1xCK.mjs} +7 -6
- package/dist/android-cas-compiler.mjs +2 -2
- package/dist/android-project-BCAAmMwz.mjs +12 -0
- package/dist/api.d.mts +740 -8
- package/dist/api.mjs +585 -1
- package/dist/{artifact-HSwkIWEQ.mjs → artifact-B8T3S5gi.mjs} +223 -201
- package/dist/{artifact-D3czlUvT.mjs → artifact-DAuZ-FNU.mjs} +158 -148
- package/dist/{browser-web-CA-F1GQo.mjs → browser-web-QQzVjz3O.mjs} +26 -24
- package/dist/budget-Bs6SxxzO.mjs +9154 -0
- package/dist/{build-DYDbfkk5.mjs → build-CoPzQRNw.mjs} +144 -96
- package/dist/build-cache-DmyR9Zzc.mjs +602 -0
- package/dist/build-plan-CaFskB7_.mjs +188 -0
- package/dist/{cache-manifest-XH-fvDUj.mjs → cache-manifest-DkkqguoK.mjs} +2 -2
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{ccache-zdKiYQ3E.mjs → ccache-BJRZ9pG3.mjs} +10 -9
- package/dist/{cdp-Dq_ypAlJ.mjs → cdp-CWmIUMbw.mjs} +18 -5
- package/dist/{chrome-BnzZMqsR.mjs → chrome-B6tfCta1.mjs} +7 -4
- package/dist/{cli-CLP3diBm.mjs → cli-0DYf8QhQ.mjs} +20 -20
- package/dist/cli.mjs +1 -1
- package/dist/client-B7QVOlCr.d.mts +253 -0
- package/dist/client-UXD70ZbM.mjs +1406 -0
- package/dist/collector-run.d.mts +4 -40
- package/dist/collector-run.mjs +9 -8
- package/dist/{command-output-BTy8hZ0F.mjs → command-output-B1UrjZHL.mjs} +1 -1
- package/dist/config-CYcBF478.mjs +949 -0
- package/dist/{created-devices-Dzd5C2LF.mjs → created-devices-CqeBlrEn.mjs} +3 -3
- package/dist/{dependency-state-DG0p31-y.mjs → dependency-state-BbKQW83h.mjs} +20 -5
- package/dist/{detached-entry-B9C_zeQC.mjs → detached-entry-DFRyG1_o.mjs} +1 -1
- package/dist/{dev-client-DAWVIGBu.mjs → dev-client-UOeESKm6.mjs} +2 -2
- package/dist/device-DCxH7_By.mjs +1068 -0
- package/dist/{device-BECOiufl.mjs → device-ExJq8Ei7.mjs} +35 -35
- package/dist/{device-capacity-CBUAcRyQ.mjs → device-capacity-CMlqEcvw.mjs} +43 -13
- package/dist/device-host-worker.mjs +65 -61
- package/dist/{device-ios-COSi6oS1.mjs → device-ios-DRUeKaFV.mjs} +48 -45
- package/dist/{device-lease-run-Cw2M4z51.mjs → device-lease-run-C8raGFoP.mjs} +14 -26
- package/dist/{device-pool-Bf-pOhSw.mjs → device-pool-DMRpVX9a.mjs} +5 -5
- package/dist/doctor-BLHCYxzi.mjs +2 -0
- package/dist/{doctor-kfMBnUw6.mjs → doctor-DTvaDOda.mjs} +281 -317
- package/dist/{doctor-CB8oZKCk.mjs → doctor-Dhqebm0q.mjs} +183 -91
- package/dist/doctor-fingerprint.mjs +19 -0
- package/dist/{doctor-watchman-BRyV2adA.mjs → doctor-watchman-Cv1F10Kj.mjs} +40 -21
- package/dist/{eas-build-JyfqyHfC.mjs → eas-build-BomfRnFT.mjs} +53 -20
- package/dist/{build-plan-B7SZsc2N.mjs → eas-fallback-DJwZpy0c.mjs} +26 -208
- package/dist/{watchman-CPQFZLXY.mjs → eas-session-ledger-op6A54yi.mjs} +229 -11
- package/dist/{error-diagnostics-BR677IDM.mjs → error-diagnostics-Bf0rZvG9.mjs} +172 -82
- package/dist/exec-H20xSg2T.d.mts +65 -0
- package/dist/exec-_UbtCQcG.mjs +750 -0
- package/dist/gc-C-WwL0yi.mjs +3 -0
- package/dist/{gc-qWOMdnER.mjs → gc-_-dCXdyL.mjs} +584 -796
- package/dist/git-C3iTsJaZ.mjs +73 -0
- package/dist/{guide-G9cAbVAc.mjs → guide-Yqwt2bd6.mjs} +941 -269
- package/dist/{hosted-android-C3MHGld1.mjs → hosted-android-Bw-honsd.mjs} +8 -6
- package/dist/{hosted-client-ZEKpS9vw.mjs → hosted-client-DB_gBPfY.mjs} +34 -19
- package/dist/{hosted-ios-l-o3iM9J.mjs → hosted-ios-CUvOf4Vr.mjs} +1 -1
- package/dist/{hosted-logs-EzQM7-3Z.mjs → hosted-logs-DL_P5AdN.mjs} +77 -43
- package/dist/{hosted-macos-BACVAVqE.mjs → hosted-macos-QI141yKk.mjs} +21 -17
- package/dist/{hosted-native-A4s1QPXe.mjs → hosted-native-Ksyjgzq-.mjs} +30 -21
- package/dist/idle-BVeRGroT.d.mts +24 -0
- package/dist/{idle-shutdown-DtxhPTKe.mjs → idle-shutdown-DaKmZi0z.mjs} +11 -10
- package/dist/{ios-BwVCF7oA.mjs → ios-CQ68hG9s.mjs} +8 -8
- package/dist/{ios-RkW4pnQf.mjs → ios-CpByZy12.mjs} +140 -80
- package/dist/{ios-device-B5veSDDQ.mjs → ios-device-CXGP1bsD.mjs} +1 -1
- package/dist/{ios-device-D7pi2Sca.mjs → ios-device-CwFMehUS.mjs} +51 -26
- package/dist/{ios-project-K9hY_Jab.mjs → ios-project-WuwwBdvW.mjs} +13 -13
- package/dist/{ios-nOLJGVdy.mjs → ios-qNJt4dFm.mjs} +1 -1
- package/dist/ios-signing-DTTIChGs.mjs +489 -0
- package/dist/{ios-state-CBLe1xYw.mjs → ios-state-DvFX-K_l.mjs} +1 -1
- package/dist/{ios-Ce7bc7br.mjs → ios-ubFsBzwq.mjs} +129 -86
- package/dist/{js-swap-Bb3nsS07.mjs → js-swap-Cc1dttps.mjs} +53 -26
- package/dist/{launch-F4sOqAhB.mjs → launch-CD1yVc7U.mjs} +91 -90
- package/dist/{launch-C3qJ6Agb.mjs → launch-Zq2mOSDy.mjs} +82 -541
- package/dist/logs-BS00Anxf.mjs +352 -0
- package/dist/logs-CMm05HxN.mjs +255 -0
- package/dist/{macos-D7uDvO-z.mjs → macos-B65--pPd.mjs} +1 -1
- package/dist/{macos-Ch5VJmcS.mjs → macos-C-0qJ6zq.mjs} +225 -212
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +122 -247
- package/dist/{metro-DnCEjCxs.mjs → metro-DEXpIhHC.mjs} +67 -12
- package/dist/{metro-gateway-CX9Xlkq2.mjs → metro-gateway-BMJNlj3E.mjs} +20 -12
- package/dist/{named-ports-4WopRPg-.mjs → named-ports-BWTzt6mu.mjs} +8 -63
- package/dist/native-android-JACyjTZs.mjs +844 -0
- package/dist/{native-gradle-inputs-BsLRrl7u.mjs → native-gradle-inputs-Bep9JcSF.mjs} +128 -140
- package/dist/native-inputs-TRTTTRxt.mjs +91 -0
- package/dist/native-run-DY_RLx3C.mjs +277 -0
- package/dist/{native-runtime-k8dTIrbK.mjs → native-runtime-Dg1Q7tfF.mjs} +9 -8
- package/dist/{native-xcode-inputs-CykopJdM.mjs → native-xcode-inputs-CB2iQeWq.mjs} +27 -18
- package/dist/{native-xcode-ios-Bbf30Gm0.mjs → native-xcode-ios-CXX39F7o.mjs} +96 -47
- package/dist/{ndjson-GOnbyvso.mjs → ndjson-CgE_o3Dl.mjs} +3 -3
- package/dist/offload-worker.d.mts +1 -46
- package/dist/offload-worker.mjs +197 -66
- package/dist/{ownership-DCtw_2IA.mjs → ownership-DEmM5vhh.mjs} +3 -3
- package/dist/{page-DRHy329N.mjs → page-CPaHeYqj.mjs} +7 -4
- package/dist/paths-BsJMoPP2.mjs +12 -0
- package/dist/paths-DQtTgsBf.mjs +42 -0
- package/dist/{placement-log-MOfPVgaM.mjs → placement-log-BqGbTa61.mjs} +5 -5
- package/dist/{plan-placement-V0TdzYXp.mjs → plan-placement-Bwj-IjY1.mjs} +6 -6
- package/dist/{ports-DdSUicVo.mjs → ports-D-MmCTdv.mjs} +3 -3
- package/dist/prebuild-uD_ipCxF.mjs +449 -0
- package/dist/{project-_phNIJfs.mjs → project-BZNjmW_8.mjs} +65 -37
- package/dist/{pull-request-CQ8sPbZa.mjs → pull-request-Lfetn8Kr.mjs} +2 -2
- package/dist/pull-request-zjCSAryH.d.mts +120 -0
- package/dist/pull-requests.d.mts +1 -119
- package/dist/pull-requests.mjs +1 -1
- package/dist/{react-native-android-CM1XRDwv.mjs → react-native-android-DuzH0cn3.mjs} +74 -48
- package/dist/{gradle-DSrXb6lG.mjs → react-native-build-rhk4smwQ.mjs} +292 -15
- package/dist/react-native-doctor-CQpuIMso.mjs +234 -0
- package/dist/{react-native-ios-Dhq_eiYQ.mjs → react-native-ios-Bhq1rJeV.mjs} +46 -28
- package/dist/{recordings-D0d5aQt0.mjs → recordings-DYteQSu4.mjs} +12 -9
- package/dist/{reload-C8JhxjSh.mjs → reload-CmTRFJaX.mjs} +93 -47
- package/dist/reload-DzjSl5P_.mjs +2 -0
- package/dist/{remote-BiR6aYjy.mjs → remote-ByYkXdGD.mjs} +15 -10
- package/dist/result-DNiS-tTP.mjs +434 -0
- package/dist/{run-BtPgpKks.mjs → run-D23HmJMs.mjs} +4 -5
- package/dist/selection-CSl9i5qU.mjs +619 -0
- package/dist/{server-bare-R2m_gsH8.mjs → server-bare-CxTrvDg8.mjs} +3 -4
- package/dist/{server-command-CTtCkmcQ.mjs → server-command-CtzloH3v.mjs} +14 -7
- package/dist/server-expo-C-90EhcG.mjs +2 -0
- package/dist/{server-expo-DsguMGUF.mjs → server-expo-DT_F_uVI.mjs} +50 -9
- package/dist/{settings-B717odTD.mjs → settings-CsJDEXgK.mjs} +234 -24
- package/dist/{settings-vk3mJGSm.d.mts → settings-DkdmlelE.d.mts} +6 -4
- package/dist/settings-T1gtc3bf.mjs +114 -0
- package/dist/settings-write-HyVZ8eQ8.mjs +359 -0
- package/dist/settings.schema.json +163 -16
- package/dist/{simslim-CCr3rE-A.mjs → simslim-Cgk17SXV.mjs} +14 -12
- package/dist/{slot-launch-DPt0m9Nd.mjs → slot-launch-DF8VfT64.mjs} +15 -20
- package/dist/{spawn-entry-Dcb7sDUz.mjs → spawn-entry-jw19m8Nl.mjs} +0 -1
- package/dist/stage-BIS0ydsV.mjs +183 -0
- package/dist/{start-BWqzODpb.mjs → start-7lpH7hmN.mjs} +63 -44
- package/dist/{start-TXeMmmO2.mjs → start-RChynRDp.mjs} +1 -1
- package/dist/{state-D1Icyjlu.mjs → state-C4ZtUisW.mjs} +40 -13
- package/dist/{state-CG_OFoaA.mjs → state-XMziexv2.mjs} +3 -2
- package/dist/{stats-BoY5sEPU.mjs → stats-53T7OTb9.mjs} +7 -13
- package/dist/stats-report-BFfMpWWF.mjs +16 -0
- package/dist/{status-WgFbkRzj.mjs → status-BL7jVyAB.mjs} +535 -447
- package/dist/status-CSi6tlRq.mjs +2 -0
- package/dist/{status-BTA7kKiQ.mjs → status-DqEUSSxs.mjs} +6 -4
- package/dist/{status-watch-C23ILtf9.mjs → status-watch-GDCfqpTE.mjs} +187 -22
- package/dist/status-worker.d.mts +1 -0
- package/dist/status-worker.mjs +19 -0
- package/dist/stim-desktop-C12we7lz.mjs +112 -0
- package/dist/{stop-DR6VoDIk.mjs → stop-Bk_1qiV6.mjs} +2 -2
- package/dist/{stop-BNmBMi1F.mjs → stop-CPzlM1L-.mjs} +138 -98
- package/dist/{stop-DPEhunlw.mjs → stop-D7h6jAXQ.mjs} +11 -10
- package/dist/supervisor-run.d.mts +8 -17
- package/dist/supervisor-run.mjs +63 -27
- package/dist/{support-DMTqj3Hm.mjs → support-67vraa1Q.mjs} +18 -11
- package/dist/{support-CwjbFs9H.mjs → support-Dlu37g6H.mjs} +12 -12
- package/dist/{swiftpm-macos-DRNVJWlb.mjs → swiftpm-macos-p8WZbxKU.mjs} +35 -24
- package/dist/toolchain-DhKwp9iI.mjs +2 -0
- package/dist/toolchain-Hp9sCpK4.mjs +873 -0
- package/dist/{trigger-CigAYjeL.mjs → trigger-BAahxUPq.mjs} +20 -5
- package/dist/trigger-Bf3uDcpv.mjs +2 -0
- package/dist/{warm-progress-BuY-Fvfn.mjs → warm-progress-BHX5r0Ei.mjs} +250 -156
- package/dist/{web-BDBMxDpx.mjs → web-CJmIj6AI.mjs} +18 -13
- package/dist/web-DknQETPs.mjs +2 -0
- package/dist/web-run.mjs +11 -12
- package/dist/windows-report.d.mts +1 -0
- package/dist/windows-report.mjs +18 -0
- package/dist/windows-report.ps1 +43 -0
- package/dist/workspace-process-lock-1_1OoVW5.mjs +57 -0
- package/dist/{workspace-state-DJt_MMvf.mjs → workspace-state-Cjuigeeu.mjs} +62 -58
- package/dist/{workspaces-C36s2jb9.mjs → workspaces-BccMFmGQ.mjs} +1188 -1079
- package/dist/worktree-CK2MpJW5.mjs +2 -0
- package/dist/{worktree-CgvJYJ-Q.mjs → worktree-DQ6Zi2Mv.mjs} +304 -53
- package/dist/xcode-Zlx3qjEs.mjs +896 -0
- package/package.json +7 -5
- package/shim/android-optimizations.gradle +7 -5
- package/dist/activity-BSV745Kz.mjs +0 -629
- package/dist/api-qvOzWyfO.mjs +0 -154
- package/dist/api-run.mjs +0 -294
- package/dist/app-install-BIKtMfPq.mjs +0 -896
- package/dist/artifact-lifecycle-DzPpBYvK.mjs +0 -30
- package/dist/budget-f7516Zk0.mjs +0 -4106
- package/dist/build-facts-DcLv2HSd.d.mts +0 -111
- package/dist/cancellation-C_22VQTH.mjs +0 -24
- package/dist/client-qQAaXSUs.mjs +0 -1771
- package/dist/config-BYDxlMY3.mjs +0 -562
- package/dist/device-DuiPJQSn.mjs +0 -290
- package/dist/device-lease-BX1sJQ2E.mjs +0 -1224
- package/dist/device-remote-xRT0Vmo9.mjs +0 -1272
- package/dist/eas-session-ledger-Cm0Gwq2F.mjs +0 -207
- package/dist/exec-DqKo9GKJ.mjs +0 -268
- package/dist/git-DDfFzkMm.mjs +0 -45
- package/dist/launch-verify-B6Q8hZP-.mjs +0 -428
- package/dist/logs-BGrEUaEs.mjs +0 -383
- package/dist/miss-reason-mKzZ4VvN.mjs +0 -238
- package/dist/native-android-D5qc3-_v.mjs +0 -226
- package/dist/ndjson-Du3j0AQ9.d.mts +0 -17
- package/dist/plan-C4TjdPsR.mjs +0 -260
- package/dist/prebuild-DYbucPXy.mjs +0 -212
- package/dist/preview-78a9kR_-.mjs +0 -1011
- package/dist/react-native-build-CtCccJtb.mjs +0 -239
- package/dist/react-native-doctor-CfRnFfjs.mjs +0 -78
- package/dist/remote-cache-OyOyVIS3.mjs +0 -526
- package/dist/result-CaJg5Iat.mjs +0 -186
- package/dist/server-expo-Bigriskl.mjs +0 -2
- package/dist/settings-BORNaaCO.mjs +0 -402
- package/dist/spawn-claims-DVS5RkMS.mjs +0 -72
- package/dist/stage-KNTQopqv.mjs +0 -157
- package/dist/stim-desktop-BzBN2Em2.mjs +0 -63
- package/dist/tailnet-Dh-qiYzG.mjs +0 -265
- package/dist/toolchain-BFkAcstd.mjs +0 -2
- package/dist/toolchain-DxSsNssu.mjs +0 -1657
- package/dist/trigger-9_USgmxz.mjs +0 -2
- package/dist/web-Dq-i3wzJ.mjs +0 -2
- package/dist/worktree-DpLdCHga.mjs +0 -2
- package/dist/{api-run.d.mts → doctor-fingerprint.d.mts} +0 -0
- package/dist/{errors-DzkMYh8Q.mjs → errors-ccaPc4ox.mjs} +2 -2
|
@@ -1,217 +1,226 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { i as
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { t as
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
1
|
+
import { d as withDrainingCancellation, p as process_identity_exports, s as spawnDeclared, t as getExecutor } from "./exec-_UbtCQcG.mjs";
|
|
2
|
+
import { d as workspaceDir, l as workspaceAgentDeviceDir, m as workspaceLogsDir$1, n as ensureWorkspaceStorage } from "./paths-DQtTgsBf.mjs";
|
|
3
|
+
import { E as upsertProject, u as getConcurrencyLimits } from "./config-CYcBF478.mjs";
|
|
4
|
+
import { l as phaseLine } from "./command-output-B1UrjZHL.mjs";
|
|
5
|
+
import { d as writeWorkspaceState, i as recordWorkspaceUse } from "./workspace-state-Cjuigeeu.mjs";
|
|
6
|
+
import { J as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, en as throwIfCancelled, et as settingShapeErrors } from "./settings-CsJDEXgK.mjs";
|
|
7
|
+
import { f as projectRegistry, i as findProjectRoot$1, s as ownedDeviceLabel } from "./project-BZNjmW_8.mjs";
|
|
8
|
+
import { i as macosProcess, n as macosDir, o as requiredMacosRecord, r as macosLogFile } from "./state-XMziexv2.mjs";
|
|
9
|
+
import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
|
|
10
|
+
import { B as recordFinishedBuild, Fn as processContext, H as tapBuildLog, In as runProcessOperation, M as NO_BUILD_PROGRESS, V as startBuildProgress, z as recordBuildPhase } from "./budget-Bs6SxxzO.mjs";
|
|
11
|
+
import { d as runCancellationSignal, f as withNativeBuildRun } from "./native-run-DY_RLx3C.mjs";
|
|
12
|
+
import { F as acquireBuildSlot, L as releaseBuildSlot } from "./workspaces-BccMFmGQ.mjs";
|
|
13
|
+
import { D as sanitizeDeviceLabel } from "./ios-CpByZy12.mjs";
|
|
14
|
+
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-1_1OoVW5.mjs";
|
|
15
|
+
import { c as offloadPlacement, f as setRemoteLogSink, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-UXD70ZbM.mjs";
|
|
16
|
+
import { a as requireLocalBuild, i as parseBuildMachineOption, r as namedBuildMachine, s as resolveBuildPlacement, t as OffloadRefusal } from "./selection-CSl9i5qU.mjs";
|
|
17
|
+
import { l as connectHost } from "./hosted-client-DB_gBPfY.mjs";
|
|
18
|
+
import { t as placeHostedMacos } from "./hosted-macos-QI141yKk.mjs";
|
|
19
|
+
import { r as stopMacosAppHeld, t as stopBundleInstances } from "./stop-D7h6jAXQ.mjs";
|
|
20
|
+
import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
|
|
21
|
+
import { t as buildPlacementRecord } from "./placement-log-BqGbTa61.mjs";
|
|
22
|
+
import { i as validateInfoPlist, t as resolveBundleExtras } from "./stage-BIS0ydsV.mjs";
|
|
23
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
24
|
+
import { closeSync, existsSync, openSync, promises, realpathSync, renameSync } from "node:fs";
|
|
23
25
|
import { join } from "node:path";
|
|
26
|
+
import { LOG_ROTATE_BYTES, ambientEnv } from "@stim-cli/core";
|
|
24
27
|
import { machineCapacity, readMacosRecord, validHostedAppArguments } from "@stim-cli/core/state";
|
|
25
|
-
import { LOG_ROTATE_BYTES } from "@stim-cli/core";
|
|
26
|
-
import { createHash, randomUUID } from "node:crypto";
|
|
27
28
|
//#region src/macos/build.ts
|
|
28
|
-
async function buildMacosBundle({ root, recipe, bundle, bundleId, displayName, scratch, writer, note, record, buildMachine, progress = NO_BUILD_PROGRESS }) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
src: "build",
|
|
37
|
-
platform: "macos",
|
|
38
|
-
level: "info",
|
|
39
|
-
msg
|
|
40
|
-
});
|
|
41
|
-
note(msg);
|
|
42
|
-
};
|
|
43
|
-
let offloadFallback = null;
|
|
44
|
-
let asked = [];
|
|
45
|
-
let failedMachine;
|
|
46
|
-
const fallBack = (reason) => {
|
|
47
|
-
writer.write(buildPlacementRecord({
|
|
48
|
-
platform: "macos",
|
|
49
|
-
buildMachine,
|
|
50
|
-
candidates: asked,
|
|
51
|
-
event: "placement_fallback",
|
|
52
|
-
fallback: {
|
|
53
|
-
code: failedMachine ? "offload-failed" : "no-remote-mac-took-it",
|
|
54
|
-
reason,
|
|
55
|
-
machine: failedMachine
|
|
56
|
-
}
|
|
29
|
+
async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displayName, scratch, writer, note, record, buildMachine, progress = NO_BUILD_PROGRESS }) {
|
|
30
|
+
const signal = runCancellationSignal(context) ?? context.signal;
|
|
31
|
+
return withDrainingCancellation(context, signal, async () => {
|
|
32
|
+
throwIfCancelled(signal, "macOS build");
|
|
33
|
+
if (record) record.buildMachine = buildMachine;
|
|
34
|
+
setRemoteLogSink(context, (entry) => writer.write({
|
|
35
|
+
...entry,
|
|
36
|
+
platform: "macos"
|
|
57
37
|
}));
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
throw
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
localEnabled,
|
|
93
|
-
machines: machines.length,
|
|
94
|
-
here,
|
|
95
|
-
unsupported: null,
|
|
96
|
-
selected: buildMachine
|
|
38
|
+
const write = (msg) => {
|
|
39
|
+
writer.write({
|
|
40
|
+
src: "build",
|
|
41
|
+
platform: "macos",
|
|
42
|
+
level: "info",
|
|
43
|
+
msg
|
|
44
|
+
});
|
|
45
|
+
note(msg);
|
|
46
|
+
};
|
|
47
|
+
let offloadFallback = null;
|
|
48
|
+
let asked = [];
|
|
49
|
+
let failedMachine;
|
|
50
|
+
const fallBack = (reason) => {
|
|
51
|
+
writer.write(buildPlacementRecord({
|
|
52
|
+
platform: "macos",
|
|
53
|
+
buildMachine,
|
|
54
|
+
candidates: asked,
|
|
55
|
+
event: "placement_fallback",
|
|
56
|
+
fallback: {
|
|
57
|
+
code: failedMachine ? "offload-failed" : "no-remote-mac-took-it",
|
|
58
|
+
reason,
|
|
59
|
+
machine: failedMachine
|
|
60
|
+
}
|
|
61
|
+
}));
|
|
62
|
+
if (namedBuildMachine(buildMachine)) throw new OffloadRefusal(buildMachine, reason);
|
|
63
|
+
requireLocalBuild(buildMachine);
|
|
64
|
+
offloadFallback = reason;
|
|
65
|
+
if (record) record.offloadFallback = reason;
|
|
66
|
+
writer.write({
|
|
67
|
+
src: "build",
|
|
68
|
+
platform: "macos",
|
|
69
|
+
level: "warn",
|
|
70
|
+
event: "offload_failed",
|
|
71
|
+
msg: reason
|
|
97
72
|
});
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
73
|
+
write(`${reason} -> building here`);
|
|
74
|
+
write(`placement: here (${reason})`);
|
|
75
|
+
};
|
|
76
|
+
await promises.mkdir(macosDir(root), { recursive: true });
|
|
77
|
+
const staging = await promises.mkdtemp(join(macosDir(root), "staging-"));
|
|
78
|
+
const promote = (path) => {
|
|
79
|
+
const backup = join(staging, "previous.app");
|
|
80
|
+
const previous = existsSync(bundle);
|
|
81
|
+
if (previous) renameSync(bundle, backup);
|
|
82
|
+
try {
|
|
83
|
+
renameSync(path, bundle);
|
|
84
|
+
} catch (error) {
|
|
85
|
+
if (previous) renameSync(backup, bundle);
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
let choice = null;
|
|
90
|
+
try {
|
|
91
|
+
try {
|
|
92
|
+
const { mode, machines, localEnabled } = buildPlacementCandidates(buildMachine);
|
|
93
|
+
const here = machineCapacity();
|
|
94
|
+
const placement = offloadPlacement({
|
|
102
95
|
mode,
|
|
96
|
+
localEnabled,
|
|
97
|
+
machines: machines.length,
|
|
103
98
|
here,
|
|
104
|
-
|
|
105
|
-
selected: buildMachine
|
|
106
|
-
note: (line) => write(`offload: ${line}`),
|
|
107
|
-
onCandidates: (each) => asked = each
|
|
99
|
+
unsupported: null,
|
|
100
|
+
selected: buildMachine
|
|
108
101
|
});
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
|
|
102
|
+
if (placement.offload) {
|
|
103
|
+
const chosen = await chooseBuildMachine({
|
|
104
|
+
projectRoot: root,
|
|
105
|
+
target: await recipe.offload.target(),
|
|
106
|
+
mode,
|
|
107
|
+
here,
|
|
108
|
+
machines,
|
|
109
|
+
selected: buildMachine,
|
|
110
|
+
note: (line) => write(`offload: ${line}`),
|
|
111
|
+
onCandidates: (each) => asked = each
|
|
112
|
+
});
|
|
113
|
+
if (typeof chosen === "string") throw new Error(chosen);
|
|
114
|
+
choice = chosen;
|
|
115
|
+
failedMachine = chosen.machine;
|
|
116
|
+
writer.write(buildPlacementRecord({
|
|
117
|
+
platform: "macos",
|
|
118
|
+
buildMachine,
|
|
119
|
+
candidates: asked,
|
|
120
|
+
chose: {
|
|
121
|
+
machine: chosen.machine,
|
|
122
|
+
reason: `${placement.reason}${placementLoad(chosen)}`
|
|
123
|
+
}
|
|
124
|
+
}));
|
|
125
|
+
write(`placement: ${choice.machine} (${placement.reason}${placementLoad(choice)})`);
|
|
126
|
+
const outcome = await offloadBuild({
|
|
127
|
+
choice,
|
|
128
|
+
request: recipe.offload.request(bundleId),
|
|
129
|
+
stagingDir: join(staging, "offload"),
|
|
130
|
+
onPhase: (phase, line) => note(remotePhaseText(phase, line, choice.machine)),
|
|
131
|
+
onEnter: (phase) => {
|
|
132
|
+
if (record && [
|
|
133
|
+
"compile",
|
|
134
|
+
"build",
|
|
135
|
+
"prebuild",
|
|
136
|
+
"pods"
|
|
137
|
+
].includes(phase)) record.builtOn = choice.machine;
|
|
138
|
+
progress.place({
|
|
139
|
+
host: choice.machine,
|
|
140
|
+
phase
|
|
141
|
+
});
|
|
142
|
+
progress.step(phase === "fetch" ? "install" : "compile");
|
|
143
|
+
},
|
|
144
|
+
onRecord: (entry) => writer.write({
|
|
145
|
+
...entry,
|
|
146
|
+
offloadedTo: choice.machine
|
|
147
|
+
}),
|
|
148
|
+
note: write
|
|
149
|
+
});
|
|
150
|
+
progress.place(null);
|
|
151
|
+
if (!outcome.ok) throw new Error(`${outcome.machine}: ${outcome.reason}`);
|
|
152
|
+
progress.step("install");
|
|
153
|
+
await recipe.validateFetched(outcome.artifactPath, bundleId, displayName);
|
|
154
|
+
throwIfCancelled(signal, "macOS build");
|
|
155
|
+
promote(outcome.artifactPath);
|
|
156
|
+
if (record) {
|
|
157
|
+
record.offloadedTo = outcome.machine;
|
|
158
|
+
record.builtOn = outcome.machine;
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
bundleId,
|
|
162
|
+
offloadedTo: outcome.machine,
|
|
163
|
+
offloadFallback: null,
|
|
164
|
+
handoff: outcome.handoff ?? null
|
|
165
|
+
};
|
|
166
|
+
}
|
|
112
167
|
writer.write(buildPlacementRecord({
|
|
113
168
|
platform: "macos",
|
|
114
169
|
buildMachine,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
reason: `${placement.reason}${placementLoad(chosen)}`
|
|
170
|
+
stays: {
|
|
171
|
+
code: placement.code,
|
|
172
|
+
reason: placement.reason
|
|
119
173
|
}
|
|
120
174
|
}));
|
|
121
|
-
write(`placement:
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
175
|
+
write(`placement: here (${placement.reason})`);
|
|
176
|
+
} catch (error) {
|
|
177
|
+
throwIfCancelled(signal, "macOS build");
|
|
178
|
+
fallBack(error instanceof Error ? error.message : String(error));
|
|
179
|
+
} finally {
|
|
180
|
+
if (choice) closeOffload(choice);
|
|
181
|
+
}
|
|
182
|
+
let slot;
|
|
183
|
+
try {
|
|
184
|
+
slot = await acquireBuildSlot({
|
|
185
|
+
signal,
|
|
186
|
+
automatic: buildMachine === "auto",
|
|
187
|
+
max: getConcurrencyLimits().maxBuilds,
|
|
188
|
+
root,
|
|
189
|
+
logFile: writer.file,
|
|
190
|
+
out: note,
|
|
191
|
+
waitingFor: (info) => progress.waitingFor(info, "build-slot")
|
|
192
|
+
});
|
|
193
|
+
requireLocalBuild(buildMachine);
|
|
194
|
+
if (record) record.builtOn = "here";
|
|
195
|
+
progress.step("compile");
|
|
196
|
+
const bin = await recipe.compile({
|
|
197
|
+
scratch,
|
|
198
|
+
writer,
|
|
199
|
+
note
|
|
145
200
|
});
|
|
146
|
-
progress.place(null);
|
|
147
|
-
if (!outcome.ok) throw new Error(`${outcome.machine}: ${outcome.reason}`);
|
|
148
201
|
progress.step("install");
|
|
149
|
-
recipe.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
record.builtOn = outcome.machine;
|
|
154
|
-
}
|
|
202
|
+
const staged = join(staging, `${recipe.product}.app`);
|
|
203
|
+
await recipe.stage(bin, staged, bundleId, displayName);
|
|
204
|
+
throwIfCancelled(signal, "macOS build");
|
|
205
|
+
promote(staged);
|
|
155
206
|
return {
|
|
156
207
|
bundleId,
|
|
157
|
-
offloadedTo:
|
|
158
|
-
offloadFallback
|
|
159
|
-
handoff:
|
|
208
|
+
offloadedTo: null,
|
|
209
|
+
offloadFallback,
|
|
210
|
+
handoff: null
|
|
160
211
|
};
|
|
212
|
+
} finally {
|
|
213
|
+
releaseBuildSlot(slot);
|
|
161
214
|
}
|
|
162
|
-
writer.write(buildPlacementRecord({
|
|
163
|
-
platform: "macos",
|
|
164
|
-
buildMachine,
|
|
165
|
-
stays: {
|
|
166
|
-
code: placement.code,
|
|
167
|
-
reason: placement.reason
|
|
168
|
-
}
|
|
169
|
-
}));
|
|
170
|
-
write(`placement: here (${placement.reason})`);
|
|
171
|
-
} catch (error) {
|
|
172
|
-
fallBack(error instanceof Error ? error.message : String(error));
|
|
173
|
-
} finally {
|
|
174
|
-
if (choice) closeOffload(choice);
|
|
175
|
-
}
|
|
176
|
-
let slot;
|
|
177
|
-
try {
|
|
178
|
-
slot = await acquireBuildSlot({
|
|
179
|
-
automatic: buildMachine === "auto",
|
|
180
|
-
max: getConcurrencyLimits().maxBuilds,
|
|
181
|
-
root,
|
|
182
|
-
logFile: writer.file,
|
|
183
|
-
out: note,
|
|
184
|
-
waitingFor: (info) => progress.waitingFor(info, "build-slot")
|
|
185
|
-
});
|
|
186
|
-
requireLocalBuild(buildMachine);
|
|
187
|
-
if (record) record.builtOn = "here";
|
|
188
|
-
progress.step("compile");
|
|
189
|
-
const bin = await recipe.compile({
|
|
190
|
-
scratch,
|
|
191
|
-
writer,
|
|
192
|
-
note
|
|
193
|
-
});
|
|
194
|
-
progress.step("install");
|
|
195
|
-
const staged = join(staging, `${recipe.product}.app`);
|
|
196
|
-
recipe.stage(bin, staged, bundleId, displayName);
|
|
197
|
-
promote(staged);
|
|
198
|
-
return {
|
|
199
|
-
bundleId,
|
|
200
|
-
offloadedTo: null,
|
|
201
|
-
offloadFallback,
|
|
202
|
-
handoff: null
|
|
203
|
-
};
|
|
204
215
|
} finally {
|
|
205
|
-
|
|
216
|
+
try {
|
|
217
|
+
await promises.rm(staging, {
|
|
218
|
+
recursive: true,
|
|
219
|
+
force: true
|
|
220
|
+
});
|
|
221
|
+
} catch {}
|
|
206
222
|
}
|
|
207
|
-
}
|
|
208
|
-
try {
|
|
209
|
-
rmSync(staging, {
|
|
210
|
-
recursive: true,
|
|
211
|
-
force: true
|
|
212
|
-
});
|
|
213
|
-
} catch {}
|
|
214
|
-
}
|
|
223
|
+
});
|
|
215
224
|
}
|
|
216
225
|
//#endregion
|
|
217
226
|
//#region src/macos/app-name.ts
|
|
@@ -234,19 +243,19 @@ function workspaceAppName(root, product) {
|
|
|
234
243
|
}
|
|
235
244
|
//#endregion
|
|
236
245
|
//#region src/macos/plan.ts
|
|
237
|
-
function planMacos(root, buildMachineFlag) {
|
|
246
|
+
async function planMacos(context, root, buildMachineFlag) {
|
|
238
247
|
if (process.platform !== "darwin") throw new Error("stim macos requires a Mac with Swift installed.");
|
|
239
248
|
root = realpathSync(root);
|
|
240
249
|
if (!existsSync(join(root, "Package.swift"))) throw new Error("Run stim macos from the directory containing Package.swift.");
|
|
241
|
-
const { context, settings } =
|
|
250
|
+
const { context: projectContext, settings } = await resolveProjectSettingsAsync(root);
|
|
242
251
|
const [shape] = settingShapeErrors(settings);
|
|
243
252
|
if (shape) throw new Error(`${shape} ${SETTING_SHAPE_REMEDY}`);
|
|
244
253
|
const selected = resolveBuildPlacement(buildMachineFlag);
|
|
245
254
|
if (selected.failure) throw Object.assign(new Error(selected.failure.message), selected.failure);
|
|
246
255
|
const macos = settings.macos;
|
|
247
256
|
if (!macos?.product || !macos.infoPlist) throw Object.assign(/* @__PURE__ */ new Error("Set macos.product and macos.infoPlist explicitly in .stim.json. See stim guide macos."), { code: "STIM_BAD_ARG" });
|
|
248
|
-
validateInfoPlist(root, macos.product, macos.infoPlist);
|
|
249
|
-
resolveBundleExtras(root,
|
|
257
|
+
await validateInfoPlist(context, root, macos.product, macos.infoPlist);
|
|
258
|
+
resolveBundleExtras(root, projectContext.repoRoot ?? root, macos.resources, macos.assetCatalog);
|
|
250
259
|
return {
|
|
251
260
|
platform: "macos",
|
|
252
261
|
product: macos.product,
|
|
@@ -268,7 +277,7 @@ function planMacos(root, buildMachineFlag) {
|
|
|
268
277
|
* Builds the Debug app and launches it here, or with `remote` on that approved remote Mac. A named host never falls
|
|
269
278
|
* back to a local launch.
|
|
270
279
|
*/
|
|
271
|
-
async function runMacos(root, note = console.error, remote, buildMachineFlag) {
|
|
280
|
+
async function runMacos(context, root, note = console.error, remote, buildMachineFlag) {
|
|
272
281
|
const backend = remote?.trim().toLowerCase();
|
|
273
282
|
if (backend === "eas" || backend === "proxy") throw Object.assign(/* @__PURE__ */ new Error("stim macos --remote takes a remote Mac name from remote.machines; macOS has no eas or proxy backend."), { code: "STIM_BAD_ARG" });
|
|
274
283
|
if (backend === "auto") throw Object.assign(/* @__PURE__ */ new Error("stim macos --remote auto is not available yet: automatic placement has not shipped. Name a hosting Mac from remote.machines."), { code: "STIM_BAD_ARG" });
|
|
@@ -279,15 +288,18 @@ async function runMacos(root, note = console.error, remote, buildMachineFlag) {
|
|
|
279
288
|
code: "STIM_NO_PROJECT",
|
|
280
289
|
remedy: operation.problem.remedy
|
|
281
290
|
});
|
|
282
|
-
const { settings } =
|
|
291
|
+
const { settings } = await resolveProjectSettingsAsync(root, {
|
|
292
|
+
env: context.env,
|
|
293
|
+
signal: runCancellationSignal(context) ?? context.signal
|
|
294
|
+
});
|
|
283
295
|
const [shape] = settingShapeErrors(settings);
|
|
284
296
|
if (shape) throw new Error(`${shape} ${SETTING_SHAPE_REMEDY}`);
|
|
285
297
|
const selected = resolveBuildPlacement(buildMachineFlag);
|
|
286
298
|
if (selected.failure) throw Object.assign(new Error(selected.failure.message), selected.failure);
|
|
287
299
|
const buildMachine = selected.selected;
|
|
288
|
-
const macos = (await operation.load()).prepare(settings);
|
|
300
|
+
const macos = await (await operation.load()).prepare(context, settings);
|
|
289
301
|
ensureWorkspaceStorage(root);
|
|
290
|
-
return withNativeBuildRun(root, {
|
|
302
|
+
return withNativeBuildRun(context, root, {
|
|
291
303
|
command: "macos",
|
|
292
304
|
platform: "macos"
|
|
293
305
|
}, async (claim) => {
|
|
@@ -305,7 +317,7 @@ async function runMacos(root, note = console.error, remote, buildMachineFlag) {
|
|
|
305
317
|
if (remote) (await connectHost(remote)).connection.close();
|
|
306
318
|
if (!previous?.host) await stopMacosAppHeld(root);
|
|
307
319
|
upsertProject(root, {});
|
|
308
|
-
recordWorkspaceUse(root);
|
|
320
|
+
recordWorkspaceUse(root, /* @__PURE__ */ new Date(), context.env, context.cwd);
|
|
309
321
|
const bundle = join(macosDir(root), `${macos.product}.app`);
|
|
310
322
|
const record = {
|
|
311
323
|
product: macos.product,
|
|
@@ -325,7 +337,7 @@ async function runMacos(root, note = console.error, remote, buildMachineFlag) {
|
|
|
325
337
|
hostLaunched: previous.hostLaunched ?? false
|
|
326
338
|
} : {}
|
|
327
339
|
};
|
|
328
|
-
const handoff = await buildBundle(root, macos, record, remote !== void 0, note, progress);
|
|
340
|
+
const handoff = await buildBundle(context, root, macos, record, remote !== void 0, note, progress);
|
|
329
341
|
progress.step("launch");
|
|
330
342
|
const launched = () => {
|
|
331
343
|
try {
|
|
@@ -335,7 +347,7 @@ async function runMacos(root, note = console.error, remote, buildMachineFlag) {
|
|
|
335
347
|
}
|
|
336
348
|
};
|
|
337
349
|
if (!remote) {
|
|
338
|
-
const here = await launchHere(root, record, note);
|
|
350
|
+
const here = await launchHere(context, root, record, note);
|
|
339
351
|
launched();
|
|
340
352
|
return here;
|
|
341
353
|
}
|
|
@@ -386,12 +398,12 @@ async function runMacos(root, note = console.error, remote, buildMachineFlag) {
|
|
|
386
398
|
}
|
|
387
399
|
}, {
|
|
388
400
|
external: true,
|
|
389
|
-
|
|
401
|
+
declareSpawnsFor: context,
|
|
390
402
|
ownerPurpose: "build and launch macOS app"
|
|
391
403
|
}).finally(() => progress.clear());
|
|
392
404
|
}, { write: note });
|
|
393
405
|
}
|
|
394
|
-
async function buildBundle(root, recipe, record, hosted, note, progress = NO_BUILD_PROGRESS) {
|
|
406
|
+
async function buildBundle(context, root, recipe, record, hosted, note, progress = NO_BUILD_PROGRESS) {
|
|
395
407
|
const started = Date.parse(record.build.startedAt);
|
|
396
408
|
const scratch = join(macosDir(root), "build");
|
|
397
409
|
writeWorkspaceState(root, { macos: record });
|
|
@@ -401,6 +413,7 @@ async function buildBundle(root, recipe, record, hosted, note, progress = NO_BUI
|
|
|
401
413
|
const bundleId = hosted ? base : `${base}.stim.${createHash("sha256").update(root).digest("hex").slice(0, 12)}`;
|
|
402
414
|
const displayName = workspaceAppName(root, record.product);
|
|
403
415
|
const built = await buildMacosBundle({
|
|
416
|
+
context,
|
|
404
417
|
root,
|
|
405
418
|
recipe,
|
|
406
419
|
bundle: record.bundle,
|
|
@@ -486,12 +499,12 @@ async function waitForLaunchServices(record, deadline) {
|
|
|
486
499
|
}
|
|
487
500
|
return "timeout";
|
|
488
501
|
}
|
|
489
|
-
async function launchHere(root, record, note) {
|
|
502
|
+
async function launchHere(context, root, record, note) {
|
|
490
503
|
await stopBundleInstances(root);
|
|
491
504
|
const fd = openSync(join(workspaceLogsDir$1(root), "macos-supervisor.log"), "a");
|
|
492
505
|
let child;
|
|
493
506
|
try {
|
|
494
|
-
child = spawnDeclared(() => getExecutor().spawn(process.execPath, [
|
|
507
|
+
child = spawnDeclared(context, () => getExecutor().spawn(process.execPath, [
|
|
495
508
|
spawnEntry("macos-run"),
|
|
496
509
|
root,
|
|
497
510
|
record.launchId
|
|
@@ -504,7 +517,7 @@ async function launchHere(root, record, note) {
|
|
|
504
517
|
fd
|
|
505
518
|
],
|
|
506
519
|
env: {
|
|
507
|
-
...
|
|
520
|
+
...ambientEnv(),
|
|
508
521
|
STIM_BACKGROUND_LAUNCH: "1"
|
|
509
522
|
}
|
|
510
523
|
}));
|
|
@@ -544,12 +557,12 @@ function launchPayload(root, record) {
|
|
|
544
557
|
}
|
|
545
558
|
function macosCommand(program) {
|
|
546
559
|
program.command("macos").description("Build and launch an owned Swift Package macOS Debug app.").option("--remote-build <value>", "Build on auto, local, or one named machine; a name refuses without fallback", parseBuildMachineOption).option("--json", "print one launch or plan payload; build output goes to stderr").option("--plan", "validate the next SwiftPM Debug build without building or launching").option("--remote <machine>", "run it on this approved remote Mac from remote.machines").action(async (options) => {
|
|
547
|
-
const root = findProjectRoot(process.cwd());
|
|
560
|
+
const root = findProjectRoot$1(process.cwd());
|
|
548
561
|
if (options.plan) {
|
|
549
562
|
try {
|
|
550
563
|
if (!root) throw new Error("Run stim macos from the Swift Package directory.");
|
|
551
564
|
if (options.remote !== void 0) throw Object.assign(/* @__PURE__ */ new Error("--remote selects a launch host and does not apply to --plan."), { code: "STIM_BAD_ARG" });
|
|
552
|
-
const plan = planMacos(root, options.remoteBuild);
|
|
565
|
+
const plan = await planMacos(processContext(root, new AbortController().signal), root, options.remoteBuild);
|
|
553
566
|
if (options.json) console.log(JSON.stringify(plan));
|
|
554
567
|
else {
|
|
555
568
|
console.log(phaseLine("plan", `macos ${plan.product}: SwiftPM Debug build, then stage and launch`));
|
|
@@ -569,7 +582,7 @@ function macosCommand(program) {
|
|
|
569
582
|
return;
|
|
570
583
|
}
|
|
571
584
|
if (!root) throw new Error("Run stim macos from the Swift Package directory.");
|
|
572
|
-
const record = await runMacos(root, console.error, options.remote, options.remoteBuild).catch((error) => {
|
|
585
|
+
const { value: record } = await runProcessOperation(root, (context) => runMacos(context, root, console.error, options.remote, options.remoteBuild)).catch((error) => {
|
|
573
586
|
const remedy = error.remedy;
|
|
574
587
|
if (typeof remedy === "string") console.error(`remedy: ${remedy}`);
|
|
575
588
|
throw error;
|
package/dist/macos-run.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as runMacosSupervisor, t as logLines } from "./run-
|
|
1
|
+
import { n as runMacosSupervisor, t as logLines } from "./run-D23HmJMs.mjs";
|
|
2
2
|
export { logLines, runMacosSupervisor };
|