one 1.17.9 → 1.17.10
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.native.js.map +1 -1
- package/dist/cjs/__mocks__/@react-navigation/native-stack.native.js.map +1 -1
- package/dist/cjs/__mocks__/expo-linking.native.js.map +1 -1
- package/dist/cjs/__mocks__/expo-modules-core.native.js.map +1 -1
- package/dist/cjs/__mocks__/react-native-screens.native.js.map +1 -1
- package/dist/cjs/babel-plugins/environment-guard.native.js.map +1 -1
- package/dist/cjs/babel-plugins/inline-one-server-url.native.js.map +1 -1
- package/dist/cjs/babel-plugins/one-router-metro.native.js.map +1 -1
- package/dist/cjs/babel-plugins/one-router-metro.test.native.js.map +1 -1
- package/dist/cjs/babel-plugins/remove-server-code.native.js.map +1 -1
- package/dist/cjs/babel-preset/index.cjs +7 -2
- package/dist/cjs/babel-preset/index.native.js +7 -2
- package/dist/cjs/babel-preset/index.native.js.map +1 -1
- package/dist/cjs/babel-preset/index.test.cjs +13 -0
- package/dist/cjs/babel-preset/index.test.native.js +13 -0
- package/dist/cjs/babel-preset/index.test.native.js.map +1 -1
- package/dist/cjs/babel-preset/integration.test.native.js.map +1 -1
- package/dist/cjs/cli/build.cjs +14 -11
- package/dist/cjs/cli/build.native.js +14 -11
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +2 -1
- package/dist/cjs/cli/buildPage.native.js +2 -1
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
- package/dist/cjs/cli/checkNodeVersion.native.js.map +1 -1
- package/dist/cjs/cli/daemon.native.js.map +1 -1
- package/dist/cjs/cli/dev.native.js.map +1 -1
- package/dist/cjs/cli/generateBundlerConfig.native.js.map +1 -1
- package/dist/cjs/cli/generateBundlerConfig.test.native.js.map +1 -1
- package/dist/cjs/cli/generateRoutes.native.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.native.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.test.native.js.map +1 -1
- package/dist/cjs/cli/install-error-handlers.native.js.map +1 -1
- package/dist/cjs/cli/label-process.native.js.map +1 -1
- package/dist/cjs/cli/main.native.js.map +1 -1
- package/dist/cjs/cli/patch.native.js.map +1 -1
- package/dist/cjs/cli/patch.test.native.js.map +1 -1
- package/dist/cjs/cli/prebuild.native.js.map +1 -1
- package/dist/cjs/cli/runAndroid.native.js.map +1 -1
- package/dist/cjs/cli/runIos.native.js.map +1 -1
- package/dist/cjs/cli/securityScan.native.js.map +1 -1
- package/dist/cjs/cli/workerPool.native.js.map +1 -1
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/clientLoaderResolver.native.js.map +1 -1
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/constants.cjs +17 -5
- package/dist/cjs/constants.native.js +13 -1
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/constants.test.cjs +60 -0
- package/dist/cjs/constants.test.native.js +63 -0
- package/dist/cjs/constants.test.native.js.map +1 -0
- package/dist/cjs/createAPIRoute.native.js.map +1 -1
- package/dist/cjs/createApp.cjs +3 -2
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
- package/dist/cjs/createMiddleware.native.js.map +1 -1
- package/dist/cjs/daemon/index.native.js.map +1 -1
- package/dist/cjs/daemon/ipc.native.js.map +1 -1
- package/dist/cjs/daemon/picker.native.js.map +1 -1
- package/dist/cjs/daemon/proxy.native.js.map +1 -1
- package/dist/cjs/daemon/registry.native.js.map +1 -1
- package/dist/cjs/daemon/server.cjs +23 -0
- package/dist/cjs/daemon/server.native.js +61 -0
- package/dist/cjs/daemon/server.native.js.map +1 -1
- package/dist/cjs/daemon/tui.native.js.map +1 -1
- package/dist/cjs/daemon/types.native.js.map +1 -1
- package/dist/cjs/daemon/utils.native.js.map +1 -1
- package/dist/cjs/devtools/registry.native.js.map +1 -1
- package/dist/cjs/drawer.native.js.map +1 -1
- package/dist/cjs/fallbackViews/Sitemap.native.js.map +1 -1
- package/dist/cjs/fallbackViews/Unmatched.native.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
- package/dist/cjs/fork/SSRNavigationContainer.native.js.map +1 -1
- package/dist/cjs/fork/__tests__/getPathFromState.test.native.js.map +1 -1
- package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
- package/dist/cjs/fork/_shared.native.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.test.native.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.native.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.test.native.js.map +1 -1
- package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.test.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.test.native.js.map +1 -1
- package/dist/cjs/fork/useThenable.native.js.map +1 -1
- package/dist/cjs/fork/validatePathConfig.native.js.map +1 -1
- package/dist/cjs/getReactNavigationConfig.native.js.map +1 -1
- package/dist/cjs/head/Head.native.js.map +1 -1
- package/dist/cjs/head/HeadModule.native.js.map +1 -1
- package/dist/cjs/head/index.native.js.map +1 -1
- package/dist/cjs/head/types.native.js.map +1 -1
- package/dist/cjs/head/url.native.js.map +1 -1
- package/dist/cjs/headless-server.native.js.map +1 -1
- package/dist/cjs/headless.native.js.map +1 -1
- package/dist/cjs/hooks.native.js.map +1 -1
- package/dist/cjs/hooks.test.native.js.map +1 -1
- package/dist/cjs/href.native.js.map +1 -1
- package/dist/cjs/image/getImageData.native.js.map +1 -1
- package/dist/cjs/image.native.js.map +1 -1
- package/dist/cjs/index.cjs +6 -0
- package/dist/cjs/index.native.js +7 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interfaces/router.native.js.map +1 -1
- package/dist/cjs/layouts/Drawer.native.js.map +1 -1
- package/dist/cjs/layouts/NativeTabs.native.js.map +1 -1
- package/dist/cjs/layouts/Stack.native.js +1 -1
- package/dist/cjs/layouts/Stack.native.js.map +1 -1
- package/dist/cjs/layouts/Tabs.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/lazyWithRetry.cjs +32 -0
- package/dist/cjs/lazyWithRetry.native.js +37 -0
- package/dist/cjs/lazyWithRetry.native.js.map +1 -0
- package/dist/cjs/link/Link.native.js.map +1 -1
- package/dist/cjs/link/Redirect.native.js.map +1 -1
- package/dist/cjs/link/getLinking.native.js.map +1 -1
- package/dist/cjs/link/href.native.js.map +1 -1
- package/dist/cjs/link/path.native.js.map +1 -1
- package/dist/cjs/link/prefetchIntent.native.js.map +1 -1
- package/dist/cjs/link/prefetchIntent.test.native.js.map +1 -1
- package/dist/cjs/link/prefetchViewport.native.js.map +1 -1
- package/dist/cjs/link/prefetchViewport.test.native.js.map +1 -1
- package/dist/cjs/link/useLinkTo.native.js.map +1 -1
- package/dist/cjs/link/useLoadedNavigation.native.js.map +1 -1
- package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/metro-config/withOne.native.js.map +1 -1
- package/dist/cjs/metro-config/withOne.test.native.js.map +1 -1
- package/dist/cjs/native-tabs.native.js.map +1 -1
- package/dist/cjs/notFoundState.native.js.map +1 -1
- package/dist/cjs/polyfills-mobile.native.js.map +1 -1
- package/dist/cjs/polyfills-server.native.js.map +1 -1
- package/dist/cjs/router/FlagsContext.native.js.map +1 -1
- package/dist/cjs/router/Route.native.js.map +1 -1
- package/dist/cjs/router/RouteInfoContext.native.js.map +1 -1
- package/dist/cjs/router/RouterStore.native.js.map +1 -1
- package/dist/cjs/router/SpaShellContext.native.js.map +1 -1
- package/dist/cjs/router/createRoute.native.js.map +1 -1
- package/dist/cjs/router/filterRootHTML.native.js.map +1 -1
- package/dist/cjs/router/findRouteNode.native.js.map +1 -1
- package/dist/cjs/router/getLinkingConfig.native.js.map +1 -1
- package/dist/cjs/router/getLinkingConfig.test.native.js.map +1 -1
- package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
- package/dist/cjs/router/getRouteInfo.native.js.map +1 -1
- package/dist/cjs/router/getRoutes.native.js.map +1 -1
- package/dist/cjs/router/getRoutes.test.native.js.map +1 -1
- package/dist/cjs/router/glob-patterns.native.js.map +1 -1
- package/dist/cjs/router/imperative-api.native.js.map +1 -1
- package/dist/cjs/router/interceptRoutes.native.js.map +1 -1
- package/dist/cjs/router/isIndexPath.native.js.map +1 -1
- package/dist/cjs/router/lastAction.native.js.map +1 -1
- package/dist/cjs/router/linkingConfig.native.js.map +1 -1
- package/dist/cjs/router/matchers.native.js.map +1 -1
- package/dist/cjs/router/matchers.test.native.js.map +1 -1
- package/dist/cjs/router/params.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +22 -7
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/serverLocationContext.native.js.map +1 -1
- package/dist/cjs/router/sitemap.native.js.map +1 -1
- package/dist/cjs/router/sitemap.test.native.js.map +1 -1
- package/dist/cjs/router/sortRoutes.native.js.map +1 -1
- package/dist/cjs/router/useInitializeOneRouter.native.js.map +1 -1
- package/dist/cjs/router/useNavigation.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +17 -2
- package/dist/cjs/router/useScreens.native.js +24 -4
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.native.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.test.native.js.map +1 -1
- package/dist/cjs/screensFeatureFlags.native.js.map +1 -1
- package/dist/cjs/serve-worker.native.js.map +1 -1
- package/dist/cjs/serve.cjs +2 -1
- package/dist/cjs/serve.native.js +2 -1
- package/dist/cjs/serve.native.js.map +1 -1
- package/dist/cjs/server/ServerContextScript.cjs +4 -3
- package/dist/cjs/server/ServerContextScript.native.js +6 -4
- package/dist/cjs/server/ServerContextScript.native.js.map +1 -1
- package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
- package/dist/cjs/server/getServerManifest.native.js.map +1 -1
- package/dist/cjs/server/getServerManifest.test.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +21 -8
- package/dist/cjs/server/oneServe.native.js +21 -8
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/setServerGlobals.native.js.map +1 -1
- package/dist/cjs/server/setupBuildOptions.cjs +6 -1
- package/dist/cjs/server/setupBuildOptions.native.js +10 -4
- package/dist/cjs/server/setupBuildOptions.native.js.map +1 -1
- package/dist/cjs/server/setupServerGlobals.native.js.map +1 -1
- package/dist/cjs/server/ssrLoaderData.native.js.map +1 -1
- package/dist/cjs/server/staticHtmlFetcher.native.js.map +1 -1
- package/dist/cjs/server/workerHandler.cjs +2 -2
- package/dist/cjs/server/workerHandler.native.js +2 -2
- package/dist/cjs/server/workerHandler.native.js.map +1 -1
- package/dist/cjs/server-render.native.js.map +1 -1
- package/dist/cjs/skewProtection.native.js.map +1 -1
- package/dist/cjs/testing-utils.native.js.map +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.test.native.js.map +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.test.native.js.map +1 -1
- package/dist/cjs/typed-routes/injectRouteHelpers.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/ui/Slot.native.js.map +1 -1
- package/dist/cjs/ui/TabContext.native.js.map +1 -1
- package/dist/cjs/ui/TabList.native.js.map +1 -1
- package/dist/cjs/ui/TabRouter.native.js.map +1 -1
- package/dist/cjs/ui/TabSlot.native.js.map +1 -1
- package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
- package/dist/cjs/ui/Tabs.native.js.map +1 -1
- package/dist/cjs/ui/common.native.js.map +1 -1
- package/dist/cjs/ui/index.native.js.map +1 -1
- package/dist/cjs/ui/useComponent.native.js.map +1 -1
- package/dist/cjs/useFocusEffect.native.js.map +1 -1
- package/dist/cjs/useLoader.cjs +30 -7
- package/dist/cjs/useLoader.native.js +30 -7
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/useMatches.native.js.map +1 -1
- package/dist/cjs/useMatches.test.native.js.map +1 -1
- package/dist/cjs/useServerHeadInsertion.native.js.map +1 -1
- package/dist/cjs/utils/assertIsReady.native.js.map +1 -1
- package/dist/cjs/utils/buildOutputPointer.cjs +81 -0
- package/dist/cjs/utils/buildOutputPointer.native.js +92 -0
- package/dist/cjs/utils/buildOutputPointer.native.js.map +1 -0
- package/dist/cjs/utils/buildOutputPointer.test.cjs +94 -0
- package/dist/cjs/utils/buildOutputPointer.test.native.js +97 -0
- package/dist/cjs/utils/buildOutputPointer.test.native.js.map +1 -0
- package/dist/cjs/utils/children.native.js.map +1 -1
- package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
- package/dist/cjs/utils/cleanUrl.test.native.js.map +1 -1
- package/dist/cjs/utils/dynamicImport.cjs +32 -6
- package/dist/cjs/utils/dynamicImport.native.js +35 -2
- package/dist/cjs/utils/dynamicImport.native.js.map +1 -1
- package/dist/cjs/utils/dynamicImport.test.cjs +87 -0
- package/dist/cjs/utils/dynamicImport.test.native.js +108 -0
- package/dist/cjs/utils/dynamicImport.test.native.js.map +1 -0
- package/dist/cjs/utils/ensureExists.native.js.map +1 -1
- package/dist/cjs/utils/evictOldest.native.js.map +1 -1
- package/dist/cjs/utils/existsAsync.native.js.map +1 -1
- package/dist/cjs/utils/findRootLayout.native.js.map +1 -1
- package/dist/cjs/utils/getPageExport.native.js.map +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.test.native.js.map +1 -1
- package/dist/cjs/utils/getRouterRootFromOneOptions.native.js.map +1 -1
- package/dist/cjs/utils/globDir.native.js.map +1 -1
- package/dist/cjs/utils/hashString.native.js.map +1 -1
- package/dist/cjs/utils/htmlEscape.native.js.map +1 -1
- package/dist/cjs/utils/isResponse.native.js.map +1 -1
- package/dist/cjs/utils/isRolldown.native.js.map +1 -1
- package/dist/cjs/utils/isStatus.native.js.map +1 -1
- package/dist/cjs/utils/pLimit.native.js.map +1 -1
- package/dist/cjs/utils/posixPathContract.test.cjs +66 -0
- package/dist/cjs/utils/posixPathContract.test.native.js +89 -0
- package/dist/cjs/utils/posixPathContract.test.native.js.map +1 -0
- package/dist/cjs/utils/promiseWithResolvers.native.js.map +1 -1
- package/dist/cjs/utils/rand.native.js.map +1 -1
- package/dist/cjs/utils/redirect.native.js.map +1 -1
- package/dist/cjs/utils/removeParams.native.js.map +1 -1
- package/dist/cjs/utils/removeSearch.native.js.map +1 -1
- package/dist/cjs/utils/removeUndefined.native.js.map +1 -1
- package/dist/cjs/utils/routeFileWatch.native.js.map +1 -1
- package/dist/cjs/utils/routeFileWatch.test.native.js.map +1 -1
- package/dist/cjs/utils/style.native.js.map +1 -1
- package/dist/cjs/utils/toAbsolute.native.js.map +1 -1
- package/dist/cjs/utils/toServerOutputPath.cjs +36 -0
- package/dist/cjs/utils/toServerOutputPath.native.js +39 -0
- package/dist/cjs/utils/toServerOutputPath.native.js.map +1 -0
- package/dist/cjs/utils/toServerOutputPath.test.cjs +27 -0
- package/dist/cjs/utils/toServerOutputPath.test.native.js +30 -0
- package/dist/cjs/utils/toServerOutputPath.test.native.js.map +1 -0
- package/dist/cjs/utils/trackLoaderDependencies.native.js.map +1 -1
- package/dist/cjs/utils/url.native.js.map +1 -1
- package/dist/cjs/utils/useConstant.native.js.map +1 -1
- package/dist/cjs/utils/watchFile.native.js.map +1 -1
- package/dist/cjs/utils/weakKey.native.js.map +1 -1
- package/dist/cjs/utils/weakMemo.native.js.map +1 -1
- package/dist/cjs/utils/withStaticProperties.native.js.map +1 -1
- package/dist/cjs/utils/workerImport.native.js.map +1 -1
- package/dist/cjs/validateParams.native.js.map +1 -1
- package/dist/cjs/validateSearch.native.js.map +1 -1
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js.map +1 -1
- package/dist/cjs/vercel/build/config/vc-config-base.native.js.map +1 -1
- package/dist/cjs/vercel/build/config/vc-package-base.native.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
- package/dist/cjs/vercel/build/getPathFromRoute.native.js.map +1 -1
- package/dist/cjs/views/EmptyRoute.native.js.map +1 -1
- package/dist/cjs/views/ErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/views/OneStackRouter.native.js.map +1 -1
- package/dist/cjs/views/Protected.native.js.map +1 -1
- package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/Screen.native.js.map +1 -1
- package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
- package/dist/cjs/views/SourceInspector.native.js.map +1 -1
- package/dist/cjs/views/Try.native.js.map +1 -1
- package/dist/cjs/vite/DevHead.native.js.map +1 -1
- package/dist/cjs/vite/constants.native.js.map +1 -1
- package/dist/cjs/vite/customNodeExternals.native.js.map +1 -1
- package/dist/cjs/vite/ensureTsConfig.native.js.map +1 -1
- package/dist/cjs/vite/findDepsToOptimize.native.js.map +1 -1
- package/dist/cjs/vite/getManifest.native.js.map +1 -1
- package/dist/cjs/vite/getManifest.test.cjs +46 -0
- package/dist/cjs/vite/getManifest.test.native.js +52 -0
- package/dist/cjs/vite/getManifest.test.native.js.map +1 -0
- package/dist/cjs/vite/loadConfig.native.js.map +1 -1
- package/dist/cjs/vite/makePluginWebOnly.native.js.map +1 -1
- package/dist/cjs/vite/one-server-only.test.native.js.map +1 -1
- package/dist/cjs/vite/one.cjs +4 -3
- package/dist/cjs/vite/one.native.js +4 -3
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/environmentGuardPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +25 -16
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +25 -16
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/imageDataPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/imageDataPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.cjs +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/useDomPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryConstants.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +2 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +2 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/replaceLoader.native.js.map +1 -1
- package/dist/cjs/vite/resolveResponse.native.js.map +1 -1
- package/dist/cjs/vite/types.native.js.map +1 -1
- package/dist/cjs/vite-auto-warm.native.js.map +1 -1
- package/dist/cjs/vite.native.js.map +1 -1
- package/dist/cjs/zero/getQueryKey.native.js.map +1 -1
- package/dist/cjs/zero/isZeroQuery.native.js.map +1 -1
- package/dist/cjs/zero/resolveQuery.native.js.map +1 -1
- package/dist/cjs/zero/subscribeToQuery.native.js.map +1 -1
- package/dist/cjs/zero/types.native.js.map +1 -1
- package/dist/cjs/zero/useQuery.native.js.map +1 -1
- package/dist/cjs/zero/useQueryZero.native.js.map +1 -1
- package/dist/cjs/zero.native.js.map +1 -1
- package/dist/esm/babel-preset/index.mjs +7 -2
- package/dist/esm/babel-preset/index.mjs.map +1 -1
- package/dist/esm/babel-preset/index.native.js +7 -2
- package/dist/esm/babel-preset/index.native.js.map +1 -1
- package/dist/esm/babel-preset/index.test.mjs +13 -0
- package/dist/esm/babel-preset/index.test.mjs.map +1 -1
- package/dist/esm/babel-preset/index.test.native.js +13 -0
- package/dist/esm/babel-preset/index.test.native.js.map +1 -1
- package/dist/esm/cli/build.mjs +15 -12
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +15 -12
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +2 -1
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +2 -1
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/constants.mjs +14 -5
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js +10 -1
- package/dist/esm/constants.native.js.map +1 -1
- package/dist/esm/constants.test.mjs +37 -0
- package/dist/esm/constants.test.mjs.map +1 -0
- package/dist/esm/constants.test.native.js +37 -0
- package/dist/esm/constants.test.native.js.map +1 -0
- package/dist/esm/createApp.mjs +3 -2
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/daemon/server.mjs +23 -0
- package/dist/esm/daemon/server.mjs.map +1 -1
- package/dist/esm/daemon/server.native.js +61 -0
- package/dist/esm/daemon/server.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 +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/lazyWithRetry.mjs +7 -0
- package/dist/esm/lazyWithRetry.mjs.map +1 -0
- package/dist/esm/lazyWithRetry.native.js +9 -0
- package/dist/esm/lazyWithRetry.native.js.map +1 -0
- package/dist/esm/router/router.mjs +22 -7
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +18 -3
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +25 -5
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/serve.mjs +2 -1
- package/dist/esm/serve.mjs.map +1 -1
- package/dist/esm/serve.native.js +2 -1
- package/dist/esm/serve.native.js.map +1 -1
- package/dist/esm/server/ServerContextScript.mjs +4 -3
- package/dist/esm/server/ServerContextScript.mjs.map +1 -1
- package/dist/esm/server/ServerContextScript.native.js +6 -4
- package/dist/esm/server/ServerContextScript.native.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +23 -10
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +23 -10
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/server/setupBuildOptions.mjs +6 -1
- package/dist/esm/server/setupBuildOptions.mjs.map +1 -1
- package/dist/esm/server/setupBuildOptions.native.js +10 -4
- package/dist/esm/server/setupBuildOptions.native.js.map +1 -1
- package/dist/esm/server/workerHandler.mjs +3 -3
- package/dist/esm/server/workerHandler.mjs.map +1 -1
- package/dist/esm/server/workerHandler.native.js +3 -3
- package/dist/esm/server/workerHandler.native.js.map +1 -1
- package/dist/esm/useLoader.mjs +30 -7
- package/dist/esm/useLoader.mjs.map +1 -1
- package/dist/esm/useLoader.native.js +30 -7
- package/dist/esm/useLoader.native.js.map +1 -1
- package/dist/esm/utils/buildOutputPointer.mjs +43 -0
- package/dist/esm/utils/buildOutputPointer.mjs.map +1 -0
- package/dist/esm/utils/buildOutputPointer.native.js +51 -0
- package/dist/esm/utils/buildOutputPointer.native.js.map +1 -0
- package/dist/esm/utils/buildOutputPointer.test.mjs +71 -0
- package/dist/esm/utils/buildOutputPointer.test.mjs.map +1 -0
- package/dist/esm/utils/buildOutputPointer.test.native.js +71 -0
- package/dist/esm/utils/buildOutputPointer.test.native.js.map +1 -0
- package/dist/esm/utils/dynamicImport.mjs +29 -6
- package/dist/esm/utils/dynamicImport.mjs.map +1 -1
- package/dist/esm/utils/dynamicImport.native.js +32 -2
- package/dist/esm/utils/dynamicImport.native.js.map +1 -1
- package/dist/esm/utils/dynamicImport.test.mjs +88 -0
- package/dist/esm/utils/dynamicImport.test.mjs.map +1 -0
- package/dist/esm/utils/dynamicImport.test.native.js +106 -0
- package/dist/esm/utils/dynamicImport.test.native.js.map +1 -0
- package/dist/esm/utils/posixPathContract.test.mjs +67 -0
- package/dist/esm/utils/posixPathContract.test.mjs.map +1 -0
- package/dist/esm/utils/posixPathContract.test.native.js +87 -0
- package/dist/esm/utils/posixPathContract.test.native.js.map +1 -0
- package/dist/esm/utils/toServerOutputPath.mjs +11 -0
- package/dist/esm/utils/toServerOutputPath.mjs.map +1 -0
- package/dist/esm/utils/toServerOutputPath.native.js +11 -0
- package/dist/esm/utils/toServerOutputPath.native.js.map +1 -0
- package/dist/esm/utils/toServerOutputPath.test.mjs +28 -0
- package/dist/esm/utils/toServerOutputPath.test.mjs.map +1 -0
- package/dist/esm/utils/toServerOutputPath.test.native.js +28 -0
- package/dist/esm/utils/toServerOutputPath.test.native.js.map +1 -0
- package/dist/esm/vite/getManifest.test.mjs +47 -0
- package/dist/esm/vite/getManifest.test.mjs.map +1 -0
- package/dist/esm/vite/getManifest.test.native.js +50 -0
- package/dist/esm/vite/getManifest.test.native.js.map +1 -0
- package/dist/esm/vite/one.mjs +4 -3
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +4 -3
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +26 -17
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +26 -17
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +2 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +2 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/package.json +23 -9
- package/src/babel-preset/index.test.ts +20 -0
- package/src/babel-preset/index.ts +21 -4
- package/src/cli/build.ts +23 -15
- package/src/cli/buildPage.ts +3 -1
- package/src/constants.test.ts +55 -0
- package/src/constants.ts +32 -4
- package/src/createApp.tsx +7 -2
- package/src/daemon/server.ts +30 -0
- package/src/index.ts +9 -0
- package/src/lazyWithRetry.tsx +21 -0
- package/src/router/router.ts +32 -7
- package/src/router/useScreens.tsx +22 -3
- package/src/serve.ts +2 -2
- package/src/server/ServerContextScript.tsx +9 -3
- package/src/server/oneServe.ts +33 -15
- package/src/server/setupBuildOptions.ts +11 -2
- package/src/server/workerHandler.ts +9 -5
- package/src/useLoader.ts +41 -6
- package/src/utils/buildOutputPointer.test.ts +97 -0
- package/src/utils/buildOutputPointer.ts +71 -0
- package/src/utils/dynamicImport.test.ts +92 -0
- package/src/utils/dynamicImport.ts +80 -13
- package/src/utils/posixPathContract.test.ts +97 -0
- package/src/utils/toServerOutputPath.test.ts +49 -0
- package/src/utils/toServerOutputPath.ts +11 -0
- package/src/vite/getManifest.test.ts +49 -0
- package/src/vite/one.ts +9 -5
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +31 -17
- package/src/vite/plugins/sourceInspectorPlugin.ts +2 -1
- package/src/vite/plugins/virtualEntryPlugin.ts +5 -2
- package/types/babel-preset/index.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/constants.d.ts +7 -4
- package/types/constants.d.ts.map +1 -1
- package/types/constants.test.d.ts +2 -0
- package/types/constants.test.d.ts.map +1 -0
- package/types/createApp.d.ts.map +1 -1
- package/types/daemon/server.d.ts.map +1 -1
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/lazyWithRetry.d.ts +6 -0
- package/types/lazyWithRetry.d.ts.map +1 -0
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/serve.d.ts.map +1 -1
- package/types/server/ServerContextScript.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/workerHandler.d.ts.map +1 -1
- package/types/useLoader.d.ts.map +1 -1
- package/types/utils/buildOutputPointer.d.ts +4 -0
- package/types/utils/buildOutputPointer.d.ts.map +1 -0
- package/types/utils/buildOutputPointer.test.d.ts +2 -0
- package/types/utils/buildOutputPointer.test.d.ts.map +1 -0
- package/types/utils/dynamicImport.d.ts +10 -2
- package/types/utils/dynamicImport.d.ts.map +1 -1
- package/types/utils/dynamicImport.test.d.ts +2 -0
- package/types/utils/dynamicImport.test.d.ts.map +1 -0
- package/types/utils/posixPathContract.test.d.ts +2 -0
- package/types/utils/posixPathContract.test.d.ts.map +1 -0
- package/types/utils/toServerOutputPath.d.ts +2 -0
- package/types/utils/toServerOutputPath.d.ts.map +1 -0
- package/types/utils/toServerOutputPath.test.d.ts +2 -0
- package/types/utils/toServerOutputPath.test.d.ts.map +1 -0
- package/types/vite/getManifest.test.d.ts +2 -0
- package/types/vite/getManifest.test.d.ts.map +1 -0
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/sourceInspectorPlugin.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolve","configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","JSON","stringify","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","load","_options_router2","isNative","environment","isSSR","setupResult","nativewindImport","enableNativewind","setupPromiseArg","linkingArg","linking","p","flags","_options_router1","isNative1","setupResult1","linkingArg1"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,aAAA,QAAqB;AAE9B,SAASC,mBAAA,QAA2B;AACpC,SAAAC,sBAAA,EAAAC,kBAAA,EAAAC,oCAAA,EAAAC,iCAAA;AAAA,SACEC,sBAAA,EAAAC,4BAAA,EAAAC,cAAA,EAAAC,oBAAA;AAAA,SACAC,mBAAAC,SAAA;EACA,KAAAA,SAAA;EACA,WAAAA,SAAA;IAAA,OACK;MAEPC,MAAA,EAAAD,SAAA;MACEE,MAAA,EAAAF,SAAA;MACAG,GAAA,EAAAH,SAAA;MACAI,OAAA,EAAAJ;IACA;EAAA;EAUF,YAAS,IAAAA,SAAA,EACP;IAEA,OAAK;MACDC,MAAA,EAAOD,SAAA,CAAAC,MAAc;MACvBC,MAAO,EAAAF,SAAA,CAAAE,MAAA;MACLC,GAAA,EAAAH,SAAQ,CAAAK,MAAA;MACRD,OAAA,EAAQJ,SAAA,CAAAK;IAAA;EACH;EACI,IACXC,EAAA,GAAAN,SAAA;EACF;IACAC,MAAI,EAAAK,EAAA,CAAAL,MAAY;IACdC,MAAA,EAAOI,EAAA,CAAAJ,MAAA;IAAAC,GACL,EAAAG,EAAA,CAAAH,GAAQ;IAAUC,OAClB,EAAAE,EAAQ,CAAAF;EAAU;AACH;AACI,SACrBG,mBAAAC,eAAA,EAAAC,UAAA,EAAAC,eAAA,EAAAC,IAAA;EACF,IAAAC,MAAA;IACAX,MAAM,UAAK;IAMXY,GAAA,EAAO;IACLV,GAAA,OAAQ;IACRC,OAAA,EAAQ;EAAG;EACH,IACRU,GAAA,GAAAF,MAAY,CAAAJ,eAAA;EACd,KAAAM,GAAA;IACFC,eAAA;IAWAC,kBAAS;IAMPC,cAA2D;EAAA;EACjD,IACRjB,SAAK,GAAAS,UAAA,CAAAK,GAAA;EAAA,IACL,CAAAd,SAAK;IACLe,eAAS;IACXC,kBAAA;IAEAC,cAAY;EACZ;EAEA,IAAAC,iBAAkB,GAAAP,IAAA,GAAWvB,
|
|
1
|
+
{"version":3,"names":["resolve","pathToFileURL","configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","href","JSON","stringify","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","load","_options_router2","isNative","environment","isSSR","setupResult","nativewindImport","enableNativewind","setupPromiseArg","linkingArg","linking","p","flags","_options_router1","isNative1","setupResult1","linkingArg1"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.10",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -119,6 +119,12 @@
|
|
|
119
119
|
"import": "./dist/esm/drawer.mjs",
|
|
120
120
|
"require": "./dist/cjs/drawer.js"
|
|
121
121
|
},
|
|
122
|
+
"./native-tabs": {
|
|
123
|
+
"react-native": "./dist/esm/native-tabs.native.js",
|
|
124
|
+
"types": "./types/native-tabs.d.ts",
|
|
125
|
+
"import": "./dist/esm/native-tabs.mjs",
|
|
126
|
+
"require": "./dist/cjs/native-tabs.js"
|
|
127
|
+
},
|
|
122
128
|
"./headless": {
|
|
123
129
|
"types": "./types/headless.d.ts",
|
|
124
130
|
"import": "./dist/esm/headless.mjs",
|
|
@@ -180,18 +186,18 @@
|
|
|
180
186
|
"@cloudflare/vite-plugin": "^1.33.1",
|
|
181
187
|
"@swc/core": "^1.14.0",
|
|
182
188
|
"@ungap/structured-clone": "^1.2.0",
|
|
183
|
-
"@vxrn/color-scheme": "1.17.
|
|
184
|
-
"@vxrn/compiler": "1.17.
|
|
185
|
-
"@vxrn/resolve": "1.17.
|
|
186
|
-
"@vxrn/tslib-lite": "1.17.
|
|
187
|
-
"@vxrn/use-isomorphic-layout-effect": "1.17.
|
|
188
|
-
"@vxrn/vite-plugin-metro": "1.17.
|
|
189
|
+
"@vxrn/color-scheme": "1.17.10",
|
|
190
|
+
"@vxrn/compiler": "1.17.10",
|
|
191
|
+
"@vxrn/resolve": "1.17.10",
|
|
192
|
+
"@vxrn/tslib-lite": "1.17.10",
|
|
193
|
+
"@vxrn/use-isomorphic-layout-effect": "1.17.10",
|
|
194
|
+
"@vxrn/vite-plugin-metro": "1.17.10",
|
|
189
195
|
"babel-dead-code-elimination": "1.0.10",
|
|
190
196
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
191
197
|
"babel-preset-expo": "*",
|
|
192
198
|
"citty": "^0.1.6",
|
|
193
199
|
"core-js": "^3.38.1",
|
|
194
|
-
"create-vxrn": "1.17.
|
|
200
|
+
"create-vxrn": "1.17.10",
|
|
195
201
|
"escape-string-regexp": "^5.0.0",
|
|
196
202
|
"expo-linking": "~55.0.7",
|
|
197
203
|
"expo-modules-core": "~55.0.16",
|
|
@@ -211,16 +217,18 @@
|
|
|
211
217
|
"tsconfig-paths": "^4",
|
|
212
218
|
"use-latest-callback": "^0.2.3",
|
|
213
219
|
"vite": "^8.0.13",
|
|
214
|
-
"vxrn": "1.17.
|
|
220
|
+
"vxrn": "1.17.10",
|
|
215
221
|
"ws": "^8.18.0",
|
|
216
222
|
"xxhashjs": "^0.2.2"
|
|
217
223
|
},
|
|
218
224
|
"peerDependencies": {
|
|
225
|
+
"@bottom-tabs/react-navigation": ">=0.9.0",
|
|
219
226
|
"@react-navigation/drawer": "~7.9.8",
|
|
220
227
|
"@react-navigation/native": "~7.2.2",
|
|
221
228
|
"react": "^19.2.0",
|
|
222
229
|
"react-dom": "^19.2.0",
|
|
223
230
|
"react-native": "0.83.2",
|
|
231
|
+
"react-native-bottom-tabs": ">=1.0.0",
|
|
224
232
|
"react-native-gesture-handler": ">=2.0.0",
|
|
225
233
|
"react-native-reanimated": ">=4.0.0",
|
|
226
234
|
"react-native-safe-area-context": ">=5.0.0",
|
|
@@ -229,12 +237,18 @@
|
|
|
229
237
|
"sharp": "^0.34.5"
|
|
230
238
|
},
|
|
231
239
|
"peerDependenciesMeta": {
|
|
240
|
+
"@bottom-tabs/react-navigation": {
|
|
241
|
+
"optional": true
|
|
242
|
+
},
|
|
232
243
|
"@react-navigation/drawer": {
|
|
233
244
|
"optional": true
|
|
234
245
|
},
|
|
235
246
|
"react-native": {
|
|
236
247
|
"optional": true
|
|
237
248
|
},
|
|
249
|
+
"react-native-bottom-tabs": {
|
|
250
|
+
"optional": true
|
|
251
|
+
},
|
|
238
252
|
"react-native-gesture-handler": {
|
|
239
253
|
"optional": true
|
|
240
254
|
},
|
|
@@ -147,4 +147,24 @@ describe('buildOneBabelPlugins', () => {
|
|
|
147
147
|
const oneRouterMetro = plugins[3] as [string, Record<string, unknown>]
|
|
148
148
|
expect(oneRouterMetro[1].ONE_ROUTER_LINKING_CONFIG).toBe(linking)
|
|
149
149
|
})
|
|
150
|
+
|
|
151
|
+
// both values are inlined by babel as JS literals — `ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY`
|
|
152
|
+
// becomes the first arg of `require.context()`, `ONE_SETUP_FILE_NATIVE` becomes the literal
|
|
153
|
+
// in `import "..."`. Native separators on Windows produce platform-conditional AST that
|
|
154
|
+
// breaks source-maps, snapshot tests, and rolldown/Vite POSIX module-graph keys.
|
|
155
|
+
it('emits forward-slash-only paths for `require.context` + `import` specifiers', () => {
|
|
156
|
+
const plugins = buildOneBabelPlugins({
|
|
157
|
+
projectRoot,
|
|
158
|
+
relativeRouterRoot: 'app',
|
|
159
|
+
setupFile: 'src/setup-native.ts',
|
|
160
|
+
includeImportMetaEnv: false,
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
const oneRouterMetro = plugins[3] as [string, Record<string, unknown>]
|
|
164
|
+
const appRoot = oneRouterMetro[1].ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY as string
|
|
165
|
+
const setupNative = oneRouterMetro[1].ONE_SETUP_FILE_NATIVE as string
|
|
166
|
+
|
|
167
|
+
expect(appRoot).not.toContain('\\')
|
|
168
|
+
expect(setupNative).not.toContain('\\')
|
|
169
|
+
})
|
|
150
170
|
})
|
|
@@ -8,6 +8,13 @@ import {
|
|
|
8
8
|
ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS,
|
|
9
9
|
} from '../router/glob-patterns'
|
|
10
10
|
|
|
11
|
+
// forward-slash a relative path produced by `path.relative` on every platform.
|
|
12
|
+
// `babel-preset` deliberately avoids `vite.normalizePath` so the preset stays
|
|
13
|
+
// usable in standalone Metro contexts where Vite isn't installed.
|
|
14
|
+
function toPosixRelativePath(relativePath: string): string {
|
|
15
|
+
return path.sep === '\\' ? relativePath.replace(/\\/g, '/') : relativePath
|
|
16
|
+
}
|
|
17
|
+
|
|
11
18
|
// Babel's `ConfigAPI` shape: cache mutator, env helper, and a cwd accessor.
|
|
12
19
|
// The public @babel/core typing omits `cwd()` so we describe it locally.
|
|
13
20
|
type BabelConfigAPI = {
|
|
@@ -138,7 +145,13 @@ export function buildOneBabelPlugins({
|
|
|
138
145
|
? setupFile
|
|
139
146
|
: setupFile.native || setupFile.ios || setupFile.android
|
|
140
147
|
if (!file) return undefined
|
|
141
|
-
|
|
148
|
+
// posix-only — embedded as a JS import specifier in `one-router-metro` (becomes
|
|
149
|
+
// literal `import "..."`); backslashes on Windows produce platform-conditional AST
|
|
150
|
+
// and silently break rolldown/Vite POSIX module-graph keys for source-map / snapshot
|
|
151
|
+
// consumers downstream.
|
|
152
|
+
return toPosixRelativePath(
|
|
153
|
+
path.relative(path.dirname(metroEntryPath), path.join(projectRoot, file))
|
|
154
|
+
)
|
|
142
155
|
})()
|
|
143
156
|
|
|
144
157
|
return [
|
|
@@ -173,9 +186,13 @@ export function buildOneBabelPlugins({
|
|
|
173
186
|
[
|
|
174
187
|
'one/babel-plugin-one-router-metro',
|
|
175
188
|
{
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
189
|
+
// posix-only — becomes the first arg of `require.context()` in `one-router-metro`;
|
|
190
|
+
// backslashes on Windows drift the babel-emitted AST per platform.
|
|
191
|
+
ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY: toPosixRelativePath(
|
|
192
|
+
path.relative(
|
|
193
|
+
path.dirname(metroEntryPath),
|
|
194
|
+
path.join(projectRoot, relativeRouterRoot)
|
|
195
|
+
)
|
|
179
196
|
),
|
|
180
197
|
ONE_ROUTER_ROOT_FOLDER_NAME: relativeRouterRoot,
|
|
181
198
|
ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING:
|
package/src/cli/build.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire } from 'node:module'
|
|
2
2
|
import { cpus } from 'node:os'
|
|
3
|
-
import Path, { join, relative, resolve } from 'node:path'
|
|
3
|
+
import Path, { join, posix, relative, resolve } from 'node:path'
|
|
4
4
|
import { resolvePath } from '@vxrn/resolve'
|
|
5
5
|
import FSExtra from 'fs-extra'
|
|
6
6
|
import MicroMatch from 'micromatch'
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
|
|
23
23
|
import * as constants from '../constants'
|
|
24
24
|
import { setServerGlobals } from '../server/setServerGlobals'
|
|
25
|
+
import { writeBuildOutputPointer } from '../utils/buildOutputPointer'
|
|
25
26
|
import { getPathnameFromFilePath } from '../utils/getPathnameFromFilePath'
|
|
26
27
|
import { getRouterRootFromOneOptions } from '../utils/getRouterRootFromOneOptions'
|
|
27
28
|
import { isRolldown } from '../utils/isRolldown'
|
|
@@ -552,19 +553,17 @@ export async function build(args: {
|
|
|
552
553
|
return name
|
|
553
554
|
},
|
|
554
555
|
chunkFileNames: (chunkInfo) => {
|
|
555
|
-
const
|
|
556
|
-
const
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
)
|
|
560
|
-
return Path.join(dir, `${name}-[hash].cjs`)
|
|
556
|
+
const chunkName = normalizePath(chunkInfo.name)
|
|
557
|
+
const dir = posix.dirname(chunkName)
|
|
558
|
+
const name = posix.basename(chunkName, posix.extname(chunkName))
|
|
559
|
+
return posix.join(dir, `${name}-[hash].cjs`)
|
|
561
560
|
},
|
|
562
561
|
assetFileNames: (assetInfo) => {
|
|
563
|
-
const
|
|
564
|
-
const dir =
|
|
565
|
-
const baseName =
|
|
566
|
-
const ext =
|
|
567
|
-
return
|
|
562
|
+
const assetName = normalizePath(assetInfo.name ?? '')
|
|
563
|
+
const dir = posix.dirname(assetName)
|
|
564
|
+
const baseName = posix.basename(assetName, posix.extname(assetName))
|
|
565
|
+
const ext = posix.extname(assetName)
|
|
566
|
+
return posix.join(dir, `${baseName}-[hash]${ext}`)
|
|
568
567
|
},
|
|
569
568
|
}),
|
|
570
569
|
},
|
|
@@ -611,7 +610,11 @@ export async function build(args: {
|
|
|
611
610
|
const outChunks = middlewareBuildInfo.output.filter((x) => x.type === 'chunk')
|
|
612
611
|
const chunk = outChunks.find((x) => x.facadeModuleId === fullPath)
|
|
613
612
|
if (!chunk) throw new Error(`internal err finding middleware`)
|
|
614
|
-
builtMiddlewares[middleware.file] = join(
|
|
613
|
+
builtMiddlewares[middleware.file] = posix.join(
|
|
614
|
+
outDir,
|
|
615
|
+
'middlewares',
|
|
616
|
+
chunk.fileName
|
|
617
|
+
)
|
|
615
618
|
}
|
|
616
619
|
}
|
|
617
620
|
|
|
@@ -1030,7 +1033,8 @@ export async function build(args: {
|
|
|
1030
1033
|
})
|
|
1031
1034
|
}
|
|
1032
1035
|
|
|
1033
|
-
|
|
1036
|
+
// posix so downstream `.includes('${outDir}/server')` substring checks match on Windows
|
|
1037
|
+
const serverJsPath = posix.join(outDir, 'server', serverFileName)
|
|
1034
1038
|
|
|
1035
1039
|
let exported
|
|
1036
1040
|
try {
|
|
@@ -1289,6 +1293,7 @@ export async function build(args: {
|
|
|
1289
1293
|
}
|
|
1290
1294
|
|
|
1291
1295
|
await writeJSON(toAbsolute(`${outDir}/buildInfo.json`), buildInfoForWriting)
|
|
1296
|
+
await writeBuildOutputPointer(outDir)
|
|
1292
1297
|
|
|
1293
1298
|
// emit version.json for skew protection polling
|
|
1294
1299
|
await FSExtra.writeFile(
|
|
@@ -1474,7 +1479,10 @@ export default {
|
|
|
1474
1479
|
projectName,
|
|
1475
1480
|
userWranglerConfig?.config
|
|
1476
1481
|
)
|
|
1477
|
-
|
|
1482
|
+
// serialized wrangler config is diffed cross-platform; keep forward-slash
|
|
1483
|
+
wranglerInputConfig.main = normalizePath(
|
|
1484
|
+
relative(join(options.root, outDir), workerSrcPath)
|
|
1485
|
+
)
|
|
1478
1486
|
|
|
1479
1487
|
const wranglerInputPath = join(options.root, outDir, '_wrangler.input.jsonc')
|
|
1480
1488
|
await FSExtra.writeFile(
|
package/src/cli/buildPage.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { join } from 'node:path'
|
|
2
2
|
import FSExtra from 'fs-extra'
|
|
3
|
+
import { normalizePath } from 'vite'
|
|
3
4
|
import * as constants from '../constants'
|
|
4
5
|
import { LOADER_JS_POSTFIX_UNCACHED } from '../constants'
|
|
5
6
|
import type { LoaderProps } from '../types'
|
|
@@ -64,8 +65,9 @@ export async function buildPage(
|
|
|
64
65
|
recordTiming('getRender', performance.now() - t0)
|
|
65
66
|
|
|
66
67
|
const htmlPath = `${path.endsWith('/') ? `${removeTrailingSlash(path)}/index` : path}.html`
|
|
68
|
+
// forward-slash for cross-platform manifest hygiene (matches serverJsPath)
|
|
67
69
|
const clientJsPath = clientManifestEntry
|
|
68
|
-
? join(clientDir, clientManifestEntry.file)
|
|
70
|
+
? normalizePath(join(clientDir, clientManifestEntry.file))
|
|
69
71
|
: ''
|
|
70
72
|
const htmlOutPath = toAbsolute(join(staticDir, htmlPath))
|
|
71
73
|
const preloadPath = getPreloadPath(path)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest'
|
|
2
|
+
import * as constants from './constants'
|
|
3
|
+
|
|
4
|
+
describe('CACHE_KEY pinning', () => {
|
|
5
|
+
let originalKey: string
|
|
6
|
+
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
originalKey = constants.CACHE_KEY
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
constants.setCacheKey(originalKey)
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('setCacheKey rebinds CACHE_KEY-derived postfixes', () => {
|
|
16
|
+
constants.setCacheKey('9999999')
|
|
17
|
+
|
|
18
|
+
expect(constants.CACHE_KEY).toBe('9999999')
|
|
19
|
+
expect(constants.PRELOAD_JS_POSTFIX).toBe('_9999999_preload.js')
|
|
20
|
+
expect(constants.CSS_PRELOAD_JS_POSTFIX).toBe('_9999999_preload_css.js')
|
|
21
|
+
expect(constants.LOADER_JS_POSTFIX).toBe(
|
|
22
|
+
`_9999999${constants.LOADER_JS_POSTFIX_UNCACHED}`
|
|
23
|
+
)
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it('setCacheKey is a no-op for empty or identical keys', () => {
|
|
27
|
+
const before = constants.CACHE_KEY
|
|
28
|
+
constants.setCacheKey('')
|
|
29
|
+
expect(constants.CACHE_KEY).toBe(before)
|
|
30
|
+
constants.setCacheKey(before)
|
|
31
|
+
expect(constants.CACHE_KEY).toBe(before)
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('PRELOAD_JS_POSTFIX_REGEX matches the literal postfix shape with any digits', () => {
|
|
35
|
+
constants.setCacheKey('12345')
|
|
36
|
+
|
|
37
|
+
expect(constants.PRELOAD_JS_POSTFIX_REGEX.test('/assets/foo_12345_preload.js')).toBe(true)
|
|
38
|
+
// also matches a drifted key — the whole point of the regex fallback
|
|
39
|
+
expect(constants.PRELOAD_JS_POSTFIX_REGEX.test('/assets/foo_98765_preload.js')).toBe(true)
|
|
40
|
+
// does not match unrelated paths
|
|
41
|
+
expect(constants.PRELOAD_JS_POSTFIX_REGEX.test('/assets/foo_preload.js')).toBe(false)
|
|
42
|
+
expect(constants.PRELOAD_JS_POSTFIX_REGEX.test('/assets/foo_12345_preload_css.js')).toBe(
|
|
43
|
+
false
|
|
44
|
+
)
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('CSS_PRELOAD_JS_POSTFIX_REGEX matches only the css variant', () => {
|
|
48
|
+
expect(
|
|
49
|
+
constants.CSS_PRELOAD_JS_POSTFIX_REGEX.test('/assets/foo_12345_preload_css.js')
|
|
50
|
+
).toBe(true)
|
|
51
|
+
expect(constants.CSS_PRELOAD_JS_POSTFIX_REGEX.test('/assets/foo_12345_preload.js')).toBe(
|
|
52
|
+
false
|
|
53
|
+
)
|
|
54
|
+
})
|
|
55
|
+
})
|
package/src/constants.ts
CHANGED
|
@@ -22,15 +22,43 @@ export const hasWebHistory =
|
|
|
22
22
|
typeof window.history !== 'undefined' &&
|
|
23
23
|
typeof window.location !== 'undefined'
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
// CACHE_KEY needs to match the value baked into the deployed client bundle.
|
|
26
|
+
// In Cloudflare workers (and similar runtimes) the worker's static import
|
|
27
|
+
// graph evaluates `constants` BEFORE the user's `serve()` call gets a chance
|
|
28
|
+
// to pin the env, so `process.env.ONE_CACHE_KEY` is undefined at this point
|
|
29
|
+
// and we'd otherwise pick a fresh Math.random() per worker instance. That
|
|
30
|
+
// drift breaks the exact-suffix match the request handler uses to detect
|
|
31
|
+
// preload / loader requests.
|
|
32
|
+
//
|
|
33
|
+
// Solution: keep the postfixes as live `let` bindings (ES module live
|
|
34
|
+
// exports re-resolve on every read), and let `setCacheKey` rebind them
|
|
35
|
+
// once buildInfo arrives. Consumers reading via the module namespace
|
|
36
|
+
// (compiled CJS getters / ESM live binding) see the pinned value.
|
|
37
|
+
export let CACHE_KEY = `${process.env.ONE_CACHE_KEY ?? Math.round(Math.random() * 100_000_000)}`
|
|
26
38
|
|
|
27
39
|
export const LOADER_JS_POSTFIX_UNCACHED = `_vxrn_loader.js`
|
|
28
40
|
export const LOADER_JS_POSTFIX_REGEX_STRING = `_\\d+${LOADER_JS_POSTFIX_UNCACHED}$`
|
|
29
41
|
export const LOADER_JS_POSTFIX_REGEX = new RegExp(LOADER_JS_POSTFIX_REGEX_STRING)
|
|
30
|
-
export
|
|
42
|
+
export let LOADER_JS_POSTFIX = `_${CACHE_KEY}${LOADER_JS_POSTFIX_UNCACHED}`
|
|
31
43
|
|
|
32
|
-
|
|
33
|
-
|
|
44
|
+
// regex form is the defensive fallback for the rare case where CACHE_KEY
|
|
45
|
+
// still drifts (e.g. a deployment that bypasses setupBuildInfo). matches any
|
|
46
|
+
// `_<digits>_preload(_css).js` suffix so misses route through the manifest's
|
|
47
|
+
// graceful-empty branch instead of falling to the static 404 handler.
|
|
48
|
+
export let PRELOAD_JS_POSTFIX = `_${CACHE_KEY}_preload.js`
|
|
49
|
+
export let CSS_PRELOAD_JS_POSTFIX = `_${CACHE_KEY}_preload_css.js`
|
|
50
|
+
export const PRELOAD_JS_POSTFIX_REGEX = /_\d+_preload\.js$/
|
|
51
|
+
export const CSS_PRELOAD_JS_POSTFIX_REGEX = /_\d+_preload_css\.js$/
|
|
52
|
+
|
|
53
|
+
// called by setupBuildInfo at serve boot — rebinds all CACHE_KEY-derived
|
|
54
|
+
// postfixes so consumers reading them post-init get the pinned value.
|
|
55
|
+
export function setCacheKey(key: string): void {
|
|
56
|
+
if (!key || key === CACHE_KEY) return
|
|
57
|
+
CACHE_KEY = key
|
|
58
|
+
LOADER_JS_POSTFIX = `_${CACHE_KEY}${LOADER_JS_POSTFIX_UNCACHED}`
|
|
59
|
+
PRELOAD_JS_POSTFIX = `_${CACHE_KEY}_preload.js`
|
|
60
|
+
CSS_PRELOAD_JS_POSTFIX = `_${CACHE_KEY}_preload_css.js`
|
|
61
|
+
}
|
|
34
62
|
|
|
35
63
|
// safari insanely aggressive caching
|
|
36
64
|
export const VIRTUAL_SSR_CSS_ENTRY = `virtual:ssr-css.css`
|
package/src/createApp.tsx
CHANGED
|
@@ -259,8 +259,13 @@ export function createApp(options: CreateAppProps) {
|
|
|
259
259
|
// initialize client matches from server context for useMatches hook
|
|
260
260
|
// restore page loaderData into matches (stripped during SSR to avoid double-serialization)
|
|
261
261
|
if (serverContext.matches) {
|
|
262
|
-
const
|
|
263
|
-
|
|
262
|
+
const lastIndex = serverContext.matches.length - 1
|
|
263
|
+
const restoredMatches = serverContext.matches.map((m: any, index: number) => {
|
|
264
|
+
if (
|
|
265
|
+
index === lastIndex &&
|
|
266
|
+
m.loaderData === undefined &&
|
|
267
|
+
serverContext.loaderData !== undefined
|
|
268
|
+
) {
|
|
264
269
|
return { ...m, loaderData: serverContext.loaderData }
|
|
265
270
|
}
|
|
266
271
|
return m
|
package/src/daemon/server.ts
CHANGED
|
@@ -13,6 +13,21 @@ function debugLog(msg: string) {
|
|
|
13
13
|
// cache app names from config files
|
|
14
14
|
const serverAppNames = new Map<string, string>()
|
|
15
15
|
|
|
16
|
+
// Prune stale server app name entries every 10 minutes
|
|
17
|
+
setInterval(() => {
|
|
18
|
+
// serverAppNames may accumulate entries for projects that have stopped,
|
|
19
|
+
// but there's no cleanup signal when a project stops, so we age them out.
|
|
20
|
+
// With 10-minute cleanup, the impact is negligible for normal usage.
|
|
21
|
+
if (serverAppNames.size > 100) {
|
|
22
|
+
const keys = [...serverAppNames.keys()]
|
|
23
|
+
const toDelete = keys.slice(0, keys.length - 100)
|
|
24
|
+
for (const key of toDelete) {
|
|
25
|
+
serverAppNames.delete(key)
|
|
26
|
+
}
|
|
27
|
+
debugLog(`Pruned ${toDelete.length} stale app name entries`)
|
|
28
|
+
}
|
|
29
|
+
}, 600000)
|
|
30
|
+
|
|
16
31
|
// try to get app name from app.json, app.config.ts, or fallback to dirname
|
|
17
32
|
async function getAppNameForServer(root: string): Promise<string | null> {
|
|
18
33
|
// check cache first
|
|
@@ -202,6 +217,21 @@ function extractAppNameFromUA(ua: string): string | null {
|
|
|
202
217
|
const recentConnections = new Map<number, { serverId: string; timestamp: number }>()
|
|
203
218
|
const CONNECTION_MEMORY_MS = 5000 // remember connections for 5 seconds
|
|
204
219
|
|
|
220
|
+
// Clean stale recentConnections every 10 seconds
|
|
221
|
+
setInterval(() => {
|
|
222
|
+
const now = Date.now()
|
|
223
|
+
let cleaned = 0
|
|
224
|
+
for (const [key, entry] of recentConnections) {
|
|
225
|
+
if (now - entry.timestamp > CONNECTION_MEMORY_MS) {
|
|
226
|
+
recentConnections.delete(key)
|
|
227
|
+
cleaned++
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (cleaned > 0) {
|
|
231
|
+
debugLog(`Cleaned ${cleaned} stale connection mappings`)
|
|
232
|
+
}
|
|
233
|
+
}, 10000)
|
|
234
|
+
|
|
205
235
|
// get the best identifier key for this request
|
|
206
236
|
function getPrimaryIdentifier(headers: http.IncomingHttpHeaders): string | null {
|
|
207
237
|
const userAgent = headers['user-agent'] || ''
|
package/src/index.ts
CHANGED
|
@@ -159,6 +159,15 @@ export { isResponse } from './utils/isResponse'
|
|
|
159
159
|
export { redirect } from './utils/redirect'
|
|
160
160
|
export { removeParams } from './utils/removeParams'
|
|
161
161
|
export { watchFile } from './utils/watchFile'
|
|
162
|
+
// resilient dynamic-import recovery: retry a transient chunk-fetch failure in
|
|
163
|
+
// place (so it never poisons a React.lazy memo), then fall back to one's
|
|
164
|
+
// debounced reload. lazyWithRetry is a drop-in for React.lazy.
|
|
165
|
+
export {
|
|
166
|
+
loadWithRetry,
|
|
167
|
+
isChunkLoadError,
|
|
168
|
+
handleSkewError,
|
|
169
|
+
} from './utils/dynamicImport'
|
|
170
|
+
export { lazyWithRetry } from './lazyWithRetry'
|
|
162
171
|
export { ErrorBoundary } from './views/ErrorBoundary'
|
|
163
172
|
export type { ErrorBoundaryProps, ErrorRouteInfo } from './views/Try'
|
|
164
173
|
export { LoadProgressBar } from './views/LoadProgressBar'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ComponentType, lazy as reactLazy, type LazyExoticComponent } from 'react'
|
|
2
|
+
import { loadWithRetry } from './utils/dynamicImport'
|
|
3
|
+
|
|
4
|
+
// a drop-in resilient replacement for React.lazy.
|
|
5
|
+
//
|
|
6
|
+
// React.lazy memoizes the loader's FIRST settled result — including a rejection
|
|
7
|
+
// (lazyInitializer sets payload._status=2 and from then on re-throws _result on
|
|
8
|
+
// every render WITHOUT re-invoking the loader). so a single transient
|
|
9
|
+
// dynamic-import chunk failure (e.g. a dev-server fetch losing a race under
|
|
10
|
+
// load, or a prod deploy skew) permanently poisons the lazy component for the
|
|
11
|
+
// whole session: with a Suspense fallback and no surrounding error boundary it
|
|
12
|
+
// silently renders nothing. wrapping the loader in loadWithRetry retries the
|
|
13
|
+
// fetch in place before React.lazy ever caches a result, and falls back to one's
|
|
14
|
+
// debounced reload when a chunk error is unrecoverable — so the rejection never
|
|
15
|
+
// reaches React.lazy's memo.
|
|
16
|
+
export function lazyWithRetry<T extends ComponentType<any>>(
|
|
17
|
+
loader: () => Promise<{ default: T }>,
|
|
18
|
+
options?: Parameters<typeof loadWithRetry>[1]
|
|
19
|
+
): LazyExoticComponent<T> {
|
|
20
|
+
return reactLazy(() => loadWithRetry(loader, options))
|
|
21
|
+
}
|
package/src/router/router.ts
CHANGED
|
@@ -707,6 +707,20 @@ export function cleanup() {
|
|
|
707
707
|
|
|
708
708
|
export const preloadingLoader: Record<string, Promise<any> | undefined> = {}
|
|
709
709
|
|
|
710
|
+
// Bounded helper for preload maps: prevents unbounded growth when prefetch links
|
|
711
|
+
// trigger preloads for many dynamic routes that never get visited.
|
|
712
|
+
const PRELOAD_MAP_MAX = 200
|
|
713
|
+
|
|
714
|
+
function setBoundedPreloadRecord(record: Record<string, any>, key: string, value: any) {
|
|
715
|
+
if (!(key in record)) {
|
|
716
|
+
const keys = Object.keys(record)
|
|
717
|
+
if (keys.length >= PRELOAD_MAP_MAX) {
|
|
718
|
+
delete record[keys[0]]
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
record[key] = value
|
|
722
|
+
}
|
|
723
|
+
|
|
710
724
|
// inlined to ensure tree shakes away in prod
|
|
711
725
|
// dev mode preload - fetches just the loader directly without production preload bundles
|
|
712
726
|
async function doPreloadDev(href: string): Promise<any> {
|
|
@@ -792,7 +806,7 @@ async function doPreload(href: string) {
|
|
|
792
806
|
// Store the CSS inject function for later use on navigation
|
|
793
807
|
const hasCss = !!cssPreloadModule?.injectCSS
|
|
794
808
|
if (hasCss) {
|
|
795
|
-
|
|
809
|
+
setBoundedCssInject(href, cssPreloadModule.injectCSS)
|
|
796
810
|
}
|
|
797
811
|
|
|
798
812
|
const hasLoader = !!loader?.loader
|
|
@@ -824,6 +838,17 @@ export const preloadedLoaderData: Record<string, any> = {}
|
|
|
824
838
|
// Store CSS inject functions for calling on navigation
|
|
825
839
|
const cssInjectFunctions: Record<string, (() => Promise<void[]>) | undefined> = {}
|
|
826
840
|
|
|
841
|
+
// Bounded helper for cssInjectFunctions
|
|
842
|
+
function setBoundedCssInject(key: string, value: (() => Promise<void[]>) | undefined) {
|
|
843
|
+
if (!(key in cssInjectFunctions)) {
|
|
844
|
+
const keys = Object.keys(cssInjectFunctions)
|
|
845
|
+
if (keys.length >= PRELOAD_MAP_MAX) {
|
|
846
|
+
delete cssInjectFunctions[keys[0]]
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
cssInjectFunctions[key] = value
|
|
850
|
+
}
|
|
851
|
+
|
|
827
852
|
// Preload status tracking for devtools
|
|
828
853
|
export type PreloadStatus = 'pending' | 'loading' | 'loaded' | 'error'
|
|
829
854
|
export type PreloadEntry = {
|
|
@@ -906,20 +931,20 @@ export function preloadRoute(href: string, injectCSS = false): Promise<any> | un
|
|
|
906
931
|
// normalize the path to match what useLoader uses for cache keys
|
|
907
932
|
const normalizedHref = normalizeLoaderPath(href)
|
|
908
933
|
if (!preloadingLoader[normalizedHref]) {
|
|
909
|
-
preloadingLoader
|
|
910
|
-
preloadedLoaderData
|
|
934
|
+
setBoundedPreloadRecord(preloadingLoader, normalizedHref, doPreloadDev(href).then((data) => {
|
|
935
|
+
setBoundedPreloadRecord(preloadedLoaderData, normalizedHref, data)
|
|
911
936
|
return data
|
|
912
|
-
})
|
|
937
|
+
}))
|
|
913
938
|
}
|
|
914
939
|
return preloadingLoader[normalizedHref]
|
|
915
940
|
}
|
|
916
941
|
|
|
917
942
|
if (!preloadingLoader[href]) {
|
|
918
|
-
preloadingLoader
|
|
943
|
+
setBoundedPreloadRecord(preloadingLoader, href, doPreload(href).then((data) => {
|
|
919
944
|
// Store the resolved data for synchronous access
|
|
920
|
-
preloadedLoaderData
|
|
945
|
+
setBoundedPreloadRecord(preloadedLoaderData, href, data)
|
|
921
946
|
return data
|
|
922
|
-
})
|
|
947
|
+
}))
|
|
923
948
|
}
|
|
924
949
|
|
|
925
950
|
if (injectCSS) {
|
|
@@ -16,7 +16,7 @@ import { Try } from '../views/Try'
|
|
|
16
16
|
import { checkSkewAndReload } from '../skewProtection'
|
|
17
17
|
import { handleSkewError, isChunkLoadError } from '../utils/dynamicImport'
|
|
18
18
|
import { DevHead } from '../vite/DevHead'
|
|
19
|
-
import { useServerContext } from '../vite/one-server-only'
|
|
19
|
+
import { getServerContext, useServerContext } from '../vite/one-server-only'
|
|
20
20
|
import { filterRootHTML } from './filterRootHTML'
|
|
21
21
|
import {
|
|
22
22
|
type DynamicConvention,
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
import { SpaShellContext } from './SpaShellContext'
|
|
29
29
|
import { NamedSlot } from '../views/Navigator'
|
|
30
30
|
import { sortRoutesWithInitial } from './sortRoutes'
|
|
31
|
+
import { getClientMatchesSnapshot } from '../useMatches'
|
|
31
32
|
|
|
32
33
|
// `@react-navigation/core` does not expose the Screen or Group components directly, so we have to
|
|
33
34
|
// do this hack.
|
|
@@ -361,6 +362,17 @@ function fromImport({ ErrorBoundary, ...component }: LoadedRoute) {
|
|
|
361
362
|
// Without this store, the process enters a recursive loop.
|
|
362
363
|
const qualifiedStore = new WeakMap<RouteNode, React.ComponentType<any>>()
|
|
363
364
|
|
|
365
|
+
function getRouteMatchesForProps() {
|
|
366
|
+
const serverMatches = getServerContext()?.matches ?? []
|
|
367
|
+
|
|
368
|
+
if (process.env.VITE_ENVIRONMENT === 'ssr') {
|
|
369
|
+
return serverMatches
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
const clientMatches = getClientMatchesSnapshot()
|
|
373
|
+
return clientMatches.length ? clientMatches : serverMatches
|
|
374
|
+
}
|
|
375
|
+
|
|
364
376
|
/** Wrap the component with various enhancements and add access to child routes. */
|
|
365
377
|
export function getQualifiedRouteComponent(value: RouteNode) {
|
|
366
378
|
if (value && qualifiedStore.has(value)) {
|
|
@@ -388,6 +400,8 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
|
388
400
|
// content after hydration.
|
|
389
401
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
390
402
|
const isSpaShell = useContext(SpaShellContext)
|
|
403
|
+
const matches = getRouteMatchesForProps()
|
|
404
|
+
|
|
391
405
|
if (isSpaShell && props.segment !== '') {
|
|
392
406
|
const isServerRenderedLayout =
|
|
393
407
|
value.children?.length &&
|
|
@@ -399,6 +413,11 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
|
399
413
|
|
|
400
414
|
const res = value.loadRoute()
|
|
401
415
|
const Component = getPageExport(fromImport(res)) as React.ComponentType<any>
|
|
416
|
+
const match =
|
|
417
|
+
matches.find((match) => match.routeId === value.contextKey) ||
|
|
418
|
+
(!value.children?.length ? matches[matches.length - 1] : undefined)
|
|
419
|
+
const loaderDataProps =
|
|
420
|
+
match && 'loaderData' in match ? { loaderData: match.loaderData } : {}
|
|
402
421
|
|
|
403
422
|
if (process.env.NODE_ENV === 'development' && process.env.DEBUG === 'one') {
|
|
404
423
|
console.groupCollapsed(`Render ${props.key} ${props.segment}`)
|
|
@@ -424,7 +443,7 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
|
424
443
|
return (
|
|
425
444
|
<RootLayoutRenderer
|
|
426
445
|
LayoutComponent={Component}
|
|
427
|
-
layoutProps={{ ...props, ...slotProps }}
|
|
446
|
+
layoutProps={{ ...props, ...slotProps, ...loaderDataProps }}
|
|
428
447
|
forwardedRef={ref}
|
|
429
448
|
/>
|
|
430
449
|
)
|
|
@@ -432,7 +451,7 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
|
432
451
|
|
|
433
452
|
return (
|
|
434
453
|
<RouteErrorBoundary routeName={value.route}>
|
|
435
|
-
<Component {...props} {...slotProps} ref={ref} />
|
|
454
|
+
<Component {...props} {...slotProps} {...loaderDataProps} ref={ref} />
|
|
436
455
|
</RouteErrorBoundary>
|
|
437
456
|
)
|
|
438
457
|
})
|