stim 1.23.0 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/{acquire-artifact-ybouwJSR.mjs → acquire-artifact-CEs02U2o.mjs} +2 -2
- package/dist/{act-DG54PWtJ.mjs → act-Cyvm8xYc.mjs} +40 -25
- package/dist/{activity-B5RtpFda.mjs → activity-Dq3ZcdD8.mjs} +6 -6
- package/dist/{agent-device-usage-output-UJ5gC80l.mjs → agent-device-usage-output-CccomeE0.mjs} +5 -5
- package/dist/{android-C7sVmyI9.mjs → android-882m4hxX.mjs} +140 -46
- package/dist/{android-BoUJKbfz.mjs → android-BZppyPe_.mjs} +66 -46
- package/dist/{android-DR5lZ2Az.mjs → android-CX5IcRuf.mjs} +13 -3
- package/dist/{android-CHH4KLOR.mjs → android-DcztblCT.mjs} +5 -5
- package/dist/{android-cas-ngferVq2.mjs → android-cas-BtCOrNqb.mjs} +3 -3
- package/dist/android-cas-compiler.mjs +1 -1
- package/dist/api.d.mts +22 -4
- package/dist/api.mjs +32 -31
- package/dist/{artifact-5RteZem7.mjs → artifact-BR5VNArK.mjs} +17 -16
- package/dist/{artifact-Dwdo7k1E.mjs → artifact-Bdt_n9Jc.mjs} +17 -16
- package/dist/{artifact-platform-CXcmX_j3.mjs → artifact-platform-CMRc0M_r.mjs} +3 -3
- package/dist/{browser-web-CeEVlGug.mjs → browser-web-ycg9qWB8.mjs} +16 -17
- package/dist/{budget-DnPX3DXj.mjs → budget-dPGuhNai.mjs} +101 -40
- package/dist/{build-CqufZFqy.mjs → build-CaF574eS.mjs} +31 -28
- package/dist/{build-cache-Dv7RN200.mjs → build-cache-HFUQ9eLz.mjs} +152 -19
- package/dist/{build-plan-C8CIvRyi.mjs → build-plan-JsDUq4w1.mjs} +8 -7
- package/dist/{cache-manifest-DSeQjt-Q.mjs → cache-manifest-BPXRONJz.mjs} +1 -1
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{ccache-RcAy92gH.mjs → ccache-CCn1S6qG.mjs} +6 -6
- package/dist/{cdp-3fwICjzi.mjs → cdp-BG3FJCCx.mjs} +1 -1
- package/dist/{chrome-Bbw689-6.mjs → chrome-BvV8ssI3.mjs} +1 -1
- package/dist/{cli-D-J9fWGV.mjs → cli-xqAidP7O.mjs} +20 -20
- package/dist/cli.mjs +1 -1
- package/dist/{client-yyso1bwi.mjs → client-18-ZowoT.mjs} +254 -28
- package/dist/collector-run.mjs +6 -6
- package/dist/{command-output-Db8BqzxH.mjs → command-output-DxC0k2rk.mjs} +3 -2
- package/dist/{config-DlrsduwG.mjs → config-BZhXY15H.mjs} +3 -3
- package/dist/{created-devices-x9rN6bhs.mjs → created-devices-D2Aca-xu.mjs} +6 -2
- package/dist/{dependency-state-1I9KZT1Y.mjs → dependency-state-C56ll9hY.mjs} +2 -2
- package/dist/{detached-entry-BwNEtIrP.mjs → detached-entry-KmieOKgN.mjs} +1 -1
- package/dist/{dev-client-BnYSDiKa.mjs → dev-client-w_fok0Ek.mjs} +3 -3
- package/dist/{device-BvzPUBs3.mjs → device-4RUugw5X.mjs} +16 -16
- package/dist/{device-CCkWmkAA.mjs → device-BktRGdjS.mjs} +40 -44
- package/dist/{device-capacity-CjaSdrhg.mjs → device-capacity-Ic-kdmEV.mjs} +20 -16
- package/dist/device-host-worker.mjs +17 -17
- package/dist/{device-ios-uOiEETX2.mjs → device-ios-DzpSlZyd.mjs} +23 -24
- package/dist/{device-lease-run-BgwPHc6u.mjs → device-lease-run-DUtkbqBQ.mjs} +5 -5
- package/dist/{device-pool-C-ptmZTa.mjs → device-pool-CgBHk401.mjs} +3 -3
- package/dist/{doctor-pxxvipYC.mjs → doctor-BZ6oxNum.mjs} +1 -1
- package/dist/{doctor-8sr2tFOL.mjs → doctor-C33AzVfR.mjs} +28 -28
- package/dist/{doctor-D2SN3Ltx.mjs → doctor-DZgpqR6J.mjs} +17 -16
- package/dist/{doctor-fingerprint-DZLoYFVb.mjs → doctor-fingerprint-zlujA1Gs.mjs} +1 -1
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-watchman-sy_RNhFt.mjs → doctor-watchman-B453A231.mjs} +5 -5
- package/dist/{eas-build-CyjU5K7E.mjs → eas-build-CxKUNHsb.mjs} +4 -4
- package/dist/{eas-fallback-DV3Wytf1.mjs → eas-fallback-LMxk9Kw0.mjs} +14 -14
- package/dist/{eas-session-ledger-BzzsX97d.mjs → eas-session-ledger-Ck6YXPAO.mjs} +12 -8
- package/dist/{error-diagnostics-C6sVoeqO.mjs → error-diagnostics-BkKCZq4P.mjs} +17 -42
- package/dist/{exec-DEoAhcze.mjs → exec-VFRpu1iA.mjs} +116 -28
- package/dist/{gc-DLbzvTP2.mjs → gc-DDWEAj0w.mjs} +2 -2
- package/dist/{gc-CDoogxAI.mjs → gc-yVKpAOKM.mjs} +205 -28
- package/dist/{guide-BC37GcDG.mjs → guide-Bggftwc5.mjs} +252 -73
- package/dist/{hosted-android-CkclQig_.mjs → hosted-android-D4dweBof.mjs} +4 -4
- package/dist/{hosted-client-ByuMMO5s.mjs → hosted-client-BBTVe3X6.mjs} +4 -4
- package/dist/{hosted-ios-DtYHeuYR.mjs → hosted-ios-Sn0djzg8.mjs} +1 -1
- package/dist/{hosted-logs-Br84qWy1.mjs → hosted-logs-CYIZ5ubJ.mjs} +11 -6
- package/dist/{hosted-macos-DdtYajZt.mjs → hosted-macos-CXjsUNBR.mjs} +7 -7
- package/dist/{hosted-native-UPI9zdZ4.mjs → hosted-native-Doxbfzem.mjs} +58 -11
- package/dist/{idle-shutdown-DO7oIRlc.mjs → idle-shutdown-BInjLKqm.mjs} +10 -10
- package/dist/{ios-DZZbNYlY.mjs → ios-B1FXRCMX.mjs} +71 -44
- package/dist/{ios-vbUOqGXu.mjs → ios-BItP6lkn.mjs} +8 -8
- package/dist/{ios-hcBpnEGk.mjs → ios-CVUFFZ6C.mjs} +70 -13
- package/dist/{ios-xtlRHaeB.mjs → ios-ENC4sRPA.mjs} +1 -1
- package/dist/{ios-device-BXZ0c7Kb.mjs → ios-device-B6HK951C.mjs} +1 -1
- package/dist/{ios-device-JC3uWM4K.mjs → ios-device-BI38NFFH.mjs} +3 -3
- package/dist/{ios-project-CVyNwjAF.mjs → ios-project-KYqeJURj.mjs} +5 -5
- package/dist/{ios-signing-BtAffm0A.mjs → ios-signing-4c_qXvQm.mjs} +2 -2
- package/dist/{ios-state-Dtw5K2aI.mjs → ios-state-DlElquYD.mjs} +15 -7
- package/dist/{js-swap-C3QxUFJR.mjs → js-swap-BvrQvXHY.mjs} +7 -6
- package/dist/{launch-CHY3p-yz.mjs → launch-BVlyQw3T.mjs} +51 -49
- package/dist/{launch-Bz7JtaC4.mjs → launch-SfzGH_s9.mjs} +48 -29
- package/dist/{logs-mxqsWpJs.mjs → logs-DXE32kyb.mjs} +16 -9
- package/dist/{logs-CtNeNDuq.mjs → logs-ovlU7m7N.mjs} +8 -6
- package/dist/{macos-inNFbBWc.mjs → macos-B3BveDrU.mjs} +1 -1
- package/dist/{macos-u0BoHKnO.mjs → macos-CCfhb-jT.mjs} +49 -42
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +7 -7
- package/dist/{metro-DiXtA3Ty.mjs → metro-Bu8LBfzS.mjs} +4 -4
- package/dist/{metro-gateway-CKZqKqx7.mjs → metro-gateway-DtsOy-0P.mjs} +3 -4
- package/dist/{named-ports-DkEzOfzO.mjs → named-ports-BWDuU5oQ.mjs} +3 -3
- package/dist/{native-android-CdCSylTn.mjs → native-android-96BBizbq.mjs} +17 -17
- package/dist/{native-gradle-artifact-inputs-DHFnmrVf.mjs → native-gradle-artifact-inputs-BcLYBZil.mjs} +5 -5
- package/dist/{native-run-BUTu8T7A.mjs → native-run-BmH7U8pr.mjs} +6 -6
- package/dist/{native-runtime-CRSOZxKY.mjs → native-runtime-DgtJkzIa.mjs} +10 -9
- package/dist/{native-source-Y0yLhFyQ.mjs → native-source-D-4Dh4JU.mjs} +7 -4
- package/dist/{native-xcode-inputs-G6rkkhxu.mjs → native-xcode-inputs-irplbQb0.mjs} +2 -2
- package/dist/{native-xcode-ios-_os2PlCD.mjs → native-xcode-ios-BY-6hh6M.mjs} +18 -18
- package/dist/offload-worker.d.mts +7 -2
- package/dist/offload-worker.mjs +104 -43
- package/dist/{operation-exec-BW0em61G.mjs → operation-exec-CUZifp6Z.mjs} +2 -25
- package/dist/{ownership-C5fo5Edb.mjs → ownership-DxlZGDcV.mjs} +3 -3
- package/dist/{page-DBL2PiUU.mjs → page-CzEA_-5_.mjs} +2 -3
- package/dist/phone-reverses-BdsdesVF.mjs +57 -0
- package/dist/{placement-log-BnGgJRRZ.mjs → placement-log-DUvqqsB-.mjs} +1 -1
- package/dist/{plan-placement-BU42oOyT.mjs → plan-placement-4axc0Hs7.mjs} +3 -3
- package/dist/{ports-BSmQKzW7.mjs → ports-D-E_OiAO.mjs} +3 -3
- package/dist/{prebuild-BFm63bQ0.mjs → prebuild-DmVCf5xb.mjs} +14 -9
- package/dist/{project-CTLNHCfE.mjs → project-Dz-hWkb-.mjs} +21 -17
- package/dist/{pull-request-W1IuLXDt.mjs → pull-request-CbNlkFok.mjs} +2 -2
- package/dist/pull-requests.mjs +1 -1
- package/dist/{react-native-android-CFgUroxW.mjs → react-native-android-DOinxgwB.mjs} +75 -32
- package/dist/{react-native-build-CmJkTljQ.mjs → react-native-build-AuCu-aAP.mjs} +22 -19
- package/dist/{react-native-doctor-LTF-Xt8l.mjs → react-native-doctor-2ivJUmwZ.mjs} +10 -9
- package/dist/{react-native-ios-ChBF1MkB.mjs → react-native-ios-D5zTIuH8.mjs} +38 -22
- package/dist/{recordings-CQmfzAh7.mjs → recordings-CdPwYwvs.mjs} +1 -1
- package/dist/{registration-BcRgF6Ox.mjs → registration-CN6nlhcD.mjs} +1 -1
- package/dist/{reload-DF9hqUUB.mjs → reload-C1TTVesC.mjs} +144 -42
- package/dist/{reload-RBi1nj6Z.mjs → reload-Ck9RJeSq.mjs} +1 -1
- package/dist/{remote-BmvMCcJw.mjs → remote-DEZ7AOVq.mjs} +7 -7
- package/dist/{result-Cx5CRLvS.mjs → result-DqBrb12U.mjs} +40 -17
- package/dist/{run-DidHghD1.mjs → run-BIwoU44q.mjs} +2 -2
- package/dist/{selection-DSMbWEX2.mjs → selection-BLtvaqxc.mjs} +11 -5
- package/dist/{server-bare-CafzuyFB.mjs → server-bare-Z1ToVLPn.mjs} +2 -2
- package/dist/{server-command-BTiGPEjS.mjs → server-command-C0pmjNdG.mjs} +6 -6
- package/dist/server-expo-CEntXzRw.mjs +2 -0
- package/dist/{server-expo-D9lEz4aq.mjs → server-expo-Tt_hLRpy.mjs} +37 -13
- package/dist/{settings-C7O8A6ZI.mjs → settings-RKwY33wv.mjs} +114 -19
- package/dist/{settings-eKF_vJJs.mjs → settings-kkt0vP4w.mjs} +1 -1
- package/dist/{settings-write-79mQRr9C.mjs → settings-write--gj6MACV.mjs} +7 -7
- package/dist/settings.schema.json +13 -0
- package/dist/{simslim-BNckWpXi.mjs → simslim-CdWKT3vA.mjs} +2 -2
- package/dist/{slot-launch-D7M2nE4b.mjs → slot-launch-A1BgotaM.mjs} +6 -6
- package/dist/{stage-DKNM4ZPd.mjs → stage-ERTMh88n.mjs} +2 -3
- package/dist/{start-bjfiScgz.mjs → start-BKGrEhzG.mjs} +75 -35
- package/dist/{start-CRfN1kWV.mjs → start-Bmg_qmHi.mjs} +1 -1
- package/dist/{state--smjFSTL.mjs → state-B1ig0Kqy.mjs} +4 -4
- package/dist/{state-08I3hw3_.mjs → state-BfAltYJP.mjs} +2 -2
- package/dist/{stats-DioA6cBU.mjs → stats-B-ckuiUg.mjs} +5 -5
- package/dist/{stats-report-BzaPrRm6.mjs → stats-report-n2U5plhk.mjs} +1 -1
- package/dist/{status-kzbeWk4x.mjs → status-DfFp6a76.mjs} +24 -24
- package/dist/{status-BRROykC8.mjs → status-Fect2w9R.mjs} +1 -1
- package/dist/{status-Eqx_20WC.mjs → status-Pw-807f0.mjs} +1 -1
- package/dist/{status-watch-BIqqbJ6q.mjs → status-watch-XC7F-AMf.mjs} +5 -5
- package/dist/status-worker.mjs +1 -1
- package/dist/stim-clonefile.c +18 -0
- package/dist/{stim-desktop-D5OGpYZM.mjs → stim-desktop-DS0mzR8U.mjs} +2 -2
- package/dist/{stop-B18d8KDw.mjs → stop-BFu7X_Do.mjs} +2 -2
- package/dist/{stop-B2uLQfoM.mjs → stop-CL1kDHds.mjs} +55 -21
- package/dist/{stop-DzLJc7Ei.mjs → stop-DhclRwOO.mjs} +5 -5
- package/dist/supervisor-run.mjs +16 -16
- package/dist/{support-BTpZ6RAJ.mjs → support-B1W-hmC2.mjs} +8 -8
- package/dist/{support-DTBV56gy.mjs → support-B3tzVhKn.mjs} +6 -6
- package/dist/{swiftpm-artifact-inputs-DFcGsXDP.mjs → swiftpm-artifact-inputs-BWYPj9Sn.mjs} +4 -4
- package/dist/{swiftpm-macos-r_WSKlXr.mjs → swiftpm-macos-BVCP5mO4.mjs} +14 -13
- package/dist/{toolchain-GVgnf8d1.mjs → toolchain-BjgKdoEf.mjs} +1 -1
- package/dist/{toolchain-CWeGJgCc.mjs → toolchain-D3bmRMia.mjs} +57 -36
- package/dist/trigger-BLsHgAGR.mjs +2 -0
- package/dist/{trigger-Cbyc41d_.mjs → trigger-CBMe2YLH.mjs} +2 -2
- package/dist/{warm-progress-CA3TgT3-.mjs → warm-progress-ol0ZypEu.mjs} +6 -6
- package/dist/{web-CwREhjD-.mjs → web-BH7peScT.mjs} +12 -10
- package/dist/web-BdOFlTJr.mjs +2 -0
- package/dist/web-run.mjs +8 -9
- package/dist/windows-report.mjs +12 -1
- package/dist/windows-report.ps1 +1 -1
- package/dist/{workspace-state-U08dEzhG.mjs → workspace-state-CeBpIZgr.mjs} +11 -4
- package/dist/{workspaces-BxzYlo3P.mjs → workspaces-CSV2Orf4.mjs} +36 -32
- package/dist/{worktree-BxfVxG_b.mjs → worktree-DEDUzO_L.mjs} +1 -1
- package/dist/{worktree-8lqn_lBp.mjs → worktree-Dw8kfacb.mjs} +324 -99
- package/dist/{xcode-iQnROM5o.mjs → xcode-DHu41qQ4.mjs} +41 -27
- package/package.json +7 -7
- package/dist/native-gradle-inputs-Dnh84Zbd.mjs +0 -211
- package/dist/server-expo-C-Buqvn_.mjs +0 -2
- package/dist/trigger-yb_nFzPF.mjs +0 -2
- package/dist/web-Cduk0NSE.mjs +0 -2
package/dist/offload-worker.mjs
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
1
|
+
import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { d as workspaceDir, m as workspaceLogsDir$1 } from "./paths-DQtTgsBf.mjs";
|
|
3
|
-
import { k as writeConfigSetting } from "./config-
|
|
3
|
+
import { k as writeConfigSetting } from "./config-BZhXY15H.mjs";
|
|
4
4
|
import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
|
|
5
|
-
import { o as git, s as gitAsync } from "./operation-exec-
|
|
6
|
-
import { d as androidLayoutSetting, y as iosProjectDirSetting } from "./settings-
|
|
7
|
-
import { f as projectRegistry, g as selectNativeXcodeProject } from "./project-
|
|
5
|
+
import { o as git, s as gitAsync } from "./operation-exec-CUZifp6Z.mjs";
|
|
6
|
+
import { d as androidLayoutSetting, y as iosProjectDirSetting } from "./settings-RKwY33wv.mjs";
|
|
7
|
+
import { f as projectRegistry, g as selectNativeXcodeProject } from "./project-Dz-hWkb-.mjs";
|
|
8
8
|
import { o as parseNdjsonText } from "./ndjson-CgE_o3Dl.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { f as
|
|
9
|
+
import { Ln as processContext } from "./budget-dPGuhNai.mjs";
|
|
10
|
+
import { d as fingerprintProject, i as compareSourceLists, v as refingerprintAfterMutation } from "./build-cache-HFUQ9eLz.mjs";
|
|
11
|
+
import { _ as unmetNodePin, g as projectNodeLine, h as pathNodeVersion, v as withProjectNode } from "./server-expo-Tt_hLRpy.mjs";
|
|
12
|
+
import { n as CCACHE_UNAVAILABLE, o as resolveCcache } from "./ccache-CCn1S6qG.mjs";
|
|
13
|
+
import { C as COMPILATION_CACHE_CORRUPT, b as validateGradleManifest, f as reactNativeArtifactReceipt, g as gradleStateDirectories, h as gradleOffloadInputs, m as reactNativeBuildQuery, p as reactNativeArtifactToolchain, v as nativeGradleOutputs, w as clearCorruptCompilationCache, x as verifyGradleTransfer } from "./client-18-ZowoT.mjs";
|
|
14
|
+
import { f as workerToolchain, h as readPodState, i as availableIphone, m as podsAreStale, v as runPodInstall } from "./toolchain-D3bmRMia.mjs";
|
|
14
15
|
import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
|
|
15
|
-
import { a as sourceManifest, o as verifyNativeTransfer } from "./native-source-
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import { r as
|
|
25
|
-
import {
|
|
26
|
-
import { a as nativeGradleWorkerArtifactIdentity, i as nativeGradleArtifactSnapshotFromReceipt, o as nativeGradleWorkerScope } from "./native-gradle-artifact-inputs-DHFnmrVf.mjs";
|
|
16
|
+
import { a as sourceManifest, o as verifyNativeTransfer } from "./native-source-D-4Dh4JU.mjs";
|
|
17
|
+
import { n as buildAndroid, o as gradlewPath, r as buildIos, u as assembleTaskFor } from "./react-native-build-AuCu-aAP.mjs";
|
|
18
|
+
import { f as podAction } from "./support-B1W-hmC2.mjs";
|
|
19
|
+
import { a as runPrebuild, r as recordPrebuild, t as planPrebuild } from "./prebuild-DmVCf5xb.mjs";
|
|
20
|
+
import { g as dumpApkManifest, p as apkPackage } from "./support-B3tzVhKn.mjs";
|
|
21
|
+
import { n as buildAndroidOperation, t as buildIosOperation } from "./build-CaF574eS.mjs";
|
|
22
|
+
import { i as stageBundle, n as resolveBundleExtras } from "./stage-ERTMh88n.mjs";
|
|
23
|
+
import { t as logLines } from "./run-BIwoU44q.mjs";
|
|
24
|
+
import { r as nativeXcodeMetadataDirectories } from "./native-xcode-inputs-irplbQb0.mjs";
|
|
25
|
+
import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-BWYPj9Sn.mjs";
|
|
26
|
+
import { a as nativeGradleWorkerArtifactIdentity, i as nativeGradleArtifactSnapshotFromReceipt, o as nativeGradleWorkerScope } from "./native-gradle-artifact-inputs-BcLYBZil.mjs";
|
|
27
27
|
import { createHash } from "node:crypto";
|
|
28
28
|
import { chmodSync, constants, copyFileSync, cpSync, createReadStream, createWriteStream, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
|
|
29
29
|
import { isDeepStrictEqual } from "node:util";
|
|
30
|
-
import { basename, dirname, join, relative, resolve, sep } from "node:path";
|
|
31
|
-
import { dependencyInstall, withAmbientContext } from "@stim-cli/core";
|
|
30
|
+
import { basename, delimiter, dirname, join, relative, resolve, sep } from "node:path";
|
|
31
|
+
import { dependencyInstall, reusableDependencies, withAmbientContext } from "@stim-cli/core";
|
|
32
32
|
import { isJsonObject, windowsShortDir, windowsShortDirKey } from "@stim-cli/core/state";
|
|
33
33
|
import { realpath } from "node:fs/promises";
|
|
34
34
|
import { pipeline } from "node:stream/promises";
|
|
@@ -481,22 +481,69 @@ async function materialize(job, src) {
|
|
|
481
481
|
renameSync(tmp, recordFile);
|
|
482
482
|
return {
|
|
483
483
|
written,
|
|
484
|
-
removed
|
|
484
|
+
removed,
|
|
485
|
+
record: next
|
|
485
486
|
};
|
|
486
487
|
}
|
|
488
|
+
/** The synced files whose content no longer matches the manifest, such as a lockfile pod install rewrote. */
|
|
489
|
+
function rewrittenFiles(src, manifest, record) {
|
|
490
|
+
return manifest.flatMap((entry) => {
|
|
491
|
+
if (entry.kind === "directory") return [];
|
|
492
|
+
const target = join(src, entry.path);
|
|
493
|
+
const stat = lstatSync(target, { throwIfNoEntry: false });
|
|
494
|
+
const known = record[entry.path];
|
|
495
|
+
if (stat && known && stat.mtimeMs === known.mtimeMs && stat.size === known.size) return [];
|
|
496
|
+
if (!stat) return [entry.path];
|
|
497
|
+
const content = stat.isSymbolicLink() ? readlinkSync(target) : stat.isFile() ? readFileSync(target) : null;
|
|
498
|
+
return content !== null && createHash("sha256").update(content).digest("hex") === entry.sha256 ? [] : [entry.path];
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
function namedList(names) {
|
|
502
|
+
const shown = names.slice(0, 3).join(", ");
|
|
503
|
+
return names.length > 3 ? `${shown} and ${names.length - 3} more` : shown;
|
|
504
|
+
}
|
|
505
|
+
function fingerprintMismatch(job, there, sources, mutated) {
|
|
506
|
+
const differing = job.expectedSources ? compareSourceLists(job.expectedSources, [...sources]).map((change) => change.name) : [];
|
|
507
|
+
return [
|
|
508
|
+
`the checkout there fingerprints ${there.slice(0, 12)}, here ${job.expectedFingerprint?.slice(0, 12)}`,
|
|
509
|
+
...mutated.files.length ? [`${mutated.steps.join(" and ")} there rewrote ${namedList(mutated.files)}`] : [],
|
|
510
|
+
...differing.length ? [`differing sources: ${namedList(differing)}`] : []
|
|
511
|
+
].join("; ");
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Puts the Node that `root`, or the nearest directory above it in `src`, pins first on this worker's `PATH`, and
|
|
515
|
+
* reports which Node the build runs on.
|
|
516
|
+
*/
|
|
517
|
+
function useProjectNode(root, src) {
|
|
518
|
+
const node = withProjectNode(root, process.env, { top: src });
|
|
519
|
+
if (node.pinned) process.env.PATH = node.env.PATH;
|
|
520
|
+
note("deps", node.pinned ? projectNodeLine(node.pinned) : `Node ${pathNodeVersion(process.env) ?? "unknown"} on PATH`);
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Names the `node` first on this worker's `PATH` in `<iosDir>/.xcode.env.local`. React Native's `with-environment.sh`
|
|
524
|
+
* runs Xcode's script phases on that file's `NODE_BINARY`, and its CocoaPods setup writes the file only when it is
|
|
525
|
+
* missing, so a file left from an earlier job, or one recording a Homebrew Cellar path, would otherwise win.
|
|
526
|
+
*/
|
|
527
|
+
function useXcodeNode(iosDir) {
|
|
528
|
+
const node = (process.env.PATH ?? "").split(delimiter).filter(Boolean).map((dir) => join(dir, "node")).find((path) => statSync(path, { throwIfNoEntry: false })?.isFile());
|
|
529
|
+
if (!node || !existsSync(iosDir)) return;
|
|
530
|
+
const file = join(iosDir, ".xcode.env.local");
|
|
531
|
+
const line = `export NODE_BINARY='${node.replaceAll("'", "'\\''")}'`;
|
|
532
|
+
const text = existsSync(file) ? readFileSync(file, "utf8") : "";
|
|
533
|
+
const next = /^export NODE_BINARY=.*$/m.test(text) ? text.replace(/^export NODE_BINARY=.*$/gm, () => line) : `${text}${text && !text.endsWith("\n") ? "\n" : ""}${line}\n`;
|
|
534
|
+
if (next !== text) writeFileSync(file, next);
|
|
535
|
+
}
|
|
487
536
|
/** Installs JavaScript dependencies when the lockfile, or the install command, changed since the last install. */
|
|
488
537
|
async function ensureDependencies(job, src) {
|
|
489
|
-
const install = dependencyInstall(src, job.
|
|
538
|
+
const install = dependencyInstall(src, relative(src, realpathSync(join(src, job.project))));
|
|
490
539
|
if (!install) return;
|
|
491
540
|
const { command, args, digest, lockfile } = install;
|
|
492
|
-
const marker = join(job.area,
|
|
541
|
+
const marker = join(job.area, install.marker);
|
|
493
542
|
const installed = () => writeFileSync(join(job.area, "lockfile"), lockfile);
|
|
494
|
-
if (
|
|
495
|
-
|
|
496
|
-
}
|
|
497
|
-
note("deps", `${command} ${args.join(" ")}`);
|
|
543
|
+
if (reusableDependencies(job.area, job.project, lockfile)) return installed();
|
|
544
|
+
note("deps", `${command} ${args.join(" ")}${install.dir === "." ? "" : ` in ${install.dir}`}`);
|
|
498
545
|
const child = getExecutor().spawn(command, args, {
|
|
499
|
-
cwd: src,
|
|
546
|
+
cwd: join(src, install.dir),
|
|
500
547
|
env: {
|
|
501
548
|
...process.env,
|
|
502
549
|
CI: "1"
|
|
@@ -672,10 +719,12 @@ async function build(job) {
|
|
|
672
719
|
compiled = await workerOperation(root, (context) => compileMacos(context, job, root, log, time));
|
|
673
720
|
if (!compiled.ok) return failed(compiled.code, compiled.message);
|
|
674
721
|
} else {
|
|
722
|
+
useProjectNode(realRoot, realSrc);
|
|
723
|
+
const nodeFailed = (code, message) => failed(code, [message, unmetNodePin(realRoot, process.env, { top: realSrc })].filter(Boolean).join(" "));
|
|
675
724
|
try {
|
|
676
725
|
await time("depsMs", () => ensureDependencies(job, src));
|
|
677
726
|
} catch (error) {
|
|
678
|
-
return
|
|
727
|
+
return nodeFailed("deps-failed", error.message);
|
|
679
728
|
}
|
|
680
729
|
const platform = job.platform;
|
|
681
730
|
let iosProject;
|
|
@@ -696,7 +745,9 @@ async function build(job) {
|
|
|
696
745
|
const initial = await time("fingerprintMs", () => fingerprintProject(realRoot, {
|
|
697
746
|
platform,
|
|
698
747
|
iosProjectPath: iosProject.relative,
|
|
699
|
-
androidLayout
|
|
748
|
+
androidLayout,
|
|
749
|
+
ignoredPaths: job.expectedIgnored,
|
|
750
|
+
trackedPaths: job.expectedTracked
|
|
700
751
|
}));
|
|
701
752
|
if (!initial) return failed("no-fingerprint", "The remote machine could not fingerprint the project.");
|
|
702
753
|
const plan = planPrebuild(realRoot, platform, {
|
|
@@ -710,10 +761,11 @@ async function build(job) {
|
|
|
710
761
|
note("prebuild", plan === "generate" ? `generating ${platform}/` : `regenerating ${platform}/ with --clean`);
|
|
711
762
|
recordPrebuild(realRoot, platform, null);
|
|
712
763
|
const result = await time("prebuildMs", () => runPrebuild(realRoot, platform, log, { clean: plan === "regenerate" }));
|
|
713
|
-
if (result?.failed) return
|
|
714
|
-
mutations.push("prebuild");
|
|
764
|
+
if (result?.failed) return nodeFailed("prebuild-failed", result.reason ?? "expo prebuild failed.");
|
|
765
|
+
mutations.push("expo prebuild");
|
|
715
766
|
}
|
|
716
767
|
if (platform === "ios") {
|
|
768
|
+
useXcodeNode(iosProject.dir);
|
|
717
769
|
const podState = readPodState(realRoot, iosProject.dir);
|
|
718
770
|
const pods = podAction(podState, podsAreStale(podState.lockText, podState.manifestText, podState.dir));
|
|
719
771
|
if (pods.install) {
|
|
@@ -723,24 +775,31 @@ async function build(job) {
|
|
|
723
775
|
onHeartbeat: (line) => note("pods", line)
|
|
724
776
|
}));
|
|
725
777
|
if (result?.failed) return failed("pods-failed", result.reason ?? "pod install failed.");
|
|
726
|
-
mutations.push("
|
|
778
|
+
mutations.push("pod install");
|
|
727
779
|
}
|
|
728
780
|
}
|
|
729
781
|
fingerprint = initial.hash;
|
|
782
|
+
let sources = initial.sources;
|
|
730
783
|
if (mutations.length) {
|
|
731
784
|
const after = await time("fingerprintMs", () => refingerprintAfterMutation({
|
|
732
785
|
projectRoot: realRoot,
|
|
733
786
|
platform,
|
|
734
787
|
previousHash: initial.hash,
|
|
735
788
|
iosProjectPath: iosProject.relative,
|
|
736
|
-
androidLayout
|
|
789
|
+
androidLayout,
|
|
790
|
+
ignoredPaths: job.expectedIgnored,
|
|
791
|
+
trackedPaths: job.expectedTracked
|
|
737
792
|
}));
|
|
738
793
|
if (!after) return failed("no-fingerprint", `No fingerprint after ${mutations.join(", ")}.`);
|
|
739
794
|
fingerprint = after.hash;
|
|
740
|
-
|
|
795
|
+
sources = after.sources;
|
|
796
|
+
if (mutations.includes("expo prebuild")) recordPrebuild(realRoot, platform, after.hash);
|
|
741
797
|
}
|
|
742
|
-
if (fingerprint !== job.expectedFingerprint) return failed("fingerprint-mismatch",
|
|
743
|
-
|
|
798
|
+
if (fingerprint !== job.expectedFingerprint) return failed("fingerprint-mismatch", fingerprintMismatch(job, fingerprint, sources, {
|
|
799
|
+
steps: mutations,
|
|
800
|
+
files: mutations.length ? rewrittenFiles(src, job.manifest, mirrored.record) : []
|
|
801
|
+
}));
|
|
802
|
+
const tools = job.cacheArtifact ? await reactNativeArtifactToolchain(platform, realRoot, iosProject.dir) : null;
|
|
744
803
|
const query = tools ? reactNativeBuildQuery(job, fingerprint, job.project, tools) : null;
|
|
745
804
|
const receipt = query ? reactNativeArtifactReceipt(query, tools) : null;
|
|
746
805
|
compiled = platform === "android" ? await compileAndroid(job, realRoot, log, time, androidLayout) : await compileIos(job, realRoot, log, time);
|
|
@@ -751,10 +810,12 @@ async function build(job) {
|
|
|
751
810
|
platform,
|
|
752
811
|
previousHash: builtFingerprint,
|
|
753
812
|
iosProjectPath: iosProject.relative,
|
|
754
|
-
androidLayout
|
|
813
|
+
androidLayout,
|
|
814
|
+
ignoredPaths: job.expectedIgnored,
|
|
815
|
+
trackedPaths: job.expectedTracked
|
|
755
816
|
}));
|
|
756
817
|
if (!settled || settled.moved) return failed("fingerprint-moved", "The inputs changed during the build there.");
|
|
757
|
-
const after = query && receipt ? reactNativeArtifactReceipt(query, await reactNativeArtifactToolchain(platform, realRoot)) : null;
|
|
818
|
+
const after = query && receipt ? reactNativeArtifactReceipt(query, await reactNativeArtifactToolchain(platform, realRoot, iosProject.dir)) : null;
|
|
758
819
|
if (receipt && after && isDeepStrictEqual(receipt, after)) compiled.reactNativeArtifact = receipt;
|
|
759
820
|
}
|
|
760
821
|
try {
|
|
@@ -1,28 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { b as operationState, c as throwIfCancelled, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { sep } from "node:path";
|
|
3
|
-
//#region src/cancellation.ts
|
|
4
|
-
function cancelledError(what, cause) {
|
|
5
|
-
return Object.assign(new Error(`The ${what} was cancelled.`, cause === void 0 ? void 0 : { cause }), { code: "STIM_CANCELLED" });
|
|
6
|
-
}
|
|
7
|
-
function throwIfCancelled(signal, what) {
|
|
8
|
-
if (signal?.aborted) throw cancelledError(what);
|
|
9
|
-
}
|
|
10
|
-
function cancellableSleep(ms, { signal, what = "wait", ref = true } = {}) {
|
|
11
|
-
return new Promise((resolve, reject) => {
|
|
12
|
-
if (signal?.aborted) return reject(cancelledError(what));
|
|
13
|
-
const onAbort = () => {
|
|
14
|
-
clearTimeout(timer);
|
|
15
|
-
reject(cancelledError(what));
|
|
16
|
-
};
|
|
17
|
-
const timer = setTimeout(() => {
|
|
18
|
-
signal?.removeEventListener("abort", onAbort);
|
|
19
|
-
resolve();
|
|
20
|
-
}, ms);
|
|
21
|
-
if (!ref) timer.unref();
|
|
22
|
-
signal?.addEventListener("abort", onAbort, { once: true });
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
//#endregion
|
|
26
3
|
//#region src/workspace/git.ts
|
|
27
4
|
const GIT_TIMEOUT_MS = 1e4;
|
|
28
5
|
const GIT_CONCURRENCY = 6;
|
|
@@ -168,4 +145,4 @@ async function runOperationFileQuiet(context, executor, file, args, options) {
|
|
|
168
145
|
}
|
|
169
146
|
}
|
|
170
147
|
//#endregion
|
|
171
|
-
export { killOnAbort as a, gitQuiet as c,
|
|
148
|
+
export { killOnAbort as a, gitQuiet as c, gitPath as i, gitQuietAsync as l, runOperationFileQuiet as n, git as o, childEnvironment as r, gitAsync as s, runOperationFile as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as withWorkspaceStateLock, d as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-
|
|
3
|
-
import { c as pidExists } from "./metro-
|
|
1
|
+
import { S as process_identity_exports } from "./exec-VFRpu1iA.mjs";
|
|
2
|
+
import { c as withWorkspaceStateLock, d as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-CeBpIZgr.mjs";
|
|
3
|
+
import { c as pidExists } from "./metro-Bu8LBfzS.mjs";
|
|
4
4
|
import { realpathSync } from "node:fs";
|
|
5
5
|
//#region src/collector/state.ts
|
|
6
6
|
function collectorRoot(root) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as connectOwnedBrowser } from "./cdp-3fwICjzi.mjs";
|
|
1
|
+
import { S as process_identity_exports, c as throwIfCancelled } from "./exec-VFRpu1iA.mjs";
|
|
2
|
+
import { t as connectOwnedBrowser } from "./cdp-BG3FJCCx.mjs";
|
|
4
3
|
//#region src/web/page.ts
|
|
5
4
|
/** The record of a verified live browser: its supervisor and Chrome are the processes the record names. */
|
|
6
5
|
function liveWebRecord(record) {
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { U as parseDeviceSlotKey, V as deviceSlotKey } from "./config-BZhXY15H.mjs";
|
|
2
|
+
import { r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CeBpIZgr.mjs";
|
|
3
|
+
import { $ as removeMetroReverses } from "./android-882m4hxX.mjs";
|
|
4
|
+
import { isJsonObject } from "@stim-cli/core/state";
|
|
5
|
+
//#region src/devices/phone-reverses.ts
|
|
6
|
+
const KEY = "phoneReverses";
|
|
7
|
+
function readRecords(state) {
|
|
8
|
+
const raw = state?.[KEY];
|
|
9
|
+
const records = {};
|
|
10
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return records;
|
|
11
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
12
|
+
if (!isJsonObject(value)) continue;
|
|
13
|
+
const entry = value;
|
|
14
|
+
if (typeof entry.serial !== "string" || !Array.isArray(entry.ports) || !parseDeviceSlotKey(key)) continue;
|
|
15
|
+
records[key] = {
|
|
16
|
+
serial: entry.serial,
|
|
17
|
+
ports: entry.ports.filter((port) => Number.isSafeInteger(port) && port > 0)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
return records;
|
|
21
|
+
}
|
|
22
|
+
async function recordPhoneReverse(root, slot, serial, port) {
|
|
23
|
+
const key = deviceSlotKey("android", slot);
|
|
24
|
+
await updateWorkspaceStateAsync(root, (state) => {
|
|
25
|
+
const records = readRecords(state);
|
|
26
|
+
const previous = records[key]?.serial === serial ? records[key].ports : [];
|
|
27
|
+
records[key] = {
|
|
28
|
+
serial,
|
|
29
|
+
ports: [.../* @__PURE__ */ new Set([...previous, port])]
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
...state,
|
|
33
|
+
[KEY]: records
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async function removePhoneReverses(root, { slot, operation } = {}) {
|
|
38
|
+
const records = Object.entries(readRecords(readWorkspaceState$1(root))).filter(([key]) => slot === void 0 || parseDeviceSlotKey(key)?.slot === slot);
|
|
39
|
+
for (const [, { serial, ports }] of records) await removeMetroReverses(serial, ports, operation);
|
|
40
|
+
if (records.length === 0) return;
|
|
41
|
+
await updateWorkspaceStateAsync(root, (state) => {
|
|
42
|
+
const remaining = readRecords(state);
|
|
43
|
+
for (const [key, done] of records) {
|
|
44
|
+
const current = remaining[key];
|
|
45
|
+
if (current?.serial !== done.serial) continue;
|
|
46
|
+
current.ports = current.ports.filter((port) => !done.ports.includes(port));
|
|
47
|
+
if (current.ports.length === 0) delete remaining[key];
|
|
48
|
+
}
|
|
49
|
+
const { [KEY]: _, ...rest } = state;
|
|
50
|
+
return Object.keys(remaining).length ? {
|
|
51
|
+
...rest,
|
|
52
|
+
[KEY]: remaining
|
|
53
|
+
} : rest;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { removePhoneReverses as n, recordPhoneReverse as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as buildPlacementSettings } from "./selection-
|
|
1
|
+
import { n as buildPlacementSettings } from "./selection-BLtvaqxc.mjs";
|
|
2
2
|
//#region src/placement-log.ts
|
|
3
3
|
/** `machine` is `local` when the run stays on this machine. */
|
|
4
4
|
function placementRecord(input) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as readHostedNative } from "./ios-state-
|
|
3
|
-
import { i as probeHost, n as automaticDevicePlacement } from "./eas-fallback-
|
|
1
|
+
import { f as hostingMachines } from "./selection-BLtvaqxc.mjs";
|
|
2
|
+
import { r as readHostedNative } from "./ios-state-DlElquYD.mjs";
|
|
3
|
+
import { i as probeHost, n as automaticDevicePlacement } from "./eas-fallback-LMxk9Kw0.mjs";
|
|
4
4
|
import { automaticMachineEnabled } from "@stim-cli/core/state";
|
|
5
5
|
//#region src/device-host/plan-placement.ts
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { p as getProject } from "./config-
|
|
2
|
-
import { n as findCommandWorkspace } from "./project-
|
|
3
|
-
import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-
|
|
1
|
+
import { p as getProject } from "./config-BZhXY15H.mjs";
|
|
2
|
+
import { n as findCommandWorkspace } from "./project-Dz-hWkb-.mjs";
|
|
3
|
+
import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-BWDuU5oQ.mjs";
|
|
4
4
|
//#region src/commands/ports.ts
|
|
5
5
|
async function inProject(action) {
|
|
6
6
|
try {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as spawnDeclared, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { i as sharedBuildCache } from "./paths-DQtTgsBf.mjs";
|
|
3
3
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
4
|
-
import { o as git, s as gitAsync } from "./operation-exec-
|
|
5
|
-
import { o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-
|
|
6
|
-
import { yt as gitCommonDirOnDisk } from "./settings-
|
|
7
|
-
import { v as detectIsExpo } from "./project-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { i as expoBinRefusal, o as expoSdkMajor, r as expoBinPath } from "./server-expo-
|
|
4
|
+
import { o as git, s as gitAsync } from "./operation-exec-CUZifp6Z.mjs";
|
|
5
|
+
import { l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-CeBpIZgr.mjs";
|
|
6
|
+
import { yt as gitCommonDirOnDisk } from "./settings-RKwY33wv.mjs";
|
|
7
|
+
import { v as detectIsExpo } from "./project-Dz-hWkb-.mjs";
|
|
8
|
+
import { $n as remoteCliInvocation } from "./budget-dPGuhNai.mjs";
|
|
9
|
+
import { S as storedSources, o as diffFingerprintSources } from "./build-cache-HFUQ9eLz.mjs";
|
|
10
|
+
import { i as expoBinRefusal, o as expoSdkMajor, r as expoBinPath, s as expoTelemetryEnv } from "./server-expo-Tt_hLRpy.mjs";
|
|
11
11
|
import { existsSync, realpathSync } from "node:fs";
|
|
12
12
|
import { dirname, join, relative } from "node:path";
|
|
13
13
|
import { ambientContext } from "@stim-cli/core";
|
|
@@ -342,6 +342,10 @@ function recordPrebuild(root, platform, fingerprint) {
|
|
|
342
342
|
}
|
|
343
343
|
}));
|
|
344
344
|
}
|
|
345
|
+
/** Records the prebuild fingerprint after waiting for the workspace state lock without blocking the event loop. */
|
|
346
|
+
function recordPrebuildAsync(root, platform, fingerprint) {
|
|
347
|
+
return withWorkspaceStateLockAsync(root, () => recordPrebuild(root, platform, fingerprint));
|
|
348
|
+
}
|
|
345
349
|
/**
|
|
346
350
|
* @expo/cli 57 made `expo prebuild` delete existing native folders by default and added `--no-clean`
|
|
347
351
|
* to keep them (expo/expo#47209); earlier CLIs keep them by default and reject `--no-clean`.
|
|
@@ -439,6 +443,7 @@ async function runPrebuild(root, platform, logWriter, { spawnFn = null, now = Da
|
|
|
439
443
|
],
|
|
440
444
|
env: {
|
|
441
445
|
...ambientContext()?.env ?? process.env,
|
|
446
|
+
...expoTelemetryEnv(ambientContext()?.env ?? process.env),
|
|
442
447
|
FORCE_COLOR: "0",
|
|
443
448
|
CI: "1"
|
|
444
449
|
}
|
|
@@ -493,4 +498,4 @@ async function runPrebuild(root, platform, logWriter, { spawnFn = null, now = Da
|
|
|
493
498
|
};
|
|
494
499
|
}
|
|
495
500
|
//#endregion
|
|
496
|
-
export {
|
|
501
|
+
export { runPrebuild as a, fingerprintErrorMissReason as c, recordPrebuildAsync as i, predictBuildMiss as l, planPrebuildAsync as n, staleNativeDirRefusal as o, recordPrebuild as r, explainBuildMiss as s, planPrebuild as t, skippedMissReason as u };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { S as process_identity_exports } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { c as supervisorPidFile, g as workspaceStateFile$1 } from "./paths-DQtTgsBf.mjs";
|
|
3
|
-
import { U as parseDeviceSlotKey, V as deviceSlotKey, _ as loadConfig$1, g as isPathPrefix, l as findEnclosingWorktreeRoot, p as getProject } from "./config-
|
|
4
|
-
import { c as withWorkspaceStateLock, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-
|
|
5
|
-
import { K as resolveIosProjectDir, Mt as repoRoot, W as resolveAndroidLayout, at as webSettings, tt as settingValueAt } from "./settings-
|
|
3
|
+
import { U as parseDeviceSlotKey, V as deviceSlotKey, _ as loadConfig$1, g as isPathPrefix, l as findEnclosingWorktreeRoot, p as getProject } from "./config-BZhXY15H.mjs";
|
|
4
|
+
import { c as withWorkspaceStateLock, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-CeBpIZgr.mjs";
|
|
5
|
+
import { K as resolveIosProjectDir, Mt as repoRoot, W as resolveAndroidLayout, at as webSettings, tt as settingValueAt } from "./settings-RKwY33wv.mjs";
|
|
6
6
|
import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
7
7
|
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
8
8
|
import { projectRootDirectories } from "@stim-cli/core/state";
|
|
@@ -81,6 +81,10 @@ function writeWorkspaceLaunch(root, platform, record, slot = "default") {
|
|
|
81
81
|
};
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
|
+
/** Records a launch after asynchronously acquiring the workspace state lock. */
|
|
85
|
+
function writeWorkspaceLaunchAsync(root, platform, record, slot = "default") {
|
|
86
|
+
return withWorkspaceStateLockAsync(root, () => writeWorkspaceLaunch(root, platform, record, slot));
|
|
87
|
+
}
|
|
84
88
|
function clearWorkspaceLaunches(root, slot) {
|
|
85
89
|
updateWorkspaceState(root, (state) => {
|
|
86
90
|
if (!state.launches || typeof state.launches !== "object") return state;
|
|
@@ -308,8 +312,8 @@ const nativeAndroidIntegration = {
|
|
|
308
312
|
application: true,
|
|
309
313
|
platforms: () => ["android"],
|
|
310
314
|
validate: (operation) => operation === "android" ? null : void 0,
|
|
311
|
-
android: async () => (await import("./native-android-
|
|
312
|
-
doctor: async () => (await import("./native-android-
|
|
315
|
+
android: async () => (await import("./native-android-96BBizbq.mjs")).nativeAndroidProject(root),
|
|
316
|
+
doctor: async () => (await import("./native-android-96BBizbq.mjs")).nativeAndroidDoctor(root)
|
|
313
317
|
};
|
|
314
318
|
}
|
|
315
319
|
};
|
|
@@ -737,8 +741,8 @@ const nativeXcodeProjectIntegration = {
|
|
|
737
741
|
application: problem === null,
|
|
738
742
|
platforms: () => problem ? [] : ["ios"],
|
|
739
743
|
validate: (operation) => operation === "ios" ? problem : void 0,
|
|
740
|
-
ios: async () => (await import("./native-xcode-ios-
|
|
741
|
-
doctor: async () => (await import("./native-xcode-ios-
|
|
744
|
+
ios: async () => (await import("./native-xcode-ios-BY-6hh6M.mjs")).nativeXcodeIosProject(root),
|
|
745
|
+
doctor: async () => (await import("./native-xcode-ios-BY-6hh6M.mjs")).nativeXcodeDoctor(root)
|
|
742
746
|
};
|
|
743
747
|
}
|
|
744
748
|
};
|
|
@@ -943,7 +947,7 @@ function createProjectRegistry(integrations) {
|
|
|
943
947
|
//#region src/integrations/projects.ts
|
|
944
948
|
const expo = {
|
|
945
949
|
mode: MODE_EXPO,
|
|
946
|
-
loadDevServer: async () => (await import("./server-expo-
|
|
950
|
+
loadDevServer: async () => (await import("./server-expo-CEntXzRw.mjs")).startExpoServer,
|
|
947
951
|
platforms(root) {
|
|
948
952
|
const appJson = readAppJson(root);
|
|
949
953
|
const config = appJson?.expo ?? appJson;
|
|
@@ -963,7 +967,7 @@ const expo = {
|
|
|
963
967
|
};
|
|
964
968
|
const reactNative = {
|
|
965
969
|
mode: MODE_BARE,
|
|
966
|
-
loadDevServer: async () => (await import("./server-bare-
|
|
970
|
+
loadDevServer: async () => (await import("./server-bare-Z1ToVLPn.mjs")).startBareServer,
|
|
967
971
|
platforms(root, { context, settings }) {
|
|
968
972
|
if (!declaresAppDependency(readPackageJson(root))) return [];
|
|
969
973
|
const platforms = [];
|
|
@@ -993,9 +997,9 @@ const projectRegistry = createProjectRegistry([
|
|
|
993
997
|
ownedRoots: problem === null ? [join(root, "ios"), join(root, "android")] : [],
|
|
994
998
|
platforms: (resolved) => nativeProjectIntegration(root).platforms(root, resolved),
|
|
995
999
|
validate: (operation) => operation === "ios" || operation === "android" || operation === "dev-server" ? problem : void 0,
|
|
996
|
-
ios: async (settings) => (await import("./react-native-ios-
|
|
997
|
-
android: async (resolved) => (await import("./react-native-android-
|
|
998
|
-
doctor: async () => (await import("./react-native-doctor-
|
|
1000
|
+
ios: async (settings) => (await import("./react-native-ios-D5zTIuH8.mjs")).reactNativeIosProject(root, settings),
|
|
1001
|
+
android: async (resolved) => (await import("./react-native-android-DOinxgwB.mjs")).reactNativeAndroidProject(root, resolved),
|
|
1002
|
+
doctor: async () => (await import("./react-native-doctor-2ivJUmwZ.mjs")).reactNativeProjectDoctor(root)
|
|
999
1003
|
};
|
|
1000
1004
|
}
|
|
1001
1005
|
},
|
|
@@ -1009,9 +1013,9 @@ const projectRegistry = createProjectRegistry([
|
|
|
1009
1013
|
application: true,
|
|
1010
1014
|
platforms: ({ settings }) => settingValueAt(settings, "macos.product") && settingValueAt(settings, "macos.infoPlist") ? ["macos"] : [],
|
|
1011
1015
|
validate: (operation) => operation === "macos" ? null : void 0,
|
|
1012
|
-
macos: async () => (await import("./swiftpm-macos-
|
|
1016
|
+
macos: async () => (await import("./swiftpm-macos-BVCP5mO4.mjs")).swiftpmMacosProject(root),
|
|
1013
1017
|
doctor: async () => {
|
|
1014
|
-
const { macosToolchain, macosToolchainAsync } = await import("./toolchain-
|
|
1018
|
+
const { macosToolchain, macosToolchainAsync } = await import("./toolchain-BjgKdoEf.mjs");
|
|
1015
1019
|
return {
|
|
1016
1020
|
inspect: () => [],
|
|
1017
1021
|
offloadTargets: ({ options: { host = process.platform, platform, operation } }) => host === "darwin" && platform === void 0 ? async () => [{
|
|
@@ -1031,7 +1035,7 @@ const projectRegistry = createProjectRegistry([
|
|
|
1031
1035
|
application: false,
|
|
1032
1036
|
platforms: ({ settings }) => webSettings(settings).url !== null ? ["web"] : [],
|
|
1033
1037
|
validate: (operation) => operation === "web" ? null : void 0,
|
|
1034
|
-
web: async () => (await import("./browser-web-
|
|
1038
|
+
web: async () => (await import("./browser-web-ycg9qWB8.mjs")).browserWebProject(root)
|
|
1035
1039
|
};
|
|
1036
1040
|
}
|
|
1037
1041
|
},
|
|
@@ -1155,4 +1159,4 @@ function expandedRealpath(path) {
|
|
|
1155
1159
|
}
|
|
1156
1160
|
}
|
|
1157
1161
|
//#endregion
|
|
1158
|
-
export { clearWorkspaceLaunches as A, resolvePackageJson as C, clearExpoMetroTunnel as D, MODE_EXPO as E, readRemoteSessionId as F, readWorkspaceLaunches as I, workspaceDevServerMode as L, readMetroTunnel as M, readPidFile as N, clearManagedMetroTunnel as O, readRemoteSession as P, writePidFile as R, readAppJson as S, MODE_COMMAND as T, appProjectProblem as _, findServerWorkspace as a, isPackageResolvable as b, projectProblem as c, nativeProjectIntegration as d, projectRegistry as f, selectNativeXcodeProject as g, pbxString as h, findProjectRoot$1 as i, clearWorkspaceSupervisor as j, clearRemoteSession as k, projectShortcut as l, pbxReferences as m, findCommandWorkspace as n, isMobileProject as o, NativeXcodeError as p, findCommandWorkspaceAsync as r, ownedDeviceLabel as s, NO_PROJECT_REFUSAL as t, detectPlatforms as u, detectIsExpo as v, MODE_BARE as w, readAppConfigText as x, detectTutorial as y,
|
|
1162
|
+
export { clearWorkspaceLaunches as A, resolvePackageJson as C, clearExpoMetroTunnel as D, MODE_EXPO as E, readRemoteSessionId as F, readWorkspaceLaunches as I, workspaceDevServerMode as L, readMetroTunnel as M, readPidFile as N, clearManagedMetroTunnel as O, readRemoteSession as P, writePidFile as R, readAppJson as S, MODE_COMMAND as T, appProjectProblem as _, findServerWorkspace as a, isPackageResolvable as b, projectProblem as c, nativeProjectIntegration as d, projectRegistry as f, selectNativeXcodeProject as g, pbxString as h, findProjectRoot$1 as i, clearWorkspaceSupervisor as j, clearRemoteSession as k, projectShortcut as l, pbxReferences as m, findCommandWorkspace as n, isMobileProject as o, NativeXcodeError as p, findCommandWorkspaceAsync as r, ownedDeviceLabel as s, NO_PROJECT_REFUSAL as t, detectPlatforms as u, detectIsExpo as v, MODE_BARE as w, readAppConfigText as x, detectTutorial as y, writeWorkspaceLaunchAsync as z };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as gitQuiet, l as gitQuietAsync, r as childEnvironment, s as gitAsync, t as runOperationFile } from "./operation-exec-
|
|
1
|
+
import { l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
|
+
import { c as gitQuiet, l as gitQuietAsync, r as childEnvironment, s as gitAsync, t as runOperationFile } from "./operation-exec-CUZifp6Z.mjs";
|
|
3
3
|
//#region src/workspace/pull-request.ts
|
|
4
4
|
const GH_TIMEOUT_MS = 2e4;
|
|
5
5
|
const GH_ENV = {
|
package/dist/pull-requests.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as pullRequestLookup, c as selectPullRequest, i as parseRemoteRepo, l as worktreePullRequests, n as describePullRequest, o as pullRequestLookupAsync, r as endedPullRequest, s as pullRequestLookups, t as checkCounts } from "./pull-request-
|
|
1
|
+
import { a as pullRequestLookup, c as selectPullRequest, i as parseRemoteRepo, l as worktreePullRequests, n as describePullRequest, o as pullRequestLookupAsync, r as endedPullRequest, s as pullRequestLookups, t as checkCounts } from "./pull-request-CbNlkFok.mjs";
|
|
2
2
|
export { checkCounts, describePullRequest, endedPullRequest, parseRemoteRepo, pullRequestLookup, pullRequestLookupAsync, pullRequestLookups, selectPullRequest, worktreePullRequests };
|