rnxsim 0.1.363 → 0.1.365

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 (176) hide show
  1. package/cli/outbound-endpoints.ts +2 -6
  2. package/dist-cli/bin.js +5 -5
  3. package/dist-cli/chunks/{agent-EN7USQWO.js → agent-BVMNQFKF.js} +2 -2
  4. package/dist-cli/chunks/{agent-wrapper-4K2P2EBF.js → agent-wrapper-B6YFXGC3.js} +2 -2
  5. package/dist-cli/chunks/app-fonts-MEI6R6XR.js +4 -0
  6. package/dist-cli/chunks/{assert-WEQDRDJ2.js → assert-JGHI53HV.js} +2 -2
  7. package/dist-cli/chunks/{auth-U5GBY5SE.js → auth-STEOXUS7.js} +2 -2
  8. package/dist-cli/chunks/{beta-WOKLQLOJ.js → beta-HT3FLS5T.js} +2 -2
  9. package/dist-cli/chunks/{camera-GRMP2HT3.js → camera-ZCLFSLON.js} +2 -2
  10. package/dist-cli/chunks/{chunk-TIZP26F4.js → chunk-25BTVHK2.js} +2 -2
  11. package/dist-cli/chunks/{chunk-YFF6YFYJ.js → chunk-2CXHDTQ5.js} +1 -1
  12. package/dist-cli/chunks/{chunk-TK4ZQQAL.js → chunk-2JFZ5Z7Q.js} +1 -1
  13. package/dist-cli/chunks/{chunk-QVUS7OHN.js → chunk-2SFMW5K6.js} +1 -1
  14. package/dist-cli/chunks/{chunk-6BGR523F.js → chunk-4WFN4DFR.js} +2 -2
  15. package/dist-cli/chunks/{chunk-4QK74NWP.js → chunk-52ES4API.js} +2 -2
  16. package/dist-cli/chunks/{chunk-FFWDCXTD.js → chunk-5AS7S6HY.js} +2 -2
  17. package/dist-cli/chunks/{chunk-SIKPB3GL.js → chunk-5VHWQGGF.js} +1 -1
  18. package/dist-cli/chunks/{chunk-GLYEL265.js → chunk-622E4JET.js} +1 -1
  19. package/dist-cli/chunks/{chunk-DK764ET6.js → chunk-67ATAITF.js} +2 -2
  20. package/dist-cli/chunks/{chunk-2AELGO56.js → chunk-6BAF6GFS.js} +1 -1
  21. package/dist-cli/chunks/{chunk-ZSFETJZV.js → chunk-BGRGP3QR.js} +1 -1
  22. package/dist-cli/chunks/{chunk-7CT75XQF.js → chunk-CYIE65QN.js} +1 -1
  23. package/dist-cli/chunks/{chunk-PDGEVGHU.js → chunk-DBJZUCFP.js} +2 -2
  24. package/dist-cli/chunks/{chunk-KCHXGTYQ.js → chunk-DQFOHIRF.js} +1 -1
  25. package/dist-cli/chunks/{chunk-MOC4QX3B.js → chunk-EAFKG5R3.js} +2 -2
  26. package/dist-cli/chunks/{chunk-DFL5AISK.js → chunk-EFL2ASZO.js} +1 -1
  27. package/dist-cli/chunks/{chunk-GMW6T2K6.js → chunk-EFXNSJ55.js} +2 -2
  28. package/dist-cli/chunks/{chunk-NUU3SWLR.js → chunk-EVBQDQVY.js} +1 -1
  29. package/dist-cli/chunks/{chunk-X2ITJOHZ.js → chunk-FHWZPUGC.js} +1 -1
  30. package/dist-cli/chunks/{chunk-23MIH7SN.js → chunk-FIXRGPUT.js} +1 -1
  31. package/dist-cli/chunks/{chunk-EAXYIY5U.js → chunk-GK7PGYFH.js} +1 -1
  32. package/dist-cli/chunks/{chunk-BPYGMBOL.js → chunk-GZEUDDAW.js} +2 -2
  33. package/dist-cli/chunks/{chunk-WIV5YAQT.js → chunk-HIDS3PYC.js} +2 -2
  34. package/dist-cli/chunks/{chunk-WYD5DEEU.js → chunk-IWPS3EKJ.js} +2 -2
  35. package/dist-cli/chunks/{chunk-5N5BWVZK.js → chunk-J66US2OZ.js} +1 -1
  36. package/dist-cli/chunks/{chunk-MM2XAXTN.js → chunk-JAFF4RAU.js} +1 -1
  37. package/dist-cli/chunks/{chunk-GKKO7RE2.js → chunk-JRPU5TFI.js} +3 -3
  38. package/dist-cli/chunks/{chunk-ZSLOAO3P.js → chunk-M5KJCLUW.js} +3 -3
  39. package/dist-cli/chunks/{chunk-4ZGUXZ6U.js → chunk-MACI34ST.js} +3 -3
  40. package/dist-cli/chunks/chunk-MCHKBFUL.js +4 -0
  41. package/dist-cli/chunks/{chunk-42O6RKCS.js → chunk-MR3YPNUI.js} +2 -2
  42. package/dist-cli/chunks/{chunk-QXBFDUCQ.js → chunk-MRNW4GVL.js} +2 -2
  43. package/dist-cli/chunks/{chunk-VXN2HAHP.js → chunk-NEH4T67X.js} +2 -2
  44. package/dist-cli/chunks/{chunk-ZCHCE6WJ.js → chunk-O2ORLK6W.js} +2 -2
  45. package/dist-cli/chunks/{chunk-KWFRIVXW.js → chunk-O6P4N2JD.js} +2 -2
  46. package/dist-cli/chunks/{chunk-BWTDQWRB.js → chunk-OSZ5HZSI.js} +2 -2
  47. package/dist-cli/chunks/{chunk-HJN6LXR5.js → chunk-QIQL7Y5V.js} +2 -2
  48. package/dist-cli/chunks/{chunk-LV4BJLQU.js → chunk-R4FQZXJC.js} +2 -2
  49. package/dist-cli/chunks/{chunk-74RRQIWF.js → chunk-RI3NS77J.js} +1 -1
  50. package/dist-cli/chunks/{chunk-BAPVTWIM.js → chunk-TKCGP3DD.js} +2 -2
  51. package/dist-cli/chunks/{chunk-S6CNNXSR.js → chunk-TULWPOAY.js} +2 -2
  52. package/dist-cli/chunks/{chunk-FADHHMJU.js → chunk-UR345KM3.js} +2 -2
  53. package/dist-cli/chunks/{chunk-IY2WWLFH.js → chunk-W3UIDI3W.js} +2 -2
  54. package/dist-cli/chunks/{chunk-FNVWTY57.js → chunk-WGNDJARS.js} +1 -1
  55. package/dist-cli/chunks/{chunk-XYPCBRGY.js → chunk-X5ZOZVHC.js} +1 -1
  56. package/dist-cli/chunks/{chunk-HGPDQPIG.js → chunk-XKRUNS7A.js} +2 -2
  57. package/dist-cli/chunks/{chunk-FAWMDCMJ.js → chunk-XPOTXF5Q.js} +2 -2
  58. package/dist-cli/chunks/{chunk-WPXQ7CNQ.js → chunk-XR4KID25.js} +2 -2
  59. package/dist-cli/chunks/{chunk-AGUR7LE7.js → chunk-XRO5WQXP.js} +1 -1
  60. package/dist-cli/chunks/{chunk-YSLE3K2S.js → chunk-XXNPISER.js} +2 -2
  61. package/dist-cli/chunks/{chunk-PH4W36KI.js → chunk-YE3M3YD4.js} +3 -3
  62. package/dist-cli/chunks/{chunk-46BMZYP7.js → chunk-ZCP4CRP6.js} +2 -2
  63. package/dist-cli/chunks/{chunk-KJ5SZIXX.js → chunk-ZGD7GZRI.js} +2 -2
  64. package/dist-cli/chunks/{chunk-2IVWNQDE.js → chunk-ZGH5U4AJ.js} +2 -2
  65. package/dist-cli/chunks/{chunk-4CMRJ7UX.js → chunk-ZTWUNK45.js} +2 -2
  66. package/dist-cli/chunks/{cleanup-ZVQLJLTY.js → cleanup-G4TEYVKY.js} +2 -2
  67. package/dist-cli/chunks/cli-version-ZM3PVKQ5.js +4 -0
  68. package/dist-cli/chunks/{compat-7T2VZZDL.js → compat-EZ5NP32J.js} +2 -2
  69. package/dist-cli/chunks/{config-E7OULENQ.js → config-27M2DGCS.js} +2 -2
  70. package/dist-cli/chunks/{control-X5O5UXPP.js → control-4QR43FXV.js} +2 -2
  71. package/dist-cli/chunks/daemon-2U4CJ6AT.js +4 -0
  72. package/dist-cli/chunks/{debug-LK6GRYHR.js → debug-EXU3D7PC.js} +3 -3
  73. package/dist-cli/chunks/{desktop-2LAHHUP6.js → desktop-SHHPZAWQ.js} +3 -3
  74. package/dist-cli/chunks/{detox-7GF6V6E6.js → detox-RQ6FFSBS.js} +2 -2
  75. package/dist-cli/chunks/{device-G3IF4IRA.js → device-4NI26HG6.js} +2 -2
  76. package/dist-cli/chunks/{diagnose-6G2RJWVP.js → diagnose-P4SFXH6J.js} +2 -2
  77. package/dist-cli/chunks/{disk-cleanup-PRAJROKV.js → disk-cleanup-BUAKWYMY.js} +2 -2
  78. package/dist-cli/chunks/drivers-OVCUPQTM.js +4 -0
  79. package/dist-cli/chunks/{film-CGVAWXPR.js → film-Y2BAQINB.js} +3 -3
  80. package/dist-cli/chunks/flow-ELTLKKZ3.js +4 -0
  81. package/dist-cli/chunks/help-CDEZAG2L.js +4 -0
  82. package/dist-cli/chunks/{hidden-runtime-alias-FCDWZQM3.js → hidden-runtime-alias-U2MAY2XV.js} +2 -2
  83. package/dist-cli/chunks/{home-paths-JEUBFYPY.js → home-paths-PAJMZCOS.js} +2 -2
  84. package/dist-cli/chunks/inspect-VVQRPJLS.js +4 -0
  85. package/dist-cli/chunks/install-desktop-YXSRKR35.js +4 -0
  86. package/dist-cli/chunks/{login-HBPZL3QX.js → login-D53XKBEO.js} +2 -2
  87. package/dist-cli/chunks/{logout-SVBZGGEI.js → logout-HZQKLNUJ.js} +2 -2
  88. package/dist-cli/chunks/{maestro-445CMWSH.js → maestro-XSS2KX6L.js} +3 -3
  89. package/dist-cli/chunks/{maestro-generate-4JWKONR2.js → maestro-generate-DNDQX3JQ.js} +3 -3
  90. package/dist-cli/chunks/{mode-M6GVNTDZ.js → mode-LEVGOKI3.js} +2 -2
  91. package/dist-cli/chunks/{optional-demo-registry-Q5CATNHD.js → optional-demo-registry-2XZIJNDG.js} +2 -2
  92. package/dist-cli/chunks/{perf-MBNYDE6X.js → perf-OKMAXDLB.js} +2 -2
  93. package/dist-cli/chunks/{permissions-HNLQIZJD.js → permissions-VG5TBUTN.js} +2 -2
  94. package/dist-cli/chunks/privacy-MNRHREME.js +4 -0
  95. package/dist-cli/chunks/{record-MH3BLHON.js → record-BQYGZOMV.js} +3 -3
  96. package/dist-cli/chunks/{report-issue-6HQHCFBG.js → report-issue-HCPZESWE.js} +2 -2
  97. package/dist-cli/chunks/reset-R4E4W4YI.js +4 -0
  98. package/dist-cli/chunks/runtime-XRQZ7W34.js +4 -0
  99. package/dist-cli/chunks/{screenshot-command-D6VS6GDA.js → screenshot-command-DWEYPJE7.js} +3 -3
  100. package/dist-cli/chunks/{screenshot-layers-MC7JHOO2.js → screenshot-layers-5GMBXLO7.js} +2 -2
  101. package/dist-cli/chunks/{screenshots-capture-PUQTDG5I.js → screenshots-capture-5KCI7IZD.js} +2 -2
  102. package/dist-cli/chunks/serve-QNKTA2HR.js +56 -0
  103. package/dist-cli/chunks/setup-RNMM5GO5.js +4 -0
  104. package/dist-cli/chunks/{skills-IJDXM6IC.js → skills-DOEALD3X.js} +2 -2
  105. package/dist-cli/chunks/{state-KCBXBFZZ.js → state-3HH2IHIF.js} +2 -2
  106. package/dist-cli/chunks/{storage-RBYDWRJC.js → storage-E7WUWN3E.js} +2 -2
  107. package/dist-cli/chunks/store-HUPZUCFG.js +4 -0
  108. package/dist-cli/chunks/telemetry-IJ53XR2Y.js +4 -0
  109. package/dist-cli/chunks/{timeline-RPEEEB3A.js → timeline-IKNUGQ2A.js} +2 -2
  110. package/dist-cli/chunks/{upgrade-TFLWCW3P.js → upgrade-VS3OKXE2.js} +2 -2
  111. package/dist-cli/chunks/upload-A57NAAHF.js +4 -0
  112. package/dist-cli/chunks/{version-LHPE2VT4.js → version-F4XHNTBZ.js} +2 -2
  113. package/dist-cli/chunks/{web-QJ74GCNZ.js → web-F72724QL.js} +2 -2
  114. package/dist-cli/chunks/welcome-B72RRMBW.js +5 -0
  115. package/dist-cli/chunks/{what-happened-JXBBC5U7.js → what-happened-APK7YKOV.js} +2 -2
  116. package/dist-lib/agent-daemon-client.cjs +1 -1
  117. package/dist-lib/agent-events.cjs +1 -1
  118. package/dist-lib/agent-identity.cjs +1 -1
  119. package/dist-lib/agent-sessions.cjs +1 -1
  120. package/dist-lib/attached-projects.cjs +1 -1
  121. package/dist-lib/auth/shared-session.cjs +1 -1
  122. package/dist-lib/backend-origin.cjs +1 -1
  123. package/dist-lib/beta.cjs +1 -1
  124. package/dist-lib/beta.mjs +1 -1
  125. package/dist-lib/bridge-constants.cjs +1 -1
  126. package/dist-lib/bridge-contract.cjs +1 -1
  127. package/dist-lib/cli-constants.cjs +1 -1
  128. package/dist-lib/config.cjs +1 -1
  129. package/dist-lib/detox/index.cjs +1 -1
  130. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  131. package/dist-lib/home-paths.cjs +1 -1
  132. package/dist-lib/host/bridge-host.cjs +89 -154
  133. package/dist-lib/host/fetch-proxy-handler.cjs +36 -3
  134. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  135. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  136. package/dist-lib/host/replacement-module-handler.cjs +60 -107
  137. package/dist-lib/host/websocket-proxy.cjs +1 -1
  138. package/dist-lib/index.cjs +60 -105
  139. package/dist-lib/jump-to-source-babel.cjs +1 -1
  140. package/dist-lib/menu.cjs +1 -1
  141. package/dist-lib/menu.mjs +1 -1
  142. package/dist-lib/metro-production-bundle.cjs +1 -1
  143. package/dist-lib/metro-production-bundle.mjs +1 -1
  144. package/dist-lib/metro.cjs +60 -105
  145. package/dist-lib/profiles.cjs +1 -1
  146. package/dist-lib/public-brand.cjs +1 -1
  147. package/dist-lib/react-native-host-modules.cjs +1 -1
  148. package/dist-lib/react-native-host-modules.mjs +1 -1
  149. package/dist-lib/render-mode.cjs +1 -1
  150. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  151. package/dist-lib/sdk.cjs +1 -1
  152. package/dist-lib/sdk.mjs +1 -1
  153. package/dist-lib/skills.cjs +126 -189
  154. package/dist-lib/vite.cjs +59 -104
  155. package/package.json +1 -1
  156. package/src/host/bridge-host.ts +2 -50
  157. package/src/host/fetch-proxy-handler.ts +40 -3
  158. package/src/host/replacement-module-handler.ts +65 -117
  159. package/dist-cli/chunks/app-fonts-7B5E7UDM.js +0 -4
  160. package/dist-cli/chunks/chunk-FQGTATLA.js +0 -4
  161. package/dist-cli/chunks/cli-version-KAVMACHT.js +0 -4
  162. package/dist-cli/chunks/daemon-GEDFARBC.js +0 -4
  163. package/dist-cli/chunks/drivers-4WSF4T4I.js +0 -4
  164. package/dist-cli/chunks/flow-MEDCS46T.js +0 -4
  165. package/dist-cli/chunks/help-KOAHGOH4.js +0 -4
  166. package/dist-cli/chunks/inspect-IU5HFVKF.js +0 -4
  167. package/dist-cli/chunks/install-desktop-5Q2WB4QO.js +0 -4
  168. package/dist-cli/chunks/privacy-UL6QT67W.js +0 -4
  169. package/dist-cli/chunks/reset-GHLOGMF3.js +0 -4
  170. package/dist-cli/chunks/runtime-JK43NPS6.js +0 -4
  171. package/dist-cli/chunks/serve-4UDVILST.js +0 -118
  172. package/dist-cli/chunks/setup-5IHFDPBA.js +0 -4
  173. package/dist-cli/chunks/store-O2PYGAXL.js +0 -4
  174. package/dist-cli/chunks/telemetry-B2CPDQID.js +0 -4
  175. package/dist-cli/chunks/upload-2GJWZG6R.js +0 -4
  176. package/dist-cli/chunks/welcome-5XJPBRJD.js +0 -5
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/beta.ts
4
4
  var IS_BETA = true;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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;
@@ -3496,7 +3496,7 @@ async function handleFetchProxyRequest(req, res) {
3496
3496
  const proxyRes = await new Promise((resolve2, reject) => {
3497
3497
  const proxyReq = transport.request(
3498
3498
  {
3499
- hostname: targetUrl2.hostname,
3499
+ hostname: normalizeHostname(targetUrl2.hostname),
3500
3500
  port: targetUrl2.port || (targetUrl2.protocol === "https:" ? 443 : 80),
3501
3501
  path: targetUrl2.pathname + targetUrl2.search,
3502
3502
  method,
@@ -3561,6 +3561,32 @@ async function handleFetchProxyRequest(req, res) {
3561
3561
  res.end(`fetch proxy error: ${formatFetchProxyError(upstreamUrl.href, err)}`);
3562
3562
  }
3563
3563
  }
3564
+ async function handleBundleProxyRequest(req, res) {
3565
+ const params = new URLSearchParams((req.url || "").split("?")[1] || "");
3566
+ const target = params.get("url");
3567
+ if (!target) {
3568
+ applyFetchProxyCors(res);
3569
+ res.writeHead(400, { "Content-Type": "text/plain" });
3570
+ res.end("bundle-proxy: missing url query param");
3571
+ return;
3572
+ }
3573
+ let targetUrl;
3574
+ try {
3575
+ targetUrl = new URL(target);
3576
+ } catch {
3577
+ applyFetchProxyCors(res);
3578
+ res.writeHead(400, { "Content-Type": "text/plain" });
3579
+ res.end("bundle-proxy: invalid url");
3580
+ return;
3581
+ }
3582
+ if (!isLoopbackHost(targetUrl.hostname)) {
3583
+ applyFetchProxyCors(res);
3584
+ res.writeHead(403, { "Content-Type": "text/plain" });
3585
+ res.end("bundle-proxy: only loopback targets allowed");
3586
+ return;
3587
+ }
3588
+ await handleFetchProxyRequest(req, res);
3589
+ }
3564
3590
  function handleAppApiRequest(req, res) {
3565
3591
  const reqUrl = req.url || "";
3566
3592
  let targetPath = "";
@@ -3602,7 +3628,7 @@ function handleAppApiRequest(req, res) {
3602
3628
  const fwdHeaders = buildAppApiProxyHeaders(req.headers, targetUrl);
3603
3629
  const proxyReq = transport.request(
3604
3630
  {
3605
- hostname: targetUrl.hostname,
3631
+ hostname: normalizeHostname(targetUrl.hostname),
3606
3632
  port: targetUrl.port || (targetUrl.protocol === "https:" ? 443 : 80),
3607
3633
  path: targetUrl.pathname + targetUrl.search,
3608
3634
  method: req.method,
@@ -3687,7 +3713,6 @@ var import_promises5 = __toESM(require("node:fs/promises"), 1);
3687
3713
  var import_node_path10 = __toESM(require("node:path"), 1);
3688
3714
  var import_esbuild = require("esbuild");
3689
3715
  var REPLACEMENT_MODULE_ROUTE = "/__sootsim-replacement-module";
3690
- var REPLACEMENT_RUNTIME_PREFIX = "/__sootsim-replacement-runtime";
3691
3716
  function getReplacementLoader(filePath) {
3692
3717
  const ext = import_node_path10.default.extname(filePath).toLowerCase();
3693
3718
  switch (ext) {
@@ -3703,88 +3728,6 @@ function getReplacementLoader(filePath) {
3703
3728
  return null;
3704
3729
  }
3705
3730
  }
3706
- function reactRuntimeSource(reactBridgeUrl) {
3707
- if (reactBridgeUrl) {
3708
- return `export * from ${JSON.stringify(reactBridgeUrl)};
3709
- import React from ${JSON.stringify(reactBridgeUrl)};
3710
- export default React;
3711
- `;
3712
- }
3713
- return `const bridge = globalThis.__sootsim_react_bridge
3714
- if (!bridge) throw new Error('[rnx] replacement React bridge is not ready')
3715
- export default bridge.default
3716
- export const Activity = bridge.Activity
3717
- export const Children = bridge.Children
3718
- export const Component = bridge.Component
3719
- export const Fragment = bridge.Fragment
3720
- export const Profiler = bridge.Profiler
3721
- export const PureComponent = bridge.PureComponent
3722
- export const StrictMode = bridge.StrictMode
3723
- export const Suspense = bridge.Suspense
3724
- export const __CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = bridge.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE
3725
- export const __COMPILER_RUNTIME = bridge.__COMPILER_RUNTIME
3726
- export const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = bridge.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
3727
- export const act = bridge.act
3728
- export const cache = bridge.cache
3729
- export const cacheSignal = bridge.cacheSignal
3730
- export const captureOwnerStack = bridge.captureOwnerStack
3731
- export const cloneElement = bridge.cloneElement
3732
- export const createContext = bridge.createContext
3733
- export const createElement = bridge.createElement
3734
- export const createRef = bridge.createRef
3735
- export const forwardRef = bridge.forwardRef
3736
- export const isValidElement = bridge.isValidElement
3737
- export const lazy = bridge.lazy
3738
- export const memo = bridge.memo
3739
- export const startTransition = bridge.startTransition
3740
- export const unstable_useCacheRefresh = bridge.unstable_useCacheRefresh
3741
- export const use = bridge.use
3742
- export const useActionState = bridge.useActionState
3743
- export const useCallback = bridge.useCallback
3744
- export const useContext = bridge.useContext
3745
- export const useDebugValue = bridge.useDebugValue
3746
- export const useDeferredValue = bridge.useDeferredValue
3747
- export const useEffect = bridge.useEffect
3748
- export const useEffectEvent = bridge.useEffectEvent
3749
- export const useId = bridge.useId
3750
- export const useImperativeHandle = bridge.useImperativeHandle
3751
- export const useInsertionEffect = bridge.useInsertionEffect
3752
- export const useLayoutEffect = bridge.useLayoutEffect
3753
- export const useMemo = bridge.useMemo
3754
- export const useOptimistic = bridge.useOptimistic
3755
- export const useReducer = bridge.useReducer
3756
- export const useRef = bridge.useRef
3757
- export const useState = bridge.useState
3758
- export const useSyncExternalStore = bridge.useSyncExternalStore
3759
- export const useTransition = bridge.useTransition
3760
- export const version = bridge.version
3761
- `;
3762
- }
3763
- function reactNativeRuntimeSource() {
3764
- return `const rn = globalThis.__sootsim_components__ || {}
3765
- export default rn
3766
- export const View = rn.View
3767
- export const Text = rn.Text
3768
- export const Image = rn.Image
3769
- export const ScrollView = rn.ScrollView
3770
- export const FlatList = rn.FlatList
3771
- export const Pressable = rn.Pressable
3772
- export const TouchableOpacity = rn.TouchableOpacity
3773
- export const TouchableWithoutFeedback = rn.TouchableWithoutFeedback
3774
- export const TouchableHighlight = rn.TouchableHighlight
3775
- export const TextInput = rn.TextInput
3776
- export const ActivityIndicator = rn.ActivityIndicator
3777
- export const KeyboardAvoidingView = rn.KeyboardAvoidingView
3778
- export const Button = rn.Button
3779
- export const Modal = rn.Modal
3780
- export const Switch = rn.Switch
3781
- export const StyleSheet = rn.StyleSheet
3782
- export const Platform = rn.Platform
3783
- export const Keyboard = rn.Keyboard
3784
- export const Dimensions = rn.Dimensions
3785
- export const Appearance = rn.Appearance
3786
- `;
3787
- }
3788
3731
  function sendJavaScript(req, res, source) {
3789
3732
  const origin = req.headers.origin;
3790
3733
  let allowedOrigin;
@@ -3805,7 +3748,7 @@ function isReplacementModuleRequestUrl(rawUrl) {
3805
3748
  if (!rawUrl) return false;
3806
3749
  try {
3807
3750
  const pathname = new URL(rawUrl, "http://rnx.local").pathname;
3808
- return pathname === REPLACEMENT_MODULE_ROUTE || pathname.startsWith(`${REPLACEMENT_RUNTIME_PREFIX}/`);
3751
+ return pathname === REPLACEMENT_MODULE_ROUTE;
3809
3752
  } catch {
3810
3753
  return false;
3811
3754
  }
@@ -3835,14 +3778,6 @@ async function handleReplacementModuleRequest(req, res, options = {}) {
3835
3778
  return true;
3836
3779
  }
3837
3780
  }
3838
- if (url.pathname === `${REPLACEMENT_RUNTIME_PREFIX}/react`) {
3839
- sendJavaScript(req, res, reactRuntimeSource(options.reactBridgeUrl));
3840
- return true;
3841
- }
3842
- if (url.pathname === `${REPLACEMENT_RUNTIME_PREFIX}/react-native`) {
3843
- sendJavaScript(req, res, reactNativeRuntimeSource());
3844
- return true;
3845
- }
3846
3781
  if (url.pathname !== REPLACEMENT_MODULE_ROUTE) return false;
3847
3782
  if (options.requestToken && url.searchParams.get("token") !== options.requestToken) {
3848
3783
  res.writeHead(403, { "Content-Type": "text/plain; charset=utf-8" });
@@ -3866,6 +3801,7 @@ async function handleReplacementModuleRequest(req, res, options = {}) {
3866
3801
  res.end("replacement file path must be absolute");
3867
3802
  return true;
3868
3803
  }
3804
+ const runtimePackages = new Set(url.searchParams.getAll("runtimePackage"));
3869
3805
  let resolvedProjectRoot;
3870
3806
  if (options.projectRoot) {
3871
3807
  const lexicalProjectRoot = import_node_path10.default.resolve(options.projectRoot);
@@ -3908,19 +3844,64 @@ async function handleReplacementModuleRequest(req, res, options = {}) {
3908
3844
  tsconfigRaw: { compilerOptions: { jsx: "react" } },
3909
3845
  sourcemap: "inline",
3910
3846
  logLevel: "silent",
3911
- external: ["react", "react-native"]
3847
+ plugins: [
3848
+ {
3849
+ name: "sootsim-replacement-runtime",
3850
+ setup(runtimeBuild) {
3851
+ runtimeBuild.onResolve(
3852
+ {
3853
+ filter: /^(react|react-native|react\/jsx-runtime|react\/jsx-dev-runtime)$/
3854
+ },
3855
+ (args) => ({ path: args.path, namespace: "sootsim-replacement-runtime" })
3856
+ );
3857
+ runtimeBuild.onResolve(
3858
+ { filter: /.*/ },
3859
+ (args) => runtimePackages.has(args.path) ? { path: args.path, namespace: "sootsim-replacement-runtime" } : void 0
3860
+ );
3861
+ runtimeBuild.onLoad(
3862
+ { filter: /.*/, namespace: "sootsim-replacement-runtime" },
3863
+ (args) => {
3864
+ if (args.path === "react-native") {
3865
+ return {
3866
+ contents: `const bridge = globalThis.__sootsim_components__
3867
+ if (!bridge) throw new Error('[rnx] replacement React Native bridge is not ready')
3868
+ module.exports = bridge`,
3869
+ loader: "js"
3870
+ };
3871
+ }
3872
+ if (args.path === "react") {
3873
+ return {
3874
+ contents: `const bridge = globalThis.__sootsim_react_bridge
3875
+ if (!bridge) throw new Error('[rnx] replacement React bridge is not ready')
3876
+ module.exports = bridge`,
3877
+ loader: "js"
3878
+ };
3879
+ }
3880
+ if (args.path !== "react/jsx-runtime" && args.path !== "react/jsx-dev-runtime") {
3881
+ return {
3882
+ contents: `const packages = globalThis.__sootsim_config_package_modules
3883
+ const bridge = packages?.[${JSON.stringify(args.path)}]
3884
+ if (!bridge) throw new Error(${JSON.stringify(`[rnx] replacement package bridge ${args.path} is not ready`)})
3885
+ module.exports = bridge`,
3886
+ loader: "js"
3887
+ };
3888
+ }
3889
+ return {
3890
+ contents: `const React = globalThis.__sootsim_react_bridge
3891
+ if (!React) throw new Error('[rnx] replacement React bridge is not ready')
3892
+ exports.Fragment = React.Fragment
3893
+ exports.jsx = (type, props, key) => React.createElement(type, key === undefined ? props : { ...props, key })
3894
+ exports.jsxs = exports.jsx
3895
+ exports.jsxDEV = exports.jsx`,
3896
+ loader: "js"
3897
+ };
3898
+ }
3899
+ );
3900
+ }
3901
+ }
3902
+ ]
3912
3903
  });
3913
- const bundledCode = result.outputFiles[0]?.text ?? "";
3914
- const hasReactBinding = /\bimport\s+(?:\*\s+as\s+React|React(?:\s*,|\s+from)|\{[^}]*\bdefault\s+as\s+React\b)/.test(
3915
- bundledCode
3916
- );
3917
- const reactImport = /\bReact\.(?:createElement|Fragment)\b/.test(bundledCode) && !hasReactBinding ? `import * as React from '${REPLACEMENT_RUNTIME_PREFIX}/react';
3918
- ` : "";
3919
- const runtimeCode = (reactImport + bundledCode).replace(
3920
- /from\s*["']react-native["']/g,
3921
- `from '${REPLACEMENT_RUNTIME_PREFIX}/react-native'`
3922
- ).replace(/from\s*["']react["']/g, `from '${REPLACEMENT_RUNTIME_PREFIX}/react'`);
3923
- sendJavaScript(req, res, runtimeCode);
3904
+ sendJavaScript(req, res, result.outputFiles[0]?.text ?? "");
3924
3905
  } catch (error) {
3925
3906
  const message = error instanceof Error ? error.message : String(error);
3926
3907
  res.writeHead(500, { "Content-Type": "text/plain; charset=utf-8" });
@@ -5262,53 +5243,7 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
5262
5243
  return;
5263
5244
  }
5264
5245
  if (url.pathname === "/__bundle-proxy") {
5265
- const target = url.searchParams.get("url");
5266
- if (!target) {
5267
- res.writeHead(400, { "Content-Type": "text/plain" });
5268
- res.end("bundle-proxy: missing url query param");
5269
- return;
5270
- }
5271
- let parsedTarget;
5272
- try {
5273
- parsedTarget = new URL(target);
5274
- } catch {
5275
- res.writeHead(400, { "Content-Type": "text/plain" });
5276
- res.end("bundle-proxy: invalid url");
5277
- return;
5278
- }
5279
- if (!isLoopbackHost(parsedTarget.hostname)) {
5280
- res.writeHead(403, { "Content-Type": "text/plain" });
5281
- res.end("bundle-proxy: only loopback targets allowed");
5282
- return;
5283
- }
5284
- void (async () => {
5285
- try {
5286
- const upstream = await fetch(parsedTarget.toString(), {
5287
- redirect: "follow"
5288
- });
5289
- const headers = {};
5290
- const ct = upstream.headers.get("content-type");
5291
- if (ct) headers["Content-Type"] = ct;
5292
- headers["Cache-Control"] = "no-store";
5293
- res.writeHead(upstream.status, headers);
5294
- if (!upstream.body) {
5295
- res.end();
5296
- return;
5297
- }
5298
- const reader = upstream.body.getReader();
5299
- while (true) {
5300
- const { done, value } = await reader.read();
5301
- if (done) break;
5302
- res.write(Buffer.from(value));
5303
- }
5304
- res.end();
5305
- } catch (err) {
5306
- res.writeHead(502, { "Content-Type": "text/plain" });
5307
- res.end(
5308
- `bundle-proxy: upstream fetch failed: ${err instanceof Error ? err.message : String(err)}`
5309
- );
5310
- }
5311
- })();
5246
+ void handleBundleProxyRequest(req, res);
5312
5247
  return;
5313
5248
  }
5314
5249
  if (url.pathname === "/__server-scan") {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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;
@@ -35,8 +35,10 @@ __export(fetch_proxy_handler_exports, {
35
35
  buildAppApiProxyHeaders: () => buildAppApiProxyHeaders,
36
36
  buildFetchProxyHeaders: () => buildFetchProxyHeaders,
37
37
  handleAppApiRequest: () => handleAppApiRequest,
38
+ handleBundleProxyRequest: () => handleBundleProxyRequest,
38
39
  handleFetchProxyRequest: () => handleFetchProxyRequest,
39
40
  isAppApiRequestUrl: () => isAppApiRequestUrl,
41
+ isBundleProxyRequestUrl: () => isBundleProxyRequestUrl,
40
42
  isFetchProxyRequestUrl: () => isFetchProxyRequestUrl
41
43
  });
42
44
  module.exports = __toCommonJS(fetch_proxy_handler_exports);
@@ -171,6 +173,9 @@ function buildAppApiProxyHeaders(reqHeaders, targetUrl) {
171
173
  function isFetchProxyRequestUrl(rawUrl) {
172
174
  return rawUrl?.startsWith("/__fetch-proxy?") || rawUrl?.startsWith("/__proxy?") || false;
173
175
  }
176
+ function isBundleProxyRequestUrl(rawUrl) {
177
+ return rawUrl?.startsWith("/__bundle-proxy?") ?? false;
178
+ }
174
179
  function isAppApiRequestUrl(rawUrl) {
175
180
  if (!rawUrl) return false;
176
181
  if (rawUrl.startsWith("/__app-api?")) return true;
@@ -228,7 +233,7 @@ async function handleFetchProxyRequest(req, res) {
228
233
  const proxyRes = await new Promise((resolve, reject) => {
229
234
  const proxyReq = transport.request(
230
235
  {
231
- hostname: targetUrl2.hostname,
236
+ hostname: normalizeHostname(targetUrl2.hostname),
232
237
  port: targetUrl2.port || (targetUrl2.protocol === "https:" ? 443 : 80),
233
238
  path: targetUrl2.pathname + targetUrl2.search,
234
239
  method,
@@ -293,6 +298,32 @@ async function handleFetchProxyRequest(req, res) {
293
298
  res.end(`fetch proxy error: ${formatFetchProxyError(upstreamUrl.href, err)}`);
294
299
  }
295
300
  }
301
+ async function handleBundleProxyRequest(req, res) {
302
+ const params = new URLSearchParams((req.url || "").split("?")[1] || "");
303
+ const target = params.get("url");
304
+ if (!target) {
305
+ applyFetchProxyCors(res);
306
+ res.writeHead(400, { "Content-Type": "text/plain" });
307
+ res.end("bundle-proxy: missing url query param");
308
+ return;
309
+ }
310
+ let targetUrl;
311
+ try {
312
+ targetUrl = new URL(target);
313
+ } catch {
314
+ applyFetchProxyCors(res);
315
+ res.writeHead(400, { "Content-Type": "text/plain" });
316
+ res.end("bundle-proxy: invalid url");
317
+ return;
318
+ }
319
+ if (!isLoopbackHost(targetUrl.hostname)) {
320
+ applyFetchProxyCors(res);
321
+ res.writeHead(403, { "Content-Type": "text/plain" });
322
+ res.end("bundle-proxy: only loopback targets allowed");
323
+ return;
324
+ }
325
+ await handleFetchProxyRequest(req, res);
326
+ }
296
327
  function handleAppApiRequest(req, res) {
297
328
  const reqUrl = req.url || "";
298
329
  let targetPath = "";
@@ -334,7 +365,7 @@ function handleAppApiRequest(req, res) {
334
365
  const fwdHeaders = buildAppApiProxyHeaders(req.headers, targetUrl);
335
366
  const proxyReq = transport.request(
336
367
  {
337
- hostname: targetUrl.hostname,
368
+ hostname: normalizeHostname(targetUrl.hostname),
338
369
  port: targetUrl.port || (targetUrl.protocol === "https:" ? 443 : 80),
339
370
  path: targetUrl.pathname + targetUrl.search,
340
371
  method: req.method,
@@ -367,7 +398,9 @@ function handleAppApiRequest(req, res) {
367
398
  buildAppApiProxyHeaders,
368
399
  buildFetchProxyHeaders,
369
400
  handleAppApiRequest,
401
+ handleBundleProxyRequest,
370
402
  handleFetchProxyRequest,
371
403
  isAppApiRequestUrl,
404
+ isBundleProxyRequestUrl,
372
405
  isFetchProxyRequestUrl
373
406
  });
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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.363 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.365 | (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";