stim 1.24.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acquire-artifact-CEs02U2o.mjs → acquire-artifact-zA4S7RHE.mjs} +1 -1
- package/dist/{act-Cyvm8xYc.mjs → act-BbHS3oV8.mjs} +12 -12
- package/dist/{activity-Dq3ZcdD8.mjs → activity-BpjwrQXU.mjs} +3 -3
- package/dist/{agent-device-usage-output-CccomeE0.mjs → agent-device-usage-output-Bnkerfod.mjs} +3 -3
- package/dist/{android-BZppyPe_.mjs → android-BGwuK3Mc.mjs} +41 -36
- package/dist/{android-DcztblCT.mjs → android-CNZgRC-4.mjs} +5 -5
- package/dist/{android-882m4hxX.mjs → android-Cjcj8MCw.mjs} +2 -2
- package/dist/{android-cas-BtCOrNqb.mjs → android-cas-BVqh2Zep.mjs} +1 -1
- package/dist/{android-project-DVWyCbWU.d.mts → android-project-CTYaETc0.d.mts} +6 -2
- package/dist/{android-CX5IcRuf.mjs → android-saBeB4lr.mjs} +1 -1
- package/dist/api.d.mts +1 -1
- package/dist/api.mjs +22 -22
- package/dist/{artifact-BR5VNArK.mjs → artifact-Co8zixVx.mjs} +14 -13
- package/dist/{artifact-Bdt_n9Jc.mjs → artifact-DN8JNwqS.mjs} +13 -13
- package/dist/{browser-web-ycg9qWB8.mjs → browser-web-CCgZsHmI.mjs} +10 -10
- package/dist/{budget-dPGuhNai.mjs → budget-HyShrIpL.mjs} +62 -21
- package/dist/{build-CaF574eS.mjs → build-CAiw8Ezm.mjs} +22 -21
- package/dist/{build-cache-HFUQ9eLz.mjs → build-cache-CKCzxzxA.mjs} +22 -4
- package/dist/{build-plan-JsDUq4w1.mjs → build-plan-zCuHGlA8.mjs} +5 -5
- package/dist/{ccache-CCn1S6qG.mjs → ccache-h1FKhZeg.mjs} +3 -3
- package/dist/{cli-xqAidP7O.mjs → cli-C4w607Pz.mjs} +17 -17
- package/dist/cli.mjs +1 -1
- package/dist/{client-18-ZowoT.mjs → client-BQsmyp_-.mjs} +26 -17
- package/dist/collector-run.mjs +2 -2
- package/dist/{command-output-DxC0k2rk.mjs → command-output-BBvS1H6v.mjs} +1 -1
- package/dist/{dependency-state-C56ll9hY.mjs → dependency-state-BwNCYG5Q.mjs} +1 -1
- package/dist/{dev-client-w_fok0Ek.mjs → dev-client-CHoXXZeg.mjs} +2 -2
- package/dist/{device-BktRGdjS.mjs → device-B9FqTBYW.mjs} +64 -33
- package/dist/{device-4RUugw5X.mjs → device-F5-4z9ef.mjs} +13 -13
- package/dist/{device-capacity-Ic-kdmEV.mjs → device-capacity-ZYaRALv5.mjs} +7 -7
- package/dist/device-host-worker.mjs +10 -10
- package/dist/{device-ios-DzpSlZyd.mjs → device-ios-DkHBrmvH.mjs} +27 -16
- package/dist/{device-lease-run-DUtkbqBQ.mjs → device-lease-run-ogEeJ62K.mjs} +4 -4
- package/dist/{device-pool-CgBHk401.mjs → device-pool-BIg8MU8l.mjs} +2 -2
- package/dist/{doctor-BZ6oxNum.mjs → doctor-A_Nr_fDe.mjs} +1 -1
- package/dist/{doctor-C33AzVfR.mjs → doctor-Bm8TVpGn.mjs} +27 -21
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-DZgpqR6J.mjs → doctor-k3P3PizH.mjs} +12 -12
- package/dist/{doctor-watchman-B453A231.mjs → doctor-watchman-BovI1y3-.mjs} +3 -3
- package/dist/{eas-build-CxKUNHsb.mjs → eas-build-CyDKNTBP.mjs} +2 -2
- package/dist/{eas-fallback-LMxk9Kw0.mjs → eas-fallback-gaZi-dJL.mjs} +12 -11
- package/dist/{eas-session-ledger-Ck6YXPAO.mjs → eas-session-ledger-BMCA1gdO.mjs} +3 -3
- package/dist/{error-diagnostics-BkKCZq4P.mjs → error-diagnostics-B1Mj_-7h.mjs} +7 -7
- package/dist/{errors-ccaPc4ox.mjs → errors-DHm_U5gv.mjs} +2 -1
- package/dist/{gc-yVKpAOKM.mjs → gc-B9jcnmIk.mjs} +15 -15
- package/dist/{gc-DDWEAj0w.mjs → gc-eaz403W6.mjs} +2 -2
- package/dist/{guide-Bggftwc5.mjs → guide-DR0K0xW9.mjs} +113 -37
- package/dist/{hosted-android-D4dweBof.mjs → hosted-android-Bvb2-ZxD.mjs} +3 -3
- package/dist/{hosted-client-BBTVe3X6.mjs → hosted-client-rsRqysJc.mjs} +2 -2
- package/dist/{hosted-ios-Sn0djzg8.mjs → hosted-ios-RtVcJH3u.mjs} +1 -1
- package/dist/{hosted-logs-CYIZ5ubJ.mjs → hosted-logs-CWKGYWNX.mjs} +4 -4
- package/dist/{hosted-macos-CXjsUNBR.mjs → hosted-macos-d0pv9Tth.mjs} +5 -5
- package/dist/{hosted-native-Doxbfzem.mjs → hosted-native-BxTizGU2.mjs} +6 -6
- package/dist/{idle-shutdown-BInjLKqm.mjs → idle-shutdown-BIyfl0Zj.mjs} +6 -6
- package/dist/{ios-CVUFFZ6C.mjs → ios-BQzvJlzw.mjs} +59 -11
- package/dist/{ios-B1FXRCMX.mjs → ios-BRVM8b0P.mjs} +37 -32
- package/dist/{ios-BItP6lkn.mjs → ios-Dvt97HgQ.mjs} +8 -8
- package/dist/{ios-device-BI38NFFH.mjs → ios-device-CKSvk0bu.mjs} +1 -1
- package/dist/{ios-project-KYqeJURj.mjs → ios-project-DCUDo06I.mjs} +4 -4
- package/dist/{ios-state-DlElquYD.mjs → ios-state-CT9nV5SP.mjs} +1 -1
- package/dist/{js-swap-BvrQvXHY.mjs → js-swap-Z9HbC4cj.mjs} +4 -4
- package/dist/{launch-SfzGH_s9.mjs → launch-D0lPvFFu.mjs} +16 -16
- package/dist/{launch-BVlyQw3T.mjs → launch-DscF1QfM.mjs} +35 -35
- package/dist/{logs-DXE32kyb.mjs → logs-BsIRre8x.mjs} +7 -7
- package/dist/{logs-ovlU7m7N.mjs → logs-Crs9y34Z.mjs} +5 -5
- package/dist/{macos-B3BveDrU.mjs → macos-CcUlJPMu.mjs} +1 -1
- package/dist/{macos-CCfhb-jT.mjs → macos-D477nfzH.mjs} +17 -17
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +5 -5
- package/dist/{metro-Bu8LBfzS.mjs → metro-1pJgCX4U.mjs} +1 -1
- package/dist/{metro-gateway-DtsOy-0P.mjs → metro-gateway-Bp9gJQAN.mjs} +1 -1
- package/dist/{named-ports-BWDuU5oQ.mjs → named-ports-BVbn8SvC.mjs} +1 -1
- package/dist/{native-android-96BBizbq.mjs → native-android-BvMizJn1.mjs} +14 -14
- package/dist/{native-gradle-artifact-inputs-BcLYBZil.mjs → native-gradle-artifact-inputs-BJscK4vN.mjs} +3 -3
- package/dist/{native-run-BmH7U8pr.mjs → native-run-D5OJsGwA.mjs} +2 -2
- package/dist/{native-runtime-DgtJkzIa.mjs → native-runtime-B9w_Qyz3.mjs} +6 -6
- package/dist/{native-xcode-inputs-irplbQb0.mjs → native-xcode-inputs-Cv4l-obn.mjs} +1 -1
- package/dist/{native-xcode-ios-BY-6hh6M.mjs → native-xcode-ios-DGrg90hE.mjs} +17 -16
- package/dist/offload-worker.d.mts +5 -2
- package/dist/offload-worker.mjs +21 -20
- package/dist/{ownership-DxlZGDcV.mjs → ownership-jxxz-19m.mjs} +2 -2
- package/dist/{phone-reverses-BdsdesVF.mjs → phone-reverses-CYb7RRAx.mjs} +2 -2
- package/dist/{placement-log-DUvqqsB-.mjs → placement-log-DjOXJRIH.mjs} +1 -1
- package/dist/{plan-placement-4axc0Hs7.mjs → plan-placement-BqKgKHCi.mjs} +3 -3
- package/dist/{ports-D-E_OiAO.mjs → ports-DtS1Amb0.mjs} +2 -2
- package/dist/{prebuild-DmVCf5xb.mjs → prebuild-JUaqOLpc.mjs} +6 -6
- package/dist/{project-Dz-hWkb-.mjs → project-BiC68mIp.mjs} +14 -14
- package/dist/{react-native-android-DOinxgwB.mjs → react-native-android-DRYqoJc4.mjs} +23 -22
- package/dist/{react-native-build-AuCu-aAP.mjs → react-native-build-CwZB-agu.mjs} +6 -6
- package/dist/{react-native-doctor-2ivJUmwZ.mjs → react-native-doctor-BCrytK7h.mjs} +6 -6
- package/dist/{react-native-ios-D5zTIuH8.mjs → react-native-ios-Cr1buNFo.mjs} +18 -17
- package/dist/{recordings-CdPwYwvs.mjs → recordings-BaoQ0t-J.mjs} +1 -1
- package/dist/{reload-Ck9RJeSq.mjs → reload-Beftw2X3.mjs} +1 -1
- package/dist/{reload-C1TTVesC.mjs → reload-FbSgMF8x.mjs} +13 -13
- package/dist/{remote-DEZ7AOVq.mjs → remote-BuZj6AyU.mjs} +15 -6
- package/dist/{result-DqBrb12U.mjs → result-CR2vk2cj.mjs} +14 -14
- package/dist/{run-BIwoU44q.mjs → run-BtzE09Dl.mjs} +1 -1
- package/dist/{selection-BLtvaqxc.mjs → selection-D5cxEl3t.mjs} +2 -2
- package/dist/{server-bare-Z1ToVLPn.mjs → server-bare-CH9X0RLn.mjs} +55 -3
- package/dist/{server-command-C0pmjNdG.mjs → server-command-CaBbDNU2.mjs} +4 -4
- package/dist/server-expo-C16Zf2k7.mjs +2 -0
- package/dist/{server-expo-Tt_hLRpy.mjs → server-expo-Ck8EIidM.mjs} +8 -6
- package/dist/{settings-RKwY33wv.mjs → settings-B5tCoq9N.mjs} +58 -60
- package/dist/{settings-kkt0vP4w.mjs → settings-DzH9mGQZ.mjs} +1 -1
- package/dist/{settings-write--gj6MACV.mjs → settings-write-n0zwfohx.mjs} +3 -3
- package/dist/settings.schema.json +38 -0
- package/dist/{simslim-CdWKT3vA.mjs → simslim-BjxszUAb.mjs} +20 -5
- package/dist/{slot-launch-A1BgotaM.mjs → slot-launch-QeuJMlnJ.mjs} +5 -5
- package/dist/{stage-ERTMh88n.mjs → stage-D8xlRU2D.mjs} +1 -1
- package/dist/{start-Bmg_qmHi.mjs → start-C1JLjkNw.mjs} +1 -1
- package/dist/{start-BKGrEhzG.mjs → start-YMpNwLhh.mjs} +7 -7
- package/dist/{state-B1ig0Kqy.mjs → state-DMRNP7-4.mjs} +2 -2
- package/dist/{state-BfAltYJP.mjs → state-DPaM3u5K.mjs} +1 -1
- package/dist/{stats-B-ckuiUg.mjs → stats-CP7STzZw.mjs} +3 -3
- package/dist/{status-DfFp6a76.mjs → status-CRLiJ-O_.mjs} +19 -19
- package/dist/{status-Pw-807f0.mjs → status-cNw6i0_t.mjs} +1 -1
- package/dist/{status-watch-XC7F-AMf.mjs → status-watch-Bc2J4TZn.mjs} +4 -4
- package/dist/status-worker.mjs +1 -1
- package/dist/{stop-BFu7X_Do.mjs → stop-Br7LKxBE.mjs} +2 -2
- package/dist/{stop-DhclRwOO.mjs → stop-COP6PQqw.mjs} +4 -4
- package/dist/{stop-CL1kDHds.mjs → stop-Db9Kh-UA.mjs} +69 -50
- package/dist/supervisor-run.mjs +13 -13
- package/dist/{support-B3tzVhKn.mjs → support-Cxj9CmII.mjs} +4 -4
- package/dist/{support-B1W-hmC2.mjs → support-qKcbgmI5.mjs} +14 -11
- package/dist/{swiftpm-artifact-inputs-BWYPj9Sn.mjs → swiftpm-artifact-inputs-iY9fsmOc.mjs} +1 -1
- package/dist/{swiftpm-macos-BVCP5mO4.mjs → swiftpm-macos-Bp_sn9P4.mjs} +8 -8
- package/dist/{toolchain-BjgKdoEf.mjs → toolchain-DB1aeqxO.mjs} +1 -1
- package/dist/{toolchain-D3bmRMia.mjs → toolchain-VzLJzZ7O.mjs} +14 -3
- package/dist/{warm-progress-ol0ZypEu.mjs → warm-progress-BV3ZPmcY.mjs} +3 -3
- package/dist/{web-BH7peScT.mjs → web-B4Yjyt1G.mjs} +6 -6
- package/dist/web-DS4UDWvf.mjs +2 -0
- package/dist/web-run.mjs +3 -3
- package/dist/{workspace-state-CeBpIZgr.mjs → workspace-state-CPSp3mav.mjs} +1 -1
- package/dist/{workspaces-CSV2Orf4.mjs → workspaces-C9w4aeXF.mjs} +10 -10
- package/dist/{worktree-Dw8kfacb.mjs → worktree-CclFIe1Z.mjs} +25 -25
- package/dist/{worktree-DEDUzO_L.mjs → worktree-Ct9Gk3KL.mjs} +1 -1
- package/dist/{xcode-DHu41qQ4.mjs → xcode-CiIIDnuD.mjs} +4 -4
- package/package.json +7 -7
- package/shim/bundle-response.cjs +53 -1
- package/shim/bundle-response.d.cts +1 -1
- package/shim/expo-metro-config.cjs +23 -1
- package/dist/server-expo-CEntXzRw.mjs +0 -2
- package/dist/web-BdOFlTJr.mjs +0 -2
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { C as reportSignal } from "./exec-VFRpu1iA.mjs";
|
|
2
|
-
import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { d as runCancellationSignal } from "./native-run-
|
|
6
|
-
import {
|
|
7
|
-
import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations } from "./errors-
|
|
8
|
-
import { b as bundlerPin } from "./xcode-
|
|
9
|
-
import { a as iosToolchainAsync } from "./toolchain-
|
|
10
|
-
import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-
|
|
2
|
+
import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BBvS1H6v.mjs";
|
|
3
|
+
import { U as remoteEasFallbackSetting, W as remoteIosSetting, a as SETTING_SHAPE_REMEDY, it as tunnelModeSetting, p as cacheProviderSettingError, q as resolveIosProjectDir, tt as settingShapeErrors, z as publicUrlSetting } from "./settings-B5tCoq9N.mjs";
|
|
4
|
+
import { Rn as processContext, Z as statsProjectKey } from "./budget-HyShrIpL.mjs";
|
|
5
|
+
import { d as runCancellationSignal } from "./native-run-D5OJsGwA.mjs";
|
|
6
|
+
import { T as untrackedMissLine, a as configInputsChanged, f as gitignoredFingerprintInputs, l as filesystemBuildCapability, m as inputsChangedDuringBuild, n as buildCacheKey, p as ignoredFingerprintPaths, r as changedDuringBuildLine, u as fingerprintDiffRecord, v as refingerprintAfterMutation, w as trackedFingerprintPaths } from "./build-cache-CKCzxzxA.mjs";
|
|
7
|
+
import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
|
|
8
|
+
import { b as bundlerPin } from "./xcode-CiIIDnuD.mjs";
|
|
9
|
+
import { a as iosToolchainAsync } from "./toolchain-VzLJzZ7O.mjs";
|
|
10
|
+
import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-qKcbgmI5.mjs";
|
|
11
11
|
import { t as readDoctorFingerprint } from "./doctor-fingerprint-zlujA1Gs.mjs";
|
|
12
|
-
import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-
|
|
13
|
-
import { c as fingerprintErrorMissReason, i as recordPrebuildAsync, o as staleNativeDirRefusal, s as explainBuildMiss } from "./prebuild-
|
|
14
|
-
import { r as planPayload, t as planCachedBuild } from "./build-plan-
|
|
15
|
-
import { t as IosRecipeRefusal } from "./ios-project-
|
|
16
|
-
import { a as hostedIosSelectors } from "./remote-
|
|
17
|
-
import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-
|
|
18
|
-
import { t as planHostedDevice } from "./plan-placement-
|
|
12
|
+
import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-CyDKNTBP.mjs";
|
|
13
|
+
import { c as fingerprintErrorMissReason, i as recordPrebuildAsync, o as staleNativeDirRefusal, s as explainBuildMiss } from "./prebuild-JUaqOLpc.mjs";
|
|
14
|
+
import { r as planPayload, t as planCachedBuild } from "./build-plan-zCuHGlA8.mjs";
|
|
15
|
+
import { t as IosRecipeRefusal } from "./ios-project-DCUDo06I.mjs";
|
|
16
|
+
import { a as hostedIosSelectors } from "./remote-BuZj6AyU.mjs";
|
|
17
|
+
import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-DscF1QfM.mjs";
|
|
18
|
+
import { t as planHostedDevice } from "./plan-placement-BqKgKHCi.mjs";
|
|
19
19
|
import { rmSync } from "node:fs";
|
|
20
20
|
import chalk from "chalk";
|
|
21
21
|
//#region src/integrations/react-native-ios-plan.ts
|
|
@@ -398,7 +398,8 @@ function reactNativeIosArtifact({ operation, root, logFile, configuration, build
|
|
|
398
398
|
context: operation,
|
|
399
399
|
resolve: d.resolveBuild,
|
|
400
400
|
store: d.storeBuild,
|
|
401
|
-
sources: storeSources
|
|
401
|
+
sources: storeSources,
|
|
402
|
+
readAppId: (path) => d.readBundleId(path)
|
|
402
403
|
}),
|
|
403
404
|
async validateExternal(path) {
|
|
404
405
|
if (device) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bt as gitCommonDirOnDisk } from "./settings-B5tCoq9N.mjs";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { loadConfig, recordingEnabled, workspaceRecordingsDir } from "@stim-cli/core/state";
|
|
4
4
|
import { rm } from "node:fs/promises";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as reloadCommand, r as runReload, t as registerReload } from "./reload-
|
|
1
|
+
import { n as reloadCommand, r as runReload, t as registerReload } from "./reload-FbSgMF8x.mjs";
|
|
2
2
|
export { reloadCommand as default, registerReload, runReload };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { c as throwIfCancelled, i as loadScaledBudgetMs, o as cancellableSleep, s as cancelledError } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { H as deviceSlotPlatforms, U as parseDeviceSlotKey, p as getProject } from "./config-BZhXY15H.mjs";
|
|
3
|
-
import { f as refuseNoProject, l as phaseLine } from "./command-output-
|
|
4
|
-
import { a as recordWorkspaceUseAsync, r as readWorkspaceState$1 } from "./workspace-state-
|
|
5
|
-
import {
|
|
6
|
-
import { I as readWorkspaceLaunches, P as readRemoteSession, r as findCommandWorkspaceAsync } from "./project-
|
|
7
|
-
import { nt as resolveOwnedAvdSerialAsync } from "./android-
|
|
8
|
-
import { a as listeningPidsAsync, d as resolveProjectMetro, h as isMetroRunning, u as processCwds } from "./metro-
|
|
9
|
-
import { d as webFactsAsync, o as readWebRecord, r as cdpEndpoint } from "./state-
|
|
10
|
-
import {
|
|
11
|
-
import { E as resolveOwnedIosSim, f as listAllIosSimsAsync } from "./ios-
|
|
12
|
-
import { f as probeHostedSession } from "./hosted-client-
|
|
13
|
-
import { r as readHostedNative } from "./ios-state-
|
|
14
|
-
import { r as reopenHostedAndroidMetro } from "./hosted-android-
|
|
15
|
-
import { n as nativeRunCommand } from "./slot-launch-
|
|
3
|
+
import { f as refuseNoProject, l as phaseLine } from "./command-output-BBvS1H6v.mjs";
|
|
4
|
+
import { a as recordWorkspaceUseAsync, r as readWorkspaceState$1 } from "./workspace-state-CPSp3mav.mjs";
|
|
5
|
+
import { Pt as repoRootAsync } from "./settings-B5tCoq9N.mjs";
|
|
6
|
+
import { I as readWorkspaceLaunches, P as readRemoteSession, r as findCommandWorkspaceAsync } from "./project-BiC68mIp.mjs";
|
|
7
|
+
import { nt as resolveOwnedAvdSerialAsync } from "./android-Cjcj8MCw.mjs";
|
|
8
|
+
import { a as listeningPidsAsync, d as resolveProjectMetro, h as isMetroRunning, u as processCwds } from "./metro-1pJgCX4U.mjs";
|
|
9
|
+
import { d as webFactsAsync, o as readWebRecord, r as cdpEndpoint } from "./state-DMRNP7-4.mjs";
|
|
10
|
+
import { Tn as iosAppProcess, bn as ensureMetroReverse, mn as androidAppProcess } from "./budget-HyShrIpL.mjs";
|
|
11
|
+
import { E as resolveOwnedIosSim, f as listAllIosSimsAsync } from "./ios-BQzvJlzw.mjs";
|
|
12
|
+
import { f as probeHostedSession } from "./hosted-client-rsRqysJc.mjs";
|
|
13
|
+
import { r as readHostedNative } from "./ios-state-CT9nV5SP.mjs";
|
|
14
|
+
import { r as reopenHostedAndroidMetro } from "./hosted-android-Bvb2-ZxD.mjs";
|
|
15
|
+
import { n as nativeRunCommand } from "./slot-launch-QeuJMlnJ.mjs";
|
|
16
16
|
import { n as sendToOwnedPage, t as liveWebRecord } from "./page-CzEA_-5_.mjs";
|
|
17
17
|
import { hostedAndroidDeviceName, hostedNativeRecords } from "@stim-cli/core/state";
|
|
18
18
|
import { WebSocket } from "ws";
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { l as WorkspaceProcessCleanupError } from "./exec-VFRpu1iA.mjs";
|
|
1
2
|
import { H as deviceSlotPlatforms } from "./config-BZhXY15H.mjs";
|
|
2
|
-
import { l as phaseLine } from "./command-output-
|
|
3
|
-
import {
|
|
4
|
-
import "./budget-
|
|
5
|
-
import { b as resolveSimulatorAppFlag } from "./support-
|
|
6
|
-
import { n as devicePlacementRecord } from "./placement-log-
|
|
7
|
-
import { r as devicePlacementLine } from "./eas-fallback-
|
|
3
|
+
import { l as phaseLine } from "./command-output-BBvS1H6v.mjs";
|
|
4
|
+
import { I as parseIosRemote, U as remoteEasFallbackSetting, W as remoteIosSetting, it as tunnelModeSetting, z as publicUrlSetting } from "./settings-B5tCoq9N.mjs";
|
|
5
|
+
import "./budget-HyShrIpL.mjs";
|
|
6
|
+
import { b as resolveSimulatorAppFlag } from "./support-qKcbgmI5.mjs";
|
|
7
|
+
import { n as devicePlacementRecord } from "./placement-log-DjOXJRIH.mjs";
|
|
8
|
+
import { r as devicePlacementLine } from "./eas-fallback-gaZi-dJL.mjs";
|
|
8
9
|
import chalk from "chalk";
|
|
9
10
|
//#region src/commands/ios/remote.ts
|
|
10
11
|
function deviceRemoteConflict(remote, physical) {
|
|
@@ -73,11 +74,19 @@ async function selectIosPlacement(args) {
|
|
|
73
74
|
const refusal = await args.validateSelectors();
|
|
74
75
|
if (refusal) return { failure: refusal };
|
|
75
76
|
const easFallback = args.supportsRemote && remoteEasFallbackSetting(args.settings);
|
|
77
|
+
const localSims = await args.simSnapshot.readAsync?.({
|
|
78
|
+
signal: args.operation?.signal,
|
|
79
|
+
operation: args.operation
|
|
80
|
+
}).then((sims) => sims.filter((sim) => sim.available)).catch((error) => {
|
|
81
|
+
if (error instanceof WorkspaceProcessCleanupError || error instanceof Error && "reportCleanup" in error) throw error;
|
|
82
|
+
args.operation?.signal.throwIfAborted();
|
|
83
|
+
});
|
|
76
84
|
try {
|
|
77
85
|
const placed = await d.automaticDevicePlacement({
|
|
78
86
|
root,
|
|
79
87
|
slot,
|
|
80
88
|
platform: "ios",
|
|
89
|
+
...localSims ? { localSims } : {},
|
|
81
90
|
selectors: hostedIosSelectors(deviceType, runtime),
|
|
82
91
|
appMode,
|
|
83
92
|
buildMachine: opts.remoteBuild,
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { l as workspaceAgentDeviceDir } from "./paths-DQtTgsBf.mjs";
|
|
2
2
|
import { H as deviceSlotPlatforms, p as getProject } from "./config-BZhXY15H.mjs";
|
|
3
|
-
import { i as formatDuration, l as phaseLine } from "./command-output-
|
|
4
|
-
import {
|
|
5
|
-
import { v as detectIsExpo } from "./project-
|
|
3
|
+
import { i as formatDuration, l as phaseLine } from "./command-output-BBvS1H6v.mjs";
|
|
4
|
+
import { G as resolveAndroidLayout, H as remoteAndroidSetting, I as parseIosRemote, K as resolveCacheProviderConfig, Q as settingFile, a as SETTING_SHAPE_REMEDY, at as unknownSettingKeys, d as androidLayoutSetting, et as settingOriginScope, f as androidLayoutSettingError, p as cacheProviderSettingError, rt as settingsLayers, s as androidAvdConfigSettingError, tt as settingShapeErrors, u as androidDataPartitionSizeGbSettingError } from "./settings-B5tCoq9N.mjs";
|
|
5
|
+
import { v as detectIsExpo } from "./project-BiC68mIp.mjs";
|
|
6
6
|
import { a as workspaceLinkLine } from "./stim-desktop-DS0mzR8U.mjs";
|
|
7
|
-
import { B as ownedAvdDeviceProfile, I as listInstalledSystemImages, K as ownedAvdSystemImage, N as listAvdDeviceProfilesAsync, Q as profileNeedsFoldFeature, X as pickDefaultSystemImage, at as systemImageSupportsFold, k as hostSystemImageArch, l as androidSystemImageAbi, t as DEFAULT_AVD_DEVICE_PROFILE, vt as parkedMaxSetting } from "./android-
|
|
8
|
-
import { B as recordFinishedBuild,
|
|
9
|
-
import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations, u as compilerCacheFallbackMessage } from "./errors-
|
|
10
|
-
import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-
|
|
11
|
-
import { n as buildPlacementCandidates } from "./client-
|
|
12
|
-
import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-
|
|
13
|
-
import { l as parseDeviceWait } from "./device-lease-run-
|
|
14
|
-
import { t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-
|
|
15
|
-
import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-
|
|
16
|
-
import { r as isPhysicalDeviceRequest } from "./native-runtime-
|
|
17
|
-
import { C as remoteAvdFlagRefusal, D as systemImageRefusal, E as resolveVariant, T as resolveSystemImage, a as PLATFORM, m as deviceProfileRefusal, v as foldableImageRefusal, w as resolveDeviceProfile, y as isReleaseVariant } from "./support-
|
|
7
|
+
import { B as ownedAvdDeviceProfile, I as listInstalledSystemImages, K as ownedAvdSystemImage, N as listAvdDeviceProfilesAsync, Q as profileNeedsFoldFeature, X as pickDefaultSystemImage, at as systemImageSupportsFold, k as hostSystemImageArch, l as androidSystemImageAbi, t as DEFAULT_AVD_DEVICE_PROFILE, vt as parkedMaxSetting } from "./android-Cjcj8MCw.mjs";
|
|
8
|
+
import { B as recordFinishedBuild, Gn as isEasAuthFailureText, Hn as cacheLevel, Vn as UPLOAD_TIMEOUT_MS, Wn as easAuthNote } from "./budget-HyShrIpL.mjs";
|
|
9
|
+
import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations, u as compilerCacheFallbackMessage } from "./errors-DHm_U5gv.mjs";
|
|
10
|
+
import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-h1FKhZeg.mjs";
|
|
11
|
+
import { n as buildPlacementCandidates } from "./client-BQsmyp_-.mjs";
|
|
12
|
+
import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-CwZB-agu.mjs";
|
|
13
|
+
import { l as parseDeviceWait } from "./device-lease-run-ogEeJ62K.mjs";
|
|
14
|
+
import { t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-ZYaRALv5.mjs";
|
|
15
|
+
import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-BVqh2Zep.mjs";
|
|
16
|
+
import { r as isPhysicalDeviceRequest } from "./native-runtime-B9w_Qyz3.mjs";
|
|
17
|
+
import { C as remoteAvdFlagRefusal, D as systemImageRefusal, E as resolveVariant, T as resolveSystemImage, a as PLATFORM, m as deviceProfileRefusal, v as foldableImageRefusal, w as resolveDeviceProfile, y as isReleaseVariant } from "./support-Cxj9CmII.mjs";
|
|
18
18
|
import { buildDiagnostics } from "@stim-cli/core/state";
|
|
19
19
|
import chalk from "chalk";
|
|
20
20
|
//#region src/commands/android/plan.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { D as ownership_claim_exports, S as process_identity_exports, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
|
-
import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-
|
|
2
|
+
import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-DPaM3u5K.mjs";
|
|
3
3
|
import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
|
|
4
4
|
import { LOG_ROTATE_BYTES } from "@stim-cli/core";
|
|
5
5
|
import { readMacosRecord } from "@stim-cli/core/state";
|
|
@@ -312,7 +312,7 @@ function note(title, detail, fix = null) {
|
|
|
312
312
|
const PROBLEM_TITLES = {
|
|
313
313
|
unreachable: "does not answer a build offer",
|
|
314
314
|
checkout: "cannot build an app outside a git checkout",
|
|
315
|
-
"stim-build": "runs
|
|
315
|
+
"stim-build": "runs an incompatible Stim build",
|
|
316
316
|
arch: "has another CPU architecture",
|
|
317
317
|
xcode: "has another Xcode",
|
|
318
318
|
"macos-sdk": "has another macOS SDK",
|
|
@@ -333,7 +333,7 @@ function problemFix(code, entry) {
|
|
|
333
333
|
switch (code) {
|
|
334
334
|
case "unreachable": return `Check that stim-server runs on ${entry} and that its tailscale serve route answers, then run \`stim doctor\` again. To keep it running there, run \`stim-server service install --serve\` on ${entry}.`;
|
|
335
335
|
case "checkout": return "Offload syncs the files git lists; run Stim from a git checkout of the app.";
|
|
336
|
-
case "stim-build": return `Update stim-server on ${entry} to the same
|
|
336
|
+
case "stim-build": return `Update stim-server on ${entry} to a Stim release with the same build compatibility version as this machine (an older stim-server needs the same Stim build): there, run \`stim-server service update --release <version>\` for this machine's release, or \`--from <dir>\` with the packed packages of this machine's checkout.`;
|
|
337
337
|
case "arch": return "Use a remote machine with the same CPU architecture as this machine.";
|
|
338
338
|
case "xcode":
|
|
339
339
|
case "simulator-sdk":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { O as __commonJSMin, k as __require, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { c as registerMetroStore, f as resolveMetroSharedCache, n as supervisorError, r as appendCacheStore, s as metroStoreRoot } from "./errors-
|
|
2
|
+
import { J as resolveProjectSettings } from "./settings-B5tCoq9N.mjs";
|
|
3
|
+
import { c as registerMetroStore, f as resolveMetroSharedCache, n as supervisorError, r as appendCacheStore, s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
|
|
4
4
|
import { createRequire } from "node:module";
|
|
5
5
|
import { isAbsolute, join, relative, sep } from "node:path";
|
|
6
6
|
//#endregion
|
|
@@ -14,6 +14,12 @@ var import_bundle_response = (/* @__PURE__ */ __commonJSMin(((exports, module) =
|
|
|
14
14
|
]);
|
|
15
15
|
const PROGRESS_PART = /^\{"done":(\d+),"total":(\d+),"percent":(\d+)\}$/;
|
|
16
16
|
const PROGRESS_INTERVAL_MS = 1e3;
|
|
17
|
+
const MANIFEST_PATHS = /* @__PURE__ */ new Set([
|
|
18
|
+
"/",
|
|
19
|
+
"/manifest",
|
|
20
|
+
"/index.exp"
|
|
21
|
+
]);
|
|
22
|
+
const observedServers = /* @__PURE__ */ new WeakSet();
|
|
17
23
|
function clientPidFromLsof(output, clientPort, serverPort) {
|
|
18
24
|
const connection = new RegExp(`:${clientPort}->\\S*:${serverPort}$`);
|
|
19
25
|
let pid = null;
|
|
@@ -30,9 +36,54 @@ var import_bundle_response = (/* @__PURE__ */ __commonJSMin(((exports, module) =
|
|
|
30
36
|
"-Fpn"
|
|
31
37
|
])).then((output) => clientPidFromLsof(output, remotePort, localPort)).catch(() => null);
|
|
32
38
|
}
|
|
33
|
-
function
|
|
39
|
+
function manifestPlatform(req) {
|
|
40
|
+
if (req.method !== "GET") return null;
|
|
41
|
+
let url;
|
|
42
|
+
try {
|
|
43
|
+
url = new URL(req.url, "http://localhost");
|
|
44
|
+
} catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
if (!MANIFEST_PATHS.has(url.pathname)) return null;
|
|
48
|
+
const platform = url.searchParams.get("platform") || req.headers["expo-platform"] || req.headers["exponent-platform"];
|
|
49
|
+
return platform === "ios" || platform === "android" ? platform : null;
|
|
50
|
+
}
|
|
51
|
+
function observeManifestRequests(server, write) {
|
|
52
|
+
if (!server || observedServers.has(server)) return;
|
|
53
|
+
observedServers.add(server);
|
|
54
|
+
server.prependListener("request", (req, res) => {
|
|
55
|
+
const platform = manifestPlatform(req);
|
|
56
|
+
if (!platform || req.headers["x-stim-metro-warmup"] === "1") return;
|
|
57
|
+
const requestId = randomUUID();
|
|
58
|
+
const emit = (stage, statusCode) => {
|
|
59
|
+
try {
|
|
60
|
+
write({
|
|
61
|
+
ts: Date.now(),
|
|
62
|
+
src: "metro",
|
|
63
|
+
level: "debug",
|
|
64
|
+
event: `manifest_request_${stage}`,
|
|
65
|
+
platform,
|
|
66
|
+
requestId,
|
|
67
|
+
...statusCode ? { statusCode } : {},
|
|
68
|
+
msg: `${platform} manifest request ${stage}`
|
|
69
|
+
});
|
|
70
|
+
} catch {}
|
|
71
|
+
};
|
|
72
|
+
emit("started");
|
|
73
|
+
let ended = false;
|
|
74
|
+
const finish = (complete) => {
|
|
75
|
+
if (ended) return;
|
|
76
|
+
ended = true;
|
|
77
|
+
emit(complete && res.statusCode === 200 ? "finished" : "failed", res.statusCode);
|
|
78
|
+
};
|
|
79
|
+
res.once("finish", () => finish(true));
|
|
80
|
+
res.once("close", () => finish(false));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
function bundleResponseMiddleware(write, { runLsof, manifests = false } = {}) {
|
|
34
84
|
return (req, res, next) => {
|
|
35
85
|
if (req.method === "GET" && req.url === "/_stim/metro-warmup") {
|
|
86
|
+
if (manifests) observeManifestRequests(req.socket.server, write);
|
|
36
87
|
res.end("ready");
|
|
37
88
|
return;
|
|
38
89
|
}
|
|
@@ -59,6 +110,7 @@ var import_bundle_response = (/* @__PURE__ */ __commonJSMin(((exports, module) =
|
|
|
59
110
|
requestId,
|
|
60
111
|
...progress ?? { statusCode },
|
|
61
112
|
msg: progress ? `${platform} bundle ${progress.percent}%` : `${platform} bundle ${kind} ${stage}`,
|
|
113
|
+
...stage === "started" && !prefetch ? { url: `${url.pathname}${url.search}` } : {},
|
|
62
114
|
...pid ? { clientPid: pid } : {}
|
|
63
115
|
});
|
|
64
116
|
} catch {}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
|
-
import { n as METRO_COMMAND_PORT } from "./settings-
|
|
3
|
-
import { T as MODE_COMMAND } from "./project-
|
|
4
|
-
import { f as signalProcessTree } from "./metro-
|
|
2
|
+
import { n as METRO_COMMAND_PORT } from "./settings-B5tCoq9N.mjs";
|
|
3
|
+
import { T as MODE_COMMAND } from "./project-BiC68mIp.mjs";
|
|
4
|
+
import { f as signalProcessTree } from "./metro-1pJgCX4U.mjs";
|
|
5
5
|
import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
|
|
6
|
-
import { g as projectNodeLine, p as recordFromLine, v as withProjectNode, y as superviseChildServer } from "./server-expo-
|
|
6
|
+
import { g as projectNodeLine, p as recordFromLine, v as withProjectNode, y as superviseChildServer } from "./server-expo-Ck8EIidM.mjs";
|
|
7
7
|
import { join } from "node:path";
|
|
8
8
|
import { LOG_ROTATE_BYTES } from "@stim-cli/core";
|
|
9
9
|
//#region src/supervisor/server-command.ts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { o as cancellableSleep, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { n as stripAnsi, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { C as resolvePackageJson } from "./project-
|
|
3
|
+
import { J as resolveProjectSettings } from "./settings-B5tCoq9N.mjs";
|
|
4
|
+
import { C as resolvePackageJson } from "./project-BiC68mIp.mjs";
|
|
5
5
|
import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
|
|
6
|
-
import { a as expoMetroStoreEnv, c as registerMetroStore, f as resolveMetroSharedCache, i as expoMetroConfigPath, n as supervisorError, o as metroStoreConfirmedRoot, s as metroStoreRoot } from "./errors-
|
|
6
|
+
import { a as expoMetroStoreEnv, c as registerMetroStore, f as resolveMetroSharedCache, i as expoMetroConfigPath, n as supervisorError, o as metroStoreConfirmedRoot, s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
|
|
7
7
|
import { accessSync, constants, existsSync, readFileSync } from "node:fs";
|
|
8
8
|
import { delimiter, dirname, join } from "node:path";
|
|
9
9
|
import { LOG_ROTATE_BYTES } from "@stim-cli/core";
|
|
@@ -249,7 +249,7 @@ function recordFromLine(line, { stream = "stdout", source = "expo" } = {}) {
|
|
|
249
249
|
if (!msg.trim()) return null;
|
|
250
250
|
if (stream === "stderr" && msg.startsWith("stim-bundle-response: ")) try {
|
|
251
251
|
const record = JSON.parse(msg.slice(22));
|
|
252
|
-
if (record.src === "metro" && /^bundle_(response|prefetch)_(started|progress|finished|failed)$/.test(record.event) && ["ios", "android"].includes(record.platform) && typeof record.requestId === "string" && Number.isFinite(record.ts)) return record;
|
|
252
|
+
if (record.src === "metro" && /^(?:bundle_(?:response|prefetch)_(?:started|progress|finished|failed)|manifest_request_(?:started|finished|failed))$/.test(record.event) && ["ios", "android"].includes(record.platform) && typeof record.requestId === "string" && Number.isFinite(record.ts)) return record;
|
|
253
253
|
} catch {}
|
|
254
254
|
const confirmed = metroStoreConfirmedRoot(msg);
|
|
255
255
|
if (confirmed) return {
|
|
@@ -286,7 +286,7 @@ function parseExpoWaitingOnUrl(line) {
|
|
|
286
286
|
if (HTTP_SCHEME_RE.test(url)) return url;
|
|
287
287
|
return URL_SCHEME_RE.test(url) ? url.replace(/^[^:]+:/, "https:") : url;
|
|
288
288
|
}
|
|
289
|
-
function resolveMetroStoreInjection(root, { log, env, settings }) {
|
|
289
|
+
function resolveMetroStoreInjection(root, { log, env, settings, port }) {
|
|
290
290
|
const sharedCache = resolveMetroSharedCache(settings);
|
|
291
291
|
if (!sharedCache) log.write({
|
|
292
292
|
src: "metro",
|
|
@@ -317,6 +317,7 @@ function resolveMetroStoreInjection(root, { log, env, settings }) {
|
|
|
317
317
|
const storeRoot = sharedCache ? metroStoreRoot(root) : "";
|
|
318
318
|
const additions = expoMetroStoreEnv({
|
|
319
319
|
root,
|
|
320
|
+
port,
|
|
320
321
|
storeRoot,
|
|
321
322
|
adapterPath,
|
|
322
323
|
existingOverride: env.EXPO_OVERRIDE_METRO_CONFIG
|
|
@@ -350,7 +351,8 @@ async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = n
|
|
|
350
351
|
const storeEnv = resolveMetroStoreInjection(root, {
|
|
351
352
|
log,
|
|
352
353
|
env: process.env,
|
|
353
|
-
settings: settings ?? resolveProjectSettings(root).settings
|
|
354
|
+
settings: settings ?? resolveProjectSettings(root).settings,
|
|
355
|
+
port
|
|
354
356
|
});
|
|
355
357
|
const [command, commandArgs] = platform === "win32" && resolved.source === "package" ? [process.execPath, [bin, ...args]] : [bin, args];
|
|
356
358
|
const node = withProjectNode(root, process.env);
|
|
@@ -6,10 +6,10 @@ import { tmpdir } from "node:os";
|
|
|
6
6
|
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
7
7
|
import { ambientEnv, buildCacheRoot, compiledHelper, configDir } from "@stim-cli/core";
|
|
8
8
|
import { REMOTE_DEVICE_BACKENDS, SETTINGS, SETTING_GROUPS, TUNNEL_MODES, WEB_VIEWPORTS, acceptsShape, coerceSettingText, expectedShape, isLayeredSetting, settingDefinition, settingValueError } from "@stim-cli/core/state";
|
|
9
|
-
import { dirname as dirname$1, isAbsolute as isAbsolute$1, join as join$1, normalize, relative as relative$1, resolve as resolve$1, sep as sep$1 } from "path";
|
|
9
|
+
import { basename as basename$1, dirname as dirname$1, isAbsolute as isAbsolute$1, join as join$1, normalize, relative as relative$1, resolve as resolve$1, sep as sep$1 } from "path";
|
|
10
10
|
import { fileURLToPath } from "node:url";
|
|
11
11
|
import { existsSync as existsSync$1, lstatSync as lstatSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, realpathSync as realpathSync$1, statSync as statSync$1 } from "fs";
|
|
12
|
-
import { chmod, lstat, mkdir, readdir, rm, utimes } from "node:fs/promises";
|
|
12
|
+
import { chmod, lstat, mkdir, readdir, realpath, rm, utimes } from "node:fs/promises";
|
|
13
13
|
//#region src/temporary.ts
|
|
14
14
|
function existingPath(path) {
|
|
15
15
|
const missing = [];
|
|
@@ -381,66 +381,61 @@ function missingDestinationReason(target, rel) {
|
|
|
381
381
|
}
|
|
382
382
|
return lstatSync$1(join$1(target, rel), { throwIfNoEntry: false }) ? "exists" : null;
|
|
383
383
|
}
|
|
384
|
-
const
|
|
385
|
-
|
|
384
|
+
const AUTOLINKING_PATH = [
|
|
385
|
+
"android",
|
|
386
|
+
"build",
|
|
387
|
+
"generated",
|
|
388
|
+
"autolinking"
|
|
389
|
+
];
|
|
390
|
+
function knownCopiedPaths(rel) {
|
|
391
|
+
const segments = rel.split("/");
|
|
392
|
+
const paths = [];
|
|
393
|
+
if (segments.at(-1) === "node_modules") paths.push(".pnpm-store", "expo-modules-jsi/apple/.DerivedData");
|
|
394
|
+
for (let covered = 1; covered < AUTOLINKING_PATH.length; covered++) if (AUTOLINKING_PATH.slice(0, covered).every((segment, i) => segments.at(i - covered) === segment)) paths.push(AUTOLINKING_PATH.slice(covered).join("/"));
|
|
395
|
+
return paths;
|
|
396
|
+
}
|
|
397
|
+
function isMissingError(error) {
|
|
398
|
+
return error instanceof Error && "code" in error && (error.code === "ENOENT" || error.code === "ENOTDIR");
|
|
399
|
+
}
|
|
400
|
+
async function removeCopiedPath(root, rel, signal) {
|
|
386
401
|
signal.throwIfAborted();
|
|
387
|
-
const
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
signal.throwIfAborted();
|
|
395
|
-
await removeTemporaryEntryAsync(join$1(path, entry.name), signal);
|
|
396
|
-
}
|
|
397
|
-
} finally {
|
|
398
|
-
await utimes(path, stat.atime, stat.mtime);
|
|
399
|
-
await chmod(path, stat.mode);
|
|
400
|
-
}
|
|
402
|
+
const path = join$1(root, rel);
|
|
403
|
+
let parent;
|
|
404
|
+
try {
|
|
405
|
+
parent = await realpath(dirname$1(path));
|
|
406
|
+
} catch (error) {
|
|
407
|
+
if (isMissingError(error)) return;
|
|
408
|
+
throw error;
|
|
401
409
|
}
|
|
402
|
-
const
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
410
|
+
const inside = relative$1(root, parent);
|
|
411
|
+
if (inside === ".." || inside.startsWith(`..${sep$1}`) || isAbsolute$1(inside)) return;
|
|
412
|
+
const stat = await lstat(parent);
|
|
413
|
+
const target = join$1(parent, basename$1(path));
|
|
414
|
+
try {
|
|
415
|
+
await lstat(target);
|
|
416
|
+
} catch (error) {
|
|
417
|
+
if (isMissingError(error)) return;
|
|
418
|
+
throw error;
|
|
419
|
+
}
|
|
420
|
+
await chmod(parent, stat.mode | 448);
|
|
421
|
+
try {
|
|
422
|
+
await removeTemporaryEntryAsync(target, signal);
|
|
423
|
+
} finally {
|
|
424
|
+
await utimes(parent, stat.atime, stat.mtime);
|
|
425
|
+
await chmod(parent, stat.mode);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
async function removeKnownCopiedPaths(path, rel, signal) {
|
|
429
|
+
const paths = knownCopiedPaths(rel);
|
|
430
|
+
if (basename$1(rel) === "node_modules") {
|
|
431
|
+
const virtualStore = await readdir(join$1(path, ".pnpm")).catch((error) => {
|
|
432
|
+
if (isMissingError(error)) return [];
|
|
433
|
+
throw error;
|
|
408
434
|
});
|
|
435
|
+
for (const name of virtualStore) if (name.startsWith("expo-modules-jsi@")) paths.push(`.pnpm/${name}/node_modules/expo-modules-jsi/apple/.DerivedData`);
|
|
409
436
|
}
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
async function removeCopiedExclusionsAsync(path, rel, signal) {
|
|
413
|
-
let active = 0;
|
|
414
|
-
const waiting = [];
|
|
415
|
-
const acquire = async () => {
|
|
416
|
-
if (active < SWEEP_CONCURRENCY) active += 1;
|
|
417
|
-
else await new Promise((wake) => waiting.push(wake));
|
|
418
|
-
};
|
|
419
|
-
const release = () => {
|
|
420
|
-
const next = waiting.shift();
|
|
421
|
-
if (next) next();
|
|
422
|
-
else active -= 1;
|
|
423
|
-
};
|
|
424
|
-
let failure;
|
|
425
|
-
const visit = async (directory) => {
|
|
426
|
-
await acquire();
|
|
427
|
-
let children;
|
|
428
|
-
try {
|
|
429
|
-
if (failure) return;
|
|
430
|
-
children = await removeExclusionsIn(directory, signal);
|
|
431
|
-
} catch (error) {
|
|
432
|
-
failure ??= { error };
|
|
433
|
-
return;
|
|
434
|
-
} finally {
|
|
435
|
-
release();
|
|
436
|
-
}
|
|
437
|
-
await Promise.all(children.map(visit));
|
|
438
|
-
};
|
|
439
|
-
await visit({
|
|
440
|
-
path,
|
|
441
|
-
rel
|
|
442
|
-
});
|
|
443
|
-
if (failure) throw failure.error;
|
|
437
|
+
const root = await realpath(path);
|
|
438
|
+
for (const known of paths) await removeCopiedPath(root, known, signal);
|
|
444
439
|
}
|
|
445
440
|
async function cloneIgnoredEntries({ root, target, patterns, operation }) {
|
|
446
441
|
const options = {
|
|
@@ -505,7 +500,7 @@ async function cloneIgnoredEntries({ root, target, patterns, operation }) {
|
|
|
505
500
|
], options);
|
|
506
501
|
cloned = false;
|
|
507
502
|
}
|
|
508
|
-
if ((await lstat(to)).isDirectory()) await
|
|
503
|
+
if ((await lstat(to)).isDirectory()) await removeKnownCopiedPaths(to, rel, operation.signal);
|
|
509
504
|
copied.push(rel);
|
|
510
505
|
} catch (cause) {
|
|
511
506
|
if (cause instanceof WorkspaceProcessCleanupError || cause instanceof Error && "reportCleanup" in cause) throw cause;
|
|
@@ -1391,6 +1386,9 @@ function iosSimSlimProfileSetting(settings, settingsRoot) {
|
|
|
1391
1386
|
throw new Error(`Could not read ios.simslimProfile ${value}: ${String(error?.message || error)}`, { cause: error });
|
|
1392
1387
|
}
|
|
1393
1388
|
}
|
|
1389
|
+
function iosSimSlimDefaultSetting(settings) {
|
|
1390
|
+
return isPlainObject(settings) && isPlainObject(settings.ios) && settings.ios.simslim === "on";
|
|
1391
|
+
}
|
|
1394
1392
|
function iosString(settings, key) {
|
|
1395
1393
|
if (!isPlainObject(settings) || !isPlainObject(settings.ios)) return void 0;
|
|
1396
1394
|
return settings.ios[key];
|
|
@@ -1744,4 +1742,4 @@ function webSettings(settings) {
|
|
|
1744
1742
|
};
|
|
1745
1743
|
}
|
|
1746
1744
|
//#endregion
|
|
1747
|
-
export {
|
|
1745
|
+
export { settingOrigin as $, metroCommandSettingError as A, podsOutOfSync as At, readCommittedSettings as B, unpushedCommitsAsync as Bt, iosSigningIdentitySha1Setting as C, hasUncommittedWorkAsync as Ct, maintenanceKeepSetting as D, listWorktreesAsync as Dt, iosSimSlimProfileSetting as E, listWorktrees as Et, ngrokUrlSetting as F, resolveFullRef as Ft, resolveAndroidLayout as G, removeTemporaryEntryAsync as Gt, remoteAndroidSetting as H, filesystemDevice as Ht, parseIosRemote as I, resolveFullRefAsync as It, resolveProjectSettings as J, resolveCacheProviderConfig as K, temporaryRoot as Kt, projectSettingsContext as L, resolveSourceCheckoutAsync as Lt, metroPortSetting as M, removeWorktreeAsync as Mt, metroTunnelSettingError as N, repoRoot as Nt, mergeSettingsLayers as O, locallyKnownUpstream as Ot, metroWarmupUrlSetting as P, repoRootAsync as Pt, settingFile as Q, projectSettingsContextAsync as R, restoreFileAsync as Rt, iosSigningIdentitySettingError as S, hasRemoteAsync as St, iosSimSlimDefaultSetting as T, linkedWorktreesOnDisk as Tt, remoteEasFallbackSetting as U, makeTemporaryDirectory as Ut, realpathInside as V, warmWorktreePaths as Vt, remoteIosSetting as W, removeTemporaryEntry as Wt, resolveSettings as X, resolveProjectSettingsAsync as Y, runnableMetroCommand as Z, iosLanHostSetting as _, dirtyPathsAsync as _t, SETTING_SHAPE_REMEDY as a, unknownSettingKeys as at, iosProjectDirSettingError as b, gitCommonDirOnDisk as bt, androidDataPartitionSizeBytes as c, PUBLIC_METRO_ENV as ct, androidLayoutSetting as d, resolveTailscaleBinary as dt, settingOriginScope as et, androidLayoutSettingError as f, branchExistsAsync as ft, deviceReclaimIdleMinutesSetting as g, dirtyFingerprintFiles as gt, deviceIdleShutdownMinutesSetting as h, depsOutOfSync as ht, SETTINGS_WITH_RESOLVE_TIME_FALLBACK as i, tunnelModeSetting as it, metroIdleStopMinutesSetting as j, readWorktreeExclude as jt, metroCommandSetting as k, locallyKnownUpstreamAsync as kt, androidDataPartitionSizeGbSetting as l, detectProviders as lt, defaultAndroidLayout as m, deleteBranchAsync as mt, METRO_COMMAND_PORT as n, settingValueAt as nt, androidAvdConfigSetting as o, webSettings as ot, cacheProviderSettingError as p, cloneIgnoredEntries as pt, resolveIosProjectDir as q, PATH_SETTINGS as r, settingsLayers as rt, androidAvdConfigSettingError as s, workspaceHiddenSetting as st, ANDROID_AVD_CONFIG_HELP as t, settingShapeErrors as tt, androidDataPartitionSizeGbSettingError as u, planMetroReach as ut, iosLanHostSettingError as v, gitCommonDir as vt, iosSigningIdentitySha1SettingError as w, isPodInstallChurn as wt, iosSigningIdentitySetting as x, hasPopulatedSubmodulesAsync as xt, iosProjectDirSetting as y, gitCommonDirAsync as yt, publicUrlSetting as z, sourceCheckoutOf as zt };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as layerFile, c as settingEntry, i as SettingsRefusal, n as readScope, o as readSettingsContext, r as requireSetting, s as readSettingsPayload, t as mutateSetting } from "./settings-write
|
|
1
|
+
import { a as layerFile, c as settingEntry, i as SettingsRefusal, n as readScope, o as readSettingsContext, r as requireSetting, s as readSettingsPayload, t as mutateSetting } from "./settings-write-n0zwfohx.mjs";
|
|
2
2
|
import { SETTING_SCOPES } from "@stim-cli/core/state";
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
//#region src/commands/settings.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { u as withWorkspaceProcessLock } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { A as writeConfigSettingAsync, O as withConfigLockAsync$1, _ as loadConfig$1, f as getConfigPath$1, h as getRepoSettings, m as getProjectSettings } from "./config-BZhXY15H.mjs";
|
|
3
3
|
import { a as killOnAbort, i as gitPath } from "./operation-exec-CUZifp6Z.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-
|
|
4
|
+
import { B as readCommittedSettings, at as unknownSettingKeys } from "./settings-B5tCoq9N.mjs";
|
|
5
|
+
import { r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-BiC68mIp.mjs";
|
|
6
6
|
import { i as stimDesktopInstalledAsync, n as settingDefault, r as stimDesktopInstalled } from "./stim-desktop-DS0mzR8U.mjs";
|
|
7
|
-
import { n as recordingLayers, t as deleteTurnedOffRecordings } from "./recordings-
|
|
7
|
+
import { n as recordingLayers, t as deleteTurnedOffRecordings } from "./recordings-BaoQ0t-J.mjs";
|
|
8
8
|
import { existsSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
|
|
9
9
|
import { join } from "node:path";
|
|
10
10
|
import { configDir } from "@stim-cli/core";
|
|
@@ -315,6 +315,25 @@
|
|
|
315
315
|
"relative": true
|
|
316
316
|
}
|
|
317
317
|
},
|
|
318
|
+
"simslim": {
|
|
319
|
+
"description": "Slim every Stim-owned iOS simulator with SimSlim's default categories when no ios.simslimProfile is set; off in a project opts that app out",
|
|
320
|
+
"type": "string",
|
|
321
|
+
"enum": [
|
|
322
|
+
"on",
|
|
323
|
+
"off"
|
|
324
|
+
],
|
|
325
|
+
"default": "off",
|
|
326
|
+
"x-stim": {
|
|
327
|
+
"key": "ios.simslim",
|
|
328
|
+
"kind": "choice",
|
|
329
|
+
"scopes": [
|
|
330
|
+
"machine",
|
|
331
|
+
"workspace",
|
|
332
|
+
"repo",
|
|
333
|
+
"committed"
|
|
334
|
+
]
|
|
335
|
+
}
|
|
336
|
+
},
|
|
318
337
|
"simslimProfile": {
|
|
319
338
|
"description": "SimSlim JSON profile under the app",
|
|
320
339
|
"type": "string",
|
|
@@ -1283,6 +1302,25 @@
|
|
|
1283
1302
|
]
|
|
1284
1303
|
}
|
|
1285
1304
|
},
|
|
1305
|
+
"simslim": {
|
|
1306
|
+
"description": "Slim every Stim-owned iOS simulator with SimSlim's default categories when no ios.simslimProfile is set; off in a project opts that app out",
|
|
1307
|
+
"type": "string",
|
|
1308
|
+
"enum": [
|
|
1309
|
+
"on",
|
|
1310
|
+
"off"
|
|
1311
|
+
],
|
|
1312
|
+
"default": "off",
|
|
1313
|
+
"x-stim": {
|
|
1314
|
+
"key": "ios.simslim",
|
|
1315
|
+
"kind": "choice",
|
|
1316
|
+
"scopes": [
|
|
1317
|
+
"machine",
|
|
1318
|
+
"workspace",
|
|
1319
|
+
"repo",
|
|
1320
|
+
"committed"
|
|
1321
|
+
]
|
|
1322
|
+
}
|
|
1323
|
+
},
|
|
1286
1324
|
"appStoreConnectKeyPath": {
|
|
1287
1325
|
"description": "App Store Connect API key (.p8) that `stim device provision ios` authenticates with",
|
|
1288
1326
|
"type": "string",
|