stim 1.13.0 → 1.15.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 +2 -0
- package/dist/{activity-DfVKZTEB.mjs → activity-B2-kb7k0.mjs} +281 -41
- package/dist/{android-BHfAu2mf.mjs → android-CYmq0jNi.mjs} +2 -2
- package/dist/{android-CD8pr8Q2.mjs → android-Cu_L4RpL.mjs} +524 -412
- package/dist/{android-qx_31wJo.mjs → android-Db2eEMaf.mjs} +152 -65
- package/dist/android-cas-PnKfAdB2.mjs +167 -0
- package/dist/android-cas-compiler.mjs +2 -2
- package/dist/{app-install-CDFY2nUL.mjs → app-install-CAAplXAt.mjs} +162 -173
- package/dist/{budget-E5o91NR1.mjs → budget-CMiqghig.mjs} +1048 -77
- package/dist/{build-plan-BTa93o_r.mjs → build-plan-aeGMFX7e.mjs} +193 -650
- package/dist/build-progress-C2Jv1AtA.mjs +872 -0
- package/dist/build-slots-Df1ApSuH.mjs +127 -0
- package/dist/{cache-manifest-DWPF4RKJ.mjs → cache-manifest-DnUHBJaU.mjs} +2 -2
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{chrome-B5hWgQJS.mjs → chrome-BrcVWQyD.mjs} +4 -4
- package/dist/cli-0cX5s4NM.mjs +45 -0
- package/dist/cli.mjs +6 -42
- package/dist/client-C2IS36Qf.mjs +1333 -0
- package/dist/collector-run.mjs +8 -7
- package/dist/{command-output-BIL7rlX7.mjs → command-output-CliHHn7a.mjs} +1 -1
- package/dist/{config-0jCcMM0E.mjs → config-D0DbpZtM.mjs} +29 -29
- package/dist/{created-devices-Cd558h31.mjs → created-devices-BwVb3liH.mjs} +2 -2
- package/dist/{dependency-state-DNN0yfx6.mjs → dependency-state-BmsjKZ2H.mjs} +2 -2
- package/dist/{deps-2Wo81np9.mjs → deps-BFlKbOIp.mjs} +3 -3
- package/dist/{detached-entry-DJHoca49.mjs → detached-entry-CiTEgMR1.mjs} +1 -1
- package/dist/dev-client-CjzLoNs0.mjs +80 -0
- package/dist/{device-Cf7vl-so.mjs → device-BZ1IyS5A.mjs} +7 -7
- package/dist/device-capacity-DMuKC7nx.mjs +136 -0
- package/dist/device-host-worker.d.mts +1 -0
- package/dist/device-host-worker.mjs +769 -0
- package/dist/device-ios-DMQBUPus.mjs +381 -0
- package/dist/{device-lease-CL9dZf73.mjs → device-lease-W5Pi1q38.mjs} +43 -36
- package/dist/{device-pool-MuoiyRcu.mjs → device-pool-B2r38YjS.mjs} +4 -4
- package/dist/{device-remote-DT9ngZiD.mjs → device-remote-9ulPsdhY.mjs} +68 -162
- package/dist/{doctor-D2iysNNH.mjs → doctor-BcE5xsBn.mjs} +191 -99
- package/dist/{error-diagnostics-BoiOhck8.mjs → error-diagnostics-Cb0P1WLS.mjs} +12 -11
- package/dist/{exec-DK8KaVHK.mjs → exec-CaErVv7t.mjs} +5 -1
- package/dist/{gc-eA-PRBX8.mjs → gc-BuL1Genr.mjs} +430 -102
- package/dist/{android-cas-B9Kv9aIy.mjs → gradle-CmdOBq1d.mjs} +8 -294
- package/dist/{guide-BfZ0OmiP.mjs → guide-cCSGRFd3.mjs} +2052 -240
- package/dist/{guide-status-BaMYu55M.mjs → guide-status-CIoWK6mG.mjs} +3 -3
- package/dist/hosted-macos-DwowNU7W.mjs +447 -0
- package/dist/idle-shutdown-B5LPaNyY.mjs +122 -0
- package/dist/in-use-CndPMilN.mjs +110 -0
- package/dist/{ios-CmEzZiOj.mjs → ios-3CtCRhwr.mjs} +201 -10
- package/dist/{ios-CcfCeZ19.mjs → ios-Chob8ny7.mjs} +560 -259
- package/dist/{ios-device-BW-t_Lkv.mjs → ios-device-DERmMmk-.mjs} +12 -7
- package/dist/{ios-device-BiOsSVzd.mjs → ios-device-Ee7sDXfp.mjs} +1 -1
- package/dist/{launch-verify-CuJaBpEa.mjs → launch-verify-CLlofxRt.mjs} +42 -11
- package/dist/{logs-DcSRbC2t.mjs → logs-h9h6MUvE.mjs} +95 -13
- package/dist/machine-usage-D_YYMzfR.mjs +283 -0
- package/dist/machines-CYtOCqcj.mjs +259 -0
- package/dist/macos-BwtbUtTN.mjs +468 -0
- package/dist/macos-run.d.mts +5 -0
- package/dist/macos-run.mjs +2 -0
- package/dist/{merge-state-ytFQCeh4.mjs → merge-state-BnxLNQiM.mjs} +22 -12
- package/dist/{metro-BPeY1YMh.mjs → metro-Di8EN2Tb.mjs} +20 -120
- package/dist/{named-ports-n7tnJsI8.mjs → named-ports-Dj_XBNaL.mjs} +8 -64
- package/dist/native-run-DFDoIRbY.mjs +147 -0
- package/dist/{native-runtime-CiiFHt0e.mjs → native-runtime-i6OkVg-w.mjs} +11 -6
- package/dist/offload-worker.d.mts +121 -0
- package/dist/offload-worker.mjs +601 -0
- package/dist/{ownership-Bz2kETAS.mjs → ownership-BkYxUtuj.mjs} +3 -2
- package/dist/{page-BTu7I60K.mjs → page-QF_Ke10s.mjs} +7 -2
- package/dist/{ports-C5UutqpJ.mjs → ports-DddwttKM.mjs} +3 -3
- package/dist/prebuild-BvxDlD6C.mjs +213 -0
- package/dist/process-identity-BmRm1qV0.mjs +12 -0
- package/dist/{project-DGeclhvO.mjs → project-CV3tDFHl.mjs} +9 -18
- package/dist/pull-request-pxnDCQzn.mjs +322 -0
- package/dist/pull-requests.d.mts +120 -0
- package/dist/pull-requests.mjs +2 -0
- package/dist/recordings-GEXp4iBT.mjs +37 -0
- package/dist/{reload-C-cV5yy_.mjs → reload-ChPiwvot.mjs} +70 -22
- package/dist/{remote-cache--aehr4Pr.mjs → remote-cache-CO2elm_b.mjs} +4 -4
- package/dist/run-B-xqRrsg.mjs +119 -0
- package/dist/{server-bare-Bq8BpSIo.mjs → server-bare-X7PUgizL.mjs} +60 -13
- package/dist/{server-expo-DUCg52-K.mjs → server-expo-DhtX6bom.mjs} +6 -10
- package/dist/server-expo-KJeD109I.mjs +2 -0
- package/dist/{settings-xB0Frkg6.mjs → settings-CduVcoxj.mjs} +77 -26
- package/dist/{settings-ssVBToDR.mjs → settings-DbL6uhH8.mjs} +16 -10
- package/dist/settings.schema.json +357 -2
- package/dist/{simslim-Bbg9UWrt.mjs → simslim-Ciluxlq4.mjs} +8 -132
- package/dist/slot-launch-BY0BrOLh.mjs +65 -0
- package/dist/{spawn-claims-PT8aQpCa.mjs → spawn-claims-D0XfSe8u.mjs} +1 -1
- package/dist/spawn-entry-DncpJvWL.mjs +16 -0
- package/dist/stage-CzaiwFsI.mjs +143 -0
- package/dist/start-CPO4wRg7.mjs +2 -0
- package/dist/{start-BZhItkiL.mjs → start-CUD9nasA.mjs} +108 -61
- package/dist/state-B4PQFXMW.d.mts +12 -0
- package/dist/state-BxCgeTQu.mjs +41 -0
- package/dist/{state-DwAU2_-D.mjs → state-CaeaHbDA.mjs} +7 -4
- package/dist/{state-l1pYwOre.mjs → state-DFm77wRn.mjs} +67 -5
- package/dist/stats-DBLLFmKd.mjs +66 -0
- package/dist/{status-TJlL0HWo.mjs → status-DYXxNOT0.mjs} +425 -260
- package/dist/{status-sszP4XKU.mjs → status-l84Gbvp2.mjs} +122 -20
- package/dist/stdout-reader-C8yjre1x.mjs +23 -0
- package/dist/stim-desktop-Cnz8CPnl.mjs +63 -0
- package/dist/stim-footprint.swift +32 -0
- package/dist/{stim-installations-CINXy_su.mjs → stim-installations-QMEI32v1.mjs} +1 -1
- package/dist/{stop-BZ2qMiBP.mjs → stop-Bad61z_2.mjs} +128 -19
- package/dist/stop-Bvf1MflS.mjs +48 -0
- package/dist/{stop-DskDKNTU.mjs → stop-CceYh1yG.mjs} +2 -2
- package/dist/stop-cause-CZ_Mr-v9.mjs +665 -0
- package/dist/supervisor-run.d.mts +44 -12
- package/dist/supervisor-run.mjs +276 -33
- package/dist/support-CDQbDkL5.mjs +315 -0
- package/dist/support-WLOzVKUv.mjs +176 -0
- package/dist/teardown-BYuQafiA.mjs +718 -0
- package/dist/{xcode-LM6A8cNZ.mjs → toolchain-DmeYjXD9.mjs} +363 -13
- package/dist/warm-progress-DVHLN4uC.mjs +463 -0
- package/dist/{idle-DxLi5OkN.mjs → watchman-Bx0wceoF.mjs} +55 -8
- package/dist/{web-sWXd5iek.mjs → web-k6w8-HnE.mjs} +39 -22
- package/dist/web-run.mjs +326 -13
- package/dist/workspace-process-lock-BL7Q0HCO.mjs +57 -0
- package/dist/workspace-state-CL2V2Ons.mjs +371 -0
- package/dist/worktree-BT_uULFx.mjs +2 -0
- package/dist/{worktree-DeBQSVtR.mjs → worktree-C0c5Udwa.mjs} +55 -54
- package/dist/{worktree-D4Do_XiQ.mjs → worktree-qXKzADSC.mjs} +161 -255
- package/package.json +10 -5
- package/shim/bundle-response.cjs +55 -10
- package/shim/bundle-response.d.cts +1 -0
- package/shim/expo-metro-config.cjs +10 -2
- package/dist/build-progress-l7d-X-ZP.mjs +0 -247
- package/dist/in-use-wYEaKQM9.mjs +0 -249
- package/dist/ownership-PUP4Dwai.mjs +0 -1138
- package/dist/server-expo-BeYwP_Xy.mjs +0 -2
- package/dist/slot-launch-BIWEW-wI.mjs +0 -19
- package/dist/start-Rw2GD3nV.mjs +0 -2
- package/dist/stats-CaSwmsSZ.mjs +0 -62
- package/dist/stats-D8rUTPHd.mjs +0 -368
- package/dist/stim-desktop-CXt8-Z3J.mjs +0 -40
- package/dist/worktree-3cBa-bQt.mjs +0 -2
- package/dist/{metro-store-DzeWkfqW.mjs → metro-store-CDDZHtPl.mjs} +1 -1
|
@@ -1,13 +1,144 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { t as getExecutor } from "./exec-CaErVv7t.mjs";
|
|
2
|
+
import { _ as loadConfig$1 } from "./config-D0DbpZtM.mjs";
|
|
3
3
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
4
|
-
import { n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-
|
|
5
|
-
import {
|
|
6
|
-
import { r as recordCreatedDevice, t as forgetCreatedDevice } from "./created-devices-
|
|
7
|
-
import {
|
|
4
|
+
import { n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-Cnz8CPnl.mjs";
|
|
5
|
+
import { it as isStimOwnedSim } from "./android-Db2eEMaf.mjs";
|
|
6
|
+
import { r as recordCreatedDevice, t as forgetCreatedDevice } from "./created-devices-BwVb3liH.mjs";
|
|
7
|
+
import { createHash } from "node:crypto";
|
|
8
|
+
import { closeSync, existsSync, lstatSync, mkdtempSync, openSync, readSync, readdirSync, rmSync, writeFileSync } from "node:fs";
|
|
9
|
+
import { dirname, isAbsolute, join, resolve } from "node:path";
|
|
8
10
|
import { IOS_SIMULATOR_APPS, settingDefinition } from "@stim-cli/core/state";
|
|
9
|
-
import { dirname, join, resolve } from "node:path";
|
|
10
11
|
import { tmpdir } from "node:os";
|
|
12
|
+
//#region src/engine/installed-artifact.ts
|
|
13
|
+
const READ_CHUNK_BYTES = 1048576;
|
|
14
|
+
const DEVICE_PATH_TIMEOUT_MS = 3e4;
|
|
15
|
+
const DEVICE_HASH_TIMEOUT_MS = 12e4;
|
|
16
|
+
const SHA256_HEX = /^[0-9a-f]{64}$/;
|
|
17
|
+
function parseInstalledApkPath(text) {
|
|
18
|
+
if (typeof text !== "string") return null;
|
|
19
|
+
const paths = [];
|
|
20
|
+
for (const raw of text.split("\n")) {
|
|
21
|
+
const line = raw.trim();
|
|
22
|
+
if (!line.startsWith("package:")) continue;
|
|
23
|
+
const path = line.slice(8);
|
|
24
|
+
if (path.startsWith("/")) paths.push(path);
|
|
25
|
+
}
|
|
26
|
+
return paths.length === 1 ? paths[0] : null;
|
|
27
|
+
}
|
|
28
|
+
function parseDeviceSha256(text) {
|
|
29
|
+
if (typeof text !== "string") return null;
|
|
30
|
+
const first = text.trim().split(/\s+/)[0] ?? "";
|
|
31
|
+
return SHA256_HEX.test(first) ? first : null;
|
|
32
|
+
}
|
|
33
|
+
function parseAppContainerPath(text) {
|
|
34
|
+
if (typeof text !== "string") return null;
|
|
35
|
+
const lines = text.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
36
|
+
return lines.length === 1 && isAbsolute(lines[0]) ? lines[0] : null;
|
|
37
|
+
}
|
|
38
|
+
function artifactsMatch(local, installed) {
|
|
39
|
+
return Boolean(local) && local === installed;
|
|
40
|
+
}
|
|
41
|
+
function hashFile(file) {
|
|
42
|
+
let fd = null;
|
|
43
|
+
try {
|
|
44
|
+
fd = openSync(file, "r");
|
|
45
|
+
const digest = createHash("sha256");
|
|
46
|
+
const buffer = Buffer.allocUnsafe(READ_CHUNK_BYTES);
|
|
47
|
+
for (;;) {
|
|
48
|
+
const read = readSync(fd, buffer, 0, READ_CHUNK_BYTES, null);
|
|
49
|
+
if (read <= 0) break;
|
|
50
|
+
digest.update(buffer.subarray(0, read));
|
|
51
|
+
}
|
|
52
|
+
return digest.digest("hex");
|
|
53
|
+
} catch {
|
|
54
|
+
return null;
|
|
55
|
+
} finally {
|
|
56
|
+
if (fd !== null) try {
|
|
57
|
+
closeSync(fd);
|
|
58
|
+
} catch {}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function hashBundle(dir) {
|
|
62
|
+
const digest = createHash("sha256");
|
|
63
|
+
const walk = (abs, rel) => {
|
|
64
|
+
let names;
|
|
65
|
+
try {
|
|
66
|
+
names = readdirSync(abs);
|
|
67
|
+
} catch {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
for (const name of names.toSorted()) {
|
|
71
|
+
const child = join(abs, name);
|
|
72
|
+
const path = rel === "" ? name : `${rel}/${name}`;
|
|
73
|
+
let stat;
|
|
74
|
+
try {
|
|
75
|
+
stat = lstatSync(child);
|
|
76
|
+
} catch {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (stat.isDirectory()) {
|
|
80
|
+
if (!walk(child, path)) return false;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (!stat.isFile()) return false;
|
|
84
|
+
const file = hashFile(child);
|
|
85
|
+
if (file === null) return false;
|
|
86
|
+
digest.update(`${path}\0${file}\n`);
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
};
|
|
90
|
+
return walk(dir, "") ? digest.digest("hex") : null;
|
|
91
|
+
}
|
|
92
|
+
function deviceHoldsApk({ serial, packageName, apkPath }, { exec = null } = {}) {
|
|
93
|
+
const e = exec || getExecutor();
|
|
94
|
+
let path;
|
|
95
|
+
try {
|
|
96
|
+
path = parseInstalledApkPath(e.runFile("adb", [
|
|
97
|
+
"-s",
|
|
98
|
+
serial,
|
|
99
|
+
"shell",
|
|
100
|
+
"pm",
|
|
101
|
+
"path",
|
|
102
|
+
packageName
|
|
103
|
+
], { timeoutMs: DEVICE_PATH_TIMEOUT_MS }));
|
|
104
|
+
} catch {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
if (!path) return false;
|
|
108
|
+
let installed;
|
|
109
|
+
try {
|
|
110
|
+
installed = parseDeviceSha256(e.runFile("adb", [
|
|
111
|
+
"-s",
|
|
112
|
+
serial,
|
|
113
|
+
"shell",
|
|
114
|
+
"sha256sum",
|
|
115
|
+
path
|
|
116
|
+
], { timeoutMs: DEVICE_HASH_TIMEOUT_MS }));
|
|
117
|
+
} catch {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
if (!installed) return false;
|
|
121
|
+
return artifactsMatch(hashFile(apkPath), installed);
|
|
122
|
+
}
|
|
123
|
+
function deviceHoldsBundle({ udid, bundleId, appPath }, { exec = null } = {}) {
|
|
124
|
+
const e = exec || getExecutor();
|
|
125
|
+
let container;
|
|
126
|
+
try {
|
|
127
|
+
container = parseAppContainerPath(e.runFile("xcrun", [
|
|
128
|
+
"simctl",
|
|
129
|
+
"get_app_container",
|
|
130
|
+
udid,
|
|
131
|
+
bundleId
|
|
132
|
+
], { timeoutMs: DEVICE_PATH_TIMEOUT_MS }));
|
|
133
|
+
} catch {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
if (!container) return false;
|
|
137
|
+
const installed = hashBundle(container);
|
|
138
|
+
if (!installed) return false;
|
|
139
|
+
return artifactsMatch(hashBundle(appPath), installed);
|
|
140
|
+
}
|
|
141
|
+
//#endregion
|
|
11
142
|
//#region src/host-memory.ts
|
|
12
143
|
function readHostMemoryPressure(exec = getExecutor(), platform = process.platform) {
|
|
13
144
|
if (platform !== "darwin") return null;
|
|
@@ -201,7 +332,7 @@ async function awaitBootCommand(args, attemptMs, onLine) {
|
|
|
201
332
|
const detail = lines.length ? `: ${lines.join(" | ")}` : "";
|
|
202
333
|
throw new Error(`${command} failed with exit code ${result.code ?? "unknown"}${detail}`);
|
|
203
334
|
}
|
|
204
|
-
async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = BOOTSTATUS_ATTEMPT_MS, simulatorApp, label = udid, out = () => {} } = {}) {
|
|
335
|
+
async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = BOOTSTATUS_ATTEMPT_MS, simulatorApp, openViewer = true, label = udid, out = () => {} } = {}) {
|
|
205
336
|
const exec = getExecutor();
|
|
206
337
|
const viewer = configuredIosSimulatorViewer(simulatorApp);
|
|
207
338
|
const started = Date.now();
|
|
@@ -280,7 +411,7 @@ async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = B
|
|
|
280
411
|
} finally {
|
|
281
412
|
clearInterval(monitor);
|
|
282
413
|
}
|
|
283
|
-
viewer.open(udid);
|
|
414
|
+
if (openViewer) viewer.open(udid);
|
|
284
415
|
}
|
|
285
416
|
function shutdownIosSim(udid) {
|
|
286
417
|
getExecutor().runQuiet(`xcrun simctl shutdown ${udid}`, SIMCTL_OPTIONS);
|
|
@@ -432,6 +563,66 @@ function resetIosKeychain(udid) {
|
|
|
432
563
|
"reset"
|
|
433
564
|
], SIMCTL_OPTIONS);
|
|
434
565
|
}
|
|
566
|
+
const CLEARED_CONTAINER_DIRS = [
|
|
567
|
+
"Documents",
|
|
568
|
+
"Library",
|
|
569
|
+
"tmp",
|
|
570
|
+
"SystemData"
|
|
571
|
+
];
|
|
572
|
+
function clearIosAppData(udid, bundleId, { defaultsPlist = null } = {}) {
|
|
573
|
+
const exec = getExecutor();
|
|
574
|
+
if (defaultsPlist) exec.runFile("xcrun", [
|
|
575
|
+
"simctl",
|
|
576
|
+
"spawn",
|
|
577
|
+
udid,
|
|
578
|
+
"defaults",
|
|
579
|
+
"import",
|
|
580
|
+
bundleId,
|
|
581
|
+
"-"
|
|
582
|
+
], {
|
|
583
|
+
...SIMCTL_OPTIONS,
|
|
584
|
+
input: defaultsPlist
|
|
585
|
+
});
|
|
586
|
+
else try {
|
|
587
|
+
exec.runFile("xcrun", [
|
|
588
|
+
"simctl",
|
|
589
|
+
"spawn",
|
|
590
|
+
udid,
|
|
591
|
+
"defaults",
|
|
592
|
+
"delete",
|
|
593
|
+
bundleId
|
|
594
|
+
], SIMCTL_OPTIONS);
|
|
595
|
+
} catch (error) {
|
|
596
|
+
if (!/Domain .* not found/.test(String(error?.message))) throw error;
|
|
597
|
+
}
|
|
598
|
+
const output = exec.runFile("xcrun", [
|
|
599
|
+
"simctl",
|
|
600
|
+
"get_app_container",
|
|
601
|
+
udid,
|
|
602
|
+
bundleId,
|
|
603
|
+
"data"
|
|
604
|
+
], SIMCTL_OPTIONS);
|
|
605
|
+
const container = parseAppContainerPath(output);
|
|
606
|
+
if (!container) throw new Error(`simctl get_app_container returned no data container for ${bundleId}: ${JSON.stringify(output)}`);
|
|
607
|
+
for (const name of CLEARED_CONTAINER_DIRS) {
|
|
608
|
+
const dir = join(container, name);
|
|
609
|
+
let stat;
|
|
610
|
+
try {
|
|
611
|
+
stat = lstatSync(dir);
|
|
612
|
+
} catch (error) {
|
|
613
|
+
if (error?.code === "ENOENT") continue;
|
|
614
|
+
throw error;
|
|
615
|
+
}
|
|
616
|
+
if (!stat.isDirectory()) {
|
|
617
|
+
rmSync(dir, { force: true });
|
|
618
|
+
continue;
|
|
619
|
+
}
|
|
620
|
+
for (const child of readdirSync(dir)) rmSync(join(dir, child), {
|
|
621
|
+
recursive: true,
|
|
622
|
+
force: true
|
|
623
|
+
});
|
|
624
|
+
}
|
|
625
|
+
}
|
|
435
626
|
function uninstallIosApp(udid, bundleId) {
|
|
436
627
|
getExecutor().runFile("xcrun", [
|
|
437
628
|
"simctl",
|
|
@@ -526,4 +717,4 @@ function listIosRuntimes() {
|
|
|
526
717
|
}));
|
|
527
718
|
}
|
|
528
719
|
//#endregion
|
|
529
|
-
export {
|
|
720
|
+
export { hostMemoryPressureAdvice as A, resolveIosCreation as C, uninstallIosApp as D, shutdownIosSim as E, deviceHoldsApk as M, deviceHoldsBundle as N, configuredIosSimulatorViewer as O, resetIosPrivacy as S, sanitizeDeviceLabel as T, parseRuntimeVersion as _, deleteIosSim as a, renameIosSim as b, iosRuntimeMatches as c, listAllIosSimsAsync as d, listIosDeviceTypes as f, parkedSimName as g, ownedSimName as h, createOwnedIosSim as i, readHostMemoryPressure as j, parseIosSimulatorApp as k, iosSimulatorFailureAdvice as l, listUserApps as m, bootIosSim as n, deleteParkedIosSim as o, listIosRuntimes as p, clearIosAppData as r, eraseIosSim as s, IOS_BOOT_TIMEOUT_MS as t, listAllIosSims as u, parseSimctlList as v, resolveOwnedIosSim as w, resetIosKeychain as x, pickDefaultIosCreation as y };
|