sootsim 0.1.277 → 0.1.279
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 +5 -0
- package/detox/index.ts +10 -1
- package/dist-cli/bin.js +4 -4
- package/dist-cli/chunks/{agent-PQDKNOTV.js → agent-H5ERFFC5.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-K6CABYXW.js → agent-wrapper-64X727WI.js} +2 -2
- package/dist-cli/chunks/{app-fonts-KN5MSMYV.js → app-fonts-E6LPMGZ3.js} +2 -2
- package/dist-cli/chunks/{assert-GUPFV6IJ.js → assert-I4VVJPO5.js} +2 -2
- package/dist-cli/chunks/{auth-5XC6DVCU.js → auth-E5GZB6QZ.js} +2 -2
- package/dist-cli/chunks/beta-2X6QCFMD.js +2 -0
- package/dist-cli/chunks/{camera-PZ2OBBRX.js → camera-VGBVN6DS.js} +2 -2
- package/dist-cli/chunks/{chunk-CWEK5QNW.js → chunk-2WLOJJ5X.js} +2 -2
- package/dist-cli/chunks/{chunk-GXSLKPR7.js → chunk-4IHZPNWS.js} +3 -3
- package/dist-cli/chunks/{chunk-UMLDNNPZ.js → chunk-4O3WVDTB.js} +1 -1
- package/dist-cli/chunks/{chunk-VD2M5QYJ.js → chunk-5CIUH3X4.js} +1 -1
- package/dist-cli/chunks/{chunk-C3WRCJD2.js → chunk-5PRQPJNM.js} +3 -3
- package/dist-cli/chunks/{chunk-LB3RYIGF.js → chunk-5QSYOKLY.js} +2 -2
- package/dist-cli/chunks/{chunk-YAKW2UEX.js → chunk-7FPRE55K.js} +2 -2
- package/dist-cli/chunks/{chunk-CBCJ4AQI.js → chunk-7HY4FE7U.js} +1 -1
- package/dist-cli/chunks/{chunk-KKOFAS26.js → chunk-A2J7SXX3.js} +2 -2
- package/dist-cli/chunks/{chunk-YGW7PHH7.js → chunk-BEWRATIO.js} +2 -2
- package/dist-cli/chunks/{chunk-7CUTFN2B.js → chunk-DSNAAOVP.js} +2 -2
- package/dist-cli/chunks/{chunk-2PAP54WQ.js → chunk-EK2TUEDC.js} +1 -1
- package/dist-cli/chunks/{chunk-BK6ZOIKJ.js → chunk-F2ZR2DRV.js} +6 -6
- package/dist-cli/chunks/{chunk-7O7CMNJZ.js → chunk-GKHVITBS.js} +1 -1
- package/dist-cli/chunks/{chunk-DS4BEICQ.js → chunk-GLEBBDJM.js} +2 -2
- package/dist-cli/chunks/{chunk-D6JRMDNG.js → chunk-GMGIWXFB.js} +2 -2
- package/dist-cli/chunks/{chunk-BZKIFVVT.js → chunk-HCPEYAQN.js} +1 -1
- package/dist-cli/chunks/{chunk-L4QENHJZ.js → chunk-HKAG5BPE.js} +2 -2
- package/dist-cli/chunks/chunk-IH3D7E76.js +1 -0
- package/dist-cli/chunks/{chunk-WEFETSZ3.js → chunk-JMJFMOLR.js} +1 -1
- package/dist-cli/chunks/{chunk-EZ3NRNO4.js → chunk-JN5O6EEW.js} +1 -1
- package/dist-cli/chunks/{chunk-ESGHJ7B5.js → chunk-L3LQYO72.js} +2 -2
- package/dist-cli/chunks/{chunk-GFZL5QCF.js → chunk-LZCDA666.js} +2 -2
- package/dist-cli/chunks/{chunk-QMK5JX65.js → chunk-NEOE46RK.js} +3 -3
- package/dist-cli/chunks/{chunk-X2Q3OBZV.js → chunk-NYAN6XIZ.js} +1 -1
- package/dist-cli/chunks/{chunk-HFAYH7V2.js → chunk-O4NYHLZC.js} +2 -2
- package/dist-cli/chunks/{chunk-A7KAYBO5.js → chunk-O75DZMED.js} +1 -1
- package/dist-cli/chunks/{chunk-PVZMRKBA.js → chunk-P4AUH3VR.js} +1 -1
- package/dist-cli/chunks/{chunk-KAYYW6JY.js → chunk-PBJLDS4H.js} +1 -1
- package/dist-cli/chunks/{chunk-542VPKWI.js → chunk-POPDJ3IP.js} +2 -2
- package/dist-cli/chunks/{chunk-SZU6CQ5X.js → chunk-QBJ4RTXC.js} +1 -1
- package/dist-cli/chunks/{chunk-C6Q256CQ.js → chunk-QUYFCRSJ.js} +1 -1
- package/dist-cli/chunks/{chunk-QSW4OLNL.js → chunk-R24YKQMF.js} +1 -1
- package/dist-cli/chunks/{chunk-BRCINMNJ.js → chunk-RWY5DV52.js} +2 -2
- package/dist-cli/chunks/{chunk-IZ53TCEP.js → chunk-S6LOX2QK.js} +2 -2
- package/dist-cli/chunks/{chunk-AHPOA4WU.js → chunk-SFXFVFVZ.js} +3 -3
- package/dist-cli/chunks/{chunk-N7X5E65B.js → chunk-TMRN6EDJ.js} +1 -1
- package/dist-cli/chunks/{chunk-24X7V5TX.js → chunk-Y2KPDH63.js} +2 -2
- package/dist-cli/chunks/{chunk-YBY4VBXN.js → chunk-YGY6D6FY.js} +4 -4
- package/dist-cli/chunks/{chunk-5XEGGPXT.js → chunk-YQBEMAQG.js} +2 -2
- package/dist-cli/chunks/{chunk-FJ7BTTM4.js → chunk-ZGFU5I3E.js} +2 -2
- package/dist-cli/chunks/{chunk-UQODWZKG.js → chunk-ZIT4O42R.js} +2 -2
- package/dist-cli/chunks/{chunk-7ZCITH7N.js → chunk-ZLDIIFSJ.js} +1 -1
- package/dist-cli/chunks/{chunk-UN526KU5.js → chunk-ZM3XRHJY.js} +1 -1
- package/dist-cli/chunks/cli-version-RYYIVGUP.js +2 -0
- package/dist-cli/chunks/{compat-HAWBHLWJ.js → compat-Y72EMDFM.js} +3 -3
- package/dist-cli/chunks/{config-FMJRHQZB.js → config-IAHJWFL6.js} +2 -2
- package/dist-cli/chunks/{control-LKACBZ43.js → control-ATTJDQQV.js} +2 -2
- package/dist-cli/chunks/daemon-PB2UGELR.js +2 -0
- package/dist-cli/chunks/{debug-7OWQA4DQ.js → debug-VCSAJRDD.js} +3 -3
- package/dist-cli/chunks/{desktop-LQRIEWDV.js → desktop-NQIBCWFF.js} +3 -3
- package/dist-cli/chunks/{detox-VKLPAZ4C.js → detox-DDESD2SF.js} +2 -2
- package/dist-cli/chunks/{device-7RPH2OQH.js → device-3K23A2RW.js} +2 -2
- package/dist-cli/chunks/{diagnose-CCZGZ4B2.js → diagnose-2WG7VQWA.js} +2 -2
- package/dist-cli/chunks/drivers-X4RAFUNH.js +2 -0
- package/dist-cli/chunks/{film-4H6D2JL5.js → film-LZSGGWRL.js} +3 -3
- package/dist-cli/chunks/flow-CWNVNLKS.js +2 -0
- package/dist-cli/chunks/help-DYWNRSW6.js +2 -0
- package/dist-cli/chunks/{hidden-runtime-alias-2GIUUD7E.js → hidden-runtime-alias-P5K5MPOZ.js} +2 -2
- package/dist-cli/chunks/{home-paths-CXYL3NFQ.js → home-paths-XDGLL6FZ.js} +2 -2
- package/dist-cli/chunks/inspect-5RS2N5HD.js +2 -0
- package/dist-cli/chunks/install-desktop-DWW656NS.js +2 -0
- package/dist-cli/chunks/{login-KMOEWDV6.js → login-K4KM3FDX.js} +4 -4
- package/dist-cli/chunks/{logout-XWJMGGUU.js → logout-U5TCALQR.js} +2 -2
- package/dist-cli/chunks/{maestro-4EIARJ3S.js → maestro-3P3IMOO3.js} +3 -3
- package/dist-cli/chunks/{maestro-generate-VH477MZO.js → maestro-generate-CKNSAPNX.js} +3 -3
- package/dist-cli/chunks/{mode-YUZNL4P3.js → mode-EOFWHBTF.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-3JJHBOLE.js +2 -0
- package/dist-cli/chunks/{perf-732D7HVV.js → perf-QBEP6PGF.js} +2 -2
- package/dist-cli/chunks/{record-446A6JFA.js → record-YCWZ7X2N.js} +3 -3
- package/dist-cli/chunks/runtime-IPPKWABG.js +2 -0
- package/dist-cli/chunks/{screenshot-command-J52BKVGN.js → screenshot-command-Z7ZFFFFI.js} +3 -3
- package/dist-cli/chunks/{screenshots-capture-VFXZIID6.js → screenshots-capture-2QFGWQXK.js} +2 -2
- package/dist-cli/chunks/{serve-EYOABWCZ.js → serve-C46LOAWR.js} +14 -14
- package/dist-cli/chunks/{setup-NO3KEWNF.js → setup-UKMIUCHR.js} +3 -3
- package/dist-cli/chunks/{skills-IR2PBNGM.js → skills-VFN2RRT3.js} +2 -2
- package/dist-cli/chunks/{storage-ZAMM6TX4.js → storage-UOYMJ4XI.js} +2 -2
- package/dist-cli/chunks/store-W4OBL3E2.js +2 -0
- package/dist-cli/chunks/telemetry-FEIMOEK3.js +2 -0
- package/dist-cli/chunks/{timeline-4UYV2NXG.js → timeline-Y575NBHS.js} +2 -2
- package/dist-cli/chunks/{upgrade-EME3JYHO.js → upgrade-XTD56L7Q.js} +2 -2
- package/dist-cli/chunks/upload-6FOMKTP6.js +2 -0
- package/dist-cli/chunks/{version-4ESSNY6X.js → version-V5EG7ZS4.js} +2 -2
- package/dist-cli/chunks/web-R6QOOAD4.js +2 -0
- package/dist-cli/chunks/{what-happened-JRDFGSYS.js → what-happened-PMD4CHS3.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 +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 +11 -2
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +28 -14
- 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 +1 -1
- package/dist-lib/sdk.cjs +4 -1
- package/dist-lib/sdk.mjs +4 -1
- package/dist-lib/skills.cjs +168 -23
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/skills/sootsim-debug/SKILL.md +1 -2
- package/skills/sootsim-setup/SKILL.md +2 -2
- package/src/host/bridge-host.ts +33 -18
- package/dist-cli/chunks/beta-RLGL67X2.js +0 -2
- package/dist-cli/chunks/chunk-P77AGQWO.js +0 -1
- package/dist-cli/chunks/cli-version-DUPRL2HF.js +0 -2
- package/dist-cli/chunks/daemon-DOMHEOIZ.js +0 -2
- package/dist-cli/chunks/drivers-LIEPQUQP.js +0 -2
- package/dist-cli/chunks/flow-K6CDVL6R.js +0 -2
- package/dist-cli/chunks/help-AYW3UBO6.js +0 -2
- package/dist-cli/chunks/inspect-ZYXAJC3I.js +0 -2
- package/dist-cli/chunks/install-desktop-5RHPDNZN.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-DD7SUT2X.js +0 -2
- package/dist-cli/chunks/runtime-CCCISJXE.js +0 -2
- package/dist-cli/chunks/store-IW6RV5TY.js +0 -2
- package/dist-cli/chunks/telemetry-I64MRQAZ.js +0 -2
- package/dist-cli/chunks/upload-ALD2GD4T.js +0 -2
- package/dist-cli/chunks/web-EJFL3SD3.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{C as N,D as F,F as y,Q as T,R as b,S}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.279 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{C as N,D as F,F as y,Q as T,R as b,S}from"./chunk-NEOE46RK.js";import{g as A,i as _}from"./chunk-F2ZR2DRV.js";import"./chunk-JN5O6EEW.js";import{c as k}from"./chunk-ZLDIIFSJ.js";import"./chunk-EK2TUEDC.js";import"./chunk-R24YKQMF.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=A(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,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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;
|
|
@@ -2291,7 +2291,16 @@ var device = {
|
|
|
2291
2291
|
},
|
|
2292
2292
|
async pressBack() {
|
|
2293
2293
|
if (device._platform !== "android") return;
|
|
2294
|
-
|
|
2294
|
+
const page = getPage();
|
|
2295
|
+
const dispatched = await page.evaluate(async () => {
|
|
2296
|
+
const goBack = window.SootSim?.bridges?.mainShell?.goBack;
|
|
2297
|
+
if (typeof goBack !== "function") return false;
|
|
2298
|
+
return await goBack() !== false;
|
|
2299
|
+
});
|
|
2300
|
+
if (!dispatched) throw new Error("sootsim Android back bridge is not installed");
|
|
2301
|
+
if (_synchronizationEnabled) {
|
|
2302
|
+
await waitForSootsimIdle(page);
|
|
2303
|
+
}
|
|
2295
2304
|
},
|
|
2296
2305
|
// raw coordinate tap, bypassing the element-based visibility/hit-test path.
|
|
2297
2306
|
// mirrors detox 20.x device.tap({ x, y }) on real iOS — used when the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.279 | (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/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.279 | (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.279 | (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;
|
|
@@ -4780,26 +4780,40 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
|
|
|
4780
4780
|
if (sim?.ws.readyState === import_ws2.WebSocket.OPEN) return sim;
|
|
4781
4781
|
return null;
|
|
4782
4782
|
}
|
|
4783
|
-
const
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
return pagelessFallback;
|
|
4783
|
+
const candidates = this.getDefaultSimCandidates();
|
|
4784
|
+
return candidates.find((sim) => sim.id === this.primarySimId) ?? candidates[0] ?? null;
|
|
4785
|
+
}
|
|
4786
|
+
getDefaultSimCandidates() {
|
|
4787
|
+
const open = Array.from(this.sims.values()).filter(
|
|
4788
|
+
(sim) => sim.ws.readyState === import_ws2.WebSocket.OPEN
|
|
4789
|
+
);
|
|
4790
|
+
const registered = open.filter((sim) => sim.url);
|
|
4791
|
+
return registered.length > 0 ? registered : open;
|
|
4793
4792
|
}
|
|
4794
4793
|
async waitForSim(simId, options = {}) {
|
|
4795
4794
|
const attempts = options.attempts ?? 10;
|
|
4796
4795
|
const intervalMs = options.intervalMs ?? 200;
|
|
4797
4796
|
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
4798
|
-
|
|
4799
|
-
|
|
4797
|
+
if (!simId) {
|
|
4798
|
+
const candidates = this.getDefaultSimCandidates();
|
|
4799
|
+
if (candidates.length > 1) {
|
|
4800
|
+
throw new Error(
|
|
4801
|
+
`multiple sims are connected: ${candidates.map((sim) => sim.id).join(", ")}; run \`sootsim use <sim>\` or pass \`--sim <sim>\``
|
|
4802
|
+
);
|
|
4803
|
+
}
|
|
4804
|
+
const candidate = candidates[0];
|
|
4805
|
+
if (candidate) return candidate;
|
|
4806
|
+
} else {
|
|
4807
|
+
const sim = this.getOpenSim(simId);
|
|
4808
|
+
if (sim) return sim;
|
|
4809
|
+
}
|
|
4800
4810
|
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
4801
4811
|
}
|
|
4802
|
-
throw new Error(
|
|
4812
|
+
if (!simId) throw new Error("no sim connected");
|
|
4813
|
+
const openSimIds = this.getDefaultSimCandidates().map((sim) => sim.id);
|
|
4814
|
+
throw new Error(
|
|
4815
|
+
`no sim connected with id ${simId}` + (openSimIds.length > 0 ? `; connected sims: ${openSimIds.join(", ")}` : "")
|
|
4816
|
+
);
|
|
4803
4817
|
}
|
|
4804
4818
|
shouldPromoteSim(sim) {
|
|
4805
4819
|
const current = this.primarySimId ? this.sims.get(this.primarySimId) : null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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.279 | (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/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.279 | (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;
|
|
@@ -1003,6 +1003,9 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
1003
1003
|
bridgeError = "";
|
|
1004
1004
|
} catch (error) {
|
|
1005
1005
|
bridgeError = error instanceof Error ? error.message : String(error);
|
|
1006
|
+
if (bridgeError.startsWith("multiple sims are connected:") || bridgeError.startsWith("saved sim ")) {
|
|
1007
|
+
throw error;
|
|
1008
|
+
}
|
|
1006
1009
|
}
|
|
1007
1010
|
const now = Date.now();
|
|
1008
1011
|
const status = {
|
package/dist-lib/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.279 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// cli/commands/inspect/core.ts
|
|
4
4
|
function resolveMaxMsFlag(args, fallbackMs) {
|
|
@@ -912,6 +912,9 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
912
912
|
bridgeError = "";
|
|
913
913
|
} catch (error) {
|
|
914
914
|
bridgeError = error instanceof Error ? error.message : String(error);
|
|
915
|
+
if (bridgeError.startsWith("multiple sims are connected:") || bridgeError.startsWith("saved sim ")) {
|
|
916
|
+
throw error;
|
|
917
|
+
}
|
|
915
918
|
}
|
|
916
919
|
const now = Date.now();
|
|
917
920
|
const status = {
|
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.279 | (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;
|
|
@@ -1446,6 +1446,19 @@ var init_registry = __esm({
|
|
|
1446
1446
|
}
|
|
1447
1447
|
]
|
|
1448
1448
|
},
|
|
1449
|
+
"sift-react-native": {
|
|
1450
|
+
category: "Analytics",
|
|
1451
|
+
stubType: "native",
|
|
1452
|
+
versions: [
|
|
1453
|
+
{
|
|
1454
|
+
range: ">=0.1.0",
|
|
1455
|
+
coverage: 0.95,
|
|
1456
|
+
note: "native-seam only. Upstream JavaScript runs from the bundle; Sift configuration and identity methods are accepted without collecting or delivering fraud telemetry.",
|
|
1457
|
+
working: "setSiftConfig, setUserId, unsetUserId, upload, setPageName",
|
|
1458
|
+
missing: "no Sift device fingerprint collection, lifecycle collection, or backend delivery; intentionally absent for the development simulator"
|
|
1459
|
+
}
|
|
1460
|
+
]
|
|
1461
|
+
},
|
|
1449
1462
|
"@react-native-clipboard/clipboard": {
|
|
1450
1463
|
category: "Essentials",
|
|
1451
1464
|
stubType: "native",
|
|
@@ -1888,6 +1901,19 @@ var init_registry = __esm({
|
|
|
1888
1901
|
}
|
|
1889
1902
|
]
|
|
1890
1903
|
},
|
|
1904
|
+
"react-native-image-size": {
|
|
1905
|
+
category: "Image",
|
|
1906
|
+
stubType: "native",
|
|
1907
|
+
versions: [
|
|
1908
|
+
{
|
|
1909
|
+
range: ">=1.0.0",
|
|
1910
|
+
coverage: 0.95,
|
|
1911
|
+
note: "native-seam: the real package runs from the bundle and RNImageSize resolves dimensions through the engine image decoder",
|
|
1912
|
+
working: "getSize for browser-decodable remote, file, blob, and data image URIs; decoded dimensions include browser-applied EXIF orientation",
|
|
1913
|
+
missing: "the explicit Android rotation field is normalized to zero after browser decoding applies orientation"
|
|
1914
|
+
}
|
|
1915
|
+
]
|
|
1916
|
+
},
|
|
1891
1917
|
"react-native-config": {
|
|
1892
1918
|
category: "Device & Platform",
|
|
1893
1919
|
stubType: "native",
|
|
@@ -5638,10 +5664,10 @@ var init_registry = __esm({
|
|
|
5638
5664
|
versions: [
|
|
5639
5665
|
{
|
|
5640
5666
|
range: ">=0.7.0",
|
|
5641
|
-
coverage: 0.
|
|
5642
|
-
note: "native-seam only
|
|
5643
|
-
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",
|
|
5644
|
-
missing: "synchronous RSA publicEncrypt/publicDecrypt/privateDecrypt, createSign/createVerify,
|
|
5667
|
+
coverage: 0.9,
|
|
5668
|
+
note: "native-seam only. Real react-native-quick-crypto JS runs from the bundle against either a SootSim-provided global.__QuickCryptoProxy or registered Nitro hybrid objects. The seam implements random, hash/HMAC, PBKDF2, AES-CBC/CTR/GCM, AES secret-key handles, and asynchronous RSA-OAEP WebCrypto key generation and encryption.",
|
|
5669
|
+
working: "upstream package JS and export surface, global __QuickCryptoProxy and Nitro hybrid-object 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, RSA-OAEP subtle.generateKey plus JWK export/import and encrypt/decrypt",
|
|
5670
|
+
missing: "synchronous RSA key generation and publicEncrypt/publicDecrypt/privateDecrypt, createSign/createVerify, ECDH WebCrypto key paths, general asymmetric DER import, AES-KW, and legacy ciphers such as DES/RC4/ChaCha20."
|
|
5645
5671
|
}
|
|
5646
5672
|
]
|
|
5647
5673
|
},
|
|
@@ -5775,9 +5801,49 @@ var init_registry = __esm({
|
|
|
5775
5801
|
versions: [
|
|
5776
5802
|
{
|
|
5777
5803
|
range: ">=15.0.0",
|
|
5778
|
-
coverage:
|
|
5779
|
-
note:
|
|
5780
|
-
|
|
5804
|
+
coverage: 0.9,
|
|
5805
|
+
note: "native-seam only. upstream GLView and context APIs run from the guest bundle over the browser WebGL2 implementation in the tenant worker",
|
|
5806
|
+
working: "GLView context creation, WebGL2 commands, endFrameEXP presentation, view resizing, headless createContextAsync and destroyContextAsync, full-canvas snapshots, and @react-three/fiber native Canvas rendering",
|
|
5807
|
+
missing: "camera textures, native object destruction, experimental worklet contexts, asset-object texture uploads, and exact native MSAA sample counts"
|
|
5808
|
+
}
|
|
5809
|
+
]
|
|
5810
|
+
},
|
|
5811
|
+
three: {
|
|
5812
|
+
category: "UI Components",
|
|
5813
|
+
stubType: "works",
|
|
5814
|
+
versions: [
|
|
5815
|
+
{
|
|
5816
|
+
range: ">=0.156.0",
|
|
5817
|
+
coverage: 0.96,
|
|
5818
|
+
note: "real pure-JavaScript package runs from the guest bundle; WebGLRenderer uses the browser WebGL2 context supplied by expo-gl",
|
|
5819
|
+
working: "scenes, cameras, geometry, lights, standard materials, shaders, animation, and WebGLRenderer",
|
|
5820
|
+
missing: "browser DOM integrations and loaders that require unsupported expo-gl asset-object texture uploads"
|
|
5821
|
+
}
|
|
5822
|
+
]
|
|
5823
|
+
},
|
|
5824
|
+
"@react-three/fiber": {
|
|
5825
|
+
category: "UI Components",
|
|
5826
|
+
stubType: "works",
|
|
5827
|
+
versions: [
|
|
5828
|
+
{
|
|
5829
|
+
range: ">=9.0.0",
|
|
5830
|
+
coverage: 0.93,
|
|
5831
|
+
note: "real native entry and reconciler run from the guest bundle; Canvas mounts upstream expo-gl and presents each useFrame render through endFrameEXP",
|
|
5832
|
+
working: "native Canvas, declarative Three elements, useFrame, useThree, lights, materials, cameras, events, and continuous animation",
|
|
5833
|
+
missing: "asset-backed texture loading and browser-only DOM event integrations"
|
|
5834
|
+
}
|
|
5835
|
+
]
|
|
5836
|
+
},
|
|
5837
|
+
"expo-three": {
|
|
5838
|
+
category: "UI Components",
|
|
5839
|
+
stubType: "works",
|
|
5840
|
+
versions: [
|
|
5841
|
+
{
|
|
5842
|
+
range: ">=8.0.0",
|
|
5843
|
+
coverage: 0.75,
|
|
5844
|
+
note: "real pure-JavaScript package runs from the guest bundle on the expo-gl WebGL2 context",
|
|
5845
|
+
working: "Three renderer construction and helpers that use plain WebGL resources",
|
|
5846
|
+
missing: "asset and texture helpers that depend on expo-gl asset-object uploads, camera textures, or browser DOM image elements"
|
|
5781
5847
|
}
|
|
5782
5848
|
]
|
|
5783
5849
|
},
|
|
@@ -7669,6 +7735,44 @@ var init_registry = __esm({
|
|
|
7669
7735
|
}
|
|
7670
7736
|
]
|
|
7671
7737
|
},
|
|
7738
|
+
"react-native-key-command": {
|
|
7739
|
+
category: "Keyboard",
|
|
7740
|
+
stubType: "native",
|
|
7741
|
+
versions: [
|
|
7742
|
+
{
|
|
7743
|
+
range: ">=1.0.0",
|
|
7744
|
+
coverage: 1,
|
|
7745
|
+
note: "native-seam: the real package validation and NativeEventEmitter wrapper run from the bundle; KeyCommand mirrors iOS and Android constants, registration, unregistration, and hardware-key delivery",
|
|
7746
|
+
working: "platform-native modifier and input constants, registerKeyCommands, unregisterKeyCommands, onKeyCommand events for registered hardware shortcuts"
|
|
7747
|
+
}
|
|
7748
|
+
]
|
|
7749
|
+
},
|
|
7750
|
+
"@expensify/react-native-background-task": {
|
|
7751
|
+
category: "Device & Platform",
|
|
7752
|
+
stubType: "native",
|
|
7753
|
+
versions: [
|
|
7754
|
+
{
|
|
7755
|
+
range: ">=0.0.0",
|
|
7756
|
+
coverage: 0.85,
|
|
7757
|
+
note: "native-seam: the real task registry and NativeEventEmitter run from the bundle; Android job registration succeeds without inventing browser background execution",
|
|
7758
|
+
working: "defineTask registration, listener lifecycle, foreground JavaScript task registry",
|
|
7759
|
+
missing: "Android JobScheduler execution while the browser tab is suspended or closed"
|
|
7760
|
+
}
|
|
7761
|
+
]
|
|
7762
|
+
},
|
|
7763
|
+
"group-ib-fp": {
|
|
7764
|
+
category: "Analytics",
|
|
7765
|
+
stubType: "native",
|
|
7766
|
+
versions: [
|
|
7767
|
+
{
|
|
7768
|
+
range: ">=3.0.0",
|
|
7769
|
+
coverage: 0.95,
|
|
7770
|
+
note: "native-seam: the real FP class, enums, validation, and event subscription surface run from the bundle; native configuration calls complete without collecting or delivering fraud telemetry",
|
|
7771
|
+
working: "customer, URL, header, key, login, session, attribute, capability, run/stop, cookie, and listener APIs with Android callback shapes",
|
|
7772
|
+
missing: "device fingerprint collection, Group-IB network delivery, and native session events"
|
|
7773
|
+
}
|
|
7774
|
+
]
|
|
7775
|
+
},
|
|
7672
7776
|
"@callstack/react-native-brownfield": {
|
|
7673
7777
|
category: "Device & Platform",
|
|
7674
7778
|
stubType: "native",
|
|
@@ -9111,6 +9215,32 @@ var init_registry = __esm({
|
|
|
9111
9215
|
}
|
|
9112
9216
|
]
|
|
9113
9217
|
},
|
|
9218
|
+
"react-native-quick-actions": {
|
|
9219
|
+
category: "Device & Platform",
|
|
9220
|
+
stubType: "native",
|
|
9221
|
+
versions: [
|
|
9222
|
+
{
|
|
9223
|
+
range: ">=0.3.0",
|
|
9224
|
+
coverage: 0.9,
|
|
9225
|
+
note: "native-seam only. Upstream Android and iOS JavaScript runs from the bundle; ReactAppShortcuts stores dynamic shortcut items in memory and starts with no launcher action.",
|
|
9226
|
+
working: "setShortcutItems, clearShortcutItems, popInitialAction, isSupported",
|
|
9227
|
+
missing: "no home-screen launcher shortcut or host OS launch event"
|
|
9228
|
+
}
|
|
9229
|
+
]
|
|
9230
|
+
},
|
|
9231
|
+
"@joplin/react-native-alarm-notification": {
|
|
9232
|
+
category: "Device & Platform",
|
|
9233
|
+
stubType: "native",
|
|
9234
|
+
versions: [
|
|
9235
|
+
{
|
|
9236
|
+
range: ">=3.7.0",
|
|
9237
|
+
coverage: 0.8,
|
|
9238
|
+
note: "native-seam only. Upstream JavaScript runs from the bundle; RNAlarmNotification stores scheduled alarm records in memory and reports no notification-launch payload.",
|
|
9239
|
+
working: "scheduleAlarm, deleteAlarm, deleteRepeatingAlarm, getScheduledAlarms, getAlarmInfo, listener and permission methods",
|
|
9240
|
+
missing: "no host OS alarm scheduling, notification delivery, sound, or notification-launch events"
|
|
9241
|
+
}
|
|
9242
|
+
]
|
|
9243
|
+
},
|
|
9114
9244
|
"@rn-org/react-native-shortcuts": {
|
|
9115
9245
|
category: "Device & Platform",
|
|
9116
9246
|
stubType: "native",
|
|
@@ -15349,26 +15479,40 @@ var init_bridge_host = __esm({
|
|
|
15349
15479
|
if (sim?.ws.readyState === import_ws2.WebSocket.OPEN) return sim;
|
|
15350
15480
|
return null;
|
|
15351
15481
|
}
|
|
15352
|
-
const
|
|
15353
|
-
|
|
15354
|
-
|
|
15355
|
-
|
|
15356
|
-
|
|
15357
|
-
|
|
15358
|
-
|
|
15359
|
-
|
|
15360
|
-
|
|
15361
|
-
return pagelessFallback;
|
|
15482
|
+
const candidates = this.getDefaultSimCandidates();
|
|
15483
|
+
return candidates.find((sim) => sim.id === this.primarySimId) ?? candidates[0] ?? null;
|
|
15484
|
+
}
|
|
15485
|
+
getDefaultSimCandidates() {
|
|
15486
|
+
const open = Array.from(this.sims.values()).filter(
|
|
15487
|
+
(sim) => sim.ws.readyState === import_ws2.WebSocket.OPEN
|
|
15488
|
+
);
|
|
15489
|
+
const registered = open.filter((sim) => sim.url);
|
|
15490
|
+
return registered.length > 0 ? registered : open;
|
|
15362
15491
|
}
|
|
15363
15492
|
async waitForSim(simId, options = {}) {
|
|
15364
15493
|
const attempts = options.attempts ?? 10;
|
|
15365
15494
|
const intervalMs = options.intervalMs ?? 200;
|
|
15366
15495
|
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
15367
|
-
|
|
15368
|
-
|
|
15496
|
+
if (!simId) {
|
|
15497
|
+
const candidates = this.getDefaultSimCandidates();
|
|
15498
|
+
if (candidates.length > 1) {
|
|
15499
|
+
throw new Error(
|
|
15500
|
+
`multiple sims are connected: ${candidates.map((sim) => sim.id).join(", ")}; run \`sootsim use <sim>\` or pass \`--sim <sim>\``
|
|
15501
|
+
);
|
|
15502
|
+
}
|
|
15503
|
+
const candidate = candidates[0];
|
|
15504
|
+
if (candidate) return candidate;
|
|
15505
|
+
} else {
|
|
15506
|
+
const sim = this.getOpenSim(simId);
|
|
15507
|
+
if (sim) return sim;
|
|
15508
|
+
}
|
|
15369
15509
|
await new Promise((resolve5) => setTimeout(resolve5, intervalMs));
|
|
15370
15510
|
}
|
|
15371
|
-
throw new Error(
|
|
15511
|
+
if (!simId) throw new Error("no sim connected");
|
|
15512
|
+
const openSimIds = this.getDefaultSimCandidates().map((sim) => sim.id);
|
|
15513
|
+
throw new Error(
|
|
15514
|
+
`no sim connected with id ${simId}` + (openSimIds.length > 0 ? `; connected sims: ${openSimIds.join(", ")}` : "")
|
|
15515
|
+
);
|
|
15372
15516
|
}
|
|
15373
15517
|
shouldPromoteSim(sim) {
|
|
15374
15518
|
const current = this.primarySimId ? this.sims.get(this.primarySimId) : null;
|
|
@@ -16164,10 +16308,11 @@ function createBridge(wsPort, opts = {}) {
|
|
|
16164
16308
|
return await sendOnce(sentSimId);
|
|
16165
16309
|
} catch (error) {
|
|
16166
16310
|
const message = error instanceof Error ? error.message : String(error);
|
|
16167
|
-
|
|
16311
|
+
const missingSimMessage = `no sim connected with id ${sentSimId}`;
|
|
16312
|
+
if (opts.simIdSource !== "flag" && sentSimId && cmd.simId === void 0 && (message === missingSimMessage || message.startsWith(`${missingSimMessage};`))) {
|
|
16168
16313
|
clearCurrentSimId();
|
|
16169
16314
|
throw new Error(
|
|
16170
|
-
`saved sim ${sentSimId} is gone; run \`sootsim list\` and \`sootsim use <sim>\`, or open a fresh sim`
|
|
16315
|
+
`saved sim ${sentSimId} is gone${message.slice(missingSimMessage.length)}; run \`sootsim list\` and \`sootsim use <sim>\`, or open a fresh sim`
|
|
16171
16316
|
);
|
|
16172
16317
|
}
|
|
16173
16318
|
throw error;
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.279 | (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
|
@@ -62,8 +62,7 @@ regression test. a pile of ad-hoc logs helps no one and gets deleted.
|
|
|
62
62
|
changes, and duplicate strings. add `testID` during implementation and
|
|
63
63
|
query against it.
|
|
64
64
|
- **pin a sim once.** if more than one is live, an unpinned command
|
|
65
|
-
|
|
66
|
-
<id>` at the start of the workflow.
|
|
65
|
+
refuses to choose. run `sootsim use <id>` at the start of the workflow.
|
|
67
66
|
- **`debug eval` is an escape hatch.** if a top-level command feels
|
|
68
67
|
broken or missing, file an issue — every agent after you benefits from
|
|
69
68
|
a better CLI, not a pile of ad-hoc scripts.
|