sootsim 0.1.98 → 0.1.100
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-AV7UQHGA.js → agent-IHI4QVCT.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-5W2PDZZX.js → agent-wrapper-J3SFCHWU.js} +2 -2
- package/dist-cli/chunks/{assert-QCTKI4I6.js → assert-IHWRDRCN.js} +2 -2
- package/dist-cli/chunks/auto-bootstrap-OJENPHIU.js +2 -0
- package/dist-cli/chunks/beta-XO25YS7W.js +2 -0
- package/dist-cli/chunks/{chunk-3QFEGZJA.js → chunk-2DJDT4P6.js} +1 -1
- package/dist-cli/chunks/{chunk-RVEZYFCE.js → chunk-3RTZBFT2.js} +2 -2
- package/dist-cli/chunks/{chunk-PH4GQWKG.js → chunk-3SCTPMS3.js} +1 -1
- package/dist-cli/chunks/chunk-3WSRJ3IS.js +1 -0
- package/dist-cli/chunks/{chunk-SNP2YECI.js → chunk-4SNRHECV.js} +1 -1
- package/dist-cli/chunks/{chunk-V3VDLHQ6.js → chunk-4VPG2JAI.js} +2 -2
- package/dist-cli/chunks/{chunk-Z5VQYEPL.js → chunk-5U5R7ZOU.js} +3 -3
- package/dist-cli/chunks/{chunk-JE5YNG3L.js → chunk-7U3Y2LQF.js} +1 -1
- package/dist-cli/chunks/{chunk-BQR62XGM.js → chunk-7XKNIGWE.js} +1 -1
- package/dist-cli/chunks/{chunk-6UGXIH6X.js → chunk-AM6XIEBP.js} +2 -2
- package/dist-cli/chunks/{chunk-PZQVLWTL.js → chunk-ARVTV7TX.js} +2 -2
- package/dist-cli/chunks/{chunk-YVPVF26I.js → chunk-BJB5MAPA.js} +1 -1
- package/dist-cli/chunks/{chunk-55ZUACVB.js → chunk-D2P5DOLM.js} +2 -2
- package/dist-cli/chunks/{chunk-FNG7EEFU.js → chunk-D65BGRT4.js} +2 -2
- package/dist-cli/chunks/chunk-EB7ZU2F7.js +1 -0
- package/dist-cli/chunks/chunk-EDBI3C3H.js +3 -0
- package/dist-cli/chunks/{chunk-VAMD4BL3.js → chunk-FBZ72EP2.js} +3 -3
- package/dist-cli/chunks/{chunk-MGZKAJV6.js → chunk-FUVMA3W3.js} +2 -2
- package/dist-cli/chunks/chunk-FX5OQVZF.js +2 -0
- package/dist-cli/chunks/{chunk-36JO37LQ.js → chunk-GCTGL75H.js} +1 -1
- package/dist-cli/chunks/{chunk-I43WF32H.js → chunk-HESAL74D.js} +1 -1
- package/dist-cli/chunks/{chunk-ISIO4SR2.js → chunk-HIM7N2I4.js} +2 -2
- package/dist-cli/chunks/{chunk-DLENSNEY.js → chunk-HN372G6V.js} +2 -2
- package/dist-cli/chunks/chunk-HTOW7RUE.js +1 -0
- package/dist-cli/chunks/{chunk-JTBFEQH4.js → chunk-KIGPDM3N.js} +2 -2
- package/dist-cli/chunks/{chunk-RP7NLZ26.js → chunk-KWYURP3X.js} +2 -2
- package/dist-cli/chunks/{chunk-GFIXAGFA.js → chunk-L7KZAGC7.js} +1 -1
- package/dist-cli/chunks/{chunk-UHQCVRXY.js → chunk-LX4I5UEX.js} +1 -1
- package/dist-cli/chunks/{chunk-3RW36LEF.js → chunk-NAVGG73L.js} +2 -2
- package/dist-cli/chunks/{chunk-DZYZQCET.js → chunk-P3ZFFKWB.js} +2 -2
- package/dist-cli/chunks/{chunk-KJUP4MG5.js → chunk-PSIKEPYC.js} +1 -1
- package/dist-cli/chunks/{chunk-Q4OS7YTL.js → chunk-QLPJ2REG.js} +3 -3
- package/dist-cli/chunks/{chunk-ZCV4Z3DO.js → chunk-QN3P75BN.js} +2 -2
- package/dist-cli/chunks/{chunk-CLEO4DEV.js → chunk-RAUXILV6.js} +2 -2
- package/dist-cli/chunks/{chunk-ZIFZANWB.js → chunk-SMA4U4SN.js} +1 -1
- package/dist-cli/chunks/{chunk-LWUHOZLQ.js → chunk-TJGKOEL7.js} +1 -1
- package/dist-cli/chunks/{chunk-S5IHTZL6.js → chunk-UHVVPGZE.js} +2 -2
- package/dist-cli/chunks/{chunk-ZZKSTNCP.js → chunk-WCAAM5D7.js} +2 -2
- package/dist-cli/chunks/{chunk-L76C6UV4.js → chunk-WJ3P4M6A.js} +1 -1
- package/dist-cli/chunks/{chunk-F2WCFGRK.js → chunk-WVP7623R.js} +2 -2
- package/dist-cli/chunks/{chunk-5GQR5BJ7.js → chunk-X26FKQF6.js} +2 -2
- package/dist-cli/chunks/{chunk-J2XMTE4K.js → chunk-XECN7E4L.js} +2 -2
- package/dist-cli/chunks/chunk-XJCWISFN.js +2 -0
- package/dist-cli/chunks/{chunk-5WAGGDFQ.js → chunk-Z2E3X5BO.js} +1 -1
- package/dist-cli/chunks/cli-version-DE3VGKIV.js +2 -0
- package/dist-cli/chunks/{compat-NUHFYRSF.js → compat-GEIRUV4V.js} +3 -3
- package/dist-cli/chunks/{config-S6TVKOQJ.js → config-5ZNIDFL5.js} +2 -2
- package/dist-cli/chunks/{control-UZNJNYVG.js → control-44U3HT23.js} +2 -2
- package/dist-cli/chunks/{cpu-profile-XU4UXBGY.js → cpu-profile-35JXSKO3.js} +2 -2
- package/dist-cli/chunks/{daemon-SYFY7U2Q.js → daemon-2E7CZ5PW.js} +2 -2
- package/dist-cli/chunks/{debug-S2KZ7ZZ4.js → debug-GZBB5QT6.js} +3 -3
- package/dist-cli/chunks/{detox-F5FVX7BH.js → detox-5NIYNEKF.js} +2 -2
- package/dist-cli/chunks/{device-UKDPJDNQ.js → device-HXO4VI4A.js} +2 -2
- package/dist-cli/chunks/{diagnose-SHADVUWO.js → diagnose-F4IO2QBJ.js} +2 -2
- package/dist-cli/chunks/drivers-GZUHFOTU.js +2 -0
- package/dist-cli/chunks/{electron-WIZUNPGZ.js → electron-3H2ODKR6.js} +3 -3
- package/dist-cli/chunks/flow-J5RBQ5TH.js +2 -0
- package/dist-cli/chunks/help-FCCZ6SPA.js +2 -0
- package/dist-cli/chunks/{hints-ANBJHAN3.js → hints-EX4RQ57X.js} +2 -2
- package/dist-cli/chunks/{home-paths-OUI7LTGB.js → home-paths-5P2XXQPD.js} +2 -2
- package/dist-cli/chunks/{inspect-6AIEW43W.js → inspect-6VA7MMVR.js} +3 -3
- package/dist-cli/chunks/install-6LAFFIRU.js +2 -0
- package/dist-cli/chunks/{install-desktop-4AZ2JWLE.js → install-desktop-A36RSNCA.js} +3 -3
- package/dist-cli/chunks/{keys-XZX57JNB.js → keys-B33H3TEP.js} +2 -2
- package/dist-cli/chunks/{launch-RQZQV7UR.js → launch-NJ5VOFST.js} +3 -3
- package/dist-cli/chunks/{login-DW5NMQZP.js → login-5UNDUGQP.js} +4 -4
- package/dist-cli/chunks/{logout-ADR77ELR.js → logout-G6N46JQ4.js} +2 -2
- package/dist-cli/chunks/{maestro-SUVQXANM.js → maestro-S4OFNZZE.js} +2 -2
- package/dist-cli/chunks/{preview-CKCO2N4V.js → preview-2GABOQMB.js} +2 -2
- package/dist-cli/chunks/{profile-5DA3PCBY.js → profile-JA2OANOK.js} +2 -2
- package/dist-cli/chunks/{react-Z2RWJFRM.js → react-YAQHKPQU.js} +2 -2
- package/dist-cli/chunks/{record-CVEAYVH7.js → record-UB6UIVDK.js} +2 -2
- package/dist-cli/chunks/runtime-EKVSV2ZI.js +2 -0
- package/dist-cli/chunks/{runtime-delivery-KPATO3DV.js → runtime-delivery-I47RKJLR.js} +2 -2
- package/dist-cli/chunks/{screenshot-WVJT2TDY.js → screenshot-46DNOQRV.js} +2 -2
- package/dist-cli/chunks/{screenshot-mode-OLKM4SDV.js → screenshot-mode-3JK4255C.js} +2 -2
- package/dist-cli/chunks/{screenshots-FTRBR6KJ.js → screenshots-BZYGJIRD.js} +2 -2
- package/dist-cli/chunks/{server-JZOLCNYX.js → server-NO7KOZ7R.js} +10 -10
- package/dist-cli/chunks/setup-repo-XQOJE35X.js +2 -0
- package/dist-cli/chunks/{skills-JUTRDTBM.js → skills-UGDNBIVV.js} +2 -2
- package/dist-cli/chunks/{start-TFEX2AGE.js → start-WEYEJ3SF.js} +4 -4
- package/dist-cli/chunks/store-UVOP3NQH.js +2 -0
- package/dist-cli/chunks/telemetry-NYVUOK3R.js +2 -0
- package/dist-cli/chunks/{test-GDQFRLG5.js → test-NOSLQPAM.js} +3 -3
- package/dist-cli/chunks/{three-mode-KEJUXBNY.js → three-mode-UMAAVY4W.js} +2 -2
- package/dist-cli/chunks/{timeline-I6GKU236.js → timeline-M654GX5B.js} +2 -2
- package/dist-cli/chunks/{upgrade-5DN5DOY6.js → upgrade-D5HIWHMK.js} +2 -2
- package/dist-cli/chunks/upload-W5GGJLRL.js +2 -0
- package/dist-cli/chunks/{web-TWR5HOUF.js → web-DY43OP6K.js} +2 -2
- package/dist-cli/chunks/{what-happened-UY5JDEKR.js → what-happened-4RFHRMRL.js} +2 -2
- package/dist-cli/chunks/{whoami-6C56SNN6.js → whoami-7B2EJ3W4.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 +2 -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 +63 -3
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +1 -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/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/demo-app-registry.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/skills.cjs +61 -3
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/auth/shared-session.ts +3 -0
- package/src/bridge-constants.ts +77 -0
- package/src/vite-plugin.ts +7 -2
- package/dist-cli/chunks/auto-bootstrap-ZD2JO3X2.js +0 -2
- package/dist-cli/chunks/beta-LV2FJWCK.js +0 -2
- package/dist-cli/chunks/chunk-4IZWBEOU.js +0 -2
- package/dist-cli/chunks/chunk-4QCN4DMR.js +0 -1
- package/dist-cli/chunks/chunk-CBTPTUJA.js +0 -1
- package/dist-cli/chunks/chunk-ERDQVO6E.js +0 -3
- package/dist-cli/chunks/chunk-LSPJL5XI.js +0 -1
- package/dist-cli/chunks/chunk-POQEZLEI.js +0 -2
- package/dist-cli/chunks/cli-version-XZIL5X5T.js +0 -2
- package/dist-cli/chunks/drivers-WHUFSQK6.js +0 -2
- package/dist-cli/chunks/flow-L54IDEQT.js +0 -2
- package/dist-cli/chunks/help-ORII3NB6.js +0 -2
- package/dist-cli/chunks/install-TYZARIPO.js +0 -2
- package/dist-cli/chunks/runtime-DSZU6QQH.js +0 -2
- package/dist-cli/chunks/setup-repo-7EXOSCGC.js +0 -2
- package/dist-cli/chunks/store-7GCZMEN5.js +0 -2
- package/dist-cli/chunks/telemetry-FE3PJGFM.js +0 -2
- package/dist-cli/chunks/upload-WYMSDACQ.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{A as T,B as y,M as x,z as F}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.100 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{A as T,B as y,M as x,z as F}from"./chunk-SMA4U4SN.js";import{c as S,e as N}from"./chunk-AM6XIEBP.js";import{b as k}from"./chunk-7U3Y2LQF.js";import"./chunk-FX5OQVZF.js";import"./chunk-PSIKEPYC.js";import"./chunk-LX4I5UEX.js";function _(n){let e=[];for(let t=0;t<n.length;t++)if(n[t]==="--since"&&t+1<n.length){e.push(t,t+1);let s=n[t+1].trim(),l=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(l){let a=Number(l[1]),m=l[2]??"ms",$=m==="s"?a*1e3:m==="m"?a*6e4:a;return{since:Date.now()-$,consumed:e}}let o=Number(s);if(Number.isFinite(o)&&o>1e12)return{since:o,consumed:e}}return{consumed:e}}function K(n){let e=[];for(let t=0;t<n.length;t++)if(n[t]==="--kinds"&&t+1<n.length)return e.push(t,t+1),{kinds:n[t+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:e};return{consumed:e}}function O(n){let e=[];for(let t=0;t<n.length;t++)if(n[t]==="--limit"&&t+1<n.length){e.push(t,t+1);let s=Number(n[t+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:e}}return{consumed:e}}function j(n,e){if(e===null)return new Date(n).toLocaleTimeString();let t=(n-e)/1e3;return`${t>=0?"+":""}${t.toFixed(2)}s`}function B(n,e){switch(n){case"app-launch":return e.phase==="launch"?`launch ${e.appName??e.toAppId??""}`:`dismiss ${e.appName??e.fromAppId??""} \u2192 ${e.toAppId??""}`;case"toast":return`"${e.text??""}"${e.durationMs?` (${e.durationMs}ms)`:""}`;case"keyboard":return`${e.phase??"?"}${e.heightPx?` h=${e.heightPx}`:""}${e.mode?` ${e.mode}`:""}`;case"screen":return`${e.phase??"?"} ${e.name??e.activeName??""}`;case"route":return`${e.phase??"?"} ${e.path??e.pathname??""}`;case"alert":case"actionsheet":case"picker":return`${e.phase??"?"} ${e.title??e.message??""}`;case"notification":return`${e.title??""}${e.body?` \u2014 ${e.body}`:""}`;case"fetch":return`${e.method??"GET"} ${e.url??""}${e.status?` -> ${e.status}`:""}`;case"console":return`${e.level??"log"}: ${(e.message??"").toString().slice(0,120)}`;case"shell":return`${e.event??e.type??e.phase??""}`;case"scroll":return`${e.phase??"?"} ${e.target??""}`;case"gesture":return`${e.phase??"?"} ${e.type??""}`;case"text-input":return`${e.phase??"?"}${e.value!==void 0?` "${String(e.value).slice(0,40)}"`:""}`;case"layout":return`${e.kind??"?"} ${e.testID??e.type??""}${e.skipped?` skipped:${e.reason??"unknown"}`:""}`;case"react-commit":{let t=e.slowest;return`${e.fiberCount??"?"} fibers ${e.durationMs??"?"}ms${t?.displayName?` \xB7 ${t.displayName} ${t.durationMs??"?"}ms`:""}`}case"reanimated":case"animation":return`${e.kind??""} ${e.target??""}${e.durationMs?` ${e.durationMs}ms`:""}`}}function A(n,e){let t=j(n.t,e).padStart(8),s=n.context.padEnd(6),l=`[${n.kind}]`.padEnd(15),o="",a=n.data;return a&&typeof a=="object"&&(o=B(n.kind,a)),` ${t} ${s} ${l} ${o}`}function M(n){let e=[],t={label:"initial state",events:[],startedAt:n[0]?.t??null};e.push(t);for(let s of n)if(t.events.push(s),s.kind==="screen"||s.kind==="route"){let l=s.data,o=l?.phase;if(!o||o==="enter"||o==="appear"||o==="active"){let a=l?.name||l?.activeName||l?.path||l?.pathname||s.kind;e.length===1&&t.events.length===1?t.label=`${s.kind}: ${a}`:(t={label:`${s.kind}: ${a}`,events:[],startedAt:s.t},e.push(t))}}return e}async function J(n,e){let t=S(n,{port:e.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.100 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{d as i}from"./chunk-UHVVPGZE.js";import{d as n}from"./chunk-EDBI3C3H.js";import"./chunk-PSIKEPYC.js";import"./chunk-LX4I5UEX.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.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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;
|
|
@@ -84,6 +84,7 @@ function normalizeUser(input) {
|
|
|
84
84
|
name: typeof value.name === "string" ? value.name : void 0,
|
|
85
85
|
email: typeof value.email === "string" ? value.email : void 0,
|
|
86
86
|
image: typeof value.image === "string" ? value.image : void 0,
|
|
87
|
+
githubUsername: typeof value.githubUsername === "string" ? value.githubUsername : void 0,
|
|
87
88
|
teams: Array.isArray(value.teams) ? value.teams.map((team) => {
|
|
88
89
|
if (!team || typeof team !== "object") return null;
|
|
89
90
|
const t = team;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.100 | (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.100 | (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.100 | (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;
|
|
@@ -24,15 +24,75 @@ var bridge_constants_exports = {};
|
|
|
24
24
|
__export(bridge_constants_exports, {
|
|
25
25
|
DEFAULT_SOOTSIM_BRIDGE_PORT: () => DEFAULT_SOOTSIM_BRIDGE_PORT,
|
|
26
26
|
SOOTSIM_BRIDGE_SIM_CLOSE_CODE: () => SOOTSIM_BRIDGE_SIM_CLOSE_CODE,
|
|
27
|
-
SOOTSIM_BRIDGE_SIM_CLOSE_REASON: () => SOOTSIM_BRIDGE_SIM_CLOSE_REASON
|
|
27
|
+
SOOTSIM_BRIDGE_SIM_CLOSE_REASON: () => SOOTSIM_BRIDGE_SIM_CLOSE_REASON,
|
|
28
|
+
resolveSootsimBridgePort: () => resolveSootsimBridgePort,
|
|
29
|
+
resolveSootsimBridgePortForHttpPort: () => resolveSootsimBridgePortForHttpPort,
|
|
30
|
+
resolveSootsimBridgePortForRuntimeLocation: () => resolveSootsimBridgePortForRuntimeLocation
|
|
28
31
|
});
|
|
29
32
|
module.exports = __toCommonJS(bridge_constants_exports);
|
|
30
33
|
var DEFAULT_SOOTSIM_BRIDGE_PORT = 7668;
|
|
34
|
+
function parsePort(value) {
|
|
35
|
+
if (typeof value === "number") {
|
|
36
|
+
return Number.isInteger(value) && value > 0 ? value : null;
|
|
37
|
+
}
|
|
38
|
+
if (typeof value !== "string") return null;
|
|
39
|
+
const trimmed = value.trim();
|
|
40
|
+
if (!trimmed) return null;
|
|
41
|
+
const parsed = Number(trimmed);
|
|
42
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : null;
|
|
43
|
+
}
|
|
44
|
+
function parsePortOffset(value) {
|
|
45
|
+
const parsed = parsePort(value);
|
|
46
|
+
return parsed === null ? 0 : parsed;
|
|
47
|
+
}
|
|
48
|
+
function resolveSootsimBridgePort(input = {}) {
|
|
49
|
+
const explicitPort = parsePort(input.explicitPort);
|
|
50
|
+
if (explicitPort !== null) return explicitPort;
|
|
51
|
+
return DEFAULT_SOOTSIM_BRIDGE_PORT + parsePortOffset(input.portOffset);
|
|
52
|
+
}
|
|
53
|
+
function resolveSootsimBridgePortForHttpPort(input) {
|
|
54
|
+
const explicitPort = parsePort(input.explicitPort);
|
|
55
|
+
if (explicitPort !== null) return explicitPort;
|
|
56
|
+
const httpPort = parsePort(input.httpPort);
|
|
57
|
+
const portOffset = httpPort === null ? 0 : Math.max(0, httpPort - input.baseHttpPort);
|
|
58
|
+
return resolveSootsimBridgePort({ portOffset });
|
|
59
|
+
}
|
|
60
|
+
var LOCAL_DEV_HTTP_BASE_PORTS = [3e3, 5173];
|
|
61
|
+
var MAX_LOCAL_DEV_PORT_OFFSET = 2e3;
|
|
62
|
+
function parseHrefPort(value) {
|
|
63
|
+
if (typeof value !== "string" || !value.trim()) return null;
|
|
64
|
+
try {
|
|
65
|
+
return parsePort(new URL(value).port);
|
|
66
|
+
} catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function closestLocalDevBaseHttpPort(httpPort) {
|
|
71
|
+
let closest = null;
|
|
72
|
+
for (const basePort of LOCAL_DEV_HTTP_BASE_PORTS) {
|
|
73
|
+
const offset = httpPort - basePort;
|
|
74
|
+
if (offset < 0 || offset > MAX_LOCAL_DEV_PORT_OFFSET) continue;
|
|
75
|
+
if (!closest || offset < closest.offset) closest = { basePort, offset };
|
|
76
|
+
}
|
|
77
|
+
return closest?.basePort ?? null;
|
|
78
|
+
}
|
|
79
|
+
function resolveSootsimBridgePortForRuntimeLocation(input = {}) {
|
|
80
|
+
const explicitPort = parsePort(input.explicitPort);
|
|
81
|
+
if (explicitPort !== null) return explicitPort;
|
|
82
|
+
const httpPort = parsePort(input.httpPort) ?? parseHrefPort(input.href);
|
|
83
|
+
if (httpPort === null) return DEFAULT_SOOTSIM_BRIDGE_PORT;
|
|
84
|
+
const baseHttpPort = closestLocalDevBaseHttpPort(httpPort);
|
|
85
|
+
if (baseHttpPort === null) return DEFAULT_SOOTSIM_BRIDGE_PORT;
|
|
86
|
+
return resolveSootsimBridgePortForHttpPort({ httpPort, baseHttpPort });
|
|
87
|
+
}
|
|
31
88
|
var SOOTSIM_BRIDGE_SIM_CLOSE_CODE = 4001;
|
|
32
89
|
var SOOTSIM_BRIDGE_SIM_CLOSE_REASON = "sootsim close";
|
|
33
90
|
// Annotate the CommonJS export names for ESM import in node:
|
|
34
91
|
0 && (module.exports = {
|
|
35
92
|
DEFAULT_SOOTSIM_BRIDGE_PORT,
|
|
36
93
|
SOOTSIM_BRIDGE_SIM_CLOSE_CODE,
|
|
37
|
-
SOOTSIM_BRIDGE_SIM_CLOSE_REASON
|
|
94
|
+
SOOTSIM_BRIDGE_SIM_CLOSE_REASON,
|
|
95
|
+
resolveSootsimBridgePort,
|
|
96
|
+
resolveSootsimBridgePortForHttpPort,
|
|
97
|
+
resolveSootsimBridgePortForRuntimeLocation
|
|
38
98
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.100 | (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.100 | (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.100 | (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.100 | (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.100 | (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/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.100 | (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;
|
|
@@ -9495,13 +9495,70 @@ var bridge_constants_exports = {};
|
|
|
9495
9495
|
__export(bridge_constants_exports, {
|
|
9496
9496
|
DEFAULT_SOOTSIM_BRIDGE_PORT: () => DEFAULT_SOOTSIM_BRIDGE_PORT,
|
|
9497
9497
|
SOOTSIM_BRIDGE_SIM_CLOSE_CODE: () => SOOTSIM_BRIDGE_SIM_CLOSE_CODE,
|
|
9498
|
-
SOOTSIM_BRIDGE_SIM_CLOSE_REASON: () => SOOTSIM_BRIDGE_SIM_CLOSE_REASON
|
|
9498
|
+
SOOTSIM_BRIDGE_SIM_CLOSE_REASON: () => SOOTSIM_BRIDGE_SIM_CLOSE_REASON,
|
|
9499
|
+
resolveSootsimBridgePort: () => resolveSootsimBridgePort,
|
|
9500
|
+
resolveSootsimBridgePortForHttpPort: () => resolveSootsimBridgePortForHttpPort,
|
|
9501
|
+
resolveSootsimBridgePortForRuntimeLocation: () => resolveSootsimBridgePortForRuntimeLocation
|
|
9499
9502
|
});
|
|
9500
|
-
|
|
9503
|
+
function parsePort(value) {
|
|
9504
|
+
if (typeof value === "number") {
|
|
9505
|
+
return Number.isInteger(value) && value > 0 ? value : null;
|
|
9506
|
+
}
|
|
9507
|
+
if (typeof value !== "string") return null;
|
|
9508
|
+
const trimmed = value.trim();
|
|
9509
|
+
if (!trimmed) return null;
|
|
9510
|
+
const parsed = Number(trimmed);
|
|
9511
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : null;
|
|
9512
|
+
}
|
|
9513
|
+
function parsePortOffset(value) {
|
|
9514
|
+
const parsed = parsePort(value);
|
|
9515
|
+
return parsed === null ? 0 : parsed;
|
|
9516
|
+
}
|
|
9517
|
+
function resolveSootsimBridgePort(input = {}) {
|
|
9518
|
+
const explicitPort = parsePort(input.explicitPort);
|
|
9519
|
+
if (explicitPort !== null) return explicitPort;
|
|
9520
|
+
return DEFAULT_SOOTSIM_BRIDGE_PORT + parsePortOffset(input.portOffset);
|
|
9521
|
+
}
|
|
9522
|
+
function resolveSootsimBridgePortForHttpPort(input) {
|
|
9523
|
+
const explicitPort = parsePort(input.explicitPort);
|
|
9524
|
+
if (explicitPort !== null) return explicitPort;
|
|
9525
|
+
const httpPort = parsePort(input.httpPort);
|
|
9526
|
+
const portOffset = httpPort === null ? 0 : Math.max(0, httpPort - input.baseHttpPort);
|
|
9527
|
+
return resolveSootsimBridgePort({ portOffset });
|
|
9528
|
+
}
|
|
9529
|
+
function parseHrefPort(value) {
|
|
9530
|
+
if (typeof value !== "string" || !value.trim()) return null;
|
|
9531
|
+
try {
|
|
9532
|
+
return parsePort(new URL(value).port);
|
|
9533
|
+
} catch {
|
|
9534
|
+
return null;
|
|
9535
|
+
}
|
|
9536
|
+
}
|
|
9537
|
+
function closestLocalDevBaseHttpPort(httpPort) {
|
|
9538
|
+
let closest = null;
|
|
9539
|
+
for (const basePort of LOCAL_DEV_HTTP_BASE_PORTS) {
|
|
9540
|
+
const offset = httpPort - basePort;
|
|
9541
|
+
if (offset < 0 || offset > MAX_LOCAL_DEV_PORT_OFFSET) continue;
|
|
9542
|
+
if (!closest || offset < closest.offset) closest = { basePort, offset };
|
|
9543
|
+
}
|
|
9544
|
+
return closest?.basePort ?? null;
|
|
9545
|
+
}
|
|
9546
|
+
function resolveSootsimBridgePortForRuntimeLocation(input = {}) {
|
|
9547
|
+
const explicitPort = parsePort(input.explicitPort);
|
|
9548
|
+
if (explicitPort !== null) return explicitPort;
|
|
9549
|
+
const httpPort = parsePort(input.httpPort) ?? parseHrefPort(input.href);
|
|
9550
|
+
if (httpPort === null) return DEFAULT_SOOTSIM_BRIDGE_PORT;
|
|
9551
|
+
const baseHttpPort = closestLocalDevBaseHttpPort(httpPort);
|
|
9552
|
+
if (baseHttpPort === null) return DEFAULT_SOOTSIM_BRIDGE_PORT;
|
|
9553
|
+
return resolveSootsimBridgePortForHttpPort({ httpPort, baseHttpPort });
|
|
9554
|
+
}
|
|
9555
|
+
var DEFAULT_SOOTSIM_BRIDGE_PORT, LOCAL_DEV_HTTP_BASE_PORTS, MAX_LOCAL_DEV_PORT_OFFSET, SOOTSIM_BRIDGE_SIM_CLOSE_CODE, SOOTSIM_BRIDGE_SIM_CLOSE_REASON;
|
|
9501
9556
|
var init_bridge_constants = __esm({
|
|
9502
9557
|
"src/bridge-constants.ts"() {
|
|
9503
9558
|
"use strict";
|
|
9504
9559
|
DEFAULT_SOOTSIM_BRIDGE_PORT = 7668;
|
|
9560
|
+
LOCAL_DEV_HTTP_BASE_PORTS = [3e3, 5173];
|
|
9561
|
+
MAX_LOCAL_DEV_PORT_OFFSET = 2e3;
|
|
9505
9562
|
SOOTSIM_BRIDGE_SIM_CLOSE_CODE = 4001;
|
|
9506
9563
|
SOOTSIM_BRIDGE_SIM_CLOSE_REASON = "sootsim close";
|
|
9507
9564
|
}
|
|
@@ -15808,6 +15865,7 @@ function normalizeUser(input) {
|
|
|
15808
15865
|
name: typeof value.name === "string" ? value.name : void 0,
|
|
15809
15866
|
email: typeof value.email === "string" ? value.email : void 0,
|
|
15810
15867
|
image: typeof value.image === "string" ? value.image : void 0,
|
|
15868
|
+
githubUsername: typeof value.githubUsername === "string" ? value.githubUsername : void 0,
|
|
15811
15869
|
teams: Array.isArray(value.teams) ? value.teams.map((team) => {
|
|
15812
15870
|
if (!team || typeof team !== "object") return null;
|
|
15813
15871
|
const t = team;
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.100 | (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
|
@@ -21,6 +21,7 @@ export type SharedDesktopAuthUser = {
|
|
|
21
21
|
name?: string
|
|
22
22
|
email?: string
|
|
23
23
|
image?: string
|
|
24
|
+
githubUsername?: string
|
|
24
25
|
teams?: SharedDesktopAuthTeamSummary[]
|
|
25
26
|
}
|
|
26
27
|
|
|
@@ -61,6 +62,8 @@ function normalizeUser(input: unknown): SharedDesktopAuthUser | null {
|
|
|
61
62
|
name: typeof value.name === 'string' ? value.name : undefined,
|
|
62
63
|
email: typeof value.email === 'string' ? value.email : undefined,
|
|
63
64
|
image: typeof value.image === 'string' ? value.image : undefined,
|
|
65
|
+
githubUsername:
|
|
66
|
+
typeof value.githubUsername === 'string' ? value.githubUsername : undefined,
|
|
64
67
|
teams: Array.isArray(value.teams)
|
|
65
68
|
? value.teams
|
|
66
69
|
.map((team): SharedDesktopAuthTeamSummary | null => {
|
package/src/bridge-constants.ts
CHANGED
|
@@ -3,6 +3,83 @@
|
|
|
3
3
|
// dev plugin, and runtime agree on the same value.
|
|
4
4
|
export const DEFAULT_SOOTSIM_BRIDGE_PORT = 7668
|
|
5
5
|
|
|
6
|
+
function parsePort(value: unknown): number | null {
|
|
7
|
+
if (typeof value === 'number') {
|
|
8
|
+
return Number.isInteger(value) && value > 0 ? value : null
|
|
9
|
+
}
|
|
10
|
+
if (typeof value !== 'string') return null
|
|
11
|
+
const trimmed = value.trim()
|
|
12
|
+
if (!trimmed) return null
|
|
13
|
+
const parsed = Number(trimmed)
|
|
14
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : null
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function parsePortOffset(value: unknown): number {
|
|
18
|
+
const parsed = parsePort(value)
|
|
19
|
+
return parsed === null ? 0 : parsed
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function resolveSootsimBridgePort(
|
|
23
|
+
input: {
|
|
24
|
+
explicitPort?: unknown
|
|
25
|
+
portOffset?: unknown
|
|
26
|
+
} = {},
|
|
27
|
+
): number {
|
|
28
|
+
const explicitPort = parsePort(input.explicitPort)
|
|
29
|
+
if (explicitPort !== null) return explicitPort
|
|
30
|
+
return DEFAULT_SOOTSIM_BRIDGE_PORT + parsePortOffset(input.portOffset)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function resolveSootsimBridgePortForHttpPort(input: {
|
|
34
|
+
explicitPort?: unknown
|
|
35
|
+
httpPort?: unknown
|
|
36
|
+
baseHttpPort: number
|
|
37
|
+
}): number {
|
|
38
|
+
const explicitPort = parsePort(input.explicitPort)
|
|
39
|
+
if (explicitPort !== null) return explicitPort
|
|
40
|
+
const httpPort = parsePort(input.httpPort)
|
|
41
|
+
const portOffset = httpPort === null ? 0 : Math.max(0, httpPort - input.baseHttpPort)
|
|
42
|
+
return resolveSootsimBridgePort({ portOffset })
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const LOCAL_DEV_HTTP_BASE_PORTS = [3000, 5173]
|
|
46
|
+
const MAX_LOCAL_DEV_PORT_OFFSET = 2000
|
|
47
|
+
|
|
48
|
+
function parseHrefPort(value: unknown): number | null {
|
|
49
|
+
if (typeof value !== 'string' || !value.trim()) return null
|
|
50
|
+
try {
|
|
51
|
+
return parsePort(new URL(value).port)
|
|
52
|
+
} catch {
|
|
53
|
+
return null
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function closestLocalDevBaseHttpPort(httpPort: number): number | null {
|
|
58
|
+
let closest: { basePort: number; offset: number } | null = null
|
|
59
|
+
for (const basePort of LOCAL_DEV_HTTP_BASE_PORTS) {
|
|
60
|
+
const offset = httpPort - basePort
|
|
61
|
+
if (offset < 0 || offset > MAX_LOCAL_DEV_PORT_OFFSET) continue
|
|
62
|
+
if (!closest || offset < closest.offset) closest = { basePort, offset }
|
|
63
|
+
}
|
|
64
|
+
return closest?.basePort ?? null
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function resolveSootsimBridgePortForRuntimeLocation(
|
|
68
|
+
input: {
|
|
69
|
+
explicitPort?: unknown
|
|
70
|
+
href?: unknown
|
|
71
|
+
httpPort?: unknown
|
|
72
|
+
} = {},
|
|
73
|
+
): number {
|
|
74
|
+
const explicitPort = parsePort(input.explicitPort)
|
|
75
|
+
if (explicitPort !== null) return explicitPort
|
|
76
|
+
const httpPort = parsePort(input.httpPort) ?? parseHrefPort(input.href)
|
|
77
|
+
if (httpPort === null) return DEFAULT_SOOTSIM_BRIDGE_PORT
|
|
78
|
+
const baseHttpPort = closestLocalDevBaseHttpPort(httpPort)
|
|
79
|
+
if (baseHttpPort === null) return DEFAULT_SOOTSIM_BRIDGE_PORT
|
|
80
|
+
return resolveSootsimBridgePortForHttpPort({ httpPort, baseHttpPort })
|
|
81
|
+
}
|
|
82
|
+
|
|
6
83
|
// private websocket close code used when the daemon intentionally closes a
|
|
7
84
|
// sim. browser clients treat it as terminal and skip their normal reconnect
|
|
8
85
|
// loop; playwright-owned sims use it to close their hosting context.
|
package/src/vite-plugin.ts
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
compatStubsForBuildResolver,
|
|
21
21
|
reactNativeDeepStubsForBuildResolver,
|
|
22
22
|
} from '../../compat/src/stub-manifest.ts'
|
|
23
|
-
import {
|
|
23
|
+
import { resolveSootsimBridgePort } from './bridge-constants.ts'
|
|
24
24
|
import { shouldApplyWorkletsPlugin, transformWorkletsCode } from './worklets-babel.ts'
|
|
25
25
|
|
|
26
26
|
const sootsimPluginRequire = createRequire(import.meta.url)
|
|
@@ -499,7 +499,12 @@ export function wsBridgePlugin(): Plugin {
|
|
|
499
499
|
// never starts.
|
|
500
500
|
void import('./host/bridge-host.ts')
|
|
501
501
|
.then(({ SootSimBridgeHost }) => {
|
|
502
|
-
bridgeHost = new SootSimBridgeHost({
|
|
502
|
+
bridgeHost = new SootSimBridgeHost({
|
|
503
|
+
port: resolveSootsimBridgePort({
|
|
504
|
+
explicitPort: process.env.SOOTSIM_BRIDGE_PORT,
|
|
505
|
+
portOffset: process.env.PORT_OFFSET,
|
|
506
|
+
}),
|
|
507
|
+
})
|
|
503
508
|
bridgeHost.start?.({ silent: true })
|
|
504
509
|
})
|
|
505
510
|
.catch((err: unknown) => {
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c,d}from"./chunk-Q4OS7YTL.js";import"./chunk-6UGXIH6X.js";import"./chunk-JE5YNG3L.js";import"./chunk-POQEZLEI.js";import"./chunk-KJUP4MG5.js";import"./chunk-UHQCVRXY.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{l as d}from"./chunk-KJUP4MG5.js";import{chmodSync as f,existsSync as g,mkdirSync as k,readFileSync as A,rmSync as i,writeFileSync as y}from"node:fs";import{dirname as c,join as D,resolve as p}from"node:path";var s=1,m="SOOTSIM_SHARED_AUTH_FILE",u="https://sootbean.com";function w(){let t=process.env[m];return t?.trim()?c(p(t)):d()}function a(){let t=process.env[m];return t?.trim()?p(t):D(w(),"desktop-auth.json")}function S(t){if(!t||typeof t!="object")return null;let e=t;return typeof e.id!="string"||!e.id.trim()?null:{id:e.id.trim(),name:typeof e.name=="string"?e.name:void 0,email:typeof e.email=="string"?e.email:void 0,image:typeof e.image=="string"?e.image:void 0,teams:Array.isArray(e.teams)?e.teams.map(r=>{if(!r||typeof r!="object")return null;let n=r;return typeof n.id!="string"||typeof n.name!="string"?null:{id:n.id,name:n.name,role:n.role==="owner"?"owner":"member",githubOrg:typeof n.githubOrg=="string"?n.githubOrg:null}}).filter(r=>!!r):void 0}}function v(t){if(!t||typeof t!="object")return null;let e=t;if(e.version!==s||typeof e.token!="string"||!e.token.trim())return null;let r=typeof e.origin=="string"&&e.origin.trim()?e.origin.trim():u,n=e.source==="cli"||e.source==="electron"||e.source==="browser"||e.source==="unknown"?e.source:"unknown",o=typeof e.updatedAt=="string"&&e.updatedAt?e.updatedAt:new Date().toISOString(),h=typeof e.validatedAt=="string"&&e.validatedAt?e.validatedAt:void 0;return{version:s,token:e.token.trim(),user:S(e.user),origin:r,source:n,updatedAt:o,validatedAt:h}}function O(){let t=a();if(!g(t))return null;try{let e=JSON.parse(A(t,"utf8")),r=v(e);return r||(i(t,{force:!0}),null)}catch{return i(t,{force:!0}),null}}function b(t){let e=a();k(c(e),{recursive:!0});let r={version:s,token:t.token.trim(),user:t.user?S(t.user):null,origin:t.origin?.trim()||u,source:t.source,updatedAt:t.updatedAt||new Date().toISOString(),validatedAt:t.validatedAt};y(e,JSON.stringify(r,null,2)+`
|
|
3
|
-
`);try{f(e,384)}catch{}return r}function l(){i(a(),{force:!0})}async function U(t){let e=O();if(!e?.token)return null;let r=t||e.origin||u;try{let n=await fetch(`${r.replace(/\/$/,"")}/api/auth/me`,{headers:{authorization:`Bearer ${e.token}`}});if(n.status===401)return l(),null;if(!n.ok)return e;let o=await n.json();return o.user?.id?b({token:e.token,user:o.user,origin:r,source:e.source,validatedAt:new Date().toISOString()}):(l(),null)}catch{return e}}export{O as a,b,l as c,U as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import"./chunk-4QCN4DMR.js";import{a,b,c,d,e,f,g,h,i}from"./chunk-ZZKSTNCP.js";import"./chunk-BQR62XGM.js";import"./chunk-LSPJL5XI.js";import"./chunk-F2WCFGRK.js";import"./chunk-I43WF32H.js";import"./chunk-KJUP4MG5.js";import"./chunk-UHQCVRXY.js";export{e as ALL_DRIVERS,i as buildDriverListRows,a as chromiumDriver,b as electronDriver,f as getAllDrivers,g as getDriver,c as playwrightDriver,h as resolveDriver,d as systemDriver};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as c,b as d,c as e,d as f}from"./chunk-VAMD4BL3.js";import"./chunk-ISIO4SR2.js";import"./chunk-CBTPTUJA.js";import"./chunk-DZYZQCET.js";import"./chunk-CLEO4DEV.js";import"./chunk-S5IHTZL6.js";import{d as a,e as b}from"./chunk-RVEZYFCE.js";import"./chunk-JTBFEQH4.js";import"./chunk-RP7NLZ26.js";import"./chunk-J2XMTE4K.js";import"./chunk-ZIFZANWB.js";import"./chunk-LWUHOZLQ.js";import"./chunk-6UGXIH6X.js";import"./chunk-JE5YNG3L.js";import"./chunk-ZZKSTNCP.js";import"./chunk-BQR62XGM.js";import"./chunk-LSPJL5XI.js";import"./chunk-F2WCFGRK.js";import"./chunk-I43WF32H.js";import"./chunk-MGZKAJV6.js";import"./chunk-ERDQVO6E.js";import"./chunk-ZCV4Z3DO.js";import"./chunk-4IZWBEOU.js";import"./chunk-POQEZLEI.js";import"./chunk-V3VDLHQ6.js";import"./chunk-36JO37LQ.js";import"./chunk-KJUP4MG5.js";import"./chunk-UHQCVRXY.js";export{c as discoverSootsimUrl,e as hoistLeadingSimFlag,a as parseFlowFile,f as runFlow,d as runFlowPlayback,b as validateFlowFile};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c}from"./chunk-PZQVLWTL.js";import"./chunk-ZCV4Z3DO.js";import"./chunk-L76C6UV4.js";import"./chunk-4IZWBEOU.js";import"./chunk-POQEZLEI.js";import"./chunk-SNP2YECI.js";import"./chunk-GFIXAGFA.js";import"./chunk-36JO37LQ.js";import"./chunk-KJUP4MG5.js";import"./chunk-UHQCVRXY.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as o}from"./chunk-DLENSNEY.js";import"./chunk-PH4GQWKG.js";import"./chunk-Q4OS7YTL.js";import"./chunk-6UGXIH6X.js";import"./chunk-JE5YNG3L.js";import"./chunk-MGZKAJV6.js";import"./chunk-ERDQVO6E.js";import"./chunk-POQEZLEI.js";import"./chunk-KJUP4MG5.js";import"./chunk-UHQCVRXY.js";async function t(n){console.error(" note: `sootsim install` is now `sootsim setup-repo`. forwarding\u2026\n"),await o(n)}export{t as runInstall};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a}from"./chunk-Z5VQYEPL.js";import"./chunk-6UGXIH6X.js";import"./chunk-JE5YNG3L.js";import"./chunk-POQEZLEI.js";import"./chunk-3RW36LEF.js";import"./chunk-KJUP4MG5.js";import"./chunk-UHQCVRXY.js";export{a as runRuntime};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a}from"./chunk-DLENSNEY.js";import"./chunk-PH4GQWKG.js";import"./chunk-Q4OS7YTL.js";import"./chunk-6UGXIH6X.js";import"./chunk-JE5YNG3L.js";import"./chunk-MGZKAJV6.js";import"./chunk-ERDQVO6E.js";import"./chunk-POQEZLEI.js";import"./chunk-KJUP4MG5.js";import"./chunk-UHQCVRXY.js";export{a as runSetupRepo};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.98 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c}from"./chunk-CLEO4DEV.js";import"./chunk-S5IHTZL6.js";import"./chunk-LWUHOZLQ.js";import"./chunk-6UGXIH6X.js";import"./chunk-JE5YNG3L.js";import"./chunk-LSPJL5XI.js";import"./chunk-I43WF32H.js";import"./chunk-MGZKAJV6.js";import"./chunk-ERDQVO6E.js";import"./chunk-POQEZLEI.js";import"./chunk-KJUP4MG5.js";import"./chunk-UHQCVRXY.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};
|