one 1.10.6 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Root.cjs +11 -2
- package/dist/cjs/Root.js +5 -2
- package/dist/cjs/Root.js.map +1 -1
- package/dist/cjs/Root.native.js +18 -18
- package/dist/cjs/Root.native.js.map +1 -1
- package/dist/cjs/babel-plugins/inline-one-server-url.cjs +41 -0
- package/dist/cjs/babel-plugins/inline-one-server-url.js +34 -0
- package/dist/cjs/babel-plugins/inline-one-server-url.js.map +6 -0
- package/dist/cjs/babel-plugins/inline-one-server-url.native.js +48 -0
- package/dist/cjs/babel-plugins/inline-one-server-url.native.js.map +1 -0
- package/dist/cjs/cli/build.cjs +88 -29
- package/dist/cjs/cli/build.js +85 -28
- package/dist/cjs/cli/build.js.map +1 -1
- package/dist/cjs/cli/build.native.js +105 -35
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +24 -12
- package/dist/cjs/cli/buildPage.js +20 -14
- package/dist/cjs/cli/buildPage.js.map +1 -1
- package/dist/cjs/cli/buildPage.native.js +29 -18
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/buildPageWorker.cjs +9 -15
- package/dist/cjs/cli/buildPageWorker.js +11 -12
- package/dist/cjs/cli/buildPageWorker.js.map +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js +5 -16
- package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
- package/dist/cjs/cli/patch.cjs +3 -3
- package/dist/cjs/cli/patch.js +3 -3
- package/dist/cjs/cli/patch.js.map +1 -1
- package/dist/cjs/cli/patch.native.js +3 -3
- package/dist/cjs/cli/patch.native.js.map +1 -1
- package/dist/cjs/cli/securityScan.cjs +123 -0
- package/dist/cjs/cli/securityScan.js +134 -0
- package/dist/cjs/cli/securityScan.js.map +6 -0
- package/dist/cjs/cli/securityScan.native.js +205 -0
- package/dist/cjs/cli/securityScan.native.js.map +1 -0
- package/dist/cjs/cli/workerPool.cjs +4 -3
- package/dist/cjs/cli/workerPool.js +3 -3
- package/dist/cjs/cli/workerPool.js.map +1 -1
- package/dist/cjs/cli/workerPool.native.js +4 -3
- package/dist/cjs/cli/workerPool.native.js.map +1 -1
- package/dist/cjs/cli.cjs +13 -2
- package/dist/cjs/cli.js +12 -2
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/cli.native.js +13 -2
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/createApp.cjs +130 -64
- package/dist/cjs/createApp.js +97 -24
- package/dist/cjs/createApp.js.map +1 -1
- package/dist/cjs/createHandleRequest.cjs +58 -35
- package/dist/cjs/createHandleRequest.js +29 -18
- package/dist/cjs/createHandleRequest.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js +66 -41
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/daemon/tui.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.cjs +26 -3
- package/dist/cjs/fork/NavigationContainer.js +12 -4
- package/dist/cjs/fork/NavigationContainer.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.native.js +25 -2
- package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
- package/dist/cjs/fork/SSRNavigationContainer.cjs +105 -0
- package/dist/cjs/fork/SSRNavigationContainer.js +66 -0
- package/dist/cjs/fork/SSRNavigationContainer.js.map +6 -0
- package/dist/cjs/fork/SSRNavigationContainer.native.js +119 -0
- package/dist/cjs/fork/SSRNavigationContainer.native.js.map +1 -0
- package/dist/cjs/fork/getPathFromState.cjs +10 -5
- package/dist/cjs/fork/getPathFromState.js +5 -5
- package/dist/cjs/fork/getPathFromState.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.native.js +10 -5
- package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.cjs +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.js +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.native.js +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/cjs/fork/navigationThemes.cjs +84 -0
- package/dist/cjs/fork/navigationThemes.js +54 -0
- package/dist/cjs/fork/navigationThemes.js.map +6 -0
- package/dist/cjs/fork/navigationThemes.native.js +87 -0
- package/dist/cjs/fork/navigationThemes.native.js.map +1 -0
- package/dist/cjs/fork/useLinking.cjs +11 -1
- package/dist/cjs/fork/useLinking.js +10 -1
- package/dist/cjs/fork/useLinking.js.map +1 -1
- package/dist/cjs/fork/useLinking.native.js +1 -1
- package/dist/cjs/fork/useLinking.native.js.map +1 -1
- package/dist/cjs/getReactNavigationConfig.cjs +3 -1
- package/dist/cjs/getReactNavigationConfig.js +2 -2
- package/dist/cjs/getReactNavigationConfig.js.map +1 -1
- package/dist/cjs/getReactNavigationConfig.native.js +3 -1
- package/dist/cjs/getReactNavigationConfig.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.cjs +15 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.js +27 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.native.js +18 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/index.cjs +2 -1
- package/dist/cjs/layouts/stack-utils/index.js +2 -1
- package/dist/cjs/layouts/stack-utils/index.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/index.native.js +2 -1
- package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +3 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.js +3 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +3 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/reactNavigationImports.cjs +33 -0
- package/dist/cjs/reactNavigationImports.js +28 -0
- package/dist/cjs/reactNavigationImports.js.map +6 -0
- package/dist/cjs/reactNavigationImports.native.js +36 -0
- package/dist/cjs/reactNavigationImports.native.js.map +1 -0
- package/dist/cjs/reactNavigationImports.server.cjs +51 -0
- package/dist/cjs/reactNavigationImports.server.js +42 -0
- package/dist/cjs/reactNavigationImports.server.js.map +6 -0
- package/dist/cjs/reactNavigationImports.server.native.js +56 -0
- package/dist/cjs/reactNavigationImports.server.native.js.map +1 -0
- package/dist/cjs/router/findRouteNode.cjs +4 -4
- package/dist/cjs/router/findRouteNode.js +4 -4
- package/dist/cjs/router/findRouteNode.js.map +1 -1
- package/dist/cjs/router/findRouteNode.native.js +4 -4
- package/dist/cjs/router/findRouteNode.native.js.map +1 -1
- package/dist/cjs/router/isIndexPath.cjs +1 -0
- package/dist/cjs/router/isIndexPath.js +2 -0
- package/dist/cjs/router/isIndexPath.js.map +1 -1
- package/dist/cjs/router/isIndexPath.native.js +3 -2
- package/dist/cjs/router/isIndexPath.native.js.map +1 -1
- package/dist/cjs/router/linkingConfig.cjs +19 -2
- package/dist/cjs/router/linkingConfig.js +18 -2
- package/dist/cjs/router/linkingConfig.js.map +1 -1
- package/dist/cjs/router/linkingConfig.native.js +21 -2
- package/dist/cjs/router/linkingConfig.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +30 -24
- package/dist/cjs/router/router.js +23 -20
- package/dist/cjs/router/router.js.map +2 -2
- package/dist/cjs/router/router.native.js +21 -14
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/useInitializeOneRouter.cjs +25 -9
- package/dist/cjs/router/useInitializeOneRouter.js +21 -8
- package/dist/cjs/router/useInitializeOneRouter.js.map +1 -1
- package/dist/cjs/router/useInitializeOneRouter.native.js +23 -7
- package/dist/cjs/router/useInitializeOneRouter.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +30 -11
- package/dist/cjs/router/useScreens.js +47 -21
- package/dist/cjs/router/useScreens.js.map +1 -1
- package/dist/cjs/router/useScreens.native.js +25 -10
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/screensFeatureFlags.cjs +37 -0
- package/dist/cjs/screensFeatureFlags.js +31 -0
- package/dist/cjs/screensFeatureFlags.js.map +6 -0
- package/dist/cjs/screensFeatureFlags.native.js +40 -0
- package/dist/cjs/screensFeatureFlags.native.js.map +1 -0
- package/dist/cjs/serve.cjs +27 -3
- package/dist/cjs/serve.js +26 -3
- package/dist/cjs/serve.js.map +1 -1
- package/dist/cjs/serve.native.js +36 -4
- package/dist/cjs/serve.native.js.map +1 -1
- package/dist/cjs/server/ServerContextScript.cjs +14 -5
- package/dist/cjs/server/ServerContextScript.js +12 -6
- package/dist/cjs/server/ServerContextScript.js.map +1 -1
- package/dist/cjs/server/ServerContextScript.native.js +18 -6
- package/dist/cjs/server/ServerContextScript.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +279 -182
- package/dist/cjs/server/oneServe.js +105 -30
- package/dist/cjs/server/oneServe.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js +334 -215
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/ssrLoaderData.cjs +30 -0
- package/dist/cjs/server/ssrLoaderData.js +25 -0
- package/dist/cjs/server/ssrLoaderData.js.map +6 -0
- package/dist/cjs/server/ssrLoaderData.native.js +33 -0
- package/dist/cjs/server/ssrLoaderData.native.js.map +1 -0
- package/dist/cjs/server-render.cjs +22 -22
- package/dist/cjs/server-render.js +11 -15
- package/dist/cjs/server-render.js.map +1 -1
- package/dist/cjs/server-render.native.js +18 -38
- package/dist/cjs/server-render.native.js.map +1 -1
- package/dist/cjs/ui/Slot.cjs +1 -0
- package/dist/cjs/ui/Slot.js +4 -0
- package/dist/cjs/ui/Slot.js.map +1 -1
- package/dist/cjs/ui/Slot.native.js +1 -0
- package/dist/cjs/ui/Slot.native.js.map +1 -1
- package/dist/cjs/ui/TabRouter.cjs +32 -19
- package/dist/cjs/ui/TabRouter.js +18 -2
- package/dist/cjs/ui/TabRouter.js.map +1 -1
- package/dist/cjs/ui/TabRouter.native.js +13 -0
- package/dist/cjs/ui/TabRouter.native.js.map +1 -1
- package/dist/cjs/ui/TabTrigger.cjs +2 -2
- package/dist/cjs/ui/TabTrigger.js +1 -1
- package/dist/cjs/ui/TabTrigger.js.map +1 -1
- package/dist/cjs/ui/TabTrigger.native.js +2 -2
- package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
- package/dist/cjs/useLoader.cjs +39 -9
- package/dist/cjs/useLoader.js +33 -9
- package/dist/cjs/useLoader.js.map +2 -2
- package/dist/cjs/useLoader.native.js +48 -11
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/utils/isRolldown.cjs +8 -24
- package/dist/cjs/utils/isRolldown.js +6 -20
- package/dist/cjs/utils/isRolldown.js.map +1 -1
- package/dist/cjs/utils/isRolldown.native.js +8 -25
- package/dist/cjs/utils/isRolldown.native.js.map +1 -1
- package/dist/cjs/utils/removeParams.cjs +52 -0
- package/dist/cjs/utils/removeParams.js +40 -0
- package/dist/cjs/utils/removeParams.js.map +6 -0
- package/dist/cjs/utils/removeParams.native.js +71 -0
- package/dist/cjs/utils/removeParams.native.js.map +1 -0
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.cjs +7 -5
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.js +7 -5
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +1 -1
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +7 -4
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.cjs +2 -2
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js +2 -2
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js +2 -1
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.cjs +3 -2
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js +2 -2
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js +3 -2
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
- package/dist/cjs/views/Navigator.cjs +1 -0
- package/dist/cjs/views/Navigator.js +2 -0
- package/dist/cjs/views/Navigator.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js +1 -0
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/vite/one-server-only.cjs +6 -3
- package/dist/cjs/vite/one-server-only.js +3 -3
- package/dist/cjs/vite/one-server-only.js.map +1 -1
- package/dist/cjs/vite/one-server-only.native.js +6 -0
- package/dist/cjs/vite/one-server-only.native.js.map +1 -1
- package/dist/cjs/vite/one.cjs +75 -29
- package/dist/cjs/vite/one.js +93 -24
- package/dist/cjs/vite/one.js.map +2 -2
- package/dist/cjs/vite/one.native.js +143 -34
- package/dist/cjs/vite/one.native.js.map +1 -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/criticalCSSPlugin.cjs +59 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.js +52 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.js.map +6 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js +78 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js.map +1 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.cjs +160 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.js +126 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.js.map +6 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js +165 -0
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +2 -2
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +2 -2
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +2 -2
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.cjs +2 -8
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.js +2 -8
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js +2 -8
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.cjs +6 -14
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.js +8 -11
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js +6 -18
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.cjs +11 -6
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.js +12 -7
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js +12 -7
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/warmRoutesPlugin.cjs +98 -0
- package/dist/cjs/vite/plugins/warmRoutesPlugin.js +95 -0
- package/dist/cjs/vite/plugins/warmRoutesPlugin.js.map +6 -0
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js +134 -0
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -0
- package/dist/cjs/vite/replaceLoader.cjs +1 -1
- package/dist/cjs/vite/replaceLoader.js +1 -1
- package/dist/cjs/vite/replaceLoader.js.map +1 -1
- package/dist/cjs/vite/replaceLoader.native.js +1 -1
- package/dist/cjs/vite/replaceLoader.native.js.map +1 -1
- package/dist/cjs/vite/resolveResponse.cjs +20 -8
- package/dist/cjs/vite/resolveResponse.js +22 -7
- package/dist/cjs/vite/resolveResponse.js.map +1 -1
- package/dist/cjs/vite/resolveResponse.native.js +20 -8
- package/dist/cjs/vite/resolveResponse.native.js.map +1 -1
- package/dist/cjs/vite-auto-warm.cjs +26 -0
- package/dist/cjs/vite-auto-warm.js +21 -0
- package/dist/cjs/vite-auto-warm.js.map +6 -0
- package/dist/cjs/vite-auto-warm.native.js +29 -0
- package/dist/cjs/vite-auto-warm.native.js.map +1 -0
- package/dist/cjs/vite.cjs +3 -1
- package/dist/cjs/vite.js +2 -1
- package/dist/cjs/vite.js.map +1 -1
- package/dist/cjs/vite.native.js +3 -1
- package/dist/cjs/vite.native.js.map +1 -1
- package/dist/esm/Root.js +7 -2
- package/dist/esm/Root.js.map +1 -1
- package/dist/esm/Root.mjs +12 -3
- package/dist/esm/Root.mjs.map +1 -1
- package/dist/esm/Root.native.js +19 -19
- package/dist/esm/Root.native.js.map +1 -1
- package/dist/esm/babel-plugins/inline-one-server-url.js +18 -0
- package/dist/esm/babel-plugins/inline-one-server-url.js.map +6 -0
- package/dist/esm/babel-plugins/inline-one-server-url.mjs +18 -0
- package/dist/esm/babel-plugins/inline-one-server-url.mjs.map +1 -0
- package/dist/esm/babel-plugins/inline-one-server-url.native.js +22 -0
- package/dist/esm/babel-plugins/inline-one-server-url.native.js.map +1 -0
- package/dist/esm/cli/build.js +86 -27
- package/dist/esm/cli/build.js.map +1 -1
- package/dist/esm/cli/build.mjs +87 -28
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +104 -34
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.js +20 -13
- package/dist/esm/cli/buildPage.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +24 -12
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +29 -18
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/cli/buildPageWorker.js +11 -12
- package/dist/esm/cli/buildPageWorker.js.map +1 -1
- package/dist/esm/cli/buildPageWorker.mjs +9 -15
- package/dist/esm/cli/buildPageWorker.mjs.map +1 -1
- package/dist/esm/cli/buildPageWorker.native.js +5 -16
- package/dist/esm/cli/buildPageWorker.native.js.map +1 -1
- package/dist/esm/cli/patch.js +3 -3
- package/dist/esm/cli/patch.js.map +1 -1
- package/dist/esm/cli/patch.mjs +3 -3
- package/dist/esm/cli/patch.mjs.map +1 -1
- package/dist/esm/cli/patch.native.js +3 -3
- package/dist/esm/cli/patch.native.js.map +1 -1
- package/dist/esm/cli/securityScan.js +119 -0
- package/dist/esm/cli/securityScan.js.map +6 -0
- package/dist/esm/cli/securityScan.mjs +99 -0
- package/dist/esm/cli/securityScan.mjs.map +1 -0
- package/dist/esm/cli/securityScan.native.js +178 -0
- package/dist/esm/cli/securityScan.native.js.map +1 -0
- package/dist/esm/cli/workerPool.js +3 -3
- package/dist/esm/cli/workerPool.js.map +1 -1
- package/dist/esm/cli/workerPool.mjs +4 -3
- package/dist/esm/cli/workerPool.mjs.map +1 -1
- package/dist/esm/cli/workerPool.native.js +4 -3
- package/dist/esm/cli/workerPool.native.js.map +1 -1
- package/dist/esm/cli.js +12 -2
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli.mjs +13 -2
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +13 -2
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/createApp.js +97 -25
- package/dist/esm/createApp.js.map +1 -1
- package/dist/esm/createApp.mjs +130 -64
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/createHandleRequest.js +29 -18
- package/dist/esm/createHandleRequest.js.map +1 -1
- package/dist/esm/createHandleRequest.mjs +58 -35
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +66 -41
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/daemon/tui.js.map +1 -1
- package/dist/esm/daemon/tui.mjs.map +1 -1
- package/dist/esm/fork/NavigationContainer.js +12 -3
- package/dist/esm/fork/NavigationContainer.js.map +1 -1
- package/dist/esm/fork/NavigationContainer.mjs +26 -3
- package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
- package/dist/esm/fork/NavigationContainer.native.js +24 -1
- package/dist/esm/fork/NavigationContainer.native.js.map +1 -1
- package/dist/esm/fork/SSRNavigationContainer.js +55 -0
- package/dist/esm/fork/SSRNavigationContainer.js.map +6 -0
- package/dist/esm/fork/SSRNavigationContainer.mjs +82 -0
- package/dist/esm/fork/SSRNavigationContainer.mjs.map +1 -0
- package/dist/esm/fork/SSRNavigationContainer.native.js +93 -0
- package/dist/esm/fork/SSRNavigationContainer.native.js.map +1 -0
- package/dist/esm/fork/getPathFromState.js +5 -5
- package/dist/esm/fork/getPathFromState.js.map +1 -1
- package/dist/esm/fork/getPathFromState.mjs +10 -5
- package/dist/esm/fork/getPathFromState.mjs.map +1 -1
- package/dist/esm/fork/getPathFromState.native.js +11 -6
- package/dist/esm/fork/getPathFromState.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.js +1 -1
- package/dist/esm/fork/getStateFromPath-mods.js.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.mjs +1 -1
- package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.native.js +1 -1
- package/dist/esm/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/esm/fork/navigationThemes.js +38 -0
- package/dist/esm/fork/navigationThemes.js.map +6 -0
- package/dist/esm/fork/navigationThemes.mjs +60 -0
- package/dist/esm/fork/navigationThemes.mjs.map +1 -0
- package/dist/esm/fork/navigationThemes.native.js +60 -0
- package/dist/esm/fork/navigationThemes.native.js.map +1 -0
- package/dist/esm/fork/useLinking.js +10 -1
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +11 -1
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/fork/useLinking.native.js +1 -1
- package/dist/esm/fork/useLinking.native.js.map +1 -1
- package/dist/esm/getReactNavigationConfig.js +2 -2
- package/dist/esm/getReactNavigationConfig.js.map +1 -1
- package/dist/esm/getReactNavigationConfig.mjs +3 -1
- package/dist/esm/getReactNavigationConfig.mjs.map +1 -1
- package/dist/esm/getReactNavigationConfig.native.js +3 -1
- package/dist/esm/getReactNavigationConfig.native.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackScreen.js +27 -1
- package/dist/esm/layouts/stack-utils/StackScreen.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackScreen.mjs +14 -1
- package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackScreen.native.js +17 -1
- package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/index.js +4 -2
- package/dist/esm/layouts/stack-utils/index.js.map +1 -1
- package/dist/esm/layouts/stack-utils/index.mjs +2 -2
- package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/index.native.js +2 -2
- package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.js +3 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +3 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +3 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/esm/reactNavigationImports.js +21 -0
- package/dist/esm/reactNavigationImports.js.map +6 -0
- package/dist/esm/reactNavigationImports.mjs +3 -0
- package/dist/esm/reactNavigationImports.mjs.map +1 -0
- package/dist/esm/reactNavigationImports.native.js +3 -0
- package/dist/esm/reactNavigationImports.native.js.map +1 -0
- package/dist/esm/reactNavigationImports.server.js +32 -0
- package/dist/esm/reactNavigationImports.server.js.map +6 -0
- package/dist/esm/reactNavigationImports.server.mjs +20 -0
- package/dist/esm/reactNavigationImports.server.mjs.map +1 -0
- package/dist/esm/reactNavigationImports.server.native.js +22 -0
- package/dist/esm/reactNavigationImports.server.native.js.map +1 -0
- package/dist/esm/router/findRouteNode.js +4 -4
- package/dist/esm/router/findRouteNode.js.map +1 -1
- package/dist/esm/router/findRouteNode.mjs +4 -4
- package/dist/esm/router/findRouteNode.mjs.map +1 -1
- package/dist/esm/router/findRouteNode.native.js +4 -4
- package/dist/esm/router/findRouteNode.native.js.map +1 -1
- package/dist/esm/router/isIndexPath.js +2 -0
- package/dist/esm/router/isIndexPath.js.map +1 -1
- package/dist/esm/router/isIndexPath.mjs +1 -0
- package/dist/esm/router/isIndexPath.mjs.map +1 -1
- package/dist/esm/router/isIndexPath.native.js +3 -2
- package/dist/esm/router/isIndexPath.native.js.map +1 -1
- package/dist/esm/router/linkingConfig.js +18 -2
- package/dist/esm/router/linkingConfig.js.map +1 -1
- package/dist/esm/router/linkingConfig.mjs +18 -3
- package/dist/esm/router/linkingConfig.mjs.map +1 -1
- package/dist/esm/router/linkingConfig.native.js +20 -3
- package/dist/esm/router/linkingConfig.native.js.map +1 -1
- package/dist/esm/router/router.js +23 -20
- package/dist/esm/router/router.js.map +2 -2
- package/dist/esm/router/router.mjs +30 -25
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +21 -15
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useInitializeOneRouter.js +21 -7
- package/dist/esm/router/useInitializeOneRouter.js.map +1 -1
- package/dist/esm/router/useInitializeOneRouter.mjs +23 -8
- package/dist/esm/router/useInitializeOneRouter.mjs.map +1 -1
- package/dist/esm/router/useInitializeOneRouter.native.js +23 -8
- package/dist/esm/router/useInitializeOneRouter.native.js.map +1 -1
- package/dist/esm/router/useScreens.js +47 -21
- package/dist/esm/router/useScreens.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +30 -11
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +25 -10
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/screensFeatureFlags.js +15 -0
- package/dist/esm/screensFeatureFlags.js.map +6 -0
- package/dist/esm/screensFeatureFlags.mjs +14 -0
- package/dist/esm/screensFeatureFlags.mjs.map +1 -0
- package/dist/esm/screensFeatureFlags.native.js +14 -0
- package/dist/esm/screensFeatureFlags.native.js.map +1 -0
- package/dist/esm/serve.js +26 -3
- package/dist/esm/serve.js.map +1 -1
- package/dist/esm/serve.mjs +27 -3
- package/dist/esm/serve.mjs.map +1 -1
- package/dist/esm/serve.native.js +36 -4
- package/dist/esm/serve.native.js.map +1 -1
- package/dist/esm/server/ServerContextScript.js +12 -6
- package/dist/esm/server/ServerContextScript.js.map +1 -1
- package/dist/esm/server/ServerContextScript.mjs +14 -5
- package/dist/esm/server/ServerContextScript.mjs.map +1 -1
- package/dist/esm/server/ServerContextScript.native.js +18 -6
- package/dist/esm/server/ServerContextScript.native.js.map +1 -1
- package/dist/esm/server/oneServe.js +105 -29
- package/dist/esm/server/oneServe.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +279 -182
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +334 -215
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/server/ssrLoaderData.js +9 -0
- package/dist/esm/server/ssrLoaderData.js.map +6 -0
- package/dist/esm/server/ssrLoaderData.mjs +6 -0
- package/dist/esm/server/ssrLoaderData.mjs.map +1 -0
- package/dist/esm/server/ssrLoaderData.native.js +6 -0
- package/dist/esm/server/ssrLoaderData.native.js.map +1 -0
- package/dist/esm/server-render.js +11 -15
- package/dist/esm/server-render.js.map +1 -1
- package/dist/esm/server-render.mjs +21 -22
- package/dist/esm/server-render.mjs.map +1 -1
- package/dist/esm/server-render.native.js +17 -38
- package/dist/esm/server-render.native.js.map +1 -1
- package/dist/esm/ui/Slot.js +4 -0
- package/dist/esm/ui/Slot.js.map +1 -1
- package/dist/esm/ui/Slot.mjs +1 -0
- package/dist/esm/ui/Slot.mjs.map +1 -1
- package/dist/esm/ui/Slot.native.js +1 -0
- package/dist/esm/ui/Slot.native.js.map +1 -1
- package/dist/esm/ui/TabRouter.js +18 -2
- package/dist/esm/ui/TabRouter.js.map +1 -1
- package/dist/esm/ui/TabRouter.mjs +32 -19
- package/dist/esm/ui/TabRouter.mjs.map +1 -1
- package/dist/esm/ui/TabRouter.native.js +13 -0
- package/dist/esm/ui/TabRouter.native.js.map +1 -1
- package/dist/esm/ui/TabTrigger.js +1 -1
- package/dist/esm/ui/TabTrigger.js.map +1 -1
- package/dist/esm/ui/TabTrigger.mjs +2 -2
- package/dist/esm/ui/TabTrigger.mjs.map +1 -1
- package/dist/esm/ui/TabTrigger.native.js +2 -2
- package/dist/esm/ui/TabTrigger.native.js.map +1 -1
- package/dist/esm/useLoader.js +37 -8
- package/dist/esm/useLoader.js.map +1 -1
- package/dist/esm/useLoader.mjs +38 -9
- package/dist/esm/useLoader.mjs.map +1 -1
- package/dist/esm/useLoader.native.js +47 -11
- package/dist/esm/useLoader.native.js.map +1 -1
- package/dist/esm/utils/isRolldown.js +4 -10
- package/dist/esm/utils/isRolldown.js.map +1 -1
- package/dist/esm/utils/isRolldown.mjs +4 -9
- package/dist/esm/utils/isRolldown.mjs.map +1 -1
- package/dist/esm/utils/isRolldown.native.js +4 -10
- package/dist/esm/utils/isRolldown.native.js.map +1 -1
- package/dist/esm/utils/removeParams.js +24 -0
- package/dist/esm/utils/removeParams.js.map +6 -0
- package/dist/esm/utils/removeParams.mjs +29 -0
- package/dist/esm/utils/removeParams.mjs.map +1 -0
- package/dist/esm/utils/removeParams.native.js +45 -0
- package/dist/esm/utils/removeParams.native.js.map +1 -0
- package/dist/esm/vercel/build/buildVercelOutputDirectory.js +7 -5
- package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +1 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs +7 -5
- package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +7 -4
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.js +2 -2
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs +2 -2
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs.map +1 -1
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js +2 -1
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js +2 -2
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs +3 -2
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs.map +1 -1
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js +3 -2
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
- package/dist/esm/views/Navigator.js +2 -0
- package/dist/esm/views/Navigator.js.map +1 -1
- package/dist/esm/views/Navigator.mjs +1 -0
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +1 -0
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/dist/esm/vite/one-server-only.js +3 -3
- package/dist/esm/vite/one-server-only.js.map +1 -1
- package/dist/esm/vite/one-server-only.mjs +6 -3
- package/dist/esm/vite/one-server-only.mjs.map +1 -1
- package/dist/esm/vite/one-server-only.native.js +4 -1
- package/dist/esm/vite/one-server-only.native.js.map +1 -1
- package/dist/esm/vite/one.js +94 -24
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +75 -29
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +143 -34
- package/dist/esm/vite/one.native.js.map +1 -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/criticalCSSPlugin.js +36 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.js.map +6 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.mjs +34 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.native.js +50 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.native.js.map +1 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.js +107 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.js.map +6 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.mjs +139 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.mjs.map +1 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.native.js +141 -0
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +2 -2
- 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 +2 -2
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fixDependenciesPlugin.js +3 -9
- package/dist/esm/vite/plugins/fixDependenciesPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fixDependenciesPlugin.mjs +3 -9
- package/dist/esm/vite/plugins/fixDependenciesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fixDependenciesPlugin.native.js +3 -9
- package/dist/esm/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.js +8 -11
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.mjs +6 -14
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js +6 -18
- package/dist/esm/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.js +12 -7
- package/dist/esm/vite/plugins/sourceInspectorPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs +11 -6
- package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js +12 -7
- package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/warmRoutesPlugin.js +80 -0
- package/dist/esm/vite/plugins/warmRoutesPlugin.js.map +6 -0
- package/dist/esm/vite/plugins/warmRoutesPlugin.mjs +74 -0
- package/dist/esm/vite/plugins/warmRoutesPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/warmRoutesPlugin.native.js +107 -0
- package/dist/esm/vite/plugins/warmRoutesPlugin.native.js.map +1 -0
- package/dist/esm/vite/replaceLoader.js +1 -1
- package/dist/esm/vite/replaceLoader.js.map +1 -1
- package/dist/esm/vite/replaceLoader.mjs +1 -1
- package/dist/esm/vite/replaceLoader.mjs.map +1 -1
- package/dist/esm/vite/replaceLoader.native.js +1 -1
- package/dist/esm/vite/replaceLoader.native.js.map +1 -1
- package/dist/esm/vite/resolveResponse.js +23 -7
- package/dist/esm/vite/resolveResponse.js.map +1 -1
- package/dist/esm/vite/resolveResponse.mjs +21 -9
- package/dist/esm/vite/resolveResponse.mjs.map +1 -1
- package/dist/esm/vite/resolveResponse.native.js +21 -9
- package/dist/esm/vite/resolveResponse.native.js.map +1 -1
- package/dist/esm/vite-auto-warm.js +5 -0
- package/dist/esm/vite-auto-warm.js.map +6 -0
- package/dist/esm/vite-auto-warm.mjs +3 -0
- package/dist/esm/vite-auto-warm.mjs.map +1 -0
- package/dist/esm/vite-auto-warm.native.js +3 -0
- package/dist/esm/vite-auto-warm.native.js.map +1 -0
- package/dist/esm/vite.js +2 -0
- package/dist/esm/vite.js.map +1 -1
- package/dist/esm/vite.mjs +2 -1
- package/dist/esm/vite.mjs.map +1 -1
- package/dist/esm/vite.native.js +2 -1
- package/dist/esm/vite.native.js.map +1 -1
- package/package.json +44 -35
- package/src/Root.tsx +17 -13
- package/src/babel-plugins/inline-one-server-url.ts +26 -0
- package/src/cli/build.ts +130 -28
- package/src/cli/buildPage.ts +46 -20
- package/src/cli/buildPageWorker.ts +6 -18
- package/src/cli/patch.ts +3 -3
- package/src/cli/securityScan.ts +189 -0
- package/src/cli/workerPool.ts +5 -5
- package/src/cli.ts +11 -0
- package/src/createApp.tsx +165 -56
- package/src/createHandleRequest.ts +75 -18
- package/src/daemon/tui.ts +3 -3
- package/src/fork/NavigationContainer.tsx +38 -16
- package/src/fork/SSRNavigationContainer.tsx +94 -0
- package/src/fork/getPathFromState.ts +15 -5
- package/src/fork/getStateFromPath-mods.ts +1 -1
- package/src/fork/useLinking.native.ts +15 -13
- package/src/fork/useLinking.ts +22 -1
- package/src/getReactNavigationConfig.ts +3 -0
- package/src/index.ts +1 -0
- package/src/interfaces/router.ts +2 -3
- package/src/layouts/stack-utils/StackScreen.tsx +47 -0
- package/src/layouts/stack-utils/index.tsx +1 -0
- package/src/metro-config/getViteMetroPluginOptions.ts +2 -0
- package/src/router/findRouteNode.ts +4 -4
- package/src/router/isIndexPath.ts +4 -0
- package/src/router/linkingConfig.ts +53 -2
- package/src/router/router.ts +71 -45
- package/src/router/useInitializeOneRouter.ts +47 -15
- package/src/router/useScreens.tsx +56 -20
- package/src/screensFeatureFlags.ts +23 -0
- package/src/serve.ts +65 -5
- package/src/server/ServerContextScript.tsx +15 -8
- package/src/server/oneServe.ts +184 -47
- package/src/server/ssrLoaderData.ts +8 -0
- package/src/server-render.tsx +25 -28
- package/src/ui/Slot.tsx +7 -0
- package/src/ui/TabRouter.tsx +18 -0
- package/src/ui/TabTrigger.tsx +3 -0
- package/src/useLoader.ts +69 -11
- package/src/utils/isRolldown.ts +4 -14
- package/src/utils/removeParams.ts +40 -0
- package/src/vercel/build/buildVercelOutputDirectory.ts +12 -7
- package/src/vercel/build/generate/createApiServerlessFunction.ts +3 -2
- package/src/vercel/build/generate/createSsrServerlessFunction.ts +3 -2
- package/src/views/Navigator.tsx +4 -0
- package/src/vite/one-server-only.native.ts +3 -0
- package/src/vite/one-server-only.tsx +13 -5
- package/src/vite/one.ts +134 -28
- package/src/vite/plugins/SSRCSSPlugin.ts +2 -2
- package/src/vite/plugins/criticalCSSPlugin.test.ts +166 -0
- package/src/vite/plugins/criticalCSSPlugin.ts +74 -0
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +3 -2
- package/src/vite/plugins/fixDependenciesPlugin.ts +7 -19
- package/src/vite/plugins/removeReactNativeWebAnimatedPlugin.ts +10 -17
- package/src/vite/plugins/sourceInspectorPlugin.ts +28 -23
- package/src/vite/plugins/warmRoutesPlugin.ts +156 -0
- package/src/vite/replaceLoader.ts +2 -1
- package/src/vite/resolveResponse.ts +25 -9
- package/src/vite/types.ts +54 -10
- package/src/vite-auto-warm.ts +1 -0
- package/src/vite.ts +1 -0
- package/types/Root.d.ts.map +1 -1
- package/types/babel-plugins/inline-one-server-url.d.ts +10 -0
- package/types/babel-plugins/inline-one-server-url.d.ts.map +1 -0
- package/types/cli/build.d.ts.map +1 -1
- package/types/cli/buildPage.d.ts +1 -1
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/cli/securityScan.d.ts +16 -0
- package/types/cli/securityScan.d.ts.map +1 -0
- package/types/cli/workerPool.d.ts +2 -1
- package/types/cli/workerPool.d.ts.map +1 -1
- package/types/createApp.d.ts +2 -1
- package/types/createApp.d.ts.map +1 -1
- package/types/createHandleRequest.d.ts +2 -1
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/fork/NavigationContainer.d.ts.map +1 -1
- package/types/fork/SSRNavigationContainer.d.ts +16 -0
- package/types/fork/SSRNavigationContainer.d.ts.map +1 -0
- package/types/fork/getPathFromState.d.ts.map +1 -1
- package/types/fork/navigationThemes.d.ts.map +1 -0
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/fork/useLinking.native.d.ts.map +1 -1
- package/types/getReactNavigationConfig.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/interfaces/router.d.ts +2 -1
- package/types/interfaces/router.d.ts.map +1 -1
- package/types/layouts/Stack.d.ts +15 -11
- package/types/layouts/Stack.d.ts.map +1 -1
- package/types/layouts/Tabs.d.ts +15 -11
- package/types/layouts/Tabs.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackScreen.d.ts +2 -0
- package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
- package/types/layouts/stack-utils/index.d.ts +1 -1
- package/types/layouts/stack-utils/index.d.ts.map +1 -1
- package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
- package/types/reactNavigationImports.d.ts.map +1 -0
- package/types/reactNavigationImports.server.d.ts.map +1 -0
- package/types/router/isIndexPath.d.ts.map +1 -1
- package/types/router/linkingConfig.d.ts +10 -0
- package/types/router/linkingConfig.d.ts.map +1 -1
- package/types/router/router.d.ts +8 -3
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useInitializeOneRouter.d.ts +1 -0
- package/types/router/useInitializeOneRouter.d.ts.map +1 -1
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/screensFeatureFlags.d.ts +2 -0
- package/types/screensFeatureFlags.d.ts.map +1 -0
- package/types/serve.d.ts +2 -0
- 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/ssrLoaderData.d.ts +3 -0
- package/types/server/ssrLoaderData.d.ts.map +1 -0
- package/types/server-render.d.ts +10 -7
- package/types/server-render.d.ts.map +1 -1
- package/types/ui/Slot.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/useLoader.d.ts +1 -0
- package/types/useLoader.d.ts.map +1 -1
- package/types/utils/isRolldown.d.ts +1 -1
- package/types/utils/isRolldown.d.ts.map +1 -1
- package/types/utils/removeParams.d.ts +8 -0
- package/types/utils/removeParams.d.ts.map +1 -0
- package/types/vercel/build/buildVercelOutputDirectory.d.ts +2 -2
- package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -1
- package/types/vercel/build/generate/createApiServerlessFunction.d.ts +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/views/Navigator.d.ts.map +1 -1
- package/types/vite/one-server-only.d.ts.map +1 -1
- package/types/vite/one-server-only.native.d.ts +3 -0
- package/types/vite/one-server-only.native.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/criticalCSSPlugin.d.ts +12 -0
- package/types/vite/plugins/criticalCSSPlugin.d.ts.map +1 -0
- package/types/vite/plugins/criticalCSSPlugin.test.d.ts +2 -0
- package/types/vite/plugins/criticalCSSPlugin.test.d.ts.map +1 -0
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/fixDependenciesPlugin.d.ts.map +1 -1
- package/types/vite/plugins/removeReactNativeWebAnimatedPlugin.d.ts.map +1 -1
- package/types/vite/plugins/sourceInspectorPlugin.d.ts.map +1 -1
- package/types/vite/plugins/warmRoutesPlugin.d.ts +17 -0
- package/types/vite/plugins/warmRoutesPlugin.d.ts.map +1 -0
- package/types/vite/replaceLoader.d.ts.map +1 -1
- package/types/vite/resolveResponse.d.ts +2 -2
- package/types/vite/resolveResponse.d.ts.map +1 -1
- package/types/vite/types.d.ts +51 -10
- package/types/vite/types.d.ts.map +1 -1
- package/types/vite-auto-warm.d.ts +2 -0
- package/types/vite-auto-warm.d.ts.map +1 -0
- package/types/vite.d.ts +1 -0
- package/types/vite.d.ts.map +1 -1
- package/vendor/react-dom/package.json +1 -1
- package/dist/cjs/cli/easPrebuild.cjs +0 -117
- package/dist/cjs/cli/easPrebuild.js +0 -94
- package/dist/cjs/cli/easPrebuild.js.map +0 -6
- package/dist/cjs/cli/easPrebuild.native.js +0 -135
- package/dist/cjs/cli/easPrebuild.native.js.map +0 -1
- package/dist/esm/cli/easPrebuild.js +0 -73
- package/dist/esm/cli/easPrebuild.js.map +0 -6
- package/dist/esm/cli/easPrebuild.mjs +0 -83
- package/dist/esm/cli/easPrebuild.mjs.map +0 -1
- package/dist/esm/cli/easPrebuild.native.js +0 -98
- package/dist/esm/cli/easPrebuild.native.js.map +0 -1
- package/types/cli/easPrebuild.d.ts.map +0 -1
- package/types/cli/findClientManifestEntry.d.ts.map +0 -1
- package/types/cli/findClientManifestEntry.test.d.ts.map +0 -1
- package/types/env.d.ts.map +0 -1
- package/types/router/routeMask.d.ts.map +0 -1
- package/types/server/PreloadScripts.d.ts.map +0 -1
- /package/types/vercel/build/generate/{createSSRServerlessFunction.d.ts → createSsrServerlessFunction.d.ts} +0 -0
|
@@ -8,6 +8,14 @@ import type { RouteNode } from './Route'
|
|
|
8
8
|
|
|
9
9
|
let linkingConfig: OneLinkingOptions | undefined
|
|
10
10
|
|
|
11
|
+
// cache the base linking config (route-tree dependent, not URL-dependent)
|
|
12
|
+
let cachedBaseLinkingConfig: OneLinkingOptions | undefined
|
|
13
|
+
let cachedRouteNodeForLinking: RouteNode | null = null
|
|
14
|
+
|
|
15
|
+
// cache getStateFromPath results by path for SSR performance
|
|
16
|
+
// same path always produces the same navigation state (route tree is static in prod)
|
|
17
|
+
const ssrStateCache = new Map<string, OneRouter.ResultState | undefined>()
|
|
18
|
+
|
|
11
19
|
export function getLinking() {
|
|
12
20
|
return linkingConfig
|
|
13
21
|
}
|
|
@@ -20,6 +28,46 @@ export function resetLinking() {
|
|
|
20
28
|
linkingConfig = undefined
|
|
21
29
|
}
|
|
22
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Ensure the base linking config is initialized for a given route tree.
|
|
33
|
+
* Does not set any per-request state.
|
|
34
|
+
*/
|
|
35
|
+
export function ensureBaseLinkingConfig(routeNode: RouteNode | null) {
|
|
36
|
+
if (
|
|
37
|
+
routeNode &&
|
|
38
|
+
(routeNode !== cachedRouteNodeForLinking || !cachedBaseLinkingConfig)
|
|
39
|
+
) {
|
|
40
|
+
cachedBaseLinkingConfig = createLinkingConfig(routeNode)
|
|
41
|
+
cachedRouteNodeForLinking = routeNode
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Compute initialState from a URL path, with caching for SSR.
|
|
47
|
+
* Does not modify the global linkingConfig.
|
|
48
|
+
*/
|
|
49
|
+
export function getSSRInitialState(
|
|
50
|
+
routeNode: RouteNode | null,
|
|
51
|
+
initialLocation: URL
|
|
52
|
+
): OneRouter.ResultState | undefined {
|
|
53
|
+
if (!routeNode) return undefined
|
|
54
|
+
|
|
55
|
+
ensureBaseLinkingConfig(routeNode)
|
|
56
|
+
if (!cachedBaseLinkingConfig) return undefined
|
|
57
|
+
|
|
58
|
+
const path = initialLocation.pathname + (initialLocation.search || '')
|
|
59
|
+
if (ssrStateCache.has(path)) return ssrStateCache.get(path)
|
|
60
|
+
|
|
61
|
+
const state = cachedBaseLinkingConfig.getStateFromPath?.(
|
|
62
|
+
path,
|
|
63
|
+
cachedBaseLinkingConfig.config
|
|
64
|
+
)
|
|
65
|
+
// bound cache to prevent memory growth on sites with many unique URLs
|
|
66
|
+
if (ssrStateCache.size > 10000) ssrStateCache.clear()
|
|
67
|
+
ssrStateCache.set(path, state)
|
|
68
|
+
return state
|
|
69
|
+
}
|
|
70
|
+
|
|
23
71
|
export function setupLinking(
|
|
24
72
|
routeNode: RouteNode | null,
|
|
25
73
|
initialLocation?: URL
|
|
@@ -27,7 +75,11 @@ export function setupLinking(
|
|
|
27
75
|
let initialState: OneRouter.ResultState | undefined
|
|
28
76
|
|
|
29
77
|
if (routeNode) {
|
|
30
|
-
|
|
78
|
+
// reuse ensureBaseLinkingConfig to avoid duplicating cache logic
|
|
79
|
+
ensureBaseLinkingConfig(routeNode)
|
|
80
|
+
|
|
81
|
+
// shallow copy so per-request mutations (getInitialURL) don't affect cache
|
|
82
|
+
linkingConfig = { ...cachedBaseLinkingConfig! }
|
|
31
83
|
|
|
32
84
|
if (initialLocation) {
|
|
33
85
|
linkingConfig.getInitialURL = () => initialLocation.toString()
|
|
@@ -35,7 +87,6 @@ export function setupLinking(
|
|
|
35
87
|
let path = initialLocation.pathname + (initialLocation.search || '')
|
|
36
88
|
|
|
37
89
|
if (isWebClient) {
|
|
38
|
-
// Check history.state for temp location (client-only)
|
|
39
90
|
const historyState = window.history.state
|
|
40
91
|
if (historyState?.__tempLocation?.pathname && !historyState.__tempKey) {
|
|
41
92
|
path =
|
package/src/router/router.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
8
|
type NavigationContainerRefWithCurrent,
|
|
9
|
+
type NavigationState,
|
|
9
10
|
StackActions,
|
|
10
11
|
} from '@react-navigation/native'
|
|
11
12
|
import {
|
|
@@ -116,7 +117,9 @@ export function isRouteProtected(href: string): boolean {
|
|
|
116
117
|
.replace(/^\//, '')
|
|
117
118
|
const routeName = relativePath.split('/')[0] || 'index'
|
|
118
119
|
|
|
119
|
-
|
|
120
|
+
// normalize /index suffix so e.g. "otp/[flow]" matches "otp/[flow]/index"
|
|
121
|
+
const normalizedRouteName = routeName.replace(/\/index$/, '')
|
|
122
|
+
if (protectedScreens.has(routeName) || protectedScreens.has(normalizedRouteName)) {
|
|
120
123
|
return true
|
|
121
124
|
}
|
|
122
125
|
}
|
|
@@ -135,7 +138,6 @@ let splashScreenAnimationFrame: number | undefined
|
|
|
135
138
|
|
|
136
139
|
// we always set it
|
|
137
140
|
export let navigationRef: OneRouter.NavigationRef = null as any
|
|
138
|
-
let navigationRefSubscription: () => void
|
|
139
141
|
|
|
140
142
|
const rootStateSubscribers = new Set<OneRouter.RootStateListener>()
|
|
141
143
|
const loadingStateSubscribers = new Set<OneRouter.LoadingStateListener>()
|
|
@@ -198,6 +200,11 @@ export function useValidationState() {
|
|
|
198
200
|
)
|
|
199
201
|
}
|
|
200
202
|
|
|
203
|
+
// cache route tree + root component across SSR requests (they don't change)
|
|
204
|
+
let cachedRouteNode: RouteNode | null = null
|
|
205
|
+
let cachedRootComponent: ComponentType | null = null
|
|
206
|
+
let cachedContext: One.RouteContext | null = null
|
|
207
|
+
|
|
201
208
|
// Initialize function
|
|
202
209
|
export function initialize(
|
|
203
210
|
context: One.RouteContext,
|
|
@@ -206,12 +213,20 @@ export function initialize(
|
|
|
206
213
|
) {
|
|
207
214
|
cleanUpState()
|
|
208
215
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
216
|
+
// cache route tree - only rebuild when context changes (never in production)
|
|
217
|
+
if (context !== cachedContext || !cachedRouteNode) {
|
|
218
|
+
cachedRouteNode = getRoutes(context, {
|
|
219
|
+
ignoreEntryPoints: true,
|
|
220
|
+
platform: Platform.OS,
|
|
221
|
+
})
|
|
222
|
+
cachedRootComponent = cachedRouteNode
|
|
223
|
+
? getQualifiedRouteComponent(cachedRouteNode)
|
|
224
|
+
: Fragment
|
|
225
|
+
cachedContext = context
|
|
226
|
+
}
|
|
213
227
|
|
|
214
|
-
|
|
228
|
+
routeNode = cachedRouteNode
|
|
229
|
+
rootComponent = cachedRootComponent || Fragment
|
|
215
230
|
|
|
216
231
|
if (!routeNode && process.env.NODE_ENV === 'production') {
|
|
217
232
|
throw new Error('No routes found')
|
|
@@ -271,7 +286,6 @@ function cleanUpState() {
|
|
|
271
286
|
nextState = undefined
|
|
272
287
|
routeInfo = undefined
|
|
273
288
|
resetLinking()
|
|
274
|
-
navigationRefSubscription?.()
|
|
275
289
|
rootStateSubscribers.clear()
|
|
276
290
|
storeSubscribers.clear()
|
|
277
291
|
}
|
|
@@ -293,46 +307,57 @@ function setupLinkingAndRouteInfo(initialLocation?: URL) {
|
|
|
293
307
|
}
|
|
294
308
|
}
|
|
295
309
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
310
|
+
/**
|
|
311
|
+
* called by NavigationContainer's onStateChange callback
|
|
312
|
+
* uses onStateChange instead of addListener('state') because onStateChange
|
|
313
|
+
* always provides the full resolved state, avoiding partial state issues
|
|
314
|
+
* that can cause stale usePathname/useSegments values
|
|
315
|
+
*/
|
|
316
|
+
export function handleNavigationContainerStateChange(
|
|
317
|
+
navState: Readonly<NavigationState> | undefined
|
|
318
|
+
) {
|
|
319
|
+
if (!navState) return
|
|
299
320
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
state.hash = hashes[state.key]
|
|
303
|
-
delete hashes[state.key]
|
|
304
|
-
}
|
|
305
|
-
}
|
|
321
|
+
// @ts-expect-error
|
|
322
|
+
let state = { ...navState } as OneRouter.ResultState
|
|
306
323
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
})
|
|
324
|
+
if (state.key) {
|
|
325
|
+
if (hashes[state.key]) {
|
|
326
|
+
state.hash = hashes[state.key]
|
|
327
|
+
delete hashes[state.key]
|
|
312
328
|
}
|
|
329
|
+
}
|
|
313
330
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
331
|
+
if (!hasAttemptedToHideSplash) {
|
|
332
|
+
hasAttemptedToHideSplash = true
|
|
333
|
+
splashScreenAnimationFrame = requestAnimationFrame(() => {
|
|
334
|
+
// SplashScreen._internal_maybeHideAsync?.();
|
|
335
|
+
})
|
|
336
|
+
}
|
|
318
337
|
|
|
319
|
-
|
|
320
|
-
|
|
338
|
+
if (nextOptions) {
|
|
339
|
+
state = { ...state, linkOptions: nextOptions }
|
|
340
|
+
nextOptions = null
|
|
341
|
+
}
|
|
321
342
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
shouldUpdateSubscribers = true
|
|
325
|
-
}
|
|
343
|
+
let shouldUpdateSubscribers = nextState === state
|
|
344
|
+
nextState = undefined
|
|
326
345
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
}
|
|
332
|
-
})
|
|
333
|
-
}
|
|
334
|
-
})
|
|
346
|
+
if (state && state !== rootState) {
|
|
347
|
+
updateState(state, undefined)
|
|
348
|
+
shouldUpdateSubscribers = true
|
|
349
|
+
}
|
|
335
350
|
|
|
351
|
+
if (shouldUpdateSubscribers) {
|
|
352
|
+
startTransition(() => {
|
|
353
|
+
for (const subscriber of rootStateSubscribers) {
|
|
354
|
+
subscriber(state)
|
|
355
|
+
}
|
|
356
|
+
})
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
function subscribeToNavigationChanges() {
|
|
336
361
|
startTransition(() => {
|
|
337
362
|
updateSnapshot()
|
|
338
363
|
for (const subscriber of storeSubscribers) {
|
|
@@ -515,7 +540,6 @@ function getSnapshot() {
|
|
|
515
540
|
routeInfo,
|
|
516
541
|
splashScreenAnimationFrame,
|
|
517
542
|
navigationRef,
|
|
518
|
-
navigationRefSubscription,
|
|
519
543
|
rootStateSubscribers,
|
|
520
544
|
storeSubscribers,
|
|
521
545
|
}
|
|
@@ -1129,18 +1153,20 @@ export async function linkTo(
|
|
|
1129
1153
|
currentMatches = newMatches
|
|
1130
1154
|
setClientMatches(newMatches)
|
|
1131
1155
|
|
|
1132
|
-
const
|
|
1156
|
+
const currentRootState = navigationRef.getRootState()
|
|
1133
1157
|
|
|
1134
1158
|
const hash = href.indexOf('#')
|
|
1135
|
-
if (
|
|
1136
|
-
hashes[
|
|
1159
|
+
if (currentRootState.key && hash > 0) {
|
|
1160
|
+
hashes[currentRootState.key] = href.slice(hash)
|
|
1137
1161
|
}
|
|
1138
1162
|
|
|
1139
1163
|
// a bit hacky until can figure out a reliable way to tie it to the state
|
|
1140
1164
|
nextOptions = options ?? null
|
|
1141
1165
|
|
|
1142
1166
|
startTransition(() => {
|
|
1143
|
-
|
|
1167
|
+
// compute target at dispatch time to avoid stale state during first render/effects
|
|
1168
|
+
const freshRootState = navigationRef.getRootState() as NavigationState
|
|
1169
|
+
const action = getNavigateAction(state, freshRootState, event)
|
|
1144
1170
|
const current = navigationRef.getCurrentRoute()
|
|
1145
1171
|
navigationRef.dispatch(action)
|
|
1146
1172
|
|
|
@@ -3,8 +3,15 @@ import { resetLoaderState } from '../useLoader'
|
|
|
3
3
|
import type { One } from '../vite/types'
|
|
4
4
|
import * as routerStore from './router'
|
|
5
5
|
import { initialize } from './router'
|
|
6
|
+
import { getSSRInitialState, ensureBaseLinkingConfig } from './linkingConfig'
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
// client-side initialization tracking via a simple counter
|
|
9
|
+
// resetState increments the version so the router re-initializes on client
|
|
10
|
+
let initVersion = 0
|
|
11
|
+
let lastInitVersion = -1
|
|
12
|
+
|
|
13
|
+
// track whether the route tree has been initialized for SSR
|
|
14
|
+
let ssrRouteTreeInitialized = false
|
|
8
15
|
|
|
9
16
|
export function useInitializeOneRouter(
|
|
10
17
|
context: One.RouteContext,
|
|
@@ -12,28 +19,53 @@ export function useInitializeOneRouter(
|
|
|
12
19
|
) {
|
|
13
20
|
const navigationRef = useNavigationContainerRef()
|
|
14
21
|
|
|
15
|
-
|
|
22
|
+
// SSR: initialize route tree once, then compute per-request state via cache
|
|
23
|
+
if (typeof window === 'undefined') {
|
|
24
|
+
if (!ssrRouteTreeInitialized) {
|
|
25
|
+
// first SSR request: full initialization to set up route tree, root component, etc.
|
|
26
|
+
initialize(context, navigationRef, initialLocation)
|
|
27
|
+
ssrRouteTreeInitialized = true
|
|
28
|
+
// also ensure linking config base is cached
|
|
29
|
+
ensureBaseLinkingConfig(routerStore.routeNode)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// per-request: compute initialState from URL (cached by path)
|
|
33
|
+
const initialState = initialLocation
|
|
34
|
+
? getSSRInitialState(routerStore.routeNode, initialLocation)
|
|
35
|
+
: routerStore.initialState
|
|
36
|
+
|
|
37
|
+
// return per-request snapshot to prevent concurrent request trampling
|
|
38
|
+
return {
|
|
39
|
+
rootComponent: routerStore.rootComponent,
|
|
40
|
+
navigationRef,
|
|
41
|
+
initialState,
|
|
42
|
+
} as typeof routerStore
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// client: use version tracking (no concurrency issue)
|
|
46
|
+
if (lastInitVersion !== initVersion) {
|
|
47
|
+
// reset react navigation contexts to avoid stale provider warnings
|
|
48
|
+
const contexts = '__react_navigation__elements_contexts'
|
|
49
|
+
globalThis[contexts] = new Map<string, React.Context<any>>()
|
|
50
|
+
|
|
16
51
|
initialize(context, navigationRef, initialLocation)
|
|
17
|
-
|
|
52
|
+
lastInitVersion = initVersion
|
|
18
53
|
}
|
|
19
54
|
|
|
20
55
|
return routerStore
|
|
21
56
|
}
|
|
22
57
|
|
|
58
|
+
// increment version to trigger re-initialization on next client render
|
|
59
|
+
export function prepareForSSRRender() {
|
|
60
|
+
initVersion++
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// keep backwards compat but make it lightweight
|
|
64
|
+
// on SSR, router state is computed per-request in useInitializeOneRouter;
|
|
65
|
+
// this only clears useAsyncFn caches used by layout loader fallback path
|
|
23
66
|
export function resetState() {
|
|
24
|
-
|
|
25
|
-
resetReactNavigationContexts()
|
|
67
|
+
prepareForSSRRender()
|
|
26
68
|
resetLoaderState()
|
|
27
69
|
}
|
|
28
70
|
|
|
29
|
-
// TODO remove global
|
|
30
71
|
globalThis['__vxrnresetState'] = resetState
|
|
31
|
-
|
|
32
|
-
function resetReactNavigationContexts() {
|
|
33
|
-
// https://github.com/expo/router/discussions/588
|
|
34
|
-
// https://github.com/react-navigation/react-navigation/blob/9fe34b445fcb86e5666f61e144007d7540f014fa/packages/elements/src/getNamedContext.tsx#LL3C1-L4C1
|
|
35
|
-
// React Navigation is storing providers in a global, this is fine for the first static render
|
|
36
|
-
// but subsequent static renders of Stack or Tabs will cause React to throw a warning. To prevent this warning, we'll reset the globals before rendering.
|
|
37
|
-
const contexts = '__react_navigation__elements_contexts'
|
|
38
|
-
globalThis[contexts] = new Map<string, React.Context<any>>()
|
|
39
|
-
}
|
|
@@ -74,17 +74,33 @@ export const { Screen, Group } = createNavigatorFactory({} as any)()
|
|
|
74
74
|
// Cache inline CSS elements at module load (before React hydrates).
|
|
75
75
|
// Reads CSS content from SSR'd <style> elements and creates matching JSX
|
|
76
76
|
// so hydration sees identical content without 100KB+ JSON payload.
|
|
77
|
+
// Also captures <link> stylesheet elements for mixed inline/link CSS mode.
|
|
77
78
|
const cachedInlineCSSElements: React.ReactNode[] =
|
|
78
79
|
typeof document !== 'undefined'
|
|
79
|
-
?
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
<
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
? (() => {
|
|
81
|
+
const elements: React.ReactNode[] = []
|
|
82
|
+
// collect all SSR CSS elements in order (both inline <style> and <link>)
|
|
83
|
+
const cssElements = document.querySelectorAll<HTMLElement>(
|
|
84
|
+
'style[id^="__one_css_"], link[rel="stylesheet"][data-one-css]'
|
|
85
|
+
)
|
|
86
|
+
cssElements.forEach((el, i) => {
|
|
87
|
+
if (el.tagName === 'STYLE') {
|
|
88
|
+
elements.push(
|
|
89
|
+
<style
|
|
90
|
+
key={`inline-css-${i}`}
|
|
91
|
+
id={el.id}
|
|
92
|
+
dangerouslySetInnerHTML={{ __html: el.innerHTML }}
|
|
93
|
+
/>
|
|
94
|
+
)
|
|
95
|
+
} else {
|
|
96
|
+
const href = el.getAttribute('href')!
|
|
97
|
+
elements.push(
|
|
98
|
+
<link key={href} rel="stylesheet" href={href} data-one-css="" />
|
|
99
|
+
)
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
return elements
|
|
103
|
+
})()
|
|
88
104
|
: []
|
|
89
105
|
|
|
90
106
|
/**
|
|
@@ -154,15 +170,23 @@ function RootLayoutRenderer({
|
|
|
154
170
|
}}
|
|
155
171
|
/>
|
|
156
172
|
{serverContext?.cssContents?.length || serverContext?.cssInlineCount
|
|
157
|
-
? //
|
|
173
|
+
? // inline/mixed CSS: render each entry as <style> (if content) or <link>
|
|
158
174
|
serverContext?.cssContents
|
|
159
|
-
? serverContext.cssContents.map((content, i) =>
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
175
|
+
? serverContext.cssContents.map((content, i) =>
|
|
176
|
+
content ? (
|
|
177
|
+
<style
|
|
178
|
+
key={`inline-css-${i}`}
|
|
179
|
+
id={`__one_css_${i}`}
|
|
180
|
+
dangerouslySetInnerHTML={{ __html: content }}
|
|
181
|
+
/>
|
|
182
|
+
) : serverContext.css?.[i] ? (
|
|
183
|
+
<link
|
|
184
|
+
key={serverContext.css[i]}
|
|
185
|
+
rel="stylesheet"
|
|
186
|
+
href={serverContext.css![i]}
|
|
187
|
+
/>
|
|
188
|
+
) : null
|
|
189
|
+
)
|
|
166
190
|
: cachedInlineCSSElements
|
|
167
191
|
: serverContext?.css?.map((file) => (
|
|
168
192
|
<link key={file} rel="stylesheet" href={file} />
|
|
@@ -293,7 +317,14 @@ export function useSortedScreens(
|
|
|
293
317
|
: []
|
|
294
318
|
|
|
295
319
|
return sorted
|
|
296
|
-
.filter((value) =>
|
|
320
|
+
.filter((value) => {
|
|
321
|
+
const routeName = value.route.route
|
|
322
|
+
const normalized = routeName.replace(/\/index$/, '')
|
|
323
|
+
return !(
|
|
324
|
+
options?.protectedScreens?.has(routeName) ||
|
|
325
|
+
options?.protectedScreens?.has(normalized)
|
|
326
|
+
)
|
|
327
|
+
})
|
|
297
328
|
.map((value) => routeToScreen(value.route, value.props))
|
|
298
329
|
}, [node?.children, node?.initialRouteName, order, options?.protectedScreens])
|
|
299
330
|
|
|
@@ -348,10 +379,15 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
|
348
379
|
}, [])
|
|
349
380
|
}
|
|
350
381
|
|
|
351
|
-
// in spa-shell mode,
|
|
382
|
+
// in spa-shell mode, only leaf pages render a placeholder.
|
|
383
|
+
// layouts (routes with children) must render normally so their
|
|
384
|
+
// navigators stay mounted across the hydration transition.
|
|
385
|
+
// without this, navigators remount when SpaShellContext flips
|
|
386
|
+
// and react navigation loses url-matched state, causing
|
|
387
|
+
// redirects like /beta/signup -> /admin -> /app/undefined
|
|
352
388
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
353
389
|
const isSpaShell = useContext(SpaShellContext)
|
|
354
|
-
if (isSpaShell && props.segment !== '') {
|
|
390
|
+
if (isSpaShell && props.segment !== '' && !value.children?.length) {
|
|
355
391
|
return <div data-one-spa-content="" />
|
|
356
392
|
}
|
|
357
393
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// enables synchronous layout updates for react-native-screens
|
|
2
|
+
// this fixes issues like flex: 1 not working properly in formSheet presentations
|
|
3
|
+
// and ensures header config updates are applied synchronously
|
|
4
|
+
// also prevents dismissed screens from being reattached on iOS
|
|
5
|
+
|
|
6
|
+
let hasInitialized = false
|
|
7
|
+
|
|
8
|
+
export function initScreensFeatureFlags() {
|
|
9
|
+
if (hasInitialized) return
|
|
10
|
+
hasInitialized = true
|
|
11
|
+
|
|
12
|
+
try {
|
|
13
|
+
const { featureFlags } = require('react-native-screens')
|
|
14
|
+
if (featureFlags?.experiment) {
|
|
15
|
+
featureFlags.experiment.synchronousScreenUpdatesEnabled = true
|
|
16
|
+
featureFlags.experiment.synchronousHeaderConfigUpdatesEnabled = true
|
|
17
|
+
featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled = true
|
|
18
|
+
featureFlags.experiment.iosPreventReattachmentOfDismissedScreens = true
|
|
19
|
+
}
|
|
20
|
+
} catch {
|
|
21
|
+
// react-native-screens may not be available (e.g. web-only builds)
|
|
22
|
+
}
|
|
23
|
+
}
|
package/src/serve.ts
CHANGED
|
@@ -12,15 +12,76 @@ process.on('uncaughtException', (err) => {
|
|
|
12
12
|
console.error(`[one] Uncaught exception`, err?.stack || err)
|
|
13
13
|
})
|
|
14
14
|
|
|
15
|
-
export async function serve(
|
|
16
|
-
|
|
15
|
+
export async function serve(
|
|
16
|
+
args: VXRNOptions['server'] & {
|
|
17
|
+
app?: Hono
|
|
18
|
+
outDir?: string
|
|
19
|
+
cluster?: boolean | number
|
|
20
|
+
} = {}
|
|
21
|
+
) {
|
|
22
|
+
// cluster mode: --cluster or --cluster=N
|
|
23
|
+
if (args.cluster) {
|
|
24
|
+
const cluster = await import('node:cluster')
|
|
25
|
+
const { cpus } = await import('node:os')
|
|
26
|
+
|
|
27
|
+
if (cluster.default.isPrimary) {
|
|
28
|
+
const numWorkers = typeof args.cluster === 'number' ? args.cluster : cpus().length
|
|
29
|
+
|
|
30
|
+
console.info(`[one] cluster: starting ${numWorkers} workers`)
|
|
31
|
+
|
|
32
|
+
for (let i = 0; i < numWorkers; i++) {
|
|
33
|
+
cluster.default.fork()
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// restart crashed workers with backoff
|
|
37
|
+
let recentCrashes = 0
|
|
38
|
+
let lastCrashTime = 0
|
|
39
|
+
|
|
40
|
+
cluster.default.on('exit', (worker, code, signal) => {
|
|
41
|
+
if (code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') return
|
|
42
|
+
|
|
43
|
+
const now = Date.now()
|
|
44
|
+
if (now - lastCrashTime < 5000) {
|
|
45
|
+
recentCrashes++
|
|
46
|
+
} else {
|
|
47
|
+
recentCrashes = 1
|
|
48
|
+
}
|
|
49
|
+
lastCrashTime = now
|
|
50
|
+
|
|
51
|
+
if (recentCrashes > numWorkers * 2) {
|
|
52
|
+
console.error(`[one] too many worker crashes, stopping`)
|
|
53
|
+
process.exit(1)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
console.error(
|
|
57
|
+
`[one] worker ${worker.process.pid} died (code ${code}, signal ${signal}), restarting`
|
|
58
|
+
)
|
|
59
|
+
setTimeout(() => cluster.default.fork(), Math.min(recentCrashes * 500, 5000))
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
const shutdown = () => {
|
|
63
|
+
for (const id in cluster.default.workers) {
|
|
64
|
+
cluster.default.workers[id]?.process.kill('SIGTERM')
|
|
65
|
+
}
|
|
66
|
+
setTimeout(() => process.exit(0), 5000)
|
|
67
|
+
}
|
|
68
|
+
process.on('SIGINT', shutdown)
|
|
69
|
+
process.on('SIGTERM', shutdown)
|
|
70
|
+
|
|
71
|
+
return
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// worker (or single-process mode)
|
|
76
|
+
const outDir =
|
|
77
|
+
args.outDir || (FSExtra.existsSync('buildInfo.json') ? '.' : null) || 'dist'
|
|
78
|
+
const buildInfo = (await FSExtra.readJSON(`${outDir}/buildInfo.json`)) as One.BuildInfo
|
|
17
79
|
const { oneOptions } = buildInfo
|
|
18
80
|
|
|
19
81
|
setServerGlobals()
|
|
20
82
|
setupBuildInfo(buildInfo)
|
|
21
83
|
ensureExists(oneOptions)
|
|
22
84
|
|
|
23
|
-
// to avoid loading the CACHE_KEY before we set it use async imports:
|
|
24
85
|
const { labelProcess } = await import('./cli/label-process')
|
|
25
86
|
const { removeUndefined } = await import('./utils/removeUndefined')
|
|
26
87
|
const { loadEnv, serve: vxrnServe, serveStaticAssets } = await import('vxrn/serve')
|
|
@@ -33,10 +94,9 @@ export async function serve(args: VXRNOptions['server'] & { app?: Hono } = {}) {
|
|
|
33
94
|
}
|
|
34
95
|
|
|
35
96
|
return await vxrnServe({
|
|
97
|
+
outDir: buildInfo.outDir || outDir,
|
|
36
98
|
app: args.app,
|
|
37
|
-
// fallback to one plugin
|
|
38
99
|
...oneOptions.server,
|
|
39
|
-
// override with any flags given to cli
|
|
40
100
|
...removeUndefined({
|
|
41
101
|
port: args.port ? +args.port : undefined,
|
|
42
102
|
host: args.host,
|
|
@@ -22,14 +22,24 @@ export function ServerContextScript() {
|
|
|
22
22
|
const context = useServerContext()
|
|
23
23
|
const cssUrls = context?.css || []
|
|
24
24
|
|
|
25
|
-
//
|
|
26
|
-
// This avoids duplicating 100KB+ of CSS as JSON in the HTML.
|
|
27
|
-
// The CSSPrehydrateScript reads the actual <style> elements' innerHTML
|
|
28
|
-
// and stores them in globalThis.__oneCSSContents for hydration matching.
|
|
25
|
+
// strip cssContents - read from DOM instead (CSSPrehydrateScript)
|
|
29
26
|
const { cssContents, ...restContext } = context || {}
|
|
27
|
+
|
|
28
|
+
// strip page loaderData from matches to avoid double-serialization
|
|
29
|
+
const compactMatches = restContext.matches?.map((m: any) => ({
|
|
30
|
+
routeId: m.routeId,
|
|
31
|
+
pathname: m.pathname,
|
|
32
|
+
params: m.params,
|
|
33
|
+
...(m.loaderData !== restContext.loaderData ? { loaderData: m.loaderData } : {}),
|
|
34
|
+
}))
|
|
35
|
+
|
|
30
36
|
const clientContext = {
|
|
31
37
|
...restContext,
|
|
38
|
+
matches: compactMatches,
|
|
32
39
|
cssInlineCount: cssContents?.length || 0,
|
|
40
|
+
// use placeholder — postRenderData is set during render (after this component)
|
|
41
|
+
// and replaced in the HTML string after rendering completes
|
|
42
|
+
postRenderData: SERVER_CONTEXT_POST_RENDER_STRING,
|
|
33
43
|
}
|
|
34
44
|
|
|
35
45
|
return (
|
|
@@ -40,10 +50,7 @@ export function ServerContextScript() {
|
|
|
40
50
|
suppressHydrationWarning
|
|
41
51
|
dangerouslySetInnerHTML={{
|
|
42
52
|
__html: `
|
|
43
|
-
globalThis["${SERVER_CONTEXT_KEY}"] = ${safeJsonStringify(
|
|
44
|
-
...clientContext,
|
|
45
|
-
postRenderData: SERVER_CONTEXT_POST_RENDER_STRING,
|
|
46
|
-
})};
|
|
53
|
+
globalThis["${SERVER_CONTEXT_KEY}"] = ${safeJsonStringify(clientContext)};
|
|
47
54
|
globalThis.__oneLoadedCSS = new Set(${safeJsonStringify(cssUrls)});
|
|
48
55
|
`,
|
|
49
56
|
}}
|