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
@@ -0,0 +1,189 @@
1
+ import { readdir, readFile } from 'node:fs/promises'
2
+ import { join } from 'node:path'
3
+
4
+ // patterns that should never appear in client bundles
5
+ const SECRET_PATTERNS: Array<[string, RegExp]> = [
6
+ // api tokens / keys with known prefixes
7
+ ['Anthropic API key', /sk-ant-[A-Za-z0-9_-]{20,}/g],
8
+ ['OpenAI API key', /sk-proj-[A-Za-z0-9_-]{20,}/g],
9
+ ['Stripe secret key', /sk_live_[A-Za-z0-9]{20,}/g],
10
+ ['Stripe webhook secret', /whsec_[A-Za-z0-9]{20,}/g],
11
+ ['GitHub token', /gh[ps]_[A-Za-z0-9]{36,}/g],
12
+ ['GitHub PAT', /github_pat_[A-Za-z0-9_]{20,}/g],
13
+ ['AWS access key', /(?<![A-Za-z0-9])AKIA[0-9A-Z]{16}(?![A-Za-z0-9])/g],
14
+ [
15
+ 'Postmark server token',
16
+ /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/g,
17
+ ],
18
+ ['Bearer token assignment', /["']Bearer\s+[A-Za-z0-9_.-]{20,}["']/g],
19
+ [
20
+ 'Generic secret assignment',
21
+ /(?:secret|password|api_key|apikey)\s*[:=]\s*["'][A-Za-z0-9_-]{16,}["']/gi,
22
+ ],
23
+ // known env var names that should never be inlined
24
+ ['BETTER_AUTH_SECRET value', /BETTER_AUTH_SECRET["']\s*[:=]\s*["'][^"']+["']/g],
25
+ ['POSTMARK_SERVER_TOKEN value', /POSTMARK_SERVER_TOKEN["']\s*[:=]\s*["'][^"']+["']/g],
26
+ ['ANTHROPIC_API_KEY value', /ANTHROPIC_API_KEY["']\s*[:=]\s*["'][^"']+["']/g],
27
+ ]
28
+
29
+ // UUIDs that are known safe (WebRTC SDP constants, zero-uuid, etc.)
30
+ const SAFE_UUIDS = new Set([
31
+ '00000000-0000-0000-0000-000000000000',
32
+ '09259e3b-7be8-46f6-9801-106bf1866e1c', // WebRTC SDP
33
+ '4ad15a19-80e2-4105-bf43-48039fd2963e', // WebRTC SDP
34
+ ])
35
+
36
+ // known safe matches to ignore (doc examples, CSS tokens, etc.)
37
+ const BUILTIN_SAFE_PATTERNS: RegExp[] = [
38
+ /sk_live_your_/,
39
+ /sk_live_your_key/,
40
+ /rk_\w+_\w+/, // tamagui theme tokens
41
+ /sk_all_element/, // DOM property names
42
+ /sk_personal_data/, // analytics property names
43
+ ]
44
+
45
+ function createSafeMatcher(userPatterns?: (string | RegExp)[]) {
46
+ const safeStrings = new Set(SAFE_UUIDS)
47
+ const safeRegexes = [...BUILTIN_SAFE_PATTERNS]
48
+
49
+ if (userPatterns) {
50
+ for (const p of userPatterns) {
51
+ if (typeof p === 'string') {
52
+ safeStrings.add(p)
53
+ } else {
54
+ safeRegexes.push(p)
55
+ }
56
+ }
57
+ }
58
+
59
+ return (match: string): boolean => {
60
+ if (safeStrings.has(match)) return true
61
+ return safeRegexes.some((p) => p.test(match))
62
+ }
63
+ }
64
+
65
+ export type SecurityFinding = {
66
+ file: string
67
+ label: string
68
+ match: string
69
+ line: number
70
+ }
71
+
72
+ // recursively collect all .js files from a directory
73
+ async function collectJSFiles(dir: string): Promise<string[]> {
74
+ const files: string[] = []
75
+
76
+ async function walk(currentDir: string) {
77
+ let entries
78
+ try {
79
+ entries = await readdir(currentDir, { withFileTypes: true })
80
+ } catch {
81
+ return
82
+ }
83
+ for (const entry of entries) {
84
+ const fullPath = join(currentDir, entry.name)
85
+ if (entry.isDirectory()) {
86
+ await walk(fullPath)
87
+ } else if (entry.name.endsWith('.js')) {
88
+ files.push(fullPath)
89
+ }
90
+ }
91
+ }
92
+
93
+ await walk(dir)
94
+ return files
95
+ }
96
+
97
+ export async function scanBundleForSecrets(
98
+ distDir: string,
99
+ userSafePatterns?: (string | RegExp)[]
100
+ ): Promise<{
101
+ clean: boolean
102
+ findings: SecurityFinding[]
103
+ }> {
104
+ const isSafe = createSafeMatcher(userSafePatterns)
105
+ const files = await collectJSFiles(distDir)
106
+ const findings: SecurityFinding[] = []
107
+
108
+ for (const fullPath of files) {
109
+ const relativePath = fullPath.slice(distDir.length + 1)
110
+ let content: string
111
+ try {
112
+ content = await readFile(fullPath, 'utf-8')
113
+ } catch {
114
+ continue
115
+ }
116
+
117
+ for (const [label, pattern] of SECRET_PATTERNS) {
118
+ // reset regex state
119
+ pattern.lastIndex = 0
120
+ let match: RegExpExecArray | null
121
+
122
+ while ((match = pattern.exec(content)) !== null) {
123
+ const matched = match[0]
124
+ if (isSafe(matched)) continue
125
+
126
+ // find approximate line number
127
+ const beforeMatch = content.slice(0, match.index)
128
+ const line = (beforeMatch.match(/\n/g)?.length ?? 0) + 1
129
+
130
+ findings.push({
131
+ file: relativePath,
132
+ label,
133
+ match:
134
+ matched.length > 40
135
+ ? `${matched.slice(0, 20)}...${matched.slice(-10)}`
136
+ : matched,
137
+ line,
138
+ })
139
+ }
140
+ }
141
+ }
142
+
143
+ return { clean: findings.length === 0, findings }
144
+ }
145
+
146
+ /**
147
+ * runs the security scan based on config level
148
+ * returns true if the build should continue, false if it should fail
149
+ */
150
+ export async function runSecurityScan(
151
+ clientDir: string,
152
+ level: 'warn' | 'error',
153
+ safePatterns?: (string | RegExp)[]
154
+ ): Promise<boolean> {
155
+ console.info(`\n 🔒 scanning client bundles for leaked secrets...\n`)
156
+
157
+ const { clean, findings } = await scanBundleForSecrets(clientDir, safePatterns)
158
+
159
+ if (clean) {
160
+ console.info(` 🔒 security scan passed — no secrets found\n`)
161
+ return true
162
+ }
163
+
164
+ const icon = level === 'error' ? '🚨' : '⚠️'
165
+ const header =
166
+ level === 'error'
167
+ ? `${icon} ${findings.length} secret(s) leaked into client bundle:`
168
+ : `${icon} ${findings.length} potential secret(s) found in client bundle:`
169
+
170
+ console.error(`\n ${header}\n`)
171
+
172
+ for (const f of findings) {
173
+ console.error(` ${f.label}`)
174
+ console.error(` file: ${f.file}:${f.line}`)
175
+ console.error(` match: ${f.match}\n`)
176
+ }
177
+
178
+ if (level === 'error') {
179
+ console.error(
180
+ ` Set build.securityScan to 'warn' to continue building despite findings.\n`
181
+ )
182
+ return false
183
+ }
184
+
185
+ console.warn(
186
+ ` Set build.securityScan to 'error' to fail builds when secrets are detected.\n`
187
+ )
188
+ return true
189
+ }
@@ -83,13 +83,12 @@ export class BuildWorkerPool {
83
83
  return this.workers.length
84
84
  }
85
85
 
86
- // initialize all workers - they load config themselves from vite.config
87
- async initialize() {
86
+ // initialize all workers with pre-loaded config from main thread
87
+ async initialize(oneOptions?: any) {
88
88
  await this._ready
89
- // send init message to all workers
90
- // workers load the vite config themselves to avoid serialization issues
89
+ // pass oneOptions via postMessage so workers skip loading vite config
91
90
  for (const worker of this.workers) {
92
- worker.postMessage({ type: 'init', id: this.nextId++ })
91
+ worker.postMessage({ type: 'init', id: this.nextId++, oneOptions })
93
92
  }
94
93
  // wait for all workers to be initialized
95
94
  await this._initialized
@@ -117,6 +116,7 @@ export class BuildWorkerPool {
117
116
  serverJsPath: string
118
117
  preloads: string[]
119
118
  allCSS: string[]
119
+ layoutCSS: string[]
120
120
  routePreloads: Record<string, string>
121
121
  allCSSContents?: string[]
122
122
  criticalPreloads?: string[]
package/src/cli.ts CHANGED
@@ -180,16 +180,27 @@ const serveCommand = defineCommand({
180
180
  loadEnv: {
181
181
  type: 'boolean',
182
182
  },
183
+ outDir: {
184
+ type: 'string',
185
+ description: 'Build output directory (default: dist)',
186
+ },
187
+ cluster: {
188
+ type: 'string',
189
+ description: 'Enable cluster mode with N workers (default: cpu count)',
190
+ },
183
191
  },
184
192
  async run({ args }) {
185
193
  const { serve } = await import('./serve')
186
194
  const port = lastValue(args.port)
187
195
  const host = lastValue(args.host)
196
+ const clusterArg = lastValue(args.cluster)
188
197
  await serve({
189
198
  port: port ? +port : undefined,
190
199
  host,
191
200
  compress: args.compress,
192
201
  loadEnv: !!args.loadEnv,
202
+ outDir: lastValue(args.outDir),
203
+ cluster: clusterArg !== undefined ? (clusterArg ? +clusterArg : true) : undefined,
193
204
  })
194
205
  },
195
206
  })
package/src/createApp.tsx CHANGED
@@ -11,8 +11,8 @@ import { setupSkewProtection } from './skewProtection'
11
11
  import type { RenderAppProps } from './types'
12
12
  import { getServerHeadInsertions } from './useServerHeadInsertion'
13
13
  import { ensureExists } from './utils/ensureExists'
14
- import { safeJsonStringify } from './utils/htmlEscape'
15
14
  import { SERVER_CONTEXT_POST_RENDER_STRING } from './vite/constants'
15
+ import { safeJsonStringify } from './utils/htmlEscape'
16
16
  import { getServerContext, setServerContext } from './vite/one-server-only'
17
17
  import type { One } from './vite/types'
18
18
 
@@ -29,6 +29,13 @@ export type CreateAppProps = {
29
29
 
30
30
  export function createApp(options: CreateAppProps) {
31
31
  if (import.meta.env.SSR) {
32
+ // cache server module imports across requests
33
+ let cachedReactDOMServer: any
34
+ let cachedServerRender: any
35
+ let cachedRenderToStaticMarkup: any
36
+ let cachedRenderToString: any
37
+ let setupDone = false
38
+
32
39
  return {
33
40
  options,
34
41
  render: async (props: RenderAppProps) => {
@@ -36,20 +43,26 @@ export function createApp(options: CreateAppProps) {
36
43
  const renderMode = props.mode === 'spa-shell' ? 'spa' : props.mode
37
44
  process.env.ONE_RENDER_MODE = renderMode
38
45
 
39
- if (options.getSetupPromise) {
46
+ if (!setupDone && options.getSetupPromise) {
40
47
  await options.getSetupPromise()
48
+ setupDone = true
41
49
  }
42
50
 
43
- // Dynamic imports for server-only modules to avoid bundling in client
44
- const [ReactDOMServer, serverRender] = await Promise.all([
45
- import('react-dom/server.browser'),
46
- import('./server-render'),
47
- ])
51
+ // cache dynamic imports - only resolve once
52
+ if (!cachedReactDOMServer) {
53
+ const [rds, sr] = await Promise.all([
54
+ import('react-dom/server.browser'),
55
+ import('./server-render'),
56
+ ])
57
+ cachedReactDOMServer = rds
58
+ cachedServerRender = sr
59
+ cachedRenderToStaticMarkup =
60
+ rds.renderToStaticMarkup || rds.default?.renderToStaticMarkup
61
+ cachedRenderToString = sr.renderToString
62
+ }
48
63
 
49
- const renderToStaticMarkup =
50
- ReactDOMServer.renderToStaticMarkup ||
51
- ReactDOMServer.default?.renderToStaticMarkup
52
- const renderToString = serverRender.renderToString
64
+ const renderToStaticMarkup = cachedRenderToStaticMarkup
65
+ const renderToString = cachedRenderToString
53
66
 
54
67
  const {
55
68
  loaderData,
@@ -75,50 +88,50 @@ export function createApp(options: CreateAppProps) {
75
88
 
76
89
  let renderId: string | undefined
77
90
 
78
- const App = () => {
79
- return (
80
- <Root
81
- flags={options.flags}
82
- onRenderId={(id) => {
83
- renderId = id
84
- }}
85
- routes={options.routes}
86
- routerRoot={options.routerRoot}
87
- {...props}
88
- />
89
- )
90
- }
91
-
92
- AppRegistry.registerComponent('App', () => App)
93
-
94
- // @ts-expect-error
95
- const Application = AppRegistry.getApplication('App', {})
96
-
97
- // we've got to remove the outer containers because it messes up the fact we render root html
98
- const rootElement = Application.element.props.children
91
+ // render Root directly, skip AppRegistry overhead on server
92
+ const rootElement = (
93
+ <Root
94
+ flags={options.flags}
95
+ onRenderId={(id) => {
96
+ renderId = id
97
+ }}
98
+ routes={options.routes}
99
+ routerRoot={options.routerRoot}
100
+ {...props}
101
+ />
102
+ )
99
103
 
100
104
  let html = await renderToString(rootElement, {
101
105
  preloads: props.preloads,
102
- deferredPreloads: props.deferredPreloads,
103
106
  })
104
107
 
108
+ // post-render: inject any extra head elements (RNW styles + head insertions)
105
109
  try {
106
110
  const extraHeadElements: React.ReactElement[] = []
107
111
 
108
- const styleTag = Application.getStyleElement({
109
- nonce: process.env.ONE_NONCE,
110
- })
111
- if (styleTag) {
112
- extraHeadElements.push(styleTag)
112
+ // get style elements from AppRegistry (for react-native-web styles)
113
+ try {
114
+ AppRegistry.registerComponent('__oneStyles', () => () => null)
115
+ // @ts-expect-error
116
+ const app = AppRegistry.getApplication('__oneStyles', {})
117
+ const styleTag = app.getStyleElement({
118
+ nonce: process.env.ONE_NONCE,
119
+ })
120
+ if (styleTag) {
121
+ extraHeadElements.push(styleTag)
122
+ }
123
+ } catch {
124
+ // ok if no styles
113
125
  }
114
126
 
115
- ensureExists(renderId)
116
- const insertions = getServerHeadInsertions(renderId)
117
- if (insertions) {
118
- for (const insertion of insertions) {
119
- const out = insertion()
120
- if (out) {
121
- extraHeadElements.push(out)
127
+ if (renderId) {
128
+ const insertions = getServerHeadInsertions(renderId)
129
+ if (insertions) {
130
+ for (const insertion of insertions) {
131
+ const out = insertion()
132
+ if (out) {
133
+ extraHeadElements.push(out)
134
+ }
122
135
  }
123
136
  }
124
137
  }
@@ -127,24 +140,18 @@ export function createApp(options: CreateAppProps) {
127
140
  const extraHeadHTML = renderToStaticMarkup(
128
141
  <>{extraHeadElements.map((x, i) => cloneElement(x, { key: i }))}</>
129
142
  )
130
-
131
143
  if (extraHeadHTML) {
132
144
  html = html.replace(`</head>`, `${extraHeadHTML}</head>`)
133
145
  }
134
146
  }
135
147
  } catch (err) {
136
- // react-native-web-lite has a bug but its fine we don't need it for now
137
- // but TODO is fix this in react-native-web-lite
138
- if (`${err}`.includes(`sheet is not defined`)) {
139
- // ok
140
- } else {
148
+ if (!`${err}`.includes(`sheet is not defined`)) {
141
149
  throw err
142
150
  }
143
151
  }
144
152
 
145
- // now we can grab and serialize in our zero queries
153
+ // replace postRenderData placeholder with actual data set during render
146
154
  const postRenderData = getServerContext()?.postRenderData
147
-
148
155
  if (postRenderData) {
149
156
  html = html.replace(
150
157
  safeJsonStringify(SERVER_CONTEXT_POST_RENDER_STRING),
@@ -154,9 +161,104 @@ export function createApp(options: CreateAppProps) {
154
161
 
155
162
  return html
156
163
  },
164
+
165
+ // streaming SSR - returns ReadableStream, no post-processing
166
+ renderStream: async (props: RenderAppProps): Promise<ReadableStream> => {
167
+ const renderMode = props.mode === 'spa-shell' ? 'spa' : props.mode
168
+ process.env.ONE_RENDER_MODE = renderMode
169
+
170
+ if (!setupDone && options.getSetupPromise) {
171
+ await options.getSetupPromise()
172
+ setupDone = true
173
+ }
174
+
175
+ if (!cachedServerRender) {
176
+ const [rds, sr] = await Promise.all([
177
+ import('react-dom/server.browser'),
178
+ import('./server-render'),
179
+ ])
180
+ cachedReactDOMServer = rds
181
+ cachedServerRender = sr
182
+ cachedRenderToStaticMarkup =
183
+ rds.renderToStaticMarkup || rds.default?.renderToStaticMarkup
184
+ cachedRenderToString = sr.renderToString
185
+ }
186
+
187
+ const {
188
+ loaderData,
189
+ loaderProps,
190
+ css,
191
+ cssContents,
192
+ mode,
193
+ loaderServerData,
194
+ routePreloads,
195
+ matches,
196
+ } = props
197
+
198
+ setServerContext({
199
+ postRenderData: loaderServerData,
200
+ loaderData,
201
+ loaderProps,
202
+ mode,
203
+ css,
204
+ cssContents,
205
+ routePreloads,
206
+ matches,
207
+ })
208
+
209
+ const rootElement = (
210
+ <Root
211
+ flags={options.flags}
212
+ routes={options.routes}
213
+ routerRoot={options.routerRoot}
214
+ {...props}
215
+ />
216
+ )
217
+
218
+ return cachedServerRender.renderToStream(rootElement, {
219
+ preloads: props.preloads,
220
+ })
221
+ },
157
222
  }
158
223
  }
159
224
 
225
+ // find root layout in routes regardless of render mode suffix (+ssg, +ssr, +spa)
226
+ // the glob keys include the suffix (e.g., /app/_layout+ssg.tsx) but we need to
227
+ // match any root layout variant to ensure it's preloaded before rendering
228
+ function findAndPreloadRootLayout(
229
+ routes: Record<string, () => Promise<unknown>>,
230
+ routerRoot: string
231
+ ): Promise<unknown> | undefined {
232
+ // try exact match first (no suffix)
233
+ const exactKey = `/${routerRoot}/_layout.tsx`
234
+ if (routes[exactKey]) {
235
+ return routes[exactKey]()
236
+ }
237
+
238
+ // try with render mode suffixes
239
+ for (const suffix of ['+ssg', '+ssr', '+spa']) {
240
+ const key = `/${routerRoot}/_layout${suffix}.tsx`
241
+ if (routes[key]) {
242
+ return routes[key]()
243
+ }
244
+ }
245
+
246
+ // try .ts extension variants
247
+ const exactKeyTs = `/${routerRoot}/_layout.ts`
248
+ if (routes[exactKeyTs]) {
249
+ return routes[exactKeyTs]()
250
+ }
251
+
252
+ for (const suffix of ['+ssg', '+ssr', '+spa']) {
253
+ const key = `/${routerRoot}/_layout${suffix}.ts`
254
+ if (routes[key]) {
255
+ return routes[key]()
256
+ }
257
+ }
258
+
259
+ return undefined
260
+ }
261
+
160
262
  // skew protection: auto-reload on chunk load failures
161
263
  if (typeof window !== 'undefined' && process.env.ONE_SKEW_PROTECTION !== 'false') {
162
264
  window.addEventListener('vite:preloadError', (e) => {
@@ -177,8 +279,15 @@ export function createApp(options: CreateAppProps) {
177
279
  const routePreloads = serverContext.routePreloads
178
280
 
179
281
  // initialize client matches from server context for useMatches hook
282
+ // restore page loaderData into matches (stripped during SSR to avoid double-serialization)
180
283
  if (serverContext.matches) {
181
- initClientMatches(serverContext.matches)
284
+ const restoredMatches = serverContext.matches.map((m: any) => {
285
+ if (!m.loaderData && serverContext.loaderData) {
286
+ return { ...m, loaderData: serverContext.loaderData }
287
+ }
288
+ return m
289
+ })
290
+ initClientMatches(restoredMatches)
182
291
  }
183
292
 
184
293
  // NOTE: for SSG 404 pages, we DON'T set notFoundState before initial render
@@ -198,11 +307,11 @@ export function createApp(options: CreateAppProps) {
198
307
  // for SPA/dev mode, fall back to importing root layout directly
199
308
  const preloadPromises = routePreloads
200
309
  ? Object.entries(routePreloads).map(async ([routeKey, bundlePath]) => {
201
- const mod = await import(/* @vite-ignore */ bundlePath)
310
+ const mod = await import(/* @vite-ignore */ bundlePath as string)
202
311
  registerPreloadedRoute(routeKey, mod)
203
312
  return mod
204
313
  })
205
- : [options.routes[`/${options.routerRoot}/_layout.tsx`]?.()]
314
+ : [findAndPreloadRootLayout(options.routes, options.routerRoot)]
206
315
 
207
316
  // for 404 pages, use history.state.__tempLocation to route to notFoundPath
208
317
  // without changing the browser URL. the router checks __tempLocation and uses