one 1.2.47 → 1.2.49
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.
- package/dist/cjs/Root.js +6 -1
- package/dist/cjs/Root.js.map +1 -1
- package/dist/cjs/Root.native.js.map +1 -1
- package/dist/cjs/babel-plugins/one-router-metro.js +4 -1
- package/dist/cjs/babel-plugins/one-router-metro.js.map +1 -1
- package/dist/cjs/babel-plugins/one-router-metro.native.js.map +1 -1
- package/dist/cjs/babel-plugins/remove-server-code.js +3 -1
- package/dist/cjs/babel-plugins/remove-server-code.js.map +1 -1
- package/dist/cjs/babel-plugins/remove-server-code.native.js.map +1 -1
- package/dist/cjs/cli/build.js +31 -8
- package/dist/cjs/cli/build.js.map +1 -1
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.js +14 -4
- package/dist/cjs/cli/buildPage.js.map +1 -1
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/generateRoutes.js +3 -1
- package/dist/cjs/cli/generateRoutes.js.map +1 -1
- package/dist/cjs/cli/generateRoutes.native.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.native.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.test.js +14 -4
- package/dist/cjs/cli/generateSitemap.test.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.test.native.js.map +1 -1
- package/dist/cjs/cli/main.js +4 -2
- package/dist/cjs/cli/main.js.map +1 -1
- package/dist/cjs/cli/main.native.js.map +1 -1
- package/dist/cjs/cli/prebuild.js.map +1 -1
- package/dist/cjs/cli/prebuild.native.js.map +1 -1
- package/dist/cjs/clientLoaderResolver.js.map +1 -1
- package/dist/cjs/clientLoaderResolver.native.js.map +1 -1
- package/dist/cjs/config.js +3 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/createApp.js +9 -1
- package/dist/cjs/createApp.js.map +1 -1
- package/dist/cjs/createHandleRequest.js +9 -3
- package/dist/cjs/createHandleRequest.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/fork/__tests__/getPathFromState.test.js +90 -88
- package/dist/cjs/fork/__tests__/getPathFromState.test.js.map +1 -1
- package/dist/cjs/fork/__tests__/getPathFromState.test.native.js.map +1 -1
- package/dist/cjs/fork/__tests__/getStateFromPath.test.js +163 -86
- package/dist/cjs/fork/__tests__/getStateFromPath.test.js.map +1 -1
- package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
- package/dist/cjs/fork/_shared.js.map +1 -1
- package/dist/cjs/fork/_shared.native.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.js +4 -1
- package/dist/cjs/fork/getPathFromState-mods.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.js +3 -1
- package/dist/cjs/fork/getPathFromState.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.js +7 -1
- package/dist/cjs/fork/getStateFromPath.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.test.js +21 -8
- package/dist/cjs/fork/getStateFromPath.test.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.test.native.js.map +1 -1
- package/dist/cjs/fork/useBackButton.js.map +1 -1
- package/dist/cjs/fork/useDocumentTitle.js +4 -1
- package/dist/cjs/fork/useDocumentTitle.js.map +1 -1
- package/dist/cjs/fork/useLinking.js +4 -1
- package/dist/cjs/fork/useLinking.js.map +1 -1
- package/dist/cjs/fork/validatePathConfig.js.map +1 -1
- package/dist/cjs/fork/validatePathConfig.native.js.map +1 -1
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/hooks.native.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/layouts/Tabs.js.map +1 -1
- package/dist/cjs/layouts/Tabs.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.js +10 -8
- package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/link/Link.js.map +1 -1
- package/dist/cjs/link/Link.native.js.map +1 -1
- package/dist/cjs/link/linking.js +3 -1
- package/dist/cjs/link/linking.js.map +1 -1
- package/dist/cjs/link/linking.native.js.map +1 -1
- package/dist/cjs/link/useLinkTo.js.map +1 -1
- package/dist/cjs/link/useLinkTo.native.js.map +1 -1
- package/dist/cjs/link/useLoadedNavigation.js.map +1 -1
- package/dist/cjs/link/useLoadedNavigation.native.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +6 -8
- package/dist/cjs/metro-config/getViteMetroPluginOptions.js +8 -10
- package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +9 -11
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/router/Route.js.map +1 -1
- package/dist/cjs/router/Route.native.js.map +1 -1
- package/dist/cjs/router/RouteInfoContext.js +7 -1
- package/dist/cjs/router/RouteInfoContext.js.map +1 -1
- package/dist/cjs/router/RouteInfoContext.native.js.map +1 -1
- package/dist/cjs/router/filterRootHTML.js.map +1 -1
- package/dist/cjs/router/filterRootHTML.native.js.map +1 -1
- package/dist/cjs/router/getLinkingConfig.js.map +1 -1
- package/dist/cjs/router/getLinkingConfig.native.js.map +1 -1
- package/dist/cjs/router/getNormalizedStatePath.js.map +1 -1
- package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
- package/dist/cjs/router/getRoutes.js +3 -1
- package/dist/cjs/router/getRoutes.js.map +1 -1
- package/dist/cjs/router/getRoutes.native.js.map +1 -1
- package/dist/cjs/router/linkingConfig.js.map +1 -1
- package/dist/cjs/router/linkingConfig.native.js.map +1 -1
- package/dist/cjs/router/matchers.cjs +1 -1
- package/dist/cjs/router/matchers.js +1 -1
- package/dist/cjs/router/matchers.js.map +1 -1
- package/dist/cjs/router/matchers.native.js +1 -1
- package/dist/cjs/router/matchers.native.js.map +1 -1
- package/dist/cjs/router/matchers.test.js +6 -2
- package/dist/cjs/router/matchers.test.js.map +1 -1
- package/dist/cjs/router/matchers.test.native.js.map +1 -1
- package/dist/cjs/router/router.js +13 -3
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/useNavigation.js.map +1 -1
- package/dist/cjs/router/useNavigation.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +73 -51
- package/dist/cjs/router/useScreens.js +72 -45
- package/dist/cjs/router/useScreens.js.map +1 -1
- package/dist/cjs/router/useScreens.native.js +30 -19
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/router/useViteRoutes.cjs +26 -8
- package/dist/cjs/router/useViteRoutes.js +28 -9
- package/dist/cjs/router/useViteRoutes.js.map +1 -1
- package/dist/cjs/router/useViteRoutes.native.js +33 -13
- package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.native.js.map +1 -1
- package/dist/cjs/server/createRoutesManifest.js.map +1 -1
- package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
- package/dist/cjs/server/getServerManifest.js +3 -1
- package/dist/cjs/server/getServerManifest.js.map +1 -1
- package/dist/cjs/server/getServerManifest.native.js.map +1 -1
- package/dist/cjs/server/oneServe.js +9 -2
- package/dist/cjs/server/oneServe.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/setupBuildOptions.js.map +1 -1
- package/dist/cjs/server/setupBuildOptions.native.js.map +1 -1
- package/dist/cjs/server/staticHtmlFetcher.js.map +1 -1
- package/dist/cjs/server/staticHtmlFetcher.native.js.map +1 -1
- package/dist/cjs/server-render.js.map +1 -1
- package/dist/cjs/server-render.native.js.map +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +14 -2
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
- package/dist/cjs/typed-routes/injectRouteHelpers.js +4 -1
- package/dist/cjs/typed-routes/injectRouteHelpers.js.map +1 -1
- package/dist/cjs/typed-routes/injectRouteHelpers.native.js.map +1 -1
- package/dist/cjs/ui/Slot.js.map +1 -1
- package/dist/cjs/ui/Slot.native.js.map +1 -1
- package/dist/cjs/ui/TabContext.js +3 -1
- package/dist/cjs/ui/TabContext.js.map +1 -1
- package/dist/cjs/ui/TabContext.native.js.map +1 -1
- package/dist/cjs/ui/TabRouter.js.map +1 -1
- package/dist/cjs/ui/TabRouter.native.js.map +1 -1
- package/dist/cjs/ui/TabTrigger.js +17 -2
- package/dist/cjs/ui/TabTrigger.js.map +1 -1
- package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
- package/dist/cjs/ui/Tabs.js +5 -1
- package/dist/cjs/ui/Tabs.js.map +1 -1
- package/dist/cjs/ui/Tabs.native.js.map +1 -1
- package/dist/cjs/ui/common.js +3 -1
- package/dist/cjs/ui/common.js.map +1 -1
- package/dist/cjs/ui/common.native.js.map +1 -1
- package/dist/cjs/useLoader.js +4 -1
- package/dist/cjs/useLoader.js.map +1 -1
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/utils/cleanUrl.js.map +1 -1
- package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
- package/dist/cjs/utils/url.js +3 -1
- package/dist/cjs/utils/url.js.map +1 -1
- package/dist/cjs/utils/url.native.js.map +1 -1
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.js +29 -10
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +1 -1
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js +11 -3
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js +9 -2
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
- package/dist/cjs/vercel/build/getPathFromRoute.js +4 -1
- package/dist/cjs/vercel/build/getPathFromRoute.js.map +1 -1
- package/dist/cjs/vercel/build/getPathFromRoute.native.js.map +1 -1
- package/dist/cjs/views/Navigator.js +16 -8
- package/dist/cjs/views/Navigator.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/views/RootErrorBoundary.js +4 -2
- package/dist/cjs/views/RootErrorBoundary.js.map +1 -1
- package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/Screen.js +4 -1
- package/dist/cjs/views/Screen.js.map +1 -1
- package/dist/cjs/views/Screen.native.js.map +1 -1
- package/dist/cjs/vite/DevHead.cjs +14 -0
- package/dist/cjs/vite/DevHead.js +18 -0
- package/dist/cjs/vite/DevHead.js.map +1 -1
- package/dist/cjs/vite/loadConfig.js +6 -2
- package/dist/cjs/vite/loadConfig.js.map +1 -1
- package/dist/cjs/vite/loadConfig.native.js.map +1 -1
- package/dist/cjs/vite/one-server-only.js +3 -1
- package/dist/cjs/vite/one-server-only.js.map +1 -1
- package/dist/cjs/vite/one.cjs +9 -2
- package/dist/cjs/vite/one.js +18 -5
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +17 -12
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js +5 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.js +8 -2
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +12 -5
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +4 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +6 -3
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js +13 -3
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/cjs/vite/replaceLoader.js +4 -1
- package/dist/cjs/vite/replaceLoader.js.map +1 -1
- package/dist/cjs/vite/replaceLoader.native.js.map +1 -1
- package/dist/cjs/vite/resolveResponse.js.map +1 -1
- package/dist/cjs/vite/resolveResponse.native.js.map +1 -1
- package/dist/cjs/zero/subscribeToQuery.js.map +1 -1
- package/dist/cjs/zero/subscribeToQuery.native.js.map +1 -1
- package/dist/cjs/zero/useQueryZero.js +3 -1
- package/dist/cjs/zero/useQueryZero.js.map +1 -1
- package/dist/cjs/zero/useQueryZero.native.js.map +1 -1
- package/dist/esm/Root.js +6 -1
- package/dist/esm/Root.js.map +1 -1
- package/dist/esm/Root.mjs.map +1 -1
- package/dist/esm/Root.native.js.map +1 -1
- package/dist/esm/babel-plugins/one-router-metro.js +4 -1
- package/dist/esm/babel-plugins/one-router-metro.js.map +1 -1
- package/dist/esm/babel-plugins/one-router-metro.mjs.map +1 -1
- package/dist/esm/babel-plugins/one-router-metro.native.js.map +1 -1
- package/dist/esm/babel-plugins/remove-server-code.js +7 -2
- package/dist/esm/babel-plugins/remove-server-code.js.map +1 -1
- package/dist/esm/babel-plugins/remove-server-code.mjs.map +1 -1
- package/dist/esm/babel-plugins/remove-server-code.native.js.map +1 -1
- package/dist/esm/cli/build.js +31 -8
- package/dist/esm/cli/build.js.map +1 -1
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.js +14 -4
- package/dist/esm/cli/buildPage.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/cli/generateRoutes.js +3 -1
- package/dist/esm/cli/generateRoutes.js.map +1 -1
- package/dist/esm/cli/generateRoutes.mjs.map +1 -1
- package/dist/esm/cli/generateRoutes.native.js.map +1 -1
- package/dist/esm/cli/generateSitemap.js.map +1 -1
- package/dist/esm/cli/generateSitemap.mjs.map +1 -1
- package/dist/esm/cli/generateSitemap.native.js.map +1 -1
- package/dist/esm/cli/generateSitemap.test.js +14 -4
- package/dist/esm/cli/generateSitemap.test.js.map +1 -1
- package/dist/esm/cli/generateSitemap.test.mjs.map +1 -1
- package/dist/esm/cli/generateSitemap.test.native.js.map +1 -1
- package/dist/esm/cli/main.js +4 -2
- package/dist/esm/cli/main.js.map +1 -1
- package/dist/esm/cli/main.mjs.map +1 -1
- package/dist/esm/cli/main.native.js.map +1 -1
- package/dist/esm/cli/prebuild.js.map +1 -1
- package/dist/esm/cli/prebuild.mjs.map +1 -1
- package/dist/esm/cli/prebuild.native.js.map +1 -1
- package/dist/esm/clientLoaderResolver.js.map +1 -1
- package/dist/esm/clientLoaderResolver.mjs.map +1 -1
- package/dist/esm/clientLoaderResolver.native.js.map +1 -1
- package/dist/esm/config.js +3 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/config.mjs.map +1 -1
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js.map +1 -1
- package/dist/esm/createApp.js +9 -1
- package/dist/esm/createApp.js.map +1 -1
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/createHandleRequest.js +9 -3
- package/dist/esm/createHandleRequest.js.map +1 -1
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/fork/__tests__/getPathFromState.test.js +90 -88
- package/dist/esm/fork/__tests__/getPathFromState.test.js.map +1 -1
- package/dist/esm/fork/__tests__/getPathFromState.test.mjs.map +1 -1
- package/dist/esm/fork/__tests__/getPathFromState.test.native.js.map +1 -1
- package/dist/esm/fork/__tests__/getStateFromPath.test.js +163 -86
- package/dist/esm/fork/__tests__/getStateFromPath.test.js.map +1 -1
- package/dist/esm/fork/__tests__/getStateFromPath.test.mjs.map +1 -1
- package/dist/esm/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
- package/dist/esm/fork/_shared.js.map +1 -1
- package/dist/esm/fork/_shared.mjs.map +1 -1
- package/dist/esm/fork/_shared.native.js.map +1 -1
- package/dist/esm/fork/extractPathFromURL.js.map +1 -1
- package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
- package/dist/esm/fork/extractPathFromURL.native.js.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.js +4 -1
- package/dist/esm/fork/getPathFromState-mods.js.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.native.js.map +1 -1
- package/dist/esm/fork/getPathFromState.js +3 -1
- package/dist/esm/fork/getPathFromState.js.map +1 -1
- package/dist/esm/fork/getPathFromState.mjs.map +1 -1
- package/dist/esm/fork/getPathFromState.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.js.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.js +7 -1
- package/dist/esm/fork/getStateFromPath.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.test.js +25 -9
- package/dist/esm/fork/getStateFromPath.test.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.test.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath.test.native.js.map +1 -1
- package/dist/esm/fork/useBackButton.js.map +1 -1
- package/dist/esm/fork/useBackButton.mjs.map +1 -1
- package/dist/esm/fork/useDocumentTitle.js +4 -1
- package/dist/esm/fork/useDocumentTitle.js.map +1 -1
- package/dist/esm/fork/useDocumentTitle.mjs.map +1 -1
- package/dist/esm/fork/useLinking.js +4 -1
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/fork/validatePathConfig.js.map +1 -1
- package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
- package/dist/esm/fork/validatePathConfig.native.js.map +1 -1
- package/dist/esm/hooks.js.map +1 -1
- package/dist/esm/hooks.mjs.map +1 -1
- package/dist/esm/hooks.native.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/layouts/Tabs.js.map +1 -1
- package/dist/esm/layouts/Tabs.mjs.map +1 -1
- package/dist/esm/layouts/Tabs.native.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.js +10 -8
- package/dist/esm/layouts/withLayoutContext.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/esm/link/Link.js.map +1 -1
- package/dist/esm/link/Link.mjs.map +1 -1
- package/dist/esm/link/Link.native.js.map +1 -1
- package/dist/esm/link/linking.js +3 -1
- package/dist/esm/link/linking.js.map +1 -1
- package/dist/esm/link/linking.mjs.map +1 -1
- package/dist/esm/link/linking.native.js.map +1 -1
- package/dist/esm/link/useLinkTo.js.map +1 -1
- package/dist/esm/link/useLinkTo.mjs.map +1 -1
- package/dist/esm/link/useLinkTo.native.js.map +1 -1
- package/dist/esm/link/useLoadedNavigation.js +3 -1
- package/dist/esm/link/useLoadedNavigation.js.map +1 -1
- package/dist/esm/link/useLoadedNavigation.mjs.map +1 -1
- package/dist/esm/link/useLoadedNavigation.native.js.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.js +8 -10
- package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +6 -8
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +9 -11
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/esm/router/Route.js.map +1 -1
- package/dist/esm/router/Route.mjs.map +1 -1
- package/dist/esm/router/Route.native.js.map +1 -1
- package/dist/esm/router/RouteInfoContext.js +7 -1
- package/dist/esm/router/RouteInfoContext.js.map +1 -1
- package/dist/esm/router/RouteInfoContext.mjs.map +1 -1
- package/dist/esm/router/RouteInfoContext.native.js.map +1 -1
- package/dist/esm/router/filterRootHTML.js.map +1 -1
- package/dist/esm/router/filterRootHTML.mjs.map +1 -1
- package/dist/esm/router/filterRootHTML.native.js.map +1 -1
- package/dist/esm/router/getLinkingConfig.js.map +1 -1
- package/dist/esm/router/getLinkingConfig.mjs.map +1 -1
- package/dist/esm/router/getLinkingConfig.native.js.map +1 -1
- package/dist/esm/router/getNormalizedStatePath.js.map +1 -1
- package/dist/esm/router/getNormalizedStatePath.mjs.map +1 -1
- package/dist/esm/router/getNormalizedStatePath.native.js.map +1 -1
- package/dist/esm/router/getRoutes.js +3 -1
- package/dist/esm/router/getRoutes.js.map +1 -1
- package/dist/esm/router/getRoutes.mjs.map +1 -1
- package/dist/esm/router/getRoutes.native.js.map +1 -1
- package/dist/esm/router/linkingConfig.js +3 -1
- package/dist/esm/router/linkingConfig.js.map +1 -1
- package/dist/esm/router/linkingConfig.mjs.map +1 -1
- package/dist/esm/router/linkingConfig.native.js.map +1 -1
- package/dist/esm/router/matchers.js +1 -1
- package/dist/esm/router/matchers.js.map +1 -1
- package/dist/esm/router/matchers.mjs +1 -1
- package/dist/esm/router/matchers.mjs.map +1 -1
- package/dist/esm/router/matchers.native.js +1 -1
- package/dist/esm/router/matchers.native.js.map +1 -1
- package/dist/esm/router/matchers.test.js +6 -2
- package/dist/esm/router/matchers.test.js.map +1 -1
- package/dist/esm/router/matchers.test.mjs.map +1 -1
- package/dist/esm/router/router.js +16 -4
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useNavigation.js.map +1 -1
- package/dist/esm/router/useNavigation.mjs.map +1 -1
- package/dist/esm/router/useNavigation.native.js.map +1 -1
- package/dist/esm/router/useScreens.js +73 -46
- package/dist/esm/router/useScreens.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +74 -52
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +30 -19
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/router/useViteRoutes.js +28 -9
- package/dist/esm/router/useViteRoutes.js.map +1 -1
- package/dist/esm/router/useViteRoutes.mjs +26 -8
- package/dist/esm/router/useViteRoutes.mjs.map +1 -1
- package/dist/esm/router/useViteRoutes.native.js +33 -13
- package/dist/esm/router/useViteRoutes.native.js.map +1 -1
- package/dist/esm/router/utils/getNavigateAction.js.map +1 -1
- package/dist/esm/router/utils/getNavigateAction.mjs.map +1 -1
- package/dist/esm/router/utils/getNavigateAction.native.js.map +1 -1
- package/dist/esm/server/createRoutesManifest.js.map +1 -1
- package/dist/esm/server/createRoutesManifest.mjs.map +1 -1
- package/dist/esm/server/createRoutesManifest.native.js.map +1 -1
- package/dist/esm/server/getServerManifest.js +3 -1
- package/dist/esm/server/getServerManifest.js.map +1 -1
- package/dist/esm/server/getServerManifest.mjs.map +1 -1
- package/dist/esm/server/getServerManifest.native.js.map +1 -1
- package/dist/esm/server/oneServe.js +9 -2
- package/dist/esm/server/oneServe.js.map +1 -1
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/server/setupBuildOptions.js.map +1 -1
- package/dist/esm/server/setupBuildOptions.mjs.map +1 -1
- package/dist/esm/server/setupBuildOptions.native.js.map +1 -1
- package/dist/esm/server/staticHtmlFetcher.js.map +1 -1
- package/dist/esm/server/staticHtmlFetcher.mjs.map +1 -1
- package/dist/esm/server/staticHtmlFetcher.native.js.map +1 -1
- package/dist/esm/server-render.js.map +1 -1
- package/dist/esm/server-render.mjs.map +1 -1
- package/dist/esm/server-render.native.js.map +1 -1
- package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js +14 -2
- package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
- package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs.map +1 -1
- package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
- package/dist/esm/typed-routes/injectRouteHelpers.js +4 -1
- package/dist/esm/typed-routes/injectRouteHelpers.js.map +1 -1
- package/dist/esm/typed-routes/injectRouteHelpers.mjs.map +1 -1
- package/dist/esm/typed-routes/injectRouteHelpers.native.js.map +1 -1
- package/dist/esm/ui/Slot.js.map +1 -1
- package/dist/esm/ui/Slot.mjs.map +1 -1
- package/dist/esm/ui/Slot.native.js.map +1 -1
- package/dist/esm/ui/TabContext.js +3 -1
- package/dist/esm/ui/TabContext.js.map +1 -1
- package/dist/esm/ui/TabContext.mjs.map +1 -1
- package/dist/esm/ui/TabContext.native.js.map +1 -1
- package/dist/esm/ui/TabRouter.js.map +1 -1
- package/dist/esm/ui/TabRouter.mjs.map +1 -1
- package/dist/esm/ui/TabRouter.native.js.map +1 -1
- package/dist/esm/ui/TabTrigger.js +21 -3
- package/dist/esm/ui/TabTrigger.js.map +1 -1
- package/dist/esm/ui/TabTrigger.mjs.map +1 -1
- package/dist/esm/ui/TabTrigger.native.js.map +1 -1
- package/dist/esm/ui/Tabs.js +5 -1
- package/dist/esm/ui/Tabs.js.map +1 -1
- package/dist/esm/ui/Tabs.mjs.map +1 -1
- package/dist/esm/ui/Tabs.native.js.map +1 -1
- package/dist/esm/ui/common.js +8 -2
- package/dist/esm/ui/common.js.map +1 -1
- package/dist/esm/ui/common.mjs.map +1 -1
- package/dist/esm/ui/common.native.js.map +1 -1
- package/dist/esm/useLoader.js +4 -1
- package/dist/esm/useLoader.js.map +1 -1
- package/dist/esm/useLoader.mjs.map +1 -1
- package/dist/esm/useLoader.native.js.map +1 -1
- package/dist/esm/utils/cleanUrl.js.map +1 -1
- package/dist/esm/utils/cleanUrl.mjs.map +1 -1
- package/dist/esm/utils/cleanUrl.native.js.map +1 -1
- package/dist/esm/utils/url.js +3 -1
- package/dist/esm/utils/url.js.map +1 -1
- package/dist/esm/utils/url.mjs.map +1 -1
- package/dist/esm/utils/url.native.js.map +1 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.js +29 -10
- package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +1 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.js +11 -3
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs.map +1 -1
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js +9 -2
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs.map +1 -1
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
- package/dist/esm/vercel/build/getPathFromRoute.js +4 -1
- package/dist/esm/vercel/build/getPathFromRoute.js.map +1 -1
- package/dist/esm/vercel/build/getPathFromRoute.mjs.map +1 -1
- package/dist/esm/vercel/build/getPathFromRoute.native.js.map +1 -1
- package/dist/esm/views/Navigator.js +20 -9
- package/dist/esm/views/Navigator.js.map +1 -1
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/dist/esm/views/RootErrorBoundary.js +4 -2
- package/dist/esm/views/RootErrorBoundary.js.map +1 -1
- package/dist/esm/views/RootErrorBoundary.mjs.map +1 -1
- package/dist/esm/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/esm/views/Screen.js +4 -1
- package/dist/esm/views/Screen.js.map +1 -1
- package/dist/esm/views/Screen.mjs.map +1 -1
- package/dist/esm/views/Screen.native.js.map +1 -1
- package/dist/esm/vite/DevHead.js +18 -0
- package/dist/esm/vite/DevHead.js.map +1 -1
- package/dist/esm/vite/DevHead.mjs +14 -0
- package/dist/esm/vite/DevHead.mjs.map +1 -1
- package/dist/esm/vite/loadConfig.js +6 -2
- package/dist/esm/vite/loadConfig.js.map +1 -1
- package/dist/esm/vite/loadConfig.mjs.map +1 -1
- package/dist/esm/vite/loadConfig.native.js.map +1 -1
- package/dist/esm/vite/one-server-only.js +3 -1
- package/dist/esm/vite/one-server-only.js.map +1 -1
- package/dist/esm/vite/one-server-only.mjs.map +1 -1
- package/dist/esm/vite/one.js +18 -5
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +9 -2
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +17 -12
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.js +5 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.js +12 -3
- package/dist/esm/vite/plugins/clientTreeShakePlugin.js.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +13 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +2 -2
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +5 -2
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js +2 -2
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +2 -2
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +7 -4
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js +13 -3
- package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/vite/replaceLoader.js +4 -1
- package/dist/esm/vite/replaceLoader.js.map +1 -1
- package/dist/esm/vite/replaceLoader.mjs.map +1 -1
- package/dist/esm/vite/replaceLoader.native.js.map +1 -1
- package/dist/esm/vite/resolveResponse.js +5 -1
- package/dist/esm/vite/resolveResponse.js.map +1 -1
- package/dist/esm/vite/resolveResponse.mjs.map +1 -1
- package/dist/esm/vite/resolveResponse.native.js.map +1 -1
- package/dist/esm/zero/subscribeToQuery.js.map +1 -1
- package/dist/esm/zero/subscribeToQuery.mjs.map +1 -1
- package/dist/esm/zero/subscribeToQuery.native.js.map +1 -1
- package/dist/esm/zero/useQueryZero.js +3 -1
- package/dist/esm/zero/useQueryZero.js.map +1 -1
- package/dist/esm/zero/useQueryZero.mjs.map +1 -1
- package/dist/esm/zero/useQueryZero.native.js.map +1 -1
- package/metro-entry-ctx.js +2 -1
- package/package.json +10 -10
- package/src/Root.tsx +14 -5
- package/src/babel-plugins/one-router-metro.ts +4 -1
- package/src/babel-plugins/remove-server-code.ts +15 -4
- package/src/cli/build.ts +33 -8
- package/src/cli/buildPage.ts +15 -4
- package/src/cli/generateRoutes.ts +3 -1
- package/src/cli/generateSitemap.test.ts +14 -4
- package/src/cli/generateSitemap.ts +7 -2
- package/src/cli/main.ts +3 -1
- package/src/cli/prebuild.ts +5 -1
- package/src/clientLoaderResolver.ts +4 -1
- package/src/config.ts +6 -2
- package/src/constants.ts +4 -2
- package/src/createApp.tsx +11 -3
- package/src/createHandleRequest.ts +17 -6
- package/src/fork/__tests__/getPathFromState.test.tsx +128 -107
- package/src/fork/__tests__/getStateFromPath.test.tsx +181 -95
- package/src/fork/_shared.ts +2 -1
- package/src/fork/extractPathFromURL.ts +2 -1
- package/src/fork/getPathFromState-mods.ts +8 -2
- package/src/fork/getPathFromState.ts +16 -5
- package/src/fork/getStateFromPath-mods.ts +13 -3
- package/src/fork/getStateFromPath.test.ts +25 -9
- package/src/fork/getStateFromPath.ts +21 -5
- package/src/fork/useBackButton.native.tsx +3 -1
- package/src/fork/useBackButton.tsx +3 -1
- package/src/fork/useDocumentTitle.tsx +4 -1
- package/src/fork/useLinking.native.ts +3 -1
- package/src/fork/useLinking.ts +9 -3
- package/src/fork/validatePathConfig.ts +6 -1
- package/src/head/Head.ios.tsx +3 -1
- package/src/hooks.tsx +4 -2
- package/src/index.ts +4 -1
- package/src/interfaces/router.ts +29 -13
- package/src/layouts/Tabs.tsx +5 -1
- package/src/layouts/withLayoutContext.tsx +24 -21
- package/src/link/Link.tsx +3 -1
- package/src/link/linking.ts +3 -1
- package/src/link/useLinkTo.tsx +3 -1
- package/src/link/useLoadedNavigation.ts +5 -1
- package/src/metro-config/getViteMetroPluginOptions.ts +20 -22
- package/src/router/Route.tsx +3 -1
- package/src/router/RouteInfoContext.tsx +3 -1
- package/src/router/filterRootHTML.ts +5 -1
- package/src/router/getLinkingConfig.ts +4 -1
- package/src/router/getNormalizedStatePath.tsx +4 -1
- package/src/router/getRoutes.ts +13 -4
- package/src/router/linkingConfig.ts +4 -1
- package/src/router/matchers.test.ts +6 -2
- package/src/router/matchers.ts +1 -1
- package/src/router/router.ts +25 -6
- package/src/router/useNavigation.ts +4 -1
- package/src/router/useScreens.tsx +127 -64
- package/src/router/useViteRoutes.tsx +44 -2
- package/src/router/utils/getNavigateAction.ts +4 -2
- package/src/server/createRoutesManifest.ts +4 -1
- package/src/server/getServerManifest.ts +7 -2
- package/src/server/oneServe.ts +21 -8
- package/src/server/setupBuildOptions.ts +2 -1
- package/src/server/staticHtmlFetcher.ts +3 -1
- package/src/server-render.tsx +4 -1
- package/src/typed-routes/getTypedRoutesDeclarationFile.ts +20 -4
- package/src/typed-routes/injectRouteHelpers.ts +12 -3
- package/src/types.ts +2 -2
- package/src/ui/Slot.tsx +4 -2
- package/src/ui/TabContext.tsx +3 -1
- package/src/ui/TabRouter.tsx +7 -2
- package/src/ui/TabTrigger.tsx +20 -3
- package/src/ui/Tabs.tsx +8 -2
- package/src/ui/common.tsx +19 -5
- package/src/useLoader.ts +9 -4
- package/src/utils/cleanUrl.ts +5 -1
- package/src/utils/url.ts +3 -1
- package/src/vercel/build/buildVercelOutputDirectory.ts +31 -10
- package/src/vercel/build/generate/createApiServerlessFunction.ts +11 -3
- package/src/vercel/build/generate/createSsrServerlessFunction.ts +10 -3
- package/src/vercel/build/getPathFromRoute.ts +4 -1
- package/src/views/Navigator.tsx +21 -9
- package/src/views/RootErrorBoundary.tsx +3 -1
- package/src/views/Screen.tsx +4 -1
- package/src/vite/DevHead.tsx +15 -0
- package/src/vite/loadConfig.ts +6 -2
- package/src/vite/one-server-only.tsx +10 -4
- package/src/vite/one.ts +80 -47
- package/src/vite/plugins/SSRCSSPlugin.ts +9 -2
- package/src/vite/plugins/clientTreeShakePlugin.ts +22 -6
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +14 -5
- package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +6 -3
- package/src/vite/plugins/removeReactNativeWebAnimatedPlugin.ts +3 -1
- package/src/vite/plugins/virtualEntryPlugin.ts +22 -5
- package/src/vite/replaceLoader.ts +7 -1
- package/src/vite/resolveResponse.ts +6 -2
- package/src/vite/types.ts +6 -3
- package/src/zero/subscribeToQuery.ts +4 -1
- package/src/zero/types.ts +8 -9
- package/src/zero/useQuery.ts +1 -1
- package/src/zero/useQueryZero.ts +3 -1
- package/types/Root.d.ts.map +1 -1
- package/types/babel-plugins/one-router-metro.d.ts.map +1 -1
- package/types/babel-plugins/remove-server-code.d.ts.map +1 -1
- package/types/cli/build.d.ts.map +1 -1
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/cli/generateRoutes.d.ts.map +1 -1
- package/types/cli/generateSitemap.d.ts.map +1 -1
- package/types/cli/main.d.ts.map +1 -1
- package/types/cli/prebuild.d.ts.map +1 -1
- package/types/clientLoaderResolver.d.ts.map +1 -1
- package/types/config.d.ts.map +1 -1
- package/types/constants.d.ts.map +1 -1
- package/types/createApp.d.ts.map +1 -1
- package/types/createHandleRequest.d.ts +1 -1
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/fork/_shared.d.ts.map +1 -1
- package/types/fork/extractPathFromURL.d.ts.map +1 -1
- package/types/fork/getPathFromState.d.ts.map +1 -1
- package/types/fork/getStateFromPath-mods.d.ts.map +1 -1
- package/types/fork/getStateFromPath.d.ts.map +1 -1
- package/types/fork/useBackButton.d.ts.map +1 -1
- package/types/fork/useBackButton.native.d.ts.map +1 -1
- package/types/fork/useDocumentTitle.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/fork/useLinking.native.d.ts.map +1 -1
- package/types/fork/validatePathConfig.d.ts.map +1 -1
- package/types/head/Head.ios.d.ts.map +1 -1
- package/types/hooks.d.ts +2 -2
- package/types/hooks.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/interfaces/router.d.ts.map +1 -1
- package/types/layouts/Tabs.d.ts.map +1 -1
- package/types/layouts/withLayoutContext.d.ts.map +1 -1
- package/types/link/Link.d.ts.map +1 -1
- package/types/link/linking.d.ts.map +1 -1
- package/types/link/useLinkTo.d.ts.map +1 -1
- package/types/link/useLoadedNavigation.d.ts.map +1 -1
- package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
- package/types/router/Route.d.ts.map +1 -1
- package/types/router/RouteInfoContext.d.ts.map +1 -1
- package/types/router/filterRootHTML.d.ts.map +1 -1
- package/types/router/getNormalizedStatePath.d.ts.map +1 -1
- package/types/router/getRoutes.d.ts.map +1 -1
- package/types/router/linkingConfig.d.ts.map +1 -1
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useNavigation.d.ts.map +1 -1
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/router/useViteRoutes.d.ts.map +1 -1
- package/types/router/utils/getNavigateAction.d.ts.map +1 -1
- package/types/server/createRoutesManifest.d.ts.map +1 -1
- package/types/server/getServerManifest.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/server/setupBuildOptions.d.ts.map +1 -1
- package/types/server/staticHtmlFetcher.d.ts.map +1 -1
- package/types/server-render.d.ts.map +1 -1
- package/types/types.d.ts +2 -2
- package/types/ui/Slot.d.ts.map +1 -1
- package/types/ui/TabContext.d.ts.map +1 -1
- package/types/ui/TabRouter.d.ts.map +1 -1
- package/types/ui/TabTrigger.d.ts.map +1 -1
- package/types/ui/Tabs.d.ts.map +1 -1
- package/types/ui/common.d.ts.map +1 -1
- package/types/useLoader.d.ts.map +1 -1
- package/types/utils/cleanUrl.d.ts.map +1 -1
- package/types/utils/url.d.ts.map +1 -1
- package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -1
- package/types/vercel/build/generate/createApiServerlessFunction.d.ts.map +1 -1
- package/types/vercel/build/generate/createSsrServerlessFunction.d.ts.map +1 -1
- package/types/vercel/build/getPathFromRoute.d.ts.map +1 -1
- package/types/views/Navigator.d.ts +1 -1
- package/types/views/Navigator.d.ts.map +1 -1
- package/types/views/RootErrorBoundary.d.ts.map +1 -1
- package/types/views/Screen.d.ts +1 -1
- package/types/views/Screen.d.ts.map +1 -1
- package/types/vite/DevHead.d.ts.map +1 -1
- package/types/vite/loadConfig.d.ts.map +1 -1
- package/types/vite/one-server-only.d.ts +2 -2
- package/types/vite/one-server-only.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
- package/types/vite/plugins/clientTreeShakePlugin.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
- package/types/vite/plugins/removeReactNativeWebAnimatedPlugin.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/replaceLoader.d.ts +2 -2
- package/types/vite/replaceLoader.d.ts.map +1 -1
- package/types/vite/resolveResponse.d.ts.map +1 -1
- package/types/vite/types.d.ts +1 -1
- package/types/vite/types.d.ts.map +1 -1
- package/types/zero/subscribeToQuery.d.ts.map +1 -1
- package/types/zero/types.d.ts.map +1 -1
- package/types/zero/useQueryZero.d.ts.map +1 -1
- package/vendor/react/cjs/react-jsx-dev-runtime.development.js +1230 -1078
- package/vendor/react/cjs/react-jsx-dev-runtime.production.min.js +4 -1
- package/vendor/react/cjs/react-jsx-dev-runtime.profiling.min.js +4 -1
- package/vendor/react/cjs/react-jsx-runtime.development.js +1244 -1092
- package/vendor/react/cjs/react-jsx-runtime.production.min.js +23 -2
- package/vendor/react/cjs/react-jsx-runtime.profiling.min.js +23 -2
- package/vendor/react/cjs/react.development.js +2604 -2324
- package/vendor/react/cjs/react.production.min.js +360 -17
- package/vendor/react/cjs/react.shared-subset.development.js +9 -7
- package/vendor/react/cjs/react.shared-subset.production.min.js +2 -1
- package/vendor/react/index.js +3 -3
- package/vendor/react/jsx-dev-runtime.js +3 -3
- package/vendor/react/jsx-runtime.js +3 -3
- package/vendor/react/react.shared-subset.js +3 -3
- package/vendor/react/umd/react.development.js +1430 -1152
- package/vendor/react/umd/react.production.min.js +657 -22
- package/vendor/react/umd/react.profiling.min.js +657 -22
- package/vendor/react-dom/cjs/react-dom-server-legacy.browser.development.js +7183 -5938
- package/vendor/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +1941 -84
- package/vendor/react-dom/cjs/react-dom-server-legacy.node.development.js +7239 -5986
- package/vendor/react-dom/cjs/react-dom-server-legacy.node.production.min.js +2055 -92
- package/vendor/react-dom/cjs/react-dom-server.browser.development.js +7146 -5924
- package/vendor/react-dom/cjs/react-dom-server.browser.production.min.js +1997 -87
- package/vendor/react-dom/cjs/react-dom-server.node.development.js +7210 -5976
- package/vendor/react-dom/cjs/react-dom-server.node.production.min.js +2075 -93
- package/vendor/react-dom/cjs/react-dom-test-utils.development.js +1700 -1487
- package/vendor/react-dom/cjs/react-dom-test-utils.production.min.js +653 -31
- package/vendor/react-dom/cjs/react-dom.development.js +29568 -25248
- package/vendor/react-dom/cjs/react-dom.production.min.js +8208 -310
- package/vendor/react-dom/cjs/react-dom.profiling.min.js +8750 -343
- package/vendor/react-dom/client.js +15 -15
- package/vendor/react-dom/index.js +8 -8
- package/vendor/react-dom/profiling.js +8 -8
- package/vendor/react-dom/server.browser.js +12 -12
- package/vendor/react-dom/server.js +2 -2
- package/vendor/react-dom/server.node.js +12 -12
- package/vendor/react-dom/test-utils.js +3 -3
- package/vendor/react-dom/umd/react-dom-server-legacy.browser.development.js +3735 -2502
- package/vendor/react-dom/umd/react-dom-server-legacy.browser.production.min.js +1964 -66
- package/vendor/react-dom/umd/react-dom-server.browser.development.js +3724 -2511
- package/vendor/react-dom/umd/react-dom-server.browser.production.min.js +2017 -67
- package/vendor/react-dom/umd/react-dom-test-utils.development.js +777 -563
- package/vendor/react-dom/umd/react-dom-test-utils.production.min.js +678 -24
- package/vendor/react-dom/umd/react-dom.development.js +15978 -11854
- package/vendor/react-dom/umd/react-dom.production.min.js +8328 -256
- 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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
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
|
[
|
package/src/router/Route.tsx
CHANGED
|
@@ -46,7 +46,9 @@ export type RouteNode = {
|
|
|
46
46
|
middlewares?: RouteNode[]
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
export const RouteParamsContext = createContext<
|
|
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
|
|
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 (
|
|
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(
|
|
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)
|
|
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]) => {
|
package/src/router/getRoutes.ts
CHANGED
|
@@ -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] =
|
|
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 (
|
|
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(
|
|
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(
|
|
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 {
|
|
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(
|
|
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(
|
|
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
|
})
|
package/src/router/matchers.ts
CHANGED
|
@@ -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
|
|
31
|
+
return name.endsWith('+not-found')
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/** Match `(page)` -> `page` */
|
package/src/router/router.ts
CHANGED
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
* the best decision.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
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
|
|
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(
|
|
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(
|
|
378
|
+
const state = useSyncExternalStore(
|
|
379
|
+
subscribeToRootState,
|
|
380
|
+
routeInfoSnapshot,
|
|
381
|
+
routeInfoSnapshot
|
|
382
|
+
)
|
|
370
383
|
return useDeferredValue(state)
|
|
371
384
|
}
|
|
372
385
|
|
|
@@ -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(
|
|
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(
|
|
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(
|
|
47
|
+
export function resolveParentId(
|
|
48
|
+
contextKey: string,
|
|
49
|
+
parentId?: string | null
|
|
50
|
+
): string | null {
|
|
48
51
|
if (!parentId) {
|
|
49
52
|
return null
|
|
50
53
|
}
|
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
RouteProp,
|
|
8
8
|
ScreenListeners,
|
|
9
9
|
} from '@react-navigation/native'
|
|
10
|
-
import React, { memo, Suspense, useId } from 'react'
|
|
10
|
+
import React, { memo, Suspense, useEffect, useId, useState } from 'react'
|
|
11
11
|
import { SafeAreaView, ScrollView, Text, TouchableOpacity, View } from 'react-native'
|
|
12
12
|
import { ServerContextScript } from '../server/ServerContextScript'
|
|
13
13
|
import { getPageExport } from '../utils/getPageExport'
|
|
@@ -34,17 +34,102 @@ 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(
|
|
38
|
-
(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
+
/**
|
|
49
|
+
* Separate component for rendering root layouts with HTML.
|
|
50
|
+
* This is extracted into its own component so React's HMR can properly track changes.
|
|
51
|
+
* When the LayoutComponent prop changes, React will re-render this component.
|
|
52
|
+
*/
|
|
53
|
+
function RootLayoutRenderer({
|
|
54
|
+
LayoutComponent,
|
|
55
|
+
layoutProps,
|
|
56
|
+
forwardedRef,
|
|
57
|
+
}: {
|
|
58
|
+
LayoutComponent: React.ComponentType<any>
|
|
59
|
+
layoutProps: any
|
|
60
|
+
forwardedRef: any
|
|
61
|
+
}) {
|
|
62
|
+
// HMR support: force re-render when layout changes (dev only, web only)
|
|
63
|
+
if (process.env.NODE_ENV === 'development' && process.env.TAMAGUI_TARGET !== 'native') {
|
|
64
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
65
|
+
const [, setHmrKey] = useState(0)
|
|
66
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
const handler = () => setHmrKey((k) => k + 1)
|
|
69
|
+
window.addEventListener('one-hmr-update', handler)
|
|
70
|
+
return () => window.removeEventListener('one-hmr-update', handler)
|
|
71
|
+
}, [])
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Call the layout component to get its output for HTML filtering
|
|
75
|
+
// @ts-expect-error
|
|
76
|
+
const out = LayoutComponent(layoutProps, forwardedRef)
|
|
77
|
+
|
|
78
|
+
const { children, bodyProps, head, htmlProps } = filterRootHTML(out)
|
|
79
|
+
const { children: headChildren, ...headProps } = (head?.props || {}) as Record<
|
|
80
|
+
string,
|
|
81
|
+
any
|
|
82
|
+
>
|
|
83
|
+
const serverContext = useServerContext()
|
|
84
|
+
|
|
85
|
+
let finalChildren = children
|
|
86
|
+
|
|
87
|
+
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
88
|
+
// on native we just ignore all html/body/head
|
|
89
|
+
return finalChildren
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
finalChildren = (
|
|
93
|
+
<>
|
|
94
|
+
<head key="head" {...headProps}>
|
|
95
|
+
<DevHead />
|
|
96
|
+
<script
|
|
97
|
+
dangerouslySetInnerHTML={{
|
|
98
|
+
__html: `globalThis['global'] = globalThis`,
|
|
99
|
+
}}
|
|
100
|
+
/>
|
|
101
|
+
{serverContext?.cssContents?.length || serverContext?.cssInlineCount
|
|
102
|
+
? // Inline CSS: SSR renders fresh, client uses cached elements from module load
|
|
103
|
+
serverContext?.cssContents
|
|
104
|
+
? serverContext.cssContents.map((content, i) => (
|
|
105
|
+
<style
|
|
106
|
+
key={`inline-css-${i}`}
|
|
107
|
+
id={`__one_css_${i}`}
|
|
108
|
+
dangerouslySetInnerHTML={{ __html: content }}
|
|
109
|
+
/>
|
|
110
|
+
))
|
|
111
|
+
: cachedInlineCSSElements
|
|
112
|
+
: serverContext?.css?.map((file) => (
|
|
113
|
+
<link key={file} rel="stylesheet" href={file} />
|
|
114
|
+
))}
|
|
115
|
+
<ServerContextScript />
|
|
116
|
+
{headChildren}
|
|
117
|
+
</head>
|
|
118
|
+
<body key="body" suppressHydrationWarning {...bodyProps}>
|
|
119
|
+
<SafeAreaProviderCompat>{finalChildren}</SafeAreaProviderCompat>
|
|
120
|
+
</body>
|
|
121
|
+
</>
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
return (
|
|
125
|
+
// tamagui and libraries can add className on hydration to have ssr safe styling
|
|
126
|
+
// so supress hydration warnings here
|
|
127
|
+
<html suppressHydrationWarning lang="en-US" {...htmlProps}>
|
|
128
|
+
{finalChildren}
|
|
129
|
+
</html>
|
|
130
|
+
)
|
|
131
|
+
}
|
|
132
|
+
|
|
48
133
|
export type ScreenProps<
|
|
49
134
|
TOptions extends Record<string, any> = Record<string, any>,
|
|
50
135
|
State extends NavigationState = NavigationState,
|
|
@@ -87,7 +172,9 @@ function getSortedChildren(
|
|
|
87
172
|
const ordered = order
|
|
88
173
|
.map(({ name, redirect, initialParams, listeners, options, getId }) => {
|
|
89
174
|
if (!entries.length) {
|
|
90
|
-
console.warn(
|
|
175
|
+
console.warn(
|
|
176
|
+
`[Layout children]: Too many screens defined. Route "${name}" is extraneous.`
|
|
177
|
+
)
|
|
91
178
|
return null
|
|
92
179
|
}
|
|
93
180
|
const matchIndex = entries.findIndex((child) => child.route === name)
|
|
@@ -185,6 +272,21 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
|
185
272
|
}
|
|
186
273
|
|
|
187
274
|
const ScreenComponent = React.forwardRef((props: any, ref) => {
|
|
275
|
+
// HMR support: force re-render when layout files change to get fresh module (dev only, web only)
|
|
276
|
+
if (
|
|
277
|
+
process.env.NODE_ENV === 'development' &&
|
|
278
|
+
process.env.TAMAGUI_TARGET !== 'native'
|
|
279
|
+
) {
|
|
280
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
281
|
+
const [, setHmrKey] = useState(0)
|
|
282
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
283
|
+
useEffect(() => {
|
|
284
|
+
const handler = () => setHmrKey((k) => k + 1)
|
|
285
|
+
window.addEventListener('one-hmr-update', handler)
|
|
286
|
+
return () => window.removeEventListener('one-hmr-update', handler)
|
|
287
|
+
}, [])
|
|
288
|
+
}
|
|
289
|
+
|
|
188
290
|
const res = value.loadRoute()
|
|
189
291
|
const Component = getPageExport(fromImport(res)) as React.ComponentType<any>
|
|
190
292
|
|
|
@@ -195,59 +297,14 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
|
195
297
|
console.groupEnd()
|
|
196
298
|
}
|
|
197
299
|
|
|
198
|
-
//
|
|
300
|
+
// Root layout with HTML support - use RootLayoutRenderer for proper HMR tracking
|
|
199
301
|
if (props.segment === '') {
|
|
200
|
-
// @ts-expect-error
|
|
201
|
-
const out = Component(props, ref)
|
|
202
|
-
|
|
203
|
-
const { children, bodyProps, head, htmlProps } = filterRootHTML(out)
|
|
204
|
-
const { children: headChildren, ...headProps } = (head?.props || {}) as Record<string, any>
|
|
205
|
-
const serverContext = useServerContext()
|
|
206
|
-
|
|
207
|
-
// let finalChildren = <Suspense fallback={null}>{children}</Suspense>
|
|
208
|
-
let finalChildren = children
|
|
209
|
-
|
|
210
|
-
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
211
|
-
// on native we just ignore all html/body/head
|
|
212
|
-
return finalChildren
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
finalChildren = (
|
|
216
|
-
<>
|
|
217
|
-
<head key="head" {...headProps}>
|
|
218
|
-
<DevHead />
|
|
219
|
-
<script
|
|
220
|
-
dangerouslySetInnerHTML={{
|
|
221
|
-
__html: `globalThis['global'] = globalThis`,
|
|
222
|
-
}}
|
|
223
|
-
/>
|
|
224
|
-
{serverContext?.cssContents?.length || serverContext?.cssInlineCount
|
|
225
|
-
? // Inline CSS: SSR renders fresh, client uses cached elements from module load
|
|
226
|
-
serverContext?.cssContents
|
|
227
|
-
? serverContext.cssContents.map((content, i) => (
|
|
228
|
-
<style
|
|
229
|
-
key={`inline-css-${i}`}
|
|
230
|
-
id={`__one_css_${i}`}
|
|
231
|
-
dangerouslySetInnerHTML={{ __html: content }}
|
|
232
|
-
/>
|
|
233
|
-
))
|
|
234
|
-
: cachedInlineCSSElements
|
|
235
|
-
: serverContext?.css?.map((file) => <link key={file} rel="stylesheet" href={file} />)}
|
|
236
|
-
<ServerContextScript />
|
|
237
|
-
{headChildren}
|
|
238
|
-
</head>
|
|
239
|
-
<body key="body" suppressHydrationWarning {...bodyProps}>
|
|
240
|
-
<SafeAreaProviderCompat>{finalChildren}</SafeAreaProviderCompat>
|
|
241
|
-
</body>
|
|
242
|
-
</>
|
|
243
|
-
)
|
|
244
|
-
|
|
245
302
|
return (
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
{
|
|
250
|
-
|
|
303
|
+
<RootLayoutRenderer
|
|
304
|
+
LayoutComponent={Component}
|
|
305
|
+
layoutProps={props}
|
|
306
|
+
forwardedRef={ref}
|
|
307
|
+
/>
|
|
251
308
|
)
|
|
252
309
|
}
|
|
253
310
|
|
|
@@ -264,7 +321,10 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
|
264
321
|
// i tried a lot of things, but didn't find the root cause, but native needs suspense or
|
|
265
322
|
// else it hits an error about no suspense boundary being set
|
|
266
323
|
|
|
267
|
-
if (
|
|
324
|
+
if (
|
|
325
|
+
process.env.TAMAGUI_TARGET === 'native' ||
|
|
326
|
+
process.env.ONE_SUSPEND_ROUTES === '1'
|
|
327
|
+
) {
|
|
268
328
|
return <Suspense fallback={null}>{children}</Suspense>
|
|
269
329
|
}
|
|
270
330
|
return children
|
|
@@ -343,7 +403,10 @@ export function createGetIdForRoute(
|
|
|
343
403
|
}
|
|
344
404
|
}
|
|
345
405
|
|
|
346
|
-
function routeToScreen(
|
|
406
|
+
function routeToScreen(
|
|
407
|
+
route: RouteNode,
|
|
408
|
+
{ options, ...props }: Partial<ScreenProps> = {}
|
|
409
|
+
) {
|
|
347
410
|
return (
|
|
348
411
|
<Screen
|
|
349
412
|
// 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 =
|
|
132
|
+
const isDynamicMatch =
|
|
133
|
+
routePath.includes('[') && matchDynamicRoute(routePath, normalizedHref)
|
|
133
134
|
|
|
134
135
|
if ((isStaticMatch || isDynamicMatch) && typeof globbed[key] === 'function') {
|
|
135
136
|
promises.push(
|
|
@@ -163,6 +164,7 @@ export function globbedRoutesToRouteContext(
|
|
|
163
164
|
): One.RouteContext {
|
|
164
165
|
// make it look like webpack context
|
|
165
166
|
const routesSync = {}
|
|
167
|
+
const routePaths = {} // Store full paths for HMR cache-busting imports
|
|
166
168
|
const promises = {}
|
|
167
169
|
const loadedRoutes = {}
|
|
168
170
|
const clears = {}
|
|
@@ -184,11 +186,36 @@ export function globbedRoutesToRouteContext(
|
|
|
184
186
|
}
|
|
185
187
|
} else {
|
|
186
188
|
routesSync[pathWithoutRelative] = loadRouteFunction
|
|
189
|
+
routePaths[pathWithoutRelative] = path // Store full path for HMR
|
|
187
190
|
}
|
|
188
191
|
})
|
|
189
192
|
|
|
190
193
|
const moduleKeys = Object.keys(routesSync)
|
|
191
194
|
|
|
195
|
+
// Track HMR version for cache busting
|
|
196
|
+
let hmrVersion = 0
|
|
197
|
+
|
|
198
|
+
// Expose a function to clear the cache for HMR support
|
|
199
|
+
if (typeof window !== 'undefined') {
|
|
200
|
+
;(window as any).__oneRouteCache = {
|
|
201
|
+
clear: () => {
|
|
202
|
+
hmrVersion++
|
|
203
|
+
// Clear all caches
|
|
204
|
+
Object.keys(loadedRoutes).forEach((key) => {
|
|
205
|
+
delete loadedRoutes[key]
|
|
206
|
+
})
|
|
207
|
+
Object.keys(promises).forEach((key) => {
|
|
208
|
+
delete promises[key]
|
|
209
|
+
})
|
|
210
|
+
// Clear preloaded modules too
|
|
211
|
+
Object.keys(preloadedModules).forEach((key) => {
|
|
212
|
+
delete preloadedModules[key]
|
|
213
|
+
})
|
|
214
|
+
},
|
|
215
|
+
getVersion: () => hmrVersion,
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
192
219
|
function resolve(id: string) {
|
|
193
220
|
clearTimeout(clears[id])
|
|
194
221
|
|
|
@@ -209,7 +236,22 @@ export function globbedRoutesToRouteContext(
|
|
|
209
236
|
}
|
|
210
237
|
|
|
211
238
|
if (!promises[id]) {
|
|
212
|
-
|
|
239
|
+
// In dev mode after HMR, use cache-busting import to get fresh module
|
|
240
|
+
// Note: we use a block + IIFE to help bundlers fully eliminate the import() call
|
|
241
|
+
// which Hermes cannot parse even as dead code
|
|
242
|
+
let importPromise: Promise<any>
|
|
243
|
+
if (
|
|
244
|
+
process.env.VITE_PLATFORM !== 'native' &&
|
|
245
|
+
process.env.NODE_ENV === 'development' &&
|
|
246
|
+
hmrVersion > 0 &&
|
|
247
|
+
routePaths[id]
|
|
248
|
+
) {
|
|
249
|
+
importPromise = (0, eval)('imp' + 'ort')(`${routePaths[id]}?t=${Date.now()}`)
|
|
250
|
+
} else {
|
|
251
|
+
importPromise = routesSync[id]()
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
promises[id] = importPromise
|
|
213
255
|
.then((val: any) => {
|
|
214
256
|
loadedRoutes[id] = val
|
|
215
257
|
delete promises[id]
|
|
@@ -47,7 +47,8 @@ export function getNavigateAction(
|
|
|
47
47
|
!childState ||
|
|
48
48
|
!nextNavigationState ||
|
|
49
49
|
(dynamicMatch &&
|
|
50
|
-
actionStateRoute.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 =
|
|
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(
|
|
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(
|
|
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(
|
|
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,
|