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
@@ -13,6 +13,7 @@ export type RequestHandlers = {
13
13
  handlePage?: (props: RequestHandlerProps) => Promise<any>
14
14
  handleLoader?: (props: RequestHandlerProps) => Promise<any>
15
15
  handleAPI?: (props: RequestHandlerProps) => Promise<any>
16
+ handleStaticFile?: (path: string) => Promise<Response | null>
16
17
  loadMiddleware?: (route: RouteNode) => Promise<any>
17
18
  }
18
19
 
@@ -158,6 +159,10 @@ export async function resolveLoaderRoute(
158
159
  console.info(`[one] 📦 loader ${url.pathname} → ${route.file}`)
159
160
  }
160
161
 
162
+ const isNativeRequest =
163
+ url.searchParams.get('platform') === 'ios' ||
164
+ url.searchParams.get('platform') === 'android'
165
+
161
166
  const response = await runMiddlewares(handlers, request, route, async () => {
162
167
  return await resolveResponse(async () => {
163
168
  const headers = new Headers()
@@ -176,7 +181,11 @@ export async function resolveLoaderRoute(
176
181
  },
177
182
  })
178
183
 
179
- return new Response(loaderResponse, {
184
+ // native needs CJS format for eval()
185
+ const body =
186
+ isNativeRequest && loaderResponse ? toCjsLoader(loaderResponse) : loaderResponse
187
+
188
+ return new Response(body, {
180
189
  headers,
181
190
  })
182
191
  } catch (err) {
@@ -202,7 +211,10 @@ export async function resolveLoaderRoute(
202
211
  if (location) {
203
212
  const redirectUrl = new URL(location, url.origin)
204
213
  const redirectPath = redirectUrl.pathname + redirectUrl.search + redirectUrl.hash
205
- const body = `export function loader(){return{__oneRedirect:${JSON.stringify(redirectPath)},__oneRedirectStatus:${response.status}}}`
214
+ const data = `{__oneRedirect:${JSON.stringify(redirectPath)},__oneRedirectStatus:${response.status}}`
215
+ const body = isNativeRequest
216
+ ? `exports.loader=function(){return ${data}}`
217
+ : `export function loader(){return${data}}`
206
218
  return new Response(body, {
207
219
  headers: { 'Content-Type': 'text/javascript' },
208
220
  })
@@ -212,7 +224,10 @@ export async function resolveLoaderRoute(
212
224
  // transform auth error responses (401/403) into js modules so the client
213
225
  // gets a clean error signal instead of a parse failure
214
226
  if (response.status === 401 || response.status === 403) {
215
- const body = `export function loader(){return{__oneError:${response.status},__oneErrorMessage:${JSON.stringify(response.statusText || 'Unauthorized')}}}`
227
+ const data = `{__oneError:${response.status},__oneErrorMessage:${JSON.stringify(response.statusText || 'Unauthorized')}}`
228
+ const body = isNativeRequest
229
+ ? `exports.loader=function(){return ${data}}`
230
+ : `export function loader(){return${data}}`
216
231
  return new Response(body, {
217
232
  headers: { 'Content-Type': 'text/javascript' },
218
233
  })
@@ -221,6 +236,27 @@ export async function resolveLoaderRoute(
221
236
  return response
222
237
  }
223
238
 
239
+ /**
240
+ * convert an ESM loader response to CJS for native eval().
241
+ * extracts the JSON data from `export function loader() { return {...} }`
242
+ * and wraps it as `exports.loader = function() { return {...} }`
243
+ */
244
+ function toCjsLoader(esmCode: string): string {
245
+ // already CJS (dev plugin pre-converts for native)
246
+ if (esmCode.startsWith('exports.')) {
247
+ return esmCode
248
+ }
249
+ // match: export function loader() { return DATA }
250
+ const match = esmCode.match(
251
+ /export\s+function\s+loader\s*\(\)\s*\{\s*return\s+([\s\S]+)\s*\}/
252
+ )
253
+ if (match) {
254
+ return `exports.loader=function(){return ${match[1]}}`
255
+ }
256
+ // fallback: wrap the whole thing
257
+ return `exports.loader=function(){return {}}`
258
+ }
259
+
224
260
  export async function resolvePageRoute(
225
261
  handlers: RequestHandlers,
226
262
  request: Request,
@@ -233,22 +269,24 @@ export async function resolvePageRoute(
233
269
  console.info(`[one] 📄 page ${pathname} → ${route.file} (${route.type})`)
234
270
  }
235
271
 
272
+ const loaderProps = {
273
+ path: pathname,
274
+ search: search,
275
+ request: route.type === 'ssr' ? request : undefined,
276
+ params: getLoaderParams(url, route),
277
+ }
278
+
279
+ // flatten the async chain for SSR: skip runMiddlewares wrapper when no middlewares
280
+ if (!route.middlewares?.length) {
281
+ return resolveResponse(() => {
282
+ return handlers.handlePage!({ request, route, url, loaderProps })
283
+ })
284
+ }
285
+
236
286
  return resolveResponse(async () => {
237
- const resolved = await runMiddlewares(handlers, request, route, async () => {
238
- return await handlers.handlePage!({
239
- request,
240
- route,
241
- url,
242
- loaderProps: {
243
- path: pathname,
244
- search: search,
245
- // Ensure SSR loaders receive the original request
246
- request: route.type === 'ssr' ? request : undefined,
247
- params: getLoaderParams(url, route),
248
- },
249
- })
287
+ return await runMiddlewares(handlers, request, route, async () => {
288
+ return await handlers.handlePage!({ request, route, url, loaderProps })
250
289
  })
251
- return resolved
252
290
  })
253
291
  }
254
292
 
@@ -338,6 +376,22 @@ export function createHandleRequest(
338
376
  const isClientRequestingNewRoute = pathname.endsWith(LOADER_JS_POSTFIX_UNCACHED)
339
377
 
340
378
  if (isClientRequestingNewRoute) {
379
+ const platformParam = url.searchParams.get('platform')
380
+ const isNativePlatform =
381
+ platformParam === 'ios' ||
382
+ platformParam === 'android' ||
383
+ platformParam === 'native'
384
+
385
+ // for native requests, try serving the pre-built .native.js static file first
386
+ // (SSG/SPA routes generate standalone CJS loaders at build time)
387
+ if (isNativePlatform && handlers.handleStaticFile) {
388
+ const nativeLoaderPath = pathname.replace(/\.js$/, '.native.js')
389
+ const staticResponse = await handlers.handleStaticFile(nativeLoaderPath)
390
+ if (staticResponse) {
391
+ return staticResponse
392
+ }
393
+ }
394
+
341
395
  const originalUrl = getPathFromLoaderPath(pathname)
342
396
 
343
397
  for (const route of compiledManifest.pageRoutes) {
@@ -358,7 +412,10 @@ export function createHandleRequest(
358
412
  }
359
413
 
360
414
  // no matching route - return empty module so client handles gracefully
361
- return new Response('export {}', {
415
+ const emptyBody = isNativePlatform
416
+ ? 'exports.loader=function(){return{}}'
417
+ : 'export {}'
418
+ return new Response(emptyBody, {
362
419
  headers: { 'Content-Type': 'text/javascript' },
363
420
  })
364
421
  }
package/src/daemon/tui.ts CHANGED
@@ -49,7 +49,7 @@ interface TUIState {
49
49
  simEndX: number
50
50
  serverStartX: number
51
51
  rowStartY: number
52
- popup: { message: string; timeout: NodeJS.Timeout } | null
52
+ popup: { message: string; timeout: ReturnType<typeof setTimeout> } | null
53
53
  }
54
54
 
55
55
  const CABLE_COLORS = [
@@ -72,8 +72,8 @@ const ansi = {
72
72
 
73
73
  let tuiState: TUIState | null = null
74
74
  let daemonState: DaemonState | null = null
75
- let refreshInterval: NodeJS.Timeout | null = null
76
- let physicsInterval: NodeJS.Timeout | null = null
75
+ let refreshInterval: ReturnType<typeof setInterval> | null = null
76
+ let physicsInterval: ReturnType<typeof setInterval> | null = null
77
77
  let stdinListener: ((key: Buffer) => void) | null = null
78
78
  let resizeListener: (() => void) | null = null
79
79
 
@@ -53,6 +53,9 @@ declare global {
53
53
 
54
54
  globalThis.REACT_NAVIGATION_DEVTOOLS = new WeakMap()
55
55
 
56
+ // @modified - SSR-optimized container (bypasses BaseNavigationContainer's 32+ hooks)
57
+ import { SSRNavigationContainer } from './SSRNavigationContainer'
58
+
56
59
  type Props<ParamList extends {}> = NavigationContainerProps & {
57
60
  direction?: LocaleDirection
58
61
  linking?: LinkingOptions<ParamList>
@@ -77,18 +80,42 @@ type Props<ParamList extends {}> = NavigationContainerProps & {
77
80
  * @param props.ref Ref object which refers to the navigation object containing helper methods.
78
81
  */
79
82
  function NavigationContainerInner(
80
- {
81
- direction = I18nManager.getConstants().isRTL ? 'rtl' : 'ltr',
82
- theme = DefaultTheme,
83
- linking,
84
- fallback = null,
85
- documentTitle,
86
- onReady,
87
- onStateChange,
88
- ...rest
89
- }: Props<ParamListBase>,
83
+ props: Props<ParamListBase>,
90
84
  ref?: React.Ref<NavigationContainerRef<ParamListBase> | null>
91
85
  ) {
86
+ // @modified - SSR fast path: bypass BaseNavigationContainer entirely
87
+ // BaseNavigationContainer has 32+ hooks and 7 providers that are all
88
+ // unnecessary on SSR (event emitters, child listeners, state sync, etc.)
89
+ // we provide only the minimal contexts that child navigators read
90
+ // @modified - SSR fast path: bypass BaseNavigationContainer entirely
91
+ // eliminates 32+ hooks and reduces 8 providers to 4
92
+ if (typeof window === 'undefined') {
93
+ const { theme = DefaultTheme, initialState, linking, children } = props
94
+ return (
95
+ <SSRNavigationContainer initialState={initialState} theme={theme} linking={linking}>
96
+ {children}
97
+ </SSRNavigationContainer>
98
+ )
99
+ }
100
+
101
+ return <NavigationContainerClientInner {...props} forwardedRef={ref} />
102
+ }
103
+
104
+ // @modified - full client NavigationContainer with all hooks and providers
105
+ function NavigationContainerClientInner({
106
+ forwardedRef,
107
+ direction = I18nManager.getConstants().isRTL ? 'rtl' : 'ltr',
108
+ theme = DefaultTheme,
109
+ linking,
110
+ fallback = null,
111
+ documentTitle,
112
+ onReady,
113
+ onStateChange,
114
+ ...rest
115
+ }: Props<ParamListBase> & {
116
+ forwardedRef?: React.Ref<NavigationContainerRef<ParamListBase> | null>
117
+ }) {
118
+ const ref = forwardedRef
92
119
  const isLinkingEnabled = linking ? linking.enabled !== false : false
93
120
 
94
121
  if (linking?.config) {
@@ -120,7 +147,6 @@ function NavigationContainerInner(
120
147
  )
121
148
 
122
149
  const onReadyForLinkingHandling = useLatestCallback(() => {
123
- // If the screen path matches lastUnhandledLink, we do not track it
124
150
  const path = refContainer.current?.getCurrentRoute()?.path
125
151
  setLastUnhandledLink((previousLastUnhandledLink) => {
126
152
  if (previousLastUnhandledLink === path) {
@@ -133,7 +159,6 @@ function NavigationContainerInner(
133
159
 
134
160
  const onStateChangeForLinkingHandling = useLatestCallback(
135
161
  (state: Readonly<NavigationState> | undefined) => {
136
- // If the screen path matches lastUnhandledLink, we do not track it
137
162
  const path = refContainer.current?.getCurrentRoute()?.path
138
163
  setLastUnhandledLink((previousLastUnhandledLink) => {
139
164
  if (previousLastUnhandledLink === path) {
@@ -144,8 +169,7 @@ function NavigationContainerInner(
144
169
  onStateChange?.(state)
145
170
  }
146
171
  )
147
- // Add additional linking related info to the ref
148
- // This will be used by the devtools
172
+
149
173
  React.useEffect(() => {
150
174
  if (refContainer.current) {
151
175
  // @ts-ignore - Type differs between react-navigation versions in monorepo
@@ -179,8 +203,6 @@ function NavigationContainerInner(
179
203
  const isLinkingReady = rest.initialState != null || !isLinkingEnabled || isResolved
180
204
 
181
205
  if (!isLinkingReady) {
182
- // This is temporary until we have Suspense for data-fetching
183
- // Then the fallback will be handled by a parent `Suspense` component
184
206
  return <ThemeProvider value={theme}>{fallback}</ThemeProvider>
185
207
  }
186
208
 
@@ -0,0 +1,94 @@
1
+ /**
2
+ * SSR-optimized replacement for BaseNavigationContainer.
3
+ * Provides only the 4 contexts that child navigators need during SSR render,
4
+ * with static/no-op values. Eliminates 32+ hooks and reduces 8 providers to 4.
5
+ *
6
+ * Requires @react-navigation/core package.json exports to include internal context paths.
7
+ * See postinstall patch in the repo.
8
+ */
9
+
10
+ // @ts-ignore internal module (exports patched at install time)
11
+ import { NavigationBuilderContext } from '@react-navigation/core/lib/module/NavigationBuilderContext'
12
+ // @ts-ignore internal module
13
+ import { NavigationStateContext } from '@react-navigation/core/lib/module/NavigationStateContext'
14
+ // @ts-ignore internal module
15
+ import { SingleNavigatorContext } from '@react-navigation/core/lib/module/EnsureSingleNavigator'
16
+ import { ThemeProvider } from '@react-navigation/core'
17
+ import { LinkingContext } from '@react-navigation/native'
18
+ import * as React from 'react'
19
+
20
+ const noop = () => {}
21
+
22
+ // minimal linking context for SSR — tabs needs .options to resolve triggers
23
+ const SSR_LINKING_CTX = { options: undefined as any }
24
+
25
+ // static context values — never change, zero allocations per render
26
+ const SSR_BUILDER_CTX = {
27
+ onDispatchAction: noop,
28
+ onOptionsChange: noop,
29
+ // must execute callback immediately — useNavigationBuilder calls this during render
30
+ scheduleUpdate: (cb: () => void) => cb(),
31
+ flushUpdates: noop,
32
+ stackRef: { current: undefined },
33
+ }
34
+
35
+ const SSR_SINGLE_NAV_CTX = {
36
+ register: noop,
37
+ unregister: noop,
38
+ }
39
+
40
+ const getPartialState = (state: any): any => {
41
+ if (!state) return undefined
42
+ const { key, routeNames, ...partial } = state
43
+ return {
44
+ ...partial,
45
+ stale: true as const,
46
+ routes: state.routes.map((route: any) =>
47
+ route.state ? { ...route, state: getPartialState(route.state) } : route
48
+ ),
49
+ }
50
+ }
51
+
52
+ // cache by initialState reference
53
+ let _cachedState: any = null
54
+ let _cachedCtx: any = null
55
+
56
+ function getStateContext(initialState: any) {
57
+ if (_cachedState === initialState && _cachedCtx) return _cachedCtx
58
+ const partial = getPartialState(initialState)
59
+ _cachedCtx = {
60
+ state: partial,
61
+ getKey: () => undefined as string | undefined,
62
+ setKey: noop,
63
+ getState: () => partial,
64
+ setState: noop,
65
+ getIsInitial: () => true,
66
+ }
67
+ _cachedState = initialState
68
+ return _cachedCtx
69
+ }
70
+
71
+ export function SSRNavigationContainer({
72
+ initialState,
73
+ theme,
74
+ linking,
75
+ children,
76
+ }: {
77
+ initialState: any
78
+ theme: any
79
+ linking?: any
80
+ children: React.ReactNode
81
+ }) {
82
+ const linkingCtx = linking ? { options: linking } : SSR_LINKING_CTX
83
+ return (
84
+ <LinkingContext.Provider value={linkingCtx}>
85
+ <NavigationBuilderContext.Provider value={SSR_BUILDER_CTX}>
86
+ <NavigationStateContext.Provider value={getStateContext(initialState)}>
87
+ <SingleNavigatorContext.Provider value={SSR_SINGLE_NAV_CTX}>
88
+ <ThemeProvider value={theme}>{children}</ThemeProvider>
89
+ </SingleNavigatorContext.Provider>
90
+ </NavigationStateContext.Provider>
91
+ </NavigationBuilderContext.Provider>
92
+ </LinkingContext.Provider>
93
+ )
94
+ }
@@ -22,6 +22,12 @@ import type { NavigationState, PartialState, Route } from '@react-navigation/rou
22
22
  import type { PathConfig, PathConfigMap } from '@react-navigation/core' // @modified: import from package instead of relative code
23
23
  import { validatePathConfig } from './validatePathConfig'
24
24
 
25
+ // @modified - start: use constants for internal navigation param names to avoid magic strings
26
+ const NAV_PARAM_SCREEN = 'screen'
27
+ const NAV_PARAM_PARAMS = 'params'
28
+ const NAV_PARAM_KEY = 'key'
29
+ // @modified - end
30
+
25
31
  type Options<ParamList extends {}> = {
26
32
  path?: string
27
33
  initialRouteName?: string
@@ -175,7 +181,11 @@ export function getPathDataFromState<ParamList extends {}>(
175
181
  Object.entries(route.params!).flatMap(([key, value]) => {
176
182
  // Filter out internal navigation params that shouldn't appear in URL
177
183
  // 'key' is our deterministic route key used for React reconciliation
178
- if (key === 'screen' || key === 'params' || key === 'key') {
184
+ if (
185
+ key === NAV_PARAM_SCREEN ||
186
+ key === NAV_PARAM_PARAMS ||
187
+ key === NAV_PARAM_KEY
188
+ ) {
179
189
  return []
180
190
  }
181
191
 
@@ -238,8 +248,8 @@ export function getPathDataFromState<ParamList extends {}>(
238
248
  // We can get around this by providing a fake state
239
249
  const screens = currentOptions[route.name].screens
240
250
  const screen =
241
- route.params && 'screen' in route.params
242
- ? route.params.screen?.toString()
251
+ route.params && NAV_PARAM_SCREEN in route.params
252
+ ? route.params[NAV_PARAM_SCREEN]?.toString()
243
253
  : screens
244
254
  ? Object.keys(screens)[0]
245
255
  : undefined
@@ -249,7 +259,7 @@ export function getPathDataFromState<ParamList extends {}>(
249
259
  ...screens[screen],
250
260
  name: screen,
251
261
  key: screen,
252
- params: (route.params as any)?.params,
262
+ params: (route.params as any)?.[NAV_PARAM_PARAMS],
253
263
  }
254
264
  currentOptions = screens
255
265
  } else {
@@ -330,7 +340,7 @@ export function getPathDataFromState<ParamList extends {}>(
330
340
  // @modified - end
331
341
 
332
342
  if (!focusedParams) {
333
- focusedParams = focusedRoute.params
343
+ focusedParams = { ...focusedRoute.params }
334
344
  }
335
345
 
336
346
  if (route.state) {
@@ -285,7 +285,7 @@ export function getRouteConfigSorter(previousSegments: string[] = []) {
285
285
 
286
286
  export function formatRegexPattern(it: string): string {
287
287
  // Allow spaces in file path names.
288
- it = it.replace(' ', '%20')
288
+ it = it.replace(/ /g, '%20')
289
289
 
290
290
  if (it.startsWith(':')) {
291
291
  // TODO: Remove unused match group
@@ -76,20 +76,22 @@ export function useLinking(
76
76
  return undefined
77
77
  }
78
78
 
79
- if (enabled !== false && linkingHandlers.length) {
80
- console.error(
81
- [
82
- 'Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:',
83
- "- You don't have multiple NavigationContainers in the app each with 'linking' enabled",
84
- '- Only a single instance of the root component is rendered',
85
- Platform.OS === 'android'
86
- ? "- You have set 'android:launchMode=singleTask' in the '<activity />' section of the 'AndroidManifest.xml' file to avoid launching multiple instances"
87
- : '',
88
- ]
89
- .join('\n')
90
- .trim()
91
- )
79
+ // @modified - start: reduce spurious warnings on android where activity recreation
80
+ // causes remounts, and only warn when there are truly multiple handlers
81
+ if (enabled !== false && linkingHandlers.length && Platform.OS !== 'android') {
82
+ if (linkingHandlers.length > 1) {
83
+ console.error(
84
+ [
85
+ 'Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:',
86
+ "- You don't have multiple NavigationContainers in the app each with 'linking' enabled",
87
+ '- Only a single instance of the root component is rendered',
88
+ ]
89
+ .join('\n')
90
+ .trim()
91
+ )
92
+ }
92
93
  }
94
+ // @modified - end
93
95
 
94
96
  const handler = Symbol()
95
97
 
@@ -107,6 +107,25 @@ export function useLinking(
107
107
  }: Options,
108
108
  onUnhandledLinking: (lastUnhandledLining: string | undefined) => void
109
109
  ) {
110
+ // @modified - SSR fast path: skip all client-only linking logic
111
+ // on the server, initialState is already computed and passed as a prop
112
+ // to NavigationContainer, so getInitialState result is never used.
113
+ // returning a no-op avoids redundant getStateFromPath per-request.
114
+ if (typeof window === 'undefined') {
115
+ const getInitialState = React.useCallback(() => {
116
+ return {
117
+ then(fn?: (state: ResultState | undefined) => void) {
118
+ return Promise.resolve(fn ? fn(undefined) : undefined)
119
+ },
120
+ catch() {
121
+ return this
122
+ },
123
+ } as PromiseLike<ResultState | undefined>
124
+ }, [])
125
+
126
+ return { getInitialState }
127
+ }
128
+
110
129
  const independent = useNavigationIndependentTree()
111
130
 
112
131
  React.useEffect(() => {
@@ -214,7 +233,9 @@ export function useLinking(
214
233
  const location =
215
234
  server?.location ?? (typeof window !== 'undefined' ? window.location : undefined)
216
235
 
217
- let path = location ? location.pathname + location.search : undefined
236
+ let path = location
237
+ ? location.pathname + location.search + (location.hash ?? '')
238
+ : undefined
218
239
 
219
240
  // Check history.state for temp location (client-only)
220
241
  if (location && typeof window !== 'undefined') {
@@ -98,6 +98,9 @@ export function getReactNavigationConfig(
98
98
  initialRouteName?: string
99
99
  screens: Record<string, Screen>
100
100
  } {
101
+ if (!routes) {
102
+ return { screens: {} }
103
+ }
101
104
  return {
102
105
  initialRouteName: routes.initialRouteName,
103
106
  screens: getReactNavigationScreensConfig(routes.children, metaOnly),
package/src/index.ts CHANGED
@@ -147,6 +147,7 @@ export {
147
147
  } from './useServerHeadInsertion'
148
148
  export { isResponse } from './utils/isResponse'
149
149
  export { redirect } from './utils/redirect'
150
+ export { removeParams } from './utils/removeParams'
150
151
  export { watchFile } from './utils/watchFile'
151
152
  export { ErrorBoundary } from './views/ErrorBoundary'
152
153
  export type { ErrorBoundaryProps, ErrorRouteInfo } from './views/Try'
@@ -210,12 +210,11 @@ export namespace OneRouter {
210
210
 
211
211
  /**
212
212
  * Returns the search parameters for a route.
213
+ * Static routes return UnknownOutputParams to allow extra query params.
213
214
  */
214
215
  export type SearchParams<T extends AllRoutes = never> = T extends DynamicRouteTemplate
215
216
  ? OutputRouteParams<T>
216
- : T extends StaticRoutes
217
- ? never
218
- : UnknownOutputParams
217
+ : UnknownOutputParams
219
218
 
220
219
  /*********
221
220
  * Href *
@@ -39,12 +39,59 @@ export function StackScreen({ children, options, ...rest }: StackScreenProps) {
39
39
  return <Screen {...rest} options={updatedOptions} />
40
40
  }
41
41
 
42
+ const VALID_PRESENTATIONS = [
43
+ 'card',
44
+ 'modal',
45
+ 'transparentModal',
46
+ 'containedModal',
47
+ 'containedTransparentModal',
48
+ 'fullScreenModal',
49
+ 'formSheet',
50
+ 'pageSheet',
51
+ ] as const
52
+
53
+ // validates presentation value in dev to prevent native crashes from invalid values
54
+ export function validateStackPresentation(
55
+ options: NativeStackNavigationOptions
56
+ ): NativeStackNavigationOptions
57
+ export function validateStackPresentation<
58
+ F extends (...args: never[]) => NativeStackNavigationOptions,
59
+ >(options: F): F
60
+ export function validateStackPresentation(
61
+ options:
62
+ | NativeStackNavigationOptions
63
+ | ((...args: never[]) => NativeStackNavigationOptions)
64
+ ): ((...args: never[]) => NativeStackNavigationOptions) | NativeStackNavigationOptions {
65
+ if (typeof options === 'function') {
66
+ return (...args: never[]) => {
67
+ const resolved = options(...args)
68
+ validateStackPresentation(resolved)
69
+ return resolved
70
+ }
71
+ }
72
+
73
+ if (process.env.NODE_ENV !== 'production') {
74
+ const presentation = options.presentation
75
+ if (
76
+ presentation &&
77
+ !VALID_PRESENTATIONS.includes(presentation as (typeof VALID_PRESENTATIONS)[number])
78
+ ) {
79
+ console.warn(
80
+ `Invalid presentation value "${presentation}" passed to Stack.Screen. Valid values are: ${VALID_PRESENTATIONS.map((v) => `"${v}"`).join(', ')}.`
81
+ )
82
+ }
83
+ }
84
+ return options
85
+ }
86
+
42
87
  export function appendScreenStackPropsToOptions(
43
88
  options: NativeStackNavigationOptions,
44
89
  props: StackScreenProps
45
90
  ): NativeStackNavigationOptions {
46
91
  let updatedOptions = { ...options, ...props.options }
47
92
 
93
+ validateStackPresentation(updatedOptions)
94
+
48
95
  function appendChildOptions(
49
96
  child: React.ReactElement,
50
97
  options: NativeStackNavigationOptions
@@ -41,5 +41,6 @@ export {
41
41
  export {
42
42
  StackScreen,
43
43
  appendScreenStackPropsToOptions,
44
+ validateStackPresentation,
44
45
  type StackScreenProps,
45
46
  } from './StackScreen'
@@ -213,6 +213,8 @@ export function getViteMetroPluginOptions({
213
213
  })(),
214
214
  },
215
215
  ],
216
+ // inline ONE_SERVER_URL so native prod bundles know where to fetch loaders
217
+ 'one/babel-plugin-inline-one-server-url',
216
218
  ],
217
219
  },
218
220
  }
@@ -8,7 +8,7 @@ export function findRouteNodeFromState(
8
8
  state: { routes: Array<{ name: string; state?: any }> } | undefined,
9
9
  rootNode: RouteNode | null
10
10
  ): RouteNode | null {
11
- if (!state || !rootNode) {
11
+ if (!state || !state.routes || !rootNode) {
12
12
  return null
13
13
  }
14
14
 
@@ -65,7 +65,7 @@ export function extractParamsFromState(
65
65
  | { routes: Array<{ name: string; params?: Record<string, any>; state?: any }> }
66
66
  | undefined
67
67
  ): Record<string, string | string[]> {
68
- if (!state) {
68
+ if (!state || !state.routes) {
69
69
  return {}
70
70
  }
71
71
 
@@ -135,7 +135,7 @@ export function findAllRouteNodesFromState(
135
135
  state: { routes: Array<{ name: string; state?: any }> } | undefined,
136
136
  rootNode: RouteNode | null
137
137
  ): RouteNode[] {
138
- if (!state || !rootNode) {
138
+ if (!state || !state.routes || !rootNode) {
139
139
  return []
140
140
  }
141
141
 
@@ -147,7 +147,7 @@ export function findAllRouteNodesFromState(
147
147
  | undefined,
148
148
  parentNode: RouteNode | null
149
149
  ) {
150
- if (!currentState || !parentNode) {
150
+ if (!currentState || !currentState.routes || !parentNode) {
151
151
  return
152
152
  }
153
153
 
@@ -3,6 +3,10 @@ import type { State } from '../fork/getPathFromState'
3
3
  type RouteLikeTree = { name: string; state?: { routes?: RouteLikeTree[] } }
4
4
 
5
5
  export function isIndexPath(state: State) {
6
+ if (!state.routes) {
7
+ return false
8
+ }
9
+
6
10
  const route = getActualLastRoute(state.routes[state.index ?? state.routes.length - 1])
7
11
 
8
12
  if (route.state) {