stim 1.20.2 → 1.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -8
- package/dist/acquire-artifact-CD4lbiWE.mjs +153 -0
- package/dist/act-DHAw2A2S.mjs +2667 -0
- package/dist/activity-BzVfHSrY.mjs +1376 -0
- package/dist/{agent-device-usage-output-Dzgv6lgR.mjs → agent-device-usage-output-zh1vhbLp.mjs} +21 -65
- package/dist/{android-HqP1_vB_.mjs → android-BEJ8Jpl7.mjs} +2 -2
- package/dist/{android-DCKZrNvV.mjs → android-BLgbNqox.mjs} +128 -78
- package/dist/{android-Dlzxshgp.mjs → android-CV_GCELZ.mjs} +5 -5
- package/dist/{android-Mz_Inn3w.mjs → android-DUYkNF4u.mjs} +184 -102
- package/dist/{android-cas-Bl-cLJBk.mjs → android-cas-Ct5b1xCK.mjs} +7 -6
- package/dist/android-cas-compiler.mjs +2 -2
- package/dist/android-project-BCAAmMwz.mjs +12 -0
- package/dist/api.d.mts +740 -8
- package/dist/api.mjs +585 -1
- package/dist/{artifact-HSwkIWEQ.mjs → artifact-B8T3S5gi.mjs} +223 -201
- package/dist/{artifact-D3czlUvT.mjs → artifact-DAuZ-FNU.mjs} +158 -148
- package/dist/{browser-web-CA-F1GQo.mjs → browser-web-QQzVjz3O.mjs} +26 -24
- package/dist/budget-Bs6SxxzO.mjs +9154 -0
- package/dist/{build-DYDbfkk5.mjs → build-CoPzQRNw.mjs} +144 -96
- package/dist/build-cache-DmyR9Zzc.mjs +602 -0
- package/dist/build-plan-CaFskB7_.mjs +188 -0
- package/dist/{cache-manifest-XH-fvDUj.mjs → cache-manifest-DkkqguoK.mjs} +2 -2
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{ccache-zdKiYQ3E.mjs → ccache-BJRZ9pG3.mjs} +10 -9
- package/dist/{cdp-Dq_ypAlJ.mjs → cdp-CWmIUMbw.mjs} +18 -5
- package/dist/{chrome-BnzZMqsR.mjs → chrome-B6tfCta1.mjs} +7 -4
- package/dist/{cli-CLP3diBm.mjs → cli-0DYf8QhQ.mjs} +20 -20
- package/dist/cli.mjs +1 -1
- package/dist/client-B7QVOlCr.d.mts +253 -0
- package/dist/client-UXD70ZbM.mjs +1406 -0
- package/dist/collector-run.d.mts +4 -40
- package/dist/collector-run.mjs +9 -8
- package/dist/{command-output-BTy8hZ0F.mjs → command-output-B1UrjZHL.mjs} +1 -1
- package/dist/config-CYcBF478.mjs +949 -0
- package/dist/{created-devices-Dzd5C2LF.mjs → created-devices-CqeBlrEn.mjs} +3 -3
- package/dist/{dependency-state-DG0p31-y.mjs → dependency-state-BbKQW83h.mjs} +20 -5
- package/dist/{detached-entry-B9C_zeQC.mjs → detached-entry-DFRyG1_o.mjs} +1 -1
- package/dist/{dev-client-DAWVIGBu.mjs → dev-client-UOeESKm6.mjs} +2 -2
- package/dist/device-DCxH7_By.mjs +1068 -0
- package/dist/{device-BECOiufl.mjs → device-ExJq8Ei7.mjs} +35 -35
- package/dist/{device-capacity-CBUAcRyQ.mjs → device-capacity-CMlqEcvw.mjs} +43 -13
- package/dist/device-host-worker.mjs +65 -61
- package/dist/{device-ios-COSi6oS1.mjs → device-ios-DRUeKaFV.mjs} +48 -45
- package/dist/{device-lease-run-Cw2M4z51.mjs → device-lease-run-C8raGFoP.mjs} +14 -26
- package/dist/{device-pool-Bf-pOhSw.mjs → device-pool-DMRpVX9a.mjs} +5 -5
- package/dist/doctor-BLHCYxzi.mjs +2 -0
- package/dist/{doctor-kfMBnUw6.mjs → doctor-DTvaDOda.mjs} +281 -317
- package/dist/{doctor-CB8oZKCk.mjs → doctor-Dhqebm0q.mjs} +183 -91
- package/dist/doctor-fingerprint.mjs +19 -0
- package/dist/{doctor-watchman-BRyV2adA.mjs → doctor-watchman-Cv1F10Kj.mjs} +40 -21
- package/dist/{eas-build-JyfqyHfC.mjs → eas-build-BomfRnFT.mjs} +53 -20
- package/dist/{build-plan-B7SZsc2N.mjs → eas-fallback-DJwZpy0c.mjs} +26 -208
- package/dist/{watchman-CPQFZLXY.mjs → eas-session-ledger-op6A54yi.mjs} +229 -11
- package/dist/{error-diagnostics-BR677IDM.mjs → error-diagnostics-Bf0rZvG9.mjs} +172 -82
- package/dist/exec-H20xSg2T.d.mts +65 -0
- package/dist/exec-_UbtCQcG.mjs +750 -0
- package/dist/gc-C-WwL0yi.mjs +3 -0
- package/dist/{gc-qWOMdnER.mjs → gc-_-dCXdyL.mjs} +584 -796
- package/dist/git-C3iTsJaZ.mjs +73 -0
- package/dist/{guide-G9cAbVAc.mjs → guide-Yqwt2bd6.mjs} +941 -269
- package/dist/{hosted-android-C3MHGld1.mjs → hosted-android-Bw-honsd.mjs} +8 -6
- package/dist/{hosted-client-ZEKpS9vw.mjs → hosted-client-DB_gBPfY.mjs} +34 -19
- package/dist/{hosted-ios-l-o3iM9J.mjs → hosted-ios-CUvOf4Vr.mjs} +1 -1
- package/dist/{hosted-logs-EzQM7-3Z.mjs → hosted-logs-DL_P5AdN.mjs} +77 -43
- package/dist/{hosted-macos-BACVAVqE.mjs → hosted-macos-QI141yKk.mjs} +21 -17
- package/dist/{hosted-native-A4s1QPXe.mjs → hosted-native-Ksyjgzq-.mjs} +30 -21
- package/dist/idle-BVeRGroT.d.mts +24 -0
- package/dist/{idle-shutdown-DtxhPTKe.mjs → idle-shutdown-DaKmZi0z.mjs} +11 -10
- package/dist/{ios-BwVCF7oA.mjs → ios-CQ68hG9s.mjs} +8 -8
- package/dist/{ios-RkW4pnQf.mjs → ios-CpByZy12.mjs} +140 -80
- package/dist/{ios-device-B5veSDDQ.mjs → ios-device-CXGP1bsD.mjs} +1 -1
- package/dist/{ios-device-D7pi2Sca.mjs → ios-device-CwFMehUS.mjs} +51 -26
- package/dist/{ios-project-K9hY_Jab.mjs → ios-project-WuwwBdvW.mjs} +13 -13
- package/dist/{ios-nOLJGVdy.mjs → ios-qNJt4dFm.mjs} +1 -1
- package/dist/ios-signing-DTTIChGs.mjs +489 -0
- package/dist/{ios-state-CBLe1xYw.mjs → ios-state-DvFX-K_l.mjs} +1 -1
- package/dist/{ios-Ce7bc7br.mjs → ios-ubFsBzwq.mjs} +129 -86
- package/dist/{js-swap-Bb3nsS07.mjs → js-swap-Cc1dttps.mjs} +53 -26
- package/dist/{launch-F4sOqAhB.mjs → launch-CD1yVc7U.mjs} +91 -90
- package/dist/{launch-C3qJ6Agb.mjs → launch-Zq2mOSDy.mjs} +82 -541
- package/dist/logs-BS00Anxf.mjs +352 -0
- package/dist/logs-CMm05HxN.mjs +255 -0
- package/dist/{macos-D7uDvO-z.mjs → macos-B65--pPd.mjs} +1 -1
- package/dist/{macos-Ch5VJmcS.mjs → macos-C-0qJ6zq.mjs} +225 -212
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +122 -247
- package/dist/{metro-DnCEjCxs.mjs → metro-DEXpIhHC.mjs} +67 -12
- package/dist/{metro-gateway-CX9Xlkq2.mjs → metro-gateway-BMJNlj3E.mjs} +20 -12
- package/dist/{named-ports-4WopRPg-.mjs → named-ports-BWTzt6mu.mjs} +8 -63
- package/dist/native-android-JACyjTZs.mjs +844 -0
- package/dist/{native-gradle-inputs-BsLRrl7u.mjs → native-gradle-inputs-Bep9JcSF.mjs} +128 -140
- package/dist/native-inputs-TRTTTRxt.mjs +91 -0
- package/dist/native-run-DY_RLx3C.mjs +277 -0
- package/dist/{native-runtime-k8dTIrbK.mjs → native-runtime-Dg1Q7tfF.mjs} +9 -8
- package/dist/{native-xcode-inputs-CykopJdM.mjs → native-xcode-inputs-CB2iQeWq.mjs} +27 -18
- package/dist/{native-xcode-ios-Bbf30Gm0.mjs → native-xcode-ios-CXX39F7o.mjs} +96 -47
- package/dist/{ndjson-GOnbyvso.mjs → ndjson-CgE_o3Dl.mjs} +3 -3
- package/dist/offload-worker.d.mts +1 -46
- package/dist/offload-worker.mjs +197 -66
- package/dist/{ownership-DCtw_2IA.mjs → ownership-DEmM5vhh.mjs} +3 -3
- package/dist/{page-DRHy329N.mjs → page-CPaHeYqj.mjs} +7 -4
- package/dist/paths-BsJMoPP2.mjs +12 -0
- package/dist/paths-DQtTgsBf.mjs +42 -0
- package/dist/{placement-log-MOfPVgaM.mjs → placement-log-BqGbTa61.mjs} +5 -5
- package/dist/{plan-placement-V0TdzYXp.mjs → plan-placement-Bwj-IjY1.mjs} +6 -6
- package/dist/{ports-DdSUicVo.mjs → ports-D-MmCTdv.mjs} +3 -3
- package/dist/prebuild-uD_ipCxF.mjs +449 -0
- package/dist/{project-_phNIJfs.mjs → project-BZNjmW_8.mjs} +65 -37
- package/dist/{pull-request-CQ8sPbZa.mjs → pull-request-Lfetn8Kr.mjs} +2 -2
- package/dist/pull-request-zjCSAryH.d.mts +120 -0
- package/dist/pull-requests.d.mts +1 -119
- package/dist/pull-requests.mjs +1 -1
- package/dist/{react-native-android-CM1XRDwv.mjs → react-native-android-DuzH0cn3.mjs} +74 -48
- package/dist/{gradle-DSrXb6lG.mjs → react-native-build-rhk4smwQ.mjs} +292 -15
- package/dist/react-native-doctor-CQpuIMso.mjs +234 -0
- package/dist/{react-native-ios-Dhq_eiYQ.mjs → react-native-ios-Bhq1rJeV.mjs} +46 -28
- package/dist/{recordings-D0d5aQt0.mjs → recordings-DYteQSu4.mjs} +12 -9
- package/dist/{reload-C8JhxjSh.mjs → reload-CmTRFJaX.mjs} +93 -47
- package/dist/reload-DzjSl5P_.mjs +2 -0
- package/dist/{remote-BiR6aYjy.mjs → remote-ByYkXdGD.mjs} +15 -10
- package/dist/result-DNiS-tTP.mjs +434 -0
- package/dist/{run-BtPgpKks.mjs → run-D23HmJMs.mjs} +4 -5
- package/dist/selection-CSl9i5qU.mjs +619 -0
- package/dist/{server-bare-R2m_gsH8.mjs → server-bare-CxTrvDg8.mjs} +3 -4
- package/dist/{server-command-CTtCkmcQ.mjs → server-command-CtzloH3v.mjs} +14 -7
- package/dist/server-expo-C-90EhcG.mjs +2 -0
- package/dist/{server-expo-DsguMGUF.mjs → server-expo-DT_F_uVI.mjs} +50 -9
- package/dist/{settings-B717odTD.mjs → settings-CsJDEXgK.mjs} +234 -24
- package/dist/{settings-vk3mJGSm.d.mts → settings-DkdmlelE.d.mts} +6 -4
- package/dist/settings-T1gtc3bf.mjs +114 -0
- package/dist/settings-write-HyVZ8eQ8.mjs +359 -0
- package/dist/settings.schema.json +163 -16
- package/dist/{simslim-CCr3rE-A.mjs → simslim-Cgk17SXV.mjs} +14 -12
- package/dist/{slot-launch-DPt0m9Nd.mjs → slot-launch-DF8VfT64.mjs} +15 -20
- package/dist/{spawn-entry-Dcb7sDUz.mjs → spawn-entry-jw19m8Nl.mjs} +0 -1
- package/dist/stage-BIS0ydsV.mjs +183 -0
- package/dist/{start-BWqzODpb.mjs → start-7lpH7hmN.mjs} +63 -44
- package/dist/{start-TXeMmmO2.mjs → start-RChynRDp.mjs} +1 -1
- package/dist/{state-D1Icyjlu.mjs → state-C4ZtUisW.mjs} +40 -13
- package/dist/{state-CG_OFoaA.mjs → state-XMziexv2.mjs} +3 -2
- package/dist/{stats-BoY5sEPU.mjs → stats-53T7OTb9.mjs} +7 -13
- package/dist/stats-report-BFfMpWWF.mjs +16 -0
- package/dist/{status-WgFbkRzj.mjs → status-BL7jVyAB.mjs} +535 -447
- package/dist/status-CSi6tlRq.mjs +2 -0
- package/dist/{status-BTA7kKiQ.mjs → status-DqEUSSxs.mjs} +6 -4
- package/dist/{status-watch-C23ILtf9.mjs → status-watch-GDCfqpTE.mjs} +187 -22
- package/dist/status-worker.d.mts +1 -0
- package/dist/status-worker.mjs +19 -0
- package/dist/stim-desktop-C12we7lz.mjs +112 -0
- package/dist/{stop-DR6VoDIk.mjs → stop-Bk_1qiV6.mjs} +2 -2
- package/dist/{stop-BNmBMi1F.mjs → stop-CPzlM1L-.mjs} +138 -98
- package/dist/{stop-DPEhunlw.mjs → stop-D7h6jAXQ.mjs} +11 -10
- package/dist/supervisor-run.d.mts +8 -17
- package/dist/supervisor-run.mjs +63 -27
- package/dist/{support-DMTqj3Hm.mjs → support-67vraa1Q.mjs} +18 -11
- package/dist/{support-CwjbFs9H.mjs → support-Dlu37g6H.mjs} +12 -12
- package/dist/{swiftpm-macos-DRNVJWlb.mjs → swiftpm-macos-p8WZbxKU.mjs} +35 -24
- package/dist/toolchain-DhKwp9iI.mjs +2 -0
- package/dist/toolchain-Hp9sCpK4.mjs +873 -0
- package/dist/{trigger-CigAYjeL.mjs → trigger-BAahxUPq.mjs} +20 -5
- package/dist/trigger-Bf3uDcpv.mjs +2 -0
- package/dist/{warm-progress-BuY-Fvfn.mjs → warm-progress-BHX5r0Ei.mjs} +250 -156
- package/dist/{web-BDBMxDpx.mjs → web-CJmIj6AI.mjs} +18 -13
- package/dist/web-DknQETPs.mjs +2 -0
- package/dist/web-run.mjs +11 -12
- package/dist/windows-report.d.mts +1 -0
- package/dist/windows-report.mjs +18 -0
- package/dist/windows-report.ps1 +43 -0
- package/dist/workspace-process-lock-1_1OoVW5.mjs +57 -0
- package/dist/{workspace-state-DJt_MMvf.mjs → workspace-state-Cjuigeeu.mjs} +62 -58
- package/dist/{workspaces-C36s2jb9.mjs → workspaces-BccMFmGQ.mjs} +1188 -1079
- package/dist/worktree-CK2MpJW5.mjs +2 -0
- package/dist/{worktree-CgvJYJ-Q.mjs → worktree-DQ6Zi2Mv.mjs} +304 -53
- package/dist/xcode-Zlx3qjEs.mjs +896 -0
- package/package.json +7 -5
- package/shim/android-optimizations.gradle +7 -5
- package/dist/activity-BSV745Kz.mjs +0 -629
- package/dist/api-qvOzWyfO.mjs +0 -154
- package/dist/api-run.mjs +0 -294
- package/dist/app-install-BIKtMfPq.mjs +0 -896
- package/dist/artifact-lifecycle-DzPpBYvK.mjs +0 -30
- package/dist/budget-f7516Zk0.mjs +0 -4106
- package/dist/build-facts-DcLv2HSd.d.mts +0 -111
- package/dist/cancellation-C_22VQTH.mjs +0 -24
- package/dist/client-qQAaXSUs.mjs +0 -1771
- package/dist/config-BYDxlMY3.mjs +0 -562
- package/dist/device-DuiPJQSn.mjs +0 -290
- package/dist/device-lease-BX1sJQ2E.mjs +0 -1224
- package/dist/device-remote-xRT0Vmo9.mjs +0 -1272
- package/dist/eas-session-ledger-Cm0Gwq2F.mjs +0 -207
- package/dist/exec-DqKo9GKJ.mjs +0 -268
- package/dist/git-DDfFzkMm.mjs +0 -45
- package/dist/launch-verify-B6Q8hZP-.mjs +0 -428
- package/dist/logs-BGrEUaEs.mjs +0 -383
- package/dist/miss-reason-mKzZ4VvN.mjs +0 -238
- package/dist/native-android-D5qc3-_v.mjs +0 -226
- package/dist/ndjson-Du3j0AQ9.d.mts +0 -17
- package/dist/plan-C4TjdPsR.mjs +0 -260
- package/dist/prebuild-DYbucPXy.mjs +0 -212
- package/dist/preview-78a9kR_-.mjs +0 -1011
- package/dist/react-native-build-CtCccJtb.mjs +0 -239
- package/dist/react-native-doctor-CfRnFfjs.mjs +0 -78
- package/dist/remote-cache-OyOyVIS3.mjs +0 -526
- package/dist/result-CaJg5Iat.mjs +0 -186
- package/dist/server-expo-Bigriskl.mjs +0 -2
- package/dist/settings-BORNaaCO.mjs +0 -402
- package/dist/spawn-claims-DVS5RkMS.mjs +0 -72
- package/dist/stage-KNTQopqv.mjs +0 -157
- package/dist/stim-desktop-BzBN2Em2.mjs +0 -63
- package/dist/tailnet-Dh-qiYzG.mjs +0 -265
- package/dist/toolchain-BFkAcstd.mjs +0 -2
- package/dist/toolchain-DxSsNssu.mjs +0 -1657
- package/dist/trigger-9_USgmxz.mjs +0 -2
- package/dist/web-Dq-i3wzJ.mjs +0 -2
- package/dist/worktree-DpLdCHga.mjs +0 -2
- package/dist/{api-run.d.mts → doctor-fingerprint.d.mts} +0 -0
- package/dist/{errors-DzkMYh8Q.mjs → errors-ccaPc4ox.mjs} +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { h as shortUdid, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-
|
|
2
|
-
import {
|
|
3
|
-
import { n as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { a as lastBuildRecord, i as iosFacts, n as cacheDescription, s as writeLastBuild } from "./ios-project-
|
|
7
|
-
import { n as registerIos, r as runIosOperation, t as iosCommand } from "./ios-
|
|
8
|
-
import { a as collectorEntry, o as replaceCollector } from "./launch-
|
|
1
|
+
import { h as shortUdid, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-B1UrjZHL.mjs";
|
|
2
|
+
import { jn as schemesFromInfoPlist, kn as pickDevClientScheme } from "./budget-Bs6SxxzO.mjs";
|
|
3
|
+
import { f as podAction, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, s as iosConfigurationSetting, t as appNameFromPath, u as isReleaseConfiguration, v as resolveRuntime } from "./support-Dlu37g6H.mjs";
|
|
4
|
+
import { n as ensureWorkspaceStorageSafely } from "./native-runtime-Dg1Q7tfF.mjs";
|
|
5
|
+
import { t as devClientScheme } from "./dev-client-UOeESKm6.mjs";
|
|
6
|
+
import { a as lastBuildRecord, i as iosFacts, n as cacheDescription, s as writeLastBuild } from "./ios-project-WuwwBdvW.mjs";
|
|
7
|
+
import { n as registerIos, r as runIosOperation, t as iosCommand } from "./ios-ubFsBzwq.mjs";
|
|
8
|
+
import { a as collectorEntry, o as replaceCollector } from "./launch-Zq2mOSDy.mjs";
|
|
9
9
|
export { appNameFromPath, buildLogFile, cacheDescription, collectorEntry, iosCommand as default, devClientScheme, deviceLabel, ensureWorkspaceStorageSafely, formatDuration, iosConfigurationSetting, iosFacts, isReleaseConfiguration, lastBuildRecord, phaseLine, pickDevClientScheme, podAction, registerIos, replaceCollector, resolveConfiguration, resolveDeviceType, resolveRuntime, runIosOperation, schemesFromInfoPlist, shortHash, shortUdid, writeLastBuild };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { t as getExecutor } from "./exec-_UbtCQcG.mjs";
|
|
2
|
+
import { P as formatBytes, _ as loadConfig$1 } from "./config-CYcBF478.mjs";
|
|
3
3
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { r as recordCreatedDevice, t as forgetCreatedDevice } from "./created-devices-CqeBlrEn.mjs";
|
|
5
|
+
import { ct as isStimOwnedSim } from "./android-DUYkNF4u.mjs";
|
|
6
|
+
import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-C12we7lz.mjs";
|
|
7
|
+
import { createHash } from "node:crypto";
|
|
7
8
|
import { closeSync, existsSync, lstatSync, mkdtempSync, openSync, readSync, readdirSync, rmSync, writeFileSync } from "node:fs";
|
|
9
|
+
import { tmpdir, totalmem } from "node:os";
|
|
8
10
|
import { dirname, isAbsolute, join, resolve } from "node:path";
|
|
9
11
|
import { IOS_SIMULATOR_APPS, isJsonObject, settingDefinition } from "@stim-cli/core/state";
|
|
10
|
-
import { createHash } from "node:crypto";
|
|
11
|
-
import { tmpdir, totalmem } from "node:os";
|
|
12
12
|
//#region src/engine/installed-artifact.ts
|
|
13
13
|
const READ_CHUNK_BYTES = 1048576;
|
|
14
14
|
const DEVICE_PATH_TIMEOUT_MS = 3e4;
|
|
@@ -89,11 +89,11 @@ function hashBundle(dir) {
|
|
|
89
89
|
};
|
|
90
90
|
return walk(dir, "") ? digest.digest("hex") : null;
|
|
91
91
|
}
|
|
92
|
-
function deviceHoldsApk({ serial, packageName, apkPath }, { exec = null } = {}) {
|
|
92
|
+
async function deviceHoldsApk({ serial, packageName, apkPath }, { exec = null } = {}) {
|
|
93
93
|
const e = exec || getExecutor();
|
|
94
94
|
let path;
|
|
95
95
|
try {
|
|
96
|
-
path = parseInstalledApkPath(e.
|
|
96
|
+
path = parseInstalledApkPath(await e.runFileAsync("adb", [
|
|
97
97
|
"-s",
|
|
98
98
|
serial,
|
|
99
99
|
"shell",
|
|
@@ -107,7 +107,7 @@ function deviceHoldsApk({ serial, packageName, apkPath }, { exec = null } = {})
|
|
|
107
107
|
if (!path) return false;
|
|
108
108
|
let installed;
|
|
109
109
|
try {
|
|
110
|
-
installed = parseDeviceSha256(e.
|
|
110
|
+
installed = parseDeviceSha256(await e.runFileAsync("adb", [
|
|
111
111
|
"-s",
|
|
112
112
|
serial,
|
|
113
113
|
"shell",
|
|
@@ -120,11 +120,11 @@ function deviceHoldsApk({ serial, packageName, apkPath }, { exec = null } = {})
|
|
|
120
120
|
if (!installed) return false;
|
|
121
121
|
return artifactsMatch(hashFile(apkPath), installed);
|
|
122
122
|
}
|
|
123
|
-
function deviceHoldsBundle({ udid, bundleId, appPath }, { exec = null } = {}) {
|
|
123
|
+
async function deviceHoldsBundle({ udid, bundleId, appPath }, { exec = null } = {}) {
|
|
124
124
|
const e = exec || getExecutor();
|
|
125
125
|
let container;
|
|
126
126
|
try {
|
|
127
|
-
container = parseAppContainerPath(e.
|
|
127
|
+
container = parseAppContainerPath(await e.runFileAsync("xcrun", [
|
|
128
128
|
"simctl",
|
|
129
129
|
"get_app_container",
|
|
130
130
|
udid,
|
|
@@ -254,7 +254,40 @@ function readMemoryCulprits(exec = getExecutor(), platform = process.platform, t
|
|
|
254
254
|
], { timeoutMs: 5e3 });
|
|
255
255
|
for (const line of listed?.split("\n") ?? []) {
|
|
256
256
|
const match = /^\s*(\d+)\s+(.*)$/.exec(line);
|
|
257
|
-
|
|
257
|
+
const command = match?.[2];
|
|
258
|
+
if (command !== void 0) commandLines.set(Number(match?.[1]), command);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return findMemoryCulprits(processes, totalBytes, commandLines);
|
|
262
|
+
}
|
|
263
|
+
async function readMemoryCulpritsAsync(exec = getExecutor(), platform = process.platform, totalBytes = totalmem()) {
|
|
264
|
+
if (platform !== "darwin") return null;
|
|
265
|
+
const output = await exec.runFileQuietAsync("/usr/bin/top", [
|
|
266
|
+
"-l",
|
|
267
|
+
"1",
|
|
268
|
+
"-o",
|
|
269
|
+
"mem",
|
|
270
|
+
"-n",
|
|
271
|
+
String(TOP_ROWS),
|
|
272
|
+
"-stats",
|
|
273
|
+
"pid,mem,command"
|
|
274
|
+
], { timeoutMs: 1e4 });
|
|
275
|
+
if (output === null) return null;
|
|
276
|
+
const processes = parseTopMemory(output);
|
|
277
|
+
const java = processes.filter((entry) => entry.name === "java").map((entry) => entry.pid);
|
|
278
|
+
const commandLines = /* @__PURE__ */ new Map();
|
|
279
|
+
if (java.length) {
|
|
280
|
+
const listed = await exec.runFileQuietAsync("/bin/ps", [
|
|
281
|
+
"-ww",
|
|
282
|
+
"-o",
|
|
283
|
+
"pid=,command=",
|
|
284
|
+
"-p",
|
|
285
|
+
java.join(",")
|
|
286
|
+
], { timeoutMs: 5e3 });
|
|
287
|
+
for (const line of listed?.split("\n") ?? []) {
|
|
288
|
+
const match = /^\s*(\d+)\s+(.*)$/.exec(line);
|
|
289
|
+
const command = match?.[2];
|
|
290
|
+
if (command !== void 0) commandLines.set(Number(match?.[1]), command);
|
|
258
291
|
}
|
|
259
292
|
}
|
|
260
293
|
return findMemoryCulprits(processes, totalBytes, commandLines);
|
|
@@ -270,19 +303,27 @@ function memoryCulpritFindings(culprits) {
|
|
|
270
303
|
}
|
|
271
304
|
//#endregion
|
|
272
305
|
//#region src/host-memory.ts
|
|
306
|
+
function pressureValue(value) {
|
|
307
|
+
switch (value.trim()) {
|
|
308
|
+
case "1": return "normal";
|
|
309
|
+
case "2": return "warning";
|
|
310
|
+
case "4": return "critical";
|
|
311
|
+
default: return null;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
273
314
|
function readHostMemoryPressure(exec = getExecutor(), platform = process.platform) {
|
|
274
315
|
if (platform !== "darwin") return null;
|
|
275
316
|
try {
|
|
276
|
-
|
|
277
|
-
case "1": return "normal";
|
|
278
|
-
case "2": return "warning";
|
|
279
|
-
case "4": return "critical";
|
|
280
|
-
default: return null;
|
|
281
|
-
}
|
|
317
|
+
return pressureValue(exec.runFile("/usr/sbin/sysctl", ["-n", "kern.memorystatus_vm_pressure_level"], { timeoutMs: 2e3 }));
|
|
282
318
|
} catch {
|
|
283
319
|
return null;
|
|
284
320
|
}
|
|
285
321
|
}
|
|
322
|
+
async function readHostMemoryPressureAsync(exec = getExecutor(), platform = process.platform) {
|
|
323
|
+
if (platform !== "darwin") return null;
|
|
324
|
+
const value = await exec.runFileQuietAsync("/usr/sbin/sysctl", ["-n", "kern.memorystatus_vm_pressure_level"], { timeoutMs: 2e3 });
|
|
325
|
+
return value === null ? null : pressureValue(value);
|
|
326
|
+
}
|
|
286
327
|
function memoryCulpritsUnder(pressure, exec = getExecutor()) {
|
|
287
328
|
return pressure === "warning" || pressure === "critical" ? readMemoryCulprits(exec) : null;
|
|
288
329
|
}
|
|
@@ -303,15 +344,19 @@ function parseIosSimulatorApp(value, source = "iosSimulatorApp in machine config
|
|
|
303
344
|
Object.assign(error, { code: "STIM_BAD_ARG" });
|
|
304
345
|
throw error;
|
|
305
346
|
}
|
|
306
|
-
function configuredIosSimulatorViewer(override) {
|
|
347
|
+
function configuredIosSimulatorViewer(override, env) {
|
|
307
348
|
const configured = loadConfig$1()?.iosSimulatorApp;
|
|
308
349
|
const chosen = override ?? (configured === void 0 ? void 0 : parseIosSimulatorApp(configured));
|
|
309
|
-
return { open: (udid) =>
|
|
350
|
+
return { open: async (udid) => {
|
|
351
|
+
if (chosen) return openSimulator(chosen, udid);
|
|
352
|
+
const installed = await stimDesktopInstalledAsync(process.platform, env);
|
|
353
|
+
return openSimulator(settingDefault(settingDefinition("iosSimulatorApp"), () => installed).value, udid);
|
|
354
|
+
} };
|
|
310
355
|
}
|
|
311
|
-
function openSimulator(app, udid) {
|
|
356
|
+
async function openSimulator(app, udid) {
|
|
312
357
|
const exec = getExecutor();
|
|
313
358
|
if (app === "stim-desktop") {
|
|
314
|
-
exec.
|
|
359
|
+
await exec.runFileQuietAsync("open", [
|
|
315
360
|
"-g",
|
|
316
361
|
"-a",
|
|
317
362
|
"Stim",
|
|
@@ -320,21 +365,21 @@ function openSimulator(app, udid) {
|
|
|
320
365
|
return;
|
|
321
366
|
}
|
|
322
367
|
if (app === "siniulator") {
|
|
323
|
-
exec.
|
|
368
|
+
await exec.runFileQuietAsync("open", [
|
|
324
369
|
"-a",
|
|
325
370
|
"Siniulator",
|
|
326
371
|
`siniulator://open?udid=${udid}`
|
|
327
372
|
], OPEN_OPTIONS);
|
|
328
373
|
return;
|
|
329
374
|
}
|
|
330
|
-
const simctlPath = exec.
|
|
375
|
+
const simctlPath = await exec.runFileQuietAsync("xcrun", ["--find", "simctl"], OPEN_OPTIONS);
|
|
331
376
|
const deviceHubApp = simctlPath ? resolve(dirname(simctlPath), "..", "..", "..", "Applications", "DeviceHub.app") : null;
|
|
332
377
|
const args = deviceHubApp && existsSync(deviceHubApp) ? [
|
|
333
378
|
"-a",
|
|
334
379
|
deviceHubApp,
|
|
335
380
|
`devices://device/open?id=${udid}`
|
|
336
381
|
] : ["-a", "Simulator"];
|
|
337
|
-
exec.
|
|
382
|
+
await exec.runFileQuietAsync("open", args, OPEN_OPTIONS);
|
|
338
383
|
}
|
|
339
384
|
//#endregion
|
|
340
385
|
//#region src/devices/ios.ts
|
|
@@ -398,19 +443,29 @@ function createIosSimSnapshot() {
|
|
|
398
443
|
let cached = null;
|
|
399
444
|
return {
|
|
400
445
|
read() {
|
|
401
|
-
cached ??=
|
|
402
|
-
|
|
446
|
+
const entry = cached ??= {};
|
|
447
|
+
entry.value ??= listAllIosSims({ includeUnavailable: true });
|
|
448
|
+
return entry.value;
|
|
449
|
+
},
|
|
450
|
+
async readAsync() {
|
|
451
|
+
const entry = cached ??= {};
|
|
452
|
+
if (entry.value) return entry.value;
|
|
453
|
+
entry.pending ??= listAllIosSimsAsync({ includeUnavailable: true }).then((value) => entry.value = value).catch((error) => {
|
|
454
|
+
entry.pending = void 0;
|
|
455
|
+
throw error;
|
|
456
|
+
});
|
|
457
|
+
return entry.pending;
|
|
403
458
|
},
|
|
404
459
|
invalidate() {
|
|
405
460
|
cached = null;
|
|
406
461
|
}
|
|
407
462
|
};
|
|
408
463
|
}
|
|
409
|
-
async function listAllIosSimsAsync({ timeoutMs = 3e4 } = {}) {
|
|
464
|
+
async function listAllIosSimsAsync({ timeoutMs = 3e4, includeUnavailable = false } = {}) {
|
|
410
465
|
return parseSimctlList(await getExecutor().runFileAsync("xcrun", SIMCTL_LIST_ARGS, {
|
|
411
466
|
timeoutMs,
|
|
412
467
|
killSignal: "SIGKILL"
|
|
413
|
-
}));
|
|
468
|
+
}), { includeUnavailable });
|
|
414
469
|
}
|
|
415
470
|
function parseRuntimeVersion(runtimeId) {
|
|
416
471
|
const m = runtimeId.match(/iOS-(\d+)(?:-(\d+))?$/);
|
|
@@ -479,9 +534,9 @@ async function awaitBootCommand(args, attemptMs, onLine) {
|
|
|
479
534
|
const detail = lines.length ? `: ${lines.join(" | ")}` : "";
|
|
480
535
|
throw new Error(`${command} failed with exit code ${result.code ?? "unknown"}${detail}`);
|
|
481
536
|
}
|
|
482
|
-
async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = BOOTSTATUS_ATTEMPT_MS, simulatorApp, openViewer = true, label = udid, out = () => {} } = {}) {
|
|
537
|
+
async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = BOOTSTATUS_ATTEMPT_MS, simulatorApp, env, openViewer = true, label = udid, out = () => {} } = {}) {
|
|
483
538
|
const exec = getExecutor();
|
|
484
|
-
const viewer = configuredIosSimulatorViewer(simulatorApp);
|
|
539
|
+
const viewer = configuredIosSimulatorViewer(simulatorApp, env);
|
|
485
540
|
const started = Date.now();
|
|
486
541
|
const deadline = started + timeoutMs;
|
|
487
542
|
let worst = null;
|
|
@@ -544,7 +599,7 @@ async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = B
|
|
|
544
599
|
}
|
|
545
600
|
let state;
|
|
546
601
|
try {
|
|
547
|
-
state =
|
|
602
|
+
state = (await listAllIosSimsAsync({ timeoutMs: BOOT_STATE_LIST_TIMEOUT_MS })).find((s) => s.udid === udid)?.state ?? null;
|
|
548
603
|
} catch {
|
|
549
604
|
state = void 0;
|
|
550
605
|
}
|
|
@@ -558,25 +613,29 @@ async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = B
|
|
|
558
613
|
} finally {
|
|
559
614
|
clearInterval(monitor);
|
|
560
615
|
}
|
|
561
|
-
if (openViewer) viewer.open(udid);
|
|
616
|
+
if (openViewer) await viewer.open(udid);
|
|
562
617
|
}
|
|
563
|
-
function shutdownIosSim(udid) {
|
|
564
|
-
getExecutor().
|
|
618
|
+
async function shutdownIosSim(udid) {
|
|
619
|
+
await getExecutor().runFileQuietAsync("xcrun", [
|
|
565
620
|
"simctl",
|
|
566
621
|
"shutdown",
|
|
567
622
|
udid
|
|
568
623
|
], SIMCTL_OPTIONS);
|
|
569
624
|
}
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
625
|
+
const LIST_DEVICE_TYPES_ARGS = [
|
|
626
|
+
"simctl",
|
|
627
|
+
"list",
|
|
628
|
+
"devicetypes",
|
|
629
|
+
"--json"
|
|
630
|
+
];
|
|
631
|
+
const LIST_DEVICE_TYPES_OPTIONS = {
|
|
632
|
+
timeoutMs: 3e4,
|
|
633
|
+
killSignal: "SIGKILL"
|
|
634
|
+
};
|
|
635
|
+
async function listIosDeviceTypesAsync() {
|
|
636
|
+
return parseIosDeviceTypes(await getExecutor().runFileAsync("xcrun", LIST_DEVICE_TYPES_ARGS, LIST_DEVICE_TYPES_OPTIONS));
|
|
637
|
+
}
|
|
638
|
+
function parseIosDeviceTypes(out) {
|
|
580
639
|
const data = JSON.parse(out);
|
|
581
640
|
return isJsonObject(data) ? deviceTypesOf(data.devicetypes) : [];
|
|
582
641
|
}
|
|
@@ -652,9 +711,9 @@ function ownedSimName(label, model = {
|
|
|
652
711
|
function parkedSimName(udid, model) {
|
|
653
712
|
return fitSimName(PARKED_SIM_LABEL, model, ` ${udid.replace(/-/g, "").slice(0, 4).toLowerCase()}`, true);
|
|
654
713
|
}
|
|
655
|
-
function resolveIosCreation({ deviceType, runtime } = {}) {
|
|
656
|
-
const deviceTypes =
|
|
657
|
-
const runtimes =
|
|
714
|
+
async function resolveIosCreation({ deviceType, runtime } = {}) {
|
|
715
|
+
const deviceTypes = await listIosDeviceTypesAsync();
|
|
716
|
+
const runtimes = await listIosRuntimesAsync();
|
|
658
717
|
const pick = pickDefaultIosCreation(deviceTypes, runtimes, {
|
|
659
718
|
deviceType,
|
|
660
719
|
runtime
|
|
@@ -667,15 +726,16 @@ function resolveIosCreation({ deviceType, runtime } = {}) {
|
|
|
667
726
|
runtime: runtimes.find((r) => r.identifier === pick.runtimeId)?.version ?? null
|
|
668
727
|
};
|
|
669
728
|
}
|
|
670
|
-
function createOwnedIosSim(label, { deviceType, runtime, suffix = "" } = {}, choice
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
729
|
+
async function createOwnedIosSim(label, { deviceType, runtime, suffix = "" } = {}, choice) {
|
|
730
|
+
choice ??= await resolveIosCreation({
|
|
731
|
+
deviceType,
|
|
732
|
+
runtime
|
|
733
|
+
});
|
|
674
734
|
const name = ownedSimName(label, {
|
|
675
735
|
model: choice.deviceType,
|
|
676
736
|
runtime: choice.runtime
|
|
677
737
|
}, suffix);
|
|
678
|
-
const udid = getExecutor().
|
|
738
|
+
const udid = (await getExecutor().runFileAsync("xcrun", [
|
|
679
739
|
"simctl",
|
|
680
740
|
"create",
|
|
681
741
|
name,
|
|
@@ -684,7 +744,7 @@ function createOwnedIosSim(label, { deviceType, runtime, suffix = "" } = {}, cho
|
|
|
684
744
|
], {
|
|
685
745
|
timeoutMs: SIMCTL_CREATE_TIMEOUT_MS,
|
|
686
746
|
killSignal: "SIGKILL"
|
|
687
|
-
}).trim();
|
|
747
|
+
})).trim();
|
|
688
748
|
recordCreatedDevice("ios", udid);
|
|
689
749
|
return {
|
|
690
750
|
udid,
|
|
@@ -693,23 +753,23 @@ function createOwnedIosSim(label, { deviceType, runtime, suffix = "" } = {}, cho
|
|
|
693
753
|
runtime: choice.runtime
|
|
694
754
|
};
|
|
695
755
|
}
|
|
696
|
-
function renameIosSim(udid, name) {
|
|
697
|
-
getExecutor().
|
|
756
|
+
async function renameIosSim(udid, name) {
|
|
757
|
+
await getExecutor().runFileAsync("xcrun", [
|
|
698
758
|
"simctl",
|
|
699
759
|
"rename",
|
|
700
760
|
udid,
|
|
701
761
|
name
|
|
702
762
|
], SIMCTL_OPTIONS);
|
|
703
763
|
}
|
|
704
|
-
function eraseIosSim(udid) {
|
|
705
|
-
getExecutor().
|
|
764
|
+
async function eraseIosSim(udid) {
|
|
765
|
+
await getExecutor().runFileAsync("xcrun", [
|
|
706
766
|
"simctl",
|
|
707
767
|
"erase",
|
|
708
768
|
udid
|
|
709
769
|
], SIMCTL_OPTIONS);
|
|
710
770
|
}
|
|
711
|
-
function resetIosPrivacy(udid) {
|
|
712
|
-
getExecutor().
|
|
771
|
+
async function resetIosPrivacy(udid) {
|
|
772
|
+
await getExecutor().runFileAsync("xcrun", [
|
|
713
773
|
"simctl",
|
|
714
774
|
"privacy",
|
|
715
775
|
udid,
|
|
@@ -717,8 +777,8 @@ function resetIosPrivacy(udid) {
|
|
|
717
777
|
"all"
|
|
718
778
|
], SIMCTL_OPTIONS);
|
|
719
779
|
}
|
|
720
|
-
function resetIosKeychain(udid) {
|
|
721
|
-
getExecutor().
|
|
780
|
+
async function resetIosKeychain(udid) {
|
|
781
|
+
await getExecutor().runFileAsync("xcrun", [
|
|
722
782
|
"simctl",
|
|
723
783
|
"keychain",
|
|
724
784
|
udid,
|
|
@@ -731,9 +791,9 @@ const CLEARED_CONTAINER_DIRS = [
|
|
|
731
791
|
"tmp",
|
|
732
792
|
"SystemData"
|
|
733
793
|
];
|
|
734
|
-
function clearIosAppData(udid, bundleId, { defaultsPlist = null } = {}) {
|
|
794
|
+
async function clearIosAppData(udid, bundleId, { defaultsPlist = null } = {}) {
|
|
735
795
|
const exec = getExecutor();
|
|
736
|
-
if (defaultsPlist) exec.
|
|
796
|
+
if (defaultsPlist) await exec.runFileAsync("xcrun", [
|
|
737
797
|
"simctl",
|
|
738
798
|
"spawn",
|
|
739
799
|
udid,
|
|
@@ -746,7 +806,7 @@ function clearIosAppData(udid, bundleId, { defaultsPlist = null } = {}) {
|
|
|
746
806
|
input: defaultsPlist
|
|
747
807
|
});
|
|
748
808
|
else try {
|
|
749
|
-
exec.
|
|
809
|
+
await exec.runFileAsync("xcrun", [
|
|
750
810
|
"simctl",
|
|
751
811
|
"spawn",
|
|
752
812
|
udid,
|
|
@@ -757,7 +817,7 @@ function clearIosAppData(udid, bundleId, { defaultsPlist = null } = {}) {
|
|
|
757
817
|
} catch (error) {
|
|
758
818
|
if (!/Domain .* not found/.test(String(error?.message))) throw error;
|
|
759
819
|
}
|
|
760
|
-
const output = exec.
|
|
820
|
+
const output = await exec.runFileAsync("xcrun", [
|
|
761
821
|
"simctl",
|
|
762
822
|
"get_app_container",
|
|
763
823
|
udid,
|
|
@@ -785,8 +845,8 @@ function clearIosAppData(udid, bundleId, { defaultsPlist = null } = {}) {
|
|
|
785
845
|
});
|
|
786
846
|
}
|
|
787
847
|
}
|
|
788
|
-
function uninstallIosApp(udid, bundleId) {
|
|
789
|
-
getExecutor().
|
|
848
|
+
async function uninstallIosApp(udid, bundleId) {
|
|
849
|
+
await getExecutor().runFileAsync("xcrun", [
|
|
790
850
|
"simctl",
|
|
791
851
|
"uninstall",
|
|
792
852
|
udid,
|
|
@@ -806,17 +866,17 @@ function parseUserApps(jsonOutput) {
|
|
|
806
866
|
return userApps;
|
|
807
867
|
}
|
|
808
868
|
const LISTAPPS_TIMEOUT_MS = 6e4;
|
|
809
|
-
function listUserApps(udid) {
|
|
869
|
+
async function listUserApps(udid) {
|
|
810
870
|
const exec = getExecutor();
|
|
811
871
|
const dir = mkdtempSync(join(tmpdir(), "stim-listapps-"));
|
|
812
872
|
const plist = join(dir, "apps.plist");
|
|
813
873
|
try {
|
|
814
|
-
writeFileSync(plist, exec.
|
|
874
|
+
writeFileSync(plist, await exec.runFileAsync("xcrun", [
|
|
815
875
|
"simctl",
|
|
816
876
|
"listapps",
|
|
817
877
|
udid
|
|
818
878
|
], { timeoutMs: LISTAPPS_TIMEOUT_MS }));
|
|
819
|
-
return parseUserApps(exec.
|
|
879
|
+
return parseUserApps(await exec.runFileAsync("plutil", [
|
|
820
880
|
"-convert",
|
|
821
881
|
"json",
|
|
822
882
|
"-o",
|
|
@@ -836,11 +896,11 @@ function resolveOwnedIosSim(udid, listed = listAllIosSims()) {
|
|
|
836
896
|
if (!isStimOwnedSim(sim)) return { notOwned: sim.name };
|
|
837
897
|
return { sim };
|
|
838
898
|
}
|
|
839
|
-
function deleteIosSim(udid) {
|
|
840
|
-
const result = resolveOwnedIosSim(udid);
|
|
899
|
+
async function deleteIosSim(udid) {
|
|
900
|
+
const result = resolveOwnedIosSim(udid, await listAllIosSimsAsync());
|
|
841
901
|
if (result.missing) return;
|
|
842
902
|
if (result.notOwned) throw new Error(`Refusing to delete simulator "${result.notOwned}" (${udid}): not a Stim-owned sim; Stim has no record of creating it.`);
|
|
843
|
-
getExecutor().
|
|
903
|
+
await getExecutor().runFileAsync("xcrun", [
|
|
844
904
|
"simctl",
|
|
845
905
|
"delete",
|
|
846
906
|
udid
|
|
@@ -848,14 +908,14 @@ function deleteIosSim(udid) {
|
|
|
848
908
|
forgetCreatedDevice("ios", udid);
|
|
849
909
|
}
|
|
850
910
|
const PARKED_DELETE_TIMEOUT_MS = 3e4;
|
|
851
|
-
function deleteParkedIosSim(udid) {
|
|
852
|
-
const sim =
|
|
911
|
+
async function deleteParkedIosSim(udid) {
|
|
912
|
+
const sim = (await listAllIosSimsAsync({
|
|
853
913
|
includeUnavailable: true,
|
|
854
914
|
timeoutMs: PARKED_DELETE_TIMEOUT_MS
|
|
855
|
-
}).find((entry) => entry.udid === udid);
|
|
915
|
+
})).find((entry) => entry.udid === udid);
|
|
856
916
|
if (!sim) return;
|
|
857
917
|
if (!isStimOwnedSim(sim)) throw new Error(`Simulator ${udid} is now named "${sim.name}" and is not Stim-owned; refusing to delete it.`);
|
|
858
|
-
getExecutor().
|
|
918
|
+
await getExecutor().runFileAsync("xcrun", [
|
|
859
919
|
"simctl",
|
|
860
920
|
"delete",
|
|
861
921
|
udid
|
|
@@ -889,4 +949,4 @@ function parseIosRuntimes(out) {
|
|
|
889
949
|
}] : []);
|
|
890
950
|
}
|
|
891
951
|
//#endregion
|
|
892
|
-
export { configuredIosSimulatorViewer as A, resetIosKeychain as C, sanitizeDeviceLabel as D, resolveOwnedIosSim as E,
|
|
952
|
+
export { configuredIosSimulatorViewer as A, deviceHoldsBundle as B, resetIosKeychain as C, sanitizeDeviceLabel as D, resolveOwnedIosSim as E, readHostMemoryPressureAsync as F, memoryCulpritAdvice as I, memoryCulpritFindings as L, hostMemoryPressureAdvice as M, memoryCulpritsUnder as N, shutdownIosSim as O, readHostMemoryPressure as P, readMemoryCulpritsAsync as R, renameIosSim as S, resolveIosCreation as T, ownedSimName as _, createOwnedIosSim as a, parseSimctlList as b, eraseIosSim as c, listAllIosSims as d, listAllIosSimsAsync as f, listUserApps as g, listIosRuntimesAsync as h, createIosSimSnapshot as i, parseIosSimulatorApp as j, uninstallIosApp as k, iosRuntimeMatches as l, listIosRuntimes as m, bootIosSim as n, deleteIosSim as o, listIosDeviceTypesAsync as p, clearIosAppData as r, deleteParkedIosSim as s, IOS_BOOT_TIMEOUT_MS as t, iosSimulatorFailureAdvice as u, parkedSimName as v, resetIosPrivacy as w, pickDefaultIosCreation as x, parseRuntimeVersion as y, deviceHoldsApk as z };
|