one 1.2.46 → 1.2.48

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 (818) hide show
  1. package/dist/cjs/Root.js +6 -1
  2. package/dist/cjs/Root.js.map +1 -1
  3. package/dist/cjs/Root.native.js.map +1 -1
  4. package/dist/cjs/babel-plugins/one-router-metro.js +4 -1
  5. package/dist/cjs/babel-plugins/one-router-metro.js.map +1 -1
  6. package/dist/cjs/babel-plugins/one-router-metro.native.js.map +1 -1
  7. package/dist/cjs/babel-plugins/remove-server-code.js +3 -1
  8. package/dist/cjs/babel-plugins/remove-server-code.js.map +1 -1
  9. package/dist/cjs/babel-plugins/remove-server-code.native.js.map +1 -1
  10. package/dist/cjs/cli/build.js +31 -8
  11. package/dist/cjs/cli/build.js.map +1 -1
  12. package/dist/cjs/cli/build.native.js.map +1 -1
  13. package/dist/cjs/cli/buildPage.cjs +16 -7
  14. package/dist/cjs/cli/buildPage.js +26 -7
  15. package/dist/cjs/cli/buildPage.js.map +1 -1
  16. package/dist/cjs/cli/buildPage.native.js +17 -8
  17. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  18. package/dist/cjs/cli/generateRoutes.js +3 -1
  19. package/dist/cjs/cli/generateRoutes.js.map +1 -1
  20. package/dist/cjs/cli/generateRoutes.native.js.map +1 -1
  21. package/dist/cjs/cli/generateSitemap.js.map +1 -1
  22. package/dist/cjs/cli/generateSitemap.native.js.map +1 -1
  23. package/dist/cjs/cli/generateSitemap.test.js +14 -4
  24. package/dist/cjs/cli/generateSitemap.test.js.map +1 -1
  25. package/dist/cjs/cli/generateSitemap.test.native.js.map +1 -1
  26. package/dist/cjs/cli/main.js +4 -2
  27. package/dist/cjs/cli/main.js.map +1 -1
  28. package/dist/cjs/cli/main.native.js.map +1 -1
  29. package/dist/cjs/cli/prebuild.js.map +1 -1
  30. package/dist/cjs/cli/prebuild.native.js.map +1 -1
  31. package/dist/cjs/clientLoaderResolver.js.map +1 -1
  32. package/dist/cjs/clientLoaderResolver.native.js.map +1 -1
  33. package/dist/cjs/config.js +3 -1
  34. package/dist/cjs/config.js.map +1 -1
  35. package/dist/cjs/config.native.js.map +1 -1
  36. package/dist/cjs/constants.js.map +1 -1
  37. package/dist/cjs/constants.native.js.map +1 -1
  38. package/dist/cjs/createApp.js +9 -1
  39. package/dist/cjs/createApp.js.map +1 -1
  40. package/dist/cjs/createHandleRequest.js +9 -3
  41. package/dist/cjs/createHandleRequest.js.map +1 -1
  42. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  43. package/dist/cjs/fork/__tests__/getPathFromState.test.js +90 -88
  44. package/dist/cjs/fork/__tests__/getPathFromState.test.js.map +1 -1
  45. package/dist/cjs/fork/__tests__/getPathFromState.test.native.js.map +1 -1
  46. package/dist/cjs/fork/__tests__/getStateFromPath.test.js +163 -86
  47. package/dist/cjs/fork/__tests__/getStateFromPath.test.js.map +1 -1
  48. package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
  49. package/dist/cjs/fork/_shared.js.map +1 -1
  50. package/dist/cjs/fork/_shared.native.js.map +1 -1
  51. package/dist/cjs/fork/extractPathFromURL.js.map +1 -1
  52. package/dist/cjs/fork/extractPathFromURL.native.js.map +1 -1
  53. package/dist/cjs/fork/getPathFromState-mods.js +4 -1
  54. package/dist/cjs/fork/getPathFromState-mods.js.map +1 -1
  55. package/dist/cjs/fork/getPathFromState-mods.native.js.map +1 -1
  56. package/dist/cjs/fork/getPathFromState.js +3 -1
  57. package/dist/cjs/fork/getPathFromState.js.map +1 -1
  58. package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
  59. package/dist/cjs/fork/getStateFromPath-mods.js.map +1 -1
  60. package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
  61. package/dist/cjs/fork/getStateFromPath.js +7 -1
  62. package/dist/cjs/fork/getStateFromPath.js.map +1 -1
  63. package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
  64. package/dist/cjs/fork/getStateFromPath.test.js +21 -8
  65. package/dist/cjs/fork/getStateFromPath.test.js.map +1 -1
  66. package/dist/cjs/fork/getStateFromPath.test.native.js.map +1 -1
  67. package/dist/cjs/fork/useBackButton.js.map +1 -1
  68. package/dist/cjs/fork/useDocumentTitle.js +4 -1
  69. package/dist/cjs/fork/useDocumentTitle.js.map +1 -1
  70. package/dist/cjs/fork/useLinking.js +4 -1
  71. package/dist/cjs/fork/useLinking.js.map +1 -1
  72. package/dist/cjs/fork/validatePathConfig.js.map +1 -1
  73. package/dist/cjs/fork/validatePathConfig.native.js.map +1 -1
  74. package/dist/cjs/hooks.js.map +1 -1
  75. package/dist/cjs/hooks.native.js.map +1 -1
  76. package/dist/cjs/index.js.map +1 -1
  77. package/dist/cjs/layouts/Tabs.js.map +1 -1
  78. package/dist/cjs/layouts/Tabs.native.js.map +1 -1
  79. package/dist/cjs/layouts/withLayoutContext.js +10 -8
  80. package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
  81. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  82. package/dist/cjs/link/Link.js.map +1 -1
  83. package/dist/cjs/link/Link.native.js.map +1 -1
  84. package/dist/cjs/link/linking.js +3 -1
  85. package/dist/cjs/link/linking.js.map +1 -1
  86. package/dist/cjs/link/linking.native.js.map +1 -1
  87. package/dist/cjs/link/useLinkTo.js.map +1 -1
  88. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  89. package/dist/cjs/link/useLoadedNavigation.js.map +1 -1
  90. package/dist/cjs/link/useLoadedNavigation.native.js.map +1 -1
  91. package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +6 -8
  92. package/dist/cjs/metro-config/getViteMetroPluginOptions.js +8 -10
  93. package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +1 -1
  94. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +9 -11
  95. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  96. package/dist/cjs/polyfills-mobile.cjs +3 -1
  97. package/dist/cjs/polyfills-mobile.js +2 -1
  98. package/dist/cjs/polyfills-mobile.js.map +2 -2
  99. package/dist/cjs/polyfills-mobile.native.js +8 -4
  100. package/dist/cjs/polyfills-mobile.native.js.map +1 -1
  101. package/dist/cjs/router/Route.js.map +1 -1
  102. package/dist/cjs/router/Route.native.js.map +1 -1
  103. package/dist/cjs/router/RouteInfoContext.js +7 -1
  104. package/dist/cjs/router/RouteInfoContext.js.map +1 -1
  105. package/dist/cjs/router/RouteInfoContext.native.js.map +1 -1
  106. package/dist/cjs/router/filterRootHTML.js.map +1 -1
  107. package/dist/cjs/router/filterRootHTML.native.js.map +1 -1
  108. package/dist/cjs/router/getLinkingConfig.js.map +1 -1
  109. package/dist/cjs/router/getLinkingConfig.native.js.map +1 -1
  110. package/dist/cjs/router/getNormalizedStatePath.js.map +1 -1
  111. package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
  112. package/dist/cjs/router/getRoutes.js +3 -1
  113. package/dist/cjs/router/getRoutes.js.map +1 -1
  114. package/dist/cjs/router/getRoutes.native.js.map +1 -1
  115. package/dist/cjs/router/linkingConfig.js.map +1 -1
  116. package/dist/cjs/router/linkingConfig.native.js.map +1 -1
  117. package/dist/cjs/router/matchers.cjs +1 -1
  118. package/dist/cjs/router/matchers.js +1 -1
  119. package/dist/cjs/router/matchers.js.map +1 -1
  120. package/dist/cjs/router/matchers.native.js +1 -1
  121. package/dist/cjs/router/matchers.native.js.map +1 -1
  122. package/dist/cjs/router/matchers.test.js +6 -2
  123. package/dist/cjs/router/matchers.test.js.map +1 -1
  124. package/dist/cjs/router/matchers.test.native.js.map +1 -1
  125. package/dist/cjs/router/router.cjs +3 -1
  126. package/dist/cjs/router/router.js +15 -4
  127. package/dist/cjs/router/router.js.map +1 -1
  128. package/dist/cjs/router/router.native.js +7 -3
  129. package/dist/cjs/router/router.native.js.map +1 -1
  130. package/dist/cjs/router/useNavigation.js.map +1 -1
  131. package/dist/cjs/router/useNavigation.native.js.map +1 -1
  132. package/dist/cjs/router/useScreens.js +13 -11
  133. package/dist/cjs/router/useScreens.js.map +1 -1
  134. package/dist/cjs/router/useScreens.native.js.map +1 -1
  135. package/dist/cjs/router/useViteRoutes.js.map +1 -1
  136. package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
  137. package/dist/cjs/router/utils/getNavigateAction.js.map +1 -1
  138. package/dist/cjs/router/utils/getNavigateAction.native.js.map +1 -1
  139. package/dist/cjs/server/createRoutesManifest.js.map +1 -1
  140. package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
  141. package/dist/cjs/server/getServerManifest.js +3 -1
  142. package/dist/cjs/server/getServerManifest.js.map +1 -1
  143. package/dist/cjs/server/getServerManifest.native.js.map +1 -1
  144. package/dist/cjs/server/oneServe.cjs +10 -2
  145. package/dist/cjs/server/oneServe.js +21 -3
  146. package/dist/cjs/server/oneServe.js.map +1 -1
  147. package/dist/cjs/server/oneServe.native.js +10 -3
  148. package/dist/cjs/server/oneServe.native.js.map +1 -1
  149. package/dist/cjs/server/setupBuildOptions.js.map +1 -1
  150. package/dist/cjs/server/setupBuildOptions.native.js.map +1 -1
  151. package/dist/cjs/server/staticHtmlFetcher.js.map +1 -1
  152. package/dist/cjs/server/staticHtmlFetcher.native.js.map +1 -1
  153. package/dist/cjs/server-render.js.map +1 -1
  154. package/dist/cjs/server-render.native.js.map +1 -1
  155. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +14 -2
  156. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
  157. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  158. package/dist/cjs/typed-routes/injectRouteHelpers.js +4 -1
  159. package/dist/cjs/typed-routes/injectRouteHelpers.js.map +1 -1
  160. package/dist/cjs/typed-routes/injectRouteHelpers.native.js.map +1 -1
  161. package/dist/cjs/ui/Slot.js.map +1 -1
  162. package/dist/cjs/ui/Slot.native.js.map +1 -1
  163. package/dist/cjs/ui/TabContext.js +3 -1
  164. package/dist/cjs/ui/TabContext.js.map +1 -1
  165. package/dist/cjs/ui/TabContext.native.js.map +1 -1
  166. package/dist/cjs/ui/TabRouter.js.map +1 -1
  167. package/dist/cjs/ui/TabRouter.native.js.map +1 -1
  168. package/dist/cjs/ui/TabTrigger.js +17 -2
  169. package/dist/cjs/ui/TabTrigger.js.map +1 -1
  170. package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
  171. package/dist/cjs/ui/Tabs.js +5 -1
  172. package/dist/cjs/ui/Tabs.js.map +1 -1
  173. package/dist/cjs/ui/Tabs.native.js.map +1 -1
  174. package/dist/cjs/ui/common.js +3 -1
  175. package/dist/cjs/ui/common.js.map +1 -1
  176. package/dist/cjs/ui/common.native.js.map +1 -1
  177. package/dist/cjs/useLoader.js +4 -1
  178. package/dist/cjs/useLoader.js.map +1 -1
  179. package/dist/cjs/useLoader.native.js.map +1 -1
  180. package/dist/cjs/utils/cleanUrl.js.map +1 -1
  181. package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
  182. package/dist/cjs/utils/url.js +3 -1
  183. package/dist/cjs/utils/url.js.map +1 -1
  184. package/dist/cjs/utils/url.native.js.map +1 -1
  185. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js +29 -10
  186. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  187. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  188. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js +11 -3
  189. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
  190. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  191. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js +9 -2
  192. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  193. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  194. package/dist/cjs/vercel/build/getPathFromRoute.js +4 -1
  195. package/dist/cjs/vercel/build/getPathFromRoute.js.map +1 -1
  196. package/dist/cjs/vercel/build/getPathFromRoute.native.js.map +1 -1
  197. package/dist/cjs/views/Navigator.js +16 -8
  198. package/dist/cjs/views/Navigator.js.map +1 -1
  199. package/dist/cjs/views/Navigator.native.js.map +1 -1
  200. package/dist/cjs/views/RootErrorBoundary.js +4 -2
  201. package/dist/cjs/views/RootErrorBoundary.js.map +1 -1
  202. package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
  203. package/dist/cjs/views/Screen.js +4 -1
  204. package/dist/cjs/views/Screen.js.map +1 -1
  205. package/dist/cjs/views/Screen.native.js.map +1 -1
  206. package/dist/cjs/vite/loadConfig.js +6 -2
  207. package/dist/cjs/vite/loadConfig.js.map +1 -1
  208. package/dist/cjs/vite/loadConfig.native.js.map +1 -1
  209. package/dist/cjs/vite/one-server-only.js +3 -1
  210. package/dist/cjs/vite/one-server-only.js.map +1 -1
  211. package/dist/cjs/vite/one.js +9 -3
  212. package/dist/cjs/vite/one.js.map +1 -1
  213. package/dist/cjs/vite/one.native.js.map +1 -1
  214. package/dist/cjs/vite/plugins/SSRCSSPlugin.js +5 -1
  215. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  216. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  217. package/dist/cjs/vite/plugins/clientTreeShakePlugin.js +8 -2
  218. package/dist/cjs/vite/plugins/clientTreeShakePlugin.js.map +1 -1
  219. package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  220. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +1 -0
  221. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +13 -4
  222. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  223. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +1 -0
  224. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  225. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  226. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  227. package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.js.map +1 -1
  228. package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
  229. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +7 -3
  230. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +16 -5
  231. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  232. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +5 -2
  233. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  234. package/dist/cjs/vite/replaceLoader.js +4 -1
  235. package/dist/cjs/vite/replaceLoader.js.map +1 -1
  236. package/dist/cjs/vite/replaceLoader.native.js.map +1 -1
  237. package/dist/cjs/vite/resolveResponse.js.map +1 -1
  238. package/dist/cjs/vite/resolveResponse.native.js.map +1 -1
  239. package/dist/cjs/zero/subscribeToQuery.js.map +1 -1
  240. package/dist/cjs/zero/subscribeToQuery.native.js.map +1 -1
  241. package/dist/cjs/zero/useQueryZero.js +3 -1
  242. package/dist/cjs/zero/useQueryZero.js.map +1 -1
  243. package/dist/cjs/zero/useQueryZero.native.js.map +1 -1
  244. package/dist/esm/Root.js +6 -1
  245. package/dist/esm/Root.js.map +1 -1
  246. package/dist/esm/Root.mjs.map +1 -1
  247. package/dist/esm/Root.native.js.map +1 -1
  248. package/dist/esm/babel-plugins/one-router-metro.js +4 -1
  249. package/dist/esm/babel-plugins/one-router-metro.js.map +1 -1
  250. package/dist/esm/babel-plugins/one-router-metro.mjs.map +1 -1
  251. package/dist/esm/babel-plugins/one-router-metro.native.js.map +1 -1
  252. package/dist/esm/babel-plugins/remove-server-code.js +7 -2
  253. package/dist/esm/babel-plugins/remove-server-code.js.map +1 -1
  254. package/dist/esm/babel-plugins/remove-server-code.mjs.map +1 -1
  255. package/dist/esm/babel-plugins/remove-server-code.native.js.map +1 -1
  256. package/dist/esm/cli/build.js +31 -8
  257. package/dist/esm/cli/build.js.map +1 -1
  258. package/dist/esm/cli/build.mjs.map +1 -1
  259. package/dist/esm/cli/build.native.js.map +1 -1
  260. package/dist/esm/cli/buildPage.js +26 -6
  261. package/dist/esm/cli/buildPage.js.map +1 -1
  262. package/dist/esm/cli/buildPage.mjs +16 -7
  263. package/dist/esm/cli/buildPage.mjs.map +1 -1
  264. package/dist/esm/cli/buildPage.native.js +17 -8
  265. package/dist/esm/cli/buildPage.native.js.map +1 -1
  266. package/dist/esm/cli/generateRoutes.js +3 -1
  267. package/dist/esm/cli/generateRoutes.js.map +1 -1
  268. package/dist/esm/cli/generateRoutes.mjs.map +1 -1
  269. package/dist/esm/cli/generateRoutes.native.js.map +1 -1
  270. package/dist/esm/cli/generateSitemap.js.map +1 -1
  271. package/dist/esm/cli/generateSitemap.mjs.map +1 -1
  272. package/dist/esm/cli/generateSitemap.native.js.map +1 -1
  273. package/dist/esm/cli/generateSitemap.test.js +14 -4
  274. package/dist/esm/cli/generateSitemap.test.js.map +1 -1
  275. package/dist/esm/cli/generateSitemap.test.mjs.map +1 -1
  276. package/dist/esm/cli/generateSitemap.test.native.js.map +1 -1
  277. package/dist/esm/cli/main.js +4 -2
  278. package/dist/esm/cli/main.js.map +1 -1
  279. package/dist/esm/cli/main.mjs.map +1 -1
  280. package/dist/esm/cli/main.native.js.map +1 -1
  281. package/dist/esm/cli/prebuild.js.map +1 -1
  282. package/dist/esm/cli/prebuild.mjs.map +1 -1
  283. package/dist/esm/cli/prebuild.native.js.map +1 -1
  284. package/dist/esm/clientLoaderResolver.js.map +1 -1
  285. package/dist/esm/clientLoaderResolver.mjs.map +1 -1
  286. package/dist/esm/clientLoaderResolver.native.js.map +1 -1
  287. package/dist/esm/config.js +3 -1
  288. package/dist/esm/config.js.map +1 -1
  289. package/dist/esm/config.mjs.map +1 -1
  290. package/dist/esm/config.native.js.map +1 -1
  291. package/dist/esm/constants.js.map +1 -1
  292. package/dist/esm/constants.mjs.map +1 -1
  293. package/dist/esm/constants.native.js.map +1 -1
  294. package/dist/esm/createApp.js +9 -1
  295. package/dist/esm/createApp.js.map +1 -1
  296. package/dist/esm/createApp.mjs.map +1 -1
  297. package/dist/esm/createHandleRequest.js +9 -3
  298. package/dist/esm/createHandleRequest.js.map +1 -1
  299. package/dist/esm/createHandleRequest.mjs.map +1 -1
  300. package/dist/esm/createHandleRequest.native.js.map +1 -1
  301. package/dist/esm/fork/__tests__/getPathFromState.test.js +90 -88
  302. package/dist/esm/fork/__tests__/getPathFromState.test.js.map +1 -1
  303. package/dist/esm/fork/__tests__/getPathFromState.test.mjs.map +1 -1
  304. package/dist/esm/fork/__tests__/getPathFromState.test.native.js.map +1 -1
  305. package/dist/esm/fork/__tests__/getStateFromPath.test.js +163 -86
  306. package/dist/esm/fork/__tests__/getStateFromPath.test.js.map +1 -1
  307. package/dist/esm/fork/__tests__/getStateFromPath.test.mjs.map +1 -1
  308. package/dist/esm/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
  309. package/dist/esm/fork/_shared.js.map +1 -1
  310. package/dist/esm/fork/_shared.mjs.map +1 -1
  311. package/dist/esm/fork/_shared.native.js.map +1 -1
  312. package/dist/esm/fork/extractPathFromURL.js.map +1 -1
  313. package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
  314. package/dist/esm/fork/extractPathFromURL.native.js.map +1 -1
  315. package/dist/esm/fork/getPathFromState-mods.js +4 -1
  316. package/dist/esm/fork/getPathFromState-mods.js.map +1 -1
  317. package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -1
  318. package/dist/esm/fork/getPathFromState-mods.native.js.map +1 -1
  319. package/dist/esm/fork/getPathFromState.js +3 -1
  320. package/dist/esm/fork/getPathFromState.js.map +1 -1
  321. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  322. package/dist/esm/fork/getPathFromState.native.js.map +1 -1
  323. package/dist/esm/fork/getStateFromPath-mods.js.map +1 -1
  324. package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -1
  325. package/dist/esm/fork/getStateFromPath-mods.native.js.map +1 -1
  326. package/dist/esm/fork/getStateFromPath.js +7 -1
  327. package/dist/esm/fork/getStateFromPath.js.map +1 -1
  328. package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
  329. package/dist/esm/fork/getStateFromPath.native.js.map +1 -1
  330. package/dist/esm/fork/getStateFromPath.test.js +25 -9
  331. package/dist/esm/fork/getStateFromPath.test.js.map +1 -1
  332. package/dist/esm/fork/getStateFromPath.test.mjs.map +1 -1
  333. package/dist/esm/fork/getStateFromPath.test.native.js.map +1 -1
  334. package/dist/esm/fork/useBackButton.js.map +1 -1
  335. package/dist/esm/fork/useBackButton.mjs.map +1 -1
  336. package/dist/esm/fork/useDocumentTitle.js +4 -1
  337. package/dist/esm/fork/useDocumentTitle.js.map +1 -1
  338. package/dist/esm/fork/useDocumentTitle.mjs.map +1 -1
  339. package/dist/esm/fork/useLinking.js +4 -1
  340. package/dist/esm/fork/useLinking.js.map +1 -1
  341. package/dist/esm/fork/useLinking.mjs.map +1 -1
  342. package/dist/esm/fork/validatePathConfig.js.map +1 -1
  343. package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
  344. package/dist/esm/fork/validatePathConfig.native.js.map +1 -1
  345. package/dist/esm/hooks.js.map +1 -1
  346. package/dist/esm/hooks.mjs.map +1 -1
  347. package/dist/esm/hooks.native.js.map +1 -1
  348. package/dist/esm/index.js +3 -1
  349. package/dist/esm/index.js.map +1 -1
  350. package/dist/esm/index.mjs.map +1 -1
  351. package/dist/esm/index.native.js.map +1 -1
  352. package/dist/esm/layouts/Tabs.js.map +1 -1
  353. package/dist/esm/layouts/Tabs.mjs.map +1 -1
  354. package/dist/esm/layouts/Tabs.native.js.map +1 -1
  355. package/dist/esm/layouts/withLayoutContext.js +10 -8
  356. package/dist/esm/layouts/withLayoutContext.js.map +1 -1
  357. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  358. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  359. package/dist/esm/link/Link.js.map +1 -1
  360. package/dist/esm/link/Link.mjs.map +1 -1
  361. package/dist/esm/link/Link.native.js.map +1 -1
  362. package/dist/esm/link/linking.js +3 -1
  363. package/dist/esm/link/linking.js.map +1 -1
  364. package/dist/esm/link/linking.mjs.map +1 -1
  365. package/dist/esm/link/linking.native.js.map +1 -1
  366. package/dist/esm/link/useLinkTo.js.map +1 -1
  367. package/dist/esm/link/useLinkTo.mjs.map +1 -1
  368. package/dist/esm/link/useLinkTo.native.js.map +1 -1
  369. package/dist/esm/link/useLoadedNavigation.js +3 -1
  370. package/dist/esm/link/useLoadedNavigation.js.map +1 -1
  371. package/dist/esm/link/useLoadedNavigation.mjs.map +1 -1
  372. package/dist/esm/link/useLoadedNavigation.native.js.map +1 -1
  373. package/dist/esm/metro-config/getViteMetroPluginOptions.js +8 -10
  374. package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
  375. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +6 -8
  376. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
  377. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +9 -11
  378. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  379. package/dist/esm/polyfills-mobile.js +2 -0
  380. package/dist/esm/polyfills-mobile.js.map +1 -1
  381. package/dist/esm/polyfills-mobile.mjs +2 -0
  382. package/dist/esm/polyfills-mobile.mjs.map +1 -1
  383. package/dist/esm/polyfills-mobile.native.js +5 -3
  384. package/dist/esm/polyfills-mobile.native.js.map +1 -1
  385. package/dist/esm/router/Route.js.map +1 -1
  386. package/dist/esm/router/Route.mjs.map +1 -1
  387. package/dist/esm/router/Route.native.js.map +1 -1
  388. package/dist/esm/router/RouteInfoContext.js +7 -1
  389. package/dist/esm/router/RouteInfoContext.js.map +1 -1
  390. package/dist/esm/router/RouteInfoContext.mjs.map +1 -1
  391. package/dist/esm/router/RouteInfoContext.native.js.map +1 -1
  392. package/dist/esm/router/filterRootHTML.js.map +1 -1
  393. package/dist/esm/router/filterRootHTML.mjs.map +1 -1
  394. package/dist/esm/router/filterRootHTML.native.js.map +1 -1
  395. package/dist/esm/router/getLinkingConfig.js.map +1 -1
  396. package/dist/esm/router/getLinkingConfig.mjs.map +1 -1
  397. package/dist/esm/router/getLinkingConfig.native.js.map +1 -1
  398. package/dist/esm/router/getNormalizedStatePath.js.map +1 -1
  399. package/dist/esm/router/getNormalizedStatePath.mjs.map +1 -1
  400. package/dist/esm/router/getNormalizedStatePath.native.js.map +1 -1
  401. package/dist/esm/router/getRoutes.js +3 -1
  402. package/dist/esm/router/getRoutes.js.map +1 -1
  403. package/dist/esm/router/getRoutes.mjs.map +1 -1
  404. package/dist/esm/router/getRoutes.native.js.map +1 -1
  405. package/dist/esm/router/linkingConfig.js +3 -1
  406. package/dist/esm/router/linkingConfig.js.map +1 -1
  407. package/dist/esm/router/linkingConfig.mjs.map +1 -1
  408. package/dist/esm/router/linkingConfig.native.js.map +1 -1
  409. package/dist/esm/router/matchers.js +1 -1
  410. package/dist/esm/router/matchers.js.map +1 -1
  411. package/dist/esm/router/matchers.mjs +1 -1
  412. package/dist/esm/router/matchers.mjs.map +1 -1
  413. package/dist/esm/router/matchers.native.js +1 -1
  414. package/dist/esm/router/matchers.native.js.map +1 -1
  415. package/dist/esm/router/matchers.test.js +6 -2
  416. package/dist/esm/router/matchers.test.js.map +1 -1
  417. package/dist/esm/router/matchers.test.mjs.map +1 -1
  418. package/dist/esm/router/router.js +18 -5
  419. package/dist/esm/router/router.js.map +1 -1
  420. package/dist/esm/router/router.mjs +3 -1
  421. package/dist/esm/router/router.mjs.map +1 -1
  422. package/dist/esm/router/router.native.js +7 -3
  423. package/dist/esm/router/router.native.js.map +1 -1
  424. package/dist/esm/router/useNavigation.js.map +1 -1
  425. package/dist/esm/router/useNavigation.mjs.map +1 -1
  426. package/dist/esm/router/useNavigation.native.js.map +1 -1
  427. package/dist/esm/router/useScreens.js +13 -11
  428. package/dist/esm/router/useScreens.js.map +1 -1
  429. package/dist/esm/router/useScreens.mjs.map +1 -1
  430. package/dist/esm/router/useScreens.native.js.map +1 -1
  431. package/dist/esm/router/useViteRoutes.js.map +1 -1
  432. package/dist/esm/router/useViteRoutes.mjs.map +1 -1
  433. package/dist/esm/router/useViteRoutes.native.js.map +1 -1
  434. package/dist/esm/router/utils/getNavigateAction.js.map +1 -1
  435. package/dist/esm/router/utils/getNavigateAction.mjs.map +1 -1
  436. package/dist/esm/router/utils/getNavigateAction.native.js.map +1 -1
  437. package/dist/esm/server/createRoutesManifest.js.map +1 -1
  438. package/dist/esm/server/createRoutesManifest.mjs.map +1 -1
  439. package/dist/esm/server/createRoutesManifest.native.js.map +1 -1
  440. package/dist/esm/server/getServerManifest.js +3 -1
  441. package/dist/esm/server/getServerManifest.js.map +1 -1
  442. package/dist/esm/server/getServerManifest.mjs.map +1 -1
  443. package/dist/esm/server/getServerManifest.native.js.map +1 -1
  444. package/dist/esm/server/oneServe.js +21 -3
  445. package/dist/esm/server/oneServe.js.map +1 -1
  446. package/dist/esm/server/oneServe.mjs +10 -2
  447. package/dist/esm/server/oneServe.mjs.map +1 -1
  448. package/dist/esm/server/oneServe.native.js +10 -3
  449. package/dist/esm/server/oneServe.native.js.map +1 -1
  450. package/dist/esm/server/setupBuildOptions.js.map +1 -1
  451. package/dist/esm/server/setupBuildOptions.mjs.map +1 -1
  452. package/dist/esm/server/setupBuildOptions.native.js.map +1 -1
  453. package/dist/esm/server/staticHtmlFetcher.js.map +1 -1
  454. package/dist/esm/server/staticHtmlFetcher.mjs.map +1 -1
  455. package/dist/esm/server/staticHtmlFetcher.native.js.map +1 -1
  456. package/dist/esm/server-render.js.map +1 -1
  457. package/dist/esm/server-render.mjs.map +1 -1
  458. package/dist/esm/server-render.native.js.map +1 -1
  459. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js +14 -2
  460. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
  461. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs.map +1 -1
  462. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  463. package/dist/esm/typed-routes/injectRouteHelpers.js +4 -1
  464. package/dist/esm/typed-routes/injectRouteHelpers.js.map +1 -1
  465. package/dist/esm/typed-routes/injectRouteHelpers.mjs.map +1 -1
  466. package/dist/esm/typed-routes/injectRouteHelpers.native.js.map +1 -1
  467. package/dist/esm/ui/Slot.js.map +1 -1
  468. package/dist/esm/ui/Slot.mjs.map +1 -1
  469. package/dist/esm/ui/Slot.native.js.map +1 -1
  470. package/dist/esm/ui/TabContext.js +3 -1
  471. package/dist/esm/ui/TabContext.js.map +1 -1
  472. package/dist/esm/ui/TabContext.mjs.map +1 -1
  473. package/dist/esm/ui/TabContext.native.js.map +1 -1
  474. package/dist/esm/ui/TabRouter.js.map +1 -1
  475. package/dist/esm/ui/TabRouter.mjs.map +1 -1
  476. package/dist/esm/ui/TabRouter.native.js.map +1 -1
  477. package/dist/esm/ui/TabTrigger.js +21 -3
  478. package/dist/esm/ui/TabTrigger.js.map +1 -1
  479. package/dist/esm/ui/TabTrigger.mjs.map +1 -1
  480. package/dist/esm/ui/TabTrigger.native.js.map +1 -1
  481. package/dist/esm/ui/Tabs.js +5 -1
  482. package/dist/esm/ui/Tabs.js.map +1 -1
  483. package/dist/esm/ui/Tabs.mjs.map +1 -1
  484. package/dist/esm/ui/Tabs.native.js.map +1 -1
  485. package/dist/esm/ui/common.js +8 -2
  486. package/dist/esm/ui/common.js.map +1 -1
  487. package/dist/esm/ui/common.mjs.map +1 -1
  488. package/dist/esm/ui/common.native.js.map +1 -1
  489. package/dist/esm/useLoader.js +4 -1
  490. package/dist/esm/useLoader.js.map +1 -1
  491. package/dist/esm/useLoader.mjs.map +1 -1
  492. package/dist/esm/useLoader.native.js.map +1 -1
  493. package/dist/esm/utils/cleanUrl.js.map +1 -1
  494. package/dist/esm/utils/cleanUrl.mjs.map +1 -1
  495. package/dist/esm/utils/cleanUrl.native.js.map +1 -1
  496. package/dist/esm/utils/url.js +3 -1
  497. package/dist/esm/utils/url.js.map +1 -1
  498. package/dist/esm/utils/url.mjs.map +1 -1
  499. package/dist/esm/utils/url.native.js.map +1 -1
  500. package/dist/esm/vercel/build/buildVercelOutputDirectory.js +29 -10
  501. package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  502. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
  503. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  504. package/dist/esm/vercel/build/generate/createApiServerlessFunction.js +11 -3
  505. package/dist/esm/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
  506. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs.map +1 -1
  507. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  508. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js +9 -2
  509. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  510. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs.map +1 -1
  511. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  512. package/dist/esm/vercel/build/getPathFromRoute.js +4 -1
  513. package/dist/esm/vercel/build/getPathFromRoute.js.map +1 -1
  514. package/dist/esm/vercel/build/getPathFromRoute.mjs.map +1 -1
  515. package/dist/esm/vercel/build/getPathFromRoute.native.js.map +1 -1
  516. package/dist/esm/views/Navigator.js +20 -9
  517. package/dist/esm/views/Navigator.js.map +1 -1
  518. package/dist/esm/views/Navigator.mjs.map +1 -1
  519. package/dist/esm/views/Navigator.native.js.map +1 -1
  520. package/dist/esm/views/RootErrorBoundary.js +4 -2
  521. package/dist/esm/views/RootErrorBoundary.js.map +1 -1
  522. package/dist/esm/views/RootErrorBoundary.mjs.map +1 -1
  523. package/dist/esm/views/RootErrorBoundary.native.js.map +1 -1
  524. package/dist/esm/views/Screen.js +4 -1
  525. package/dist/esm/views/Screen.js.map +1 -1
  526. package/dist/esm/views/Screen.mjs.map +1 -1
  527. package/dist/esm/views/Screen.native.js.map +1 -1
  528. package/dist/esm/vite/loadConfig.js +6 -2
  529. package/dist/esm/vite/loadConfig.js.map +1 -1
  530. package/dist/esm/vite/loadConfig.mjs.map +1 -1
  531. package/dist/esm/vite/loadConfig.native.js.map +1 -1
  532. package/dist/esm/vite/one-server-only.js +3 -1
  533. package/dist/esm/vite/one-server-only.js.map +1 -1
  534. package/dist/esm/vite/one-server-only.mjs.map +1 -1
  535. package/dist/esm/vite/one.js +9 -3
  536. package/dist/esm/vite/one.js.map +1 -1
  537. package/dist/esm/vite/one.mjs.map +1 -1
  538. package/dist/esm/vite/one.native.js.map +1 -1
  539. package/dist/esm/vite/plugins/SSRCSSPlugin.js +5 -1
  540. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  541. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  542. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  543. package/dist/esm/vite/plugins/clientTreeShakePlugin.js +12 -3
  544. package/dist/esm/vite/plugins/clientTreeShakePlugin.js.map +1 -1
  545. package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs.map +1 -1
  546. package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  547. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +13 -4
  548. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  549. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +1 -0
  550. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  551. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +1 -0
  552. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  553. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  554. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
  555. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  556. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.js.map +1 -1
  557. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.mjs.map +1 -1
  558. package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
  559. package/dist/esm/vite/plugins/virtualEntryPlugin.js +16 -4
  560. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  561. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +6 -2
  562. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  563. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +4 -1
  564. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  565. package/dist/esm/vite/replaceLoader.js +4 -1
  566. package/dist/esm/vite/replaceLoader.js.map +1 -1
  567. package/dist/esm/vite/replaceLoader.mjs.map +1 -1
  568. package/dist/esm/vite/replaceLoader.native.js.map +1 -1
  569. package/dist/esm/vite/resolveResponse.js +5 -1
  570. package/dist/esm/vite/resolveResponse.js.map +1 -1
  571. package/dist/esm/vite/resolveResponse.mjs.map +1 -1
  572. package/dist/esm/vite/resolveResponse.native.js.map +1 -1
  573. package/dist/esm/zero/subscribeToQuery.js.map +1 -1
  574. package/dist/esm/zero/subscribeToQuery.mjs.map +1 -1
  575. package/dist/esm/zero/subscribeToQuery.native.js.map +1 -1
  576. package/dist/esm/zero/useQueryZero.js +3 -1
  577. package/dist/esm/zero/useQueryZero.js.map +1 -1
  578. package/dist/esm/zero/useQueryZero.mjs.map +1 -1
  579. package/dist/esm/zero/useQueryZero.native.js.map +1 -1
  580. package/metro-entry-ctx.js +2 -1
  581. package/package.json +11 -10
  582. package/src/Root.tsx +14 -5
  583. package/src/babel-plugins/one-router-metro.ts +4 -1
  584. package/src/babel-plugins/remove-server-code.ts +15 -4
  585. package/src/cli/build.ts +33 -8
  586. package/src/cli/buildPage.ts +36 -6
  587. package/src/cli/generateRoutes.ts +3 -1
  588. package/src/cli/generateSitemap.test.ts +14 -4
  589. package/src/cli/generateSitemap.ts +7 -2
  590. package/src/cli/main.ts +3 -1
  591. package/src/cli/prebuild.ts +5 -1
  592. package/src/clientLoaderResolver.ts +4 -1
  593. package/src/config.ts +6 -2
  594. package/src/constants.ts +4 -2
  595. package/src/createApp.tsx +11 -3
  596. package/src/createHandleRequest.ts +17 -6
  597. package/src/fork/__tests__/getPathFromState.test.tsx +128 -107
  598. package/src/fork/__tests__/getStateFromPath.test.tsx +181 -95
  599. package/src/fork/_shared.ts +2 -1
  600. package/src/fork/extractPathFromURL.ts +2 -1
  601. package/src/fork/getPathFromState-mods.ts +8 -2
  602. package/src/fork/getPathFromState.ts +16 -5
  603. package/src/fork/getStateFromPath-mods.ts +13 -3
  604. package/src/fork/getStateFromPath.test.ts +25 -9
  605. package/src/fork/getStateFromPath.ts +21 -5
  606. package/src/fork/useBackButton.native.tsx +3 -1
  607. package/src/fork/useBackButton.tsx +3 -1
  608. package/src/fork/useDocumentTitle.tsx +4 -1
  609. package/src/fork/useLinking.native.ts +3 -1
  610. package/src/fork/useLinking.ts +9 -3
  611. package/src/fork/validatePathConfig.ts +6 -1
  612. package/src/head/Head.ios.tsx +3 -1
  613. package/src/hooks.tsx +4 -2
  614. package/src/index.ts +4 -1
  615. package/src/interfaces/router.ts +29 -13
  616. package/src/layouts/Tabs.tsx +5 -1
  617. package/src/layouts/withLayoutContext.tsx +24 -21
  618. package/src/link/Link.tsx +3 -1
  619. package/src/link/linking.ts +3 -1
  620. package/src/link/useLinkTo.tsx +3 -1
  621. package/src/link/useLoadedNavigation.ts +5 -1
  622. package/src/metro-config/getViteMetroPluginOptions.ts +20 -22
  623. package/src/polyfills-mobile.ts +7 -0
  624. package/src/router/Route.tsx +3 -1
  625. package/src/router/RouteInfoContext.tsx +3 -1
  626. package/src/router/filterRootHTML.ts +5 -1
  627. package/src/router/getLinkingConfig.ts +4 -1
  628. package/src/router/getNormalizedStatePath.tsx +4 -1
  629. package/src/router/getRoutes.ts +13 -4
  630. package/src/router/linkingConfig.ts +4 -1
  631. package/src/router/matchers.test.ts +6 -2
  632. package/src/router/matchers.ts +1 -1
  633. package/src/router/router.ts +26 -7
  634. package/src/router/useNavigation.ts +4 -1
  635. package/src/router/useScreens.tsx +27 -14
  636. package/src/router/useViteRoutes.tsx +2 -1
  637. package/src/router/utils/getNavigateAction.ts +4 -2
  638. package/src/server/createRoutesManifest.ts +4 -1
  639. package/src/server/getServerManifest.ts +7 -2
  640. package/src/server/oneServe.ts +37 -9
  641. package/src/server/setupBuildOptions.ts +2 -1
  642. package/src/server/staticHtmlFetcher.ts +3 -1
  643. package/src/server-render.tsx +4 -1
  644. package/src/typed-routes/getTypedRoutesDeclarationFile.ts +20 -4
  645. package/src/typed-routes/injectRouteHelpers.ts +12 -3
  646. package/src/types.ts +2 -2
  647. package/src/ui/Slot.tsx +4 -2
  648. package/src/ui/TabContext.tsx +3 -1
  649. package/src/ui/TabRouter.tsx +7 -2
  650. package/src/ui/TabTrigger.tsx +20 -3
  651. package/src/ui/Tabs.tsx +8 -2
  652. package/src/ui/common.tsx +19 -5
  653. package/src/useLoader.ts +9 -4
  654. package/src/utils/cleanUrl.ts +5 -1
  655. package/src/utils/url.ts +3 -1
  656. package/src/vercel/build/buildVercelOutputDirectory.ts +31 -10
  657. package/src/vercel/build/generate/createApiServerlessFunction.ts +11 -3
  658. package/src/vercel/build/generate/createSsrServerlessFunction.ts +10 -3
  659. package/src/vercel/build/getPathFromRoute.ts +4 -1
  660. package/src/views/Navigator.tsx +21 -9
  661. package/src/views/RootErrorBoundary.tsx +3 -1
  662. package/src/views/Screen.tsx +4 -1
  663. package/src/vite/loadConfig.ts +6 -2
  664. package/src/vite/one-server-only.tsx +10 -4
  665. package/src/vite/one.ts +61 -46
  666. package/src/vite/plugins/SSRCSSPlugin.ts +9 -2
  667. package/src/vite/plugins/clientTreeShakePlugin.ts +22 -6
  668. package/src/vite/plugins/fileSystemRouterPlugin.tsx +15 -3
  669. package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +2 -1
  670. package/src/vite/plugins/removeReactNativeWebAnimatedPlugin.ts +3 -1
  671. package/src/vite/plugins/virtualEntryPlugin.ts +28 -5
  672. package/src/vite/replaceLoader.ts +7 -1
  673. package/src/vite/resolveResponse.ts +6 -2
  674. package/src/vite/types.ts +6 -3
  675. package/src/zero/subscribeToQuery.ts +4 -1
  676. package/src/zero/types.ts +8 -9
  677. package/src/zero/useQuery.ts +1 -1
  678. package/src/zero/useQueryZero.ts +3 -1
  679. package/types/Root.d.ts.map +1 -1
  680. package/types/babel-plugins/one-router-metro.d.ts.map +1 -1
  681. package/types/babel-plugins/remove-server-code.d.ts.map +1 -1
  682. package/types/cli/build.d.ts.map +1 -1
  683. package/types/cli/buildPage.d.ts.map +1 -1
  684. package/types/cli/generateRoutes.d.ts.map +1 -1
  685. package/types/cli/generateSitemap.d.ts.map +1 -1
  686. package/types/cli/main.d.ts.map +1 -1
  687. package/types/cli/prebuild.d.ts.map +1 -1
  688. package/types/clientLoaderResolver.d.ts.map +1 -1
  689. package/types/config.d.ts.map +1 -1
  690. package/types/constants.d.ts.map +1 -1
  691. package/types/createApp.d.ts.map +1 -1
  692. package/types/createHandleRequest.d.ts +1 -1
  693. package/types/createHandleRequest.d.ts.map +1 -1
  694. package/types/fork/_shared.d.ts.map +1 -1
  695. package/types/fork/extractPathFromURL.d.ts.map +1 -1
  696. package/types/fork/getPathFromState.d.ts.map +1 -1
  697. package/types/fork/getStateFromPath-mods.d.ts.map +1 -1
  698. package/types/fork/getStateFromPath.d.ts.map +1 -1
  699. package/types/fork/useBackButton.d.ts.map +1 -1
  700. package/types/fork/useBackButton.native.d.ts.map +1 -1
  701. package/types/fork/useDocumentTitle.d.ts.map +1 -1
  702. package/types/fork/useLinking.d.ts.map +1 -1
  703. package/types/fork/useLinking.native.d.ts.map +1 -1
  704. package/types/fork/validatePathConfig.d.ts.map +1 -1
  705. package/types/head/Head.ios.d.ts.map +1 -1
  706. package/types/hooks.d.ts +2 -2
  707. package/types/hooks.d.ts.map +1 -1
  708. package/types/index.d.ts +1 -1
  709. package/types/index.d.ts.map +1 -1
  710. package/types/interfaces/router.d.ts.map +1 -1
  711. package/types/layouts/Tabs.d.ts.map +1 -1
  712. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  713. package/types/link/Link.d.ts.map +1 -1
  714. package/types/link/linking.d.ts.map +1 -1
  715. package/types/link/useLinkTo.d.ts.map +1 -1
  716. package/types/link/useLoadedNavigation.d.ts.map +1 -1
  717. package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
  718. package/types/polyfills-mobile.d.ts.map +1 -1
  719. package/types/router/Route.d.ts.map +1 -1
  720. package/types/router/RouteInfoContext.d.ts.map +1 -1
  721. package/types/router/filterRootHTML.d.ts.map +1 -1
  722. package/types/router/getNormalizedStatePath.d.ts.map +1 -1
  723. package/types/router/getRoutes.d.ts.map +1 -1
  724. package/types/router/linkingConfig.d.ts.map +1 -1
  725. package/types/router/router.d.ts.map +1 -1
  726. package/types/router/useNavigation.d.ts.map +1 -1
  727. package/types/router/useScreens.d.ts.map +1 -1
  728. package/types/router/useViteRoutes.d.ts.map +1 -1
  729. package/types/router/utils/getNavigateAction.d.ts.map +1 -1
  730. package/types/server/createRoutesManifest.d.ts.map +1 -1
  731. package/types/server/getServerManifest.d.ts.map +1 -1
  732. package/types/server/oneServe.d.ts.map +1 -1
  733. package/types/server/setupBuildOptions.d.ts.map +1 -1
  734. package/types/server/staticHtmlFetcher.d.ts.map +1 -1
  735. package/types/server-render.d.ts.map +1 -1
  736. package/types/types.d.ts +2 -2
  737. package/types/ui/Slot.d.ts.map +1 -1
  738. package/types/ui/TabContext.d.ts.map +1 -1
  739. package/types/ui/TabRouter.d.ts.map +1 -1
  740. package/types/ui/TabTrigger.d.ts.map +1 -1
  741. package/types/ui/Tabs.d.ts.map +1 -1
  742. package/types/ui/common.d.ts.map +1 -1
  743. package/types/useLoader.d.ts.map +1 -1
  744. package/types/utils/cleanUrl.d.ts.map +1 -1
  745. package/types/utils/url.d.ts.map +1 -1
  746. package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -1
  747. package/types/vercel/build/generate/createApiServerlessFunction.d.ts.map +1 -1
  748. package/types/vercel/build/generate/createSsrServerlessFunction.d.ts.map +1 -1
  749. package/types/vercel/build/getPathFromRoute.d.ts.map +1 -1
  750. package/types/views/Navigator.d.ts +1 -1
  751. package/types/views/Navigator.d.ts.map +1 -1
  752. package/types/views/RootErrorBoundary.d.ts.map +1 -1
  753. package/types/views/Screen.d.ts +1 -1
  754. package/types/views/Screen.d.ts.map +1 -1
  755. package/types/vite/loadConfig.d.ts.map +1 -1
  756. package/types/vite/one-server-only.d.ts +2 -2
  757. package/types/vite/one-server-only.d.ts.map +1 -1
  758. package/types/vite/one.d.ts.map +1 -1
  759. package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
  760. package/types/vite/plugins/clientTreeShakePlugin.d.ts.map +1 -1
  761. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  762. package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
  763. package/types/vite/plugins/removeReactNativeWebAnimatedPlugin.d.ts.map +1 -1
  764. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  765. package/types/vite/replaceLoader.d.ts +2 -2
  766. package/types/vite/replaceLoader.d.ts.map +1 -1
  767. package/types/vite/resolveResponse.d.ts.map +1 -1
  768. package/types/vite/types.d.ts +1 -1
  769. package/types/vite/types.d.ts.map +1 -1
  770. package/types/zero/subscribeToQuery.d.ts.map +1 -1
  771. package/types/zero/types.d.ts.map +1 -1
  772. package/types/zero/useQueryZero.d.ts.map +1 -1
  773. package/vendor/react/cjs/react-jsx-dev-runtime.development.js +1230 -1078
  774. package/vendor/react/cjs/react-jsx-dev-runtime.production.min.js +4 -1
  775. package/vendor/react/cjs/react-jsx-dev-runtime.profiling.min.js +4 -1
  776. package/vendor/react/cjs/react-jsx-runtime.development.js +1244 -1092
  777. package/vendor/react/cjs/react-jsx-runtime.production.min.js +23 -2
  778. package/vendor/react/cjs/react-jsx-runtime.profiling.min.js +23 -2
  779. package/vendor/react/cjs/react.development.js +2604 -2324
  780. package/vendor/react/cjs/react.production.min.js +360 -17
  781. package/vendor/react/cjs/react.shared-subset.development.js +9 -7
  782. package/vendor/react/cjs/react.shared-subset.production.min.js +2 -1
  783. package/vendor/react/index.js +3 -3
  784. package/vendor/react/jsx-dev-runtime.js +3 -3
  785. package/vendor/react/jsx-runtime.js +3 -3
  786. package/vendor/react/react.shared-subset.js +3 -3
  787. package/vendor/react/umd/react.development.js +1430 -1152
  788. package/vendor/react/umd/react.production.min.js +657 -22
  789. package/vendor/react/umd/react.profiling.min.js +657 -22
  790. package/vendor/react-dom/cjs/react-dom-server-legacy.browser.development.js +7183 -5938
  791. package/vendor/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +1941 -84
  792. package/vendor/react-dom/cjs/react-dom-server-legacy.node.development.js +7239 -5986
  793. package/vendor/react-dom/cjs/react-dom-server-legacy.node.production.min.js +2055 -92
  794. package/vendor/react-dom/cjs/react-dom-server.browser.development.js +7146 -5924
  795. package/vendor/react-dom/cjs/react-dom-server.browser.production.min.js +1997 -87
  796. package/vendor/react-dom/cjs/react-dom-server.node.development.js +7210 -5976
  797. package/vendor/react-dom/cjs/react-dom-server.node.production.min.js +2075 -93
  798. package/vendor/react-dom/cjs/react-dom-test-utils.development.js +1700 -1487
  799. package/vendor/react-dom/cjs/react-dom-test-utils.production.min.js +653 -31
  800. package/vendor/react-dom/cjs/react-dom.development.js +29568 -25248
  801. package/vendor/react-dom/cjs/react-dom.production.min.js +8208 -310
  802. package/vendor/react-dom/cjs/react-dom.profiling.min.js +8750 -343
  803. package/vendor/react-dom/client.js +15 -15
  804. package/vendor/react-dom/index.js +8 -8
  805. package/vendor/react-dom/profiling.js +8 -8
  806. package/vendor/react-dom/server.browser.js +12 -12
  807. package/vendor/react-dom/server.js +2 -2
  808. package/vendor/react-dom/server.node.js +12 -12
  809. package/vendor/react-dom/test-utils.js +3 -3
  810. package/vendor/react-dom/umd/react-dom-server-legacy.browser.development.js +3735 -2502
  811. package/vendor/react-dom/umd/react-dom-server-legacy.browser.production.min.js +1964 -66
  812. package/vendor/react-dom/umd/react-dom-server.browser.development.js +3724 -2511
  813. package/vendor/react-dom/umd/react-dom-server.browser.production.min.js +2017 -67
  814. package/vendor/react-dom/umd/react-dom-test-utils.development.js +777 -563
  815. package/vendor/react-dom/umd/react-dom-test-utils.production.min.js +678 -24
  816. package/vendor/react-dom/umd/react-dom.development.js +15978 -11854
  817. package/vendor/react-dom/umd/react-dom.production.min.js +8328 -256
  818. package/vendor/react-dom/umd/react-dom.profiling.min.js +8868 -274
@@ -165,30 +165,28 @@ export function getViteMetroPluginOptions({
165
165
  [
166
166
  'babel-plugin-module-resolver',
167
167
  {
168
- alias: {
169
- // "vite-tsconfig-paths" for Metro
170
- ...Object.fromEntries(
171
- Object.entries(tsconfigPathsConfigLoadResult.paths).map(([k, v]) => {
172
- const key = (() => {
173
- if (k.endsWith('/*')) {
174
- return k.replace(/\/\*$/, '')
175
- }
176
-
177
- // If the key does not end with "/*", only alias exact matches.
178
- // Ref: https://www.npmjs.com/package/babel-plugin-module-resolver/v/3.0.0#regular-expression-alias
179
- return `${k}$`
180
- })()
181
-
182
- let value = v[0].replace(/\/\*$/, '')
183
-
184
- if (!value.startsWith('./')) {
185
- value = `./${value}`
168
+ // "vite-tsconfig-paths" for Metro
169
+ alias: Object.fromEntries(
170
+ Object.entries(tsconfigPathsConfigLoadResult.paths).map(([k, v]) => {
171
+ const key = (() => {
172
+ if (k.endsWith('/*')) {
173
+ return k.replace(/\/\*$/, '')
186
174
  }
187
175
 
188
- return [key, value]
189
- })
190
- ),
191
- },
176
+ // If the key does not end with "/*", only alias exact matches.
177
+ // Ref: https://www.npmjs.com/package/babel-plugin-module-resolver/v/3.0.0#regular-expression-alias
178
+ return `${k}$`
179
+ })()
180
+
181
+ let value = v[0].replace(/\/\*$/, '')
182
+
183
+ if (!value.startsWith('./')) {
184
+ value = `./${value}`
185
+ }
186
+
187
+ return [key, value]
188
+ })
189
+ ),
192
190
  },
193
191
  ],
194
192
  [
@@ -3,6 +3,13 @@
3
3
 
4
4
  globalThis['global'] = globalThis
5
5
 
6
+ // --------------- TextDecoder -------------------
7
+ // for viem and other web3/crypto packages that need TextDecoder on React Native
8
+
9
+ import { TextDecoder as TextDecoderPolyfill } from '@bacons/text-decoder'
10
+
11
+ globalThis['TextDecoder'] ||= TextDecoderPolyfill
12
+
6
13
  // --------------- structuredClone -------------------
7
14
 
8
15
  import structuredClone from '@ungap/structured-clone'
@@ -46,7 +46,9 @@ export type RouteNode = {
46
46
  middlewares?: RouteNode[]
47
47
  }
48
48
 
49
- export const RouteParamsContext = createContext<Record<string, string | undefined> | undefined>({})
49
+ export const RouteParamsContext = createContext<
50
+ Record<string, string | undefined> | undefined
51
+ >({})
50
52
 
51
53
  const CurrentRouteContext = React.createContext<RouteNode | null>(null)
52
54
 
@@ -56,7 +56,9 @@ export function RouteInfoContextProvider({ children }: { children: React.ReactNo
56
56
  currentStateRef.current = currentState
57
57
 
58
58
  return (
59
- <RouteInfoContext.Provider value={currentState ? lazilyCalculatedRouteInfo.current : undefined}>
59
+ <RouteInfoContext.Provider
60
+ value={currentState ? lazilyCalculatedRouteInfo.current : undefined}
61
+ >
60
62
  {children}
61
63
  </RouteInfoContext.Provider>
62
64
  )
@@ -70,7 +70,11 @@ export function filterRootHTML(el: React.ReactNode): FoundRootHTML {
70
70
  ) {
71
71
  // filter out HTML elements on native (e.g. <div>, <meta>)
72
72
  // preserve children so <div><Slot/></div> renders <Slot/> instead of nothing
73
- if (element.props && typeof element.props === 'object' && 'children' in element.props) {
73
+ if (
74
+ element.props &&
75
+ typeof element.props === 'object' &&
76
+ 'children' in element.props
77
+ ) {
74
78
  return traverse(element.props.children as React.ReactNode)
75
79
  }
76
80
  return null
@@ -54,7 +54,10 @@ export function getLinkingConfig(routes: RouteNode, metaOnly = true): OneLinking
54
54
  export const stateCache = new Map<string, any>()
55
55
 
56
56
  /** We can reduce work by memoizing the state by the pathname. This only works because the options (linking config) theoretically never change. */
57
- function getStateFromPathMemoized(path: string, options: Parameters<typeof getStateFromPath>[1]) {
57
+ function getStateFromPathMemoized(
58
+ path: string,
59
+ options: Parameters<typeof getStateFromPath>[1]
60
+ ) {
58
61
  const cached = stateCache.get(path)
59
62
  if (cached) {
60
63
  return cached
@@ -24,7 +24,10 @@ export function getNormalizedStatePath(
24
24
  const [pathname] = statePath.split('?')
25
25
  return {
26
26
  // Strip empty path at the start
27
- segments: stripBaseUrl(pathname, baseUrl).split('/').filter(Boolean).map(decodeURIComponent),
27
+ segments: stripBaseUrl(pathname, baseUrl)
28
+ .split('/')
29
+ .filter(Boolean)
30
+ .map(decodeURIComponent),
28
31
  // TODO: This is not efficient, we should generate based on the state instead
29
32
  // of converting to string then back to object
30
33
  params: Object.entries(params).reduce((prev, [key, value]) => {
@@ -350,10 +350,14 @@ function getFileMeta(key: string, options: Options) {
350
350
  const isLayout = filenameWithoutExtensions.startsWith('_layout')
351
351
  const isMiddleware = filenameWithoutExtensions.startsWith('_middleware')
352
352
 
353
- const [_fullname, renderModeFound] = filename.match(/\+(api|ssg|ssr|spa)\.(\w+\.)?[jt]sx?$/) || []
353
+ const [_fullname, renderModeFound] =
354
+ filename.match(/\+(api|ssg|ssr|spa)\.(\w+\.)?[jt]sx?$/) || []
354
355
  const renderMode = renderModeFound as 'api' | One.RouteRenderMode | undefined
355
356
 
356
- if (filenameWithoutExtensions.startsWith('(') && filenameWithoutExtensions.endsWith(')')) {
357
+ if (
358
+ filenameWithoutExtensions.startsWith('(') &&
359
+ filenameWithoutExtensions.endsWith(')')
360
+ ) {
357
361
  throw new Error(`Invalid route ./${key}. Routes cannot end with '(group)' syntax`)
358
362
  }
359
363
 
@@ -440,7 +444,10 @@ export function getIgnoreList(options?: Options) {
440
444
  *
441
445
  * /(a,b)/(c,d)/e.tsx => new Set(['a/c/e.tsx', 'a/d/e.tsx', 'b/c/e.tsx', 'b/d/e.tsx'])
442
446
  */
443
- export function extrapolateGroups(key: string, keys: Set<string> = new Set()): Set<string> {
447
+ export function extrapolateGroups(
448
+ key: string,
449
+ keys: Set<string> = new Set()
450
+ ): Set<string> {
444
451
  const match = matchArrayGroupName(key)
445
452
 
446
453
  if (!match) {
@@ -451,7 +458,9 @@ export function extrapolateGroups(key: string, keys: Set<string> = new Set()): S
451
458
  const groupsSet = new Set(groups)
452
459
 
453
460
  if (groupsSet.size !== groups.length) {
454
- throw new Error(`Array syntax cannot contain duplicate group name "${groups}" in "${key}".`)
461
+ throw new Error(
462
+ `Array syntax cannot contain duplicate group name "${groups}" in "${key}".`
463
+ )
455
464
  }
456
465
 
457
466
  if (groups.length === 1) {
@@ -1,5 +1,8 @@
1
1
  import type { OneRouter } from '../interfaces/router'
2
- import { getLinkingConfig as createLinkingConfig, type OneLinkingOptions } from './getLinkingConfig'
2
+ import {
3
+ getLinkingConfig as createLinkingConfig,
4
+ type OneLinkingOptions,
5
+ } from './getLinkingConfig'
3
6
  import type { RouteNode } from './Route'
4
7
 
5
8
  let linkingConfig: OneLinkingOptions | undefined
@@ -110,11 +110,15 @@ describe(matchArrayGroupName, () => {
110
110
  expect(matchArrayGroupName('leading/(foo,bar)/(fruit,apple)')).toEqual('foo,bar')
111
111
  expect(matchArrayGroupName('(leading)/(foo,bar)')).toEqual('foo,bar')
112
112
  expect(matchArrayGroupName('(leading)/(foo,bar)/trailing)')).toEqual('foo,bar')
113
- expect(matchArrayGroupName('(leading)/((foo),(bar))/trailing)')).toEqual('(foo),(bar)')
113
+ expect(matchArrayGroupName('(leading)/((foo),(bar))/trailing)')).toEqual(
114
+ '(foo),(bar)'
115
+ )
114
116
  })
115
117
  it.skip(`should only match the first group with array group syntax`, () => {
116
118
  expect(matchArrayGroupName('(leading)/(foo,bar)/(fruit,apple)')).toEqual('foo,bar')
117
- expect(matchArrayGroupName('(leading)/((foo),bar)/(fruit,apple)')).toEqual('(foo),bar')
119
+ expect(matchArrayGroupName('(leading)/((foo),bar)/(fruit,apple)')).toEqual(
120
+ '(foo),bar'
121
+ )
118
122
  expect(matchArrayGroupName('(leading)/(foo,bar)/((fruit),apple)')).toEqual('foo,bar')
119
123
  })
120
124
  })
@@ -28,7 +28,7 @@ export function matchDeepDynamicRouteName(name: string): string | undefined {
28
28
 
29
29
  /** Test `/` -> `page` */
30
30
  export function testNotFound(name: string): boolean {
31
- return /\+not-found$/.test(name)
31
+ return name.endsWith('+not-found')
32
32
  }
33
33
 
34
34
  /** Match `(page)` -> `page` */
@@ -4,7 +4,10 @@
4
4
  * the best decision.
5
5
  */
6
6
 
7
- import { type NavigationContainerRefWithCurrent, StackActions } from '@react-navigation/native'
7
+ import {
8
+ type NavigationContainerRefWithCurrent,
9
+ StackActions,
10
+ } from '@react-navigation/native'
8
11
  import * as Linking from 'expo-linking'
9
12
  import {
10
13
  type ComponentType,
@@ -77,7 +80,9 @@ export function initialize(
77
80
  const prefix = indent + (isLast ? '└─ ' : '├─ ')
78
81
  const childIndent = indent + (isLast ? ' ' : '│ ')
79
82
 
80
- const dynamicBadge = node.dynamic ? ` [${node.dynamic.map((d) => d.name).join(', ')}]` : ''
83
+ const dynamicBadge = node.dynamic
84
+ ? ` [${node.dynamic.map((d) => d.name).join(', ')}]`
85
+ : ''
81
86
  const typeBadge = node.type !== 'layout' ? ` (${node.type})` : ''
82
87
  const routeName = node.route || '/'
83
88
 
@@ -360,13 +365,21 @@ function syncStoreRootState() {
360
365
 
361
366
  export function useStoreRootState() {
362
367
  syncStoreRootState()
363
- const state = useSyncExternalStore(subscribeToRootState, rootStateSnapshot, rootStateSnapshot)
368
+ const state = useSyncExternalStore(
369
+ subscribeToRootState,
370
+ rootStateSnapshot,
371
+ rootStateSnapshot
372
+ )
364
373
  return useDeferredValue(state)
365
374
  }
366
375
 
367
376
  export function useStoreRouteInfo() {
368
377
  syncStoreRootState()
369
- const state = useSyncExternalStore(subscribeToRootState, routeInfoSnapshot, routeInfoSnapshot)
378
+ const state = useSyncExternalStore(
379
+ subscribeToRootState,
380
+ routeInfoSnapshot,
381
+ routeInfoSnapshot
382
+ )
370
383
  return useDeferredValue(state)
371
384
  }
372
385
 
@@ -388,7 +401,7 @@ async function doPreload(href: string) {
388
401
  const [_preload, cssPreloadModule, loader] = await Promise.all([
389
402
  dynamicImport(preloadPath),
390
403
  dynamicImport(cssPreloadPath)?.catch(() => null) ?? Promise.resolve(null), // graceful fail if no CSS preload
391
- dynamicImport(loaderPath),
404
+ dynamicImport(loaderPath)?.catch(() => null) ?? Promise.resolve(null), // graceful fail if no loader file
392
405
  preloadRouteModules(href),
393
406
  ])
394
407
 
@@ -445,7 +458,11 @@ export function preloadRoute(href: string, injectCSS = false): Promise<any> | un
445
458
  return preloadingLoader[href]
446
459
  }
447
460
 
448
- export async function linkTo(href: string, event?: string, options?: OneRouter.LinkToOptions) {
461
+ export async function linkTo(
462
+ href: string,
463
+ event?: string,
464
+ options?: OneRouter.LinkToOptions
465
+ ) {
449
466
  if (process.env.ONE_DEBUG_ROUTER) {
450
467
  console.info(`[one] 🔗 ${event || 'NAVIGATE'} ${href}`)
451
468
  }
@@ -513,7 +530,9 @@ export async function linkTo(href: string, event?: string, options?: OneRouter.L
513
530
  const state = linking.getStateFromPath!(href, linking.config)
514
531
 
515
532
  if (!state || state.routes.length === 0) {
516
- console.error('Could not generate a valid navigation state for the given path: ' + href)
533
+ console.error(
534
+ 'Could not generate a valid navigation state for the given path: ' + href
535
+ )
517
536
  console.error(`linking.config`, linking.config)
518
537
  console.error(`routes`, getSortedRoutes())
519
538
  return
@@ -44,7 +44,10 @@ export function useNavigation<T = NavigationProp<ReactNavigation.RootParamList>>
44
44
  return navigation
45
45
  }
46
46
 
47
- export function resolveParentId(contextKey: string, parentId?: string | null): string | null {
47
+ export function resolveParentId(
48
+ contextKey: string,
49
+ parentId?: string | null
50
+ ): string | null {
48
51
  if (!parentId) {
49
52
  return null
50
53
  }
@@ -34,15 +34,15 @@ export const { Screen, Group } = createNavigatorFactory({} as any)()
34
34
  // so hydration sees identical content without 100KB+ JSON payload.
35
35
  const cachedInlineCSSElements: React.ReactNode[] =
36
36
  typeof document !== 'undefined'
37
- ? Array.from(document.querySelectorAll<HTMLStyleElement>('style[id^="__one_css_"]')).map(
38
- (el, i) => (
39
- <style
40
- key={`inline-css-${i}`}
41
- id={el.id}
42
- dangerouslySetInnerHTML={{ __html: el.innerHTML }}
43
- />
44
- )
45
- )
37
+ ? Array.from(
38
+ document.querySelectorAll<HTMLStyleElement>('style[id^="__one_css_"]')
39
+ ).map((el, i) => (
40
+ <style
41
+ key={`inline-css-${i}`}
42
+ id={el.id}
43
+ dangerouslySetInnerHTML={{ __html: el.innerHTML }}
44
+ />
45
+ ))
46
46
  : []
47
47
 
48
48
  export type ScreenProps<
@@ -87,7 +87,9 @@ function getSortedChildren(
87
87
  const ordered = order
88
88
  .map(({ name, redirect, initialParams, listeners, options, getId }) => {
89
89
  if (!entries.length) {
90
- console.warn(`[Layout children]: Too many screens defined. Route "${name}" is extraneous.`)
90
+ console.warn(
91
+ `[Layout children]: Too many screens defined. Route "${name}" is extraneous.`
92
+ )
91
93
  return null
92
94
  }
93
95
  const matchIndex = entries.findIndex((child) => child.route === name)
@@ -201,7 +203,10 @@ export function getQualifiedRouteComponent(value: RouteNode) {
201
203
  const out = Component(props, ref)
202
204
 
203
205
  const { children, bodyProps, head, htmlProps } = filterRootHTML(out)
204
- const { children: headChildren, ...headProps } = (head?.props || {}) as Record<string, any>
206
+ const { children: headChildren, ...headProps } = (head?.props || {}) as Record<
207
+ string,
208
+ any
209
+ >
205
210
  const serverContext = useServerContext()
206
211
 
207
212
  // let finalChildren = <Suspense fallback={null}>{children}</Suspense>
@@ -232,7 +237,9 @@ export function getQualifiedRouteComponent(value: RouteNode) {
232
237
  />
233
238
  ))
234
239
  : cachedInlineCSSElements
235
- : serverContext?.css?.map((file) => <link key={file} rel="stylesheet" href={file} />)}
240
+ : serverContext?.css?.map((file) => (
241
+ <link key={file} rel="stylesheet" href={file} />
242
+ ))}
236
243
  <ServerContextScript />
237
244
  {headChildren}
238
245
  </head>
@@ -264,7 +271,10 @@ export function getQualifiedRouteComponent(value: RouteNode) {
264
271
  // i tried a lot of things, but didn't find the root cause, but native needs suspense or
265
272
  // else it hits an error about no suspense boundary being set
266
273
 
267
- if (process.env.TAMAGUI_TARGET === 'native' || process.env.ONE_SUSPEND_ROUTES === '1') {
274
+ if (
275
+ process.env.TAMAGUI_TARGET === 'native' ||
276
+ process.env.ONE_SUSPEND_ROUTES === '1'
277
+ ) {
268
278
  return <Suspense fallback={null}>{children}</Suspense>
269
279
  }
270
280
  return children
@@ -343,7 +353,10 @@ export function createGetIdForRoute(
343
353
  }
344
354
  }
345
355
 
346
- function routeToScreen(route: RouteNode, { options, ...props }: Partial<ScreenProps> = {}) {
356
+ function routeToScreen(
357
+ route: RouteNode,
358
+ { options, ...props }: Partial<ScreenProps> = {}
359
+ ) {
347
360
  return (
348
361
  <Screen
349
362
  // Users can override the screen getId function.
@@ -129,7 +129,8 @@ export async function preloadRouteModules(href: string): Promise<void> {
129
129
  (normalizedHref !== '' && routePath === normalizedHref.split('/')[0]) // top-level match
130
130
 
131
131
  // also check dynamic route patterns like docs/[slug]
132
- const isDynamicMatch = routePath.includes('[') && matchDynamicRoute(routePath, normalizedHref)
132
+ const isDynamicMatch =
133
+ routePath.includes('[') && matchDynamicRoute(routePath, normalizedHref)
133
134
 
134
135
  if ((isStaticMatch || isDynamicMatch) && typeof globbed[key] === 'function') {
135
136
  promises.push(
@@ -47,7 +47,8 @@ export function getNavigateAction(
47
47
  !childState ||
48
48
  !nextNavigationState ||
49
49
  (dynamicMatch &&
50
- actionStateRoute.params?.[dynamicMatch.name] !== stateRoute.params?.[dynamicMatch.name])
50
+ actionStateRoute.params?.[dynamicMatch.name] !==
51
+ stateRoute.params?.[dynamicMatch.name])
51
52
 
52
53
  if (didActionAndCurrentStateDiverge) {
53
54
  break
@@ -71,7 +72,8 @@ export function getNavigateAction(
71
72
  payload.screen = actionStateRoute.name
72
73
  payload.params = { ...actionStateRoute.params }
73
74
 
74
- actionStateRoute = actionStateRoute.state?.routes[actionStateRoute.state?.routes.length - 1]
75
+ actionStateRoute =
76
+ actionStateRoute.state?.routes[actionStateRoute.state?.routes.length - 1]
75
77
 
76
78
  payload.params ??= {}
77
79
  payload = payload.params
@@ -25,7 +25,10 @@ function createMockModuleWithContext(map: string[] = []) {
25
25
  return contextModule as One.RouteContext
26
26
  }
27
27
 
28
- export function createRoutesManifest(paths: string[], options: Options): RoutesManifest | null {
28
+ export function createRoutesManifest(
29
+ paths: string[],
30
+ options: Options
31
+ ): RoutesManifest | null {
29
32
  const routeTree = getRoutes(createMockModuleWithContext(paths), {
30
33
  ...options,
31
34
  preserveApiRoutes: true,
@@ -85,7 +85,9 @@ export function getServerManifest(route: RouteNode): OneRouterServerManifestV1 {
85
85
  for (const [path, route] of flat) {
86
86
  if (pathToRoute[path]) {
87
87
  console.warn(`\n[one] ❌ Duplicate routes error`)
88
- console.warn(` Multiple routes at the same path! One route will always win over the other.`)
88
+ console.warn(
89
+ ` Multiple routes at the same path! One route will always win over the other.`
90
+ )
89
91
  console.warn(` path: ${path}`)
90
92
  console.warn(` first route: ${pathToRoute[path].contextKey}`)
91
93
  console.warn(` second route: ${route.contextKey}\n`)
@@ -141,7 +143,10 @@ function getGeneratedNamedRouteRegex(
141
143
  }
142
144
  }
143
145
 
144
- function getRouteEntry(normalizedRoute: string, node: RouteNode): OneRouterServerManifestV1Route {
146
+ function getRouteEntry(
147
+ normalizedRoute: string,
148
+ node: RouteNode
149
+ ): OneRouterServerManifestV1Route {
145
150
  const result = getPathMeta(normalizedRoute)
146
151
  return {
147
152
  file: node.contextKey,
@@ -42,9 +42,8 @@ export async function oneServe(
42
42
  lazyRoutes?: LazyRoutes
43
43
  }
44
44
  ) {
45
- const { resolveAPIRoute, resolveLoaderRoute, resolvePageRoute } = await import(
46
- '../createHandleRequest'
47
- )
45
+ const { resolveAPIRoute, resolveLoaderRoute, resolvePageRoute } =
46
+ await import('../createHandleRequest')
48
47
  const { isResponse } = await import('../utils/isResponse')
49
48
  const { isStatusRedirect } = await import('../utils/isStatus')
50
49
 
@@ -110,7 +109,12 @@ export async function oneServe(
110
109
  const fileName = useRolldown
111
110
  ? route.page.slice(1)
112
111
  : route.page.slice(1).replace(/\[/g, '_').replace(/\]/g, '_')
113
- const apiFile = join(process.cwd(), 'dist', 'api', fileName + (apiCJS ? '.cjs' : '.js'))
112
+ const apiFile = join(
113
+ process.cwd(),
114
+ 'dist',
115
+ 'api',
116
+ fileName + (apiCJS ? '.cjs' : '.js')
117
+ )
114
118
  return await import(apiFile)
115
119
  },
116
120
 
@@ -159,12 +163,24 @@ export async function oneServe(
159
163
  const exported = options?.lazyRoutes?.pages?.[route.file]
160
164
  ? await options.lazyRoutes.pages[route.file]()
161
165
  : await import(toAbsolute(buildInfo.serverJsPath))
162
- const loaderData = await exported.loader?.(loaderProps)
166
+
167
+ let loaderData
168
+ try {
169
+ loaderData = await exported.loader?.(loaderProps)
170
+ } catch (loaderErr) {
171
+ // Handle thrown responses (e.g., redirect) from loader
172
+ if (isResponse(loaderErr)) {
173
+ return loaderErr
174
+ }
175
+ throw loaderErr
176
+ }
163
177
 
164
178
  const headers = new Headers()
165
179
  headers.set('content-type', 'text/html')
166
180
 
167
- const rendered = await (await getRender())({
181
+ const rendered = await (
182
+ await getRender()
183
+ )({
168
184
  mode: route.type,
169
185
  loaderData,
170
186
  loaderProps,
@@ -181,6 +197,11 @@ export async function oneServe(
181
197
  status: route.isNotFound ? 404 : 200,
182
198
  })
183
199
  } catch (err) {
200
+ // Handle thrown responses (e.g., redirect) that weren't caught above
201
+ if (isResponse(err)) {
202
+ return err
203
+ }
204
+
184
205
  console.error(`[one] Error rendering SSR route ${route.file}
185
206
 
186
207
  ${err?.['stack'] ?? err}
@@ -218,12 +239,17 @@ url: ${url}`)
218
239
  },
219
240
  }
220
241
 
221
- function createHonoHandler(route: RouteInfoCompiled): MiddlewareHandler<BlankEnv, never, {}> {
242
+ function createHonoHandler(
243
+ route: RouteInfoCompiled
244
+ ): MiddlewareHandler<BlankEnv, never, {}> {
222
245
  return async (context, next) => {
223
246
  try {
224
247
  const request = context.req.raw
225
248
 
226
- if (route.page.endsWith('/+not-found') || Reflect.ownKeys(route.routeKeys).length > 0) {
249
+ if (
250
+ route.page.endsWith('/+not-found') ||
251
+ Reflect.ownKeys(route.routeKeys).length > 0
252
+ ) {
227
253
  // Static assets should have the highest priority - which is the behavior of the dev server.
228
254
  // But if we handle every matching static asset here, it seems to break some of the static routes.
229
255
  // So we only handle it if there's a matching not-found or dynamic route, to prevent One from taking over the static asset.
@@ -262,7 +288,9 @@ url: ${url}`)
262
288
  switch (route.type) {
263
289
  case 'api': {
264
290
  if (debugRouter) {
265
- console.info(`[one] ⚡ ${url.pathname} → matched API route: ${route.page}`)
291
+ console.info(
292
+ `[one] ⚡ ${url.pathname} → matched API route: ${route.page}`
293
+ )
266
294
  }
267
295
  return resolveAPIRoute(requestHandlers, request, url, route)
268
296
  }
@@ -3,5 +3,6 @@ import type { One } from '../vite/types'
3
3
  export function setupBuildInfo(buildInfo: One.BuildInfo) {
4
4
  // ensure cache key matches build
5
5
  process.env.ONE_CACHE_KEY ||= buildInfo.constants.CACHE_KEY
6
- process.env.ONE_DEFAULT_RENDER_MODE ||= buildInfo.oneOptions?.web?.defaultRenderMode || 'ssg'
6
+ process.env.ONE_DEFAULT_RENDER_MODE ||=
7
+ buildInfo.oneOptions?.web?.defaultRenderMode || 'ssg'
7
8
  }
@@ -1,7 +1,9 @@
1
1
  // Global function for fetching static HTML in Workers (set per-request)
2
2
  let _fetchStaticHtml: ((path: string) => Promise<string | null>) | null = null
3
3
 
4
- export function setFetchStaticHtml(fn: ((path: string) => Promise<string | null>) | null) {
4
+ export function setFetchStaticHtml(
5
+ fn: ((path: string) => Promise<string | null>) | null
6
+ ) {
5
7
  _fetchStaticHtml = fn
6
8
  }
7
9
 
@@ -16,7 +16,10 @@ export type RenderToStringOptions = {
16
16
  deferredPreloads?: string[]
17
17
  }
18
18
 
19
- export const renderToString = async (app: React.ReactElement, options: RenderToStringOptions) => {
19
+ export const renderToString = async (
20
+ app: React.ReactElement,
21
+ options: RenderToStringOptions
22
+ ) => {
20
23
  const readableStream = await ReactDOMServer.renderToReadableStream(app, {
21
24
  // Only pass critical scripts to bootstrapModules
22
25
  // These generate both modulepreload links AND async script tags
@@ -106,7 +106,9 @@ function extractParams(routePath: string): Array<{ name: string; isCatchAll: boo
106
106
  * Generate inline params type for better intellisense
107
107
  * e.g., [{ name: "slug", isCatchAll: false }] -> "{ slug: string }"
108
108
  */
109
- function generateInlineParamsType(params: Array<{ name: string; isCatchAll: boolean }>): string {
109
+ function generateInlineParamsType(
110
+ params: Array<{ name: string; isCatchAll: boolean }>
111
+ ): string {
110
112
  const entries = params.map((p) => {
111
113
  const type = p.isCatchAll ? 'string[]' : 'string'
112
114
  return `${p.name}: ${type}`
@@ -126,12 +128,24 @@ function walkRouteNode(
126
128
  ) {
127
129
  if (!routeNode) return
128
130
 
129
- addRouteNode(routeNode, parentRoutePath, staticRoutes, dynamicRoutes, dynamicRouteContextKeys)
131
+ addRouteNode(
132
+ routeNode,
133
+ parentRoutePath,
134
+ staticRoutes,
135
+ dynamicRoutes,
136
+ dynamicRouteContextKeys
137
+ )
130
138
 
131
139
  parentRoutePath = `${removeSupportedExtensions(`${parentRoutePath}/${routeNode.route}`).replace(/\/?index$/, '')}` // replace /index with /
132
140
 
133
141
  for (const child of routeNode.children) {
134
- walkRouteNode(child, parentRoutePath, staticRoutes, dynamicRoutes, dynamicRouteContextKeys)
142
+ walkRouteNode(
143
+ child,
144
+ parentRoutePath,
145
+ staticRoutes,
146
+ dynamicRoutes,
147
+ dynamicRouteContextKeys
148
+ )
135
149
  }
136
150
  }
137
151
 
@@ -183,7 +197,9 @@ const setToUnionType = <T>(set: Set<T>) => {
183
197
  }
184
198
 
185
199
  function generateCombinations(pathname) {
186
- const groups = pathname.split('/').filter((part) => part.startsWith('(') && part.endsWith(')'))
200
+ const groups = pathname
201
+ .split('/')
202
+ .filter((part) => part.startsWith('(') && part.endsWith(')'))
187
203
  const combinations: string[] = []
188
204
 
189
205
  function generate(currentIndex, currentPath) {