sootsim 0.1.167 → 0.1.169
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-FGNA3LC6.js → agent-V3GVCRPL.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-5CRKG7K7.js → agent-wrapper-Y5FQA3RL.js} +2 -2
- package/dist-cli/chunks/{app-fonts-CM3ML6NV.js → app-fonts-FYVA4XV6.js} +2 -2
- package/dist-cli/chunks/{assert-DCO6XYDU.js → assert-U64QBDM2.js} +2 -2
- package/dist-cli/chunks/auto-bootstrap-YXDP3WKH.js +2 -0
- package/dist-cli/chunks/beta-FGSMZWLP.js +2 -0
- package/dist-cli/chunks/{camera-HWLYOMJV.js → camera-3GXBVIAM.js} +2 -2
- package/dist-cli/chunks/chunk-2IFWVIKM.js +2 -0
- package/dist-cli/chunks/{chunk-OKBGHUCY.js → chunk-2TYEWVS4.js} +2 -2
- package/dist-cli/chunks/{chunk-SIRMLK54.js → chunk-3L4NRJ6C.js} +1 -1
- package/dist-cli/chunks/chunk-3T36XLP3.js +119 -0
- package/dist-cli/chunks/{chunk-RTBG543W.js → chunk-4F3BBP7B.js} +2 -2
- package/dist-cli/chunks/{chunk-HCNW2QTI.js → chunk-5C6BR24W.js} +3 -3
- package/dist-cli/chunks/{chunk-TFF3KXNC.js → chunk-5KY7TQ42.js} +1 -1
- package/dist-cli/chunks/{chunk-DWYDDN7J.js → chunk-5Q7IHJ7K.js} +2 -2
- package/dist-cli/chunks/{chunk-47JNNTYQ.js → chunk-B7BMSU7H.js} +1 -1
- package/dist-cli/chunks/{chunk-JI72D4RY.js → chunk-BIWJE7CB.js} +1 -1
- package/dist-cli/chunks/chunk-BQOMDL4K.js +1 -0
- package/dist-cli/chunks/{chunk-UC7LRLPE.js → chunk-CR6DOLUD.js} +1 -1
- package/dist-cli/chunks/{chunk-AB6TZFIE.js → chunk-DNA6VS6M.js} +1 -1
- package/dist-cli/chunks/{chunk-U7LLQDO4.js → chunk-DQZEN256.js} +1 -1
- package/dist-cli/chunks/{chunk-JL7K7EPF.js → chunk-FHMPJZKM.js} +3 -3
- package/dist-cli/chunks/{chunk-GNHGTWDX.js → chunk-FIDPRJYH.js} +2 -2
- package/dist-cli/chunks/chunk-G2ZFDIPK.js +5 -0
- package/dist-cli/chunks/{chunk-PDPBZD5O.js → chunk-GC4THE6K.js} +1 -1
- package/dist-cli/chunks/{chunk-UF2T46AA.js → chunk-GLRFKYDV.js} +2 -2
- package/dist-cli/chunks/{chunk-ZLZ3R452.js → chunk-GQAWFQNN.js} +2 -2
- package/dist-cli/chunks/{chunk-IV5NEIXZ.js → chunk-HC72ILJK.js} +2 -2
- package/dist-cli/chunks/chunk-HJTKKF7M.js +13 -0
- package/dist-cli/chunks/{chunk-VCKKDUWG.js → chunk-IACEJQIO.js} +2 -2
- package/dist-cli/chunks/{chunk-QIXDVNSM.js → chunk-IBEMMV5E.js} +2 -2
- package/dist-cli/chunks/{chunk-OGH3OCGP.js → chunk-IODOTOOP.js} +2 -2
- package/dist-cli/chunks/{chunk-ACNSMZSP.js → chunk-JDGLBW64.js} +1 -1
- package/dist-cli/chunks/chunk-K4JAWKOY.js +1 -0
- package/dist-cli/chunks/{chunk-D6QVHHDU.js → chunk-KUUFY6FC.js} +1 -1
- package/dist-cli/chunks/{chunk-2QPTZHGU.js → chunk-KZIXAYN5.js} +2 -2
- package/dist-cli/chunks/{chunk-T4UHUISG.js → chunk-LZEL2RU3.js} +1 -1
- package/dist-cli/chunks/chunk-M2TMFGZH.js +2 -0
- package/dist-cli/chunks/{chunk-DAMNOIAJ.js → chunk-MVOHANJG.js} +2 -2
- package/dist-cli/chunks/{chunk-2UGS25BK.js → chunk-NXGQS7IR.js} +1 -1
- package/dist-cli/chunks/{chunk-KCETAALD.js → chunk-OGLWXPVG.js} +2 -2
- package/dist-cli/chunks/{chunk-DM2EOTY5.js → chunk-PV6MBKKE.js} +2 -2
- package/dist-cli/chunks/chunk-R2INPDGW.js +1 -0
- package/dist-cli/chunks/{chunk-WXFUXFY7.js → chunk-SIB6I72P.js} +2 -2
- package/dist-cli/chunks/chunk-SLL5SZN4.js +2 -0
- package/dist-cli/chunks/{chunk-3RHECMKV.js → chunk-SNX3M4XD.js} +3 -3
- package/dist-cli/chunks/{chunk-27CWE62K.js → chunk-VMYMPL6H.js} +2 -2
- package/dist-cli/chunks/{chunk-MGX3HHAR.js → chunk-WZG3YVJR.js} +1 -1
- package/dist-cli/chunks/{chunk-EIMDQRZS.js → chunk-X2HNVXNM.js} +2 -2
- package/dist-cli/chunks/{chunk-MI7BLMGH.js → chunk-XEH4QGWB.js} +2 -2
- package/dist-cli/chunks/{chunk-F5REXFAW.js → chunk-XM66K64H.js} +2 -2
- package/dist-cli/chunks/{chunk-3MQAPPOW.js → chunk-Y6IDAARY.js} +1 -1
- package/dist-cli/chunks/{chunk-ELHNXEJI.js → chunk-YADWU7OZ.js} +2 -2
- package/dist-cli/chunks/cli-version-3L6FFDIX.js +2 -0
- package/dist-cli/chunks/{compat-WZAQMU3Y.js → compat-ORRWNXVT.js} +3 -3
- package/dist-cli/chunks/{config-EMVWQLSZ.js → config-5IB6ONJ2.js} +2 -2
- package/dist-cli/chunks/control-BM4V27OB.js +2 -0
- package/dist-cli/chunks/{cpu-profile-FIXB3BPM.js → cpu-profile-6PRSBZ2F.js} +2 -2
- package/dist-cli/chunks/{daemon-VPUPR3CK.js → daemon-62MZT4G4.js} +2 -2
- package/dist-cli/chunks/{debug-QW2VVENB.js → debug-Q3J2X4WW.js} +3 -3
- package/dist-cli/chunks/{detox-RLEEW5BN.js → detox-DN57GMMJ.js} +2 -2
- package/dist-cli/chunks/{device-MCFZ5J5W.js → device-IL5TPYGU.js} +2 -2
- package/dist-cli/chunks/{diagnose-VSSY5XMS.js → diagnose-BW6QWP4F.js} +2 -2
- package/dist-cli/chunks/drivers-V6QDFZQD.js +2 -0
- package/dist-cli/chunks/{electron-OD7H7UBA.js → electron-DGMSXQWG.js} +3 -3
- package/dist-cli/chunks/flow-VBM6TU32.js +2 -0
- package/dist-cli/chunks/help-XWKNL743.js +2 -0
- package/dist-cli/chunks/{hints-TU5HBDRY.js → hints-TK3EHB4U.js} +2 -2
- package/dist-cli/chunks/{home-paths-6WZQKHRA.js → home-paths-G23H3RO6.js} +2 -2
- package/dist-cli/chunks/{inspect-UNZ7Z5PF.js → inspect-NFWFGU4B.js} +136 -133
- package/dist-cli/chunks/install-5YL7FITA.js +2 -0
- package/dist-cli/chunks/{install-desktop-6LB2C5H5.js → install-desktop-GB3JKSNX.js} +3 -3
- package/dist-cli/chunks/{keys-5XMDDDUV.js → keys-RAAHRIFH.js} +2 -2
- package/dist-cli/chunks/{launch-RVQHYE5V.js → launch-DYFE4CAD.js} +3 -3
- package/dist-cli/chunks/{login-BGMYYUK2.js → login-KQ37GHDE.js} +4 -4
- package/dist-cli/chunks/{logout-PXZVOWLU.js → logout-63SH2Y25.js} +2 -2
- package/dist-cli/chunks/{maestro-RIGROEAZ.js → maestro-24BT3MML.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-JJXPB3UD.js +2 -0
- package/dist-cli/chunks/{preview-3XCXJMNU.js → preview-KQAOVN6R.js} +2 -2
- package/dist-cli/chunks/{profile-7MQEP55V.js → profile-AN2B4NJT.js} +2 -2
- package/dist-cli/chunks/{react-BBOQIY6V.js → react-ATGV35B4.js} +2 -2
- package/dist-cli/chunks/{record-4U2X6JDH.js → record-36662T3R.js} +2 -2
- package/dist-cli/chunks/runtime-NRMC3U3D.js +2 -0
- package/dist-cli/chunks/{runtime-delivery-VK2HCMQW.js → runtime-delivery-RO6CTYPQ.js} +2 -2
- package/dist-cli/chunks/{screenshot-MCFHIP2H.js → screenshot-K4N5MPAT.js} +2 -2
- package/dist-cli/chunks/{screenshot-mode-VJEAECKO.js → screenshot-mode-4QOJDLSH.js} +2 -2
- package/dist-cli/chunks/{screenshots-3NSCRA3U.js → screenshots-TB35YMSR.js} +2 -2
- package/dist-cli/chunks/screenshots-capture-W6X33BZ4.js +41 -0
- package/dist-cli/chunks/{server-HIPHVNKP.js → server-L2PKDJZ2.js} +3 -3
- package/dist-cli/chunks/setup-repo-AK6QOUE7.js +2 -0
- package/dist-cli/chunks/{skills-JILZXX7E.js → skills-KDSOWUOE.js} +2 -2
- package/dist-cli/chunks/{slides-IWZX6TCC.js → slides-TORKO36P.js} +2 -2
- package/dist-cli/chunks/{start-4RYQMQMM.js → start-GH2AOUX6.js} +4 -4
- package/dist-cli/chunks/store-JHW65VGQ.js +2 -0
- package/dist-cli/chunks/telemetry-SZLRXJXW.js +2 -0
- package/dist-cli/chunks/{test-VQ6HIPKR.js → test-5VCENVW3.js} +3 -3
- package/dist-cli/chunks/{three-mode-UWH72A46.js → three-mode-ZVS2DSX6.js} +2 -2
- package/dist-cli/chunks/{timeline-T6LM4W3H.js → timeline-TNC5OWLF.js} +2 -2
- package/dist-cli/chunks/{upgrade-KEJ2H2WE.js → upgrade-E7IO6A7Z.js} +2 -2
- package/dist-cli/chunks/upload-KKEWETA5.js +2 -0
- package/dist-cli/chunks/{version-PIJ2OP5O.js → version-37OD33SE.js} +2 -2
- package/dist-cli/chunks/{web-DCGXY52J.js → web-4JVMIBTB.js} +2 -2
- package/dist-cli/chunks/{what-happened-CUA3N455.js → what-happened-RMHZ7DGX.js} +2 -2
- package/dist-cli/chunks/{whoami-Z5XNGCGJ.js → whoami-D53ANHR5.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 +10 -2
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +4 -1
- 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/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 +4 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +16 -13
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/dev-bundle-resolution.ts +6 -1
- package/src/native-dev-bundle-url.ts +12 -0
- package/src/skills/builtin/a11y-review.ts +4 -1
- package/src/skills/builtin/perf-profile.ts +4 -1
- package/src/skills/builtin/screenshot-all.ts +4 -1
- package/src/skills/builtin/visual-diff.ts +4 -1
- package/dist-cli/chunks/auto-bootstrap-QJUHQLQH.js +0 -2
- package/dist-cli/chunks/beta-W5Y32GJR.js +0 -2
- package/dist-cli/chunks/chunk-7P6CUODK.js +0 -1
- package/dist-cli/chunks/chunk-BIG5BGMC.js +0 -5
- package/dist-cli/chunks/chunk-E5E7XQIN.js +0 -2
- package/dist-cli/chunks/chunk-F2UUNDRU.js +0 -119
- package/dist-cli/chunks/chunk-F5PLWUIU.js +0 -1
- package/dist-cli/chunks/chunk-HHOQMAVJ.js +0 -1
- package/dist-cli/chunks/chunk-JDFPPPPS.js +0 -2
- package/dist-cli/chunks/chunk-MPUONWKJ.js +0 -13
- package/dist-cli/chunks/chunk-QX25ZRIQ.js +0 -2
- package/dist-cli/chunks/cli-version-RHOJPOQJ.js +0 -2
- package/dist-cli/chunks/control-P3M34LCO.js +0 -2
- package/dist-cli/chunks/drivers-GPZ62RP5.js +0 -2
- package/dist-cli/chunks/flow-JFSZHDB2.js +0 -2
- package/dist-cli/chunks/help-DFQRIC3T.js +0 -2
- package/dist-cli/chunks/install-7JTNTNNX.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-GQL6Z6OH.js +0 -2
- package/dist-cli/chunks/runtime-HPZWCYML.js +0 -2
- package/dist-cli/chunks/setup-repo-LFSW66HX.js +0 -2
- package/dist-cli/chunks/store-RGD3TDGI.js +0 -2
- package/dist-cli/chunks/telemetry-7TRVV4JE.js +0 -2
- package/dist-cli/chunks/upload-BWSIC24N.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{C as T,D as A,E as y,P as _,Q as b,R as S}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.169 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{C as T,D as A,E as y,P as _,Q as b,R as S}from"./chunk-DNA6VS6M.js";import{c as N,e as F}from"./chunk-GQAWFQNN.js";import"./chunk-DQZEN256.js";import{b as k}from"./chunk-KUUFY6FC.js";import"./chunk-5KY7TQ42.js";import"./chunk-JDGLBW64.js";function O(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--since"&&e+1<n.length){t.push(e,e+1);let s=n[e+1].trim(),l=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(l){let r=Number(l[1]),u=l[2]??"ms",v=u==="s"?r*1e3:u==="m"?r*6e4:r;return{since:Date.now()-v,consumed:t}}let i=Number(s);if(Number.isFinite(i)&&i>1e12)return{since:i,consumed:t}}return{consumed:t}}function B(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--kinds"&&e+1<n.length)return t.push(e,e+1),{kinds:n[e+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:t};return{consumed:t}}function D(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--limit"&&e+1<n.length){t.push(e,e+1);let s=Number(n[e+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:t}}return{consumed:t}}function x(n){let t=[],e={label:"initial state",events:[],startedAt:n[0]?.t??null};t.push(e);for(let s of n)if(e.events.push(s),s.kind==="screen"||s.kind==="route"){let l=s.data,i=l?.phase;if(!i||i==="enter"||i==="appear"||i==="active"){let r=l?.name||l?.activeName||l?.path||l?.pathname||s.kind;t.length===1&&e.events.length===1?e.label=`${s.kind}: ${r}`:(e={label:`${s.kind}: ${r}`,events:[],startedAt:s.t},t.push(e))}}return t}async function J(n,t){let e=N(n,{port:t.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow","--noisy"],stripValueFlags:["--since","--kinds","--limit"]});(n.includes("--help")||n.includes("-h"))&&(console.log(`
|
|
3
3
|
sootsim what-happened \u2014 show recent events from the semantic timeline
|
|
4
4
|
|
|
5
5
|
usage:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{d as i}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.169 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{d as i}from"./chunk-SIB6I72P.js";import{d as n}from"./chunk-PV6MBKKE.js";import"./chunk-5KY7TQ42.js";import"./chunk-JDGLBW64.js";async function u(){let o=i();if(o||(console.log(" not signed in"),console.log(" set SOOTSIM_API_KEY=sk_sootsim_\u2026 or run `sootsim login`"),process.exit(1)),o.kind==="api-key"){let r=`${o.secret.slice(0,14)}\u2026`,t=o.source==="env"?"SOOTSIM_API_KEY env var":"saved key (~/.config/sootsim/credentials.json)";console.log(` api key ${r}`),console.log(` source: ${t}`);return}if(o.kind==="github"){console.log(` github token (${o.source})`),console.log(` repo: ${o.repoId}`);return}let e=await n(),s=e?.user;console.log(` ${s?.email||s?.name||s?.id||"signed in"}`),console.log(` origin: ${e?.origin??o.origin}`),e?.updatedAt&&console.log(` updated: ${e.updatedAt}`)}export{u as runWhoami};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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.169 | (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.169 | (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.169 | (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.169 | (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.169 | (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/beta.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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/beta.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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.169 | (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/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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.169 | (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;
|
|
@@ -59,6 +59,9 @@ function normalizeNativeDevBundleUrl(bundleUrl) {
|
|
|
59
59
|
parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
|
|
60
60
|
if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
|
|
61
61
|
parsed.searchParams.delete("transform.bytecode");
|
|
62
|
+
if (parsed.searchParams.get("lazy") === "true") {
|
|
63
|
+
parsed.searchParams.set("lazy", "false");
|
|
64
|
+
}
|
|
62
65
|
applyPreviewProdBundle(parsed);
|
|
63
66
|
if (isAbsolute) return parsed.toString();
|
|
64
67
|
return `${parsed.pathname}${parsed.search}${parsed.hash}`;
|
|
@@ -121,7 +124,12 @@ async function resolvePortViaServerScan(port) {
|
|
|
121
124
|
);
|
|
122
125
|
if (!match) return null;
|
|
123
126
|
return {
|
|
124
|
-
|
|
127
|
+
// normalize exactly like the manifest-probe branch below — the scan
|
|
128
|
+
// returns metro's raw launchAsset url (lazy=true for code-split one/vxrn
|
|
129
|
+
// apps), but sootsim loads ONE self-contained bundle into the tenant
|
|
130
|
+
// worker, so a deferred React.lazy chunk throws "Requiring unknown module
|
|
131
|
+
// <id>". normalizeNativeDevBundleUrl forces lazy=false + strips bytecode.
|
|
132
|
+
bundleUrl: normalizeNativeDevBundleUrl(match.bundleUrl),
|
|
125
133
|
port,
|
|
126
134
|
framework: typeof match.framework === "string" ? match.framework : "unknown",
|
|
127
135
|
projectName: typeof match.projectName === "string" ? match.projectName : void 0
|
package/dist-lib/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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.169 | (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;
|
|
@@ -121,6 +121,9 @@ function normalizeNativeDevBundleUrl(bundleUrl) {
|
|
|
121
121
|
parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
|
|
122
122
|
if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
|
|
123
123
|
parsed.searchParams.delete("transform.bytecode");
|
|
124
|
+
if (parsed.searchParams.get("lazy") === "true") {
|
|
125
|
+
parsed.searchParams.set("lazy", "false");
|
|
126
|
+
}
|
|
124
127
|
applyPreviewProdBundle(parsed);
|
|
125
128
|
if (isAbsolute) return parsed.toString();
|
|
126
129
|
return `${parsed.pathname}${parsed.search}${parsed.hash}`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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.169 | (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.169 | (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.169 | (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.169 | (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/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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.169 | (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.169 | (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.169 | (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.169 | (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;
|
|
@@ -86,6 +86,9 @@ function normalizeNativeDevBundleUrl(bundleUrl) {
|
|
|
86
86
|
parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
|
|
87
87
|
if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
|
|
88
88
|
parsed.searchParams.delete("transform.bytecode");
|
|
89
|
+
if (parsed.searchParams.get("lazy") === "true") {
|
|
90
|
+
parsed.searchParams.set("lazy", "false");
|
|
91
|
+
}
|
|
89
92
|
applyPreviewProdBundle(parsed);
|
|
90
93
|
if (isAbsolute) return parsed.toString();
|
|
91
94
|
return `${parsed.pathname}${parsed.search}${parsed.hash}`;
|
package/dist-lib/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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/sdk.mjs
CHANGED
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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;
|
|
@@ -5224,10 +5224,10 @@ var init_registry = __esm({
|
|
|
5224
5224
|
versions: [
|
|
5225
5225
|
{
|
|
5226
5226
|
range: ">=0.7.0",
|
|
5227
|
-
coverage: 0.
|
|
5228
|
-
note: "
|
|
5229
|
-
working: "
|
|
5230
|
-
missing: "
|
|
5227
|
+
coverage: 0.82,
|
|
5228
|
+
note: "native-seam only \u2014 real react-native-quick-crypto JS runs from the bundle against a SootSim-provided global.__QuickCryptoProxy. The seam implements the synchronous native primitives that can be faithfully backed in the browser (random, hash/HMAC, PBKDF2, AES-CBC/CTR/GCM, AES secret-key handles) and leaves unsupported native-only RSA/sign/keygen paths as explicit unsupported operations.",
|
|
5229
|
+
working: "upstream package JS and export surface, global __QuickCryptoProxy install before module evaluation, random/randomFill/getRandomValues via upstream JS, createHash/createHmac host objects, pbkdf2 callback/promise form and pbkdf2Sync, AES-CBC/GCM/CTR host ciphers, AES WebCrypto secret-key import/export and encrypt/decrypt",
|
|
5230
|
+
missing: "synchronous RSA publicEncrypt/publicDecrypt/privateDecrypt, createSign/createVerify, generateKeyPair, RSA/ECDH WebCrypto key paths, AES-KW, and legacy ciphers such as DES/RC4/ChaCha20."
|
|
5231
5231
|
}
|
|
5232
5232
|
]
|
|
5233
5233
|
},
|
|
@@ -5237,10 +5237,10 @@ var init_registry = __esm({
|
|
|
5237
5237
|
versions: [
|
|
5238
5238
|
{
|
|
5239
5239
|
range: ">=0.3.0",
|
|
5240
|
-
coverage: 0.
|
|
5241
|
-
note: "
|
|
5242
|
-
working: "
|
|
5243
|
-
missing: "
|
|
5240
|
+
coverage: 0.55,
|
|
5241
|
+
note: "small compatibility surface backed by the react-native-quick-crypto native proxy for existing SootSim callers; this is not the quick-crypto package replacement and should be replaced by a native-seam-only Nitro Modules implementation when that package becomes a priority.",
|
|
5242
|
+
working: "createHash plus subtle/webcrypto references for load-safe consumers",
|
|
5243
|
+
missing: "full upstream react-native-nitro-crypto package JS/native contract is not modeled yet"
|
|
5244
5244
|
}
|
|
5245
5245
|
]
|
|
5246
5246
|
},
|
|
@@ -10035,6 +10035,9 @@ function normalizeNativeDevBundleUrl(bundleUrl) {
|
|
|
10035
10035
|
parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
|
|
10036
10036
|
if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
|
|
10037
10037
|
parsed.searchParams.delete("transform.bytecode");
|
|
10038
|
+
if (parsed.searchParams.get("lazy") === "true") {
|
|
10039
|
+
parsed.searchParams.set("lazy", "false");
|
|
10040
|
+
}
|
|
10038
10041
|
applyPreviewProdBundle(parsed);
|
|
10039
10042
|
if (isAbsolute2) return parsed.toString();
|
|
10040
10043
|
return `${parsed.pathname}${parsed.search}${parsed.hash}`;
|
|
@@ -17983,7 +17986,7 @@ var skill = {
|
|
|
17983
17986
|
const { chromium } = await import("playwright");
|
|
17984
17987
|
const path9 = await import("path");
|
|
17985
17988
|
const fs9 = await import("fs");
|
|
17986
|
-
const browser = await chromium.launch({ headless: true });
|
|
17989
|
+
const browser = await chromium.launch({ channel: "chrome", headless: true });
|
|
17987
17990
|
const page = await browser.newPage({ viewport: { width: 500, height: 900 } });
|
|
17988
17991
|
try {
|
|
17989
17992
|
await page.goto(context.url, { waitUntil: "networkidle" });
|
|
@@ -18158,7 +18161,7 @@ var skill3 = {
|
|
|
18158
18161
|
const { chromium } = await import("playwright");
|
|
18159
18162
|
const path9 = await import("path");
|
|
18160
18163
|
const fs9 = await import("fs");
|
|
18161
|
-
const browser = await chromium.launch({ headless: true });
|
|
18164
|
+
const browser = await chromium.launch({ channel: "chrome", headless: true });
|
|
18162
18165
|
const page = await browser.newPage({ viewport: { width: 500, height: 900 } });
|
|
18163
18166
|
try {
|
|
18164
18167
|
await page.goto(context.url, { waitUntil: "networkidle" });
|
|
@@ -18217,7 +18220,7 @@ var skill4 = {
|
|
|
18217
18220
|
const { chromium } = await import("playwright");
|
|
18218
18221
|
const path9 = await import("path");
|
|
18219
18222
|
const fs9 = await import("fs");
|
|
18220
|
-
const browser = await chromium.launch({ headless: true });
|
|
18223
|
+
const browser = await chromium.launch({ channel: "chrome", headless: true });
|
|
18221
18224
|
const page = await browser.newPage({ viewport: { width: 500, height: 900 } });
|
|
18222
18225
|
try {
|
|
18223
18226
|
await page.goto(context.url, { waitUntil: "networkidle" });
|
|
@@ -18368,7 +18371,7 @@ var skill6 = {
|
|
|
18368
18371
|
const { chromium } = await import("playwright");
|
|
18369
18372
|
const path9 = await import("path");
|
|
18370
18373
|
const fs9 = await import("fs");
|
|
18371
|
-
const browser = await chromium.launch({ headless: true });
|
|
18374
|
+
const browser = await chromium.launch({ channel: "chrome", headless: true });
|
|
18372
18375
|
const page = await browser.newPage({ viewport: { width: 500, height: 900 } });
|
|
18373
18376
|
try {
|
|
18374
18377
|
await page.goto(context.url, { waitUntil: "networkidle" });
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.169 | (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
|
@@ -108,7 +108,12 @@ async function resolvePortViaServerScan(port: number): Promise<ResolvedDevBundle
|
|
|
108
108
|
)
|
|
109
109
|
if (!match) return null
|
|
110
110
|
return {
|
|
111
|
-
|
|
111
|
+
// normalize exactly like the manifest-probe branch below — the scan
|
|
112
|
+
// returns metro's raw launchAsset url (lazy=true for code-split one/vxrn
|
|
113
|
+
// apps), but sootsim loads ONE self-contained bundle into the tenant
|
|
114
|
+
// worker, so a deferred React.lazy chunk throws "Requiring unknown module
|
|
115
|
+
// <id>". normalizeNativeDevBundleUrl forces lazy=false + strips bytecode.
|
|
116
|
+
bundleUrl: normalizeNativeDevBundleUrl(match.bundleUrl),
|
|
112
117
|
port,
|
|
113
118
|
framework: typeof match.framework === 'string' ? match.framework : 'unknown',
|
|
114
119
|
projectName: typeof match.projectName === 'string' ? match.projectName : undefined,
|
|
@@ -53,6 +53,18 @@ export function normalizeNativeDevBundleUrl(bundleUrl: string): string {
|
|
|
53
53
|
// strip transform.bytecode — metro would return hermes bytecode and our
|
|
54
54
|
// bundle-loader can only execute plain JS.
|
|
55
55
|
parsed.searchParams.delete('transform.bytecode')
|
|
56
|
+
// force lazy=false. sootsim loads ONE self-contained bundle into the tenant
|
|
57
|
+
// worker. metro's lazy=true defers code-split modules to async chunks; vxrn/
|
|
58
|
+
// one's emitted entry can synchronously `require` a deferred module before
|
|
59
|
+
// its chunk has loaded, throwing "Requiring unknown module <id>" and crashing
|
|
60
|
+
// the route (observed with one's React.lazy GameScene3D split). lazy=false
|
|
61
|
+
// ships every module in the served bundle — import()/React.lazy RUNTIME
|
|
62
|
+
// semantics are unchanged (the chunk is just inlined), so this is faithful,
|
|
63
|
+
// not a behavior change. the engine's __loadBundleAsync still handles any
|
|
64
|
+
// genuinely-async chunks an app fetches at runtime.
|
|
65
|
+
if (parsed.searchParams.get('lazy') === 'true') {
|
|
66
|
+
parsed.searchParams.set('lazy', 'false')
|
|
67
|
+
}
|
|
56
68
|
applyPreviewProdBundle(parsed)
|
|
57
69
|
if (isAbsolute) return parsed.toString()
|
|
58
70
|
return `${parsed.pathname}${parsed.search}${parsed.hash}`
|
|
@@ -20,7 +20,10 @@ export const skill: SootSimSkill = {
|
|
|
20
20
|
const path = await import('path')
|
|
21
21
|
const fs = await import('fs')
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
// sootsim renders CanvasKit — require GPU-backed Chrome (Metal). the
|
|
24
|
+
// bundled swiftshader shell software-renders the canvas and pegs every
|
|
25
|
+
// core; never use it for sootsim.
|
|
26
|
+
const browser = await chromium.launch({ channel: 'chrome', headless: true })
|
|
24
27
|
const page = await browser.newPage({ viewport: { width: 500, height: 900 } })
|
|
25
28
|
|
|
26
29
|
try {
|
|
@@ -33,7 +33,10 @@ export const skill: SootSimSkill = {
|
|
|
33
33
|
const path = await import('path')
|
|
34
34
|
const fs = await import('fs')
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
// sootsim renders CanvasKit — require GPU-backed Chrome (Metal). the
|
|
37
|
+
// bundled swiftshader shell software-renders the canvas and pegs every
|
|
38
|
+
// core; never use it for sootsim.
|
|
39
|
+
const browser = await chromium.launch({ channel: 'chrome', headless: true })
|
|
37
40
|
const page = await browser.newPage({ viewport: { width: 500, height: 900 } })
|
|
38
41
|
|
|
39
42
|
try {
|
|
@@ -21,7 +21,10 @@ export const skill: SootSimSkill = {
|
|
|
21
21
|
const path = await import('path')
|
|
22
22
|
const fs = await import('fs')
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
// sootsim renders CanvasKit — require GPU-backed Chrome (Metal). the
|
|
25
|
+
// bundled swiftshader shell software-renders the canvas and pegs every
|
|
26
|
+
// core; never use it for sootsim.
|
|
27
|
+
const browser = await chromium.launch({ channel: 'chrome', headless: true })
|
|
25
28
|
const page = await browser.newPage({ viewport: { width: 500, height: 900 } })
|
|
26
29
|
|
|
27
30
|
try {
|
|
@@ -29,7 +29,10 @@ export const skill: SootSimSkill = {
|
|
|
29
29
|
const path = await import('path')
|
|
30
30
|
const fs = await import('fs')
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
// sootsim renders CanvasKit — require GPU-backed Chrome (Metal). the
|
|
33
|
+
// bundled swiftshader shell software-renders the canvas and pegs every
|
|
34
|
+
// core; never use it for sootsim.
|
|
35
|
+
const browser = await chromium.launch({ channel: 'chrome', headless: true })
|
|
33
36
|
const page = await browser.newPage({ viewport: { width: 500, height: 900 } })
|
|
34
37
|
|
|
35
38
|
try {
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.167 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c,d}from"./chunk-JL7K7EPF.js";import"./chunk-ZLZ3R452.js";import"./chunk-U7LLQDO4.js";import"./chunk-D6QVHHDU.js";import"./chunk-TFF3KXNC.js";import"./chunk-ACNSMZSP.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.167 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.167 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as C,b as x}from"./chunk-3MQAPPOW.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,r){let o=new URL(e);return E(r)?o.searchParams.set(k,JSON.stringify(r)):o.searchParams.delete(k),o.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 r=_(e),o=new URL(e,"http://soot.local");return o.pathname=o.pathname.replace(/\.\.bundle$/,".bundle"),D(o.pathname)?(o.searchParams.delete("transform.bytecode"),A(o),r?o.toString():`${o.pathname}${o.search}${o.hash}`):e}catch{return e}}function oe(e,r){try{let o=_(e),t=new URL(e,"http://soot.local");return D(t.pathname)?(t.searchParams.set("hot",r?"true":"false"),o?t.toString():`${t.pathname}${t.search}${t.hash}`):e}catch{return e}}import{exec as N}from"child_process";import L from"http";import $ from"net";import{promisify as O}from"util";var v=O(N);C();var I=250,B=1500,H=120;function j(e,r=H){return new Promise(o=>{let t=new $.Socket,s=!1,i=a=>{s||(s=!0,t.destroy(),o(a))};t.setTimeout(r),t.once("connect",()=>i(!0)),t.once("timeout",()=>i(!1)),t.once("error",()=>i(!1)),t.connect(e,"localhost")})}function h(e,r,o="GET",t=I,s={}){return new Promise(i=>{let a=L.request({hostname:"localhost",port:e,path:r,method:o,timeout:t,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(t,()=>{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,r){return!(e<=0||e>=2e4||r.has(e)||e>=5170&&e<=5200)}async function F(e=[]){let r=new Set(e);try{let{stdout:o}=await v("lsof -iTCP -sTCP:LISTEN -P -n 2>/dev/null | grep -E '^(node|bun)'",{encoding:"utf8",timeout:2e3});if(o.trim()){let t=new Map;for(let s of o.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,r)&&(t.has(c)||t.set(c,a))}if(t.size>0)return[...t.entries()].map(([s,i])=>({port:s,pid:i}))}}catch{}try{let{stdout:o}=await v(`ss -tlnp 2>/dev/null | grep -E '"(node|bun)"'`,{encoding:"utf8",timeout:2e3});if(o.trim()){let t=new Map;for(let s of o.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,r)&&(t.has(n)||t.set(n,u))}if(t.size>0)return[...t.entries()].map(([s,i])=>({port:s,pid:i}))}}catch{}return W.filter(o=>P(o.port,r))}var y=new Map;async function G(e){if(e<=0)return null;let r=y.get(e);if(r)return r;try{let{stdout:o}=await v(`lsof -p ${e} -a -d cwd -Fn 2>/dev/null`,{encoding:"utf8",timeout:1500});for(let t of o.split(`
|
|
5
|
-
`))if(t.startsWith("n")&&t.length>1){let s=t.slice(1).trim();if(s)return y.set(e,s),s}}catch{}return null}function z(e,r){return{port:e,framework:r,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,r){let o=x().find(s=>s.preferredPort===e),t=o?.runtimeConfig?M(r,o.runtimeConfig):r;return U(t)}function J(e){return e.includes("/node_modules/one/metro-entry.bundle")}function K(e){try{let r=JSON.parse(e);return r&&typeof r=="object"?r:null}catch{return null}}function w(e,r,o){if(!r)return e;try{let t=JSON.parse(r.body),s=t?.extra?.expoClient||t?.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=t?.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,o)if(a.startsWith("http"))e.iconUrl=o(a);else{let n=a.replace(/^\.\//,"");e.iconUrl=o(`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,r){if(!await j(e))return null;let o="/node_modules/one/metro-entry.bundle?platform=ios&dev=true",[t,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,r)}if(s&&s.body.includes("packager-status:running"))return d.add(e),w(z(e,a&&a.statusCode===200?"expo":"metro"),i,r);if(t&&t.statusCode===200&&t.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,r);if(s&&s.statusCode===200||a&&a.statusCode===200||i&&i.statusCode===200&&n!=null)return null;let f=await h(e,o,"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}${o}&minify=false`),hmrUrl:`ws://localhost:${e}/hot`,lastSeen:Date.now()},i,r)):(d.add(e),null)}function q(e){let r=e.projectName?.trim().toLowerCase();return!!(r==="soot"||r==="sootsim"||e.bundleId?.trim().toLowerCase()?.startsWith("dev.soot"))}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,r,o=Date.now()){if(r===0||e.pid!==r||!Z(e.result))return!1;let t=o-e.cachedAt;return!(e.result===null&&t>=Q||X(e.result)&&t>=Y)}async function fe(e={}){let r=await F(e.excludePorts),o=new Set(r.map(n=>n.port));for(let n of[...b.keys()])o.has(n)||b.delete(n);for(let n of[...d])o.has(n)||d.delete(n);for(let n of[...p])o.has(n)||p.delete(n);for(let n of[...S])o.has(n)||S.delete(n);let t=[],s=[];for(let{port:n,pid:u}of r){let c=b.get(n);if(c&&ee(c,u)){c.result&&t.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&&t.push(u)});let i=new Map;for(let{port:n,pid:u}of r)u>0&&i.set(n,u);await Promise.all(t.map(async n=>{let u=i.get(n.port);if(!u)return;n.pid=u;let c=await G(u);c&&(n.cwd=c)}));let a=new Set(i.values());for(let n of[...y.keys()])a.has(n)||y.delete(n);return t.filter(n=>!q(n))}export{M as a,te as b,U as c,oe as d,V as e,fe as f};
|