stim 1.9.0 → 1.10.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/{android-_y4Ohi5z.mjs → android-787HhP5w.mjs} +119 -29
- package/dist/{android-BPGizezh.mjs → android-DBkeHwpm.mjs} +168 -95
- package/dist/{android-DEgo4oCo.mjs → android-DPov-fv2.mjs} +2 -2
- package/dist/{android-cas-eiExNLf7.mjs → android-cas-CITmIeWY.mjs} +9 -8
- package/dist/android-cas-compiler.mjs +1 -1
- package/dist/{app-install-Uf3a83Tv.mjs → app-install-CrJ6t_bv.mjs} +2 -2
- package/dist/budget-BP4jZZL4.mjs +620 -0
- package/dist/build-progress-BXx-ZBe4.mjs +512 -0
- package/dist/{cache-manifest-Dg7OnMrp.mjs → cache-manifest-Pubfp8wV.mjs} +1 -1
- package/dist/cache-manifest.mjs +1 -1
- package/dist/cli.mjs +16 -16
- package/dist/collector-run.d.mts +5 -1
- package/dist/collector-run.mjs +7 -7
- package/dist/{command-output-gByVmIjy.mjs → command-output-D5z2_bcF.mjs} +1 -1
- package/dist/{config-Cp9lM3wX.mjs → config-BEq0Qw_a.mjs} +14 -131
- package/dist/{dependency-state-Bq5DcLGn.mjs → dependency-state-r9UesA9a.mjs} +2 -2
- package/dist/{deps-Cip5vUm1.mjs → deps-DP4eWqea.mjs} +3 -3
- package/dist/{detached-entry-KEu0_AXL.mjs → detached-entry-DJHoca49.mjs} +1 -1
- package/dist/{dev-client-HyqISM0h.mjs → dev-client-92U593KT.mjs} +137 -250
- package/dist/{device-D4U-xLty.mjs → device-DhTZe7L4.mjs} +7 -7
- package/dist/{build-lock-DPXPLgTc.mjs → device-lease-CbEaIk7b.mjs} +370 -12
- package/dist/{device-pool-CnTAz8X1.mjs → device-pool-Di8Q-9Ro.mjs} +4 -4
- package/dist/{device-remote-AQ5rQPqr.mjs → device-remote-Dy1jGj3U.mjs} +547 -468
- package/dist/{doctor-B_Ei3bZu.mjs → doctor-B-inAJmt.mjs} +58 -22
- package/dist/{error-diagnostics-Vfz83GCF.mjs → error-diagnostics-xxWKNO3-.mjs} +11 -12
- package/dist/{exec-jIAlgilk.mjs → exec-DK8KaVHK.mjs} +3 -2
- package/dist/{gc-Ckw8RQHi.mjs → gc-ChPFZMRC.mjs} +500 -1114
- package/dist/{guide-BiAbhs1J.mjs → guide-DwmaD_Wa.mjs} +882 -528
- package/dist/guide-status-CWvti2Lg.mjs +125 -0
- package/dist/idle-DpRLp5lj.mjs +157 -0
- package/dist/in-use-CjUluqIX.mjs +245 -0
- package/dist/{ios-BL2NFckr.mjs → ios-B2Fpqvlb.mjs} +25 -59
- package/dist/{ios-BzUJWk1K.mjs → ios-Dd-hYJBh.mjs} +130 -89
- package/dist/{ios-device-DPsSm0v_.mjs → ios-device-BiOsSVzd.mjs} +1 -1
- package/dist/{ios-device-D972i9wf.mjs → ios-device-CtRdEVjx.mjs} +3 -3
- package/dist/{launch-verify-Q_OtW1Rf.mjs → launch-verify-CQS_Kg-C.mjs} +5 -5
- package/dist/{logs-CI9NQSK7.mjs → logs-MARIy6m9.mjs} +9 -9
- package/dist/{metro-DrLHaMn2.mjs → metro-BWLOJ_Wr.mjs} +116 -10
- package/dist/{named-ports-CmLQSIRj.mjs → named-ports-DiTfSz6p.mjs} +4 -4
- package/dist/{ndjson-9uFNRwfe.mjs → ndjson-CDY9IkVC.mjs} +3 -56
- package/dist/{ndjson-DvHSsNU9.d.mts → ndjson-Du3j0AQ9.d.mts} +1 -0
- package/dist/{ownership-D15Op8vN.mjs → ownership-D2xbLVoz.mjs} +2 -3
- package/dist/ownership-DZjdx8Gq.mjs +1180 -0
- package/dist/{ports-BNKoWVWZ.mjs → ports-CLSSFOuz.mjs} +3 -3
- package/dist/{project-DS112DYB.mjs → project-BXZzOABt.mjs} +2 -2
- package/dist/{reload-ZNJUo1pl.mjs → reload-DoETJ3rl.mjs} +9 -10
- package/dist/{server-bare-DWkkcIxV.mjs → server-bare-DVbb7kXH.mjs} +1 -1
- package/dist/{server-expo-B_lctBR3.mjs → server-expo-BvOCeakp.mjs} +4 -4
- package/dist/server-expo-DBVTdult.mjs +2 -0
- package/dist/{settings-D030k0t4.mjs → settings-DOugPlPz.mjs} +16 -428
- package/dist/{settings-BKNh5rl4.mjs → settings-EWYNwe72.mjs} +16 -14
- package/dist/settings.schema.json +75 -0
- package/dist/{simslim-B_LsGLuJ.mjs → simslim-Ca3487H6.mjs} +182 -5
- package/dist/{slot-launch-DU9A-gYw.mjs → slot-launch-C5cg0fmk.mjs} +4 -4
- package/dist/{spawn-claims-Dn3C_N6w.mjs → spawn-claims-CUleC2cM.mjs} +1 -1
- package/dist/{start-DYkkKF0s.mjs → start-F9gv5dcC.mjs} +147 -98
- package/dist/start-VoFsPSes.mjs +2 -0
- package/dist/{state-NcJzMEBF.mjs → state-WGdIbi_d.mjs} +2 -2
- package/dist/{stats-DG9e66Rz.mjs → stats-BAgJaLA4.mjs} +1 -1
- package/dist/{stats-B63-JVAY.mjs → stats-DBYJ5bxL.mjs} +4 -4
- package/dist/{status-S6ehL4Ui.mjs → status-DLCD-o3s.mjs} +63 -231
- package/dist/status-Dr4fRkym.mjs +216 -0
- package/dist/{guide-status-BAMVU0ZA.mjs → stim-installations-CINXy_su.mjs} +3 -124
- package/dist/{stop-BO28HGqF.mjs → stop-Dj4pfmyv.mjs} +22 -18
- package/dist/{stop-T1R-cZRz.mjs → stop-ZvOeTmKb.mjs} +2 -2
- package/dist/supervisor-run.d.mts +11 -2
- package/dist/supervisor-run.mjs +185 -17
- package/dist/{workspace-process-lock-DWaiRD0e.mjs → workspace-process-lock-BXA96myD.mjs} +2 -2
- package/dist/workspaces-BTUyFfkv.mjs +1003 -0
- package/dist/{worktree-DKhSF0UX.mjs → worktree-4aZg2NnI.mjs} +1 -1
- package/dist/{worktree-LGB-UwgG.mjs → worktree-BMS7GeqB.mjs} +40 -122
- package/dist/{worktree-R_cUlE7s.mjs → worktree-BlizKDpZ.mjs} +143 -18
- package/dist/{xcode-BZqyxh3e.mjs → xcode-B2tBkf0m.mjs} +9 -158
- package/package.json +6 -5
- package/dist/build-progress-CVqkfPC6.mjs +0 -188
- package/dist/device-lease-Crs-HkJY.mjs +0 -366
- package/dist/logs-query-Cqma3WIu.mjs +0 -298
- package/dist/ownership-DCQPuWEc.mjs +0 -489
- package/dist/public-http-probe-CyMDrQ3c.mjs +0 -61
- package/dist/server-expo-CeILEu86.mjs +0 -2
- package/dist/sim-pool-KaIsp2Ft.mjs +0 -723
- package/dist/spawn-entry-nCE6m770.mjs +0 -14
- package/dist/workspace-state-DF2gCFhx.mjs +0 -169
|
@@ -548,6 +548,21 @@
|
|
|
548
548
|
}
|
|
549
549
|
},
|
|
550
550
|
"additionalProperties": false
|
|
551
|
+
},
|
|
552
|
+
"idleStopMinutes": {
|
|
553
|
+
"description": "Minutes without a bundle request, client log or Stim command before the dev server stops; 0 never",
|
|
554
|
+
"type": "integer",
|
|
555
|
+
"minimum": 0,
|
|
556
|
+
"default": 60,
|
|
557
|
+
"x-stim": {
|
|
558
|
+
"key": "metro.idleStopMinutes",
|
|
559
|
+
"kind": "number",
|
|
560
|
+
"scopes": [
|
|
561
|
+
"workspace",
|
|
562
|
+
"repo",
|
|
563
|
+
"committed"
|
|
564
|
+
]
|
|
565
|
+
}
|
|
551
566
|
}
|
|
552
567
|
},
|
|
553
568
|
"additionalProperties": false
|
|
@@ -903,6 +918,66 @@
|
|
|
903
918
|
},
|
|
904
919
|
"additionalProperties": false
|
|
905
920
|
},
|
|
921
|
+
"budget": {
|
|
922
|
+
"type": "object",
|
|
923
|
+
"properties": {
|
|
924
|
+
"minFreeDiskGb": {
|
|
925
|
+
"description": "Free disk, in GB, ios, android and start reclaim toward; 0 reclaims only below the hard floor",
|
|
926
|
+
"type": "number",
|
|
927
|
+
"minimum": 0,
|
|
928
|
+
"default": 20,
|
|
929
|
+
"x-stim": {
|
|
930
|
+
"key": "budget.minFreeDiskGb",
|
|
931
|
+
"kind": "number",
|
|
932
|
+
"scopes": [
|
|
933
|
+
"machine"
|
|
934
|
+
],
|
|
935
|
+
"env": "STIM_BUDGET_MIN_FREE_DISK_GB"
|
|
936
|
+
}
|
|
937
|
+
},
|
|
938
|
+
"hardFloorDiskGb": {
|
|
939
|
+
"description": "Free disk, in GB, below which ios, android and start refuse with STIM_LOW_DISK; 0 never refuses",
|
|
940
|
+
"type": "number",
|
|
941
|
+
"minimum": 0,
|
|
942
|
+
"default": 5,
|
|
943
|
+
"x-stim": {
|
|
944
|
+
"key": "budget.hardFloorDiskGb",
|
|
945
|
+
"kind": "number",
|
|
946
|
+
"scopes": [
|
|
947
|
+
"machine"
|
|
948
|
+
],
|
|
949
|
+
"env": "STIM_BUDGET_HARD_FLOOR_DISK_GB"
|
|
950
|
+
}
|
|
951
|
+
},
|
|
952
|
+
"maxCommittedMemoryGb": {
|
|
953
|
+
"description": "Estimated memory, in GB, of live environments before idle ones are reclaimed; unset is 60% of RAM, 0 is off",
|
|
954
|
+
"type": "number",
|
|
955
|
+
"minimum": 0,
|
|
956
|
+
"x-stim": {
|
|
957
|
+
"key": "budget.maxCommittedMemoryGb",
|
|
958
|
+
"kind": "number",
|
|
959
|
+
"scopes": [
|
|
960
|
+
"machine"
|
|
961
|
+
],
|
|
962
|
+
"env": "STIM_BUDGET_MAX_COMMITTED_MEMORY_GB"
|
|
963
|
+
}
|
|
964
|
+
},
|
|
965
|
+
"maxLiveWorkspaces": {
|
|
966
|
+
"description": "Live workspaces before idle ones are reclaimed; unset or 0 means no limit",
|
|
967
|
+
"type": "integer",
|
|
968
|
+
"minimum": 0,
|
|
969
|
+
"x-stim": {
|
|
970
|
+
"key": "budget.maxLiveWorkspaces",
|
|
971
|
+
"kind": "number",
|
|
972
|
+
"scopes": [
|
|
973
|
+
"machine"
|
|
974
|
+
],
|
|
975
|
+
"env": "STIM_BUDGET_MAX_LIVE_WORKSPACES"
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"additionalProperties": false
|
|
980
|
+
},
|
|
906
981
|
"pool": {
|
|
907
982
|
"type": "object",
|
|
908
983
|
"properties": {
|
|
@@ -1,9 +1,186 @@
|
|
|
1
|
-
import { D as process_identity_exports,
|
|
2
|
-
import { t as getExecutor } from "./exec-
|
|
1
|
+
import { D as process_identity_exports, H as projectDeviceSlots, g as loadConfig, k as ownership_claim_exports, u as getConfigDir, z as deviceSlotPlatforms } from "./config-BEq0Qw_a.mjs";
|
|
2
|
+
import { t as getExecutor } from "./exec-DK8KaVHK.mjs";
|
|
3
3
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { g as releaseBuildLock, m as acquireBuildLock } from "./device-lease-CbEaIk7b.mjs";
|
|
5
|
+
import { w as listAdbDevices } from "./android-787HhP5w.mjs";
|
|
6
|
+
import { l as listAllIosSims, s as iosRuntimeMatches } from "./ios-B2Fpqvlb.mjs";
|
|
7
|
+
import { _ as easCliSupport, s as readInstalledEasCliVersion, v as easCliUpgradeRemedy, z as resolveEasCliBin } from "./device-remote-Dy1jGj3U.mjs";
|
|
8
|
+
import { existsSync, realpathSync, statSync } from "node:fs";
|
|
6
9
|
import { join } from "node:path";
|
|
10
|
+
import { createHash } from "node:crypto";
|
|
11
|
+
//#region src/engine/eas-build.ts
|
|
12
|
+
const MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION = "18.9.0";
|
|
13
|
+
function isEasBuildFailure(result) {
|
|
14
|
+
return result?.ok === false;
|
|
15
|
+
}
|
|
16
|
+
function easOptionRefusal({ profile, isExpo, buildSelector, buildCache }) {
|
|
17
|
+
if (profile === void 0) return null;
|
|
18
|
+
if (profile.trim() && isExpo && buildSelector === void 0 && buildCache !== false) return null;
|
|
19
|
+
return {
|
|
20
|
+
code: "STIM_BAD_ARG",
|
|
21
|
+
message: "--eas-profile requires an Expo project and a non-empty development profile.",
|
|
22
|
+
remedy: "Use --eas-profile <name> without --scheme, --configuration, --variant, or --no-build-cache."
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function object(value) {
|
|
26
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
27
|
+
}
|
|
28
|
+
function shellArg(value) {
|
|
29
|
+
return /^[a-zA-Z0-9_.-]+$/.test(value) ? value : `'${value.replaceAll("'", "'\\''")}'`;
|
|
30
|
+
}
|
|
31
|
+
function easDeviceBuildRemedy(profile) {
|
|
32
|
+
return `If the device is not registered, run npx eas-cli device:create. With approval for cloud build costs and signing changes, run npx eas-cli build --platform ios --profile ${shellArg(profile)} to produce a build with a valid profile for this device, then retry the same Stim command.`;
|
|
33
|
+
}
|
|
34
|
+
var EasFailure = class extends Error {
|
|
35
|
+
code;
|
|
36
|
+
remedy;
|
|
37
|
+
constructor(code, message, remedy) {
|
|
38
|
+
super(message);
|
|
39
|
+
this.code = code;
|
|
40
|
+
this.remedy = remedy;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
function selectEasBuild(builds, { platform, profile, fingerprint, projectId, physical = false }) {
|
|
44
|
+
if (!Array.isArray(builds)) throw new Error("EAS build:list did not return an array.");
|
|
45
|
+
for (const value of builds) {
|
|
46
|
+
const build = object(value);
|
|
47
|
+
if (typeof build.id === "string" && build.id.length > 0 && build.status === "FINISHED" && build.platform === platform.toUpperCase() && build.buildProfile === profile && object(build.fingerprint).hash === fingerprint && (object(build.app).id ?? object(build.project).id) === projectId && (platform !== "ios" || build.isForIosSimulator === !physical) && build.distribution === "INTERNAL" && typeof object(build.artifacts).applicationArchiveUrl === "string") return build.id;
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
async function resolveEasDevelopmentBuild({ root, platform, profile, note, isExpo = true, physical = false, selectors = [], buildCache, readEasCliVersion = readInstalledEasCliVersion }) {
|
|
52
|
+
if (profile === void 0) return null;
|
|
53
|
+
const refusal = easOptionRefusal({
|
|
54
|
+
profile,
|
|
55
|
+
isExpo,
|
|
56
|
+
buildSelector: selectors.find((value) => value != null) ?? void 0,
|
|
57
|
+
buildCache
|
|
58
|
+
});
|
|
59
|
+
if (refusal) return {
|
|
60
|
+
ok: false,
|
|
61
|
+
...refusal
|
|
62
|
+
};
|
|
63
|
+
const retry = "the same Stim command";
|
|
64
|
+
const buildCommand = `npx eas-cli build --platform ${platform} --profile ${shellArg(profile)}`;
|
|
65
|
+
let lock = null;
|
|
66
|
+
try {
|
|
67
|
+
const cli = resolveEasCliBin(root);
|
|
68
|
+
if (!cli) throw new EasFailure("STIM_EAS_UNAVAILABLE", "EAS CLI is not installed.", "Install eas-cli, run eas login, then retry.");
|
|
69
|
+
const easCli = easCliSupport(readEasCliVersion(cli.file, root), MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION);
|
|
70
|
+
if (!easCli.supported) throw new EasFailure("STIM_EAS_UNAVAILABLE", easCli.version ? `eas-cli ${easCli.version} (${cli.file}) cannot download a build by ID; --eas-profile needs eas-cli ${MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION} or later.` : `Could not read an eas-cli version from \`${cli.file} --version\`; --eas-profile needs eas-cli ${MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION} or later.`, `${easCliUpgradeRemedy(MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION)}, then retry ${retry}.`);
|
|
71
|
+
let profileEnv = {};
|
|
72
|
+
const run = (args, timeoutMs = 12e4) => {
|
|
73
|
+
try {
|
|
74
|
+
return JSON.parse(getExecutor().runFile(cli.file, [
|
|
75
|
+
...args,
|
|
76
|
+
"--json",
|
|
77
|
+
"--non-interactive"
|
|
78
|
+
], {
|
|
79
|
+
cwd: root,
|
|
80
|
+
timeoutMs,
|
|
81
|
+
env: profileEnv
|
|
82
|
+
}));
|
|
83
|
+
} catch {
|
|
84
|
+
throw new EasFailure("STIM_EAS_UNAVAILABLE", `EAS ${args[0]} failed or returned invalid JSON.`, `Run npx eas-cli ${args.map(shellArg).join(" ")} to inspect the error, then retry ${retry}.`);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
note(`eas resolving profile ${profile}`);
|
|
88
|
+
const config = object(run([
|
|
89
|
+
"config",
|
|
90
|
+
"--platform",
|
|
91
|
+
platform,
|
|
92
|
+
"--profile",
|
|
93
|
+
profile
|
|
94
|
+
]));
|
|
95
|
+
const buildProfile = object(config.buildProfile);
|
|
96
|
+
profileEnv = object(buildProfile.env);
|
|
97
|
+
const projectId = object(object(object(config.appConfig).extra).eas).projectId;
|
|
98
|
+
if (buildProfile.developmentClient !== true || buildProfile.distribution !== "internal" || platform === "ios" && buildProfile.simulator === true !== !physical) throw new EasFailure("STIM_BAD_ARG", `EAS profile ${profile} is not an internal development build for this ${platform} target.`, `Set developmentClient: true and distribution: internal${platform === "ios" ? `, with ios.simulator: ${!physical}` : ""} in that eas.json profile.`);
|
|
99
|
+
if (typeof projectId !== "string" || !projectId) throw new EasFailure("STIM_BAD_ARG", "The Expo app is not linked to an EAS project.", "Link the intended EAS project with eas init, then retry.");
|
|
100
|
+
if (platform === "ios" ? buildProfile.buildConfiguration !== void 0 && buildProfile.buildConfiguration !== "Debug" : buildProfile.gradleCommand !== void 0 && (typeof buildProfile.gradleCommand !== "string" || !/^:app:assemble\w*Debug$/.test(buildProfile.gradleCommand))) throw new EasFailure("STIM_BAD_ARG", `EAS profile ${profile} overrides the development build configuration.`, "Use ios.buildConfiguration: Debug or an android.gradleCommand that assembles a single Debug APK, or remove the override.");
|
|
101
|
+
note(`eas fingerprinting ${platform} with profile ${profile}`);
|
|
102
|
+
const fingerprint = object(run([
|
|
103
|
+
"fingerprint:generate",
|
|
104
|
+
"--platform",
|
|
105
|
+
platform,
|
|
106
|
+
"--build-profile",
|
|
107
|
+
profile
|
|
108
|
+
])).hash;
|
|
109
|
+
if (typeof fingerprint !== "string" || !/^[a-f0-9]{40,64}$/.test(fingerprint)) throw new EasFailure("STIM_EAS_UNAVAILABLE", "EAS returned no valid native fingerprint.", `Run npx eas-cli fingerprint:generate --platform ${platform} --build-profile ${shellArg(profile)} to inspect the result.`);
|
|
110
|
+
note(`eas looking for ${fingerprint.slice(0, 8)}`);
|
|
111
|
+
const buildId = selectEasBuild(run([
|
|
112
|
+
"build:list",
|
|
113
|
+
"--platform",
|
|
114
|
+
platform,
|
|
115
|
+
"--build-profile",
|
|
116
|
+
profile,
|
|
117
|
+
"--fingerprint-hash",
|
|
118
|
+
fingerprint,
|
|
119
|
+
"--status",
|
|
120
|
+
"finished",
|
|
121
|
+
...platform === "ios" && !physical ? ["--simulator"] : ["--distribution", "internal"],
|
|
122
|
+
"--limit",
|
|
123
|
+
"1"
|
|
124
|
+
]), {
|
|
125
|
+
platform,
|
|
126
|
+
profile,
|
|
127
|
+
fingerprint,
|
|
128
|
+
projectId,
|
|
129
|
+
physical
|
|
130
|
+
});
|
|
131
|
+
if (!buildId) throw new EasFailure("STIM_EAS_BUILD_MISSING", `No compatible EAS ${platform} build exists for profile ${profile} and fingerprint ${fingerprint}.`, `A cloud build may incur charges. With approval to run it, use ${buildCommand}, then retry ${retry}.`);
|
|
132
|
+
const cacheKey = `eas-${createHash("sha256").update(JSON.stringify({
|
|
133
|
+
projectId,
|
|
134
|
+
buildId
|
|
135
|
+
})).digest("hex")}-debug-${physical && platform === "ios" ? "device" : "sim"}`;
|
|
136
|
+
lock = acquireBuildLock({
|
|
137
|
+
platform,
|
|
138
|
+
key: cacheKey,
|
|
139
|
+
root
|
|
140
|
+
});
|
|
141
|
+
if (!lock.acquired) throw new EasFailure("STIM_EAS_UNAVAILABLE", `Another run holds the EAS artifact claim at ${lock.path}.`, `Wait for that run to finish, then retry ${retry}.`);
|
|
142
|
+
note(`eas resolving artifact for build ${buildId}`);
|
|
143
|
+
const result = object(run([
|
|
144
|
+
"build:download",
|
|
145
|
+
"--build-id",
|
|
146
|
+
buildId
|
|
147
|
+
], 6e5));
|
|
148
|
+
if (typeof result.path !== "string" || !existsSync(result.path)) throw new Error("EAS returned no downloaded artifact.");
|
|
149
|
+
const path = realpathSync(result.path);
|
|
150
|
+
if (platform === "ios" ? !path.endsWith(".app") || !statSync(path).isDirectory() : !path.endsWith(".apk") || !statSync(path).isFile()) throw new Error("EAS returned an unexpected artifact path or type.");
|
|
151
|
+
note(`eas artifact ready ${fingerprint.slice(0, 8)}`);
|
|
152
|
+
return {
|
|
153
|
+
ok: true,
|
|
154
|
+
path,
|
|
155
|
+
fingerprint,
|
|
156
|
+
cacheKey,
|
|
157
|
+
cacheHit: "remote"
|
|
158
|
+
};
|
|
159
|
+
} catch (error) {
|
|
160
|
+
const claim = (0, ownership_claim_exports.claimFailure)(error, null);
|
|
161
|
+
if (claim) return {
|
|
162
|
+
ok: false,
|
|
163
|
+
code: claim.code,
|
|
164
|
+
message: claim.message,
|
|
165
|
+
remedy: claim.remedy
|
|
166
|
+
};
|
|
167
|
+
if (error instanceof EasFailure) return {
|
|
168
|
+
ok: false,
|
|
169
|
+
code: error.code,
|
|
170
|
+
message: error.message,
|
|
171
|
+
remedy: error.remedy
|
|
172
|
+
};
|
|
173
|
+
return {
|
|
174
|
+
ok: false,
|
|
175
|
+
code: "STIM_EAS_UNAVAILABLE",
|
|
176
|
+
message: `Could not resolve the EAS development build: ${error.message}`,
|
|
177
|
+
remedy: `Retry ${retry}. No cloud build was started.`
|
|
178
|
+
};
|
|
179
|
+
} finally {
|
|
180
|
+
releaseBuildLock(lock);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//#endregion
|
|
7
184
|
//#region src/engine/device-capacity.ts
|
|
8
185
|
function liveOwnedDeviceCount({ sims = [], adbEmulators = [], config = null } = {}) {
|
|
9
186
|
let count = 0;
|
|
@@ -256,4 +433,4 @@ function simslimIsOnPath() {
|
|
|
256
433
|
}
|
|
257
434
|
}
|
|
258
435
|
//#endregion
|
|
259
|
-
export { liveOwnedDeviceCount as a, unknownIosRuntimeRefusal as c, deviceTypeMismatch as i, simslimIsOnPath as n, unknownAndroidSystemImageRefusal as o, checkDeviceCapacity as r, unknownIosDeviceTypeRefusal as s, reconcileSimSlim as t };
|
|
436
|
+
export { liveOwnedDeviceCount as a, unknownIosRuntimeRefusal as c, isEasBuildFailure as d, resolveEasDevelopmentBuild as f, deviceTypeMismatch as i, MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION as l, simslimIsOnPath as n, unknownAndroidSystemImageRefusal as o, checkDeviceCapacity as r, unknownIosDeviceTypeRefusal as s, reconcileSimSlim as t, easDeviceBuildRemedy as u };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { f as getProject } from "./config-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { f as getProject } from "./config-BEq0Qw_a.mjs";
|
|
2
|
+
import { m as readWorkspaceState } from "./metro-BWLOJ_Wr.mjs";
|
|
3
|
+
import { n as fileLeaseIo } from "./device-lease-CbEaIk7b.mjs";
|
|
4
|
+
import { d as deviceShellArg } from "./app-install-CrJ6t_bv.mjs";
|
|
5
5
|
//#region src/engine/slot-launch.ts
|
|
6
6
|
function launchSlotScope(root, slot = "default") {
|
|
7
7
|
if (slot !== "default") return slot;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as process_identity_exports, k as ownership_claim_exports } from "./config-
|
|
1
|
+
import { D as process_identity_exports, k as ownership_claim_exports } from "./config-BEq0Qw_a.mjs";
|
|
2
2
|
//#region src/engine/spawn-claims.ts
|
|
3
3
|
const declaring = /* @__PURE__ */ new Set();
|
|
4
4
|
/** Record every child later started through `spawnDeclared` on `claim` until `stopDeclaringSpawnsOn(claim)`. */
|