rnxsim 0.1.365 → 0.1.367
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/cli/bin.ts +18 -0
- package/cli/bridge-flow-runner.ts +16 -153
- package/cli/commands/assert.ts +1 -1
- package/cli/commands/box/checkout-plane.ts +126 -0
- package/cli/commands/box/rnx-command.ts +68 -0
- package/cli/commands/box.ts +200 -0
- package/cli/commands/control.ts +15 -76
- package/cli/commands/detox.ts +18 -1
- package/cli/commands/do-chain.ts +412 -0
- package/cli/commands/flow.ts +2 -11
- package/cli/commands/inspect/core.ts +302 -725
- package/cli/commands/inspect/describe.ts +3 -76
- package/cli/commands/inspect/find.ts +3 -6
- package/cli/commands/inspect/get-layout.ts +14 -1
- package/cli/commands/inspect/resolve-target.ts +41 -47
- package/cli/commands/inspect/shared.ts +28 -123
- package/cli/commands/inspect/tree.ts +6 -15
- package/cli/commands/inspect/wait-ready.ts +2 -2
- package/cli/commands/inspect/wait-selector.ts +4 -8
- package/cli/commands/inspect.ts +23 -17
- package/cli/commands/install-desktop.ts +44 -7
- package/cli/commands/maestro-generate.ts +0 -2
- package/cli/commands/platform.ts +68 -0
- package/cli/commands/state.ts +5 -2
- package/cli/outbound-endpoints.ts +6 -1
- package/cli/parse-args.ts +13 -2
- package/cli/ws-bridge.ts +30 -2
- package/detox/index.ts +37 -18
- package/dist-cli/bin.js +5 -5
- package/dist-cli/chunks/{agent-BVMNQFKF.js → agent-EKKIAKP5.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-B6YFXGC3.js → agent-wrapper-MHLQUGA6.js} +2 -2
- package/dist-cli/chunks/{app-fonts-MEI6R6XR.js → app-fonts-HN6ADRTQ.js} +2 -2
- package/dist-cli/chunks/{assert-JGHI53HV.js → assert-IMR6QCN6.js} +3 -3
- package/dist-cli/chunks/{auth-STEOXUS7.js → auth-27LPMQNH.js} +2 -2
- package/dist-cli/chunks/{beta-HT3FLS5T.js → beta-6RXBB5AI.js} +2 -2
- package/dist-cli/chunks/box-DORLF3GP.js +1709 -0
- package/dist-cli/chunks/{camera-ZCLFSLON.js → camera-2G7JZ5DL.js} +2 -2
- package/dist-cli/chunks/{chunk-RI3NS77J.js → chunk-3QZJLNYY.js} +1 -1
- package/dist-cli/chunks/{chunk-FHWZPUGC.js → chunk-3VBVEDDA.js} +1 -1
- package/dist-cli/chunks/{chunk-EAFKG5R3.js → chunk-4BWGLTKU.js} +2 -2
- package/dist-cli/chunks/chunk-4XSNO374.js +423 -0
- package/dist-cli/chunks/{chunk-GZEUDDAW.js → chunk-5DGMFUZG.js} +2 -2
- package/dist-cli/chunks/{chunk-TKCGP3DD.js → chunk-6DBS5EGX.js} +2 -2
- package/dist-cli/chunks/{chunk-HIDS3PYC.js → chunk-6SO6I3D5.js} +2 -2
- package/dist-cli/chunks/chunk-75EFOPXE.js +32 -0
- package/dist-cli/chunks/{chunk-FIXRGPUT.js → chunk-A5AJFVOF.js} +1 -1
- package/dist-cli/chunks/{chunk-2SFMW5K6.js → chunk-AM2ODYAN.js} +1 -1
- package/dist-cli/chunks/{chunk-BGRGP3QR.js → chunk-AVOROGA3.js} +1 -1
- package/dist-cli/chunks/chunk-AXMMLO7D.js +130 -0
- package/dist-cli/chunks/{chunk-XXNPISER.js → chunk-BSEXEYNX.js} +2 -2
- package/dist-cli/chunks/{chunk-67ATAITF.js → chunk-CM6ZKZW7.js} +2 -2
- package/dist-cli/chunks/{chunk-MR3YPNUI.js → chunk-DNVABCEC.js} +2 -2
- package/dist-cli/chunks/{chunk-5AS7S6HY.js → chunk-E33A4AIR.js} +2 -2
- package/dist-cli/chunks/{chunk-DBJZUCFP.js → chunk-EFMOXYDD.js} +2 -2
- package/dist-cli/chunks/{chunk-ZTWUNK45.js → chunk-EV4P5UBP.js} +2 -2
- package/dist-cli/chunks/{chunk-EVBQDQVY.js → chunk-G5IUIGGC.js} +1 -1
- package/dist-cli/chunks/chunk-GMLOCV3E.js +312 -0
- package/dist-cli/chunks/{chunk-DQFOHIRF.js → chunk-GRN2FHVW.js} +1 -1
- package/dist-cli/chunks/{chunk-CYIE65QN.js → chunk-HFFXPUEP.js} +1 -1
- package/dist-cli/chunks/chunk-HG6T4OOR.js +4 -0
- package/dist-cli/chunks/{chunk-GK7PGYFH.js → chunk-HNT2OXPZ.js} +1 -1
- package/dist-cli/chunks/chunk-IPEURNLI.js +24 -0
- package/dist-cli/chunks/chunk-IR44SFBA.js +5 -0
- package/dist-cli/chunks/chunk-JMSLXZFW.js +4 -0
- package/dist-cli/chunks/{chunk-WGNDJARS.js → chunk-JPXQKLNH.js} +1 -1
- package/dist-cli/chunks/chunk-K3EC6JDE.js +4 -0
- package/dist-cli/chunks/chunk-KHX65HAU.js +4 -0
- package/dist-cli/chunks/{chunk-MACI34ST.js → chunk-LWOVKHRC.js} +2 -2
- package/dist-cli/chunks/{chunk-QIQL7Y5V.js → chunk-MQN5DWTI.js} +2 -2
- package/dist-cli/chunks/{chunk-5VHWQGGF.js → chunk-N3BXQEUF.js} +1 -1
- package/dist-cli/chunks/{chunk-O2ORLK6W.js → chunk-N5OSV26B.js} +2 -2
- package/dist-cli/chunks/chunk-PHNURIH3.js +4 -0
- package/dist-cli/chunks/{chunk-JRPU5TFI.js → chunk-PP2KNVXP.js} +3 -3
- package/dist-cli/chunks/{chunk-UR345KM3.js → chunk-PROKNJVY.js} +2 -2
- package/dist-cli/chunks/chunk-QXLLY4IM.js +7 -0
- package/dist-cli/chunks/{chunk-2CXHDTQ5.js → chunk-RNQTOGM7.js} +1 -1
- package/dist-cli/chunks/{chunk-M5KJCLUW.js → chunk-RPNKKVBN.js} +27 -27
- package/dist-cli/chunks/{chunk-EFXNSJ55.js → chunk-RSNLI2NH.js} +2 -2
- package/dist-cli/chunks/{chunk-25BTVHK2.js → chunk-RZGHV2WI.js} +2 -2
- package/dist-cli/chunks/chunk-SGGL3AFV.js +497 -0
- package/dist-cli/chunks/chunk-SH5ETJKG.js +4 -0
- package/dist-cli/chunks/{chunk-MRNW4GVL.js → chunk-T6J4YP56.js} +2 -2
- package/dist-cli/chunks/{chunk-R4FQZXJC.js → chunk-TWUE7WF5.js} +2 -2
- package/dist-cli/chunks/{chunk-X5ZOZVHC.js → chunk-U44VEQRN.js} +1 -1
- package/dist-cli/chunks/{chunk-XRO5WQXP.js → chunk-URLVQHC3.js} +1 -1
- package/dist-cli/chunks/{chunk-JAFF4RAU.js → chunk-VANZFTUE.js} +1 -1
- package/dist-cli/chunks/{chunk-6BAF6GFS.js → chunk-VB2YBH46.js} +1 -1
- package/dist-cli/chunks/{chunk-O6P4N2JD.js → chunk-VFU2SJ7M.js} +2 -2
- package/dist-cli/chunks/{chunk-XPOTXF5Q.js → chunk-VUBJ6FXU.js} +15 -15
- package/dist-cli/chunks/{chunk-XR4KID25.js → chunk-W5PATILQ.js} +2 -2
- package/dist-cli/chunks/chunk-WI5V4TYG.js +38 -0
- package/dist-cli/chunks/{chunk-NEH4T67X.js → chunk-XTRHQAOV.js} +2 -2
- package/dist-cli/chunks/chunk-XWUTJLBM.js +27 -0
- package/dist-cli/chunks/{chunk-TULWPOAY.js → chunk-XYRUQQUR.js} +2 -2
- package/dist-cli/chunks/chunk-YBFB3RM7.js +4 -0
- package/dist-cli/chunks/chunk-YGQVQ2VG.js +4 -0
- package/dist-cli/chunks/{chunk-J66US2OZ.js → chunk-YINACV32.js} +1 -1
- package/dist-cli/chunks/chunk-YV7ERO2V.js +5 -0
- package/dist-cli/chunks/{cleanup-G4TEYVKY.js → cleanup-GVFHQ3KH.js} +2 -2
- package/dist-cli/chunks/cli-version-DPX5MA2M.js +4 -0
- package/dist-cli/chunks/{compat-EZ5NP32J.js → compat-AYRTXYAM.js} +2 -2
- package/dist-cli/chunks/{config-27M2DGCS.js → config-K7LOOV62.js} +2 -2
- package/dist-cli/chunks/connect-H3CNY4IO.js +4 -0
- package/dist-cli/chunks/control-SMHZ2CF5.js +4 -0
- package/dist-cli/chunks/daemon-TEZUNI73.js +4 -0
- package/dist-cli/chunks/{debug-EXU3D7PC.js → debug-ELGHG57T.js} +3 -3
- package/dist-cli/chunks/{desktop-SHHPZAWQ.js → desktop-4G7FK3MP.js} +3 -3
- package/dist-cli/chunks/detox-JKXGEJIZ.js +52 -0
- package/dist-cli/chunks/{device-4NI26HG6.js → device-IV3AR6KG.js} +2 -2
- package/dist-cli/chunks/{diagnose-P4SFXH6J.js → diagnose-3ERGF7EW.js} +2 -2
- package/dist-cli/chunks/{disk-cleanup-BUAKWYMY.js → disk-cleanup-ALFEVZ4B.js} +2 -2
- package/dist-cli/chunks/do-chain-K2B4OHM7.js +5 -0
- package/dist-cli/chunks/drivers-KJYXA3M3.js +4 -0
- package/dist-cli/chunks/env-2KF6IYZE.js +4 -0
- package/dist-cli/chunks/{film-Y2BAQINB.js → film-UQXJFAD5.js} +3 -3
- package/dist-cli/chunks/flow-ASTUH56E.js +4 -0
- package/dist-cli/chunks/help-SNNYFELA.js +4 -0
- package/dist-cli/chunks/{hidden-runtime-alias-U2MAY2XV.js → hidden-runtime-alias-VJCWCFVO.js} +2 -2
- package/dist-cli/chunks/{home-paths-PAJMZCOS.js → home-paths-EGUZZ6J6.js} +2 -2
- package/dist-cli/chunks/inspect-XANAADQT.js +4 -0
- package/dist-cli/chunks/install-desktop-JKQA7UY6.js +4 -0
- package/dist-cli/chunks/{login-D53XKBEO.js → login-6KQGD7HK.js} +2 -2
- package/dist-cli/chunks/{logout-HZQKLNUJ.js → logout-2FCOVLBC.js} +2 -2
- package/dist-cli/chunks/{maestro-XSS2KX6L.js → maestro-HPSSEVJD.js} +3 -3
- package/dist-cli/chunks/{maestro-generate-DNDQX3JQ.js → maestro-generate-KQQ6JHMR.js} +5 -5
- package/dist-cli/chunks/{mode-LEVGOKI3.js → mode-SH7KRZET.js} +2 -2
- package/dist-cli/chunks/{optional-demo-registry-2XZIJNDG.js → optional-demo-registry-NAMCAVFX.js} +2 -2
- package/dist-cli/chunks/{perf-OKMAXDLB.js → perf-LWKAHXUL.js} +2 -2
- package/dist-cli/chunks/{permissions-VG5TBUTN.js → permissions-EZTKWTXV.js} +2 -2
- package/dist-cli/chunks/platform-KSOJIVN5.js +6 -0
- package/dist-cli/chunks/privacy-EJULWP7L.js +4 -0
- package/dist-cli/chunks/{record-BQYGZOMV.js → record-2IC7BAQN.js} +3 -3
- package/dist-cli/chunks/{report-issue-HCPZESWE.js → report-issue-MMX6HOQO.js} +2 -2
- package/dist-cli/chunks/reset-PKFZA4NC.js +4 -0
- package/dist-cli/chunks/resolve-target-AFKU3BRE.js +4 -0
- package/dist-cli/chunks/runtime-XHWWPOIN.js +4 -0
- package/dist-cli/chunks/{screenshot-command-DWEYPJE7.js → screenshot-command-JYUXDVSA.js} +3 -3
- package/dist-cli/chunks/{screenshot-layers-5GMBXLO7.js → screenshot-layers-OGRY6AA3.js} +2 -2
- package/dist-cli/chunks/{screenshots-capture-5KCI7IZD.js → screenshots-capture-QHDN65XS.js} +2 -2
- package/dist-cli/chunks/{serve-QNKTA2HR.js → serve-W4BKAG4J.js} +3 -3
- package/dist-cli/chunks/setup-WJPMPSAC.js +4 -0
- package/dist-cli/chunks/sim-client-UOQGFBPO.js +4 -0
- package/dist-cli/chunks/{skills-DOEALD3X.js → skills-OPPXOD63.js} +2 -2
- package/dist-cli/chunks/state-TDAN7BOM.js +14 -0
- package/dist-cli/chunks/{storage-E7WUWN3E.js → storage-CFB2YGLY.js} +2 -2
- package/dist-cli/chunks/store-4TEED4ZU.js +4 -0
- package/dist-cli/chunks/telemetry-S6N7CV6G.js +4 -0
- package/dist-cli/chunks/{timeline-IKNUGQ2A.js → timeline-ASOOVP4C.js} +2 -2
- package/dist-cli/chunks/{upgrade-VS3OKXE2.js → upgrade-6MVJISHG.js} +2 -2
- package/dist-cli/chunks/upload-CBNIRFEW.js +4 -0
- package/dist-cli/chunks/{version-F4XHNTBZ.js → version-5GS7CWRL.js} +2 -2
- package/dist-cli/chunks/{web-F72724QL.js → web-QRRMYMV4.js} +2 -2
- package/dist-cli/chunks/welcome-33FXMAMB.js +5 -0
- package/dist-cli/chunks/{what-happened-APK7YKOV.js → what-happened-GAZJGKXX.js} +2 -2
- package/dist-cli/chunks/ws-bridge-DIXUAPLQ.js +4 -0
- 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/bridge-contract-input.cjs +336 -0
- package/dist-lib/bridge-contract-input.mjs +303 -0
- package/dist-lib/bridge-contract.cjs +29 -1
- package/dist-lib/bridge-contract.mjs +19 -0
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +35 -19
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +5 -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/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +244 -594
- 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-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +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 +303 -657
- package/dist-lib/sdk.mjs +301 -652
- package/dist-lib/skills.cjs +256 -339
- package/dist-lib/vite.cjs +1 -1
- package/package.json +10 -1
- package/skills/contrast/SKILL.md +3 -0
- package/skills/rnx-debug/SKILL.md +8 -0
- package/skills/rnx-test/SKILL.md +21 -0
- package/src/app-url.ts +40 -0
- package/src/bridge-contract-input.ts +359 -0
- package/src/bridge-contract.ts +121 -1
- package/src/host/bridge-host.ts +7 -12
- package/src/index.ts +7 -0
- package/src/sim-client.ts +24 -9
- package/dist-cli/chunks/chunk-2JFZ5Z7Q.js +0 -4
- package/dist-cli/chunks/chunk-4WFN4DFR.js +0 -5
- package/dist-cli/chunks/chunk-52ES4API.js +0 -38
- package/dist-cli/chunks/chunk-622E4JET.js +0 -767
- package/dist-cli/chunks/chunk-EFL2ASZO.js +0 -124
- package/dist-cli/chunks/chunk-IWPS3EKJ.js +0 -15
- package/dist-cli/chunks/chunk-MCHKBFUL.js +0 -4
- package/dist-cli/chunks/chunk-OSZ5HZSI.js +0 -24
- package/dist-cli/chunks/chunk-W3UIDI3W.js +0 -5
- package/dist-cli/chunks/chunk-XKRUNS7A.js +0 -32
- package/dist-cli/chunks/chunk-YE3M3YD4.js +0 -944
- package/dist-cli/chunks/chunk-ZCP4CRP6.js +0 -4
- package/dist-cli/chunks/chunk-ZGD7GZRI.js +0 -4
- package/dist-cli/chunks/chunk-ZGH5U4AJ.js +0 -27
- package/dist-cli/chunks/cli-version-ZM3PVKQ5.js +0 -4
- package/dist-cli/chunks/control-4QR43FXV.js +0 -4
- package/dist-cli/chunks/daemon-2U4CJ6AT.js +0 -4
- package/dist-cli/chunks/detox-RQ6FFSBS.js +0 -52
- package/dist-cli/chunks/drivers-OVCUPQTM.js +0 -4
- package/dist-cli/chunks/flow-ELTLKKZ3.js +0 -4
- package/dist-cli/chunks/help-CDEZAG2L.js +0 -4
- package/dist-cli/chunks/inspect-VVQRPJLS.js +0 -4
- package/dist-cli/chunks/install-desktop-YXSRKR35.js +0 -4
- package/dist-cli/chunks/privacy-MNRHREME.js +0 -4
- package/dist-cli/chunks/reset-R4E4W4YI.js +0 -4
- package/dist-cli/chunks/runtime-XRQZ7W34.js +0 -4
- package/dist-cli/chunks/setup-RNMM5GO5.js +0 -4
- package/dist-cli/chunks/state-3HH2IHIF.js +0 -14
- package/dist-cli/chunks/store-HUPZUCFG.js +0 -4
- package/dist-cli/chunks/telemetry-IJ53XR2Y.js +0 -4
- package/dist-cli/chunks/upload-A57NAAHF.js +0 -4
- package/dist-cli/chunks/welcome-B72RRMBW.js +0 -5
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{k as n}from"./chunk-ZGH5U4AJ.js";import{M as t,j as r}from"./chunk-FHWZPUGC.js";function l(){let e=t(),i=r()?n():null;return i?.source==="dev-bridge"?{primary:`engine dev source (:${i.bridgePort})`,installedRuntime:e?`installed runtime v${e}`:null,isDevBridge:!0}:{primary:e?`runtime v${e}`:"runtime not installed",installedRuntime:null,isDevBridge:!1}}export{l as a};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{c as P,k as m,l as S,m as R,n as _,o as v}from"./chunk-W3UIDI3W.js";var k="sootsim:settings",d=["productAnalytics","crashReports","colorScheme","reduceMotion","boldText","fontSize","largerAccessibilitySizes","a11yMode","a11yDepth","screenshotCanvas","screenshotBackground","screenshotText","screenshotPose","screenshotDynamicSize","alwaysShowLiveWebViews","showFrame","showMenuBar","showRail","solidWindow","ambientGlow","agentProvider"];function p(){if(typeof window>"u")return null;let e=window.sootsimElectron;return e&&typeof e=="object"?e:null}function l(e){let t={};for(let n of d){if(!(n in e))continue;let o=e[n],i=S[n];i.validate&&!i.validate(o)||i.options&&!i.options.includes(o)||(t[n]=o)}return t}function K(e){let t={};for(let n of d)t[n]=e[n];return t}function M(){if(typeof localStorage>"u")return{};try{let e=localStorage.getItem(k);return e?l(JSON.parse(e)):{}}catch{return{}}}function T(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(k,JSON.stringify(e))}catch{}}function x(){let t=p()?.sharedConfig?.settings;return!t||typeof t!="object"?{}:l(t)}function A(e){let t=p();if(t?.writeSharedConfig)try{t.writeSharedConfig({settings:e})}catch{}}async function L(e){let t=p();return t?.writeSharedConfig?(await t.writeSharedConfig({settings:e}),!0):!1}function b(){if(typeof window>"u")return null;let e=window.__sootsimSharedConfig;return e&&typeof e=="object"?e:null}function O(){let e=b()?.settings;return!e||typeof e!="object"?{}:l(e)}function B(e){if(!b())return;let t={settings:e};try{if(globalThis.__sootsimBridgeRequest?.writeSharedConfig?.(t))return}catch{}if(!(typeof fetch>"u"))try{fetch("/__sootsim/shared-config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),keepalive:!0}).catch(()=>{})}catch{}}async function F(e){if(!b()||typeof fetch>"u")return!1;let t=await fetch("/__sootsim/shared-config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:e}),keepalive:!0});if(!t.ok)throw new Error(`shared settings reset failed with HTTP ${t.status}`);return await t.text(),!0}function D(){let e=M(),t=O(),n=x();return{...e,...t,...n}}function V(e,t={}){let n=K(e);for(let o of d)t[o]!==void 0&&(n[o]=t[o]);T(n),A(n),B(n)}async function I(e,t={}){let n=K(e);for(let o of d)t[o]!==void 0&&(n[o]=t[o]);T(n),!await L(n)&&await F(n)}function j(e){if(typeof window>"u")return()=>{};let t=r=>{if(!(r.key!==k||r.newValue==null))try{e(l(JSON.parse(r.newValue)))}catch{}};window.addEventListener("storage",t);let n=p(),o;n?.onSharedConfigChanged&&(o=n.onSharedConfigChanged(r=>{let f=r?.settings;!f||typeof f!="object"||e(l(f))}));let a=globalThis.__sootsimBridgeRequest?.subscribeSharedConfig?.(r=>{let f=r?.settings;!f||typeof f!="object"||e(l(f))});return()=>{window.removeEventListener("storage",t),o?.(),a?.()}}var N=_(),q=v(),y=D(),c=new Set,g={};for(let e of d)N[e]!==void 0&&(c.add(e),y[e]!==void 0&&(g[e]=y[e]),delete y[e]);var s={...q,...y},w=[],u=null;function h(){for(let e of w)e()}function E(){h(),V(s,g)}function C(e,t){let n=S[e];return n.validate&&!n.validate(t)||n.options&&!n.options.includes(t)||s[e]===t?!1:(s={...s,[e]:t},e==="deviceModel"&&(u=null),!0)}j(e=>{let t={...s},n=!1;for(let[o,i]of Object.entries(e)){let a=o;if(c.has(a)){g[a]=i;continue}t[a]!==i&&(t[a]=i,n=!0)}n&&(s=t,u=null,h())});var z={get(e){return s[e]},set(e,t){C(e,t)&&E()},setRuntime(e,t){c.has(e)||(c.add(e),d.includes(e)&&(g[e]=s[e])),C(e,t)&&h()},isRuntimeControlled(e){return c.has(e)},getAll(){return s},apply(e){let t=!1,n={...s};for(let[o,i]of Object.entries(e)){if(i===void 0)continue;let a=o,r=S[a];r&&(r.validate&&!r.validate(i)||r.options&&!r.options.includes(i)||n[a]!==i&&(n[a]=i,t=!0))}t&&(s=n,u=null,E())},applyRuntime(e){let t=!1;for(let n of Object.keys(e)){let o=e[n];o!==void 0&&(c.has(n)||(c.add(n),d.includes(n)&&(g[n]=s[n])),C(n,o)&&(t=!0))}t&&h()},reset(){s=v(),u=null,E()},async resetDeviceContent(){let e=m.filter(n=>!c.has(n)).map(n=>[n,R[n]]),t=e.some(([n,o])=>s[n]!==o);s={...s,...Object.fromEntries(e)};for(let n of m)c.has(n)&&(g[n]=R[n]);t&&h(),await I(s,g)},subscribe(e){return w.push(e),()=>{w=w.filter(t=>t!==e)}},getDeviceSpec(){return u||(u=P(s.deviceModel)),u},getA11yMode(){return s.a11yMode},setA11yMode(e){this.set("a11yMode",e)},getInspectMode(){return s.inspectMode},setInspectMode(e){this.set("inspectMode",e)}};export{z as a};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a as O,b as B}from"./chunk-JAFF4RAU.js";import{P as T,Q as N,R as _,S as W,g as F}from"./chunk-FHWZPUGC.js";var Ie="http://localhost:7668/";function H(e){if(typeof e=="number")return Number.isInteger(e)&&e>0?e:null;if(typeof e!="string")return null;let t=e.trim();if(!t)return null;let r=Number(t);return Number.isInteger(r)&&r>0?r:null}function X(e){let t=H(e);return t===null?0:t}function V(e={}){let t=H(e.explicitPort);return t!==null?t:7668+X(e.portOffset)}var z=5173;var Q=2e3;function Pe(e){let t=e-7668;return t<0||t>Q?null:`http://localhost:${z+t}/`}var ye=4001,Te="sootsim close";import{existsSync as Z,mkdirSync as ee,readFileSync as te,rmSync as E,writeFileSync as re}from"fs";import{tmpdir as ne}from"os";import{dirname as ie,join as oe,resolve as se}from"path";var v=1,G="SOOTSIM_CLI_CURRENT_SIM_PATH",le=["SOOTSIM_CLI_IDENTITY","TM_SESSION","CLAUDE_CODE_SESSION_ID","CODEX_THREAD_ID","TERM_SESSION_ID","ITERM_SESSION_ID","TMUX_PANE","STY","KITTY_WINDOW_ID","WEZTERM_PANE","ALACRITTY_WINDOW_ID","WINDOWID","VSCODE_INJECTION"],j=/^(?:tmux|screen)|^tm$/i;function q(e,t=20){let r=e,n=O(e);if(!n||n<=1){let o=B(e);return e>1&&o&&!j.test(o)?e:null}for(let o=0;o<t;o++){let s=B(n);if(s&&j.test(s))return r;let u=O(n);if(!u||u<=1)return s?n:r;r=n,n=u}return n}function x(){for(let t of le){let r=process.env[t];if(r&&r.trim())return{key:`${t}:${r.trim()}`,source:t,stable:!0}}let e=q(process.ppid);return e&&e>1?{key:`gppid-${e}`,source:"grand-ppid",stable:!0}:{key:`pid-${process.ppid}`,source:"ppid",stable:!1}}function ce(){return x().key}function ve(){return q(process.ppid)}function k(){if(process.env[G])return se(process.env[G]);let e=ce();return oe(ne(),`sootsim-current-sim-${e}.json`)}function de(){let e=k();if(!Z(e))return null;try{let t=JSON.parse(te(e,"utf8"));return t.version!==v||typeof t.simId!="string"||!t.simId.trim()||typeof t.updatedAt!="string"?(E(e,{force:!0}),null):{version:v,simId:t.simId.trim(),updatedAt:t.updatedAt}}catch{return E(e,{force:!0}),null}}function R(){return de()?.simId||null}function xe(e){let t=e.trim();if(!t)return;let r=k();ee(ie(r),{recursive:!0}),re(r,JSON.stringify({version:v,simId:t,updatedAt:new Date().toISOString()},null,2)+`
|
|
5
|
-
`)}function J(){E(k(),{force:!0})}var h="http://localhost:5173/";import ue from"node:fs";import S from"node:path";import{WebSocket as D}from"ws";var C=null;function M(){return N().filter(e=>W(e))}function Y(e){let t=S.resolve(e);for(;;){if(ue.existsSync(S.join(t,".git")))return t;let r=S.dirname(t);if(r===t)return null;t=r}}function K(e,t){let r=S.relative(e,t);return r===""||r!==".."&&!r.startsWith(`..${S.sep}`)&&!S.isAbsolute(r)}function ae(){let e=M();if(e.length===0)return null;if(process.env.SOOTSIM_BRIDGE_PORT!==void 0||process.env.PORT_OFFSET!==void 0){let r=V({explicitPort:process.env.SOOTSIM_BRIDGE_PORT,portOffset:process.env.PORT_OFFSET}),n=e.find(o=>o.bridgePort===r);if(n)return n}let t=null;try{t=process.cwd()}catch{}if(t){let r=Y(t),n=e.filter(o=>{let s=Y(o.cwd);return r&&s?r===s:K(t,o.cwd)||K(o.cwd,t)});if(n.length>0)return n.find(o=>o.bridgePort===7668)??n[0]}return e.find(r=>r.bridgePort===7668)??e[0]}function me(){let e=F();if(C?.homeDir===e)return C.world;let t=fe();return C={homeDir:e,world:t},t}function fe(){let e=ae();if(e)return{source:"dev-bridge",bridgePort:e.bridgePort,shellBaseUrl:e.shellPort?`http://localhost:${e.shellPort}/`:h};let t=T();return t&&_(t)?{source:"daemon",bridgePort:t.bridgePort,shellBaseUrl:t.runtimePort>0?`http://localhost:${t.runtimePort}/`:h}:{source:"default",bridgePort:7668,shellBaseUrl:h}}function ge(e){let t=M().find(n=>n.bridgePort===e);if(t)return{source:"dev-bridge",shellBaseUrl:t.shellPort?`http://localhost:${t.shellPort}/`:h};let r=T();return r&&_(r)&&r.bridgePort===e?{source:"daemon",shellBaseUrl:r.runtimePort>0?`http://localhost:${r.runtimePort}/`:h}:null}function Fe(e){let t;try{let o=new URL(e);t=o.port?Number(o.port):o.protocol==="https:"?443:80}catch{return null}if(!Number.isFinite(t)||t<=0)return null;let r=M().find(o=>o.shellPort===t||o.runtimePort===t||o.bridgePort===t);if(r)return r.bridgePort;let n=T();return n&&_(n)&&(n.runtimePort===t||n.bridgePort===t)?n.bridgePort:null}function pe(){return me().bridgePort}function Ne(e,t){let r=ge(e),n=r?.source==="dev-bridge"?"dev bridge":r?.source==="daemon"?"daemon bridge":"bridge",o=r?.source==="dev-bridge"?`dev-bridges/${e}.json`:r?.source==="daemon"?"daemon.json":"no lockfile",s=t??r?.shellBaseUrl;process.stderr.write(` \u2192 ${n} :${e} (${s?`shell ${s}, `:""}${o})
|
|
6
|
-
`)}var A=class extends Error{lock;constructor(t,r){super(t),this.name="BridgeSimLockedError",this.lock=r}};function he(e){return e==="flag"?"via --sim":e==="saved"?"saved via `rnx use`":"primary fallback \u2014 no sim pinned"}function We(e,t={}){let r=new Set,n=t.port??pe(),o=t.port!==void 0,s=t.commandTimeoutMs??15e3,u,a="none",I=new Set(t.stripBooleanFlags??[]),P=new Set(t.stripValueFlags??[]);for(let l=0;l<e.length;l++){let i=e[l];if(i==="--port"||i==="-p"){r.add(l),o=!0,l+1<e.length&&(r.add(l+1),n=Number(e[l+1])),l++;continue}if(i.startsWith("--port=")){r.add(l),o=!0,n=Number(i.slice(7));continue}if(i==="--timeout"){r.add(l),l+1<e.length&&(r.add(l+1),s=Number(e[l+1])),l++;continue}if(i==="--sim"||i==="--session"||i==="--tab"){r.add(l),l+1<e.length&&(r.add(l+1),u=e[l+1]?.trim()||void 0,a="flag"),l++;continue}let c=i.startsWith("--sim=")?i.slice(6):i.startsWith("--session=")?i.slice(10):i.startsWith("--tab=")?i.slice(6):void 0;if(c!==void 0){r.add(l),u=c.trim()||void 0,a="flag";continue}if(I.has(i)){r.add(l);continue}P.has(i)&&(r.add(l),l+1<e.length&&r.add(l+1),l++)}if(!u){let l=R();l&&(u=l.trim()||void 0,a="saved")}return{positional:e.filter((l,i)=>!r.has(i)),wsPort:n,explicitPort:o,simId:u,simIdSource:a,commandTimeoutMs:s}}function Se(e,t={}){let r=1,n=t.commandTimeoutMs??15e3,o=new Map,s=new D(`ws://localhost:${e}`),u=x(),a=new Promise((i,c)=>{s.on("open",()=>{try{s.send(JSON.stringify({type:"bridge:hello",id:0,cliIdentityKey:u.key,cliIdentitySource:u.source,cliLabel:t.cliLabel}))}catch{}i()}),s.on("error",d=>{let m=d.message?`: ${d.message}`:"";c(new Error(`could not connect to ws://localhost:${e}${m}`))})});a.catch(()=>{});let I=!1,P=!1;function l(i,c){if(P||process.env.SOOTSIM_QUIET_TARGET_NOTICE==="1"||i.startsWith("bridge:")||i==="focus"||i==="close")return;P=!0;let d=c??"primary",m=he(c?t.simIdSource:"none");process.stderr.write(` \u2192 ${d} (${m})
|
|
7
|
-
`)}return s.on("message",i=>{let c;try{c=JSON.parse(i.toString())}catch{return}if(c.id===0)return;let d=o.get(c.id);d&&(o.delete(c.id),c._otherCliCount>0&&!I&&(I=!0,process.stderr.write(`
|
|
8
|
-
\u26A0 ${c._otherCliCount} other CLI identity/identities are driving this sim
|
|
9
|
-
taps, scrolls, and keyboard input from multiple agents will collide on
|
|
10
|
-
the same screen state (this is not a bridge throughput limit).
|
|
11
|
-
use \`rnx open --new\` for an isolated sim per agent.
|
|
12
|
-
|
|
13
|
-
`)),c.error?c._locked?d.reject(new A(c.error,c._locked)):d.reject(new Error(c.error)):d.resolve(c.result))}),s.on("close",(i,c)=>{let d=c?.toString()||"connection closed";for(let[m,p]of o)o.delete(m),p.reject(new Error(`sim disconnected: ${d} (code ${i})`))}),{async send(i,c){let d=c?.timeoutMs??n,m=async f=>{await a;let g=r++;return new Promise((b,U)=>{let $=setTimeout(()=>{o.delete(g),U(new Error(`command timed out after ${Math.round(d/1e3)}s`))},d);o.set(g,{resolve:w=>{clearTimeout($),b(w)},reject:w=>{clearTimeout($),U(w)}});let y={...i,id:g};y.simId===void 0&&f&&(y.simId=f),l(i.type??"",y.simId),s.send(JSON.stringify(y))})},p=t.simIdSource==="flag"?t.simId:R()??t.simId;try{return await m(p)}catch(f){let g=f instanceof Error?f.message:String(f),b=`no sim connected with id ${p}`;throw t.simIdSource!=="flag"&&p&&i.simId===void 0&&(g===b||g.startsWith(`${b};`))?(J(),new Error(`saved sim ${p} is gone${g.slice(b.length)}; run \`rnx list\` and \`rnx use <sim>\`, or open a fresh sim`)):f}},async listSims(){let i=await this.send({type:"bridge:list-sims"});return Array.isArray(i)?i:[]},async focusSim(i){return this.send({type:"focus",simId:i})},async closeSim(i){return this.send({type:"close",simId:i})},async claim(i,c={}){return await this.send({type:"bridge:claim",simId:i,force:c.force===!0})},close(){try{s.readyState===D.OPEN&&s.send(JSON.stringify({type:"bridge:bye",id:0}))}catch{}s.close();let i=setTimeout(()=>{s.readyState!==D.CLOSED&&s.terminate()},250)}}}function He(e){return Se(e.wsPort,{commandTimeoutMs:e.commandTimeoutMs,simId:e.simId,simIdSource:e.simIdSource})}function be(e,t){let r=e.filter(s=>s.readyState==="open"&&s.id!==t),n=r.find(s=>s.userFocused)??r.find(s=>s.userVisible===!0&&s.isPrimary)??r.find(s=>s.userVisible===!0)??r.find(s=>s.isPrimary);if(!n)return null;let o=[n.isPrimary?"primary":null,n.userVisible===!1?"hidden":n.userVisible===!0?"visible":null,n.userFocused?"focused":null].filter(Boolean);return`${n.id}${o.length?` [${o.join(", ")}]`:""}`}async function Ve(e){try{let t=await e.send({type:"evaluate",code:`(() => ({
|
|
14
|
-
hidden: document.hidden,
|
|
15
|
-
visibilityState: document.visibilityState,
|
|
16
|
-
hasFocus: typeof document.hasFocus === 'function' ? document.hasFocus() : null,
|
|
17
|
-
simId: window.__sootsimBridge?.id ?? window.SootSim?.state?.simId ?? null,
|
|
18
|
-
url: location.href
|
|
19
|
-
}))()`}),r=typeof t=="object"&&t!==null?t:{hidden:t===!0};if(r.hidden===!0===!0){let o=null;try{o=be(await e.listSims(),r.simId)}catch{}return process.stderr.write(`
|
|
20
|
-
\u26A0 target sim${r.simId?` ${r.simId}`:""} is hidden (document.hidden = true)
|
|
21
|
-
`+(r.visibilityState?` visibility: ${r.visibilityState}
|
|
22
|
-
`:"")+` animations and rAF callbacks are throttled \u2014 coordinates may be wrong
|
|
23
|
-
and launch/transition animations will not complete.
|
|
24
|
-
`+(o?` another open sim looks usable: ${o}; target it with --sim.
|
|
25
|
-
`:" run `rnx list` to find the visible sim and target it with --sim.\n")+` page-level window.focus() cannot unhide a browser tab.
|
|
26
|
-
|
|
27
|
-
`),{hidden:!0,warned:!0,simId:r.simId}}return{hidden:!1,warned:!1,simId:r.simId}}catch{return{hidden:!1,warned:!1}}}async function Ge(e,t,r={}){let n={type:"evaluate",code:t};return r.acquireLock&&(n.acquireLock=!0),e.send(n)}async function je(e,t,...r){return e.send({type:"call",path:t,args:r})}async function qe(e,t,...r){return e.send({type:"call",path:t,args:r,acquireLock:!0})}export{Ie as a,Pe as b,ye as c,Te as d,ce as e,ve as f,R as g,xe as h,J as i,h as j,me as k,ge as l,Fe as m,pe as n,Ne as o,A as p,We as q,Se as r,He as s,Ve as t,Ge as u,je as v,qe as w};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a}from"./chunk-HIDS3PYC.js";import"./chunk-FIXRGPUT.js";import"./chunk-EVBQDQVY.js";export{a as getCliVersion};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x}from"./chunk-IWPS3EKJ.js";import"./chunk-GZEUDDAW.js";import"./chunk-6BAF6GFS.js";import"./chunk-XXNPISER.js";import"./chunk-MACI34ST.js";import"./chunk-52ES4API.js";import"./chunk-622E4JET.js";import"./chunk-TULWPOAY.js";import"./chunk-67ATAITF.js";import"./chunk-ZGD7GZRI.js";import"./chunk-X5ZOZVHC.js";import"./chunk-NEH4T67X.js";import"./chunk-2CXHDTQ5.js";import"./chunk-4WFN4DFR.js";import"./chunk-W3UIDI3W.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-BGRGP3QR.js";import"./chunk-5VHWQGGF.js";import"./chunk-MRNW4GVL.js";import"./chunk-XRO5WQXP.js";import"./chunk-FHWZPUGC.js";import"./chunk-FIXRGPUT.js";import"./chunk-EVBQDQVY.js";export{e as applyRuntimeGenerationOrigin,i as buildOpenUrl,h as buildShellUrl,v as closeSimsBulk,c as ensureBridgeForOpen,b as normalizeDeepLinkTarget,w as planBulkCloseTargets,n as playwrightHostPidForSim,k as printConnectedSims,d as resolveBundleTarget,f as resolveDefaultShellBaseUrl,a as resolveDriverConnectWaitOptions,g as resolveShellBaseUrlForBridgePort,u as runClaimCommand,x as runCloseCommand,t as runFocusCommand,q as runLinkCommand,r as runOpenCommand,s as runUseCommand,o as signalDriverLaunchConnected,j as summarizeSimUrl,p as terminatePlaywrightHostsForSims,l as waitForSimMatch,m as waitForSimMatchOrHostExit};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a,b,c,d,e,f}from"./chunk-EFXNSJ55.js";import"./chunk-5AS7S6HY.js";import"./chunk-ZCP4CRP6.js";import"./chunk-XR4KID25.js";import"./chunk-4WFN4DFR.js";import"./chunk-W3UIDI3W.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-EFL2ASZO.js";import"./chunk-FHWZPUGC.js";import"./chunk-HIDS3PYC.js";import"./chunk-FIXRGPUT.js";import"./chunk-WGNDJARS.js";import"./chunk-EVBQDQVY.js";export{c as daemonInstall,b as getDaemonServiceStatus,a as runDaemon,e as teardownDaemonService,d as teardownLegacyMacDaemonArtifacts,f as teardownSootsimHome};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{f as N}from"./chunk-M5KJCLUW.js";import"./chunk-RI3NS77J.js";import"./chunk-EAFKG5R3.js";import{c as F,d as $,e as E}from"./chunk-XPOTXF5Q.js";import{a as M}from"./chunk-DBJZUCFP.js";import"./chunk-O2ORLK6W.js";import"./chunk-YE3M3YD4.js";import"./chunk-DQFOHIRF.js";import"./chunk-CYIE65QN.js";import"./chunk-UR345KM3.js";import"./chunk-IWPS3EKJ.js";import"./chunk-GZEUDDAW.js";import"./chunk-6BAF6GFS.js";import"./chunk-XXNPISER.js";import"./chunk-MACI34ST.js";import"./chunk-52ES4API.js";import"./chunk-622E4JET.js";import"./chunk-TULWPOAY.js";import"./chunk-67ATAITF.js";import"./chunk-ZGD7GZRI.js";import"./chunk-X5ZOZVHC.js";import"./chunk-NEH4T67X.js";import"./chunk-2CXHDTQ5.js";import"./chunk-XR4KID25.js";import"./chunk-4WFN4DFR.js";import"./chunk-W3UIDI3W.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-BGRGP3QR.js";import"./chunk-2JFZ5Z7Q.js";import"./chunk-R4FQZXJC.js";import"./chunk-EFL2ASZO.js";import"./chunk-5VHWQGGF.js";import"./chunk-MRNW4GVL.js";import"./chunk-XRO5WQXP.js";import"./chunk-FHWZPUGC.js";import{a as R}from"./chunk-FIXRGPUT.js";import"./chunk-EVBQDQVY.js";import{spawn as G}from"child_process";import{existsSync as g,mkdirSync as B,readFileSync as C,writeFileSync as y,unlinkSync as U}from"fs";import{tmpdir as k}from"os";import{dirname as q,resolve as a,join as J,relative as H}from"path";function V(){try{let t=import.meta.resolve(`${R.packageName}/detox`);return q(t.startsWith("file://")?t.slice(7):t)}catch{return a(import.meta.dirname,"..","..","detox")}}var z=`
|
|
5
|
-
rnx detox \u2014 run detox-style tests against an rnx shell
|
|
6
|
-
|
|
7
|
-
usage:
|
|
8
|
-
rnx detox [testFiles...] run all tests under e2e/, test/e2e/, or detox/
|
|
9
|
-
rnx detox --config <path> use a specific jest config
|
|
10
|
-
rnx detox init scaffold sootsim-detox.config.cjs + sample test
|
|
11
|
-
rnx detox --watch jest watch mode
|
|
12
|
-
rnx detox --headed keep the rnx shell window visible
|
|
13
|
-
rnx detox -t <pattern> pass a jest --testNamePattern
|
|
14
|
-
rnx detox --no-launch skip auto-launching an rnx shell
|
|
15
|
-
|
|
16
|
-
rnx detox auto-launches an rnx shell if none is running on the
|
|
17
|
-
expected port. disable with --no-launch if you're managing the shell yourself.
|
|
18
|
-
`;async function ae(t,o={}){if((t.includes("--help")||t.includes("-h"))&&(console.log(z),process.exit(0)),t[0]==="init")return Y();let i=e=>{let s=t.indexOf(e);return s>=0?t[s+1]:void 0},n=e=>t.includes(e),u=n("--watch"),f=n("--headed"),d=n("--no-launch"),T=i("--config"),m=o.port||Number(process.env.SOOTSIM_PORT)||5173,A=t.filter((e,s)=>{if(e.startsWith("--")||e==="-t"||e==="-h")return!1;let r=t[s-1];return!(r==="--config"||r==="-t"||r==="--testNamePattern"||r==="--grep"||r==="--maxWorkers"||r==="--shard")}),L=t.flatMap((e,s)=>e==="--runInBand"||e.startsWith("--maxWorkers=")||e.startsWith("--shard=")?[e]:(e==="--maxWorkers"||e==="--shard")&&t[s+1]?[e,t[s+1]]:[]),O=["e2e","test/e2e","detox"],c=process.env.SOOTSIM_TEST_DIR?a(process.cwd(),process.env.SOOTSIM_TEST_DIR):null;if(!c)for(let e of O){let s=a(process.cwd(),e);if(g(s)){c=s;break}}c||(console.error(` error: no detox tests found. expected one of: ${O.join(", ")}
|
|
19
|
-
run 'rnx detox init' to scaffold a starter suite.`),process.exit(1)),d||await X(m);let l=["jest"],x=T||Q(["sootsim-detox.config.cjs","jest.config.cjs","jest.config.js"]),p=null;if(x)l.push("--config",a(process.cwd(),x));else{let e=a(V(),"jest-preset.cjs");p=J(k(),`sootsim-detox-${process.pid}.config.cjs`);let s={rootDir:c,roots:["<rootDir>"],testMatch:["<rootDir>/**/*.test.ts","<rootDir>/**/*.test.js"]};y(p,`module.exports = { ...require(${JSON.stringify(e)}), ...${JSON.stringify(s)} }
|
|
20
|
-
`),l.push("--config",p)}u&&l.push("--watch");let I=i("-t")||i("--testNamePattern")||i("--grep");I&&l.push("-t",I);let j=M(),b=!u&&F({uploadedShare:!1,auth:j}),h=process.env.SOOTSIM_JEST_OUTPUT_FILE||null;process.env.SOOTSIM_JEST_JSON==="1"&&l.push("--json"),process.env.SOOTSIM_JEST_OUTPUT_FILE?l.push("--outputFile",process.env.SOOTSIM_JEST_OUTPUT_FILE):b&&(h=J(k(),`sootsim-detox-results-${process.pid}.json`),l.push("--json","--outputFile",h)),l.push(...L),l.push(...A),console.log(" rnx detox"),console.log(` test dir: ${c}`),console.log(` port: ${m}${f?" (headed)":""}`),x&&console.log(` config: ${x}`);let S=G("npx",l,{cwd:process.cwd(),stdio:"inherit",env:{...process.env,SOOTSIM_TEST_DIR:c,SOOTSIM_PORT:String(m),SOOTSIM_HEADED:f?"1":"",SOOTSIM_URL:process.env.SOOTSIM_URL||`http://localhost:${m}`}}),v=e=>()=>{S.kill(e)},_=v("SIGTERM"),D=v("SIGINT");process.on("SIGTERM",_),process.on("SIGINT",D);let W=Date.now(),w=await new Promise((e,s)=>{S.once("error",s),S.once("exit",(r,P)=>{if(P){console.error(` error: jest terminated by ${P}`),e(1);return}e(r??1)})});if(process.off("SIGTERM",_),process.off("SIGINT",D),p)try{U(p)}catch{}if(b){let e=h?K(h):null,s=await E(),r=await $({origin:s,kind:"detox",name:H(process.cwd(),c)||"e2e",status:w===0?"passed":"failed",summary:e?`${e.numPassedTests}/${e.numTotalTests} tests passed`:null,failureMessage:w===0?null:e?.firstFailure??null,stepCount:e?.numTotalTests??null,failedStepIndex:e?.firstFailedIndex??null,durationMs:Date.now()-W,auth:j});r&&console.log(` run: ${r.id}`)}process.exit(w)}function K(t){try{let o=JSON.parse(C(t,"utf8")),i=null,n=null,u=0;for(let f of o.testResults??[])for(let d of f.testResults??[]){if(n==null&&d.status==="failed"){n=u;let T=d.failureMessages?.[0]?.split(`
|
|
21
|
-
`)[0];i=[d.fullName,T].filter(Boolean).join(": ")||null}u+=1}return typeof o.numTotalTests!="number"?null:{numTotalTests:o.numTotalTests,numPassedTests:o.numPassedTests??0,firstFailure:i,firstFailedIndex:n}}catch{return null}finally{if(!process.env.SOOTSIM_JEST_OUTPUT_FILE)try{U(t)}catch{}}}function Q(t){for(let o of t)if(g(a(process.cwd(),o)))return o;return null}async function X(t){await N()||console.warn(` warn: no rnx shell reachable on :${t}. start your app, then run \`rnx open <app-port>\`
|
|
22
|
-
or pass --no-launch if you're managing the shell yourself.`)}function Y(){let t=process.cwd(),o=a(t,"sootsim-detox.config.cjs");g(o)?console.log(` skip: ${o} already exists`):(y(o,`// rnx detox jest config.
|
|
23
|
-
// extends the sootsim preset, which rewrites \`import ... from 'detox'\`
|
|
24
|
-
// to the sootsim driver and keeps your jest transforms intact.
|
|
25
|
-
|
|
26
|
-
/** @type {import('@jest/types').Config.InitialOptions} */
|
|
27
|
-
module.exports = {
|
|
28
|
-
preset: 'rnxsim/detox/jest-preset',
|
|
29
|
-
rootDir: __dirname,
|
|
30
|
-
testMatch: ['<rootDir>/e2e/**/*.test.ts', '<rootDir>/e2e/**/*.test.js'],
|
|
31
|
-
}
|
|
32
|
-
`),console.log(` created ${o}`));let i=a(t,"e2e"),n=a(i,"example.test.ts");g(n)?console.log(` skip: ${n} already exists`):(B(i,{recursive:!0}),y(n,`// sample rnx detox test. resolve \`detox\` via the jest preset in
|
|
33
|
-
// sootsim-detox.config.cjs \u2014 no extra imports required.
|
|
34
|
-
|
|
35
|
-
import { by, device, element, expect, waitFor } from 'detox'
|
|
36
|
-
|
|
37
|
-
describe('example', () => {
|
|
38
|
-
beforeAll(async () => {
|
|
39
|
-
await device.launchApp()
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
it('shows the welcome text', async () => {
|
|
43
|
-
await waitFor(element(by.text('Welcome'))).toBeVisible().withTimeout(5000)
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
it('taps a button by id', async () => {
|
|
47
|
-
await element(by.id('start-button')).tap()
|
|
48
|
-
await expect(element(by.id('home-screen'))).toBeVisible()
|
|
49
|
-
})
|
|
50
|
-
})
|
|
51
|
-
`),console.log(` created ${n}`)),console.log(`
|
|
52
|
-
next:`),console.log(" rnx detox # run the sample"),console.log(" rnx detox --watch"),process.exit(0)}export{ae as runDetox};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import"./chunk-J66US2OZ.js";import{a,b,c,d,e,f,g}from"./chunk-TULWPOAY.js";import"./chunk-67ATAITF.js";import"./chunk-JAFF4RAU.js";import"./chunk-BGRGP3QR.js";import"./chunk-5VHWQGGF.js";import"./chunk-FHWZPUGC.js";import"./chunk-EVBQDQVY.js";export{c as ALL_DRIVERS,g as buildDriverListRows,a as electronDriver,d as getAllDrivers,e as getDriver,b as playwrightDriver,f as resolveDriver};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{c,d,e,f,g,h,i}from"./chunk-M5KJCLUW.js";import"./chunk-RI3NS77J.js";import"./chunk-EAFKG5R3.js";import"./chunk-XPOTXF5Q.js";import"./chunk-DBJZUCFP.js";import"./chunk-O2ORLK6W.js";import{a,b}from"./chunk-YE3M3YD4.js";import"./chunk-DQFOHIRF.js";import"./chunk-CYIE65QN.js";import"./chunk-UR345KM3.js";import"./chunk-IWPS3EKJ.js";import"./chunk-GZEUDDAW.js";import"./chunk-6BAF6GFS.js";import"./chunk-XXNPISER.js";import"./chunk-MACI34ST.js";import"./chunk-52ES4API.js";import"./chunk-622E4JET.js";import"./chunk-TULWPOAY.js";import"./chunk-67ATAITF.js";import"./chunk-ZGD7GZRI.js";import"./chunk-X5ZOZVHC.js";import"./chunk-NEH4T67X.js";import"./chunk-2CXHDTQ5.js";import"./chunk-XR4KID25.js";import"./chunk-4WFN4DFR.js";import"./chunk-W3UIDI3W.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-BGRGP3QR.js";import"./chunk-2JFZ5Z7Q.js";import"./chunk-R4FQZXJC.js";import"./chunk-EFL2ASZO.js";import"./chunk-5VHWQGGF.js";import"./chunk-MRNW4GVL.js";import"./chunk-XRO5WQXP.js";import"./chunk-FHWZPUGC.js";import"./chunk-FIXRGPUT.js";import"./chunk-EVBQDQVY.js";export{f as discoverSootsimUrl,c as getLastFlowPreviewUploadResult,d as getLastFlowTraceSteps,h as hoistLeadingSimFlag,a as parseFlowFile,e as resolveAppFrontmatterTarget,g as runFlowPlayback,i as runMaestroAuthoring,b as validateFlowFile};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a,b,c}from"./chunk-5AS7S6HY.js";import"./chunk-ZCP4CRP6.js";import"./chunk-XR4KID25.js";import"./chunk-4WFN4DFR.js";import"./chunk-W3UIDI3W.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-EFL2ASZO.js";import"./chunk-FHWZPUGC.js";import"./chunk-HIDS3PYC.js";import"./chunk-FIXRGPUT.js";import"./chunk-WGNDJARS.js";import"./chunk-EVBQDQVY.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{h as a,i as b}from"./chunk-YE3M3YD4.js";import"./chunk-DQFOHIRF.js";import"./chunk-CYIE65QN.js";import"./chunk-UR345KM3.js";import"./chunk-IWPS3EKJ.js";import"./chunk-GZEUDDAW.js";import"./chunk-6BAF6GFS.js";import"./chunk-XXNPISER.js";import"./chunk-MACI34ST.js";import"./chunk-52ES4API.js";import"./chunk-622E4JET.js";import"./chunk-TULWPOAY.js";import"./chunk-67ATAITF.js";import"./chunk-ZGD7GZRI.js";import"./chunk-X5ZOZVHC.js";import"./chunk-NEH4T67X.js";import"./chunk-2CXHDTQ5.js";import"./chunk-XR4KID25.js";import"./chunk-4WFN4DFR.js";import"./chunk-W3UIDI3W.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-BGRGP3QR.js";import"./chunk-2JFZ5Z7Q.js";import"./chunk-R4FQZXJC.js";import"./chunk-EFL2ASZO.js";import"./chunk-5VHWQGGF.js";import"./chunk-MRNW4GVL.js";import"./chunk-XRO5WQXP.js";import"./chunk-FHWZPUGC.js";import"./chunk-FIXRGPUT.js";import"./chunk-EVBQDQVY.js";export{a as printShellPerfReport,b as runInspect};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a}from"./chunk-OSZ5HZSI.js";import"./chunk-BGRGP3QR.js";import"./chunk-2SFMW5K6.js";import"./chunk-EVBQDQVY.js";export{a as runInstallDesktop};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a,b,c}from"./chunk-QIQL7Y5V.js";import"./chunk-XRO5WQXP.js";import"./chunk-2SFMW5K6.js";import"./chunk-FHWZPUGC.js";import"./chunk-EVBQDQVY.js";export{a as canPromptForPrivacyChoice,b as diagnosticsAllowedForCurrentProcess,c as ensurePrivacyChoice};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a}from"./chunk-ZTWUNK45.js";import"./chunk-52ES4API.js";import"./chunk-622E4JET.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-FHWZPUGC.js";import"./chunk-EVBQDQVY.js";export{a as runReset};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{c as a}from"./chunk-JRPU5TFI.js";import"./chunk-NEH4T67X.js";import"./chunk-2CXHDTQ5.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-MRNW4GVL.js";import"./chunk-FHWZPUGC.js";import"./chunk-FIXRGPUT.js";import"./chunk-EVBQDQVY.js";export{a as runRuntime};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a}from"./chunk-XKRUNS7A.js";import"./chunk-IWPS3EKJ.js";import"./chunk-GZEUDDAW.js";import"./chunk-6BAF6GFS.js";import"./chunk-XXNPISER.js";import"./chunk-MACI34ST.js";import"./chunk-52ES4API.js";import"./chunk-622E4JET.js";import"./chunk-TULWPOAY.js";import"./chunk-67ATAITF.js";import"./chunk-ZGD7GZRI.js";import"./chunk-X5ZOZVHC.js";import"./chunk-NEH4T67X.js";import"./chunk-2CXHDTQ5.js";import"./chunk-EFXNSJ55.js";import"./chunk-5AS7S6HY.js";import"./chunk-ZCP4CRP6.js";import"./chunk-XR4KID25.js";import"./chunk-4WFN4DFR.js";import"./chunk-W3UIDI3W.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-OSZ5HZSI.js";import"./chunk-BGRGP3QR.js";import"./chunk-EFL2ASZO.js";import"./chunk-5VHWQGGF.js";import"./chunk-MRNW4GVL.js";import"./chunk-25BTVHK2.js";import"./chunk-QIQL7Y5V.js";import"./chunk-XRO5WQXP.js";import"./chunk-2SFMW5K6.js";import"./chunk-FHWZPUGC.js";import"./chunk-HIDS3PYC.js";import"./chunk-FIXRGPUT.js";import"./chunk-WGNDJARS.js";import"./chunk-EVBQDQVY.js";export{a as runSetup};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{m as a}from"./chunk-52ES4API.js";import"./chunk-622E4JET.js";import{q as c,s as l}from"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-FHWZPUGC.js";import"./chunk-EVBQDQVY.js";function g(t){return!!t&&typeof t=="object"&&typeof Reflect.get(t,"capturedAt")=="number"}function p(){console.log(`
|
|
5
|
-
rnx state - capture the current app state in one call
|
|
6
|
-
|
|
7
|
-
usage:
|
|
8
|
-
rnx state [--json] [--sim <id>]
|
|
9
|
-
|
|
10
|
-
options:
|
|
11
|
-
--json print the complete structured result, including the screenshot
|
|
12
|
-
--sim <id> target a specific sim
|
|
13
|
-
--port <p> WS bridge port
|
|
14
|
-
`)}async function h(t,u={}){if(t.includes("--help")||t.includes("-h"))return p(),0;let o=c(t,{port:u.port,stripBooleanFlags:["--json"]});if(o.positional.length>0)return console.error(` unexpected state argument: ${o.positional[0]}`),1;let n=l(o);try{let e=await n.send({type:"state"});if(!g(e))throw new Error("state bridge returned an invalid result");if(t.includes("--json"))return console.log(JSON.stringify(e)),0;let r=e.route;if(console.log(` route: ${r?.screen??r?.url??"(unknown)"}`),r?.stack?.length&&console.log(` stack: ${r.stack.join(" > ")}`),console.log(` keyboard: ${e.keyboard?.visible?"visible":"hidden"}`),console.log(""),console.log(typeof e.tree=="string"?e.tree:JSON.stringify(e.tree)),console.log(""),e.recentErrors?.length){console.log(` recent errors (${e.recentErrors.length}):`);for(let i of e.recentErrors)console.log(` [${i.level}] ${i.text}`)}else console.log(" recent errors: none");let s=typeof e.screenshot=="string"?e.screenshot.length:0;return console.log(s>0?` screenshot: captured (${s} characters; use --json to read it)`:" screenshot: unavailable"),0}catch(e){return console.error(` state failed: ${e instanceof Error?e.message:e}`),await a(n),1}finally{n.close()}}export{h as runState};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a}from"./chunk-ZGD7GZRI.js";import"./chunk-W3UIDI3W.js";import"./chunk-EVBQDQVY.js";export{a as settingsStore};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a,b,c,d}from"./chunk-25BTVHK2.js";import"./chunk-QIQL7Y5V.js";import"./chunk-XRO5WQXP.js";import"./chunk-2SFMW5K6.js";import"./chunk-FHWZPUGC.js";import"./chunk-EVBQDQVY.js";export{a as buildCliDiagnosticEvent,d as flushCliTelemetry,b as trackCliDiagnostic,c as trackCliError};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{e as a,f as b,g as c}from"./chunk-XPOTXF5Q.js";import"./chunk-DBJZUCFP.js";import"./chunk-O2ORLK6W.js";import"./chunk-XXNPISER.js";import"./chunk-MACI34ST.js";import"./chunk-X5ZOZVHC.js";import"./chunk-2CXHDTQ5.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-FHWZPUGC.js";import"./chunk-FIXRGPUT.js";import"./chunk-EVBQDQVY.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import { createRequire as __sootsimCreateRequire } from 'node:module'
|
|
3
|
-
var require = __sootsimCreateRequire(import.meta.url)
|
|
4
|
-
import{a as t}from"./chunk-XKRUNS7A.js";import{r as e}from"./chunk-IWPS3EKJ.js";import"./chunk-GZEUDDAW.js";import"./chunk-6BAF6GFS.js";import"./chunk-XXNPISER.js";import"./chunk-MACI34ST.js";import"./chunk-52ES4API.js";import"./chunk-622E4JET.js";import"./chunk-TULWPOAY.js";import"./chunk-67ATAITF.js";import"./chunk-ZGD7GZRI.js";import"./chunk-X5ZOZVHC.js";import"./chunk-NEH4T67X.js";import"./chunk-2CXHDTQ5.js";import"./chunk-EFXNSJ55.js";import"./chunk-5AS7S6HY.js";import"./chunk-ZCP4CRP6.js";import"./chunk-XR4KID25.js";import"./chunk-4WFN4DFR.js";import"./chunk-W3UIDI3W.js";import"./chunk-ZGH5U4AJ.js";import"./chunk-JAFF4RAU.js";import"./chunk-OSZ5HZSI.js";import"./chunk-BGRGP3QR.js";import"./chunk-EFL2ASZO.js";import"./chunk-5VHWQGGF.js";import"./chunk-MRNW4GVL.js";import"./chunk-25BTVHK2.js";import{a as r}from"./chunk-QIQL7Y5V.js";import"./chunk-XRO5WQXP.js";import{f as o}from"./chunk-2SFMW5K6.js";import{C as n}from"./chunk-FHWZPUGC.js";import"./chunk-HIDS3PYC.js";import"./chunk-FIXRGPUT.js";import"./chunk-WGNDJARS.js";import"./chunk-EVBQDQVY.js";async function u(){return!n()&&r()?(await t([],{launchConnectRN:!0}),0):(o("Run any React Native app in a local simulator."),console.log(`
|
|
5
|
-
Opening ConnectRN`),await e(["ConnectRN","--no-describe","--quiet"]),0)}export{u as runWelcome};
|