sootsim 0.1.179 → 0.1.180
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-cli/bin.js +3 -3
- package/dist-cli/chunks/{agent-IVX2OKG5.js → agent-TWCD6VWU.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-ZNK7CWJG.js → agent-wrapper-Z47AOSU4.js} +2 -2
- package/dist-cli/chunks/{app-fonts-26YQ2LXF.js → app-fonts-NJDS2WKC.js} +2 -2
- package/dist-cli/chunks/{assert-NJFGETXK.js → assert-E4M3BGYV.js} +2 -2
- package/dist-cli/chunks/beta-6DYJAYMR.js +2 -0
- package/dist-cli/chunks/{camera-QK33IHK2.js → camera-AGZ365WS.js} +2 -2
- package/dist-cli/chunks/{chunk-ZNBHWKKF.js → chunk-3R532UY6.js} +2 -2
- package/dist-cli/chunks/{chunk-HJPQAS3T.js → chunk-5S5TI2OL.js} +3 -3
- package/dist-cli/chunks/{chunk-JAKFPOU4.js → chunk-5UNOKZOH.js} +1 -1
- package/dist-cli/chunks/{chunk-VCU44BK4.js → chunk-5Z3IK75L.js} +2 -2
- package/dist-cli/chunks/chunk-655RAZI6.js +1 -0
- package/dist-cli/chunks/{chunk-VOOUQQET.js → chunk-6FPNI2NJ.js} +2 -2
- package/dist-cli/chunks/{chunk-FVLADGKB.js → chunk-6LLHL4Z4.js} +2 -2
- package/dist-cli/chunks/{chunk-SZT3HRKL.js → chunk-6W55QHRB.js} +1 -1
- package/dist-cli/chunks/chunk-6YPP7ICO.js +5 -0
- package/dist-cli/chunks/{chunk-CZJ74QZM.js → chunk-7EYSKUGC.js} +2 -2
- package/dist-cli/chunks/{chunk-R4YLBNCO.js → chunk-7FVSMP3H.js} +1 -1
- package/dist-cli/chunks/{chunk-7PDA36Q7.js → chunk-7HOX5AAM.js} +2 -2
- package/dist-cli/chunks/{chunk-3EEQRIEH.js → chunk-A3DQXEQJ.js} +2 -2
- package/dist-cli/chunks/{chunk-WIFE3R5F.js → chunk-AKVADO4S.js} +1 -1
- package/dist-cli/chunks/chunk-BTV37XIX.js +1 -0
- package/dist-cli/chunks/{chunk-CKSZVH4M.js → chunk-C3H3HNZU.js} +1 -1
- package/dist-cli/chunks/{chunk-B4QYQJYE.js → chunk-DFOQT3FH.js} +1 -1
- package/dist-cli/chunks/{chunk-J7K5DKTW.js → chunk-DPYI7WHO.js} +1 -1
- package/dist-cli/chunks/{chunk-XL4TROEL.js → chunk-DPZ5NOVM.js} +1 -1
- package/dist-cli/chunks/{chunk-GDBCGIDS.js → chunk-EC6TIZVO.js} +3 -3
- package/dist-cli/chunks/{chunk-PGDHMJ2V.js → chunk-EJP4NI3Q.js} +1 -1
- package/dist-cli/chunks/{chunk-XMZU4AX3.js → chunk-FGRK5LV4.js} +2 -2
- package/dist-cli/chunks/{chunk-6RK5PLS5.js → chunk-FQ6FCKBQ.js} +1 -1
- package/dist-cli/chunks/{chunk-HHBOFGWG.js → chunk-GKC4WAAU.js} +1 -1
- package/dist-cli/chunks/{chunk-SRV4YD3I.js → chunk-J7ECVBNV.js} +2 -2
- package/dist-cli/chunks/chunk-KOVONBG5.js +2 -0
- package/dist-cli/chunks/{chunk-RL3JUMAC.js → chunk-LTLDMMVO.js} +1 -1
- package/dist-cli/chunks/{chunk-SOYTNR2Q.js → chunk-NNEKSG7J.js} +2 -2
- package/dist-cli/chunks/{chunk-UM5XHBTT.js → chunk-O3P4GCIC.js} +2 -2
- package/dist-cli/chunks/{chunk-HOS3HFAX.js → chunk-PJ46BMD3.js} +2 -2
- package/dist-cli/chunks/{chunk-C2LRNUYZ.js → chunk-QXRIMG3C.js} +2 -2
- package/dist-cli/chunks/{chunk-6L3RBC37.js → chunk-RVH34DLB.js} +2 -2
- package/dist-cli/chunks/{chunk-JOTROIZO.js → chunk-SC3LMYOI.js} +1 -1
- package/dist-cli/chunks/{chunk-7LNH4A5G.js → chunk-SSTY3FZ7.js} +1 -1
- package/dist-cli/chunks/{chunk-UT76PROO.js → chunk-T56KIOK2.js} +2 -2
- package/dist-cli/chunks/{chunk-QSB4XZH5.js → chunk-TPTEYOPH.js} +2 -2
- package/dist-cli/chunks/{chunk-LTM24CWP.js → chunk-W2JS7ZCS.js} +2 -2
- package/dist-cli/chunks/{chunk-6NCYDHS5.js → chunk-WJMSITGC.js} +1 -1
- package/dist-cli/chunks/{chunk-S3QWJ76W.js → chunk-WNBED3UT.js} +2 -2
- package/dist-cli/chunks/{chunk-7N73VST2.js → chunk-X2S7O732.js} +2 -2
- package/dist-cli/chunks/{chunk-SN7SSPO3.js → chunk-Y7PV4536.js} +2 -2
- package/dist-cli/chunks/{chunk-ORU4M7HC.js → chunk-YTE645KB.js} +1 -1
- package/dist-cli/chunks/{chunk-CWBQ4VR3.js → chunk-ZBS233ZK.js} +2 -2
- package/dist-cli/chunks/{chunk-IR2KKNHX.js → chunk-ZFKPEBUY.js} +1 -1
- package/dist-cli/chunks/{chunk-VLTTKNAU.js → chunk-ZU3YA54Y.js} +1 -1
- package/dist-cli/chunks/cli-version-3PTODKAG.js +2 -0
- package/dist-cli/chunks/{compat-CQA2G4YG.js → compat-I4K6EHFH.js} +3 -3
- package/dist-cli/chunks/{control-M43MOUBZ.js → control-FSW56XA7.js} +2 -2
- package/dist-cli/chunks/{cpu-profile-DSDDZ4S4.js → cpu-profile-TS44ELSM.js} +2 -2
- package/dist-cli/chunks/daemon-XD4ETUFL.js +2 -0
- package/dist-cli/chunks/{debug-N3EXWDAM.js → debug-WJBAZTDZ.js} +3 -3
- package/dist-cli/chunks/{detox-3EB23Z3A.js → detox-NTJCZT7Y.js} +2 -2
- package/dist-cli/chunks/{device-JRVGPK4Q.js → device-VZMWYTH6.js} +2 -2
- package/dist-cli/chunks/{diagnose-SVSB7IOM.js → diagnose-VJFAE25R.js} +2 -2
- package/dist-cli/chunks/drivers-AXQDZXVN.js +2 -0
- package/dist-cli/chunks/{electron-4VQZSCQN.js → electron-BUS5EZZB.js} +3 -3
- package/dist-cli/chunks/flow-O3SCW6BQ.js +2 -0
- package/dist-cli/chunks/help-X32RDYQI.js +2 -0
- package/dist-cli/chunks/{hints-6O4UX2OF.js → hints-WVYOKMAB.js} +2 -2
- package/dist-cli/chunks/{home-paths-WISVEMCR.js → home-paths-5G3GDTLX.js} +2 -2
- package/dist-cli/chunks/{inspect-R4CVXNFC.js → inspect-YZPQT6PV.js} +3 -3
- package/dist-cli/chunks/{install-desktop-KP5J5MF5.js → install-desktop-KPIFQ5BJ.js} +3 -3
- package/dist-cli/chunks/{keys-WE4GTMF3.js → keys-XMLWEKT7.js} +2 -2
- package/dist-cli/chunks/{login-TAA3T2YS.js → login-4KYXIZE3.js} +4 -4
- package/dist-cli/chunks/{logout-BV7HYRQJ.js → logout-GWXYQJKY.js} +2 -2
- package/dist-cli/chunks/{maestro-A6YFL7RW.js → maestro-73XTB4TQ.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-VJQAN5S5.js +2 -0
- package/dist-cli/chunks/{preview-KHM6EDYR.js → preview-UO77YODM.js} +2 -2
- package/dist-cli/chunks/{profile-LBXEFSPL.js → profile-ZGTZRSKI.js} +2 -2
- package/dist-cli/chunks/{react-UXZ4MTPG.js → react-77P2ZPKP.js} +2 -2
- package/dist-cli/chunks/{record-O26WY3BX.js → record-TYTQTISM.js} +2 -2
- package/dist-cli/chunks/runtime-YG4DSIZR.js +2 -0
- package/dist-cli/chunks/{screenshot-BCCNWCT2.js → screenshot-YQAQIKID.js} +2 -2
- package/dist-cli/chunks/{screenshot-mode-DJI7KC7J.js → screenshot-mode-2YK7P2A5.js} +2 -2
- package/dist-cli/chunks/{screenshots-DUZZGRH4.js → screenshots-RFAXUO6J.js} +2 -2
- package/dist-cli/chunks/{screenshots-capture-CYVKHWJJ.js → screenshots-capture-5V4VLZ46.js} +2 -2
- package/dist-cli/chunks/{serve-35BEN2TU.js → serve-YKQNVYB3.js} +2 -2
- package/dist-cli/chunks/{setup-MEBAPMJT.js → setup-4VBJPQEG.js} +2 -2
- package/dist-cli/chunks/{skills-EOMZWEIP.js → skills-35JKCOHO.js} +2 -2
- package/dist-cli/chunks/{slides-RWVSNNUD.js → slides-TE5ZRF32.js} +2 -2
- package/dist-cli/chunks/store-HKZGF2VP.js +2 -0
- package/dist-cli/chunks/telemetry-MZO7LCBJ.js +2 -0
- package/dist-cli/chunks/{test-KDYWRZJ4.js → test-ZQCKRCMQ.js} +3 -3
- package/dist-cli/chunks/{three-mode-2VUNR3QF.js → three-mode-MXI6TY4F.js} +2 -2
- package/dist-cli/chunks/{timeline-AZ7DXX6R.js → timeline-J4XMTY73.js} +2 -2
- package/dist-cli/chunks/{upgrade-F3FAGHHI.js → upgrade-4YYUPYWA.js} +2 -2
- package/dist-cli/chunks/upload-BULXFLG3.js +2 -0
- package/dist-cli/chunks/{version-74YI73TC.js → version-SNWXESVB.js} +2 -2
- package/dist-cli/chunks/{web-OOEXAXRK.js → web-V5EIIUBC.js} +2 -2
- package/dist-cli/chunks/{what-happened-X3RPYIMI.js → what-happened-DTF62KF5.js} +2 -2
- package/dist-cli/chunks/{whoami-MGM7DDPS.js → whoami-LXD6FRWT.js} +2 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +81 -25
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +1 -1
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +83 -25
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +82 -26
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/scripts/dev-server-scanner.ts +120 -24
- package/dist-cli/chunks/beta-ZWCMF2ZB.js +0 -2
- package/dist-cli/chunks/chunk-6MDXUC6O.js +0 -1
- package/dist-cli/chunks/chunk-CE2THOSL.js +0 -1
- package/dist-cli/chunks/chunk-T5CZ7MZK.js +0 -5
- package/dist-cli/chunks/chunk-TPQ4OK4D.js +0 -2
- package/dist-cli/chunks/cli-version-SRGEH7HC.js +0 -2
- package/dist-cli/chunks/daemon-H3LVJNYI.js +0 -2
- package/dist-cli/chunks/drivers-AUU7FNGZ.js +0 -2
- package/dist-cli/chunks/flow-NLZNYC5P.js +0 -2
- package/dist-cli/chunks/help-F6PU7KE4.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-I2OXGTLM.js +0 -2
- package/dist-cli/chunks/runtime-RRJHC2RA.js +0 -2
- package/dist-cli/chunks/store-FCLI4TX7.js +0 -2
- package/dist-cli/chunks/telemetry-YQWQMXZJ.js +0 -2
- package/dist-cli/chunks/upload-U5XEPNPJ.js +0 -2
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.180 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -10284,6 +10284,46 @@ function applyManifest(result, manifestRes, buildIconProxyUrl) {
|
|
|
10284
10284
|
}
|
|
10285
10285
|
return result;
|
|
10286
10286
|
}
|
|
10287
|
+
function enrichWithManifest(result, buildIconProxyUrl) {
|
|
10288
|
+
if (result.projectName) return result;
|
|
10289
|
+
const cached4 = enrichmentCache.get(result.port);
|
|
10290
|
+
if (cached4) {
|
|
10291
|
+
if (cached4.projectName) result.projectName = cached4.projectName;
|
|
10292
|
+
if (cached4.iconUrl && !result.iconUrl) {
|
|
10293
|
+
result.iconUrl = cached4.iconUrl;
|
|
10294
|
+
result.iconPath = cached4.iconPath;
|
|
10295
|
+
}
|
|
10296
|
+
if (cached4.bundleId && !result.bundleId) result.bundleId = cached4.bundleId;
|
|
10297
|
+
return result;
|
|
10298
|
+
}
|
|
10299
|
+
if (!enrichmentInFlight.has(result.port)) {
|
|
10300
|
+
enrichmentInFlight.add(result.port);
|
|
10301
|
+
const port = result.port;
|
|
10302
|
+
void fetchManifestEnrichment(port, buildIconProxyUrl).finally(
|
|
10303
|
+
() => enrichmentInFlight.delete(port)
|
|
10304
|
+
);
|
|
10305
|
+
}
|
|
10306
|
+
return result;
|
|
10307
|
+
}
|
|
10308
|
+
async function fetchManifestEnrichment(port, buildIconProxyUrl) {
|
|
10309
|
+
const manifestRes = await httpGet(port, "/", "GET", ENRICH_TIMEOUT_MS, {
|
|
10310
|
+
"expo-platform": "ios"
|
|
10311
|
+
});
|
|
10312
|
+
if (!manifestRes || manifestRes.statusCode !== 200) return;
|
|
10313
|
+
const parsed = applyManifest(
|
|
10314
|
+
{ port, framework: "one", bundleUrl: "", lastSeen: 0 },
|
|
10315
|
+
manifestRes,
|
|
10316
|
+
buildIconProxyUrl
|
|
10317
|
+
);
|
|
10318
|
+
if (!parsed.projectName && !parsed.iconUrl) return;
|
|
10319
|
+
enrichmentCache.set(port, {
|
|
10320
|
+
projectName: parsed.projectName,
|
|
10321
|
+
iconUrl: parsed.iconUrl,
|
|
10322
|
+
iconPath: parsed.iconPath,
|
|
10323
|
+
bundleId: parsed.bundleId
|
|
10324
|
+
});
|
|
10325
|
+
portCache.delete(port);
|
|
10326
|
+
}
|
|
10287
10327
|
async function probePort(port, buildIconProxyUrl) {
|
|
10288
10328
|
if (!await tcpPing(port)) return null;
|
|
10289
10329
|
const onePath = `/node_modules/one/metro-entry.bundle?platform=ios&dev=true`;
|
|
@@ -10321,24 +10361,30 @@ async function probePort(port, buildIconProxyUrl) {
|
|
|
10321
10361
|
}
|
|
10322
10362
|
if (statusRes && statusRes.body.includes("packager-status:running")) {
|
|
10323
10363
|
knownNonPatched.add(port);
|
|
10324
|
-
return
|
|
10325
|
-
|
|
10326
|
-
|
|
10364
|
+
return enrichWithManifest(
|
|
10365
|
+
applyManifest(
|
|
10366
|
+
makeResult(port, expoRes && expoRes.statusCode === 200 ? "expo" : "metro"),
|
|
10367
|
+
manifestRes,
|
|
10368
|
+
buildIconProxyUrl
|
|
10369
|
+
),
|
|
10327
10370
|
buildIconProxyUrl
|
|
10328
10371
|
);
|
|
10329
10372
|
}
|
|
10330
10373
|
if (sootsimRes && sootsimRes.statusCode === 200 && sootsimRes.body.includes("sootsim-patched")) {
|
|
10331
10374
|
knownNonPatched.delete(port);
|
|
10332
|
-
return
|
|
10333
|
-
|
|
10334
|
-
|
|
10335
|
-
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10375
|
+
return enrichWithManifest(
|
|
10376
|
+
applyManifest(
|
|
10377
|
+
{
|
|
10378
|
+
port,
|
|
10379
|
+
framework: "one",
|
|
10380
|
+
bundleUrl: withRuntimeConfig(port, `http://localhost:${port}/__soot/bundle.js`),
|
|
10381
|
+
hmrUrl: `ws://localhost:${port}/hot`,
|
|
10382
|
+
lastSeen: Date.now(),
|
|
10383
|
+
patched: true
|
|
10384
|
+
},
|
|
10385
|
+
manifestRes,
|
|
10386
|
+
buildIconProxyUrl
|
|
10387
|
+
),
|
|
10342
10388
|
buildIconProxyUrl
|
|
10343
10389
|
);
|
|
10344
10390
|
}
|
|
@@ -10350,18 +10396,21 @@ async function probePort(port, buildIconProxyUrl) {
|
|
|
10350
10396
|
if (oneRes && oneRes.statusCode > 0 && oneRes.statusCode < 400 && /application\/javascript/i.test(oneRes.contentType || "")) {
|
|
10351
10397
|
knownNonPatched.add(port);
|
|
10352
10398
|
knownOne.add(port);
|
|
10353
|
-
return
|
|
10354
|
-
|
|
10355
|
-
|
|
10356
|
-
framework: "one",
|
|
10357
|
-
bundleUrl: withRuntimeConfig(
|
|
10399
|
+
return enrichWithManifest(
|
|
10400
|
+
applyManifest(
|
|
10401
|
+
{
|
|
10358
10402
|
port,
|
|
10359
|
-
|
|
10360
|
-
|
|
10361
|
-
|
|
10362
|
-
|
|
10363
|
-
|
|
10364
|
-
|
|
10403
|
+
framework: "one",
|
|
10404
|
+
bundleUrl: withRuntimeConfig(
|
|
10405
|
+
port,
|
|
10406
|
+
`http://localhost:${port}${onePath}&minify=false`
|
|
10407
|
+
),
|
|
10408
|
+
hmrUrl: `ws://localhost:${port}/hot`,
|
|
10409
|
+
lastSeen: Date.now()
|
|
10410
|
+
},
|
|
10411
|
+
manifestRes,
|
|
10412
|
+
buildIconProxyUrl
|
|
10413
|
+
),
|
|
10365
10414
|
buildIconProxyUrl
|
|
10366
10415
|
);
|
|
10367
10416
|
}
|
|
@@ -10406,6 +10455,9 @@ async function scanDevServers(opts = {}) {
|
|
|
10406
10455
|
for (const p of [...knownOne]) {
|
|
10407
10456
|
if (!currentPorts.has(p)) knownOne.delete(p);
|
|
10408
10457
|
}
|
|
10458
|
+
for (const p of [...enrichmentCache.keys()]) {
|
|
10459
|
+
if (!currentPorts.has(p)) enrichmentCache.delete(p);
|
|
10460
|
+
}
|
|
10409
10461
|
const results = [];
|
|
10410
10462
|
const toProbe = [];
|
|
10411
10463
|
for (const { port, pid } of processes) {
|
|
@@ -10418,6 +10470,7 @@ async function scanDevServers(opts = {}) {
|
|
|
10418
10470
|
knownNonPatched.delete(port);
|
|
10419
10471
|
knownNonExpo.delete(port);
|
|
10420
10472
|
knownOne.delete(port);
|
|
10473
|
+
enrichmentCache.delete(port);
|
|
10421
10474
|
}
|
|
10422
10475
|
toProbe.push({ port, pid });
|
|
10423
10476
|
}
|
|
@@ -10450,7 +10503,7 @@ async function scanDevServers(opts = {}) {
|
|
|
10450
10503
|
}
|
|
10451
10504
|
return results.filter((r) => !isSootSelfServer(r));
|
|
10452
10505
|
}
|
|
10453
|
-
var import_child_process, import_http, import_net, import_util, execP, TIMEOUT_MS, MANIFEST_TIMEOUT_MS, TCP_GATE_MS, FALLBACK_PORTS, cwdByPid, knownNonPatched, knownNonExpo, knownOne, portCache, NEGATIVE_CACHE_TTL_MS, WEAK_RESULT_CACHE_TTL_MS;
|
|
10506
|
+
var import_child_process, import_http, import_net, import_util, execP, TIMEOUT_MS, MANIFEST_TIMEOUT_MS, TCP_GATE_MS, FALLBACK_PORTS, cwdByPid, ENRICH_TIMEOUT_MS, enrichmentCache, enrichmentInFlight, knownNonPatched, knownNonExpo, knownOne, portCache, NEGATIVE_CACHE_TTL_MS, WEAK_RESULT_CACHE_TTL_MS;
|
|
10454
10507
|
var init_dev_server_scanner = __esm({
|
|
10455
10508
|
"scripts/dev-server-scanner.ts"() {
|
|
10456
10509
|
"use strict";
|
|
@@ -10478,6 +10531,9 @@ var init_dev_server_scanner = __esm({
|
|
|
10478
10531
|
19e3
|
|
10479
10532
|
].map((port) => ({ port, pid: 0 }));
|
|
10480
10533
|
cwdByPid = /* @__PURE__ */ new Map();
|
|
10534
|
+
ENRICH_TIMEOUT_MS = 2e4;
|
|
10535
|
+
enrichmentCache = /* @__PURE__ */ new Map();
|
|
10536
|
+
enrichmentInFlight = /* @__PURE__ */ new Set();
|
|
10481
10537
|
knownNonPatched = /* @__PURE__ */ new Set();
|
|
10482
10538
|
knownNonExpo = /* @__PURE__ */ new Set();
|
|
10483
10539
|
knownOne = /* @__PURE__ */ new Set();
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.180 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/package.json
CHANGED
|
@@ -344,6 +344,86 @@ export function __applyManifestForTests(
|
|
|
344
344
|
return applyManifest(result, { statusCode: 200, body: manifestBody })
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
+
// ── name/icon enrichment ────────────────────────────────────────────────────
|
|
348
|
+
// a server's display name + icon come ONLY from its expo manifest (GET / with
|
|
349
|
+
// expo-platform), which is far slower than the cheap signature probes: One apps
|
|
350
|
+
// serialize app.config per request, and some (expo-updates / asset resolution)
|
|
351
|
+
// block several seconds. the fast probe race times the manifest out at
|
|
352
|
+
// MANIFEST_TIMEOUT_MS, so a slow-manifest server is identified via /status or
|
|
353
|
+
// the One HEAD with no projectName and shows as ":<port>" in the dock — never
|
|
354
|
+
// re-probed, because that nameless result caches as a strong (expo/one) entry.
|
|
355
|
+
// bumping the race timeout isn't an option: it would stall every probe (and a
|
|
356
|
+
// non-bundler node process) for seconds. instead capture name/icon out-of-band:
|
|
357
|
+
// when a server is identified without them, fetch the manifest ONCE with a
|
|
358
|
+
// generous timeout, cache the fields per port, and drop the strong port-cache
|
|
359
|
+
// entry so the next scan re-probes and publishes the enriched server. discovery
|
|
360
|
+
// stays fast; name/icon fill in a scan or two after the app first appears.
|
|
361
|
+
const ENRICH_TIMEOUT_MS = 20_000
|
|
362
|
+
interface ManifestEnrichment {
|
|
363
|
+
projectName?: string
|
|
364
|
+
iconUrl?: string
|
|
365
|
+
iconPath?: string
|
|
366
|
+
bundleId?: string
|
|
367
|
+
}
|
|
368
|
+
const enrichmentCache = new Map<number, ManifestEnrichment>()
|
|
369
|
+
const enrichmentInFlight = new Set<number>()
|
|
370
|
+
|
|
371
|
+
// apply already-captured name/icon, or kick off a single background manifest
|
|
372
|
+
// fetch to capture them. a no-op once the in-race manifest already named the
|
|
373
|
+
// server, so it's safe to wrap every identified return.
|
|
374
|
+
function enrichWithManifest(
|
|
375
|
+
result: DiscoveredServer,
|
|
376
|
+
buildIconProxyUrl?: (externalUrl: string) => string,
|
|
377
|
+
): DiscoveredServer {
|
|
378
|
+
if (result.projectName) return result
|
|
379
|
+
|
|
380
|
+
const cached = enrichmentCache.get(result.port)
|
|
381
|
+
if (cached) {
|
|
382
|
+
if (cached.projectName) result.projectName = cached.projectName
|
|
383
|
+
if (cached.iconUrl && !result.iconUrl) {
|
|
384
|
+
result.iconUrl = cached.iconUrl
|
|
385
|
+
result.iconPath = cached.iconPath
|
|
386
|
+
}
|
|
387
|
+
if (cached.bundleId && !result.bundleId) result.bundleId = cached.bundleId
|
|
388
|
+
return result
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
if (!enrichmentInFlight.has(result.port)) {
|
|
392
|
+
enrichmentInFlight.add(result.port)
|
|
393
|
+
const port = result.port
|
|
394
|
+
void fetchManifestEnrichment(port, buildIconProxyUrl).finally(() =>
|
|
395
|
+
enrichmentInFlight.delete(port),
|
|
396
|
+
)
|
|
397
|
+
}
|
|
398
|
+
return result
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
async function fetchManifestEnrichment(
|
|
402
|
+
port: number,
|
|
403
|
+
buildIconProxyUrl?: (externalUrl: string) => string,
|
|
404
|
+
): Promise<void> {
|
|
405
|
+
const manifestRes = await httpGet(port, '/', 'GET', ENRICH_TIMEOUT_MS, {
|
|
406
|
+
'expo-platform': 'ios',
|
|
407
|
+
})
|
|
408
|
+
if (!manifestRes || manifestRes.statusCode !== 200) return
|
|
409
|
+
// reuse applyManifest's exact field extraction against a throwaway result.
|
|
410
|
+
const parsed = applyManifest(
|
|
411
|
+
{ port, framework: 'one', bundleUrl: '', lastSeen: 0 },
|
|
412
|
+
manifestRes,
|
|
413
|
+
buildIconProxyUrl,
|
|
414
|
+
)
|
|
415
|
+
if (!parsed.projectName && !parsed.iconUrl) return
|
|
416
|
+
enrichmentCache.set(port, {
|
|
417
|
+
projectName: parsed.projectName,
|
|
418
|
+
iconUrl: parsed.iconUrl,
|
|
419
|
+
iconPath: parsed.iconPath,
|
|
420
|
+
bundleId: parsed.bundleId,
|
|
421
|
+
})
|
|
422
|
+
// the nameless result cached as a strong entry and won't re-probe on its own;
|
|
423
|
+
// drop it so the next scan re-runs probePort and publishes the enriched name.
|
|
424
|
+
portCache.delete(port)
|
|
425
|
+
}
|
|
426
|
+
|
|
347
427
|
// ports confirmed to be running a non-sootsim dev server — safe to skip the
|
|
348
428
|
// /__soot/ probe on subsequent scans. cleared when the port disappears from the
|
|
349
429
|
// listening set (process restarted, could now be a different server).
|
|
@@ -463,9 +543,12 @@ export async function probePort(
|
|
|
463
543
|
// never fire the HEAD against them.
|
|
464
544
|
if (statusRes && statusRes.body.includes('packager-status:running')) {
|
|
465
545
|
knownNonPatched.add(port)
|
|
466
|
-
return
|
|
467
|
-
|
|
468
|
-
|
|
546
|
+
return enrichWithManifest(
|
|
547
|
+
applyManifest(
|
|
548
|
+
makeResult(port, expoRes && expoRes.statusCode === 200 ? 'expo' : 'metro'),
|
|
549
|
+
manifestRes,
|
|
550
|
+
buildIconProxyUrl,
|
|
551
|
+
),
|
|
469
552
|
buildIconProxyUrl,
|
|
470
553
|
)
|
|
471
554
|
}
|
|
@@ -478,16 +561,19 @@ export async function probePort(
|
|
|
478
561
|
sootsimRes.body.includes('sootsim-patched')
|
|
479
562
|
) {
|
|
480
563
|
knownNonPatched.delete(port)
|
|
481
|
-
return
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
564
|
+
return enrichWithManifest(
|
|
565
|
+
applyManifest(
|
|
566
|
+
{
|
|
567
|
+
port,
|
|
568
|
+
framework: 'one',
|
|
569
|
+
bundleUrl: withRuntimeConfig(port, `http://localhost:${port}/__soot/bundle.js`),
|
|
570
|
+
hmrUrl: `ws://localhost:${port}/hot`,
|
|
571
|
+
lastSeen: Date.now(),
|
|
572
|
+
patched: true,
|
|
573
|
+
},
|
|
574
|
+
manifestRes,
|
|
575
|
+
buildIconProxyUrl,
|
|
576
|
+
),
|
|
491
577
|
buildIconProxyUrl,
|
|
492
578
|
)
|
|
493
579
|
}
|
|
@@ -528,18 +614,21 @@ export async function probePort(
|
|
|
528
614
|
) {
|
|
529
615
|
knownNonPatched.add(port)
|
|
530
616
|
knownOne.add(port)
|
|
531
|
-
return
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
framework: 'one',
|
|
535
|
-
bundleUrl: withRuntimeConfig(
|
|
617
|
+
return enrichWithManifest(
|
|
618
|
+
applyManifest(
|
|
619
|
+
{
|
|
536
620
|
port,
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
621
|
+
framework: 'one',
|
|
622
|
+
bundleUrl: withRuntimeConfig(
|
|
623
|
+
port,
|
|
624
|
+
`http://localhost:${port}${onePath}&minify=false`,
|
|
625
|
+
),
|
|
626
|
+
hmrUrl: `ws://localhost:${port}/hot`,
|
|
627
|
+
lastSeen: Date.now(),
|
|
628
|
+
},
|
|
629
|
+
manifestRes,
|
|
630
|
+
buildIconProxyUrl,
|
|
631
|
+
),
|
|
543
632
|
buildIconProxyUrl,
|
|
544
633
|
)
|
|
545
634
|
}
|
|
@@ -618,6 +707,8 @@ export function __resetScannerCache() {
|
|
|
618
707
|
knownNonPatched.clear()
|
|
619
708
|
knownNonExpo.clear()
|
|
620
709
|
knownOne.clear()
|
|
710
|
+
enrichmentCache.clear()
|
|
711
|
+
enrichmentInFlight.clear()
|
|
621
712
|
}
|
|
622
713
|
|
|
623
714
|
export async function scanDevServers(
|
|
@@ -641,6 +732,9 @@ export async function scanDevServers(
|
|
|
641
732
|
for (const p of [...knownOne]) {
|
|
642
733
|
if (!currentPorts.has(p)) knownOne.delete(p)
|
|
643
734
|
}
|
|
735
|
+
for (const p of [...enrichmentCache.keys()]) {
|
|
736
|
+
if (!currentPorts.has(p)) enrichmentCache.delete(p)
|
|
737
|
+
}
|
|
644
738
|
|
|
645
739
|
const results: DiscoveredServer[] = []
|
|
646
740
|
const toProbe: ListeningProcess[] = []
|
|
@@ -661,6 +755,8 @@ export async function scanDevServers(
|
|
|
661
755
|
knownNonPatched.delete(port)
|
|
662
756
|
knownNonExpo.delete(port)
|
|
663
757
|
knownOne.delete(port)
|
|
758
|
+
// a restarted process may be a different app — drop its captured name/icon.
|
|
759
|
+
enrichmentCache.delete(port)
|
|
664
760
|
}
|
|
665
761
|
toProbe.push({ port, pid })
|
|
666
762
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as C,b as x}from"./chunk-IR2KKNHX.js";var k="sootsimConfig";function m(e){return!!e&&Object.keys(e).length>0}function E(e){return e?m(e.modules)||m(e.turboModules)||m(e.nativeModules)||m(e.env)||m(e.network?.remap)||m(e.settings)||m(e.initialState):!1}function M(e,o){let t=new URL(e);return E(o)?t.searchParams.set(k,JSON.stringify(o)):t.searchParams.delete(k),t.toString()}var te="/index.bundle?platform=ios&dev=true&hot=true&minify=false";function _(e){return/^https?:\/\//i.test(e)}function D(e){return e.endsWith(".bundle")}function A(e){process.env.SOOTSIM_PREVIEW_PROD_BUNDLE&&(e.searchParams.set("dev","false"),e.searchParams.set("minify","true"),e.searchParams.has("hot")&&e.searchParams.set("hot","false"))}function U(e){try{let o=_(e),t=new URL(e,"http://soot.local");return t.pathname=t.pathname.replace(/\.\.bundle$/,".bundle"),D(t.pathname)?(t.searchParams.delete("transform.bytecode"),t.searchParams.get("lazy")==="true"&&t.searchParams.set("lazy","false"),A(t),o?t.toString():`${t.pathname}${t.search}${t.hash}`):e}catch{return e}}function re(e,o){try{let t=_(e),r=new URL(e,"http://soot.local");return D(r.pathname)?(r.searchParams.set("hot",o?"true":"false"),t?r.toString():`${r.pathname}${r.search}${r.hash}`):e}catch{return e}}import{exec as N}from"child_process";import $ from"http";import L from"net";import{promisify as O}from"util";var v=O(N);C();var I=250,B=1500,H=120;function F(e,o=H){return new Promise(t=>{let r=new L.Socket,s=!1,i=a=>{s||(s=!0,r.destroy(),t(a))};r.setTimeout(o),r.once("connect",()=>i(!0)),r.once("timeout",()=>i(!1)),r.once("error",()=>i(!1)),r.connect(e,"localhost")})}function h(e,o,t="GET",r=I,s={}){return new Promise(i=>{let a=$.request({hostname:"localhost",port:e,path:o,method:t,timeout:r,headers:s},n=>{let u="";n.on("data",l=>u+=l.toString());let c=(()=>{let l=n.headers["content-type"];if(typeof l=="string")return l;if(Array.isArray(l))return l[0]})();n.on("end",()=>i({statusCode:n.statusCode||0,body:u,contentType:c}))});a.on("error",()=>i(null)),a.setTimeout(r,()=>{a.destroy(),i(null)}),a.end()})}var W=[8081,8082,8083,8084,8085,8086,3e3,3001,19e3].map(e=>({port:e,pid:0}));function P(e,o){return!(e<=0||e>=2e4||o.has(e)||e>=5170&&e<=5200)}async function G(e=[]){let o=new Set(e);try{let{stdout:t}=await v("lsof -iTCP -sTCP:LISTEN -P -n 2>/dev/null | grep -E '^(node|bun)'",{encoding:"utf8",timeout:2e3});if(t.trim()){let r=new Map;for(let s of t.trim().split(`
|
|
3
|
-
`)){let i=s.trim().split(/\s+/);if(i.length<9)continue;let a=Number(i[1]),u=i[8].match(/:(\d+)$/);if(!u)continue;let c=Number(u[1]);P(c,o)&&(r.has(c)||r.set(c,a))}if(r.size>0)return[...r.entries()].map(([s,i])=>({port:s,pid:i}))}}catch{}try{let{stdout:t}=await v(`ss -tlnp 2>/dev/null | grep -E '"(node|bun)"'`,{encoding:"utf8",timeout:2e3});if(t.trim()){let r=new Map;for(let s of t.trim().split(`
|
|
4
|
-
`)){let i=s.match(/:(\d+)\s/),a=s.match(/pid=(\d+)/);if(!i)continue;let n=Number(i[1]),u=a?Number(a[1]):0;P(n,o)&&(r.has(n)||r.set(n,u))}if(r.size>0)return[...r.entries()].map(([s,i])=>({port:s,pid:i}))}}catch{}return W.filter(t=>P(t.port,o))}var y=new Map;async function j(e){if(e<=0)return null;let o=y.get(e);if(o)return o;try{let{stdout:t}=await v(`lsof -p ${e} -a -d cwd -Fn 2>/dev/null`,{encoding:"utf8",timeout:1500});for(let r of t.split(`
|
|
5
|
-
`))if(r.startsWith("n")&&r.length>1){let s=r.slice(1).trim();if(s)return y.set(e,s),s}}catch{}return null}function z(e,o){return{port:e,framework:o,bundleUrl:g(e,`http://localhost:${e}/index.bundle?platform=ios&dev=true&hot=true&minify=false`),hmrUrl:`ws://localhost:${e}/hot`,lastSeen:Date.now()}}function g(e,o){let t=x().find(s=>s.preferredPort===e),r=t?.runtimeConfig?M(o,t.runtimeConfig):o;return U(r)}function J(e){return e.includes("/node_modules/one/metro-entry.bundle")}function K(e){try{let o=JSON.parse(e);return o&&typeof o=="object"?o:null}catch{return null}}function w(e,o,t){if(!o)return e;try{let r=JSON.parse(o.body),s=r?.extra?.expoClient||r?.extra||{};s.name&&(e.projectName=s.name),s.ios?.bundleIdentifier&&(e.bundleId=s.ios.bundleIdentifier),e.framework==="metro"&&s.sdkVersion&&(e.framework="expo");let i=r?.launchAsset?.url;i&&!e.patched&&!J(e.bundleUrl)&&(e.bundleUrl=g(e.port,i));let a=s.iconUrl||s.ios?.iconUrl||s.icon||s.ios?.icon;if(a)if(e.iconPath=a,t)if(a.startsWith("http"))e.iconUrl=t(a);else{let n=a.replace(/^\.\//,"");e.iconUrl=t(`http://localhost:${e.port}/assets/${n}`)}else e.iconUrl=a.startsWith("http")?a:`http://localhost:${e.port}/assets/${a.replace(/^\.\//,"")}`}catch{}return e}var d=new Set,p=new Set,S=new Set;async function V(e,o){if(!await F(e))return null;let t="/node_modules/one/metro-entry.bundle?platform=ios&dev=true",[r,s,i,a]=await Promise.all([d.has(e)?Promise.resolve(null):h(e,"/__soot/"),h(e,"/status"),S.has(e)?Promise.resolve(null):h(e,"/","GET",B,{"expo-platform":"ios"}),p.has(e)?Promise.resolve(null):h(e,"/_expo/status")]);a&&a.statusCode===200?p.delete(e):p.has(e)||p.add(e);let n=i?K(i.body):null,u=typeof n?.launchAsset?.url=="string"?n.launchAsset.url:null,c=n?.extra?.expoClient||n?.extra||{};if(n&&(u||typeof c.name=="string")){d.add(e);let R=u||`http://localhost:${e}/index.bundle?platform=ios&dev=true&hot=true&minify=false`,T=R.includes("/one/metro-entry.bundle")?"one":"expo";return w({port:e,framework:T,bundleUrl:g(e,R),hmrUrl:`ws://localhost:${e}/hot`,lastSeen:Date.now()},i,o)}if(s&&s.body.includes("packager-status:running"))return d.add(e),w(z(e,a&&a.statusCode===200?"expo":"metro"),i,o);if(r&&r.statusCode===200&&r.body.includes("sootsim-patched"))return d.delete(e),w({port:e,framework:"one",bundleUrl:g(e,`http://localhost:${e}/__soot/bundle.js`),hmrUrl:`ws://localhost:${e}/hot`,lastSeen:Date.now(),patched:!0},i,o);if(s&&s.statusCode===200||a&&a.statusCode===200||i&&i.statusCode===200&&n!=null)return null;let f=await h(e,t,"HEAD");return f&&f.statusCode>0&&f.statusCode<400&&/application\/javascript/i.test(f.contentType||"")?(d.add(e),S.add(e),w({port:e,framework:"one",bundleUrl:g(e,`http://localhost:${e}${t}&minify=false`),hmrUrl:`ws://localhost:${e}/hot`,lastSeen:Date.now()},i,o)):(d.add(e),null)}function q(e){return!!e.bundleId?.trim().toLowerCase()?.startsWith("dev.sootsim.")}var b=new Map,Q=3e4,Y=1500;function X(e){return!e||e.framework==="metro"||e.framework==="unknown"}function Z(e){return e?g(e.port,e.bundleUrl)===e.bundleUrl:!0}function ee(e,o,t=Date.now()){if(o===0||e.pid!==o||!Z(e.result))return!1;let r=t-e.cachedAt;return!(e.result===null&&r>=Q||X(e.result)&&r>=Y)}async function fe(e={}){let o=await G(e.excludePorts),t=new Set(o.map(n=>n.port));for(let n of[...b.keys()])t.has(n)||b.delete(n);for(let n of[...d])t.has(n)||d.delete(n);for(let n of[...p])t.has(n)||p.delete(n);for(let n of[...S])t.has(n)||S.delete(n);let r=[],s=[];for(let{port:n,pid:u}of o){let c=b.get(n);if(c&&ee(c,u)){c.result&&r.push(c.result);continue}c&&c.pid!==u&&(d.delete(n),p.delete(n),S.delete(n)),s.push({port:n,pid:u})}s.length>0&&(await Promise.all(s.map(u=>V(u.port,e.buildIconProxyUrl)))).forEach((u,c)=>{let{port:l,pid:f}=s[c];f!==0&&b.set(l,{pid:f,result:u,cachedAt:Date.now()}),u&&r.push(u)});let i=new Map;for(let{port:n,pid:u}of o)u>0&&i.set(n,u);await Promise.all(r.map(async n=>{let u=i.get(n.port);if(!u)return;n.pid=u;let c=await j(u);c&&(n.cwd=c)}));let a=new Set(i.values());for(let n of[...y.keys()])a.has(n)||y.delete(n);return r.filter(n=>!q(n))}export{M as a,te as b,U as c,re as d,V as e,fe as f};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c,d,e}from"./chunk-UT76PROO.js";import"./chunk-CWBQ4VR3.js";import"./chunk-SOYTNR2Q.js";import"./chunk-C2LRNUYZ.js";import"./chunk-VCU44BK4.js";import"./chunk-ORU4M7HC.js";import"./chunk-XMZU4AX3.js";import"./chunk-SN7SSPO3.js";import"./chunk-TPQ4OK4D.js";import"./chunk-7LNH4A5G.js";import"./chunk-JAKFPOU4.js";import"./chunk-6RK5PLS5.js";import"./chunk-J7K5DKTW.js";import"./chunk-XL4TROEL.js";import"./chunk-RL3JUMAC.js";import"./chunk-JOTROIZO.js";export{c as daemonInstall,b as getDaemonServiceStatus,a as runDaemon,d as teardownDaemonService,e as teardownSootsimHome};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import"./chunk-6MDXUC6O.js";import{a,b,c,d,e,f,g,h,i}from"./chunk-VOOUQQET.js";import"./chunk-PGDHMJ2V.js";import"./chunk-FVLADGKB.js";import"./chunk-WIFE3R5F.js";import"./chunk-JAKFPOU4.js";import"./chunk-6RK5PLS5.js";import"./chunk-JOTROIZO.js";export{e as ALL_DRIVERS,i as buildDriverListRows,a as chromiumDriver,b as electronDriver,f as getAllDrivers,g as getDriver,c as playwrightDriver,h as resolveDriver,d as systemDriver};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as c,b as d,c as e,d as f}from"./chunk-HJPQAS3T.js";import"./chunk-7PDA36Q7.js";import"./chunk-CE2THOSL.js";import"./chunk-7N73VST2.js";import{c as a,d as b}from"./chunk-SRV4YD3I.js";import"./chunk-3EEQRIEH.js";import"./chunk-T5CZ7MZK.js";import"./chunk-QSB4XZH5.js";import"./chunk-HHBOFGWG.js";import"./chunk-IR2KKNHX.js";import"./chunk-VOOUQQET.js";import"./chunk-PGDHMJ2V.js";import"./chunk-FVLADGKB.js";import"./chunk-UM5XHBTT.js";import"./chunk-HOS3HFAX.js";import"./chunk-6NCYDHS5.js";import"./chunk-R4YLBNCO.js";import"./chunk-S3QWJ76W.js";import"./chunk-WIFE3R5F.js";import"./chunk-CWBQ4VR3.js";import"./chunk-SOYTNR2Q.js";import"./chunk-SN7SSPO3.js";import"./chunk-TPQ4OK4D.js";import"./chunk-7LNH4A5G.js";import"./chunk-JAKFPOU4.js";import"./chunk-6RK5PLS5.js";import"./chunk-ZNBHWKKF.js";import"./chunk-RL3JUMAC.js";import"./chunk-JOTROIZO.js";export{c as discoverSootsimUrl,e as hoistLeadingSimFlag,a as parseFlowFile,f as runFlow,d as runFlowPlayback,b as validateFlowFile};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c}from"./chunk-C2LRNUYZ.js";import"./chunk-VCU44BK4.js";import"./chunk-ORU4M7HC.js";import"./chunk-XMZU4AX3.js";import"./chunk-SN7SSPO3.js";import"./chunk-TPQ4OK4D.js";import"./chunk-7LNH4A5G.js";import"./chunk-JAKFPOU4.js";import"./chunk-6RK5PLS5.js";import"./chunk-J7K5DKTW.js";import"./chunk-XL4TROEL.js";import"./chunk-RL3JUMAC.js";import"./chunk-JOTROIZO.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a}from"./chunk-GDBCGIDS.js";import"./chunk-CZJ74QZM.js";import"./chunk-S3QWJ76W.js";import"./chunk-7LNH4A5G.js";import"./chunk-JAKFPOU4.js";import"./chunk-6RK5PLS5.js";import"./chunk-JOTROIZO.js";export{a as runRuntime};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.179 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c}from"./chunk-UM5XHBTT.js";import"./chunk-HOS3HFAX.js";import"./chunk-6NCYDHS5.js";import"./chunk-R4YLBNCO.js";import"./chunk-S3QWJ76W.js";import"./chunk-WIFE3R5F.js";import"./chunk-CWBQ4VR3.js";import"./chunk-SOYTNR2Q.js";import"./chunk-7LNH4A5G.js";import"./chunk-JAKFPOU4.js";import"./chunk-6RK5PLS5.js";import"./chunk-JOTROIZO.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};
|