sootsim 0.1.227 → 0.1.229
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 +14 -14
- package/detox/element-types.ts +3 -3
- package/detox/expectations.ts +29 -24
- package/detox/gestures.ts +16 -16
- package/detox/index.ts +34 -32
- package/dist-cli/bin.js +4 -4
- package/dist-cli/chunks/{agent-HBVXCRJT.js → agent-O26YYN6Z.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-X376DPV2.js → agent-wrapper-GSMHXP6S.js} +2 -2
- package/dist-cli/chunks/{app-fonts-LIQTD5RP.js → app-fonts-TVTDVD7S.js} +2 -2
- package/dist-cli/chunks/{assert-X6PPLN72.js → assert-KEWRJSST.js} +2 -2
- package/dist-cli/chunks/{auth-INRWIM2C.js → auth-KQXLD6AC.js} +2 -2
- package/dist-cli/chunks/beta-BXBII74U.js +2 -0
- package/dist-cli/chunks/{camera-LGFHYCJ5.js → camera-RTNVNBMT.js} +2 -2
- package/dist-cli/chunks/{chunk-YB2LM6VB.js → chunk-32O3YKA2.js} +6 -6
- package/dist-cli/chunks/{chunk-SBIAPF6E.js → chunk-3FGXJMSF.js} +1 -1
- package/dist-cli/chunks/{chunk-QWRYD2QV.js → chunk-3FYUTNM4.js} +18 -18
- package/dist-cli/chunks/{chunk-A4BOYB55.js → chunk-3UE5OA64.js} +2 -2
- package/dist-cli/chunks/{chunk-LCJSTEIR.js → chunk-456MZ4LU.js} +2 -2
- package/dist-cli/chunks/{chunk-E75EBS77.js → chunk-4O73AHYA.js} +2 -2
- package/dist-cli/chunks/chunk-4WAZOAAS.js +2 -0
- package/dist-cli/chunks/{chunk-RNWJQ4UR.js → chunk-62GPXYH7.js} +1 -1
- package/dist-cli/chunks/chunk-6Q3M6FMW.js +24 -0
- package/dist-cli/chunks/chunk-6VQIZJLG.js +1 -0
- package/dist-cli/chunks/chunk-7FSM4I7A.js +1 -0
- package/dist-cli/chunks/{chunk-J2JAOIMN.js → chunk-7IBNJPSB.js} +2 -2
- package/dist-cli/chunks/{chunk-GUCFICA4.js → chunk-7LSM7YNF.js} +1 -1
- package/dist-cli/chunks/{chunk-J7IFVTWX.js → chunk-AB7XCG3A.js} +1 -1
- package/dist-cli/chunks/{chunk-MG6JE3AM.js → chunk-AZWH6YSL.js} +2 -2
- package/dist-cli/chunks/{chunk-ESK7B2BQ.js → chunk-BZOTL2IQ.js} +6 -6
- package/dist-cli/chunks/{chunk-2XXPF6LP.js → chunk-CE3XI55C.js} +2 -2
- package/dist-cli/chunks/{chunk-HRYKZ5YY.js → chunk-DXF6DHIR.js} +5 -5
- package/dist-cli/chunks/{chunk-DB3GMVOH.js → chunk-FF7GZMWQ.js} +2 -2
- package/dist-cli/chunks/chunk-GVOFX6LJ.js +118 -0
- package/dist-cli/chunks/{chunk-HXHB5A6R.js → chunk-HKBDDBKZ.js} +2 -2
- package/dist-cli/chunks/{chunk-UGWURWHN.js → chunk-HKZICBKI.js} +2 -2
- package/dist-cli/chunks/{chunk-E3DLUOFK.js → chunk-JK4AGL2U.js} +7 -7
- package/dist-cli/chunks/{chunk-NIN75M5H.js → chunk-OUJVQUX4.js} +2 -2
- package/dist-cli/chunks/chunk-OWSZCLYZ.js +2 -0
- package/dist-cli/chunks/{chunk-XESYTWFM.js → chunk-P3ORPGKZ.js} +29 -29
- package/dist-cli/chunks/{chunk-Q4FB222M.js → chunk-PNLTVAPK.js} +3 -3
- package/dist-cli/chunks/{chunk-4J7BIXEB.js → chunk-PY65YXHI.js} +2 -2
- package/dist-cli/chunks/{chunk-7LDHOQ7B.js → chunk-S4CJUMUZ.js} +34 -34
- package/dist-cli/chunks/{chunk-T6MEERRI.js → chunk-SCGYOJJP.js} +2 -2
- package/dist-cli/chunks/{chunk-HXSV263V.js → chunk-SHBXXKJW.js} +1 -1
- package/dist-cli/chunks/chunk-SPBHQVJ4.js +2 -0
- package/dist-cli/chunks/{chunk-F53C5HAB.js → chunk-SYZKYAPC.js} +1 -1
- package/dist-cli/chunks/{chunk-3L5EXWCP.js → chunk-THDVL3ST.js} +1 -1
- package/dist-cli/chunks/{chunk-HTVB3FW2.js → chunk-TJXRSDEU.js} +2 -2
- package/dist-cli/chunks/{chunk-NU755HCE.js → chunk-TWUPMUWQ.js} +1 -1
- package/dist-cli/chunks/{chunk-F5HOYUD2.js → chunk-U4OPCVAL.js} +1 -1
- package/dist-cli/chunks/chunk-UCVK6JDW.js +3 -0
- package/dist-cli/chunks/chunk-UGFZIHBA.js +2 -0
- package/dist-cli/chunks/{chunk-LM544J6V.js → chunk-V2TABN7W.js} +1 -1
- package/dist-cli/chunks/{chunk-D42IRY2Y.js → chunk-VKVRAWJR.js} +2 -2
- package/dist-cli/chunks/{chunk-7L5IKIHC.js → chunk-VUJ5FLL7.js} +1 -1
- package/dist-cli/chunks/{chunk-2BQOZATN.js → chunk-WRPO6J3Z.js} +3 -3
- package/dist-cli/chunks/chunk-XQHCHVHE.js +4 -0
- package/dist-cli/chunks/{chunk-NHE3YHDU.js → chunk-ZORXBO54.js} +2 -2
- package/dist-cli/chunks/cli-version-W42GGXV7.js +2 -0
- package/dist-cli/chunks/{compat-MH673TEJ.js → compat-HPS6RGWD.js} +3 -3
- package/dist-cli/chunks/{config-SSCDV5ZJ.js → config-EKIT7WKS.js} +2 -2
- package/dist-cli/chunks/{control-54R2XDLV.js → control-QFNWOCLW.js} +2 -2
- package/dist-cli/chunks/daemon-B6RUIEYN.js +2 -0
- package/dist-cli/chunks/{debug-PFP646II.js → debug-EU5JDWZR.js} +3 -3
- package/dist-cli/chunks/{desktop-BPYYJ3EM.js → desktop-OOCDJB3I.js} +3 -3
- package/dist-cli/chunks/{detox-BIUVHXYH.js → detox-BXXEPJ3F.js} +2 -2
- package/dist-cli/chunks/{device-BNSPNIP6.js → device-6B6NKGAW.js} +2 -2
- package/dist-cli/chunks/{diagnose-BPTDSGOB.js → diagnose-FOWBMKO6.js} +2 -2
- package/dist-cli/chunks/drivers-DC6SRA2P.js +2 -0
- package/dist-cli/chunks/{film-ILA6VSOG.js → film-MVJCHWBU.js} +3 -3
- package/dist-cli/chunks/flow-XO4D3LRA.js +2 -0
- package/dist-cli/chunks/help-WNPSM6ZU.js +2 -0
- package/dist-cli/chunks/{hidden-runtime-alias-TD7IVAPF.js → hidden-runtime-alias-OVGHDXOR.js} +2 -2
- package/dist-cli/chunks/{home-paths-H36JDTNO.js → home-paths-3W46OKY6.js} +2 -2
- package/dist-cli/chunks/inspect-4J5NJCXS.js +2 -0
- package/dist-cli/chunks/install-desktop-GAEFTQ2K.js +2 -0
- package/dist-cli/chunks/{login-5WGZX2ZD.js → login-CU72MJHE.js} +4 -4
- package/dist-cli/chunks/{logout-V53WTVIZ.js → logout-SF5EPW7M.js} +2 -2
- package/dist-cli/chunks/{maestro-HGKYRD54.js → maestro-NYFSOD2H.js} +3 -3
- package/dist-cli/chunks/{maestro-generate-6DNZSKDP.js → maestro-generate-VDAXEVCE.js} +3 -3
- package/dist-cli/chunks/{mode-YFMKORE5.js → mode-VSABDCU5.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-YQZA2MRD.js +2 -0
- package/dist-cli/chunks/{perf-EOIGFDWM.js → perf-5XMCN7A2.js} +2 -2
- package/dist-cli/chunks/{record-2F54QS6Y.js → record-NAYAEQPD.js} +10 -10
- package/dist-cli/chunks/runtime-LR63M7XX.js +2 -0
- package/dist-cli/chunks/screenshot-command-HFNYL2CY.js +151 -0
- package/dist-cli/chunks/{screenshots-capture-DIICN24R.js → screenshots-capture-JCBFMJFS.js} +3 -3
- package/dist-cli/chunks/{serve-66NC6PPZ.js → serve-Z5HVGJ3C.js} +5 -5
- package/dist-cli/chunks/{setup-ZYN4BTBR.js → setup-YKDBK3RX.js} +3 -3
- package/dist-cli/chunks/{skills-MDBIER7U.js → skills-DQOWHZBC.js} +2 -2
- package/dist-cli/chunks/{storage-AQ3SEO4Y.js → storage-TKTKWTWE.js} +2 -2
- package/dist-cli/chunks/store-FPAX23SK.js +2 -0
- package/dist-cli/chunks/telemetry-CWRFOESH.js +2 -0
- package/dist-cli/chunks/{timeline-VEGHQZ36.js → timeline-QJPIAP7L.js} +2 -2
- package/dist-cli/chunks/{upgrade-RNDCRPLJ.js → upgrade-4ZEV4BY2.js} +3 -3
- package/dist-cli/chunks/upload-OF4CO6WM.js +2 -0
- package/dist-cli/chunks/{version-XUMPKQUM.js → version-OVU37MXP.js} +2 -2
- package/dist-cli/chunks/{web-ESQGHVPD.js → web-JUDK5W4T.js} +2 -2
- package/dist-cli/chunks/{what-happened-6NJENKUF.js → what-happened-TKCIGNLL.js} +2 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.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 +2 -2
- package/dist-lib/backend-origin.cjs +18 -18
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +4 -4
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +321 -79
- package/dist-lib/dev-bundle-resolution.cjs +2 -2
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +18 -13
- 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 +7 -7
- package/dist-lib/sdk.cjs +12 -4
- package/dist-lib/sdk.mjs +12 -4
- package/dist-lib/skills.cjs +456 -170
- package/dist-lib/vite.cjs +1 -1
- package/package.json +4 -4
- package/scripts/dev-server-scanner.ts +5 -5
- package/scripts/postinstall.cjs +1 -1
- package/scripts/preuninstall.cjs +1 -1
- package/skills/{soot → contrast}/SKILL.md +4 -4
- package/skills/sootsim-perf/SKILL.md +3 -1
- package/src/auth/shared-session.ts +1 -1
- package/src/backend-origin.ts +11 -11
- package/src/bridge-constants.ts +3 -3
- package/src/home-paths.ts +1 -1
- package/src/host/agent-host.ts +2 -2
- package/src/host/bridge-host.ts +21 -21
- package/src/native-dev-bundle-url.ts +3 -3
- package/src/runtime-assets.ts +3 -3
- package/src/runtime-delivery.ts +10 -4
- package/src/screenshots/compose.ts +4 -1
- package/src/screenshots/frame-compose.ts +4 -1
- package/src/screenshots/orchestrate.ts +7 -2
- package/src/vite-plugin-one.ts +3 -3
- package/src/vite-plugin.ts +3 -3
- package/dist-cli/chunks/beta-WLLSIVLW.js +0 -2
- package/dist-cli/chunks/chunk-35EAEAN4.js +0 -24
- package/dist-cli/chunks/chunk-44Z2X5R4.js +0 -2
- package/dist-cli/chunks/chunk-4BLOZ3AF.js +0 -2
- package/dist-cli/chunks/chunk-7K5K5NKB.js +0 -2
- package/dist-cli/chunks/chunk-7RWDQCIT.js +0 -1
- package/dist-cli/chunks/chunk-BVD2JFOX.js +0 -1
- package/dist-cli/chunks/chunk-HBEEYWK5.js +0 -2
- package/dist-cli/chunks/chunk-JNUGPBWC.js +0 -118
- package/dist-cli/chunks/chunk-KBSJA7HK.js +0 -3
- package/dist-cli/chunks/chunk-Z2E2DDIQ.js +0 -4
- package/dist-cli/chunks/cli-version-NNBCIQKL.js +0 -2
- package/dist-cli/chunks/daemon-GL5GQTWB.js +0 -2
- package/dist-cli/chunks/drivers-KBKJVF2Y.js +0 -2
- package/dist-cli/chunks/flow-L247VVBM.js +0 -2
- package/dist-cli/chunks/help-QIZEANNK.js +0 -2
- package/dist-cli/chunks/inspect-6OAVS27G.js +0 -2
- package/dist-cli/chunks/install-desktop-LKYAUUQY.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-YGNESGBH.js +0 -2
- package/dist-cli/chunks/runtime-FYVV4DCQ.js +0 -2
- package/dist-cli/chunks/screenshot-command-R535TYXY.js +0 -151
- package/dist-cli/chunks/store-6ZGLOTZI.js +0 -2
- package/dist-cli/chunks/telemetry-V76UPVDV.js +0 -2
- package/dist-cli/chunks/upload-KRBS3Y7Q.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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;
|
|
@@ -117,7 +117,7 @@ function applyPreviewProdBundle(parsed) {
|
|
|
117
117
|
function normalizeNativeDevBundleUrl(bundleUrl) {
|
|
118
118
|
try {
|
|
119
119
|
const isAbsolute = isAbsoluteHttpUrl(bundleUrl);
|
|
120
|
-
const parsed = new URL(bundleUrl, "http://
|
|
120
|
+
const parsed = new URL(bundleUrl, "http://sootsim.local");
|
|
121
121
|
parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
|
|
122
122
|
if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
|
|
123
123
|
parsed.searchParams.delete("transform.bytecode");
|
|
@@ -472,7 +472,7 @@ async function probePort(port, buildIconProxyUrl) {
|
|
|
472
472
|
knownNonPatched.add(port);
|
|
473
473
|
return null;
|
|
474
474
|
}
|
|
475
|
-
function
|
|
475
|
+
function isSootSimSelfServer(server) {
|
|
476
476
|
const bundleId = server.bundleId?.trim().toLowerCase();
|
|
477
477
|
if (bundleId?.startsWith("dev.sootsim.")) return true;
|
|
478
478
|
return false;
|
|
@@ -559,7 +559,7 @@ async function scanDevServers(opts = {}) {
|
|
|
559
559
|
for (const pid of [...cwdByPid.keys()]) {
|
|
560
560
|
if (!livePids.has(pid)) cwdByPid.delete(pid);
|
|
561
561
|
}
|
|
562
|
-
return results.filter((r) => !
|
|
562
|
+
return results.filter((r) => !isSootSimSelfServer(r));
|
|
563
563
|
}
|
|
564
564
|
|
|
565
565
|
// src/bridge-constants.ts
|
|
@@ -832,7 +832,7 @@ var import_fs2 = __toESM(require("fs"), 1);
|
|
|
832
832
|
var import_path2 = __toESM(require("path"), 1);
|
|
833
833
|
var import_stream = require("stream");
|
|
834
834
|
var import_promises = require("stream/promises");
|
|
835
|
-
var DEFAULT_RUNTIME_CDN_ORIGIN = "https://
|
|
835
|
+
var DEFAULT_RUNTIME_CDN_ORIGIN = "https://contrast.dev";
|
|
836
836
|
var RUNTIME_CDN_ORIGIN_ENV = "SOOTSIM_CDN_ORIGIN";
|
|
837
837
|
var RUNTIME_CHANNEL_ENV = "SOOTSIM_RUNTIME_CHANNEL";
|
|
838
838
|
var RUNTIME_PIN_ENV = "SOOTSIM_RUNTIME_VERSION";
|
|
@@ -966,7 +966,12 @@ async function updateRuntimeToLatest(opts = {}) {
|
|
|
966
966
|
latestVersion: pin
|
|
967
967
|
};
|
|
968
968
|
}
|
|
969
|
-
const install2 = await installRuntime({
|
|
969
|
+
const install2 = await installRuntime({
|
|
970
|
+
version: pin,
|
|
971
|
+
channel,
|
|
972
|
+
cdnOrigin,
|
|
973
|
+
setActive: false
|
|
974
|
+
});
|
|
970
975
|
return {
|
|
971
976
|
checked: true,
|
|
972
977
|
updated: true,
|
|
@@ -2971,7 +2976,7 @@ var HTTP_MIME_TYPES = {
|
|
|
2971
2976
|
".map": "application/json",
|
|
2972
2977
|
".txt": "text/plain; charset=utf-8"
|
|
2973
2978
|
};
|
|
2974
|
-
function injectSharedConfigIntoHtml(data, bridgePort,
|
|
2979
|
+
function injectSharedConfigIntoHtml(data, bridgePort, contrastOrigin) {
|
|
2975
2980
|
let payload;
|
|
2976
2981
|
try {
|
|
2977
2982
|
const cfg = readSharedConfig();
|
|
@@ -2980,8 +2985,8 @@ function injectSharedConfigIntoHtml(data, bridgePort, sootbeanOrigin) {
|
|
|
2980
2985
|
payload = "{}";
|
|
2981
2986
|
}
|
|
2982
2987
|
const bridgePortTag = bridgePort > 0 ? `window.__sootsimBridgePort=${bridgePort};` : "";
|
|
2983
|
-
const
|
|
2984
|
-
const tag = `<script>window.__sootsimSharedConfig=${payload};` + bridgePortTag +
|
|
2988
|
+
const contrastOriginTag = contrastOrigin ? `window.__sootsimContrastOrigin=${JSON.stringify(contrastOrigin)};` : "";
|
|
2989
|
+
const tag = `<script>window.__sootsimSharedConfig=${payload};` + bridgePortTag + contrastOriginTag + `window.__sootsimCliVersion=${JSON.stringify(getCliVersion())};</script>`;
|
|
2985
2990
|
const html = data.toString("utf8");
|
|
2986
2991
|
if (html.includes("<head>")) return html.replace("<head>", `<head>${tag}`);
|
|
2987
2992
|
if (html.includes("</head>")) return html.replace("</head>", tag + "</head>");
|
|
@@ -3052,7 +3057,7 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
|
|
|
3052
3057
|
shouldWriteLockfile;
|
|
3053
3058
|
shouldWriteDevLockfile;
|
|
3054
3059
|
getShellPort;
|
|
3055
|
-
|
|
3060
|
+
contrastOrigin = null;
|
|
3056
3061
|
effectivePort = 0;
|
|
3057
3062
|
startedAt = 0;
|
|
3058
3063
|
heartbeatTimer = null;
|
|
@@ -3099,7 +3104,7 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
|
|
|
3099
3104
|
} : null;
|
|
3100
3105
|
}
|
|
3101
3106
|
});
|
|
3102
|
-
this.
|
|
3107
|
+
this.contrastOrigin = opts.contrastOrigin?.replace(/\/$/, "") || null;
|
|
3103
3108
|
this.simIdleReapTtlMs = opts.simIdleReapTtlMs ?? _SootSimBridgeHost.SIM_IDLE_REAP_TTL_MS;
|
|
3104
3109
|
this.automationSimIdleReapTtlMs = opts.automationSimIdleReapTtlMs ?? _SootSimBridgeHost.AUTOMATION_SIM_IDLE_REAP_TTL_MS;
|
|
3105
3110
|
this.maxConcurrentAutomationSims = opts.maxConcurrentAutomationSims ?? _SootSimBridgeHost.MAX_CONCURRENT_AUTOMATION_SIMS;
|
|
@@ -4077,7 +4082,7 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
|
|
|
4077
4082
|
return;
|
|
4078
4083
|
}
|
|
4079
4084
|
res.end(
|
|
4080
|
-
injectSharedConfigIntoHtml(data, this.effectivePort, this.
|
|
4085
|
+
injectSharedConfigIntoHtml(data, this.effectivePort, this.contrastOrigin)
|
|
4081
4086
|
);
|
|
4082
4087
|
});
|
|
4083
4088
|
return;
|
|
@@ -4102,7 +4107,7 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
|
|
|
4102
4107
|
return;
|
|
4103
4108
|
}
|
|
4104
4109
|
res.end(
|
|
4105
|
-
injectSharedConfigIntoHtml(data, this.effectivePort, this.
|
|
4110
|
+
injectSharedConfigIntoHtml(data, this.effectivePort, this.contrastOrigin)
|
|
4106
4111
|
);
|
|
4107
4112
|
});
|
|
4108
4113
|
return;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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 __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/host/fetch-proxy-overrides.ts
|
|
4
4
|
var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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 __defProp = Object.defineProperty;
|
package/dist-lib/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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 __defProp = Object.defineProperty;
|
package/dist-lib/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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 __defProp = Object.defineProperty;
|
package/dist-lib/menu.mjs
CHANGED
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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/dist-lib/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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/dist-lib/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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 __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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;
|
|
@@ -33,7 +33,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
33
33
|
var dev_server_scanner_exports = {};
|
|
34
34
|
__export(dev_server_scanner_exports, {
|
|
35
35
|
__applyManifestForTests: () => __applyManifestForTests,
|
|
36
|
-
|
|
36
|
+
__isSootSimSelfServerForTests: () => __isSootSimSelfServerForTests,
|
|
37
37
|
__resetScannerCache: () => __resetScannerCache,
|
|
38
38
|
__shouldReuseScannerCacheEntry: () => __shouldReuseScannerCacheEntry,
|
|
39
39
|
discoverListeningPorts: () => discoverListeningPorts,
|
|
@@ -83,7 +83,7 @@ function applyPreviewProdBundle(parsed) {
|
|
|
83
83
|
function normalizeNativeDevBundleUrl(bundleUrl) {
|
|
84
84
|
try {
|
|
85
85
|
const isAbsolute = isAbsoluteHttpUrl(bundleUrl);
|
|
86
|
-
const parsed = new URL(bundleUrl, "http://
|
|
86
|
+
const parsed = new URL(bundleUrl, "http://sootsim.local");
|
|
87
87
|
parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
|
|
88
88
|
if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
|
|
89
89
|
parsed.searchParams.delete("transform.bytecode");
|
|
@@ -464,12 +464,12 @@ async function probePort(port, buildIconProxyUrl) {
|
|
|
464
464
|
knownNonPatched.add(port);
|
|
465
465
|
return null;
|
|
466
466
|
}
|
|
467
|
-
function
|
|
467
|
+
function isSootSimSelfServer(server) {
|
|
468
468
|
const bundleId = server.bundleId?.trim().toLowerCase();
|
|
469
469
|
if (bundleId?.startsWith("dev.sootsim.")) return true;
|
|
470
470
|
return false;
|
|
471
471
|
}
|
|
472
|
-
var
|
|
472
|
+
var __isSootSimSelfServerForTests = isSootSimSelfServer;
|
|
473
473
|
var portCache = /* @__PURE__ */ new Map();
|
|
474
474
|
var NEGATIVE_CACHE_TTL_MS = 3e4;
|
|
475
475
|
var WEAK_RESULT_CACHE_TTL_MS = 1500;
|
|
@@ -560,12 +560,12 @@ async function scanDevServers(opts = {}) {
|
|
|
560
560
|
for (const pid of [...cwdByPid.keys()]) {
|
|
561
561
|
if (!livePids.has(pid)) cwdByPid.delete(pid);
|
|
562
562
|
}
|
|
563
|
-
return results.filter((r) => !
|
|
563
|
+
return results.filter((r) => !isSootSimSelfServer(r));
|
|
564
564
|
}
|
|
565
565
|
// Annotate the CommonJS export names for ESM import in node:
|
|
566
566
|
0 && (module.exports = {
|
|
567
567
|
__applyManifestForTests,
|
|
568
|
-
|
|
568
|
+
__isSootSimSelfServerForTests,
|
|
569
569
|
__resetScannerCache,
|
|
570
570
|
__shouldReuseScannerCacheEntry,
|
|
571
571
|
discoverListeningPorts,
|
package/dist-lib/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (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 __defProp = Object.defineProperty;
|
|
@@ -789,6 +789,9 @@ function readyProbeHasTargetContent(probe) {
|
|
|
789
789
|
return probe.targets > 0;
|
|
790
790
|
}
|
|
791
791
|
function waitReadyReason(status) {
|
|
792
|
+
if (status.bridgeError) {
|
|
793
|
+
return `sim unreachable: ${status.bridgeError} \u2014 the target tab is closed or no sim is connected (check \`sootsim list\`, reopen with \`sootsim open\`)`;
|
|
794
|
+
}
|
|
792
795
|
const base = status.externalError ? `guest app errored: ${status.externalError}` : status.loadingText ? `still showing "${status.loadingText}"` : status.externalReady === false ? "guest app is still loading" : status.flag !== true && status.targets > 0 ? "native content is rendered but the ready signal has not settled" : status.flag !== true ? "guest app has not emitted sootsim:externalAppReady" : status.targets <= 0 ? "ready flag emitted but no visible app content is inspectable yet" : "node tree is still changing";
|
|
793
796
|
return !status.externalError && status.suppressedEntryError ? `${base} (suppressed entry error: ${status.suppressedEntryError})` : base;
|
|
794
797
|
}
|
|
@@ -799,6 +802,7 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
799
802
|
let nextProgressAt = start + progressIntervalMs;
|
|
800
803
|
let lastNodes = -1;
|
|
801
804
|
let nodeStableSince = start;
|
|
805
|
+
let bridgeError = "";
|
|
802
806
|
let last = {
|
|
803
807
|
flag: void 0,
|
|
804
808
|
at: 0,
|
|
@@ -814,7 +818,9 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
814
818
|
while (Date.now() < deadline) {
|
|
815
819
|
try {
|
|
816
820
|
last = await bridge.send({ type: "evaluate", code: WAIT_READY_PROBE }) ?? last;
|
|
817
|
-
|
|
821
|
+
bridgeError = "";
|
|
822
|
+
} catch (error) {
|
|
823
|
+
bridgeError = error instanceof Error ? error.message : String(error);
|
|
818
824
|
}
|
|
819
825
|
const now = Date.now();
|
|
820
826
|
const status = {
|
|
@@ -828,7 +834,8 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
828
834
|
externalStatus: last.externalStatus,
|
|
829
835
|
externalError: last.externalError,
|
|
830
836
|
suppressedEntryError: last.suppressedEntryError,
|
|
831
|
-
errors: last.errors
|
|
837
|
+
errors: last.errors,
|
|
838
|
+
bridgeError
|
|
832
839
|
};
|
|
833
840
|
if (last.nodes !== lastNodes) {
|
|
834
841
|
lastNodes = last.nodes;
|
|
@@ -863,7 +870,8 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
863
870
|
externalStatus: last.externalStatus,
|
|
864
871
|
externalError: last.externalError,
|
|
865
872
|
suppressedEntryError: last.suppressedEntryError,
|
|
866
|
-
errors: last.errors
|
|
873
|
+
errors: last.errors,
|
|
874
|
+
bridgeError
|
|
867
875
|
};
|
|
868
876
|
}
|
|
869
877
|
async function inspectWaitSelector(bridge, testId, timeoutMs = 5e3, opts = {}) {
|
package/dist-lib/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.229 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// cli/commands/inspect/core.ts
|
|
4
4
|
function resolveMaxMsFlag(args, fallbackMs) {
|
|
@@ -699,6 +699,9 @@ function readyProbeHasTargetContent(probe) {
|
|
|
699
699
|
return probe.targets > 0;
|
|
700
700
|
}
|
|
701
701
|
function waitReadyReason(status) {
|
|
702
|
+
if (status.bridgeError) {
|
|
703
|
+
return `sim unreachable: ${status.bridgeError} \u2014 the target tab is closed or no sim is connected (check \`sootsim list\`, reopen with \`sootsim open\`)`;
|
|
704
|
+
}
|
|
702
705
|
const base = status.externalError ? `guest app errored: ${status.externalError}` : status.loadingText ? `still showing "${status.loadingText}"` : status.externalReady === false ? "guest app is still loading" : status.flag !== true && status.targets > 0 ? "native content is rendered but the ready signal has not settled" : status.flag !== true ? "guest app has not emitted sootsim:externalAppReady" : status.targets <= 0 ? "ready flag emitted but no visible app content is inspectable yet" : "node tree is still changing";
|
|
703
706
|
return !status.externalError && status.suppressedEntryError ? `${base} (suppressed entry error: ${status.suppressedEntryError})` : base;
|
|
704
707
|
}
|
|
@@ -709,6 +712,7 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
709
712
|
let nextProgressAt = start + progressIntervalMs;
|
|
710
713
|
let lastNodes = -1;
|
|
711
714
|
let nodeStableSince = start;
|
|
715
|
+
let bridgeError = "";
|
|
712
716
|
let last = {
|
|
713
717
|
flag: void 0,
|
|
714
718
|
at: 0,
|
|
@@ -724,7 +728,9 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
724
728
|
while (Date.now() < deadline) {
|
|
725
729
|
try {
|
|
726
730
|
last = await bridge.send({ type: "evaluate", code: WAIT_READY_PROBE }) ?? last;
|
|
727
|
-
|
|
731
|
+
bridgeError = "";
|
|
732
|
+
} catch (error) {
|
|
733
|
+
bridgeError = error instanceof Error ? error.message : String(error);
|
|
728
734
|
}
|
|
729
735
|
const now = Date.now();
|
|
730
736
|
const status = {
|
|
@@ -738,7 +744,8 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
738
744
|
externalStatus: last.externalStatus,
|
|
739
745
|
externalError: last.externalError,
|
|
740
746
|
suppressedEntryError: last.suppressedEntryError,
|
|
741
|
-
errors: last.errors
|
|
747
|
+
errors: last.errors,
|
|
748
|
+
bridgeError
|
|
742
749
|
};
|
|
743
750
|
if (last.nodes !== lastNodes) {
|
|
744
751
|
lastNodes = last.nodes;
|
|
@@ -773,7 +780,8 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
773
780
|
externalStatus: last.externalStatus,
|
|
774
781
|
externalError: last.externalError,
|
|
775
782
|
suppressedEntryError: last.suppressedEntryError,
|
|
776
|
-
errors: last.errors
|
|
783
|
+
errors: last.errors,
|
|
784
|
+
bridgeError
|
|
777
785
|
};
|
|
778
786
|
}
|
|
779
787
|
async function inspectWaitSelector(bridge, testId, timeoutMs = 5e3, opts = {}) {
|