one 1.10.6 → 1.11.0

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 (828) hide show
  1. package/dist/cjs/Root.cjs +11 -2
  2. package/dist/cjs/Root.js +5 -2
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +18 -18
  5. package/dist/cjs/Root.native.js.map +1 -1
  6. package/dist/cjs/babel-plugins/inline-one-server-url.cjs +41 -0
  7. package/dist/cjs/babel-plugins/inline-one-server-url.js +34 -0
  8. package/dist/cjs/babel-plugins/inline-one-server-url.js.map +6 -0
  9. package/dist/cjs/babel-plugins/inline-one-server-url.native.js +48 -0
  10. package/dist/cjs/babel-plugins/inline-one-server-url.native.js.map +1 -0
  11. package/dist/cjs/cli/build.cjs +88 -29
  12. package/dist/cjs/cli/build.js +85 -28
  13. package/dist/cjs/cli/build.js.map +1 -1
  14. package/dist/cjs/cli/build.native.js +105 -35
  15. package/dist/cjs/cli/build.native.js.map +1 -1
  16. package/dist/cjs/cli/buildPage.cjs +24 -12
  17. package/dist/cjs/cli/buildPage.js +20 -14
  18. package/dist/cjs/cli/buildPage.js.map +1 -1
  19. package/dist/cjs/cli/buildPage.native.js +29 -18
  20. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  21. package/dist/cjs/cli/buildPageWorker.cjs +9 -15
  22. package/dist/cjs/cli/buildPageWorker.js +11 -12
  23. package/dist/cjs/cli/buildPageWorker.js.map +1 -1
  24. package/dist/cjs/cli/buildPageWorker.native.js +5 -16
  25. package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
  26. package/dist/cjs/cli/patch.cjs +3 -3
  27. package/dist/cjs/cli/patch.js +3 -3
  28. package/dist/cjs/cli/patch.js.map +1 -1
  29. package/dist/cjs/cli/patch.native.js +3 -3
  30. package/dist/cjs/cli/patch.native.js.map +1 -1
  31. package/dist/cjs/cli/securityScan.cjs +123 -0
  32. package/dist/cjs/cli/securityScan.js +134 -0
  33. package/dist/cjs/cli/securityScan.js.map +6 -0
  34. package/dist/cjs/cli/securityScan.native.js +205 -0
  35. package/dist/cjs/cli/securityScan.native.js.map +1 -0
  36. package/dist/cjs/cli/workerPool.cjs +4 -3
  37. package/dist/cjs/cli/workerPool.js +3 -3
  38. package/dist/cjs/cli/workerPool.js.map +1 -1
  39. package/dist/cjs/cli/workerPool.native.js +4 -3
  40. package/dist/cjs/cli/workerPool.native.js.map +1 -1
  41. package/dist/cjs/cli.cjs +13 -2
  42. package/dist/cjs/cli.js +12 -2
  43. package/dist/cjs/cli.js.map +1 -1
  44. package/dist/cjs/cli.native.js +13 -2
  45. package/dist/cjs/cli.native.js.map +1 -1
  46. package/dist/cjs/createApp.cjs +130 -64
  47. package/dist/cjs/createApp.js +97 -24
  48. package/dist/cjs/createApp.js.map +1 -1
  49. package/dist/cjs/createHandleRequest.cjs +58 -35
  50. package/dist/cjs/createHandleRequest.js +29 -18
  51. package/dist/cjs/createHandleRequest.js.map +1 -1
  52. package/dist/cjs/createHandleRequest.native.js +66 -41
  53. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  54. package/dist/cjs/daemon/tui.js.map +1 -1
  55. package/dist/cjs/fork/NavigationContainer.cjs +26 -3
  56. package/dist/cjs/fork/NavigationContainer.js +12 -4
  57. package/dist/cjs/fork/NavigationContainer.js.map +1 -1
  58. package/dist/cjs/fork/NavigationContainer.native.js +25 -2
  59. package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
  60. package/dist/cjs/fork/SSRNavigationContainer.cjs +105 -0
  61. package/dist/cjs/fork/SSRNavigationContainer.js +66 -0
  62. package/dist/cjs/fork/SSRNavigationContainer.js.map +6 -0
  63. package/dist/cjs/fork/SSRNavigationContainer.native.js +119 -0
  64. package/dist/cjs/fork/SSRNavigationContainer.native.js.map +1 -0
  65. package/dist/cjs/fork/getPathFromState.cjs +10 -5
  66. package/dist/cjs/fork/getPathFromState.js +5 -5
  67. package/dist/cjs/fork/getPathFromState.js.map +1 -1
  68. package/dist/cjs/fork/getPathFromState.native.js +10 -5
  69. package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
  70. package/dist/cjs/fork/getStateFromPath-mods.cjs +1 -1
  71. package/dist/cjs/fork/getStateFromPath-mods.js +1 -1
  72. package/dist/cjs/fork/getStateFromPath-mods.js.map +1 -1
  73. package/dist/cjs/fork/getStateFromPath-mods.native.js +1 -1
  74. package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
  75. package/dist/cjs/fork/navigationThemes.cjs +84 -0
  76. package/dist/cjs/fork/navigationThemes.js +54 -0
  77. package/dist/cjs/fork/navigationThemes.js.map +6 -0
  78. package/dist/cjs/fork/navigationThemes.native.js +87 -0
  79. package/dist/cjs/fork/navigationThemes.native.js.map +1 -0
  80. package/dist/cjs/fork/useLinking.cjs +11 -1
  81. package/dist/cjs/fork/useLinking.js +10 -1
  82. package/dist/cjs/fork/useLinking.js.map +1 -1
  83. package/dist/cjs/fork/useLinking.native.js +1 -1
  84. package/dist/cjs/fork/useLinking.native.js.map +1 -1
  85. package/dist/cjs/getReactNavigationConfig.cjs +3 -1
  86. package/dist/cjs/getReactNavigationConfig.js +2 -2
  87. package/dist/cjs/getReactNavigationConfig.js.map +1 -1
  88. package/dist/cjs/getReactNavigationConfig.native.js +3 -1
  89. package/dist/cjs/getReactNavigationConfig.native.js.map +1 -1
  90. package/dist/cjs/index.cjs +2 -0
  91. package/dist/cjs/index.js +2 -1
  92. package/dist/cjs/index.js.map +1 -1
  93. package/dist/cjs/index.native.js +2 -0
  94. package/dist/cjs/index.native.js.map +1 -1
  95. package/dist/cjs/layouts/stack-utils/StackScreen.cjs +15 -1
  96. package/dist/cjs/layouts/stack-utils/StackScreen.js +27 -1
  97. package/dist/cjs/layouts/stack-utils/StackScreen.js.map +1 -1
  98. package/dist/cjs/layouts/stack-utils/StackScreen.native.js +18 -1
  99. package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
  100. package/dist/cjs/layouts/stack-utils/index.cjs +2 -1
  101. package/dist/cjs/layouts/stack-utils/index.js +2 -1
  102. package/dist/cjs/layouts/stack-utils/index.js.map +1 -1
  103. package/dist/cjs/layouts/stack-utils/index.native.js +2 -1
  104. package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
  105. package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +3 -1
  106. package/dist/cjs/metro-config/getViteMetroPluginOptions.js +3 -1
  107. package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +1 -1
  108. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +3 -1
  109. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  110. package/dist/cjs/reactNavigationImports.cjs +33 -0
  111. package/dist/cjs/reactNavigationImports.js +28 -0
  112. package/dist/cjs/reactNavigationImports.js.map +6 -0
  113. package/dist/cjs/reactNavigationImports.native.js +36 -0
  114. package/dist/cjs/reactNavigationImports.native.js.map +1 -0
  115. package/dist/cjs/reactNavigationImports.server.cjs +51 -0
  116. package/dist/cjs/reactNavigationImports.server.js +42 -0
  117. package/dist/cjs/reactNavigationImports.server.js.map +6 -0
  118. package/dist/cjs/reactNavigationImports.server.native.js +56 -0
  119. package/dist/cjs/reactNavigationImports.server.native.js.map +1 -0
  120. package/dist/cjs/router/findRouteNode.cjs +4 -4
  121. package/dist/cjs/router/findRouteNode.js +4 -4
  122. package/dist/cjs/router/findRouteNode.js.map +1 -1
  123. package/dist/cjs/router/findRouteNode.native.js +4 -4
  124. package/dist/cjs/router/findRouteNode.native.js.map +1 -1
  125. package/dist/cjs/router/isIndexPath.cjs +1 -0
  126. package/dist/cjs/router/isIndexPath.js +2 -0
  127. package/dist/cjs/router/isIndexPath.js.map +1 -1
  128. package/dist/cjs/router/isIndexPath.native.js +3 -2
  129. package/dist/cjs/router/isIndexPath.native.js.map +1 -1
  130. package/dist/cjs/router/linkingConfig.cjs +19 -2
  131. package/dist/cjs/router/linkingConfig.js +18 -2
  132. package/dist/cjs/router/linkingConfig.js.map +1 -1
  133. package/dist/cjs/router/linkingConfig.native.js +21 -2
  134. package/dist/cjs/router/linkingConfig.native.js.map +1 -1
  135. package/dist/cjs/router/router.cjs +30 -24
  136. package/dist/cjs/router/router.js +23 -20
  137. package/dist/cjs/router/router.js.map +2 -2
  138. package/dist/cjs/router/router.native.js +21 -14
  139. package/dist/cjs/router/router.native.js.map +1 -1
  140. package/dist/cjs/router/useInitializeOneRouter.cjs +25 -9
  141. package/dist/cjs/router/useInitializeOneRouter.js +21 -8
  142. package/dist/cjs/router/useInitializeOneRouter.js.map +1 -1
  143. package/dist/cjs/router/useInitializeOneRouter.native.js +23 -7
  144. package/dist/cjs/router/useInitializeOneRouter.native.js.map +1 -1
  145. package/dist/cjs/router/useScreens.cjs +30 -11
  146. package/dist/cjs/router/useScreens.js +47 -21
  147. package/dist/cjs/router/useScreens.js.map +1 -1
  148. package/dist/cjs/router/useScreens.native.js +25 -10
  149. package/dist/cjs/router/useScreens.native.js.map +1 -1
  150. package/dist/cjs/screensFeatureFlags.cjs +37 -0
  151. package/dist/cjs/screensFeatureFlags.js +31 -0
  152. package/dist/cjs/screensFeatureFlags.js.map +6 -0
  153. package/dist/cjs/screensFeatureFlags.native.js +40 -0
  154. package/dist/cjs/screensFeatureFlags.native.js.map +1 -0
  155. package/dist/cjs/serve.cjs +27 -3
  156. package/dist/cjs/serve.js +26 -3
  157. package/dist/cjs/serve.js.map +1 -1
  158. package/dist/cjs/serve.native.js +36 -4
  159. package/dist/cjs/serve.native.js.map +1 -1
  160. package/dist/cjs/server/ServerContextScript.cjs +14 -5
  161. package/dist/cjs/server/ServerContextScript.js +12 -6
  162. package/dist/cjs/server/ServerContextScript.js.map +1 -1
  163. package/dist/cjs/server/ServerContextScript.native.js +18 -6
  164. package/dist/cjs/server/ServerContextScript.native.js.map +1 -1
  165. package/dist/cjs/server/oneServe.cjs +279 -182
  166. package/dist/cjs/server/oneServe.js +105 -30
  167. package/dist/cjs/server/oneServe.js.map +1 -1
  168. package/dist/cjs/server/oneServe.native.js +334 -215
  169. package/dist/cjs/server/oneServe.native.js.map +1 -1
  170. package/dist/cjs/server/ssrLoaderData.cjs +30 -0
  171. package/dist/cjs/server/ssrLoaderData.js +25 -0
  172. package/dist/cjs/server/ssrLoaderData.js.map +6 -0
  173. package/dist/cjs/server/ssrLoaderData.native.js +33 -0
  174. package/dist/cjs/server/ssrLoaderData.native.js.map +1 -0
  175. package/dist/cjs/server-render.cjs +22 -22
  176. package/dist/cjs/server-render.js +11 -15
  177. package/dist/cjs/server-render.js.map +1 -1
  178. package/dist/cjs/server-render.native.js +18 -38
  179. package/dist/cjs/server-render.native.js.map +1 -1
  180. package/dist/cjs/ui/Slot.cjs +1 -0
  181. package/dist/cjs/ui/Slot.js +4 -0
  182. package/dist/cjs/ui/Slot.js.map +1 -1
  183. package/dist/cjs/ui/Slot.native.js +1 -0
  184. package/dist/cjs/ui/Slot.native.js.map +1 -1
  185. package/dist/cjs/ui/TabRouter.cjs +32 -19
  186. package/dist/cjs/ui/TabRouter.js +18 -2
  187. package/dist/cjs/ui/TabRouter.js.map +1 -1
  188. package/dist/cjs/ui/TabRouter.native.js +13 -0
  189. package/dist/cjs/ui/TabRouter.native.js.map +1 -1
  190. package/dist/cjs/ui/TabTrigger.cjs +2 -2
  191. package/dist/cjs/ui/TabTrigger.js +1 -1
  192. package/dist/cjs/ui/TabTrigger.js.map +1 -1
  193. package/dist/cjs/ui/TabTrigger.native.js +2 -2
  194. package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
  195. package/dist/cjs/useLoader.cjs +39 -9
  196. package/dist/cjs/useLoader.js +33 -9
  197. package/dist/cjs/useLoader.js.map +2 -2
  198. package/dist/cjs/useLoader.native.js +48 -11
  199. package/dist/cjs/useLoader.native.js.map +1 -1
  200. package/dist/cjs/utils/isRolldown.cjs +8 -24
  201. package/dist/cjs/utils/isRolldown.js +6 -20
  202. package/dist/cjs/utils/isRolldown.js.map +1 -1
  203. package/dist/cjs/utils/isRolldown.native.js +8 -25
  204. package/dist/cjs/utils/isRolldown.native.js.map +1 -1
  205. package/dist/cjs/utils/removeParams.cjs +52 -0
  206. package/dist/cjs/utils/removeParams.js +40 -0
  207. package/dist/cjs/utils/removeParams.js.map +6 -0
  208. package/dist/cjs/utils/removeParams.native.js +71 -0
  209. package/dist/cjs/utils/removeParams.native.js.map +1 -0
  210. package/dist/cjs/vercel/build/buildVercelOutputDirectory.cjs +7 -5
  211. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js +7 -5
  212. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  213. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +7 -4
  214. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  215. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.cjs +2 -2
  216. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js +2 -2
  217. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
  218. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js +2 -1
  219. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  220. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.cjs +3 -2
  221. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js +2 -2
  222. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  223. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js +3 -2
  224. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  225. package/dist/cjs/views/Navigator.cjs +1 -0
  226. package/dist/cjs/views/Navigator.js +2 -0
  227. package/dist/cjs/views/Navigator.js.map +1 -1
  228. package/dist/cjs/views/Navigator.native.js +1 -0
  229. package/dist/cjs/views/Navigator.native.js.map +1 -1
  230. package/dist/cjs/vite/one-server-only.cjs +6 -3
  231. package/dist/cjs/vite/one-server-only.js +3 -3
  232. package/dist/cjs/vite/one-server-only.js.map +1 -1
  233. package/dist/cjs/vite/one-server-only.native.js +6 -0
  234. package/dist/cjs/vite/one-server-only.native.js.map +1 -1
  235. package/dist/cjs/vite/one.cjs +75 -29
  236. package/dist/cjs/vite/one.js +93 -24
  237. package/dist/cjs/vite/one.js.map +2 -2
  238. package/dist/cjs/vite/one.native.js +143 -34
  239. package/dist/cjs/vite/one.native.js.map +1 -1
  240. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  241. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  242. package/dist/cjs/vite/plugins/criticalCSSPlugin.cjs +59 -0
  243. package/dist/cjs/vite/plugins/criticalCSSPlugin.js +52 -0
  244. package/dist/cjs/vite/plugins/criticalCSSPlugin.js.map +6 -0
  245. package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js +78 -0
  246. package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js.map +1 -0
  247. package/dist/cjs/vite/plugins/criticalCSSPlugin.test.cjs +160 -0
  248. package/dist/cjs/vite/plugins/criticalCSSPlugin.test.js +126 -0
  249. package/dist/cjs/vite/plugins/criticalCSSPlugin.test.js.map +6 -0
  250. package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js +165 -0
  251. package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -0
  252. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +2 -2
  253. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +2 -2
  254. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  255. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +2 -2
  256. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  257. package/dist/cjs/vite/plugins/fixDependenciesPlugin.cjs +2 -8
  258. package/dist/cjs/vite/plugins/fixDependenciesPlugin.js +2 -8
  259. package/dist/cjs/vite/plugins/fixDependenciesPlugin.js.map +1 -1
  260. package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js +2 -8
  261. package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
  262. package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.cjs +6 -14
  263. package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.js +8 -11
  264. package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.js.map +1 -1
  265. package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js +6 -18
  266. package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
  267. package/dist/cjs/vite/plugins/sourceInspectorPlugin.cjs +11 -6
  268. package/dist/cjs/vite/plugins/sourceInspectorPlugin.js +12 -7
  269. package/dist/cjs/vite/plugins/sourceInspectorPlugin.js.map +1 -1
  270. package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js +12 -7
  271. package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
  272. package/dist/cjs/vite/plugins/warmRoutesPlugin.cjs +98 -0
  273. package/dist/cjs/vite/plugins/warmRoutesPlugin.js +95 -0
  274. package/dist/cjs/vite/plugins/warmRoutesPlugin.js.map +6 -0
  275. package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js +134 -0
  276. package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -0
  277. package/dist/cjs/vite/replaceLoader.cjs +1 -1
  278. package/dist/cjs/vite/replaceLoader.js +1 -1
  279. package/dist/cjs/vite/replaceLoader.js.map +1 -1
  280. package/dist/cjs/vite/replaceLoader.native.js +1 -1
  281. package/dist/cjs/vite/replaceLoader.native.js.map +1 -1
  282. package/dist/cjs/vite/resolveResponse.cjs +20 -8
  283. package/dist/cjs/vite/resolveResponse.js +22 -7
  284. package/dist/cjs/vite/resolveResponse.js.map +1 -1
  285. package/dist/cjs/vite/resolveResponse.native.js +20 -8
  286. package/dist/cjs/vite/resolveResponse.native.js.map +1 -1
  287. package/dist/cjs/vite-auto-warm.cjs +26 -0
  288. package/dist/cjs/vite-auto-warm.js +21 -0
  289. package/dist/cjs/vite-auto-warm.js.map +6 -0
  290. package/dist/cjs/vite-auto-warm.native.js +29 -0
  291. package/dist/cjs/vite-auto-warm.native.js.map +1 -0
  292. package/dist/cjs/vite.cjs +3 -1
  293. package/dist/cjs/vite.js +2 -1
  294. package/dist/cjs/vite.js.map +1 -1
  295. package/dist/cjs/vite.native.js +3 -1
  296. package/dist/cjs/vite.native.js.map +1 -1
  297. package/dist/esm/Root.js +7 -2
  298. package/dist/esm/Root.js.map +1 -1
  299. package/dist/esm/Root.mjs +12 -3
  300. package/dist/esm/Root.mjs.map +1 -1
  301. package/dist/esm/Root.native.js +19 -19
  302. package/dist/esm/Root.native.js.map +1 -1
  303. package/dist/esm/babel-plugins/inline-one-server-url.js +18 -0
  304. package/dist/esm/babel-plugins/inline-one-server-url.js.map +6 -0
  305. package/dist/esm/babel-plugins/inline-one-server-url.mjs +18 -0
  306. package/dist/esm/babel-plugins/inline-one-server-url.mjs.map +1 -0
  307. package/dist/esm/babel-plugins/inline-one-server-url.native.js +22 -0
  308. package/dist/esm/babel-plugins/inline-one-server-url.native.js.map +1 -0
  309. package/dist/esm/cli/build.js +86 -27
  310. package/dist/esm/cli/build.js.map +1 -1
  311. package/dist/esm/cli/build.mjs +87 -28
  312. package/dist/esm/cli/build.mjs.map +1 -1
  313. package/dist/esm/cli/build.native.js +104 -34
  314. package/dist/esm/cli/build.native.js.map +1 -1
  315. package/dist/esm/cli/buildPage.js +20 -13
  316. package/dist/esm/cli/buildPage.js.map +1 -1
  317. package/dist/esm/cli/buildPage.mjs +24 -12
  318. package/dist/esm/cli/buildPage.mjs.map +1 -1
  319. package/dist/esm/cli/buildPage.native.js +29 -18
  320. package/dist/esm/cli/buildPage.native.js.map +1 -1
  321. package/dist/esm/cli/buildPageWorker.js +11 -12
  322. package/dist/esm/cli/buildPageWorker.js.map +1 -1
  323. package/dist/esm/cli/buildPageWorker.mjs +9 -15
  324. package/dist/esm/cli/buildPageWorker.mjs.map +1 -1
  325. package/dist/esm/cli/buildPageWorker.native.js +5 -16
  326. package/dist/esm/cli/buildPageWorker.native.js.map +1 -1
  327. package/dist/esm/cli/patch.js +3 -3
  328. package/dist/esm/cli/patch.js.map +1 -1
  329. package/dist/esm/cli/patch.mjs +3 -3
  330. package/dist/esm/cli/patch.mjs.map +1 -1
  331. package/dist/esm/cli/patch.native.js +3 -3
  332. package/dist/esm/cli/patch.native.js.map +1 -1
  333. package/dist/esm/cli/securityScan.js +119 -0
  334. package/dist/esm/cli/securityScan.js.map +6 -0
  335. package/dist/esm/cli/securityScan.mjs +99 -0
  336. package/dist/esm/cli/securityScan.mjs.map +1 -0
  337. package/dist/esm/cli/securityScan.native.js +178 -0
  338. package/dist/esm/cli/securityScan.native.js.map +1 -0
  339. package/dist/esm/cli/workerPool.js +3 -3
  340. package/dist/esm/cli/workerPool.js.map +1 -1
  341. package/dist/esm/cli/workerPool.mjs +4 -3
  342. package/dist/esm/cli/workerPool.mjs.map +1 -1
  343. package/dist/esm/cli/workerPool.native.js +4 -3
  344. package/dist/esm/cli/workerPool.native.js.map +1 -1
  345. package/dist/esm/cli.js +12 -2
  346. package/dist/esm/cli.js.map +1 -1
  347. package/dist/esm/cli.mjs +13 -2
  348. package/dist/esm/cli.mjs.map +1 -1
  349. package/dist/esm/cli.native.js +13 -2
  350. package/dist/esm/cli.native.js.map +1 -1
  351. package/dist/esm/createApp.js +97 -25
  352. package/dist/esm/createApp.js.map +1 -1
  353. package/dist/esm/createApp.mjs +130 -64
  354. package/dist/esm/createApp.mjs.map +1 -1
  355. package/dist/esm/createHandleRequest.js +29 -18
  356. package/dist/esm/createHandleRequest.js.map +1 -1
  357. package/dist/esm/createHandleRequest.mjs +58 -35
  358. package/dist/esm/createHandleRequest.mjs.map +1 -1
  359. package/dist/esm/createHandleRequest.native.js +66 -41
  360. package/dist/esm/createHandleRequest.native.js.map +1 -1
  361. package/dist/esm/daemon/tui.js.map +1 -1
  362. package/dist/esm/daemon/tui.mjs.map +1 -1
  363. package/dist/esm/fork/NavigationContainer.js +12 -3
  364. package/dist/esm/fork/NavigationContainer.js.map +1 -1
  365. package/dist/esm/fork/NavigationContainer.mjs +26 -3
  366. package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
  367. package/dist/esm/fork/NavigationContainer.native.js +24 -1
  368. package/dist/esm/fork/NavigationContainer.native.js.map +1 -1
  369. package/dist/esm/fork/SSRNavigationContainer.js +55 -0
  370. package/dist/esm/fork/SSRNavigationContainer.js.map +6 -0
  371. package/dist/esm/fork/SSRNavigationContainer.mjs +82 -0
  372. package/dist/esm/fork/SSRNavigationContainer.mjs.map +1 -0
  373. package/dist/esm/fork/SSRNavigationContainer.native.js +93 -0
  374. package/dist/esm/fork/SSRNavigationContainer.native.js.map +1 -0
  375. package/dist/esm/fork/getPathFromState.js +5 -5
  376. package/dist/esm/fork/getPathFromState.js.map +1 -1
  377. package/dist/esm/fork/getPathFromState.mjs +10 -5
  378. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  379. package/dist/esm/fork/getPathFromState.native.js +11 -6
  380. package/dist/esm/fork/getPathFromState.native.js.map +1 -1
  381. package/dist/esm/fork/getStateFromPath-mods.js +1 -1
  382. package/dist/esm/fork/getStateFromPath-mods.js.map +1 -1
  383. package/dist/esm/fork/getStateFromPath-mods.mjs +1 -1
  384. package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -1
  385. package/dist/esm/fork/getStateFromPath-mods.native.js +1 -1
  386. package/dist/esm/fork/getStateFromPath-mods.native.js.map +1 -1
  387. package/dist/esm/fork/navigationThemes.js +38 -0
  388. package/dist/esm/fork/navigationThemes.js.map +6 -0
  389. package/dist/esm/fork/navigationThemes.mjs +60 -0
  390. package/dist/esm/fork/navigationThemes.mjs.map +1 -0
  391. package/dist/esm/fork/navigationThemes.native.js +60 -0
  392. package/dist/esm/fork/navigationThemes.native.js.map +1 -0
  393. package/dist/esm/fork/useLinking.js +10 -1
  394. package/dist/esm/fork/useLinking.js.map +1 -1
  395. package/dist/esm/fork/useLinking.mjs +11 -1
  396. package/dist/esm/fork/useLinking.mjs.map +1 -1
  397. package/dist/esm/fork/useLinking.native.js +1 -1
  398. package/dist/esm/fork/useLinking.native.js.map +1 -1
  399. package/dist/esm/getReactNavigationConfig.js +2 -2
  400. package/dist/esm/getReactNavigationConfig.js.map +1 -1
  401. package/dist/esm/getReactNavigationConfig.mjs +3 -1
  402. package/dist/esm/getReactNavigationConfig.mjs.map +1 -1
  403. package/dist/esm/getReactNavigationConfig.native.js +3 -1
  404. package/dist/esm/getReactNavigationConfig.native.js.map +1 -1
  405. package/dist/esm/index.js +2 -0
  406. package/dist/esm/index.js.map +1 -1
  407. package/dist/esm/index.mjs +2 -1
  408. package/dist/esm/index.mjs.map +1 -1
  409. package/dist/esm/index.native.js +2 -1
  410. package/dist/esm/index.native.js.map +1 -1
  411. package/dist/esm/layouts/stack-utils/StackScreen.js +27 -1
  412. package/dist/esm/layouts/stack-utils/StackScreen.js.map +1 -1
  413. package/dist/esm/layouts/stack-utils/StackScreen.mjs +14 -1
  414. package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
  415. package/dist/esm/layouts/stack-utils/StackScreen.native.js +17 -1
  416. package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
  417. package/dist/esm/layouts/stack-utils/index.js +4 -2
  418. package/dist/esm/layouts/stack-utils/index.js.map +1 -1
  419. package/dist/esm/layouts/stack-utils/index.mjs +2 -2
  420. package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
  421. package/dist/esm/layouts/stack-utils/index.native.js +2 -2
  422. package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
  423. package/dist/esm/metro-config/getViteMetroPluginOptions.js +3 -1
  424. package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
  425. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +3 -1
  426. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
  427. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +3 -1
  428. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  429. package/dist/esm/reactNavigationImports.js +21 -0
  430. package/dist/esm/reactNavigationImports.js.map +6 -0
  431. package/dist/esm/reactNavigationImports.mjs +3 -0
  432. package/dist/esm/reactNavigationImports.mjs.map +1 -0
  433. package/dist/esm/reactNavigationImports.native.js +3 -0
  434. package/dist/esm/reactNavigationImports.native.js.map +1 -0
  435. package/dist/esm/reactNavigationImports.server.js +32 -0
  436. package/dist/esm/reactNavigationImports.server.js.map +6 -0
  437. package/dist/esm/reactNavigationImports.server.mjs +20 -0
  438. package/dist/esm/reactNavigationImports.server.mjs.map +1 -0
  439. package/dist/esm/reactNavigationImports.server.native.js +22 -0
  440. package/dist/esm/reactNavigationImports.server.native.js.map +1 -0
  441. package/dist/esm/router/findRouteNode.js +4 -4
  442. package/dist/esm/router/findRouteNode.js.map +1 -1
  443. package/dist/esm/router/findRouteNode.mjs +4 -4
  444. package/dist/esm/router/findRouteNode.mjs.map +1 -1
  445. package/dist/esm/router/findRouteNode.native.js +4 -4
  446. package/dist/esm/router/findRouteNode.native.js.map +1 -1
  447. package/dist/esm/router/isIndexPath.js +2 -0
  448. package/dist/esm/router/isIndexPath.js.map +1 -1
  449. package/dist/esm/router/isIndexPath.mjs +1 -0
  450. package/dist/esm/router/isIndexPath.mjs.map +1 -1
  451. package/dist/esm/router/isIndexPath.native.js +3 -2
  452. package/dist/esm/router/isIndexPath.native.js.map +1 -1
  453. package/dist/esm/router/linkingConfig.js +18 -2
  454. package/dist/esm/router/linkingConfig.js.map +1 -1
  455. package/dist/esm/router/linkingConfig.mjs +18 -3
  456. package/dist/esm/router/linkingConfig.mjs.map +1 -1
  457. package/dist/esm/router/linkingConfig.native.js +20 -3
  458. package/dist/esm/router/linkingConfig.native.js.map +1 -1
  459. package/dist/esm/router/router.js +23 -20
  460. package/dist/esm/router/router.js.map +2 -2
  461. package/dist/esm/router/router.mjs +30 -25
  462. package/dist/esm/router/router.mjs.map +1 -1
  463. package/dist/esm/router/router.native.js +21 -15
  464. package/dist/esm/router/router.native.js.map +1 -1
  465. package/dist/esm/router/useInitializeOneRouter.js +21 -7
  466. package/dist/esm/router/useInitializeOneRouter.js.map +1 -1
  467. package/dist/esm/router/useInitializeOneRouter.mjs +23 -8
  468. package/dist/esm/router/useInitializeOneRouter.mjs.map +1 -1
  469. package/dist/esm/router/useInitializeOneRouter.native.js +23 -8
  470. package/dist/esm/router/useInitializeOneRouter.native.js.map +1 -1
  471. package/dist/esm/router/useScreens.js +47 -21
  472. package/dist/esm/router/useScreens.js.map +1 -1
  473. package/dist/esm/router/useScreens.mjs +30 -11
  474. package/dist/esm/router/useScreens.mjs.map +1 -1
  475. package/dist/esm/router/useScreens.native.js +25 -10
  476. package/dist/esm/router/useScreens.native.js.map +1 -1
  477. package/dist/esm/screensFeatureFlags.js +15 -0
  478. package/dist/esm/screensFeatureFlags.js.map +6 -0
  479. package/dist/esm/screensFeatureFlags.mjs +14 -0
  480. package/dist/esm/screensFeatureFlags.mjs.map +1 -0
  481. package/dist/esm/screensFeatureFlags.native.js +14 -0
  482. package/dist/esm/screensFeatureFlags.native.js.map +1 -0
  483. package/dist/esm/serve.js +26 -3
  484. package/dist/esm/serve.js.map +1 -1
  485. package/dist/esm/serve.mjs +27 -3
  486. package/dist/esm/serve.mjs.map +1 -1
  487. package/dist/esm/serve.native.js +36 -4
  488. package/dist/esm/serve.native.js.map +1 -1
  489. package/dist/esm/server/ServerContextScript.js +12 -6
  490. package/dist/esm/server/ServerContextScript.js.map +1 -1
  491. package/dist/esm/server/ServerContextScript.mjs +14 -5
  492. package/dist/esm/server/ServerContextScript.mjs.map +1 -1
  493. package/dist/esm/server/ServerContextScript.native.js +18 -6
  494. package/dist/esm/server/ServerContextScript.native.js.map +1 -1
  495. package/dist/esm/server/oneServe.js +105 -29
  496. package/dist/esm/server/oneServe.js.map +1 -1
  497. package/dist/esm/server/oneServe.mjs +279 -182
  498. package/dist/esm/server/oneServe.mjs.map +1 -1
  499. package/dist/esm/server/oneServe.native.js +334 -215
  500. package/dist/esm/server/oneServe.native.js.map +1 -1
  501. package/dist/esm/server/ssrLoaderData.js +9 -0
  502. package/dist/esm/server/ssrLoaderData.js.map +6 -0
  503. package/dist/esm/server/ssrLoaderData.mjs +6 -0
  504. package/dist/esm/server/ssrLoaderData.mjs.map +1 -0
  505. package/dist/esm/server/ssrLoaderData.native.js +6 -0
  506. package/dist/esm/server/ssrLoaderData.native.js.map +1 -0
  507. package/dist/esm/server-render.js +11 -15
  508. package/dist/esm/server-render.js.map +1 -1
  509. package/dist/esm/server-render.mjs +21 -22
  510. package/dist/esm/server-render.mjs.map +1 -1
  511. package/dist/esm/server-render.native.js +17 -38
  512. package/dist/esm/server-render.native.js.map +1 -1
  513. package/dist/esm/ui/Slot.js +4 -0
  514. package/dist/esm/ui/Slot.js.map +1 -1
  515. package/dist/esm/ui/Slot.mjs +1 -0
  516. package/dist/esm/ui/Slot.mjs.map +1 -1
  517. package/dist/esm/ui/Slot.native.js +1 -0
  518. package/dist/esm/ui/Slot.native.js.map +1 -1
  519. package/dist/esm/ui/TabRouter.js +18 -2
  520. package/dist/esm/ui/TabRouter.js.map +1 -1
  521. package/dist/esm/ui/TabRouter.mjs +32 -19
  522. package/dist/esm/ui/TabRouter.mjs.map +1 -1
  523. package/dist/esm/ui/TabRouter.native.js +13 -0
  524. package/dist/esm/ui/TabRouter.native.js.map +1 -1
  525. package/dist/esm/ui/TabTrigger.js +1 -1
  526. package/dist/esm/ui/TabTrigger.js.map +1 -1
  527. package/dist/esm/ui/TabTrigger.mjs +2 -2
  528. package/dist/esm/ui/TabTrigger.mjs.map +1 -1
  529. package/dist/esm/ui/TabTrigger.native.js +2 -2
  530. package/dist/esm/ui/TabTrigger.native.js.map +1 -1
  531. package/dist/esm/useLoader.js +37 -8
  532. package/dist/esm/useLoader.js.map +1 -1
  533. package/dist/esm/useLoader.mjs +38 -9
  534. package/dist/esm/useLoader.mjs.map +1 -1
  535. package/dist/esm/useLoader.native.js +47 -11
  536. package/dist/esm/useLoader.native.js.map +1 -1
  537. package/dist/esm/utils/isRolldown.js +4 -10
  538. package/dist/esm/utils/isRolldown.js.map +1 -1
  539. package/dist/esm/utils/isRolldown.mjs +4 -9
  540. package/dist/esm/utils/isRolldown.mjs.map +1 -1
  541. package/dist/esm/utils/isRolldown.native.js +4 -10
  542. package/dist/esm/utils/isRolldown.native.js.map +1 -1
  543. package/dist/esm/utils/removeParams.js +24 -0
  544. package/dist/esm/utils/removeParams.js.map +6 -0
  545. package/dist/esm/utils/removeParams.mjs +29 -0
  546. package/dist/esm/utils/removeParams.mjs.map +1 -0
  547. package/dist/esm/utils/removeParams.native.js +45 -0
  548. package/dist/esm/utils/removeParams.native.js.map +1 -0
  549. package/dist/esm/vercel/build/buildVercelOutputDirectory.js +7 -5
  550. package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  551. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs +7 -5
  552. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
  553. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +7 -4
  554. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  555. package/dist/esm/vercel/build/generate/createApiServerlessFunction.js +2 -2
  556. package/dist/esm/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
  557. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs +2 -2
  558. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs.map +1 -1
  559. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js +2 -1
  560. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  561. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js +2 -2
  562. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  563. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs +3 -2
  564. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs.map +1 -1
  565. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js +3 -2
  566. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  567. package/dist/esm/views/Navigator.js +2 -0
  568. package/dist/esm/views/Navigator.js.map +1 -1
  569. package/dist/esm/views/Navigator.mjs +1 -0
  570. package/dist/esm/views/Navigator.mjs.map +1 -1
  571. package/dist/esm/views/Navigator.native.js +1 -0
  572. package/dist/esm/views/Navigator.native.js.map +1 -1
  573. package/dist/esm/vite/one-server-only.js +3 -3
  574. package/dist/esm/vite/one-server-only.js.map +1 -1
  575. package/dist/esm/vite/one-server-only.mjs +6 -3
  576. package/dist/esm/vite/one-server-only.mjs.map +1 -1
  577. package/dist/esm/vite/one-server-only.native.js +4 -1
  578. package/dist/esm/vite/one-server-only.native.js.map +1 -1
  579. package/dist/esm/vite/one.js +94 -24
  580. package/dist/esm/vite/one.js.map +1 -1
  581. package/dist/esm/vite/one.mjs +75 -29
  582. package/dist/esm/vite/one.mjs.map +1 -1
  583. package/dist/esm/vite/one.native.js +143 -34
  584. package/dist/esm/vite/one.native.js.map +1 -1
  585. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  586. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  587. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  588. package/dist/esm/vite/plugins/criticalCSSPlugin.js +36 -0
  589. package/dist/esm/vite/plugins/criticalCSSPlugin.js.map +6 -0
  590. package/dist/esm/vite/plugins/criticalCSSPlugin.mjs +34 -0
  591. package/dist/esm/vite/plugins/criticalCSSPlugin.mjs.map +1 -0
  592. package/dist/esm/vite/plugins/criticalCSSPlugin.native.js +50 -0
  593. package/dist/esm/vite/plugins/criticalCSSPlugin.native.js.map +1 -0
  594. package/dist/esm/vite/plugins/criticalCSSPlugin.test.js +107 -0
  595. package/dist/esm/vite/plugins/criticalCSSPlugin.test.js.map +6 -0
  596. package/dist/esm/vite/plugins/criticalCSSPlugin.test.mjs +139 -0
  597. package/dist/esm/vite/plugins/criticalCSSPlugin.test.mjs.map +1 -0
  598. package/dist/esm/vite/plugins/criticalCSSPlugin.test.native.js +141 -0
  599. package/dist/esm/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -0
  600. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +2 -2
  601. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  602. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +2 -2
  603. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  604. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +2 -2
  605. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  606. package/dist/esm/vite/plugins/fixDependenciesPlugin.js +3 -9
  607. package/dist/esm/vite/plugins/fixDependenciesPlugin.js.map +1 -1
  608. package/dist/esm/vite/plugins/fixDependenciesPlugin.mjs +3 -9
  609. package/dist/esm/vite/plugins/fixDependenciesPlugin.mjs.map +1 -1
  610. package/dist/esm/vite/plugins/fixDependenciesPlugin.native.js +3 -9
  611. package/dist/esm/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
  612. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.js +8 -11
  613. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.js.map +1 -1
  614. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.mjs +6 -14
  615. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.mjs.map +1 -1
  616. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js +6 -18
  617. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
  618. package/dist/esm/vite/plugins/sourceInspectorPlugin.js +12 -7
  619. package/dist/esm/vite/plugins/sourceInspectorPlugin.js.map +1 -1
  620. package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs +11 -6
  621. package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs.map +1 -1
  622. package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js +12 -7
  623. package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
  624. package/dist/esm/vite/plugins/warmRoutesPlugin.js +80 -0
  625. package/dist/esm/vite/plugins/warmRoutesPlugin.js.map +6 -0
  626. package/dist/esm/vite/plugins/warmRoutesPlugin.mjs +74 -0
  627. package/dist/esm/vite/plugins/warmRoutesPlugin.mjs.map +1 -0
  628. package/dist/esm/vite/plugins/warmRoutesPlugin.native.js +107 -0
  629. package/dist/esm/vite/plugins/warmRoutesPlugin.native.js.map +1 -0
  630. package/dist/esm/vite/replaceLoader.js +1 -1
  631. package/dist/esm/vite/replaceLoader.js.map +1 -1
  632. package/dist/esm/vite/replaceLoader.mjs +1 -1
  633. package/dist/esm/vite/replaceLoader.mjs.map +1 -1
  634. package/dist/esm/vite/replaceLoader.native.js +1 -1
  635. package/dist/esm/vite/replaceLoader.native.js.map +1 -1
  636. package/dist/esm/vite/resolveResponse.js +23 -7
  637. package/dist/esm/vite/resolveResponse.js.map +1 -1
  638. package/dist/esm/vite/resolveResponse.mjs +21 -9
  639. package/dist/esm/vite/resolveResponse.mjs.map +1 -1
  640. package/dist/esm/vite/resolveResponse.native.js +21 -9
  641. package/dist/esm/vite/resolveResponse.native.js.map +1 -1
  642. package/dist/esm/vite-auto-warm.js +5 -0
  643. package/dist/esm/vite-auto-warm.js.map +6 -0
  644. package/dist/esm/vite-auto-warm.mjs +3 -0
  645. package/dist/esm/vite-auto-warm.mjs.map +1 -0
  646. package/dist/esm/vite-auto-warm.native.js +3 -0
  647. package/dist/esm/vite-auto-warm.native.js.map +1 -0
  648. package/dist/esm/vite.js +2 -0
  649. package/dist/esm/vite.js.map +1 -1
  650. package/dist/esm/vite.mjs +2 -1
  651. package/dist/esm/vite.mjs.map +1 -1
  652. package/dist/esm/vite.native.js +2 -1
  653. package/dist/esm/vite.native.js.map +1 -1
  654. package/package.json +44 -35
  655. package/src/Root.tsx +17 -13
  656. package/src/babel-plugins/inline-one-server-url.ts +26 -0
  657. package/src/cli/build.ts +130 -28
  658. package/src/cli/buildPage.ts +46 -20
  659. package/src/cli/buildPageWorker.ts +6 -18
  660. package/src/cli/patch.ts +3 -3
  661. package/src/cli/securityScan.ts +189 -0
  662. package/src/cli/workerPool.ts +5 -5
  663. package/src/cli.ts +11 -0
  664. package/src/createApp.tsx +165 -56
  665. package/src/createHandleRequest.ts +75 -18
  666. package/src/daemon/tui.ts +3 -3
  667. package/src/fork/NavigationContainer.tsx +38 -16
  668. package/src/fork/SSRNavigationContainer.tsx +94 -0
  669. package/src/fork/getPathFromState.ts +15 -5
  670. package/src/fork/getStateFromPath-mods.ts +1 -1
  671. package/src/fork/useLinking.native.ts +15 -13
  672. package/src/fork/useLinking.ts +22 -1
  673. package/src/getReactNavigationConfig.ts +3 -0
  674. package/src/index.ts +1 -0
  675. package/src/interfaces/router.ts +2 -3
  676. package/src/layouts/stack-utils/StackScreen.tsx +47 -0
  677. package/src/layouts/stack-utils/index.tsx +1 -0
  678. package/src/metro-config/getViteMetroPluginOptions.ts +2 -0
  679. package/src/router/findRouteNode.ts +4 -4
  680. package/src/router/isIndexPath.ts +4 -0
  681. package/src/router/linkingConfig.ts +53 -2
  682. package/src/router/router.ts +71 -45
  683. package/src/router/useInitializeOneRouter.ts +47 -15
  684. package/src/router/useScreens.tsx +56 -20
  685. package/src/screensFeatureFlags.ts +23 -0
  686. package/src/serve.ts +65 -5
  687. package/src/server/ServerContextScript.tsx +15 -8
  688. package/src/server/oneServe.ts +184 -47
  689. package/src/server/ssrLoaderData.ts +8 -0
  690. package/src/server-render.tsx +25 -28
  691. package/src/ui/Slot.tsx +7 -0
  692. package/src/ui/TabRouter.tsx +18 -0
  693. package/src/ui/TabTrigger.tsx +3 -0
  694. package/src/useLoader.ts +69 -11
  695. package/src/utils/isRolldown.ts +4 -14
  696. package/src/utils/removeParams.ts +40 -0
  697. package/src/vercel/build/buildVercelOutputDirectory.ts +12 -7
  698. package/src/vercel/build/generate/createApiServerlessFunction.ts +3 -2
  699. package/src/vercel/build/generate/createSsrServerlessFunction.ts +3 -2
  700. package/src/views/Navigator.tsx +4 -0
  701. package/src/vite/one-server-only.native.ts +3 -0
  702. package/src/vite/one-server-only.tsx +13 -5
  703. package/src/vite/one.ts +134 -28
  704. package/src/vite/plugins/SSRCSSPlugin.ts +2 -2
  705. package/src/vite/plugins/criticalCSSPlugin.test.ts +166 -0
  706. package/src/vite/plugins/criticalCSSPlugin.ts +74 -0
  707. package/src/vite/plugins/fileSystemRouterPlugin.tsx +3 -2
  708. package/src/vite/plugins/fixDependenciesPlugin.ts +7 -19
  709. package/src/vite/plugins/removeReactNativeWebAnimatedPlugin.ts +10 -17
  710. package/src/vite/plugins/sourceInspectorPlugin.ts +28 -23
  711. package/src/vite/plugins/warmRoutesPlugin.ts +156 -0
  712. package/src/vite/replaceLoader.ts +2 -1
  713. package/src/vite/resolveResponse.ts +25 -9
  714. package/src/vite/types.ts +54 -10
  715. package/src/vite-auto-warm.ts +1 -0
  716. package/src/vite.ts +1 -0
  717. package/types/Root.d.ts.map +1 -1
  718. package/types/babel-plugins/inline-one-server-url.d.ts +10 -0
  719. package/types/babel-plugins/inline-one-server-url.d.ts.map +1 -0
  720. package/types/cli/build.d.ts.map +1 -1
  721. package/types/cli/buildPage.d.ts +1 -1
  722. package/types/cli/buildPage.d.ts.map +1 -1
  723. package/types/cli/securityScan.d.ts +16 -0
  724. package/types/cli/securityScan.d.ts.map +1 -0
  725. package/types/cli/workerPool.d.ts +2 -1
  726. package/types/cli/workerPool.d.ts.map +1 -1
  727. package/types/createApp.d.ts +2 -1
  728. package/types/createApp.d.ts.map +1 -1
  729. package/types/createHandleRequest.d.ts +2 -1
  730. package/types/createHandleRequest.d.ts.map +1 -1
  731. package/types/fork/NavigationContainer.d.ts.map +1 -1
  732. package/types/fork/SSRNavigationContainer.d.ts +16 -0
  733. package/types/fork/SSRNavigationContainer.d.ts.map +1 -0
  734. package/types/fork/getPathFromState.d.ts.map +1 -1
  735. package/types/fork/navigationThemes.d.ts.map +1 -0
  736. package/types/fork/useLinking.d.ts.map +1 -1
  737. package/types/fork/useLinking.native.d.ts.map +1 -1
  738. package/types/getReactNavigationConfig.d.ts.map +1 -1
  739. package/types/index.d.ts +1 -0
  740. package/types/index.d.ts.map +1 -1
  741. package/types/interfaces/router.d.ts +2 -1
  742. package/types/interfaces/router.d.ts.map +1 -1
  743. package/types/layouts/Stack.d.ts +15 -11
  744. package/types/layouts/Stack.d.ts.map +1 -1
  745. package/types/layouts/Tabs.d.ts +15 -11
  746. package/types/layouts/Tabs.d.ts.map +1 -1
  747. package/types/layouts/stack-utils/StackScreen.d.ts +2 -0
  748. package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
  749. package/types/layouts/stack-utils/index.d.ts +1 -1
  750. package/types/layouts/stack-utils/index.d.ts.map +1 -1
  751. package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
  752. package/types/reactNavigationImports.d.ts.map +1 -0
  753. package/types/reactNavigationImports.server.d.ts.map +1 -0
  754. package/types/router/isIndexPath.d.ts.map +1 -1
  755. package/types/router/linkingConfig.d.ts +10 -0
  756. package/types/router/linkingConfig.d.ts.map +1 -1
  757. package/types/router/router.d.ts +8 -3
  758. package/types/router/router.d.ts.map +1 -1
  759. package/types/router/useInitializeOneRouter.d.ts +1 -0
  760. package/types/router/useInitializeOneRouter.d.ts.map +1 -1
  761. package/types/router/useScreens.d.ts.map +1 -1
  762. package/types/screensFeatureFlags.d.ts +2 -0
  763. package/types/screensFeatureFlags.d.ts.map +1 -0
  764. package/types/serve.d.ts +2 -0
  765. package/types/serve.d.ts.map +1 -1
  766. package/types/server/ServerContextScript.d.ts.map +1 -1
  767. package/types/server/oneServe.d.ts.map +1 -1
  768. package/types/server/ssrLoaderData.d.ts +3 -0
  769. package/types/server/ssrLoaderData.d.ts.map +1 -0
  770. package/types/server-render.d.ts +10 -7
  771. package/types/server-render.d.ts.map +1 -1
  772. package/types/ui/Slot.d.ts.map +1 -1
  773. package/types/ui/TabRouter.d.ts.map +1 -1
  774. package/types/ui/TabTrigger.d.ts.map +1 -1
  775. package/types/useLoader.d.ts +1 -0
  776. package/types/useLoader.d.ts.map +1 -1
  777. package/types/utils/isRolldown.d.ts +1 -1
  778. package/types/utils/isRolldown.d.ts.map +1 -1
  779. package/types/utils/removeParams.d.ts +8 -0
  780. package/types/utils/removeParams.d.ts.map +1 -0
  781. package/types/vercel/build/buildVercelOutputDirectory.d.ts +2 -2
  782. package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -1
  783. package/types/vercel/build/generate/createApiServerlessFunction.d.ts +1 -1
  784. package/types/vercel/build/generate/createApiServerlessFunction.d.ts.map +1 -1
  785. package/types/vercel/build/generate/createSsrServerlessFunction.d.ts.map +1 -1
  786. package/types/views/Navigator.d.ts.map +1 -1
  787. package/types/vite/one-server-only.d.ts.map +1 -1
  788. package/types/vite/one-server-only.native.d.ts +3 -0
  789. package/types/vite/one-server-only.native.d.ts.map +1 -1
  790. package/types/vite/one.d.ts.map +1 -1
  791. package/types/vite/plugins/criticalCSSPlugin.d.ts +12 -0
  792. package/types/vite/plugins/criticalCSSPlugin.d.ts.map +1 -0
  793. package/types/vite/plugins/criticalCSSPlugin.test.d.ts +2 -0
  794. package/types/vite/plugins/criticalCSSPlugin.test.d.ts.map +1 -0
  795. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  796. package/types/vite/plugins/fixDependenciesPlugin.d.ts.map +1 -1
  797. package/types/vite/plugins/removeReactNativeWebAnimatedPlugin.d.ts.map +1 -1
  798. package/types/vite/plugins/sourceInspectorPlugin.d.ts.map +1 -1
  799. package/types/vite/plugins/warmRoutesPlugin.d.ts +17 -0
  800. package/types/vite/plugins/warmRoutesPlugin.d.ts.map +1 -0
  801. package/types/vite/replaceLoader.d.ts.map +1 -1
  802. package/types/vite/resolveResponse.d.ts +2 -2
  803. package/types/vite/resolveResponse.d.ts.map +1 -1
  804. package/types/vite/types.d.ts +51 -10
  805. package/types/vite/types.d.ts.map +1 -1
  806. package/types/vite-auto-warm.d.ts +2 -0
  807. package/types/vite-auto-warm.d.ts.map +1 -0
  808. package/types/vite.d.ts +1 -0
  809. package/types/vite.d.ts.map +1 -1
  810. package/vendor/react-dom/package.json +1 -1
  811. package/dist/cjs/cli/easPrebuild.cjs +0 -117
  812. package/dist/cjs/cli/easPrebuild.js +0 -94
  813. package/dist/cjs/cli/easPrebuild.js.map +0 -6
  814. package/dist/cjs/cli/easPrebuild.native.js +0 -135
  815. package/dist/cjs/cli/easPrebuild.native.js.map +0 -1
  816. package/dist/esm/cli/easPrebuild.js +0 -73
  817. package/dist/esm/cli/easPrebuild.js.map +0 -6
  818. package/dist/esm/cli/easPrebuild.mjs +0 -83
  819. package/dist/esm/cli/easPrebuild.mjs.map +0 -1
  820. package/dist/esm/cli/easPrebuild.native.js +0 -98
  821. package/dist/esm/cli/easPrebuild.native.js.map +0 -1
  822. package/types/cli/easPrebuild.d.ts.map +0 -1
  823. package/types/cli/findClientManifestEntry.d.ts.map +0 -1
  824. package/types/cli/findClientManifestEntry.test.d.ts.map +0 -1
  825. package/types/env.d.ts.map +0 -1
  826. package/types/router/routeMask.d.ts.map +0 -1
  827. package/types/server/PreloadScripts.d.ts.map +0 -1
  828. /package/types/vercel/build/generate/{createSSRServerlessFunction.d.ts → createSsrServerlessFunction.d.ts} +0 -0
package/src/cli/build.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import { createRequire } from 'node:module'
2
2
  import { cpus } from 'node:os'
3
3
  import Path, { join, relative, resolve } from 'node:path'
4
+ import { resolvePath } from '@vxrn/resolve'
4
5
  import FSExtra from 'fs-extra'
5
6
  import MicroMatch from 'micromatch'
6
- import type { OutputAsset, RollupOutput } from 'rollup'
7
+ import type { OutputAsset, RolldownOutput } from 'rolldown'
7
8
  import { type InlineConfig, mergeConfig, build as viteBuild } from 'vite'
8
9
  import {
9
10
  type ClientManifestEntry,
@@ -30,6 +31,7 @@ import { getWorkerPool, terminateWorkerPool } from './workerPool'
30
31
  import { generateSitemap, type RouteSitemapData } from './generateSitemap'
31
32
  import { labelProcess } from './label-process'
32
33
  import { pLimit } from '../utils/pLimit'
34
+ import { getCriticalCSSOutputPaths } from '../vite/plugins/criticalCSSPlugin'
33
35
 
34
36
  const { ensureDir, writeJSON } = FSExtra
35
37
 
@@ -74,7 +76,7 @@ export async function build(args: {
74
76
  checkNodeVersion()
75
77
  setServerGlobals()
76
78
 
77
- const { oneOptions } = await loadUserOneOptions('build')
79
+ const { oneOptions, config: viteLoadedConfig } = await loadUserOneOptions('build')
78
80
  const routerRoot = getRouterRootFromOneOptions(oneOptions)
79
81
 
80
82
  // Set defaultRenderMode env var so getManifest knows the correct route types
@@ -82,6 +84,9 @@ export async function build(args: {
82
84
  process.env.ONE_DEFAULT_RENDER_MODE = oneOptions.web.defaultRenderMode
83
85
  }
84
86
 
87
+ // respect vite's build.outDir config, default to 'dist'
88
+ const outDir = viteLoadedConfig?.config?.build?.outDir ?? 'dist'
89
+
85
90
  const manifest = getManifest({ routerRoot })!
86
91
 
87
92
  const serverOutputFormat =
@@ -118,6 +123,7 @@ export async function build(args: {
118
123
  const options = await fillOptions(vxrnOutput.options, { mode: 'prod' })
119
124
 
120
125
  const { optimizeDeps } = getOptimizeDeps('build')
126
+ const { rolldownOptions: _rolldownOptions, ...optimizeDepsNoRolldown } = optimizeDeps
121
127
 
122
128
  const apiBuildConfig = mergeConfig(
123
129
  // feels like this should build off the *server* build config not web
@@ -125,7 +131,12 @@ export async function build(args: {
125
131
  {
126
132
  configFile: false,
127
133
  appType: 'custom',
128
- optimizeDeps,
134
+ optimizeDeps: optimizeDepsNoRolldown,
135
+ environments: {
136
+ client: {
137
+ optimizeDeps: { rolldownOptions: _rolldownOptions },
138
+ },
139
+ },
129
140
  } satisfies InlineConfig
130
141
  )
131
142
 
@@ -154,16 +165,22 @@ export async function build(args: {
154
165
  ssr: {
155
166
  noExternal: true,
156
167
  external: ['react', 'react-dom'],
157
- optimizeDeps,
168
+ optimizeDeps: optimizeDepsNoRolldown,
169
+ },
170
+
171
+ environments: {
172
+ ssr: {
173
+ optimizeDeps: { rolldownOptions: _rolldownOptions },
174
+ },
158
175
  },
159
176
 
160
177
  build: {
161
178
  ssr: true,
162
179
  emptyOutDir: false,
163
- outDir: `dist/${subFolder}`,
180
+ outDir: `${outDir}/${subFolder}`,
164
181
  copyPublicDir: false,
165
182
  minify: false,
166
- rollupOptions: {
183
+ rolldownOptions: {
167
184
  treeshake: treeshake ?? {
168
185
  moduleSideEffects: false,
169
186
  },
@@ -180,7 +197,7 @@ export async function build(args: {
180
197
  // prevents it from shaking out the exports
181
198
  preserveEntrySignatures: 'strict',
182
199
  input: input,
183
- external: () => false,
200
+ external: [],
184
201
  output: {
185
202
  entryFileNames: '[name]',
186
203
  exports: 'auto',
@@ -228,7 +245,7 @@ export async function build(args: {
228
245
  finalApiBuildConf
229
246
  )
230
247
 
231
- return output as RollupOutput
248
+ return output as RolldownOutput
232
249
  }
233
250
 
234
251
  // build api routes and middlewares in parallel
@@ -256,7 +273,7 @@ export async function build(args: {
256
273
  const outChunks = middlewareBuildInfo.output.filter((x) => x.type === 'chunk')
257
274
  const chunk = outChunks.find((x) => x.facadeModuleId === fullPath)
258
275
  if (!chunk) throw new Error(`internal err finding middleware`)
259
- builtMiddlewares[middleware.file] = join('dist', 'middlewares', chunk.fileName)
276
+ builtMiddlewares[middleware.file] = join(outDir, 'middlewares', chunk.fileName)
260
277
  }
261
278
  }
262
279
 
@@ -272,6 +289,9 @@ export async function build(args: {
272
289
  const collectImportsCache = new Map<string, string[]>()
273
290
  const cssFileContentsCache = new Map<string, string>()
274
291
 
292
+ // css files with .inline.css extension — should be inlined as <style>
293
+ const criticalCSSOutputPaths = getCriticalCSSOutputPaths(vxrnOutput.clientManifest)
294
+
275
295
  // concurrency limiter for parallel page builds
276
296
  const limit = pLimit(BUILD_CONCURRENCY)
277
297
 
@@ -279,7 +299,13 @@ export async function build(args: {
279
299
  const useWorkers = shouldUseWorkers(oneOptions)
280
300
  const workerPool = useWorkers ? getWorkerPool(BUILD_CONCURRENCY) : null
281
301
  if (workerPool) {
282
- await workerPool.initialize()
302
+ // strip non-cloneable values so workers skip re-loading vite config
303
+ const serializableOptions = JSON.parse(
304
+ JSON.stringify(oneOptions, (_key, value) =>
305
+ typeof value === 'function' ? undefined : value
306
+ )
307
+ )
308
+ await workerPool.initialize(serializableOptions)
283
309
  }
284
310
 
285
311
  const staticStartTime = performance.now()
@@ -288,8 +314,8 @@ export async function build(args: {
288
314
  : `concurrency: ${BUILD_CONCURRENCY}`
289
315
  console.info(`\n 🔨 build static routes (${modeLabel})\n`)
290
316
 
291
- const staticDir = join(`dist/static`)
292
- const clientDir = join(`dist/client`)
317
+ const staticDir = join(`${outDir}/static`)
318
+ const clientDir = join(`${outDir}/client`)
293
319
  await ensureDir(staticDir)
294
320
 
295
321
  if (!vxrnOutput.serverOutput) {
@@ -585,12 +611,24 @@ export async function build(args: {
585
611
  : allPreloads
586
612
 
587
613
  const allEntries = [clientManifestEntry, ...layoutEntries].filter(Boolean)
614
+
615
+ // layout css (from layout entries) - should load before scripts to prevent FOUC
616
+ const layoutCSS = [
617
+ ...new Set(
618
+ layoutEntries
619
+ .flatMap((entry) => collectImports(entry, { type: 'css' }))
620
+ .map((path) => `/${path}`)
621
+ ),
622
+ ]
623
+
624
+ // all css including page entry and root-level css
588
625
  const allCSS = [
589
626
  ...new Set([
590
- // css from entry imports
591
- ...allEntries
592
- .flatMap((entry) => collectImports(entry, { type: 'css' }))
593
- .map((path) => `/${path}`),
627
+ ...layoutCSS,
628
+ // css from page entry
629
+ ...(clientManifestEntry
630
+ ? collectImports(clientManifestEntry, { type: 'css' }).map((path) => `/${path}`)
631
+ : []),
594
632
  // root-level css (handles cssCodeSplit: false)
595
633
  ...Object.entries(vxrnOutput.clientManifest)
596
634
  .filter(([key]) => key.endsWith('.css'))
@@ -598,11 +636,22 @@ export async function build(args: {
598
636
  ]),
599
637
  ]
600
638
 
601
- // Read CSS file contents if inlineLayoutCSS is enabled (with caching)
639
+ // check if any css needs inlining (inlineLayoutCSS option or .inline.css imports)
640
+ const hasCriticalCSS = allCSS.some((p) => criticalCSSOutputPaths.has(p))
641
+ const needsCSSContents = oneOptions.web?.inlineLayoutCSS || hasCriticalCSS
642
+
643
+ // read css file contents for inlining (with caching)
602
644
  let allCSSContents: string[] | undefined
603
- if (oneOptions.web?.inlineLayoutCSS) {
645
+ if (needsCSSContents) {
604
646
  allCSSContents = await Promise.all(
605
647
  allCSS.map(async (cssPath) => {
648
+ // only read contents for css that should be inlined:
649
+ // - all css when inlineLayoutCSS is enabled
650
+ // - only .inline.css otherwise
651
+ if (!oneOptions.web?.inlineLayoutCSS && !criticalCSSOutputPaths.has(cssPath)) {
652
+ return ''
653
+ }
654
+
606
655
  // check cache first
607
656
  const cached = cssFileContentsCache.get(cssPath)
608
657
  if (cached !== undefined) return cached
@@ -630,7 +679,7 @@ export async function build(args: {
630
679
  })
631
680
  }
632
681
 
633
- const serverJsPath = join('dist/server', serverFileName)
682
+ const serverJsPath = join(`${outDir}/server`, serverFileName)
634
683
 
635
684
  let exported
636
685
  try {
@@ -714,6 +763,7 @@ export async function build(args: {
714
763
  serverJsPath,
715
764
  preloads,
716
765
  allCSS,
766
+ layoutCSS,
717
767
  routePreloads,
718
768
  allCSSContents,
719
769
  criticalPreloads,
@@ -747,6 +797,7 @@ export async function build(args: {
747
797
  serverJsPath,
748
798
  preloads,
749
799
  allCSS,
800
+ layoutCSS,
750
801
  routePreloads,
751
802
  allCSSContents,
752
803
  criticalPreloads,
@@ -853,6 +904,7 @@ export async function build(args: {
853
904
  }
854
905
 
855
906
  const buildInfoForWriting: One.BuildInfo = {
907
+ outDir,
856
908
  oneOptions,
857
909
  routeToBuildInfo,
858
910
  pathToRoute,
@@ -869,7 +921,7 @@ export async function build(args: {
869
921
  useRolldown: await isRolldown(),
870
922
  }
871
923
 
872
- await writeJSON(toAbsolute(`dist/buildInfo.json`), buildInfoForWriting)
924
+ await writeJSON(toAbsolute(`${outDir}/buildInfo.json`), buildInfoForWriting)
873
925
 
874
926
  // emit version.json for skew protection polling
875
927
  await FSExtra.writeFile(
@@ -938,7 +990,8 @@ export async function build(args: {
938
990
  buildInfoForWriting.routeToBuildInfo
939
991
  )) {
940
992
  if (info.serverJsPath) {
941
- const importPath = './' + info.serverJsPath.replace(/^dist\//, '')
993
+ const importPath =
994
+ './' + info.serverJsPath.replace(new RegExp(`^${outDir}/`), '')
942
995
  pageRouteMap.push(` '${routeFile}': () => import('${importPath}')`)
943
996
  }
944
997
  }
@@ -958,11 +1011,11 @@ export async function build(args: {
958
1011
  // Generate lazy imports for middlewares
959
1012
  // The key must match the contextKey used to look up the middleware (e.g., "dist/middlewares/_middleware.js")
960
1013
  for (const [, builtPath] of Object.entries(builtMiddlewares)) {
961
- const importPath = './' + builtPath.replace(/^dist\//, '')
1014
+ const importPath = './' + builtPath.replace(new RegExp(`^${outDir}/`), '')
962
1015
  middlewareRouteMap.push(` '${builtPath}': () => import('${importPath}')`)
963
1016
  }
964
1017
 
965
- const workerSrcPath = join(options.root, 'dist', '_worker-src.js')
1018
+ const workerSrcPath = join(options.root, outDir, '_worker-src.js')
966
1019
  const workerCode = `// Polyfill MessageChannel for React SSR (not available in Cloudflare Workers by default)
967
1020
  if (typeof MessageChannel === 'undefined') {
968
1021
  globalThis.MessageChannel = class MessageChannel {
@@ -1050,13 +1103,14 @@ export default {
1050
1103
  console.info('\n [cloudflare] Bundling worker...')
1051
1104
  await viteBuild({
1052
1105
  root: options.root,
1106
+ mode: 'production',
1053
1107
  logLevel: 'warn',
1054
1108
  build: {
1055
- outDir: 'dist',
1109
+ outDir,
1056
1110
  emptyOutDir: false,
1057
1111
  // Use SSR mode with node target for proper Node.js module resolution
1058
1112
  ssr: workerSrcPath,
1059
- rollupOptions: {
1113
+ rolldownOptions: {
1060
1114
  external: [
1061
1115
  // React Native dev tools - not needed in production
1062
1116
  '@react-native/dev-middleware',
@@ -1083,6 +1137,25 @@ export default {
1083
1137
  },
1084
1138
  resolve: {
1085
1139
  conditions: ['workerd', 'worker', 'node', 'module', 'default'],
1140
+ alias: [
1141
+ // rolldown can't parse react-native's Flow syntax; alias to react-native-web for ssr
1142
+ {
1143
+ find: /^react-native\/Libraries\/.*/,
1144
+ replacement: resolvePath('@vxrn/vite-plugin-metro/empty', options.root),
1145
+ },
1146
+ {
1147
+ find: 'react-native/package.json',
1148
+ replacement: resolvePath('react-native-web/package.json', options.root),
1149
+ },
1150
+ {
1151
+ find: 'react-native',
1152
+ replacement: resolvePath('react-native-web', options.root),
1153
+ },
1154
+ {
1155
+ find: 'react-native-safe-area-context',
1156
+ replacement: resolvePath('@vxrn/safe-area', options.root),
1157
+ },
1158
+ ],
1086
1159
  },
1087
1160
  ssr: {
1088
1161
  target: 'node',
@@ -1110,17 +1183,46 @@ export default {
1110
1183
  }
1111
1184
  `
1112
1185
  await FSExtra.writeFile(
1113
- join(options.root, 'dist', 'wrangler.jsonc'),
1186
+ join(options.root, outDir, 'wrangler.jsonc'),
1114
1187
  wranglerConfig
1115
1188
  )
1116
1189
 
1117
- postBuildLogs.push(`Cloudflare worker bundled at dist/worker.js`)
1118
- postBuildLogs.push(`To deploy: cd dist && wrangler deploy`)
1190
+ postBuildLogs.push(`Cloudflare worker bundled at ${outDir}/worker.js`)
1191
+ postBuildLogs.push(`To deploy: cd ${outDir} && wrangler deploy`)
1119
1192
 
1120
1193
  break
1121
1194
  }
1122
1195
  }
1123
1196
 
1197
+ // security scan for leaked secrets in client bundles
1198
+ const securityScanOption = oneOptions.build?.securityScan
1199
+ // default to 'warn', normalize all forms
1200
+ const securityScanLevel: 'warn' | 'error' | null =
1201
+ securityScanOption === false
1202
+ ? null
1203
+ : securityScanOption === true || securityScanOption === undefined
1204
+ ? 'warn'
1205
+ : typeof securityScanOption === 'string'
1206
+ ? securityScanOption
1207
+ : (securityScanOption.level ?? 'warn')
1208
+
1209
+ const securitySafePatterns =
1210
+ typeof securityScanOption === 'object' && securityScanOption !== null
1211
+ ? securityScanOption.safePatterns
1212
+ : undefined
1213
+
1214
+ if (securityScanLevel) {
1215
+ const { runSecurityScan } = await import('./securityScan')
1216
+ const passed = await runSecurityScan(
1217
+ clientDir,
1218
+ securityScanLevel,
1219
+ securitySafePatterns
1220
+ )
1221
+ if (!passed) {
1222
+ process.exit(1)
1223
+ }
1224
+ }
1225
+
1124
1226
  if (postBuildLogs.length) {
1125
1227
  console.info(`\n\n`)
1126
1228
  postBuildLogs.forEach((log) => {
@@ -1,6 +1,7 @@
1
1
  import { join } from 'node:path'
2
2
  import FSExtra from 'fs-extra'
3
3
  import * as constants from '../constants'
4
+ import { LOADER_JS_POSTFIX_UNCACHED } from '../constants'
4
5
  import type { LoaderProps } from '../types'
5
6
  import { getLoaderPath, getPreloadCSSPath, getPreloadPath } from '../utils/cleanUrl'
6
7
  import { isResponse } from '../utils/isResponse'
@@ -49,6 +50,7 @@ export async function buildPage(
49
50
  serverJsPath: string,
50
51
  preloads: string[],
51
52
  allCSS: string[],
53
+ layoutCSS: string[],
52
54
  routePreloads: Record<string, string>,
53
55
  allCSSContents?: string[],
54
56
  criticalPreloads?: string[],
@@ -63,7 +65,7 @@ export async function buildPage(
63
65
 
64
66
  const htmlPath = `${path.endsWith('/') ? `${removeTrailingSlash(path)}/index` : path}.html`
65
67
  const clientJsPath = clientManifestEntry
66
- ? join(`dist/client`, clientManifestEntry.file)
68
+ ? join(clientDir, clientManifestEntry.file)
67
69
  : ''
68
70
  const htmlOutPath = toAbsolute(join(staticDir, htmlPath))
69
71
  const preloadPath = getPreloadPath(path)
@@ -190,8 +192,10 @@ prefetchCSS()
190
192
  if (!layoutServerPath) {
191
193
  return { contextKey: layout.contextKey, loaderData: undefined }
192
194
  }
195
+ // derive server dir from clientDir (e.g. dist/client -> dist/server)
196
+ const serverDir = join(clientDir, '..', 'server')
193
197
  const layoutExported = await import(
194
- toAbsolute(join('./', 'dist/server', layoutServerPath))
198
+ toAbsolute(join(serverDir, layoutServerPath))
195
199
  )
196
200
  const layoutLoaderData = await layoutExported?.loader?.(loaderProps)
197
201
  return { contextKey: layout.contextKey, loaderData: layoutLoaderData }
@@ -253,6 +257,11 @@ prefetchCSS()
253
257
  if (clientJsPath) {
254
258
  const loaderPartialPath = join(clientDir, urlPathToFilePath(getLoaderPath(path)))
255
259
 
260
+ // uncached native loader path for native prod (metro can't inline cache keys)
261
+ const uncachedNativePath = loaderPartialPath
262
+ .replace(constants.LOADER_JS_POSTFIX, LOADER_JS_POSTFIX_UNCACHED)
263
+ .replace(/\.js$/, '.native.js')
264
+
256
265
  if (loaderRedirectInfo) {
257
266
  // generate a static redirect loader — the client detects __oneRedirect
258
267
  // and navigates before the protected page ever renders
@@ -264,6 +273,10 @@ prefetchCSS()
264
273
  loaderPartialPath,
265
274
  `export function loader(){return ${redirectData}}`
266
275
  )
276
+ // native-friendly CJS version
277
+ const nativeCjs = `exports.loader = function(){return ${redirectData}}`
278
+ await outputFile(loaderPartialPath.replace(/\.js$/, '.native.js'), nativeCjs)
279
+ await outputFile(uncachedNativePath, nativeCjs)
267
280
  loaderPath = getLoaderPath(path)
268
281
  loaderData = {}
269
282
  } else {
@@ -278,6 +291,10 @@ if (typeof document === 'undefined') globalThis.document = {}
278
291
  loaderData,
279
292
  })
280
293
  await outputFile(loaderPartialPath, withLoader)
294
+ // native-friendly CJS version with just the data (no ESM imports)
295
+ const nativeCjs = `exports.loader = function(){return ${JSON.stringify(loaderData)}}`
296
+ await outputFile(loaderPartialPath.replace(/\.js$/, '.native.js'), nativeCjs)
297
+ await outputFile(uncachedNativePath, nativeCjs)
281
298
  loaderPath = getLoaderPath(path)
282
299
  }
283
300
  }
@@ -372,36 +389,44 @@ if (typeof document === 'undefined') globalThis.document = {}
372
389
  await outputFile(htmlOutPath, html)
373
390
  recordTiming('writeHTML', performance.now() - t0)
374
391
  } else {
375
- // Generate CSS - either inline styles or link tags
376
- const cssOutput = allCSSContents
377
- ? allCSSContents
378
- .filter(Boolean)
379
- .map((content) => ` <style>${content}</style>`)
380
- .join('\n')
381
- : allCSS
382
- .map((file) => ` <link rel="stylesheet" href=${file} />`)
383
- .join('\n')
392
+ // separate layout css (before scripts) from page css (after scripts)
393
+ const layoutCSSSet = new Set(layoutCSS)
394
+
395
+ // render css as either inline <style> (if content provided) or <link>
396
+ function renderCSSTag(file: string, index: number): string {
397
+ const content = allCSSContents?.[index]
398
+ if (content) {
399
+ return ` <style>${content}</style>`
400
+ }
401
+ return ` <link rel="stylesheet" href=${file} />`
402
+ }
403
+
404
+ const layoutCssOutput = allCSS
405
+ .map((file, i) => (layoutCSSSet.has(file) ? renderCSSTag(file, i) : ''))
406
+ .filter(Boolean)
407
+ .join('\n')
408
+
409
+ const pageCssOutput = allCSS
410
+ .map((file, i) => (!layoutCSSSet.has(file) ? renderCSSTag(file, i) : ''))
411
+ .filter(Boolean)
412
+ .join('\n')
384
413
 
385
414
  // Use separated preloads if available
386
415
  const criticalScripts = (criticalPreloads || preloads)
387
416
  .map((preload) => ` <script type="module" src="${preload}"></script>`)
388
417
  .join('\n')
389
418
 
390
- // Non-critical scripts as modulepreload hints only
391
- const deferredLinks = (deferredPreloads || [])
392
- .map(
393
- (preload) =>
394
- ` <link rel="modulepreload" fetchPriority="low" href="${preload}"/>`
395
- )
396
- .join('\n')
419
+ // skip modulepreload hints for pure SPA pages - the JS module graph
420
+ // handles its own loading, and route preloading happens on hover intent
421
+ // emitting hundreds of modulepreload links saturates connections for no benefit
397
422
 
398
423
  await outputFile(
399
424
  htmlOutPath,
400
425
  `<!DOCTYPE html><html><head>
401
426
  ${constants.getSpaHeaderElements({ serverContext: { loaderProps, loaderData } })}
427
+ ${layoutCssOutput}
402
428
  ${criticalScripts}
403
- ${deferredLinks}
404
- ${cssOutput}
429
+ ${pageCssOutput}
405
430
  </head><body></body></html>`
406
431
  )
407
432
  }
@@ -431,6 +456,7 @@ params:\n\n${JSON.stringify(params || null, null, 2)}`
431
456
  return {
432
457
  type: foundRoute.type,
433
458
  css: allCSS,
459
+ layoutCSS,
434
460
  cssContents: allCSSContents,
435
461
  routeFile: foundRoute.file,
436
462
  middlewares,
@@ -22,8 +22,6 @@ let buildPageFn: typeof import('./buildPage').buildPage | null = null
22
22
  let runWithAsyncLocalContextFn:
23
23
  | typeof import('../vite/one-server-only').runWithAsyncLocalContext
24
24
  | null = null
25
- let loadUserOneOptionsFn: typeof import('../vite/loadConfig').loadUserOneOptions | null =
26
- null
27
25
  let initialized = false
28
26
 
29
27
  async function ensureImports() {
@@ -41,35 +39,24 @@ async function ensureImports() {
41
39
  )
42
40
  runWithAsyncLocalContextFn = mod.runWithAsyncLocalContext
43
41
  }
44
- if (!loadUserOneOptionsFn) {
45
- const mod = await workerImport<typeof import('../vite/loadConfig')>(
46
- '../vite/loadConfig',
47
- import.meta.url
48
- )
49
- loadUserOneOptionsFn = mod.loadUserOneOptions
50
- }
51
42
  return {
52
43
  buildPage: buildPageFn!,
53
44
  runWithAsyncLocalContext: runWithAsyncLocalContextFn!,
54
- loadUserOneOptions: loadUserOneOptionsFn!,
55
45
  }
56
46
  }
57
47
 
58
- async function initializeWorker() {
48
+ async function initializeWorker(oneOptions: any) {
59
49
  if (initialized) return
60
- // load the user's vite config to get oneOptions
61
- // this avoids needing to serialize config through postMessage
62
- const { loadUserOneOptions } = await ensureImports()
63
- const { oneOptions } = await loadUserOneOptions('build', true)
64
- // set global plugin config that createManifest needs
50
+ if (!oneOptions) {
51
+ throw new Error('Worker must receive oneOptions from main thread')
52
+ }
65
53
  globalThis['__vxrnPluginConfig__'] = oneOptions
66
54
  initialized = true
67
55
  }
68
56
 
69
57
  parentPort.on('message', async (msg: any) => {
70
58
  if (msg.type === 'init') {
71
- // initialize worker by loading config from vite.config
72
- await initializeWorker()
59
+ await initializeWorker(msg.oneOptions)
73
60
  parentPort!.postMessage({ type: 'init-done', id: msg.id })
74
61
  return
75
62
  }
@@ -92,6 +79,7 @@ parentPort.on('message', async (msg: any) => {
92
79
  msg.args.serverJsPath,
93
80
  msg.args.preloads,
94
81
  msg.args.allCSS,
82
+ msg.args.layoutCSS,
95
83
  msg.args.routePreloads,
96
84
  msg.args.allCSSContents,
97
85
  msg.args.criticalPreloads,
package/src/cli/patch.ts CHANGED
@@ -6,15 +6,15 @@ export async function run(args: { force?: boolean }) {
6
6
  const { patch } = await import('vxrn')
7
7
 
8
8
  const options = await loadUserOneOptions('build')
9
- const deps = options.oneOptions.deps as SimpleDepPatchObject | undefined
9
+ const patches = options.oneOptions.patches as SimpleDepPatchObject | undefined
10
10
 
11
11
  if (process.env.DEBUG) {
12
- console.info('User deps:', Object.keys(deps || {}))
12
+ console.info('User patches:', Object.keys(patches || {}))
13
13
  }
14
14
 
15
15
  await patch({
16
16
  root: process.cwd(),
17
- deps,
17
+ deps: patches,
18
18
  force: args.force,
19
19
  } satisfies PatchOptions)
20
20
  }