rnxsim 0.1.313 → 0.1.314

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.
Files changed (297) hide show
  1. package/LICENSE +11 -10
  2. package/README.md +5 -0
  3. package/cli/app-config.ts +65 -0
  4. package/cli/app-fonts.ts +408 -0
  5. package/cli/app-project.ts +231 -0
  6. package/cli/app-splash.ts +185 -0
  7. package/cli/app-state-reset.ts +24 -0
  8. package/cli/auth.ts +155 -0
  9. package/cli/bin.ts +594 -0
  10. package/cli/bridge-diagnostics.ts +226 -0
  11. package/cli/bridge-flow-runner.ts +2830 -0
  12. package/cli/browser-evals.ts +96 -0
  13. package/cli/commands/agent-wrapper.ts +986 -0
  14. package/cli/commands/agent.ts +423 -0
  15. package/cli/commands/app-fonts.ts +98 -0
  16. package/cli/commands/assert.ts +541 -0
  17. package/cli/commands/auth.ts +59 -0
  18. package/cli/commands/camera.ts +266 -0
  19. package/cli/commands/cleanup.ts +169 -0
  20. package/cli/commands/compat.ts +87 -0
  21. package/cli/commands/config.ts +32 -0
  22. package/cli/commands/control.ts +2142 -0
  23. package/cli/commands/cpu-profile.ts +269 -0
  24. package/cli/commands/daemon-mac-app.ts +169 -0
  25. package/cli/commands/daemon.ts +874 -0
  26. package/cli/commands/debug.ts +719 -0
  27. package/cli/commands/desktop.ts +39 -0
  28. package/cli/commands/detect.ts +197 -0
  29. package/cli/commands/detox.ts +385 -0
  30. package/cli/commands/device.ts +133 -0
  31. package/cli/commands/diagnose.ts +589 -0
  32. package/cli/commands/electron.ts +95 -0
  33. package/cli/commands/film.ts +379 -0
  34. package/cli/commands/flow.ts +1124 -0
  35. package/cli/commands/inspect/actions.ts +622 -0
  36. package/cli/commands/inspect/core.ts +2405 -0
  37. package/cli/commands/inspect/count.ts +17 -0
  38. package/cli/commands/inspect/describe.ts +192 -0
  39. package/cli/commands/inspect/env.ts +23 -0
  40. package/cli/commands/inspect/find.ts +171 -0
  41. package/cli/commands/inspect/get-layout.ts +39 -0
  42. package/cli/commands/inspect/keyboard.ts +52 -0
  43. package/cli/commands/inspect/list.ts +58 -0
  44. package/cli/commands/inspect/memory.ts +215 -0
  45. package/cli/commands/inspect/redaction.ts +39 -0
  46. package/cli/commands/inspect/resolve-target.ts +82 -0
  47. package/cli/commands/inspect/screens.ts +78 -0
  48. package/cli/commands/inspect/settle.ts +22 -0
  49. package/cli/commands/inspect/settling.ts +158 -0
  50. package/cli/commands/inspect/shared.ts +353 -0
  51. package/cli/commands/inspect/sleep.ts +14 -0
  52. package/cli/commands/inspect/tree.ts +32 -0
  53. package/cli/commands/inspect/url.ts +17 -0
  54. package/cli/commands/inspect/wait-event.ts +210 -0
  55. package/cli/commands/inspect/wait-idle.ts +24 -0
  56. package/cli/commands/inspect/wait-ready.ts +74 -0
  57. package/cli/commands/inspect/wait-selector.ts +54 -0
  58. package/cli/commands/inspect/wait.ts +31 -0
  59. package/cli/commands/inspect.ts +4519 -0
  60. package/cli/commands/install-desktop.ts +351 -0
  61. package/cli/commands/login.ts +331 -0
  62. package/cli/commands/logout.ts +31 -0
  63. package/cli/commands/maestro-generate.ts +361 -0
  64. package/cli/commands/maestro.ts +453 -0
  65. package/cli/commands/mode.ts +57 -0
  66. package/cli/commands/no-bridge-hint.ts +80 -0
  67. package/cli/commands/perf.ts +66 -0
  68. package/cli/commands/permissions.ts +203 -0
  69. package/cli/commands/profile.ts +108 -0
  70. package/cli/commands/react.ts +353 -0
  71. package/cli/commands/record.ts +1434 -0
  72. package/cli/commands/report-issue.ts +305 -0
  73. package/cli/commands/reset.ts +85 -0
  74. package/cli/commands/runtime.ts +351 -0
  75. package/cli/commands/screenshot-command.ts +106 -0
  76. package/cli/commands/screenshot-layers.ts +143 -0
  77. package/cli/commands/screenshot-mode.ts +37 -0
  78. package/cli/commands/screenshot.ts +488 -0
  79. package/cli/commands/screenshots-capture.ts +607 -0
  80. package/cli/commands/screenshots.ts +127 -0
  81. package/cli/commands/serve.ts +168 -0
  82. package/cli/commands/setup.ts +545 -0
  83. package/cli/commands/shell-boolean-mode.ts +81 -0
  84. package/cli/commands/skills.ts +467 -0
  85. package/cli/commands/slides.ts +361 -0
  86. package/cli/commands/state.ts +87 -0
  87. package/cli/commands/storage.ts +58 -0
  88. package/cli/commands/telemetry.ts +54 -0
  89. package/cli/commands/three-mode.ts +763 -0
  90. package/cli/commands/timeline.ts +122 -0
  91. package/cli/commands/upgrade.ts +208 -0
  92. package/cli/commands/upload.ts +1225 -0
  93. package/cli/commands/version.ts +54 -0
  94. package/cli/commands/what-happened.ts +327 -0
  95. package/cli/current-sim.ts +204 -0
  96. package/cli/desktop-companion.ts +300 -0
  97. package/cli/drivers/electron.ts +70 -0
  98. package/cli/drivers/index.ts +20 -0
  99. package/cli/drivers/playwright-provisioning.ts +180 -0
  100. package/cli/drivers/playwright.ts +698 -0
  101. package/cli/drivers/registry.ts +65 -0
  102. package/cli/drivers/types.ts +102 -0
  103. package/cli/flow-file.ts +142 -0
  104. package/cli/flow-live-status.ts +120 -0
  105. package/cli/flow-session.ts +187 -0
  106. package/cli/help.ts +80 -0
  107. package/cli/hidden-runtime-alias.ts +19 -0
  108. package/cli/hints.ts +216 -0
  109. package/cli/inspect-notice-state.ts +114 -0
  110. package/cli/maestro-js.ts +334 -0
  111. package/cli/open-url.ts +8 -0
  112. package/cli/parent-pid.ts +204 -0
  113. package/cli/parse-args.ts +211 -0
  114. package/cli/prompt.ts +51 -0
  115. package/cli/recording-access.ts +107 -0
  116. package/cli/registry.ts +1 -0
  117. package/cli/resolve-assets.ts +63 -0
  118. package/cli/run-registry.ts +226 -0
  119. package/cli/runtime-notes.ts +66 -0
  120. package/cli/runtime-summary.ts +25 -0
  121. package/cli/setup-repository.ts +187 -0
  122. package/cli/telemetry.ts +187 -0
  123. package/cli/ws-bridge.ts +798 -0
  124. package/dist-cli/bin.js +5 -5
  125. package/dist-cli/chunks/{agent-XZ2KTPCU.js → agent-7YBDCYMA.js} +2 -2
  126. package/dist-cli/chunks/{agent-wrapper-JJYYW2WH.js → agent-wrapper-2GHFBHCR.js} +2 -2
  127. package/dist-cli/chunks/{app-fonts-IXRNQG6B.js → app-fonts-RSNVPQSU.js} +2 -2
  128. package/dist-cli/chunks/{assert-54T5SK5F.js → assert-XCMX3XJX.js} +2 -2
  129. package/dist-cli/chunks/{auth-FI5UDI45.js → auth-B442HRAX.js} +2 -2
  130. package/dist-cli/chunks/{beta-JV6UKADW.js → beta-XJ55JK3M.js} +2 -2
  131. package/dist-cli/chunks/camera-UGYSSLIK.js +33 -0
  132. package/dist-cli/chunks/{chunk-3NV2NCNX.js → chunk-277AEQZX.js} +2 -2
  133. package/dist-cli/chunks/{chunk-2YR5BGA5.js → chunk-2JNSK774.js} +2 -2
  134. package/dist-cli/chunks/{chunk-RSZWCKNT.js → chunk-32WOTSTR.js} +3 -3
  135. package/dist-cli/chunks/{chunk-WEXDAC74.js → chunk-3S753SNQ.js} +2 -2
  136. package/dist-cli/chunks/{chunk-IJO63TDP.js → chunk-46ZOLOYA.js} +2 -2
  137. package/dist-cli/chunks/{chunk-WUSWBCWA.js → chunk-5L7ELDQL.js} +8 -9
  138. package/dist-cli/chunks/{chunk-WF3T4SVI.js → chunk-7OOPFSQS.js} +2 -2
  139. package/dist-cli/chunks/{chunk-TZFFR3SD.js → chunk-7SV3RPRW.js} +2 -2
  140. package/dist-cli/chunks/{chunk-WWZIXIRD.js → chunk-7ZC35MOU.js} +1 -1
  141. package/dist-cli/chunks/chunk-AMG5E6CC.js +9 -0
  142. package/dist-cli/chunks/{chunk-WINYQ44O.js → chunk-APWNH3A4.js} +1 -1
  143. package/dist-cli/chunks/chunk-B57XUKY3.js +4 -0
  144. package/dist-cli/chunks/{chunk-YDGQTMQL.js → chunk-C2NL26TD.js} +1 -1
  145. package/dist-cli/chunks/{chunk-NMF2ZMZQ.js → chunk-D2FNUWAB.js} +4 -4
  146. package/dist-cli/chunks/{chunk-YIFT42WN.js → chunk-E5T4XSJ3.js} +2 -2
  147. package/dist-cli/chunks/{chunk-46EUUFJ5.js → chunk-EAC34EQS.js} +1 -1
  148. package/dist-cli/chunks/{chunk-OVFJFXUD.js → chunk-EG32ML36.js} +2 -2
  149. package/dist-cli/chunks/{chunk-5YJCOWCH.js → chunk-FXUAC6D5.js} +1 -1
  150. package/dist-cli/chunks/chunk-GQSL4USA.js +6 -0
  151. package/dist-cli/chunks/{chunk-VFCMSYZK.js → chunk-HAXW27SS.js} +2 -2
  152. package/dist-cli/chunks/{chunk-2D2UPBBR.js → chunk-IZAHPAN6.js} +1 -1
  153. package/dist-cli/chunks/{chunk-7GN3LVWB.js → chunk-J62KM5TB.js} +2 -2
  154. package/dist-cli/chunks/{chunk-BTWORNNG.js → chunk-JEMCD5E4.js} +1 -1
  155. package/dist-cli/chunks/{chunk-DCEMHR2Y.js → chunk-JZS3Q37N.js} +2 -2
  156. package/dist-cli/chunks/{chunk-D4FFVGI5.js → chunk-KR4JON7D.js} +1 -1
  157. package/dist-cli/chunks/chunk-KWCYKQIQ.js +4 -0
  158. package/dist-cli/chunks/{chunk-VNQEB4L7.js → chunk-MCWPL644.js} +2 -2
  159. package/dist-cli/chunks/chunk-MJYK3N2I.js +4 -0
  160. package/dist-cli/chunks/{chunk-5TEF3ET3.js → chunk-O6TRIZNS.js} +2 -2
  161. package/dist-cli/chunks/{chunk-QKDWYITG.js → chunk-P7XL2E73.js} +3 -3
  162. package/dist-cli/chunks/{chunk-BBULZ7CG.js → chunk-PFQTUKQ4.js} +62 -87
  163. package/dist-cli/chunks/{chunk-GGRX24GF.js → chunk-PG5RZCTN.js} +2 -2
  164. package/dist-cli/chunks/{chunk-W6K4EFPH.js → chunk-QGRI2Z4M.js} +2 -2
  165. package/dist-cli/chunks/{chunk-ZMJD5GEC.js → chunk-QLXXE7GE.js} +1 -1
  166. package/dist-cli/chunks/{chunk-VZXWHRUZ.js → chunk-QOJJJWJE.js} +89 -133
  167. package/dist-cli/chunks/{chunk-OZSSI4WN.js → chunk-RWZY5427.js} +2 -2
  168. package/dist-cli/chunks/{chunk-UC6U3MML.js → chunk-RZKU2K3J.js} +2 -2
  169. package/dist-cli/chunks/{chunk-IJ5CAZZC.js → chunk-SBV4IK4H.js} +1 -1
  170. package/dist-cli/chunks/{chunk-DZS6WPUI.js → chunk-SGMVFFMK.js} +1 -1
  171. package/dist-cli/chunks/{chunk-OHAZNXLK.js → chunk-TAX4UT2N.js} +1 -1
  172. package/dist-cli/chunks/{chunk-5DHC6KHQ.js → chunk-TUOFAWXT.js} +1 -1
  173. package/dist-cli/chunks/{chunk-GASE6UBA.js → chunk-UHZLOHGP.js} +1 -1
  174. package/dist-cli/chunks/{chunk-F5ZRSS3C.js → chunk-VC7V76U3.js} +1 -1
  175. package/dist-cli/chunks/{chunk-RTN5C5RL.js → chunk-VQVMLW4U.js} +1 -1
  176. package/dist-cli/chunks/{chunk-WMIIKMGK.js → chunk-VUKKYPZN.js} +2 -2
  177. package/dist-cli/chunks/{chunk-5TPRP5QT.js → chunk-WGGRJDRE.js} +1 -1
  178. package/dist-cli/chunks/chunk-X6H76EKP.js +15 -0
  179. package/dist-cli/chunks/chunk-XLZ5FNRT.js +27 -0
  180. package/dist-cli/chunks/{chunk-HI5TFJWN.js → chunk-XULEACM4.js} +2 -2
  181. package/dist-cli/chunks/{chunk-MJRLLB4R.js → chunk-YFSDM7AX.js} +4 -4
  182. package/dist-cli/chunks/chunk-YWI3UEVX.js +5 -0
  183. package/dist-cli/chunks/{chunk-XEVZYVIW.js → chunk-ZBSJO4NB.js} +10 -9
  184. package/dist-cli/chunks/{cleanup-P27PA6JI.js → cleanup-EYLGCA6Z.js} +2 -2
  185. package/dist-cli/chunks/cli-version-LL2UGIHE.js +4 -0
  186. package/dist-cli/chunks/{compat-ZD65FED3.js → compat-TLJYHB4E.js} +2 -2
  187. package/dist-cli/chunks/{config-XMJRNM2A.js → config-4JWUOEXK.js} +2 -2
  188. package/dist-cli/chunks/{control-KMIQT3QP.js → control-HPAOYF4N.js} +2 -2
  189. package/dist-cli/chunks/daemon-OYLASXLE.js +4 -0
  190. package/dist-cli/chunks/{debug-PT4HOP7N.js → debug-4BKXF6KI.js} +5 -5
  191. package/dist-cli/chunks/{desktop-S3FG72AK.js → desktop-ZQ6ZD2S6.js} +3 -3
  192. package/dist-cli/chunks/{detox-B3D4IFCN.js → detox-WNPASSS3.js} +2 -2
  193. package/dist-cli/chunks/{device-XBNDSB2R.js → device-BXLXVG3V.js} +2 -2
  194. package/dist-cli/chunks/{diagnose-HMQXJE5N.js → diagnose-3QX7W5RW.js} +2 -2
  195. package/dist-cli/chunks/{disk-cleanup-BLCZ5BSZ.js → disk-cleanup-KSWKI7WB.js} +2 -2
  196. package/dist-cli/chunks/drivers-EPIEFF7P.js +4 -0
  197. package/dist-cli/chunks/{film-BJGTBYZB.js → film-GDMR33VO.js} +3 -3
  198. package/dist-cli/chunks/flow-NKMPBYCJ.js +4 -0
  199. package/dist-cli/chunks/help-OGCBHOKA.js +4 -0
  200. package/dist-cli/chunks/{hidden-runtime-alias-ANOYADHM.js → hidden-runtime-alias-S2GTDX3T.js} +2 -2
  201. package/dist-cli/chunks/home-paths-QRCDLTTV.js +4 -0
  202. package/dist-cli/chunks/inspect-FUYMOZPY.js +4 -0
  203. package/dist-cli/chunks/install-desktop-FR6YKW7Y.js +4 -0
  204. package/dist-cli/chunks/{login-FJ737MWG.js → login-IJAPUZHI.js} +4 -4
  205. package/dist-cli/chunks/{logout-ZCNMMHMY.js → logout-QMXDFU2X.js} +2 -2
  206. package/dist-cli/chunks/{maestro-SZTNKLDF.js → maestro-ZXU3YCVX.js} +3 -3
  207. package/dist-cli/chunks/{maestro-generate-DCFAIZ4H.js → maestro-generate-PYB5QY7K.js} +3 -3
  208. package/dist-cli/chunks/{mode-GRMQCRXR.js → mode-WGUCL5FZ.js} +2 -2
  209. package/dist-cli/chunks/{optional-demo-registry-W36EWFFB.js → optional-demo-registry-WH2O6H36.js} +2 -2
  210. package/dist-cli/chunks/{perf-QYBAAUZG.js → perf-TOD3UFAH.js} +2 -2
  211. package/dist-cli/chunks/{permissions-3QCQ6VF4.js → permissions-I5BRJGTB.js} +2 -2
  212. package/dist-cli/chunks/{record-QPPC2S4E.js → record-ZYL2FYSK.js} +3 -3
  213. package/dist-cli/chunks/{report-issue-7NMFP4HK.js → report-issue-TAI6DYZO.js} +2 -2
  214. package/dist-cli/chunks/reset-7YGYKQPQ.js +4 -0
  215. package/dist-cli/chunks/runtime-B4JO6QRI.js +4 -0
  216. package/dist-cli/chunks/{screenshot-command-67AECJFB.js → screenshot-command-7ANLODZY.js} +7 -7
  217. package/dist-cli/chunks/{screenshot-layers-ASWBYPJL.js → screenshot-layers-A7FYXSVU.js} +3 -3
  218. package/dist-cli/chunks/{screenshots-capture-PXA3HFQK.js → screenshots-capture-WT2ZY6CB.js} +2 -2
  219. package/dist-cli/chunks/serve-TG5WKA4V.js +44 -0
  220. package/dist-cli/chunks/{setup-7DWPMRSB.js → setup-PCWLD22V.js} +2 -2
  221. package/dist-cli/chunks/{skills-S3Y22TUA.js → skills-27ZHWCQS.js} +2 -2
  222. package/dist-cli/chunks/state-ZQVY46ZO.js +14 -0
  223. package/dist-cli/chunks/{storage-XUIMJWAJ.js → storage-OYC57C4X.js} +6 -6
  224. package/dist-cli/chunks/store-32HSPZHI.js +4 -0
  225. package/dist-cli/chunks/telemetry-PBJR7XHR.js +4 -0
  226. package/dist-cli/chunks/{timeline-TMPLQPSP.js → timeline-RAJJFQT6.js} +2 -2
  227. package/dist-cli/chunks/{upgrade-7HDSIM7K.js → upgrade-OEFNZRIP.js} +2 -2
  228. package/dist-cli/chunks/upload-LQJITLKK.js +4 -0
  229. package/dist-cli/chunks/version-NIXTY6PL.js +6 -0
  230. package/dist-cli/chunks/{web-DG3WBYD3.js → web-XBUTBVGR.js} +2 -2
  231. package/dist-cli/chunks/{what-happened-XFVUTZR7.js → what-happened-YNHRFUDX.js} +3 -3
  232. package/dist-lib/agent-daemon-client.cjs +1 -1
  233. package/dist-lib/agent-events.cjs +1 -1
  234. package/dist-lib/agent-identity.cjs +1 -1
  235. package/dist-lib/agent-sessions.cjs +1 -1
  236. package/dist-lib/attached-projects.cjs +1 -1
  237. package/dist-lib/auth/shared-session.cjs +1 -1
  238. package/dist-lib/backend-origin.cjs +1 -1
  239. package/dist-lib/beta.cjs +1 -1
  240. package/dist-lib/beta.mjs +1 -1
  241. package/dist-lib/bridge-constants.cjs +1 -1
  242. package/dist-lib/bridge-contract.cjs +20 -0
  243. package/dist-lib/cli-constants.cjs +1 -1
  244. package/dist-lib/config.cjs +1 -1
  245. package/dist-lib/detox/index.cjs +1 -1
  246. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  247. package/dist-lib/home-paths.cjs +67 -28
  248. package/dist-lib/host/bridge-host.cjs +140 -12
  249. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  250. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  251. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  252. package/dist-lib/host/websocket-proxy.cjs +1 -1
  253. package/dist-lib/index.cjs +2815 -40
  254. package/dist-lib/jump-to-source-babel.cjs +1 -1
  255. package/dist-lib/menu.cjs +1 -1
  256. package/dist-lib/menu.mjs +1 -1
  257. package/dist-lib/metro.cjs +1 -1
  258. package/dist-lib/profiles.cjs +1 -1
  259. package/dist-lib/public-brand.cjs +1 -1
  260. package/dist-lib/render-mode.cjs +1 -1
  261. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  262. package/dist-lib/sdk.cjs +2549 -2061
  263. package/dist-lib/sdk.mjs +2543 -2061
  264. package/dist-lib/skills.cjs +480 -280
  265. package/dist-lib/vite.cjs +1 -1
  266. package/package.json +8 -2
  267. package/src/bridge-constants.ts +3 -4
  268. package/src/bridge-contract.ts +251 -0
  269. package/src/connect.ts +83 -0
  270. package/src/disk-cleanup.ts +30 -0
  271. package/src/home-paths.ts +81 -38
  272. package/src/host/bridge-host.ts +134 -6
  273. package/src/index.ts +27 -1
  274. package/src/sdk.ts +8 -0
  275. package/src/sim-client.ts +660 -0
  276. package/dist-cli/chunks/camera-VL73YIKP.js +0 -22
  277. package/dist-cli/chunks/chunk-4NPPOV2N.js +0 -5
  278. package/dist-cli/chunks/chunk-FSUYIVJ6.js +0 -9
  279. package/dist-cli/chunks/chunk-G2WW6L2C.js +0 -23
  280. package/dist-cli/chunks/chunk-KTHV3RUS.js +0 -26
  281. package/dist-cli/chunks/chunk-LF2ZVT7O.js +0 -6
  282. package/dist-cli/chunks/chunk-NFK7T35W.js +0 -4
  283. package/dist-cli/chunks/chunk-TIVZIMMW.js +0 -4
  284. package/dist-cli/chunks/cli-version-WWLPBDQ7.js +0 -4
  285. package/dist-cli/chunks/daemon-G2ME7NLB.js +0 -4
  286. package/dist-cli/chunks/drivers-LDECZGP2.js +0 -4
  287. package/dist-cli/chunks/flow-UEQNVTU7.js +0 -4
  288. package/dist-cli/chunks/help-T5FYSVGB.js +0 -4
  289. package/dist-cli/chunks/home-paths-GT3LFNOR.js +0 -4
  290. package/dist-cli/chunks/inspect-ZA6XF5LD.js +0 -4
  291. package/dist-cli/chunks/install-desktop-TIMUDHPL.js +0 -4
  292. package/dist-cli/chunks/runtime-XOAXMSTU.js +0 -4
  293. package/dist-cli/chunks/serve-BI2NBAXG.js +0 -44
  294. package/dist-cli/chunks/store-JTHEJLAZ.js +0 -4
  295. package/dist-cli/chunks/telemetry-ZYJGD2DB.js +0 -4
  296. package/dist-cli/chunks/upload-GMSZPWM6.js +0 -4
  297. package/dist-cli/chunks/version-HOCHZ37L.js +0 -6
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.313 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.314 | (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;
@@ -36,11 +36,12 @@ __export(home_paths_exports, {
36
36
  CONFIG_FILE: () => CONFIG_FILE,
37
37
  DAEMON_HEARTBEAT_STALE_MS: () => DAEMON_HEARTBEAT_STALE_MS,
38
38
  DAEMON_LOCKFILE: () => DAEMON_LOCKFILE,
39
- DEV_BRIDGE_LOCKFILE: () => DEV_BRIDGE_LOCKFILE,
39
+ DEV_BRIDGES_DIR: () => DEV_BRIDGES_DIR,
40
40
  SOOTSIM_HOME_ENV: () => SOOTSIM_HOME_ENV,
41
41
  activeRuntimeDir: () => activeRuntimeDir,
42
42
  activeRuntimeFile: () => activeRuntimeFile,
43
43
  cacheDir: () => cacheDir,
44
+ cameraFixturesDir: () => cameraFixturesDir,
44
45
  claimDaemonLockfile: () => claimDaemonLockfile,
45
46
  configFilePath: () => configFilePath,
46
47
  consumeRuntimeUpgradeNotice: () => consumeRuntimeUpgradeNotice,
@@ -49,6 +50,7 @@ __export(home_paths_exports, {
49
50
  daemonAppLauncherPath: () => daemonAppLauncherPath,
50
51
  daemonLockfilePath: () => daemonLockfilePath,
51
52
  devBridgeLockfilePath: () => devBridgeLockfilePath,
53
+ devBridgesDir: () => devBridgesDir,
52
54
  electronDir: () => electronDir,
53
55
  electronUserDataDir: () => electronUserDataDir,
54
56
  electronVersionDir: () => electronVersionDir,
@@ -60,7 +62,7 @@ __export(home_paths_exports, {
60
62
  profilesDir: () => profilesDir,
61
63
  readActiveRuntime: () => readActiveRuntime,
62
64
  readDaemonLockfile: () => readDaemonLockfile,
63
- readDevBridgeLockfile: () => readDevBridgeLockfile,
65
+ readDevBridgeLockfiles: () => readDevBridgeLockfiles,
64
66
  readLiveRuntimeVersions: () => readLiveRuntimeVersions,
65
67
  readOrCreateAnonymousId: () => readOrCreateAnonymousId,
66
68
  readPrivacyPreferences: () => readPrivacyPreferences,
@@ -87,7 +89,7 @@ var import_node_path = __toESM(require("node:path"), 1);
87
89
  var SOOTSIM_HOME_ENV = "SOOTSIM_HOME";
88
90
  var ACTIVE_RUNTIME_FILE = "active";
89
91
  var DAEMON_LOCKFILE = "daemon.json";
90
- var DEV_BRIDGE_LOCKFILE = "dev-bridge.json";
92
+ var DEV_BRIDGES_DIR = "dev-bridges";
91
93
  var CONFIG_FILE = "config.json";
92
94
  var DAEMON_HEARTBEAT_STALE_MS = 3e4;
93
95
  function sootsimHomeDir() {
@@ -137,6 +139,9 @@ function electronVersionDir(version) {
137
139
  function profilesDir() {
138
140
  return import_node_path.default.join(sootsimHomeDir(), "profiles");
139
141
  }
142
+ function cameraFixturesDir() {
143
+ return import_node_path.default.join(sootsimHomeDir(), "camera-fixtures");
144
+ }
140
145
  function daemonAppDir() {
141
146
  return import_node_path.default.join(sootsimHomeDir(), "daemon-app");
142
147
  }
@@ -152,8 +157,14 @@ function cacheDir() {
152
157
  function daemonLockfilePath() {
153
158
  return import_node_path.default.join(sootsimHomeDir(), DAEMON_LOCKFILE);
154
159
  }
155
- function devBridgeLockfilePath() {
156
- return import_node_path.default.join(sootsimHomeDir(), DEV_BRIDGE_LOCKFILE);
160
+ function devBridgesDir() {
161
+ return import_node_path.default.join(sootsimHomeDir(), DEV_BRIDGES_DIR);
162
+ }
163
+ function devBridgeLockfilePath(bridgePort) {
164
+ if (!Number.isInteger(bridgePort) || bridgePort <= 0) {
165
+ throw new Error(`invalid development bridge port: ${bridgePort}`);
166
+ }
167
+ return import_node_path.default.join(devBridgesDir(), `${bridgePort}.json`);
157
168
  }
158
169
  function configFilePath() {
159
170
  return import_node_path.default.join(sootsimHomeDir(), CONFIG_FILE);
@@ -283,25 +294,47 @@ function readDaemonLockfile() {
283
294
  return null;
284
295
  }
285
296
  }
286
- function readDevBridgeLockfile() {
297
+ function parseDevBridgeLockfile(raw) {
287
298
  try {
288
- const fd = import_node_fs.default.openSync(devBridgeLockfilePath(), "r");
289
- try {
290
- const buf = Buffer.alloc(DAEMON_LOCKFILE_MAX_BYTES);
291
- const bytesRead = import_node_fs.default.readSync(fd, buf, 0, DAEMON_LOCKFILE_MAX_BYTES, 0);
292
- const raw = buf.subarray(0, bytesRead).toString("utf8");
293
- const parsed = JSON.parse(raw);
294
- if (parsed && parsed.schema === 1 && parsed.source === "vite-dev" && typeof parsed.pid === "number" && typeof parsed.bridgePort === "number" && typeof parsed.runtimePort === "number" && typeof parsed.cwd === "string" && typeof parsed.startedAt === "number" && typeof parsed.heartbeatAt === "number" && (parsed.shellPort === void 0 || typeof parsed.shellPort === "number") && (parsed.servedRuntimes === void 0 || Array.isArray(parsed.servedRuntimes) && parsed.servedRuntimes.every((version) => typeof version === "string"))) {
295
- return parsed;
296
- }
297
- return null;
298
- } finally {
299
- import_node_fs.default.closeSync(fd);
299
+ const parsed = JSON.parse(raw);
300
+ if (parsed && parsed.schema === 1 && parsed.source === "vite-dev" && typeof parsed.pid === "number" && typeof parsed.bridgePort === "number" && typeof parsed.runtimePort === "number" && typeof parsed.cwd === "string" && typeof parsed.startedAt === "number" && typeof parsed.heartbeatAt === "number" && (parsed.shellPort === void 0 || typeof parsed.shellPort === "number") && (parsed.servedRuntimes === void 0 || Array.isArray(parsed.servedRuntimes) && parsed.servedRuntimes.every((version) => typeof version === "string"))) {
301
+ return parsed;
300
302
  }
303
+ return null;
301
304
  } catch {
302
305
  return null;
303
306
  }
304
307
  }
308
+ function readDevBridgeLockfiles() {
309
+ let entries;
310
+ try {
311
+ entries = import_node_fs.default.readdirSync(devBridgesDir(), { withFileTypes: true });
312
+ } catch {
313
+ return [];
314
+ }
315
+ const lockfiles = [];
316
+ for (const entry of entries) {
317
+ if (!entry.isFile() || !/^\d+\.json$/.test(entry.name)) continue;
318
+ try {
319
+ const filePath = import_node_path.default.join(devBridgesDir(), entry.name);
320
+ const fd = import_node_fs.default.openSync(filePath, "r");
321
+ try {
322
+ const buf = Buffer.alloc(DAEMON_LOCKFILE_MAX_BYTES);
323
+ const bytesRead = import_node_fs.default.readSync(fd, buf, 0, DAEMON_LOCKFILE_MAX_BYTES, 0);
324
+ const lockfile = parseDevBridgeLockfile(
325
+ buf.subarray(0, bytesRead).toString("utf8")
326
+ );
327
+ if (lockfile && entry.name === `${lockfile.bridgePort}.json`) {
328
+ lockfiles.push(lockfile);
329
+ }
330
+ } finally {
331
+ import_node_fs.default.closeSync(fd);
332
+ }
333
+ } catch {
334
+ }
335
+ }
336
+ return lockfiles.sort((left, right) => left.bridgePort - right.bridgePort);
337
+ }
305
338
  function isDaemonLockfileFresh(lock, now = Date.now()) {
306
339
  if (!lock) return false;
307
340
  if (now - lock.heartbeatAt > DAEMON_HEARTBEAT_STALE_MS) return false;
@@ -329,8 +362,8 @@ function readLiveRuntimeVersions() {
329
362
  if (daemon.activeRuntime) versions.add(daemon.activeRuntime);
330
363
  for (const version of daemon.servedRuntimes ?? []) versions.add(version);
331
364
  }
332
- const devBridge = readDevBridgeLockfile();
333
- if (isDevBridgeLockfileFresh(devBridge)) {
365
+ for (const devBridge of readDevBridgeLockfiles()) {
366
+ if (!isDevBridgeLockfileFresh(devBridge)) continue;
334
367
  for (const version of devBridge.servedRuntimes ?? []) versions.add(version);
335
368
  }
336
369
  return [...versions].sort();
@@ -343,11 +376,12 @@ function writeDaemonLockfile(data) {
343
376
  import_node_fs.default.renameSync(tmp, daemonLockfilePath());
344
377
  }
345
378
  function writeDevBridgeLockfile(data) {
346
- ensureSootsimHome();
347
- const tmp = `${devBridgeLockfilePath()}.tmp`;
379
+ import_node_fs.default.mkdirSync(devBridgesDir(), { recursive: true });
380
+ const lockfilePath = devBridgeLockfilePath(data.bridgePort);
381
+ const tmp = `${lockfilePath}.${data.pid}.tmp`;
348
382
  import_node_fs.default.writeFileSync(tmp, `${JSON.stringify(data, null, 2)}
349
383
  `, "utf8");
350
- import_node_fs.default.renameSync(tmp, devBridgeLockfilePath());
384
+ import_node_fs.default.renameSync(tmp, lockfilePath);
351
385
  }
352
386
  function claimDaemonLockfile(data) {
353
387
  ensureSootsimHome();
@@ -364,9 +398,12 @@ function removeDaemonLockfile() {
364
398
  } catch {
365
399
  }
366
400
  }
367
- function removeDevBridgeLockfile() {
401
+ function removeDevBridgeLockfile(owner) {
368
402
  try {
369
- import_node_fs.default.unlinkSync(devBridgeLockfilePath());
403
+ const lockfilePath = devBridgeLockfilePath(owner.bridgePort);
404
+ const lockfile = parseDevBridgeLockfile(import_node_fs.default.readFileSync(lockfilePath, "utf8"));
405
+ if (lockfile?.pid !== owner.pid || lockfile.startedAt !== owner.startedAt) return;
406
+ import_node_fs.default.unlinkSync(lockfilePath);
370
407
  } catch {
371
408
  }
372
409
  }
@@ -376,11 +413,12 @@ function removeDevBridgeLockfile() {
376
413
  CONFIG_FILE,
377
414
  DAEMON_HEARTBEAT_STALE_MS,
378
415
  DAEMON_LOCKFILE,
379
- DEV_BRIDGE_LOCKFILE,
416
+ DEV_BRIDGES_DIR,
380
417
  SOOTSIM_HOME_ENV,
381
418
  activeRuntimeDir,
382
419
  activeRuntimeFile,
383
420
  cacheDir,
421
+ cameraFixturesDir,
384
422
  claimDaemonLockfile,
385
423
  configFilePath,
386
424
  consumeRuntimeUpgradeNotice,
@@ -389,6 +427,7 @@ function removeDevBridgeLockfile() {
389
427
  daemonAppLauncherPath,
390
428
  daemonLockfilePath,
391
429
  devBridgeLockfilePath,
430
+ devBridgesDir,
392
431
  electronDir,
393
432
  electronUserDataDir,
394
433
  electronVersionDir,
@@ -400,7 +439,7 @@ function removeDevBridgeLockfile() {
400
439
  profilesDir,
401
440
  readActiveRuntime,
402
441
  readDaemonLockfile,
403
- readDevBridgeLockfile,
442
+ readDevBridgeLockfiles,
404
443
  readLiveRuntimeVersions,
405
444
  readOrCreateAnonymousId,
406
445
  readPrivacyPreferences,
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.313 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.314 | (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;
@@ -1070,7 +1070,7 @@ var import_node_path4 = __toESM(require("node:path"), 1);
1070
1070
  var SOOTSIM_HOME_ENV = "SOOTSIM_HOME";
1071
1071
  var ACTIVE_RUNTIME_FILE = "active";
1072
1072
  var DAEMON_LOCKFILE = "daemon.json";
1073
- var DEV_BRIDGE_LOCKFILE = "dev-bridge.json";
1073
+ var DEV_BRIDGES_DIR = "dev-bridges";
1074
1074
  var CONFIG_FILE = "config.json";
1075
1075
  var DAEMON_HEARTBEAT_STALE_MS = 3e4;
1076
1076
  function sootsimHomeDir() {
@@ -1110,14 +1110,23 @@ function electronUserDataDir() {
1110
1110
  function profilesDir() {
1111
1111
  return import_node_path4.default.join(sootsimHomeDir(), "profiles");
1112
1112
  }
1113
+ function cameraFixturesDir() {
1114
+ return import_node_path4.default.join(sootsimHomeDir(), "camera-fixtures");
1115
+ }
1113
1116
  function cacheDir() {
1114
1117
  return import_node_path4.default.join(sootsimHomeDir(), "cache");
1115
1118
  }
1116
1119
  function daemonLockfilePath() {
1117
1120
  return import_node_path4.default.join(sootsimHomeDir(), DAEMON_LOCKFILE);
1118
1121
  }
1119
- function devBridgeLockfilePath() {
1120
- return import_node_path4.default.join(sootsimHomeDir(), DEV_BRIDGE_LOCKFILE);
1122
+ function devBridgesDir() {
1123
+ return import_node_path4.default.join(sootsimHomeDir(), DEV_BRIDGES_DIR);
1124
+ }
1125
+ function devBridgeLockfilePath(bridgePort) {
1126
+ if (!Number.isInteger(bridgePort) || bridgePort <= 0) {
1127
+ throw new Error(`invalid development bridge port: ${bridgePort}`);
1128
+ }
1129
+ return import_node_path4.default.join(devBridgesDir(), `${bridgePort}.json`);
1121
1130
  }
1122
1131
  function configFilePath() {
1123
1132
  return import_node_path4.default.join(sootsimHomeDir(), CONFIG_FILE);
@@ -1207,6 +1216,17 @@ function readDaemonLockfile() {
1207
1216
  return null;
1208
1217
  }
1209
1218
  }
1219
+ function parseDevBridgeLockfile(raw) {
1220
+ try {
1221
+ const parsed = JSON.parse(raw);
1222
+ if (parsed && parsed.schema === 1 && parsed.source === "vite-dev" && typeof parsed.pid === "number" && typeof parsed.bridgePort === "number" && typeof parsed.runtimePort === "number" && typeof parsed.cwd === "string" && typeof parsed.startedAt === "number" && typeof parsed.heartbeatAt === "number" && (parsed.shellPort === void 0 || typeof parsed.shellPort === "number") && (parsed.servedRuntimes === void 0 || Array.isArray(parsed.servedRuntimes) && parsed.servedRuntimes.every((version) => typeof version === "string"))) {
1223
+ return parsed;
1224
+ }
1225
+ return null;
1226
+ } catch {
1227
+ return null;
1228
+ }
1229
+ }
1210
1230
  function isDaemonLockfileFresh(lock, now = Date.now()) {
1211
1231
  if (!lock) return false;
1212
1232
  if (now - lock.heartbeatAt > DAEMON_HEARTBEAT_STALE_MS) return false;
@@ -1225,11 +1245,12 @@ function writeDaemonLockfile(data) {
1225
1245
  import_node_fs3.default.renameSync(tmp, daemonLockfilePath());
1226
1246
  }
1227
1247
  function writeDevBridgeLockfile(data) {
1228
- ensureSootsimHome();
1229
- const tmp = `${devBridgeLockfilePath()}.tmp`;
1248
+ import_node_fs3.default.mkdirSync(devBridgesDir(), { recursive: true });
1249
+ const lockfilePath = devBridgeLockfilePath(data.bridgePort);
1250
+ const tmp = `${lockfilePath}.${data.pid}.tmp`;
1230
1251
  import_node_fs3.default.writeFileSync(tmp, `${JSON.stringify(data, null, 2)}
1231
1252
  `, "utf8");
1232
- import_node_fs3.default.renameSync(tmp, devBridgeLockfilePath());
1253
+ import_node_fs3.default.renameSync(tmp, lockfilePath);
1233
1254
  }
1234
1255
  function claimDaemonLockfile(data) {
1235
1256
  ensureSootsimHome();
@@ -1246,9 +1267,12 @@ function removeDaemonLockfile() {
1246
1267
  } catch {
1247
1268
  }
1248
1269
  }
1249
- function removeDevBridgeLockfile() {
1270
+ function removeDevBridgeLockfile(owner) {
1250
1271
  try {
1251
- import_node_fs3.default.unlinkSync(devBridgeLockfilePath());
1272
+ const lockfilePath = devBridgeLockfilePath(owner.bridgePort);
1273
+ const lockfile = parseDevBridgeLockfile(import_node_fs3.default.readFileSync(lockfilePath, "utf8"));
1274
+ if (lockfile?.pid !== owner.pid || lockfile.startedAt !== owner.startedAt) return;
1275
+ import_node_fs3.default.unlinkSync(lockfilePath);
1252
1276
  } catch {
1253
1277
  }
1254
1278
  }
@@ -3649,7 +3673,14 @@ function handleWebSocketProxyUpgrade(req, socket, head, forwardOrigin = true) {
3649
3673
 
3650
3674
  // src/host/bridge-host.ts
3651
3675
  var SOOTSIM_CROSS_ORIGIN_EMBEDDER_POLICY = "require-corp";
3652
- var WRITE_COMMAND_TYPES = /* @__PURE__ */ new Set(["tap", "keyboard"]);
3676
+ var WRITE_COMMAND_TYPES = /* @__PURE__ */ new Set([
3677
+ "tap",
3678
+ "keyboard",
3679
+ "longPress",
3680
+ "perform",
3681
+ "reset",
3682
+ "camera"
3683
+ ]);
3653
3684
  var FORCE_CLOSE_GRACE_MS = 2e3;
3654
3685
  var FORCE_CLOSE_TERMINATE_MS = 1e3;
3655
3686
  function shouldAcquireLease(msg) {
@@ -3682,8 +3713,14 @@ var HTTP_MIME_TYPES = {
3682
3713
  ".woff": "font/woff",
3683
3714
  ".woff2": "font/woff2",
3684
3715
  ".map": "application/json",
3685
- ".txt": "text/plain; charset=utf-8"
3716
+ ".txt": "text/plain; charset=utf-8",
3717
+ ".mp4": "video/mp4",
3718
+ ".m4v": "video/mp4",
3719
+ ".webm": "video/webm",
3720
+ ".mov": "video/quicktime"
3686
3721
  };
3722
+ var CAMERA_FIXTURE_ROUTE = "/__camera-fixtures/";
3723
+ var CAMERA_FIXTURE_NAME_RE = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
3687
3724
  function injectSharedConfigIntoHtml(data, bridgePort, contrastOrigin) {
3688
3725
  let payload;
3689
3726
  try {
@@ -4466,6 +4503,89 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
4466
4503
  });
4467
4504
  return this.inflightScan;
4468
4505
  }
4506
+ // serves one staged camera fixture. addressed by basename inside
4507
+ // ~/.sootsim/camera-fixtures, never by a caller-supplied path, so there is
4508
+ // no traversal surface to defend: a name that is not a plain basename is
4509
+ // rejected outright. range support is not optional here — chrome asks for
4510
+ // byte ranges on media and cannot seek or loop a fixture without it.
4511
+ handleCameraFixture(name2, req, res) {
4512
+ const method = (req.method || "GET").toUpperCase();
4513
+ const cors = {
4514
+ "Access-Control-Allow-Origin": "*",
4515
+ "Cache-Control": "no-store"
4516
+ };
4517
+ if (method === "OPTIONS") {
4518
+ res.writeHead(204, {
4519
+ ...cors,
4520
+ "Access-Control-Allow-Methods": "GET, HEAD, OPTIONS",
4521
+ "Access-Control-Allow-Headers": "range"
4522
+ });
4523
+ res.end();
4524
+ return;
4525
+ }
4526
+ if (method !== "GET" && method !== "HEAD") {
4527
+ res.writeHead(405, cors);
4528
+ res.end();
4529
+ return;
4530
+ }
4531
+ if (!CAMERA_FIXTURE_NAME_RE.test(name2)) {
4532
+ res.writeHead(400, { ...cors, "Content-Type": "text/plain; charset=utf-8" });
4533
+ res.end("bad fixture name");
4534
+ return;
4535
+ }
4536
+ const root = cameraFixturesDir();
4537
+ const filePath = import_path2.default.join(root, name2);
4538
+ let stats;
4539
+ try {
4540
+ stats = import_fs2.default.lstatSync(filePath);
4541
+ } catch {
4542
+ res.writeHead(404, { ...cors, "Content-Type": "text/plain; charset=utf-8" });
4543
+ res.end("not found");
4544
+ return;
4545
+ }
4546
+ if (!stats.isFile()) {
4547
+ res.writeHead(403, { ...cors, "Content-Type": "text/plain; charset=utf-8" });
4548
+ res.end("forbidden");
4549
+ return;
4550
+ }
4551
+ const contentType = HTTP_MIME_TYPES[import_path2.default.extname(filePath).toLowerCase()] || "application/octet-stream";
4552
+ const total = stats.size;
4553
+ const range = /^bytes=(\d*)-(\d*)$/.exec(req.headers.range || "");
4554
+ if (range) {
4555
+ const [, startRaw, endRaw] = range;
4556
+ const start = startRaw ? Number(startRaw) : 0;
4557
+ const end = endRaw ? Math.min(Number(endRaw), total - 1) : total - 1;
4558
+ if (!Number.isFinite(start) || start > end || start >= total) {
4559
+ res.writeHead(416, { ...cors, "Content-Range": `bytes */${total}` });
4560
+ res.end();
4561
+ return;
4562
+ }
4563
+ res.writeHead(206, {
4564
+ ...cors,
4565
+ "Content-Type": contentType,
4566
+ "Content-Range": `bytes ${start}-${end}/${total}`,
4567
+ "Accept-Ranges": "bytes",
4568
+ "Content-Length": String(end - start + 1)
4569
+ });
4570
+ if (method === "HEAD") {
4571
+ res.end();
4572
+ return;
4573
+ }
4574
+ import_fs2.default.createReadStream(filePath, { start, end }).pipe(res);
4575
+ return;
4576
+ }
4577
+ res.writeHead(200, {
4578
+ ...cors,
4579
+ "Content-Type": contentType,
4580
+ "Accept-Ranges": "bytes",
4581
+ "Content-Length": String(total)
4582
+ });
4583
+ if (method === "HEAD") {
4584
+ res.end();
4585
+ return;
4586
+ }
4587
+ import_fs2.default.createReadStream(filePath).pipe(res);
4588
+ }
4469
4589
  handleServerScan(res) {
4470
4590
  const sendJson = (body) => {
4471
4591
  res.writeHead(200, {
@@ -4689,6 +4809,10 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
4689
4809
  res.end("method not allowed");
4690
4810
  return;
4691
4811
  }
4812
+ if (url.pathname.startsWith(CAMERA_FIXTURE_ROUTE)) {
4813
+ this.handleCameraFixture(url.pathname.slice(CAMERA_FIXTURE_ROUTE.length), req, res);
4814
+ return;
4815
+ }
4692
4816
  if (method !== "GET" && method !== "HEAD") {
4693
4817
  res.writeHead(405, { Allow: "GET, HEAD" });
4694
4818
  res.end("method not allowed");
@@ -5157,7 +5281,11 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
5157
5281
  }
5158
5282
  if (this.shouldWriteDevLockfile) {
5159
5283
  try {
5160
- removeDevBridgeLockfile();
5284
+ removeDevBridgeLockfile({
5285
+ bridgePort: this.effectivePort,
5286
+ pid: process.pid,
5287
+ startedAt: this.startedAt
5288
+ });
5161
5289
  } catch {
5162
5290
  }
5163
5291
  }
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.313 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.314 | (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
- /*! rnx v0.1.313 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.314 | (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
- /*! rnx v0.1.313 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.314 | (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
- /*! rnx v0.1.313 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.314 | (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;