stim 1.35.0 → 1.37.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 -1
- package/dist/{acquire-artifact-0E_iw7Rf.mjs → acquire-artifact-zBUbPuDP.mjs} +20 -4
- package/dist/{act-CyxFP8Vj.mjs → act-BGAFjY8f.mjs} +21 -21
- package/dist/{activity-BQpJpAjA.mjs → activity-CdpXXSq2.mjs} +6 -6
- package/dist/{agent-device-usage-output-BoOC3ZF9.mjs → agent-device-usage-output-D0582GHy.mjs} +5 -5
- package/dist/{android-YRb1UzSy.mjs → android-BBwLpxRh.mjs} +51 -40
- package/dist/{android-B2DSKg-A.mjs → android-BPBARZMR.mjs} +2 -2
- package/dist/{android-Iq0M2t2d.mjs → android-CGctfYpv.mjs} +7 -7
- package/dist/{android-CjcJE7uA.mjs → android-CaSsewbu.mjs} +5 -5
- package/dist/android-cas-compiler.mjs +1 -1
- package/dist/{android-cas-Dhcjkys1.mjs → android-cas-p8gna03x.mjs} +4 -4
- package/dist/{android-image-DFk26aY6.mjs → android-image-DY8KxK2m.mjs} +3 -3
- package/dist/{android-project-DhO6el8N.d.mts → android-project-v_1nej_x.d.mts} +3 -1
- package/dist/api.d.mts +30 -9
- package/dist/api.mjs +36 -28
- package/dist/{apk-signed-tail-CPpA-3vu.mjs → apk-signed-tail-BMv-KLcB.mjs} +2 -2
- package/dist/{artifact-2NIRz6SC.mjs → artifact-BrNZTZtA.mjs} +44 -15
- package/dist/{artifact-BG4h_WTC.mjs → artifact-BsimBWxG.mjs} +37 -15
- package/dist/{artifact-platform-DqCWUieN.mjs → artifact-platform-BaGL1i1X.mjs} +1 -1
- package/dist/{auto-placement-CBdWa87P.mjs → auto-placement-CFKNrWLU.mjs} +7 -7
- package/dist/{browser-web-CNlRugJv.mjs → browser-web-YFsgCP_a.mjs} +15 -15
- package/dist/{build-CNE3Wo5-.mjs → build-DIhuoozz.mjs} +77 -28
- package/dist/{build-cache-_fkewiwH.mjs → build-cache-Dt-dhCJF.mjs} +6 -6
- package/dist/{build-plan-BSgR9yKo.mjs → build-plan-CgnLDof9.mjs} +7 -7
- package/dist/{cache-manifest-8JX9S1QJ.mjs → cache-manifest-BO0TIcPV.mjs} +1 -1
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{cdp-C216kOAn.mjs → cdp-CgT47_9A.mjs} +1 -1
- package/dist/{chrome-C8sC5tdl.mjs → chrome-DL5znvmo.mjs} +1 -1
- package/dist/{cli-DK24VzHi.mjs → cli-BGUrlSH3.mjs} +21 -20
- package/dist/cli.mjs +1 -1
- package/dist/{client-Dy0eJJtz.mjs → client-DU6dnGX1.mjs} +7 -7
- package/dist/collector-run.mjs +7 -7
- package/dist/{command-output-CGxrQ3Bd.mjs → command-output-ByEmIwur.mjs} +1 -1
- package/dist/{config-BW0fAtoK.mjs → config-CNmN-ndb.mjs} +61 -12
- package/dist/{dependencies-IVl2Ga2D.mjs → dependencies-BozoTBqa.mjs} +102 -64
- package/dist/{dependency-state-mL5g4H6K.mjs → dependency-state-BQeC4FVn.mjs} +2 -2
- package/dist/{detached-entry-tfrgGVWb.mjs → detached-entry-VqFeEE9W.mjs} +1 -1
- package/dist/{dev-client-DDApoVvd.mjs → dev-client-3SQzMRXZ.mjs} +2 -2
- package/dist/{device-p_cp8IzW.mjs → device-BIg1iExg.mjs} +11 -11
- package/dist/{device-mOFYiHiw.mjs → device-DGMvzoZZ.mjs} +13 -13
- package/dist/{device-android-C-biM49_.mjs → device-android-CBat355q.mjs} +9 -9
- package/dist/{device-capacity-C0PiTyRb.mjs → device-capacity-DWUOvY13.mjs} +19 -19
- package/dist/device-host-worker.mjs +16 -16
- package/dist/{device-pool-nsMvt2X2.mjs → device-pool-B8IqZKqm.mjs} +3 -3
- package/dist/{device-provision-BYYJuRKZ.mjs → device-provision-DWAoSKEw.mjs} +10 -10
- package/dist/{doctor-RosbBfTV.mjs → doctor-Bknt0121.mjs} +24 -24
- package/dist/{doctor-BptE4PaK.mjs → doctor-CPzwqcXY.mjs} +15 -15
- package/dist/{doctor-BBAb8NLe.mjs → doctor-CxgR5vPi.mjs} +1 -1
- package/dist/{doctor-fingerprint-DqWvIhMb.mjs → doctor-fingerprint-Bo4z8YNP.mjs} +1 -1
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-watchman-CKOnCINh.mjs → doctor-watchman-CPE4C8KV.mjs} +5 -5
- package/dist/{eas-build-BxJdzQnF.mjs → eas-build-CwOXKJwa.mjs} +4 -4
- package/dist/{eas-fallback-DU2WDF8r.mjs → eas-fallback-Cnb12a50.mjs} +6 -6
- package/dist/{eas-session-ledger-DCUfh6m7.mjs → eas-session-ledger-TE1miVz5.mjs} +6 -6
- package/dist/{error-diagnostics-D6wlK-yX.mjs → error-diagnostics-CXTT3bYC.mjs} +10 -10
- package/dist/{exec-CGuDzt40.mjs → exec-L37dbiIb.mjs} +7 -1
- package/dist/{gc-BUkonUfz.mjs → gc-0jdcnDHs.mjs} +19 -19
- package/dist/{gc-CvMEytXz.mjs → gc-1ZLq1djg.mjs} +2 -2
- package/dist/{guide-BWozWG7D.mjs → guide-COxIANZu.mjs} +179 -86
- package/dist/{hosted-android-y6K3DKQT.mjs → hosted-android-D8JbIzgC.mjs} +4 -4
- package/dist/{hosted-client-Bb89P6an.mjs → hosted-client-BLwuXEZS.mjs} +7 -7
- package/dist/{hosted-logs-DYPsnWMF.mjs → hosted-logs-BWEQNJx_.mjs} +7 -7
- package/dist/{hosted-logs-sync-DfUJ2GpF.mjs → hosted-logs-sync-uWSrH2mf.mjs} +5 -5
- package/dist/{hosted-macos-DsEzYVY_.mjs → hosted-macos-BnCYAv1y.mjs} +6 -6
- package/dist/{hosted-native-C9xQYYFb.mjs → hosted-native-OBT2sJxn.mjs} +8 -8
- package/dist/{ios-Qam0bT9n.mjs → ios-2Qr4_Zu2.mjs} +1 -1
- package/dist/{ios-BCKxjpRp.mjs → ios-Bjz7aPLy.mjs} +8 -8
- package/dist/{ios-BdZdNsAj.mjs → ios-BveW7qK1.mjs} +16 -6
- package/dist/{ios-FhMkDfNC.mjs → ios-CGyx4PA7.mjs} +44 -34
- package/dist/{ios-device-DMOnaH5n.mjs → ios-device-ByrDWSpC.mjs} +3 -3
- package/dist/{ios-device-DLdEDWJj.mjs → ios-device-ygijU78G.mjs} +1 -1
- package/dist/{ios-project-PXBDoaii.mjs → ios-project-XHg87vyQ.mjs} +7 -7
- package/dist/{ios-signing-CCFNjjWU.mjs → ios-signing-CRYQ1W42.mjs} +3 -3
- package/dist/{ios-state-CWsBysyN.mjs → ios-state-enWc5P6U.mjs} +1 -1
- package/dist/{js-swap-07ikLRJJ.mjs → js-swap-C6vl3vEd.mjs} +60 -13
- package/dist/{launch-CTq5gBim.mjs → launch-f3RnbFW5.mjs} +48 -28
- package/dist/{lightened-DikgC3-S.mjs → lightened-Cdfmo8MO.mjs} +5 -5
- package/dist/{logs-YDMfEohb.mjs → logs-DAjxBF3c.mjs} +6 -6
- package/dist/{logs-DwI3Rkpf.mjs → logs-x3em2-oI.mjs} +7 -7
- package/dist/{macos-BoNM-l6f.mjs → macos-D_LAseN9.mjs} +22 -22
- package/dist/{macos-C_e9f5-5.mjs → macos-ZfpWlzBO.mjs} +1 -1
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +6 -6
- package/dist/{metro-B5PVz0Wv.mjs → metro-TIQ1Wft-.mjs} +4 -4
- package/dist/{metro-request-2LmFpC1z.mjs → metro-request-DcUxyaq8.mjs} +2 -2
- package/dist/{named-ports-CA0nB9Yw.mjs → named-ports-BfEMi9bK.mjs} +3 -3
- package/dist/{native-android-Mv4YTrVN.mjs → native-android-COOrNDk2.mjs} +18 -18
- package/dist/{native-gradle-artifact-inputs-C_TU6wPq.mjs → native-gradle-artifact-inputs-B4Mwydmf.mjs} +5 -5
- package/dist/{native-runtime-oDqT4UES.mjs → native-runtime-UxUBU8up.mjs} +6 -6
- package/dist/{native-source-ChAGj7R1.mjs → native-source-D2ZfiQ6U.mjs} +1 -1
- package/dist/{native-xcode-inputs-DsozghTX.mjs → native-xcode-inputs-DUv7Q3ok.mjs} +3 -3
- package/dist/{native-xcode-ios-UXnH9NRY.mjs → native-xcode-ios-DXcteLVi.mjs} +18 -19
- package/dist/offload-worker.d.mts +1 -1
- package/dist/offload-worker.mjs +22 -22
- package/dist/{operation-exec-DKlBcKAL.mjs → operation-exec-DNynwpqO.mjs} +1 -1
- package/dist/{ownership-hC7xvvxF.mjs → ownership-CQTg6v1d.mjs} +3 -3
- package/dist/{page-Dj8IqvGM.mjs → page-CoN9al_x.mjs} +2 -2
- package/dist/{phone-reverses-B9WyCBKQ.mjs → phone-reverses-CHtco460.mjs} +4 -4
- package/dist/{placement-log-D0DZLcJk.mjs → placement-log-oQnELAvQ.mjs} +1 -1
- package/dist/{plan-placement-DqmLrWoX.mjs → plan-placement-45EOlIG1.mjs} +6 -6
- package/dist/{ports-C1_1Qgdy.mjs → ports-DKO7EUNt.mjs} +3 -3
- package/dist/{prebuild-BptrXmh_.mjs → prebuild-BKkj3OyL.mjs} +12 -12
- package/dist/{project-Dqqj3IkW.mjs → project-BCtQz48d.mjs} +16 -16
- package/dist/{pull-request-BpMTNkMB.mjs → pull-request-m8cMZ3aE.mjs} +2 -2
- package/dist/pull-requests.mjs +1 -1
- package/dist/{react-native-android-Bsm_o4A8.mjs → react-native-android-MI4ktuhL.mjs} +27 -31
- package/dist/{react-native-build-BTUcE926.mjs → react-native-build-dixAL2G8.mjs} +9 -9
- package/dist/{react-native-doctor-CfsCTKZt.mjs → react-native-doctor-CvkWincj.mjs} +6 -6
- package/dist/{react-native-ios-_cK2pjZn.mjs → react-native-ios-DF5otoBR.mjs} +17 -18
- package/dist/recorded-build-CGHGCO8m.mjs +76 -0
- package/dist/{recordings-AKZfsW2W.mjs → recordings-BcOzqFD1.mjs} +1 -1
- package/dist/{registration-DKjJGQ6p.mjs → registration-C-3PDR3X.mjs} +1 -1
- package/dist/{reload-DsTMtMDU.mjs → reload-DGWfNFwQ.mjs} +16 -16
- package/dist/{reload-CXgce4Yo.mjs → reload-DWxmO9dY.mjs} +1 -1
- package/dist/{remote-BsmYHUxH.mjs → remote-CV2jBcLv.mjs} +9 -9
- package/dist/remote-DWYGW2f5.mjs +158 -0
- package/dist/{result-DK6nTO-M.mjs → result-CWyxwPvZ.mjs} +23 -17
- package/dist/{run-N-BbRxnC.mjs → run-FZtMQgrx.mjs} +2 -2
- package/dist/{server-bare-BTlICuaX.mjs → server-bare-Ksh1NKeI.mjs} +2 -2
- package/dist/{server-command-Cu2w-UjB.mjs → server-command-BO2DIsJV.mjs} +5 -5
- package/dist/server-expo-9hQwyLze.mjs +2 -0
- package/dist/{server-expo-CjQwxvIi.mjs → server-expo-ZS9_WaNG.mjs} +3 -3
- package/dist/{settings-B5IBDfTx.mjs → settings-Ag4pbs0z.mjs} +5 -4
- package/dist/{settings-DcmVICCn.mjs → settings-TYrzDh8T.mjs} +2 -2
- package/dist/{settings-payload-BoiFMiFq.mjs → settings-payload-CUM0DYwz.mjs} +5 -5
- package/dist/{settings-write-B3LzEVwf.mjs → settings-write-D_9_IEx7.mjs} +6 -6
- package/dist/settings.schema.json +1 -1
- package/dist/{simslim-DKdJx0LL.mjs → simslim-BMgpTRWe.mjs} +2 -2
- package/dist/{slot-launch-DsQmPdlg.mjs → slot-launch-DW_29Bmu.mjs} +6 -6
- package/dist/{stage-Dqk0qvaI.mjs → stage-_8k8p7uq.mjs} +2 -2
- package/dist/{start-GkRBR1e3.mjs → start-CdgtOksb.mjs} +1 -1
- package/dist/{start-DIFiT2P5.mjs → start-CzBB5R7N.mjs} +12 -12
- package/dist/{state-CtmYTRWm.mjs → state-CfP-ccP8.mjs} +4 -4
- package/dist/{state-DSOUqO-o.mjs → state-DsrFh3yv.mjs} +2 -2
- package/dist/{stats-Dz08IopP.mjs → stats-BgTyuzib.mjs} +5 -5
- package/dist/{stats-report-BVRCqwWA.mjs → stats-report-Ci6TAfFm.mjs} +1 -1
- package/dist/{status-DhKv_e8a.mjs → status-Bcdy5eHt.mjs} +24 -24
- package/dist/{status-DTFhDnd1.mjs → status-C2PdxK6q.mjs} +1 -1
- package/dist/{status-Dost__Vn.mjs → status-C7Zzb-Eh.mjs} +1 -1
- package/dist/{status-watch-UecLnPQD.mjs → status-watch-DY0EZcmg.mjs} +5 -5
- package/dist/status-worker.mjs +1 -1
- package/dist/{stim-desktop-_WTria-r.mjs → stim-desktop-DWGAfaud.mjs} +2 -2
- package/dist/{stop-CcZISot5.mjs → stop-CbxsTKyZ.mjs} +5 -5
- package/dist/{stop-vRe6TQk5.mjs → stop-CkmBkNyg.mjs} +16 -16
- package/dist/{stop-QFOqgICJ.mjs → stop-iGkvEvDn.mjs} +2 -2
- package/dist/supervisor-run.mjs +15 -15
- package/dist/{support-DW575Dnx.mjs → support-CfYmOdQs.mjs} +76 -38
- package/dist/{support-CNqJDBrH.mjs → support-JZ4KRW0C.mjs} +7 -7
- package/dist/{swiftpm-artifact-inputs-DQTJTczX.mjs → swiftpm-artifact-inputs-C1rZDRDs.mjs} +4 -4
- package/dist/{swiftpm-macos-BKczZ0k9.mjs → swiftpm-macos-DRTjC7Ff.mjs} +11 -11
- package/dist/{toolchain-DRQyCvlp.mjs → toolchain-BeD7tbBW.mjs} +73 -9
- package/dist/{toolchain-BDlugtoh.mjs → toolchain-CNlKc9pH.mjs} +1 -1
- package/dist/trigger-Bp3lruF2.mjs +2 -0
- package/dist/{trigger-BtB4kbe0.mjs → trigger-G_gbfIVB.mjs} +2 -2
- package/dist/{warm-progress-q11Vdvhh.mjs → warm-progress-CJQ8tk5O.mjs} +6 -6
- package/dist/{web-TDWjHUT3.mjs → web-BXbmysa1.mjs} +9 -9
- package/dist/web-BcaySU05.mjs +2 -0
- package/dist/web-run.mjs +8 -8
- package/dist/windows-report.mjs +1 -1
- package/dist/{workspace-state-BdZ-QgmB.mjs → workspace-state-DOPXG2Gp.mjs} +3 -3
- package/dist/{workspaces-CY3KSdC0.mjs → workspaces-DCzDzydB.mjs} +15 -14
- package/dist/{worktree-D6myrQ2H.mjs → worktree-6ngObKkw.mjs} +1 -1
- package/dist/{worktree-fKKe8j5M.mjs → worktree-BAC43Kio.mjs} +27 -27
- package/package.json +7 -7
- package/dist/server-expo-DbSypdNl.mjs +0 -2
- package/dist/trigger-D8B7QR0q.mjs +0 -2
- package/dist/web-D1m1LKEz.mjs +0 -2
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { C as operationState, D as ownership_claim_exports, l as cancellableSleep, n as isTimeoutError, p as withWorkspaceProcessLock, r as reportSignal, t as getExecutor } from "./exec-
|
|
2
|
-
import { D as workspaceId$1, M as withDirLock$1, k as workspaceLogsDir$1 } from "./workspace-state-
|
|
3
|
-
import { a as formatElapsed, h as shortUdid, l as phaseLine, r as clockTime } from "./command-output-
|
|
4
|
-
import { $ as
|
|
5
|
-
import { D as iosSimSlimProfileSetting, E as iosSimSlimDefaultSetting, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, b as iosProjectDirSetting, p as cacheProviderSettingError, rt as settingShapeErrors, st as unknownSettingKeys, x as iosProjectDirSettingError } from "./settings-
|
|
6
|
-
import { Ct as selectParked, bt as parkedMaxSetting, gt as dropParked, ht as adoptParked, xt as readParked } from "./android-
|
|
1
|
+
import { C as operationState, D as ownership_claim_exports, l as cancellableSleep, n as isTimeoutError, p as withWorkspaceProcessLock, r as reportSignal, t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { D as workspaceId$1, M as withDirLock$1, k as workspaceLogsDir$1 } from "./workspace-state-DOPXG2Gp.mjs";
|
|
3
|
+
import { a as formatElapsed, h as shortUdid, l as phaseLine, r as clockTime } from "./command-output-ByEmIwur.mjs";
|
|
4
|
+
import { $ as notOnTailnetDiagnosis, A as withConfigLockAsync$1, B as findPeer$1, G as reachMachine, I as diagnoseOutcome, K as realIo, L as diagnoseTailscale, Q as diagnosisFinding, T as setDevice, U as outdatedServer, W as parseMachine$1, X as tailscaleStatusAsync, Y as setupRemedy, Z as diagnoseLocalUnreachable, a as clearDevice, d as getConfigDir, et as unconfirmedKeyFinding, ft as deviceSlotKey, gt as projectDeviceSlots, pt as deviceSlotPlatforms, tt as readHostPermissions, v as loadConfig$1, w as saveConfig, z as endpoint$1 } from "./config-CNmN-ndb.mjs";
|
|
5
|
+
import { D as iosSimSlimProfileSetting, E as iosSimSlimDefaultSetting, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, b as iosProjectDirSetting, p as cacheProviderSettingError, rt as settingShapeErrors, st as unknownSettingKeys, x as iosProjectDirSettingError } from "./settings-Ag4pbs0z.mjs";
|
|
6
|
+
import { Ct as selectParked, bt as parkedMaxSetting, gt as dropParked, ht as adoptParked, xt as readParked } from "./android-CGctfYpv.mjs";
|
|
7
7
|
import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
|
|
8
|
-
import { _ as withDeviceBootAdmission, _n as APP_READINESS_TIMEOUT_MS, f as runtimeMismatch, g as unknownIosRuntimeRefusal, h as unknownIosDeviceTypeRefusal, l as deviceTypeMismatch, n as DeviceAdmissionRefusal, on as MANIFEST_VERIFY_TIMEOUT_MS, t as DEFAULT_DEVICE_SLOT_WAIT_MS, u as layerNote } from "./device-capacity-
|
|
9
|
-
import { _t as teardownParkedIosSim, ht as teardownOwnedIosSim } from "./workspaces-
|
|
10
|
-
import { J as describeDiagnostic, s as cocoapodsInstall } from "./toolchain-
|
|
11
|
-
import { E as releaseRunLease, S as parseLease, T as raiseLease, b as leaseIsExpired, j as takeLease, v as deviceLeasePath, y as fileLeaseIo } from "./activity-
|
|
12
|
-
import { A as springBoardRunning, B as reportMemoryCulprits, C as renameIosSim, D as resolveOwnedIosSim, E as resolveIosCreation, F as hostMemoryPressureAdvice, M as waitForSpringBoard, N as configuredIosSimulatorViewer, P as parseIosSimulatorApp, R as readHostMemoryPressure, S as readSpringBoardPid, T as resetIosPrivacy, _ as ownedSimName, a as createOwnedIosSim, d as listAllIosSims, f as listAllIosSimsAsync, h as listIosRuntimesAsync, n as bootIosSim, p as listIosDeviceTypesAsync, u as iosSimulatorFailureAdvice, w as resetIosKeychain, y as parseRuntimeVersion } from "./ios-
|
|
8
|
+
import { _ as withDeviceBootAdmission, _n as APP_READINESS_TIMEOUT_MS, f as runtimeMismatch, g as unknownIosRuntimeRefusal, h as unknownIosDeviceTypeRefusal, l as deviceTypeMismatch, n as DeviceAdmissionRefusal, on as MANIFEST_VERIFY_TIMEOUT_MS, t as DEFAULT_DEVICE_SLOT_WAIT_MS, u as layerNote } from "./device-capacity-DWUOvY13.mjs";
|
|
9
|
+
import { _t as teardownParkedIosSim, ht as teardownOwnedIosSim } from "./workspaces-DCzDzydB.mjs";
|
|
10
|
+
import { J as describeDiagnostic, s as cocoapodsInstall } from "./toolchain-BeD7tbBW.mjs";
|
|
11
|
+
import { E as releaseRunLease, S as parseLease, T as raiseLease, b as leaseIsExpired, j as takeLease, v as deviceLeasePath, y as fileLeaseIo } from "./activity-CdpXXSq2.mjs";
|
|
12
|
+
import { A as springBoardRunning, B as reportMemoryCulprits, C as renameIosSim, D as resolveOwnedIosSim, E as resolveIosCreation, F as hostMemoryPressureAdvice, M as waitForSpringBoard, N as configuredIosSimulatorViewer, P as parseIosSimulatorApp, R as readHostMemoryPressure, S as readSpringBoardPid, T as resetIosPrivacy, _ as ownedSimName, a as createOwnedIosSim, d as listAllIosSims, f as listAllIosSimsAsync, h as listIosRuntimesAsync, n as bootIosSim, p as listIosDeviceTypesAsync, u as iosSimulatorFailureAdvice, w as resetIosKeychain, y as parseRuntimeVersion } from "./ios-BveW7qK1.mjs";
|
|
13
13
|
import { p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
|
|
14
14
|
import { releaseClaim, tryAcquireClaim } from "@stim-cli/core/ownership-claim";
|
|
15
15
|
import { createHash } from "node:crypto";
|
|
@@ -17,7 +17,7 @@ import { mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node
|
|
|
17
17
|
import { homedir, hostname } from "node:os";
|
|
18
18
|
import { basename, join } from "node:path";
|
|
19
19
|
import { LOG_ROTATE_BYTES, ambientContext, ambientEnv, withDirLockAsync } from "@stim-cli/core";
|
|
20
|
-
import { MACHINE_CREDENTIALS_VERSION, acceptsShape, automaticMachineEnabled, buildMachinesFile, buildMachinesLock, cannotHost, deviceHostMachinesClaims, deviceHostMachinesFile, deviceHostMachinesLock, isJsonObject, localEndpoint, parseMachine, placementWord, readBuildMachines, readDeviceHostMachines, settingDefinition } from "@stim-cli/core/state";
|
|
20
|
+
import { MACHINE_CREDENTIALS_VERSION, acceptsShape, automaticMachineEnabled, buildMachinesFile, buildMachinesLock, cannotHost, currentTailnet, deviceHostMachinesClaims, deviceHostMachinesFile, deviceHostMachinesLock, isJsonObject, localEndpoint, parseMachine, placementWord, readBuildMachines, readDeviceHostMachines, settingDefinition, wrongTailnet } from "@stim-cli/core/state";
|
|
21
21
|
import chalk from "chalk";
|
|
22
22
|
import { InvalidArgumentError } from "commander";
|
|
23
23
|
import { mkdir, readFile, readdir, rm, stat, writeFile } from "node:fs/promises";
|
|
@@ -81,11 +81,43 @@ async function store(machines, operation) {
|
|
|
81
81
|
});
|
|
82
82
|
else withDirLock$1(deviceHostMachinesLock(), write, options);
|
|
83
83
|
}
|
|
84
|
+
/** Forgets this machine's hosting credential for `machine`; false when another run holds the credential claim. */
|
|
85
|
+
async function forgetDeviceHostMachine(machine) {
|
|
86
|
+
const claim = tryAcquireClaim({
|
|
87
|
+
root: deviceHostMachinesClaims(),
|
|
88
|
+
mode: "exclusive",
|
|
89
|
+
label: "device-host approval"
|
|
90
|
+
});
|
|
91
|
+
if (!claim.acquired) {
|
|
92
|
+
releaseClaim(claim.pending);
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const credentials = readDeviceHostMachines();
|
|
97
|
+
if (credentials.some((each) => each.machine === machine)) await store(credentials.filter((each) => each.machine !== machine));
|
|
98
|
+
return true;
|
|
99
|
+
} finally {
|
|
100
|
+
releaseClaim(claim.acquired);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function notOnTailnet(machine, ambiguous, stored, current) {
|
|
104
|
+
const diagnosis = notOnTailnetDiagnosis(machine, ambiguous, stored ? wrongTailnet(stored, current) : null);
|
|
105
|
+
return {
|
|
106
|
+
diagnosis,
|
|
107
|
+
report: {
|
|
108
|
+
machine,
|
|
109
|
+
state: "not-on-tailnet",
|
|
110
|
+
...stored?.tailnet ? { tailnet: stored.tailnet } : {},
|
|
111
|
+
diagnosis
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
84
115
|
/**
|
|
85
|
-
* Reports the device-host approval of each remote machine, separate from its build approval. Only
|
|
86
|
-
* ticket
|
|
116
|
+
* Reports the device-host approval of each remote machine, separate from its build approval. Only `fix` makes a setup
|
|
117
|
+
* ticket, and only `forget`, which defaults to `fix`, forgets the credentials of machines not in `entries`; every
|
|
118
|
+
* server key stays pinned.
|
|
87
119
|
*/
|
|
88
|
-
async function inspectDeviceHostMachines({ fix, version = "<version>", tickets = /* @__PURE__ */ new Map(), operation, confirmKey }, io = realIo, entries = configuredMachines()) {
|
|
120
|
+
async function inspectDeviceHostMachines({ fix, forget = fix, version = "<version>", tickets = /* @__PURE__ */ new Map(), operation, confirmKey }, io = realIo, entries = configuredMachines()) {
|
|
89
121
|
if (entries === null) return {
|
|
90
122
|
findings: [note$1("Invalid remote.machines setting", "Use a remote object with machines as an array of tailnet names. Existing hosting credentials and pinned keys are preserved.", "Run `stim guide settings` and correct the setting before running doctor again.")],
|
|
91
123
|
machines: []
|
|
@@ -99,7 +131,7 @@ async function inspectDeviceHostMachines({ fix, version = "<version>", tickets =
|
|
|
99
131
|
});
|
|
100
132
|
const unreadable = () => unavailable("credentials-unavailable", note$1("Hosting credentials are unreadable", `Stim preserves ${deviceHostMachinesFile()} and its pinned keys.`, "Restore the existing file from a trusted backup or restore read access before running doctor again."));
|
|
101
133
|
if (!entries.length) {
|
|
102
|
-
if (!
|
|
134
|
+
if (!forget) return {
|
|
103
135
|
findings: [],
|
|
104
136
|
machines: []
|
|
105
137
|
};
|
|
@@ -128,7 +160,7 @@ async function inspectDeviceHostMachines({ fix, version = "<version>", tickets =
|
|
|
128
160
|
} catch {
|
|
129
161
|
return unreadable();
|
|
130
162
|
}
|
|
131
|
-
if (
|
|
163
|
+
if (forget) {
|
|
132
164
|
const kept = credentials.filter((each) => entries.includes(each.machine));
|
|
133
165
|
if (kept.length !== credentials.length) {
|
|
134
166
|
await store(kept, operation);
|
|
@@ -185,15 +217,12 @@ async function inspectDeviceHostMachines({ fix, version = "<version>", tickets =
|
|
|
185
217
|
}
|
|
186
218
|
const peer = local ? null : findPeer$1(current, parsed.name);
|
|
187
219
|
if (peer === "missing" || peer === "ambiguous") {
|
|
188
|
-
const diagnosis =
|
|
189
|
-
inspected.machines.push(
|
|
190
|
-
machine,
|
|
191
|
-
state: "not-on-tailnet",
|
|
192
|
-
diagnosis
|
|
193
|
-
});
|
|
220
|
+
const { report, diagnosis } = notOnTailnet(machine, peer === "ambiguous", credentials.find((each) => each.machine === machine), current);
|
|
221
|
+
inspected.machines.push(report);
|
|
194
222
|
inspected.findings.push(diagnosisFinding("device-host-machine", machine, diagnosis));
|
|
195
223
|
continue;
|
|
196
224
|
}
|
|
225
|
+
const signedIn = local ? null : currentTailnet(current);
|
|
197
226
|
const target = peer ? endpoint$1(peer, parsed.port) : localEndpoint(parsed.name, parsed.port);
|
|
198
227
|
const dnsName = peer ? { dnsName: peer.dnsName } : {};
|
|
199
228
|
const nodeRoute = peer ? `${peer.nodeId}:${parsed.port}` : `local:${parsed.name}:${parsed.port}`;
|
|
@@ -222,6 +251,7 @@ async function inspectDeviceHostMachines({ fix, version = "<version>", tickets =
|
|
|
222
251
|
access: "device-host",
|
|
223
252
|
endpoint: target,
|
|
224
253
|
address: peer?.dnsName ?? parsed.name,
|
|
254
|
+
...signedIn ? { tailnet: signedIn } : {},
|
|
225
255
|
credential,
|
|
226
256
|
other: () => readBuildMachines().find((each) => each.machine === machine),
|
|
227
257
|
persist: async (next) => {
|
|
@@ -249,6 +279,7 @@ async function inspectDeviceHostMachines({ fix, version = "<version>", tickets =
|
|
|
249
279
|
machine,
|
|
250
280
|
...dnsName,
|
|
251
281
|
...saved?.deviceId ? { deviceId: saved.deviceId } : {},
|
|
282
|
+
...saved?.tailnet ? { tailnet: saved.tailnet } : {},
|
|
252
283
|
...saved ? { requestedAt: saved.requestedAt } : {}
|
|
253
284
|
};
|
|
254
285
|
if (outcome.state === "approved") {
|
|
@@ -279,7 +310,7 @@ async function inspectDeviceHostMachines({ fix, version = "<version>", tickets =
|
|
|
279
310
|
...known,
|
|
280
311
|
state: "not-asked"
|
|
281
312
|
});
|
|
282
|
-
inspected.findings.push(note$1(`Remote machine ${machine} has not approved this machine for device hosting`, "This machine has not asked for hosting access.",
|
|
313
|
+
inspected.findings.push(note$1(`Remote machine ${machine} has not approved this machine for device hosting`, "This machine has not asked for hosting access.", `Run \`stim remote add ${machine}\` to make a setup ticket and print the command to run there.`));
|
|
283
314
|
continue;
|
|
284
315
|
}
|
|
285
316
|
if (outcome.state === "outdated") {
|
|
@@ -335,7 +366,7 @@ async function inspectDeviceHostMachines({ fix, version = "<version>", tickets =
|
|
|
335
366
|
...known,
|
|
336
367
|
state: outcome.state
|
|
337
368
|
});
|
|
338
|
-
inspected.findings.push(outcome.state === "key-changed" ? note$1(`Remote machine ${machine} answered with a different server key`, "Stim refuses to connect to a stim-server that does not prove it holds the key pinned at approval.", `If that machine or its Stim home was replaced, remove ${machine}
|
|
369
|
+
inspected.findings.push(outcome.state === "key-changed" ? note$1(`Remote machine ${machine} answered with a different server key`, "Stim refuses to connect to a stim-server that does not prove it holds the key pinned at approval.", `If that machine or its Stim home was replaced, run \`stim remote remove ${machine}\`, then \`stim remote add ${machine}\`.`) : outcome.state === "lapsed" ? note$1(`Hosting request to ${machine} lapsed`, `${machine} did not approve this machine before its setup ticket expired at ${outcome.credential.expiresAt}.`, `Run \`stim remote add ${machine}\` to make a new ticket.`) : note$1(`Remote machine ${machine} no longer accepts this machine for device hosting`, `${outcome.reason} The pinned key is preserved.`, `Run \`stim remote add ${machine}\` to ask again.`));
|
|
339
370
|
}
|
|
340
371
|
return inspected;
|
|
341
372
|
} finally {
|
|
@@ -375,6 +406,9 @@ async function updateCredentials(change, operation) {
|
|
|
375
406
|
});
|
|
376
407
|
else withDirLock$1(buildMachinesLock(), write, options);
|
|
377
408
|
}
|
|
409
|
+
async function forgetBuildMachine(machine) {
|
|
410
|
+
if (readBuildMachines().some((each) => each.machine === machine)) await updateCredentials((credentials) => credentials.filter((each) => each.machine !== machine));
|
|
411
|
+
}
|
|
378
412
|
function note(title, detail, fix = null) {
|
|
379
413
|
return {
|
|
380
414
|
code: "build-machine",
|
|
@@ -491,12 +525,15 @@ async function inspectMachine(entry, tailnet, deviceName, fix, version, tickets,
|
|
|
491
525
|
};
|
|
492
526
|
const status = "status" in tailnet ? tailnet.status : {};
|
|
493
527
|
const peer = local ? null : findPeer$1(status, parsed.name);
|
|
528
|
+
const credential = readBuildMachines().find((each) => each.machine === entry);
|
|
529
|
+
const signedIn = local ? null : currentTailnet(status);
|
|
494
530
|
if (peer === "missing" || peer === "ambiguous") {
|
|
495
|
-
const diagnosis = notOnTailnetDiagnosis(entry, peer === "ambiguous");
|
|
531
|
+
const diagnosis = notOnTailnetDiagnosis(entry, peer === "ambiguous", credential ? wrongTailnet(credential, status) : null);
|
|
496
532
|
return {
|
|
497
533
|
report: {
|
|
498
534
|
machine: entry,
|
|
499
535
|
state: "not-on-tailnet",
|
|
536
|
+
...credential?.tailnet ? { tailnet: credential.tailnet } : {},
|
|
500
537
|
diagnosis
|
|
501
538
|
},
|
|
502
539
|
finding: diagnosisFinding("build-machine", entry, diagnosis)
|
|
@@ -504,7 +541,6 @@ async function inspectMachine(entry, tailnet, deviceName, fix, version, tickets,
|
|
|
504
541
|
}
|
|
505
542
|
const target = peer ? endpoint$1(peer, parsed.port) : localEndpoint(parsed.name, parsed.port);
|
|
506
543
|
const address = peer?.dnsName ?? parsed.name;
|
|
507
|
-
const credential = readBuildMachines().find((each) => each.machine === entry);
|
|
508
544
|
const other = () => {
|
|
509
545
|
try {
|
|
510
546
|
return readDeviceHostMachines().find((each) => each.machine === entry);
|
|
@@ -519,6 +555,7 @@ async function inspectMachine(entry, tailnet, deviceName, fix, version, tickets,
|
|
|
519
555
|
access: "build",
|
|
520
556
|
endpoint: target,
|
|
521
557
|
address,
|
|
558
|
+
...signedIn ? { tailnet: signedIn } : {},
|
|
522
559
|
credential,
|
|
523
560
|
other,
|
|
524
561
|
persist,
|
|
@@ -541,6 +578,7 @@ async function inspectMachine(entry, tailnet, deviceName, fix, version, tickets,
|
|
|
541
578
|
}
|
|
542
579
|
const paired = {
|
|
543
580
|
...known,
|
|
581
|
+
...outcome.state !== "not-asked" && outcome.credential?.tailnet ? { tailnet: outcome.credential.tailnet } : {},
|
|
544
582
|
...outcome.state !== "not-asked" && outcome.credential?.deviceId ? { deviceId: outcome.credential.deviceId } : {},
|
|
545
583
|
...outcome.state !== "not-asked" && outcome.credential ? { requestedAt: outcome.credential.requestedAt } : {}
|
|
546
584
|
};
|
|
@@ -550,14 +588,14 @@ async function inspectMachine(entry, tailnet, deviceName, fix, version, tickets,
|
|
|
550
588
|
...known,
|
|
551
589
|
state: "not-asked"
|
|
552
590
|
},
|
|
553
|
-
finding: note(`Remote machine ${entry} has not approved this machine for builds`, "This machine has not asked it for build access.",
|
|
591
|
+
finding: note(`Remote machine ${entry} has not approved this machine for builds`, "This machine has not asked it for build access.", `Run \`stim remote add ${entry}\` to make a setup ticket and print the command to run there.`)
|
|
554
592
|
};
|
|
555
593
|
case "key-changed": return {
|
|
556
594
|
report: {
|
|
557
595
|
...paired,
|
|
558
596
|
state: "key-changed"
|
|
559
597
|
},
|
|
560
|
-
finding: note(`Remote machine ${entry} answered with a different server key`, `${address} did not prove it holds the stim-server key this machine pinned at approval. Stim does not connect to it.`, `If that machine or its Stim home was replaced, remove ${entry}
|
|
598
|
+
finding: note(`Remote machine ${entry} answered with a different server key`, `${address} did not prove it holds the stim-server key this machine pinned at approval. Stim does not connect to it.`, `If that machine or its Stim home was replaced, run \`stim remote remove ${entry}\` to forget the old pairing, then \`stim remote add ${entry}\`.`)
|
|
561
599
|
};
|
|
562
600
|
case "unconfirmed": return {
|
|
563
601
|
report: {
|
|
@@ -580,14 +618,14 @@ async function inspectMachine(entry, tailnet, deviceName, fix, version, tickets,
|
|
|
580
618
|
...paired,
|
|
581
619
|
state: "lapsed"
|
|
582
620
|
},
|
|
583
|
-
finding: note(`Build request to ${entry} lapsed`, `${entry} did not approve this machine before its setup ticket expired at ${outcome.credential.expiresAt}.`,
|
|
621
|
+
finding: note(`Build request to ${entry} lapsed`, `${entry} did not approve this machine before its setup ticket expired at ${outcome.credential.expiresAt}.`, `Run \`stim remote add ${entry}\` to make a new ticket.`)
|
|
584
622
|
};
|
|
585
623
|
case "revoked": return {
|
|
586
624
|
report: {
|
|
587
625
|
...paired,
|
|
588
626
|
state: "revoked"
|
|
589
627
|
},
|
|
590
|
-
finding: note(`Remote machine ${entry} no longer accepts this machine for builds`, `${outcome.reason} It was revoked.`,
|
|
628
|
+
finding: note(`Remote machine ${entry} no longer accepts this machine for builds`, `${outcome.reason} It was revoked.`, `Run \`stim remote add ${entry}\` to ask again.`)
|
|
591
629
|
};
|
|
592
630
|
case "outdated": {
|
|
593
631
|
const outdated = outdatedServer(entry, version, outcome.command);
|
|
@@ -662,17 +700,18 @@ async function inspectMachine(entry, tailnet, deviceName, fix, version, tickets,
|
|
|
662
700
|
/**
|
|
663
701
|
* Doctor findings and a report for each `remote.machines` entry. The worker's stim-server key is pinned on first
|
|
664
702
|
* contact; every later connection must prove it holds that key. With `fix`, makes a setup ticket for a named machine
|
|
665
|
-
* this machine holds no pairing for, or that revoked it
|
|
703
|
+
* this machine holds no pairing for, or that revoked it. With `forget`, which defaults to `fix`, forgets pairings of
|
|
704
|
+
* machines not in `entries`. With
|
|
666
705
|
* `check`, each approved machine is asked for one build offer and reports every reason it would not take this
|
|
667
706
|
* project's build.
|
|
668
707
|
*/
|
|
669
|
-
async function inspectBuildMachines({ fix, check = null, version = "<version>", tickets = /* @__PURE__ */ new Map(), operation, confirmKey }, io = realIo, entries = configuredMachines()) {
|
|
708
|
+
async function inspectBuildMachines({ fix, forget = fix, check = null, version = "<version>", tickets = /* @__PURE__ */ new Map(), operation, confirmKey }, io = realIo, entries = configuredMachines()) {
|
|
670
709
|
if (entries === null) return {
|
|
671
710
|
findings: [note("Invalid remote.machines setting", "Use a remote object with machines as an array of tailnet names. Existing credentials and pinned keys are preserved.", "Run `stim guide settings` and correct the setting before running doctor again.")],
|
|
672
711
|
machines: []
|
|
673
712
|
};
|
|
674
713
|
const unnamed = (each) => !entries.includes(each.machine);
|
|
675
|
-
if (
|
|
714
|
+
if (forget && readBuildMachines().some(unnamed)) await updateCredentials((credentials) => credentials.filter((each) => !unnamed(each)), operation);
|
|
676
715
|
if (entries.length === 0) return {
|
|
677
716
|
findings: [],
|
|
678
717
|
machines: []
|
|
@@ -1949,10 +1988,9 @@ function ownedSimFailure(error) {
|
|
|
1949
1988
|
function isReleaseConfiguration(configuration) {
|
|
1950
1989
|
return typeof configuration === "string" && configuration.trim() !== "" && configuration.trim().toLowerCase() !== "debug";
|
|
1951
1990
|
}
|
|
1952
|
-
function simulatorBuildArch({ physical, remoteArch, hostArch
|
|
1991
|
+
function simulatorBuildArch({ physical, remoteArch, hostArch }) {
|
|
1953
1992
|
if (physical) return null;
|
|
1954
|
-
|
|
1955
|
-
return isReleaseConfiguration(configuration) ? null : hostArch;
|
|
1993
|
+
return remoteArch ?? hostArch;
|
|
1956
1994
|
}
|
|
1957
1995
|
function iosProviderRunOptions(configuration, arch) {
|
|
1958
1996
|
if (arch) return {
|
|
@@ -2047,4 +2085,4 @@ function createIosDeviceWaitRun(stats, progress, signal) {
|
|
|
2047
2085
|
};
|
|
2048
2086
|
}
|
|
2049
2087
|
//#endregion
|
|
2050
|
-
export {
|
|
2088
|
+
export { inspectBuildMachines as $, fingerprintMismatchRemedy as A, DEVICE_BUSY as B, clearIosAdoptionPending as C, OffloadRefusal as D, muteBootedSimulator as E, requireLocalBuild as F, lostLine as G, DEVICE_WAIT_POLL_MS as H, resolveBuildMachine as I, releaseLeaseOnAbort as J, lostRefusal as K, resolveBuildPlacement as L, namedBuildMachine as M, parseBuildMachineOption as N, automaticBuild as O, podsFailedRemedy as P, forgetBuildMachine as Q, workerFailureReason as R, xcodeFailureReport as S, ensureOwnedIosDevice as T, acquireRunLease as U, DEVICE_WAIT_LINE_MS as V, leaseExpiryText as W, waitFlagConflict as X, runLease as Y, waitForDevice as Z, resolveIosWait as _, deviceModelRefusal as a, inspectDeviceHostMachines as at, resolveSimulatorAppFlag as b, iosProjectPathError as c, ownedSimFailure as d, pairedMachines as et, podAction as f, resolveIosBuildSetup as g, resolveDeviceType as h, deviceLabel as i, hostingMachines as it, missingPackageManagerRemedy as j, buildPlacementSettings as k, iosProviderRunOptions as l, resolveConfiguration as m, buildLogFile as n, configuredMachines as nt, deviceShortName as o, printDiagnostics as p, parseDeviceWait as q, createIosDeviceWaitRun as r, forgetDeviceHostMachine as rt, iosConfigurationSetting as s, appNameFromPath as t, predictedRefusal as tt, isReleaseConfiguration as u, resolveRuntime as v, ensureIosBooted as w, simulatorBuildArch as x, resolveSchemeSelection as y, DEBUG_VERIFY_STEP_MS as z };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
2
|
-
import { a as killOnAbort } from "./operation-exec-
|
|
3
|
-
import { D as extractEmulatorFailure, E as emulatorProbeSession, O as findBuildTool, Q as pickDefaultSystemImage, T as emulatorFailureRemedy, c as androidPoolNoCandidatesRefusal, et as profileNeedsFoldFeature, j as hostSystemImageArch, l as androidSystemImageAbi, o as androidHome, s as androidPoolCandidates, w as emulatorDiskSpaceRemedy } from "./android-
|
|
4
|
-
import { m as unknownAndroidSystemImageRefusal, p as unknownAndroidDeviceProfileRefusal, u as layerNote } from "./device-capacity-
|
|
5
|
-
import { Q as pickDevClientScheme } from "./toolchain-
|
|
6
|
-
import { n as decideSystemImage } from "./android-image-
|
|
7
|
-
import { t as devClientScheme } from "./dev-client-
|
|
1
|
+
import { t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { a as killOnAbort } from "./operation-exec-DNynwpqO.mjs";
|
|
3
|
+
import { D as extractEmulatorFailure, E as emulatorProbeSession, O as findBuildTool, Q as pickDefaultSystemImage, T as emulatorFailureRemedy, c as androidPoolNoCandidatesRefusal, et as profileNeedsFoldFeature, j as hostSystemImageArch, l as androidSystemImageAbi, o as androidHome, s as androidPoolCandidates, w as emulatorDiskSpaceRemedy } from "./android-CGctfYpv.mjs";
|
|
4
|
+
import { m as unknownAndroidSystemImageRefusal, p as unknownAndroidDeviceProfileRefusal, u as layerNote } from "./device-capacity-DWUOvY13.mjs";
|
|
5
|
+
import { Q as pickDevClientScheme } from "./toolchain-BeD7tbBW.mjs";
|
|
6
|
+
import { n as decideSystemImage } from "./android-image-DY8KxK2m.mjs";
|
|
7
|
+
import { t as devClientScheme } from "./dev-client-3SQzMRXZ.mjs";
|
|
8
8
|
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
9
9
|
import { relative } from "node:path";
|
|
10
10
|
//#region src/commands/android/support.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
2
|
-
import { s as gitAsync } from "./operation-exec-
|
|
3
|
-
import { n as buildCacheKey } from "./build-cache-
|
|
1
|
+
import { t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
|
|
3
|
+
import { n as buildCacheKey } from "./build-cache-Dt-dhCJF.mjs";
|
|
4
4
|
import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
|
|
5
|
-
import { a as sourceManifest, r as nativeFileDigest } from "./native-source-
|
|
5
|
+
import { a as sourceManifest, r as nativeFileDigest } from "./native-source-D2ZfiQ6U.mjs";
|
|
6
6
|
import { createHash } from "node:crypto";
|
|
7
7
|
import { join, relative, resolve, sep } from "node:path";
|
|
8
8
|
import { isJsonObject } from "@stim-cli/core/state";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { a as trackReportResource, b as spawnDeclared, t as getExecutor } from "./exec-
|
|
2
|
-
import { y as sharedBuildCache } from "./workspace-state-
|
|
3
|
-
import { J as resolveCacheProviderConfig, Vt as repoRootAsync, it as settingValueAt, z as projectSettingsContextAsync } from "./settings-
|
|
4
|
-
import { r as register } from "./cache-manifest-
|
|
5
|
-
import { _t as runCancellationSignal, h as macosToolchainAsync } from "./toolchain-
|
|
6
|
-
import "./build-cache-
|
|
1
|
+
import { a as trackReportResource, b as spawnDeclared, t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { y as sharedBuildCache } from "./workspace-state-DOPXG2Gp.mjs";
|
|
3
|
+
import { J as resolveCacheProviderConfig, Vt as repoRootAsync, it as settingValueAt, z as projectSettingsContextAsync } from "./settings-Ag4pbs0z.mjs";
|
|
4
|
+
import { r as register } from "./cache-manifest-BO0TIcPV.mjs";
|
|
5
|
+
import { _t as runCancellationSignal, h as macosToolchainAsync } from "./toolchain-BeD7tbBW.mjs";
|
|
6
|
+
import "./build-cache-Dt-dhCJF.mjs";
|
|
7
7
|
import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
|
|
8
|
-
import { r as nativeFileDigest } from "./native-source-
|
|
9
|
-
import { a as validateInfoPlist, i as stageBundle, n as resolveBundleExtras, r as setBundleName, t as reidentifyBundle } from "./stage-
|
|
10
|
-
import { t as validateMacosArtifactPlatform } from "./artifact-platform-
|
|
11
|
-
import { t as logLines } from "./run-
|
|
12
|
-
import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-
|
|
8
|
+
import { r as nativeFileDigest } from "./native-source-D2ZfiQ6U.mjs";
|
|
9
|
+
import { a as validateInfoPlist, i as stageBundle, n as resolveBundleExtras, r as setBundleName, t as reidentifyBundle } from "./stage-_8k8p7uq.mjs";
|
|
10
|
+
import { t as validateMacosArtifactPlatform } from "./artifact-platform-BaGL1i1X.mjs";
|
|
11
|
+
import { t as logLines } from "./run-FZtMQgrx.mjs";
|
|
12
|
+
import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-C1rZDRDs.mjs";
|
|
13
13
|
import { createHash } from "node:crypto";
|
|
14
14
|
import { createReadStream, createWriteStream, existsSync, realpathSync } from "node:fs";
|
|
15
15
|
import { tmpdir } from "node:os";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { C as operationState, D as ownership_claim_exports, S as isTermination, _ as declareSpawnsOn, b as spawnDeclared, g as allowDeclaredSpawns, p as withWorkspaceProcessLock, t as getExecutor, v as refuseDeclaredSpawns, x as stopDeclaringSpawnsOn, y as signalDeclaredSpawns } from "./exec-
|
|
2
|
-
import { E as workspaceDir, T as workspaceDerivedData, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-
|
|
1
|
+
import { C as operationState, D as ownership_claim_exports, S as isTermination, _ as declareSpawnsOn, b as spawnDeclared, g as allowDeclaredSpawns, p as withWorkspaceProcessLock, t as getExecutor, v as refuseDeclaredSpawns, x as stopDeclaringSpawnsOn, y as signalDeclaredSpawns } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { E as workspaceDir, T as workspaceDerivedData, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-DOPXG2Gp.mjs";
|
|
3
3
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
4
|
-
import { a as formatElapsed, l as phaseLine } from "./command-output-
|
|
5
|
-
import { a as killOnAbort } from "./operation-exec-
|
|
6
|
-
import { o as androidHome } from "./android-
|
|
4
|
+
import { a as formatElapsed, l as phaseLine } from "./command-output-ByEmIwur.mjs";
|
|
5
|
+
import { a as killOnAbort } from "./operation-exec-DNynwpqO.mjs";
|
|
6
|
+
import { o as androidHome } from "./android-CGctfYpv.mjs";
|
|
7
7
|
import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
|
|
8
8
|
import { p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
|
|
9
|
-
import { t as cleanLine } from "./server-expo-
|
|
9
|
+
import { t as cleanLine } from "./server-expo-ZS9_WaNG.mjs";
|
|
10
10
|
import { createRequire } from "node:module";
|
|
11
11
|
import { X509Certificate, createHash } from "node:crypto";
|
|
12
12
|
import { existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -719,6 +719,14 @@ function podInstallCommand(root, directory, ...args) {
|
|
|
719
719
|
const BUILD_FAILED = "** BUILD FAILED **";
|
|
720
720
|
const POSITIONED = /^(\S[^\t]*?):(\d+):(?:(\d+):)?\s*(?:fatal\s+)?error:\s+(.+)$/;
|
|
721
721
|
const UNPOSITIONED = /^(\S[^\t]*?)?\berror:\s+(.+)$/;
|
|
722
|
+
const SCRIPT_WRAPPER = /^error: ([\w.@/-]+) - (.*)$/;
|
|
723
|
+
const XTRACE = /^\++ /;
|
|
724
|
+
const FAILED_COMMANDS = /^The following build commands failed:\s*$/;
|
|
725
|
+
const FAILED_COMMANDS_END = /^\(\d+ failures?\)/;
|
|
726
|
+
const FAILED_PHASE = /^\s+PhaseScriptExecution\s+((?:\\.|\S)+)\s.*\(in target '([^']+)'/;
|
|
727
|
+
const SCRIPT_LINES_KEPT = 40;
|
|
728
|
+
const SCRIPT_DETAIL_MAX = 6;
|
|
729
|
+
const SCRIPT_LINE_MAX = 300;
|
|
722
730
|
const LD_ERROR = /^ld:\s+(?!warning:)(.+)$/;
|
|
723
731
|
const UNDEFINED_HEADER = /^(?:ld:\s+)?Undefined symbols?(?:\s+for architecture\s+\S+)?:\s*$/;
|
|
724
732
|
const UNDEFINED_SYMBOL = /^\s+"?([^",]+)"?,\s+referenced from:\s*$/;
|
|
@@ -765,10 +773,28 @@ function makeDiagnostic({ file = null, line = null, column = null, message }, po
|
|
|
765
773
|
if (remedy) out.remedy = remedy;
|
|
766
774
|
return out;
|
|
767
775
|
}
|
|
776
|
+
function unescape(token) {
|
|
777
|
+
return token.replace(/\\(.)/g, "$1");
|
|
778
|
+
}
|
|
768
779
|
function dedupeKey(d) {
|
|
769
780
|
return `${d.file || ""}|${d.line || ""}|${d.column || ""}|${d.message}`;
|
|
770
781
|
}
|
|
782
|
+
function failureDiagnostics(phases, scriptLines) {
|
|
783
|
+
if (phases.length === 0) return [];
|
|
784
|
+
const anchor = scriptLines.findLastIndex((text) => text.startsWith("error:"));
|
|
785
|
+
const detail = anchor >= 0 ? scriptLines.slice(anchor, anchor + SCRIPT_DETAIL_MAX) : scriptLines.slice(-3);
|
|
786
|
+
return [...phases.map((phase) => ({ message: phase })), ...detail.map((text) => ({ message: text.replace(/^error:\s*/, "") }))];
|
|
787
|
+
}
|
|
788
|
+
/**
|
|
789
|
+
* Reads xcodebuild output line by line. `diagnostics` lists, first, the script phases xcodebuild's
|
|
790
|
+
* `The following build commands failed:` block names and the last error lines the script printed, then the
|
|
791
|
+
* errors found along the way. A script wrapper such as `error: sentry-cli - ` prefixes every line of its
|
|
792
|
+
* output, bash xtrace included; the prefix is removed and the trace lines are dropped.
|
|
793
|
+
*/
|
|
771
794
|
function createXcodeDiagnosticCollector(root = null, sdk = "iphonesimulator", podDirectory = root) {
|
|
795
|
+
const failedPhases = [];
|
|
796
|
+
const scriptLines = [];
|
|
797
|
+
let inFailedCommands = false;
|
|
772
798
|
const pods = root ? {
|
|
773
799
|
root,
|
|
774
800
|
directory: podDirectory ?? root
|
|
@@ -783,9 +809,27 @@ function createXcodeDiagnosticCollector(root = null, sdk = "iphonesimulator", po
|
|
|
783
809
|
seen.add(key);
|
|
784
810
|
out.push(d);
|
|
785
811
|
};
|
|
812
|
+
const pushFailedCommand = (raw) => {
|
|
813
|
+
if (FAILED_COMMANDS.test(raw)) {
|
|
814
|
+
inFailedCommands = true;
|
|
815
|
+
return;
|
|
816
|
+
}
|
|
817
|
+
if (!inFailedCommands) return;
|
|
818
|
+
if (FAILED_COMMANDS_END.test(raw)) {
|
|
819
|
+
inFailedCommands = false;
|
|
820
|
+
return;
|
|
821
|
+
}
|
|
822
|
+
const phase = FAILED_PHASE.exec(raw);
|
|
823
|
+
if (!phase) return;
|
|
824
|
+
const message = `Build phase failed: "${unescape(phase[1] ?? "")}" (target ${phase[2]})`;
|
|
825
|
+
if (!failedPhases.includes(message)) failedPhases.push(message);
|
|
826
|
+
};
|
|
786
827
|
const push = (line) => {
|
|
787
|
-
if (finished)
|
|
788
|
-
|
|
828
|
+
if (finished) {
|
|
829
|
+
pushFailedCommand(line.replace(/\r$/, ""));
|
|
830
|
+
return;
|
|
831
|
+
}
|
|
832
|
+
let raw = line.replace(/\r$/, "");
|
|
789
833
|
if (inUndefinedSymbols) {
|
|
790
834
|
const sym = UNDEFINED_SYMBOL.exec(raw);
|
|
791
835
|
if (sym) {
|
|
@@ -800,6 +844,16 @@ function createXcodeDiagnosticCollector(root = null, sdk = "iphonesimulator", po
|
|
|
800
844
|
finished = true;
|
|
801
845
|
return;
|
|
802
846
|
}
|
|
847
|
+
const wrapped = SCRIPT_WRAPPER.exec(raw);
|
|
848
|
+
if (wrapped) {
|
|
849
|
+
const text = (wrapped[2] ?? "").trim();
|
|
850
|
+
if (XTRACE.test(text)) return;
|
|
851
|
+
if (text) {
|
|
852
|
+
scriptLines.push(text.length > SCRIPT_LINE_MAX ? `${text.slice(0, 297)}...` : text);
|
|
853
|
+
if (scriptLines.length > SCRIPT_LINES_KEPT) scriptLines.shift();
|
|
854
|
+
}
|
|
855
|
+
raw = text;
|
|
856
|
+
}
|
|
803
857
|
if (UNDEFINED_HEADER.test(raw)) {
|
|
804
858
|
inUndefinedSymbols = true;
|
|
805
859
|
return;
|
|
@@ -833,7 +887,17 @@ function createXcodeDiagnosticCollector(root = null, sdk = "iphonesimulator", po
|
|
|
833
887
|
};
|
|
834
888
|
return {
|
|
835
889
|
push,
|
|
836
|
-
diagnostics
|
|
890
|
+
get diagnostics() {
|
|
891
|
+
const merged = [];
|
|
892
|
+
const keys = /* @__PURE__ */ new Set();
|
|
893
|
+
for (const d of [...failureDiagnostics(failedPhases, scriptLines), ...out]) {
|
|
894
|
+
const key = dedupeKey(d);
|
|
895
|
+
if (keys.has(key)) continue;
|
|
896
|
+
keys.add(key);
|
|
897
|
+
merged.push(d);
|
|
898
|
+
}
|
|
899
|
+
return merged;
|
|
900
|
+
}
|
|
837
901
|
};
|
|
838
902
|
}
|
|
839
903
|
function capDiagnostics(diagnostics, max = 10) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { h as macosToolchainAsync, m as macosToolchain } from "./toolchain-
|
|
1
|
+
import { h as macosToolchainAsync, m as macosToolchain } from "./toolchain-BeD7tbBW.mjs";
|
|
2
2
|
export { macosToolchain, macosToolchainAsync };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
1
|
+
import { t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
2
|
import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
|
|
3
3
|
import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
|
|
4
|
-
import { n as windowsLauncherArgs } from "./detached-entry-
|
|
4
|
+
import { n as windowsLauncherArgs } from "./detached-entry-VqFeEE9W.mjs";
|
|
5
5
|
import { n as stampAttempt, r as due, t as capChildLog } from "./attempt-ClyJlZPT.mjs";
|
|
6
6
|
import { readClaimSet } from "@stim-cli/core/ownership-claim";
|
|
7
7
|
import { closeSync, openSync } from "node:fs";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { D as ownership_claim_exports, E as debugLog, f as WorkspaceProcessCleanupError, n as isTimeoutError, t as getExecutor } from "./exec-
|
|
2
|
-
import { E as workspaceDir, M as withDirLock, _ as ensureWorkspaceStorage, h as discoverAgentSessions, m as attributeAgentSessions, o as updateWorkspaceState, p as agentKey } from "./workspace-state-
|
|
3
|
-
import { l as gitQuietAsync, o as git$1, s as gitAsync } from "./operation-exec-
|
|
4
|
-
import { Ct as gitCommonDirOnDisk, Ot as linkedWorktreesOnDisk } from "./settings-
|
|
5
|
-
import { U as ownedAvdDirectory } from "./android-
|
|
6
|
-
import { s as pullRequestLookups } from "./pull-request-
|
|
1
|
+
import { D as ownership_claim_exports, E as debugLog, f as WorkspaceProcessCleanupError, n as isTimeoutError, t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { E as workspaceDir, M as withDirLock, _ as ensureWorkspaceStorage, h as discoverAgentSessions, m as attributeAgentSessions, o as updateWorkspaceState, p as agentKey } from "./workspace-state-DOPXG2Gp.mjs";
|
|
3
|
+
import { l as gitQuietAsync, o as git$1, s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
|
|
4
|
+
import { Ct as gitCommonDirOnDisk, Ot as linkedWorktreesOnDisk } from "./settings-Ag4pbs0z.mjs";
|
|
5
|
+
import { U as ownedAvdDirectory } from "./android-CGctfYpv.mjs";
|
|
6
|
+
import { s as pullRequestLookups } from "./pull-request-m8cMZ3aE.mjs";
|
|
7
7
|
import { clearClaimChild, markClaimChildPending, releaseClaim, setClaimChild, tryAcquireClaim } from "@stim-cli/core/ownership-claim";
|
|
8
8
|
import { randomUUID } from "node:crypto";
|
|
9
9
|
import { existsSync, mkdirSync, readdirSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { i as recordWorkspaceUse, k as workspaceLogsDir } from "./workspace-state-
|
|
2
|
-
import { f as refuseNoProject, l as phaseLine } from "./command-output-
|
|
3
|
-
import {
|
|
4
|
-
import { Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, rt as settingShapeErrors } from "./settings-
|
|
5
|
-
import { f as projectRegistry, n as findCommandWorkspace } from "./project-
|
|
6
|
-
import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-
|
|
7
|
-
import { o as readWebRecord, r as cdpEndpoint } from "./state-
|
|
8
|
-
import { t as liveWebRecord } from "./page-
|
|
9
|
-
import { n as ensureWorkspaceStorageSafely } from "./native-runtime-
|
|
1
|
+
import { i as recordWorkspaceUse, k as workspaceLogsDir } from "./workspace-state-DOPXG2Gp.mjs";
|
|
2
|
+
import { f as refuseNoProject, l as phaseLine } from "./command-output-ByEmIwur.mjs";
|
|
3
|
+
import { A as withConfigLockAsync, O as upsertProject, m as getProject } from "./config-CNmN-ndb.mjs";
|
|
4
|
+
import { Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, rt as settingShapeErrors } from "./settings-Ag4pbs0z.mjs";
|
|
5
|
+
import { f as projectRegistry, n as findCommandWorkspace } from "./project-BCtQz48d.mjs";
|
|
6
|
+
import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-DWGAfaud.mjs";
|
|
7
|
+
import { o as readWebRecord, r as cdpEndpoint } from "./state-CfP-ccP8.mjs";
|
|
8
|
+
import { t as liveWebRecord } from "./page-CoN9al_x.mjs";
|
|
9
|
+
import { n as ensureWorkspaceStorageSafely } from "./native-runtime-UxUBU8up.mjs";
|
|
10
10
|
import chalk from "chalk";
|
|
11
11
|
//#region src/commands/web.ts
|
|
12
12
|
const printNote = (line) => console.error(line);
|
package/dist/web-run.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { D as ownership_claim_exports, T as process_identity_exports, l as cancellableSleep, t as getExecutor } from "./exec-
|
|
2
|
-
import { Dt as recordCreatedDevice } from "./android-
|
|
3
|
-
import { f as signalProcessTree } from "./metro-
|
|
1
|
+
import { D as ownership_claim_exports, T as process_identity_exports, l as cancellableSleep, t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { Dt as recordCreatedDevice } from "./android-CGctfYpv.mjs";
|
|
3
|
+
import { f as signalProcessTree } from "./metro-TIQ1Wft-.mjs";
|
|
4
4
|
import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
|
|
5
|
-
import { c as webClaimRoot, f as webLogFile, g as chromeProcessState, h as writeWebRecord, i as clearWebRecord, l as webDir, n as browserLogFile, p as webProfileDir, s as updateWebRecord, v as liveProfileHolder, y as removeSingletonFiles } from "./state-
|
|
6
|
-
import { l as probeWebDrivers } from "./activity-
|
|
7
|
-
import { t as connectOwnedBrowser } from "./cdp-
|
|
8
|
-
import { t as relaunchWithLogFile } from "./detached-entry-
|
|
9
|
-
import { i as chromeArgs, n as DESKTOP_PAGE, r as PHONE_SCREEN } from "./chrome-
|
|
5
|
+
import { c as webClaimRoot, f as webLogFile, g as chromeProcessState, h as writeWebRecord, i as clearWebRecord, l as webDir, n as browserLogFile, p as webProfileDir, s as updateWebRecord, v as liveProfileHolder, y as removeSingletonFiles } from "./state-CfP-ccP8.mjs";
|
|
6
|
+
import { l as probeWebDrivers } from "./activity-CdpXXSq2.mjs";
|
|
7
|
+
import { t as connectOwnedBrowser } from "./cdp-CgT47_9A.mjs";
|
|
8
|
+
import { t as relaunchWithLogFile } from "./detached-entry-VqFeEE9W.mjs";
|
|
9
|
+
import { i as chromeArgs, n as DESKTOP_PAGE, r as PHONE_SCREEN } from "./chrome-DL5znvmo.mjs";
|
|
10
10
|
import { existsSync, mkdirSync, openSync, realpathSync } from "node:fs";
|
|
11
11
|
import { isAbsolute, resolve } from "node:path";
|
|
12
12
|
import { LOG_ROTATE_BYTES } from "@stim-cli/core";
|
package/dist/windows-report.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as process_identity_exports, t as getExecutor } from "./exec-
|
|
2
|
-
import {
|
|
3
|
-
import { lt as workspaceHiddenSetting } from "./settings-
|
|
1
|
+
import { T as process_identity_exports, t as getExecutor } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { M as writeConfigSettingAsync, h as getProjectSettings, j as writeConfigSetting } from "./config-CNmN-ndb.mjs";
|
|
3
|
+
import { lt as workspaceHiddenSetting } from "./settings-Ag4pbs0z.mjs";
|
|
4
4
|
import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
5
5
|
import { homedir } from "node:os";
|
|
6
6
|
import { dirname, isAbsolute, join, relative } from "node:path";
|