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
package/src/server/oneServe.ts
CHANGED
|
@@ -18,18 +18,19 @@ import { getPathFromLoaderPath } from '../utils/cleanUrl'
|
|
|
18
18
|
import { toAbsolute } from '../utils/toAbsolute'
|
|
19
19
|
import type { One } from '../vite/types'
|
|
20
20
|
import type { RouteInfoCompiled } from './createRoutesManifest'
|
|
21
|
+
import { setSSRLoaderData } from './ssrLoaderData'
|
|
21
22
|
import { getFetchStaticHtml } from './staticHtmlFetcher'
|
|
22
23
|
|
|
23
24
|
const debugRouter = process.env.ONE_DEBUG_ROUTER
|
|
24
25
|
|
|
25
|
-
async function readStaticHtml(htmlPath: string): Promise<string | null> {
|
|
26
|
+
async function readStaticHtml(htmlPath: string, outDir = 'dist'): Promise<string | null> {
|
|
26
27
|
const fetchStaticHtml = getFetchStaticHtml()
|
|
27
28
|
if (fetchStaticHtml) {
|
|
28
29
|
const html = await fetchStaticHtml(htmlPath)
|
|
29
30
|
if (html) return html
|
|
30
31
|
}
|
|
31
32
|
try {
|
|
32
|
-
return await readFile(join(
|
|
33
|
+
return await readFile(join(`${outDir}/client`, htmlPath), 'utf-8')
|
|
33
34
|
} catch {
|
|
34
35
|
return null
|
|
35
36
|
}
|
|
@@ -55,6 +56,7 @@ export async function oneServe(
|
|
|
55
56
|
lazyRoutes?: LazyRoutes
|
|
56
57
|
}
|
|
57
58
|
) {
|
|
59
|
+
const outDir = buildInfo.outDir || 'dist'
|
|
58
60
|
const { resolveAPIRoute, resolveLoaderRoute, resolvePageRoute } =
|
|
59
61
|
await import('../createHandleRequest')
|
|
60
62
|
const { isResponse } = await import('../utils/isResponse')
|
|
@@ -115,6 +117,55 @@ export async function oneServe(
|
|
|
115
117
|
|
|
116
118
|
const apiCJS = oneOptions.build?.api?.outputFormat === 'cjs'
|
|
117
119
|
|
|
120
|
+
// cache resolved loader functions directly (not just modules)
|
|
121
|
+
const loaderCache = new Map<string, Function | null>()
|
|
122
|
+
const moduleImportCache = new Map<string, any>()
|
|
123
|
+
|
|
124
|
+
// loader coalescing via static loaderCache export
|
|
125
|
+
// when a route exports loaderCache, concurrent requests with the same key share one execution
|
|
126
|
+
const loaderCacheFnMap = new Map<string, Function | null>()
|
|
127
|
+
const pendingLoaderResults = new Map<
|
|
128
|
+
string,
|
|
129
|
+
{ promise: Promise<any>; expires: number }
|
|
130
|
+
>()
|
|
131
|
+
|
|
132
|
+
// resolve a route module's loader - sync on cache hit, async on cold start
|
|
133
|
+
function resolveLoaderSync(
|
|
134
|
+
serverPath: string | undefined,
|
|
135
|
+
lazyKey: string | undefined
|
|
136
|
+
): Function | null | Promise<Function | null> {
|
|
137
|
+
const cacheKey = lazyKey || serverPath || ''
|
|
138
|
+
const cached = loaderCache.get(cacheKey)
|
|
139
|
+
if (cached !== undefined) return cached // sync!
|
|
140
|
+
|
|
141
|
+
// cold path - async import
|
|
142
|
+
return (async () => {
|
|
143
|
+
const pathToResolve = serverPath || lazyKey || ''
|
|
144
|
+
const resolvedPath = pathToResolve.includes(`${outDir}/server`)
|
|
145
|
+
? pathToResolve
|
|
146
|
+
: join('./', `${outDir}/server`, pathToResolve)
|
|
147
|
+
|
|
148
|
+
let routeExported: any
|
|
149
|
+
if (moduleImportCache.has(cacheKey)) {
|
|
150
|
+
routeExported = moduleImportCache.get(cacheKey)
|
|
151
|
+
} else {
|
|
152
|
+
routeExported = lazyKey
|
|
153
|
+
? options?.lazyRoutes?.pages?.[lazyKey]
|
|
154
|
+
? await options.lazyRoutes.pages[lazyKey]()
|
|
155
|
+
: await import(toAbsolute(resolvedPath))
|
|
156
|
+
: await import(toAbsolute(serverPath!))
|
|
157
|
+
moduleImportCache.set(cacheKey, routeExported)
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const loader = routeExported?.loader || null
|
|
161
|
+
loaderCache.set(cacheKey, loader)
|
|
162
|
+
// also cache loaderCache export for coalescing
|
|
163
|
+
const loaderCacheFn = routeExported?.loaderCache ?? null
|
|
164
|
+
loaderCacheFnMap.set(cacheKey, loaderCacheFn)
|
|
165
|
+
return loader
|
|
166
|
+
})()
|
|
167
|
+
}
|
|
168
|
+
|
|
118
169
|
// shared helper to import a route module and run its loader
|
|
119
170
|
async function importAndRunLoader(
|
|
120
171
|
routeId: string,
|
|
@@ -126,19 +177,60 @@ export async function oneServe(
|
|
|
126
177
|
return { loaderData: undefined, routeId }
|
|
127
178
|
}
|
|
128
179
|
|
|
180
|
+
// check loaderCache BEFORE resolving the loader (fast path for coalesced requests)
|
|
181
|
+
const cacheMapKey = lazyKey || serverPath || ''
|
|
182
|
+
const loaderCacheFn = loaderCacheFnMap.get(cacheMapKey)
|
|
183
|
+
let coalFullKey: string | undefined
|
|
184
|
+
let coalTtl = 0
|
|
185
|
+
|
|
186
|
+
if (loaderCacheFn) {
|
|
187
|
+
const cacheResult = loaderCacheFn(loaderProps?.params, loaderProps?.request)
|
|
188
|
+
const cacheKey = typeof cacheResult === 'string' ? cacheResult : cacheResult?.key
|
|
189
|
+
coalTtl = typeof cacheResult === 'string' ? 0 : (cacheResult?.ttl ?? 0)
|
|
190
|
+
|
|
191
|
+
if (cacheKey != null) {
|
|
192
|
+
coalFullKey = routeId + '\0' + cacheKey
|
|
193
|
+
const existing = pendingLoaderResults.get(coalFullKey)
|
|
194
|
+
// expires=0 means pending or no-TTL (coalesce-only), so !0 is true
|
|
195
|
+
if (existing && (!existing.expires || Date.now() < existing.expires)) {
|
|
196
|
+
// coalesce: reuse pending/cached result (never even resolves the loader fn)
|
|
197
|
+
const loaderData = await existing.promise
|
|
198
|
+
return { loaderData, routeId }
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
129
203
|
try {
|
|
130
|
-
const
|
|
131
|
-
const
|
|
132
|
-
?
|
|
133
|
-
|
|
204
|
+
const loaderOrPromise = resolveLoaderSync(serverPath, lazyKey)
|
|
205
|
+
const loader =
|
|
206
|
+
loaderOrPromise instanceof Promise ? await loaderOrPromise : loaderOrPromise
|
|
207
|
+
if (!loader) {
|
|
208
|
+
return { loaderData: undefined, routeId }
|
|
209
|
+
}
|
|
134
210
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
211
|
+
// first caller with loaderCache: execute and register for coalescing
|
|
212
|
+
if (coalFullKey) {
|
|
213
|
+
const promise = loader(loaderProps)
|
|
214
|
+
const entry = { promise, expires: 0 }
|
|
215
|
+
pendingLoaderResults.set(coalFullKey, entry)
|
|
216
|
+
promise.then(
|
|
217
|
+
() => {
|
|
218
|
+
entry.expires = coalTtl > 0 ? Date.now() + coalTtl : 0
|
|
219
|
+
if (coalTtl <= 0) {
|
|
220
|
+
Promise.resolve().then(() => pendingLoaderResults.delete(coalFullKey!))
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
() => {
|
|
224
|
+
pendingLoaderResults.delete(coalFullKey!)
|
|
225
|
+
}
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
const loaderData = await promise
|
|
229
|
+
return { loaderData, routeId }
|
|
230
|
+
}
|
|
140
231
|
|
|
141
|
-
|
|
232
|
+
// no coalescing: run loader directly
|
|
233
|
+
const loaderData = await loader(loaderProps)
|
|
142
234
|
return { loaderData, routeId }
|
|
143
235
|
} catch (err) {
|
|
144
236
|
if (isResponse(err)) {
|
|
@@ -152,25 +244,47 @@ export async function oneServe(
|
|
|
152
244
|
}
|
|
153
245
|
}
|
|
154
246
|
|
|
155
|
-
//
|
|
247
|
+
// lazy load server entry - sync on cache hit
|
|
156
248
|
let render: ((props: RenderAppProps) => any) | null = null
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
249
|
+
let renderStream: ((props: RenderAppProps) => Promise<ReadableStream>) | null = null
|
|
250
|
+
let renderLoading: Promise<void> | null = null
|
|
251
|
+
|
|
252
|
+
function ensureRenderLoaded(): void | Promise<void> {
|
|
253
|
+
if (render) return // sync!
|
|
254
|
+
if (renderLoading) return renderLoading
|
|
255
|
+
renderLoading = (async () => {
|
|
160
256
|
const entry = options?.lazyRoutes?.serverEntry
|
|
161
257
|
? await options.lazyRoutes.serverEntry()
|
|
162
258
|
: await import(
|
|
163
259
|
resolve(
|
|
164
260
|
process.cwd(),
|
|
165
|
-
`${serverOptions.root}/
|
|
261
|
+
`${serverOptions.root}/${outDir}/server/_virtual_one-entry.${typeof oneOptions.build?.server === 'object' && oneOptions.build.server.outputFormat === 'cjs' ? 'c' : ''}js`
|
|
166
262
|
)
|
|
167
263
|
)
|
|
168
264
|
render = entry.default.render as (props: RenderAppProps) => any
|
|
169
|
-
|
|
170
|
-
|
|
265
|
+
renderStream = entry.default.renderStream as
|
|
266
|
+
| ((props: RenderAppProps) => Promise<ReadableStream>)
|
|
267
|
+
| null
|
|
268
|
+
})()
|
|
269
|
+
return renderLoading
|
|
171
270
|
}
|
|
172
271
|
|
|
272
|
+
const clientDir = join(process.cwd(), outDir, 'client')
|
|
273
|
+
|
|
173
274
|
const requestHandlers: RequestHandlers = {
|
|
275
|
+
async handleStaticFile(filePath: string) {
|
|
276
|
+
try {
|
|
277
|
+
// filePath is like /assets/index_123_vxrn_loader.native.js
|
|
278
|
+
const fullPath = join(clientDir, filePath)
|
|
279
|
+
const content = await readFile(fullPath, 'utf-8')
|
|
280
|
+
return new Response(content, {
|
|
281
|
+
headers: { 'Content-Type': 'text/javascript' },
|
|
282
|
+
})
|
|
283
|
+
} catch {
|
|
284
|
+
return null
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
|
|
174
288
|
async handleAPI({ route }) {
|
|
175
289
|
// Use lazy import if available (workers), otherwise dynamic import (Node.js)
|
|
176
290
|
if (options?.lazyRoutes?.api?.[route.page]) {
|
|
@@ -180,7 +294,7 @@ export async function oneServe(
|
|
|
180
294
|
const fileName = route.page.slice(1).replace(/\[/g, '_').replace(/\]/g, '_')
|
|
181
295
|
const apiFile = join(
|
|
182
296
|
process.cwd(),
|
|
183
|
-
|
|
297
|
+
outDir,
|
|
184
298
|
'api',
|
|
185
299
|
fileName + (apiCJS ? '.cjs' : '.js')
|
|
186
300
|
)
|
|
@@ -196,30 +310,22 @@ export async function oneServe(
|
|
|
196
310
|
},
|
|
197
311
|
|
|
198
312
|
async handleLoader({ route, loaderProps }) {
|
|
199
|
-
// Use lazy import if available (workers), otherwise dynamic import (Node.js)
|
|
200
|
-
// For workers, look up by routeFile (original file path like "./dynamic/[id]+ssr.tsx")
|
|
201
|
-
// For Node.js, use route.file which may be loaderServerPath (already includes dist/server)
|
|
202
313
|
const routeFile = (route as any).routeFile || route.file
|
|
203
|
-
|
|
204
|
-
const serverPath = route.file.includes('dist/server')
|
|
314
|
+
const serverPath = route.file.includes(`${outDir}/server`)
|
|
205
315
|
? route.file
|
|
206
|
-
: join('./',
|
|
316
|
+
: join('./', `${outDir}/server`, route.file)
|
|
207
317
|
|
|
208
|
-
let
|
|
318
|
+
let loader: Function | null
|
|
209
319
|
try {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
: await import(toAbsolute(serverPath))
|
|
320
|
+
const loaderResult = resolveLoaderSync(serverPath, routeFile)
|
|
321
|
+
loader = loaderResult instanceof Promise ? await loaderResult : loaderResult
|
|
213
322
|
} catch (err) {
|
|
214
|
-
// module doesn't exist (e.g., dynamic route with slug not in generateStaticParams)
|
|
215
323
|
if ((err as any)?.code === 'ERR_MODULE_NOT_FOUND') {
|
|
216
324
|
return null
|
|
217
325
|
}
|
|
218
326
|
throw err
|
|
219
327
|
}
|
|
220
328
|
|
|
221
|
-
const { loader } = exports
|
|
222
|
-
|
|
223
329
|
if (!loader) {
|
|
224
330
|
return null
|
|
225
331
|
}
|
|
@@ -309,7 +415,7 @@ export async function oneServe(
|
|
|
309
415
|
if (nfHtml) {
|
|
310
416
|
try {
|
|
311
417
|
const html = await readFile(
|
|
312
|
-
join(process.cwd(),
|
|
418
|
+
join(process.cwd(), `${outDir}/client`, nfHtml),
|
|
313
419
|
'utf-8'
|
|
314
420
|
)
|
|
315
421
|
return new Response(html, {
|
|
@@ -340,28 +446,55 @@ export async function oneServe(
|
|
|
340
446
|
// for backwards compat, loaderData is still the page's loader data
|
|
341
447
|
const loaderData = pageResult.loaderData
|
|
342
448
|
|
|
449
|
+
// populate per-loader WeakMap so layout useLoader gets correct data
|
|
450
|
+
for (const layout of layoutRoutes) {
|
|
451
|
+
const key = layout.contextKey
|
|
452
|
+
const loaderFn = loaderCache.get(key)
|
|
453
|
+
if (loaderFn) {
|
|
454
|
+
const result = layoutResults.find((r) => r.routeId === key)
|
|
455
|
+
if (result) {
|
|
456
|
+
setSSRLoaderData(loaderFn, result.loaderData)
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
const pageLoaderFn = loaderCache.get(route.file)
|
|
461
|
+
if (pageLoaderFn) {
|
|
462
|
+
setSSRLoaderData(pageLoaderFn, pageResult.loaderData)
|
|
463
|
+
}
|
|
464
|
+
|
|
343
465
|
const headers = new Headers()
|
|
344
466
|
headers.set('content-type', 'text/html')
|
|
345
467
|
|
|
346
|
-
//
|
|
347
|
-
// TODO: Consider using AsyncLocalStorage to isolate router state per request
|
|
348
|
-
// instead of using global reset, for better concurrency handling
|
|
468
|
+
// prepare router for this SSR render (lightweight version bump)
|
|
349
469
|
globalThis['__vxrnresetState']?.()
|
|
350
470
|
|
|
351
|
-
const
|
|
352
|
-
await getRender()
|
|
353
|
-
)({
|
|
471
|
+
const renderProps = {
|
|
354
472
|
mode: route.type,
|
|
355
473
|
loaderData,
|
|
356
474
|
loaderProps,
|
|
357
475
|
path: loaderProps?.path || '/',
|
|
358
|
-
// Use separated preloads for optimal loading
|
|
359
476
|
preloads: buildInfo.criticalPreloads || buildInfo.preloads,
|
|
360
477
|
deferredPreloads: buildInfo.deferredPreloads,
|
|
361
478
|
css: buildInfo.css,
|
|
362
479
|
cssContents: buildInfo.cssContents,
|
|
363
480
|
matches,
|
|
364
|
-
}
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
// streaming SSR by default, fall back to buffered with ONE_BUFFERED_SSR=1
|
|
484
|
+
const _rl = ensureRenderLoaded()
|
|
485
|
+
if (_rl) await _rl
|
|
486
|
+
|
|
487
|
+
const streamFn = !process.env.ONE_BUFFERED_SSR ? renderStream : null
|
|
488
|
+
if (streamFn) {
|
|
489
|
+
const stream = await streamFn(renderProps)
|
|
490
|
+
return new Response(stream, {
|
|
491
|
+
headers,
|
|
492
|
+
status: route.isNotFound ? 404 : 200,
|
|
493
|
+
})
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
// render is guaranteed loaded after ensureRenderLoaded above
|
|
497
|
+
const rendered = await render!(renderProps)
|
|
365
498
|
|
|
366
499
|
return new Response(rendered, {
|
|
367
500
|
headers,
|
|
@@ -417,9 +550,9 @@ url: ${url}`)
|
|
|
417
550
|
|
|
418
551
|
globalThis['__vxrnresetState']?.()
|
|
419
552
|
|
|
420
|
-
const
|
|
421
|
-
|
|
422
|
-
|
|
553
|
+
const _rl3 = ensureRenderLoaded()
|
|
554
|
+
if (_rl3) await _rl3
|
|
555
|
+
const rendered = await render!({
|
|
423
556
|
mode: 'spa-shell',
|
|
424
557
|
// don't pass loaderData for spa-shell - the page loader runs on client
|
|
425
558
|
// passing {} here would make useLoaderState think data is preloaded
|
|
@@ -467,7 +600,7 @@ url: ${url}`)
|
|
|
467
600
|
: routeMap[url.pathname] || routeMap[buildInfo?.cleanPath]
|
|
468
601
|
|
|
469
602
|
if (htmlPath) {
|
|
470
|
-
const html = await readStaticHtml(htmlPath)
|
|
603
|
+
const html = await readStaticHtml(htmlPath, outDir)
|
|
471
604
|
|
|
472
605
|
if (html) {
|
|
473
606
|
const headers = new Headers()
|
|
@@ -486,7 +619,7 @@ url: ${url}`)
|
|
|
486
619
|
const notFoundHtmlPath = routeMap[notFoundRoute]
|
|
487
620
|
|
|
488
621
|
if (notFoundHtmlPath) {
|
|
489
|
-
const notFoundHtml = await readStaticHtml(notFoundHtmlPath)
|
|
622
|
+
const notFoundHtml = await readStaticHtml(notFoundHtmlPath, outDir)
|
|
490
623
|
|
|
491
624
|
if (notFoundHtml) {
|
|
492
625
|
// inject 404 marker so client knows this is a 404 response
|
|
@@ -571,6 +704,8 @@ url: ${url}`)
|
|
|
571
704
|
}
|
|
572
705
|
|
|
573
706
|
const finalUrl = new URL(originalUrl, url.origin)
|
|
707
|
+
// preserve query params (platform=ios, etc.) for native CJS conversion
|
|
708
|
+
finalUrl.search = url.search
|
|
574
709
|
const cleanedRequest = new Request(finalUrl, request)
|
|
575
710
|
return resolveLoaderRoute(requestHandlers, cleanedRequest, finalUrl, route)
|
|
576
711
|
}
|
|
@@ -742,6 +877,8 @@ url: ${url}`)
|
|
|
742
877
|
}
|
|
743
878
|
|
|
744
879
|
const finalUrl = new URL(originalUrl, url.origin)
|
|
880
|
+
// preserve query params (platform=ios, etc.) for native CJS conversion
|
|
881
|
+
finalUrl.search = url.search
|
|
745
882
|
const cleanedRequest = new Request(finalUrl, request)
|
|
746
883
|
|
|
747
884
|
try {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// shared weakmap for SSR loader data
|
|
2
|
+
// kept in a separate server-safe module to avoid pulling in client-side
|
|
3
|
+
// dependencies (like @react-navigation/native) into the serve runtime
|
|
4
|
+
export const ssrLoaderData = new WeakMap<Function, any>()
|
|
5
|
+
|
|
6
|
+
export function setSSRLoaderData(loaderFn: Function, data: any) {
|
|
7
|
+
ssrLoaderData.set(loaderFn, data)
|
|
8
|
+
}
|
package/src/server-render.tsx
CHANGED
|
@@ -4,50 +4,47 @@ export type RenderToStringOptions = {
|
|
|
4
4
|
/**
|
|
5
5
|
* Critical scripts that need to execute immediately (will use async).
|
|
6
6
|
* These are added to bootstrapModules and generate both modulepreload links and async script tags.
|
|
7
|
-
* Keep this list minimal (typically: setupClient, one-entry, page entry).
|
|
8
7
|
*/
|
|
9
8
|
preloads?: string[]
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Non-critical scripts that can wait (will only be modulepreload hints).
|
|
13
|
-
* These only generate <link rel="modulepreload"> tags and are loaded when imported.
|
|
14
|
-
* Use this for component libraries, utilities, and other non-essential modules.
|
|
15
|
-
*/
|
|
16
|
-
deferredPreloads?: string[]
|
|
17
9
|
}
|
|
18
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Buffered SSR - renders to full HTML string.
|
|
13
|
+
* Deferred preloads and server data are rendered in the React tree
|
|
14
|
+
* (React 19 hoists <link> to <head>).
|
|
15
|
+
*/
|
|
19
16
|
export const renderToString = async (
|
|
20
17
|
app: React.ReactElement,
|
|
21
18
|
options: RenderToStringOptions
|
|
22
19
|
) => {
|
|
23
20
|
const readableStream = await ReactDOMServer.renderToReadableStream(app, {
|
|
24
|
-
// Only pass critical scripts to bootstrapModules
|
|
25
|
-
// These generate both modulepreload links AND async script tags
|
|
26
21
|
bootstrapModules: options.preloads,
|
|
27
22
|
})
|
|
28
23
|
await readableStream.allReady
|
|
29
|
-
let out = await streamToString(readableStream)
|
|
30
24
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
25
|
+
const reader = readableStream.getReader()
|
|
26
|
+
const decoder = new TextDecoder('utf-8')
|
|
27
|
+
let out = ''
|
|
28
|
+
|
|
29
|
+
while (true) {
|
|
30
|
+
const { done, value } = await reader.read()
|
|
31
|
+
if (done) break
|
|
32
|
+
out += decoder.decode(value, { stream: true })
|
|
37
33
|
}
|
|
34
|
+
out += decoder.decode()
|
|
38
35
|
|
|
39
36
|
return out
|
|
40
37
|
}
|
|
41
38
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Streaming SSR - returns ReadableStream directly.
|
|
41
|
+
* Skips allReady wait for faster TTFB.
|
|
42
|
+
*/
|
|
43
|
+
export const renderToStream = async (
|
|
44
|
+
app: React.ReactElement,
|
|
45
|
+
options: RenderToStringOptions
|
|
46
|
+
): Promise<ReadableStream> => {
|
|
47
|
+
return ReactDOMServer.renderToReadableStream(app, {
|
|
48
|
+
bootstrapModules: options.preloads,
|
|
49
|
+
})
|
|
53
50
|
}
|
package/src/ui/Slot.tsx
CHANGED
|
@@ -23,6 +23,13 @@ import { StyleSheet, type ViewProps } from 'react-native'
|
|
|
23
23
|
*/
|
|
24
24
|
function ShimSlotForReactNative(Component: typeof RUISlot): typeof RUISlot {
|
|
25
25
|
return forwardRef(function RNSlotHOC({ style, ...props }, ref) {
|
|
26
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
27
|
+
if (Array.isArray(style)) {
|
|
28
|
+
throw new Error(
|
|
29
|
+
'Slot does not support array styles. Use StyleSheet.flatten() or an object style instead.'
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
26
33
|
style = useMemo(() => StyleSheet.flatten(style), [style])
|
|
27
34
|
return <Component ref={ref} {...props} style={style} />
|
|
28
35
|
})
|
package/src/ui/TabRouter.tsx
CHANGED
|
@@ -37,6 +37,24 @@ export function ExpoTabRouter(options: ExpoTabRouterOptions) {
|
|
|
37
37
|
> = {
|
|
38
38
|
...rnTabRouter,
|
|
39
39
|
getStateForAction(state, action, options) {
|
|
40
|
+
// convert REPLACE to JUMP_TO so tab navigators handle it as a tab switch
|
|
41
|
+
if ((action as any).type === 'REPLACE') {
|
|
42
|
+
const payload = (action as any).payload
|
|
43
|
+
return router.getStateForAction(
|
|
44
|
+
state,
|
|
45
|
+
{
|
|
46
|
+
type: 'JUMP_TO' as const,
|
|
47
|
+
source: (action as any).source,
|
|
48
|
+
target: (action as any).target,
|
|
49
|
+
payload: {
|
|
50
|
+
name: payload?.name ?? '',
|
|
51
|
+
params: payload?.params,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
options
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
|
|
40
58
|
if (action.type !== 'JUMP_TO') {
|
|
41
59
|
return rnTabRouter.getStateForAction(state, action, options)
|
|
42
60
|
}
|
package/src/ui/TabTrigger.tsx
CHANGED
|
@@ -251,6 +251,9 @@ export function useTabTrigger(options: TabTriggerProps): UseTabTriggerResult {
|
|
|
251
251
|
|
|
252
252
|
if (!shouldHandleMouseEvent(event)) return
|
|
253
253
|
|
|
254
|
+
// skip dispatch if this trigger's tab is already focused
|
|
255
|
+
if (trigger.isFocused) return
|
|
256
|
+
|
|
254
257
|
switchTab(name, { resetOnFocus })
|
|
255
258
|
},
|
|
256
259
|
[onPress, name, resetOnFocus, trigger, navigation, switchTab]
|
package/src/useLoader.ts
CHANGED
|
@@ -2,14 +2,18 @@ import { useCallback, useSyncExternalStore } from 'react'
|
|
|
2
2
|
import { registerDevtoolsFunction } from './devtools/registry'
|
|
3
3
|
import { useParams, usePathname } from './hooks'
|
|
4
4
|
import { findNearestNotFoundRoute, setNotFoundState } from './notFoundState'
|
|
5
|
+
import { useContextKey } from './router/Route'
|
|
6
|
+
import { getContextKey } from './router/matchers'
|
|
5
7
|
import { router } from './router/imperative-api'
|
|
6
8
|
import { preloadedLoaderData, preloadingLoader, routeNode } from './router/router'
|
|
9
|
+
import { ssrLoaderData } from './server/ssrLoaderData'
|
|
7
10
|
import {
|
|
8
11
|
subscribeToClientMatches,
|
|
9
12
|
getClientMatchesSnapshot,
|
|
10
13
|
updateMatchLoaderData,
|
|
11
14
|
} from './useMatches'
|
|
12
15
|
import { getLoaderPath } from './utils/cleanUrl'
|
|
16
|
+
import { LOADER_JS_POSTFIX_UNCACHED } from './constants'
|
|
13
17
|
import { dynamicImport } from './utils/dynamicImport'
|
|
14
18
|
import { weakKey } from './utils/weakKey'
|
|
15
19
|
import { useServerContext } from './vite/one-server-only'
|
|
@@ -311,16 +315,46 @@ export function useLoaderState<
|
|
|
311
315
|
// (the pathname is already resolved like /docs/getting-started, not /docs/[slug])
|
|
312
316
|
const currentPath = pathname.replace(/\/index$/, '').replace(/\/$/, '') || '/'
|
|
313
317
|
|
|
314
|
-
// server-side only -
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
318
|
+
// server-side only — use pre-resolved loader data so dev and prod behave identically
|
|
319
|
+
// (no re-running loaders during render, data comes from the same source the client gets)
|
|
320
|
+
if (typeof window === 'undefined') {
|
|
321
|
+
if (loader) {
|
|
322
|
+
// 1) prod: WeakMap keyed by loader function (set by oneServe)
|
|
323
|
+
if (ssrLoaderData.has(loader)) {
|
|
324
|
+
return {
|
|
325
|
+
data: ssrLoaderData.get(loader),
|
|
326
|
+
refetch: async () => {},
|
|
327
|
+
state: 'idle',
|
|
328
|
+
} as any
|
|
329
|
+
}
|
|
330
|
+
// 2) dev/fallback: look up this route's data from the matches array in server context
|
|
331
|
+
// matches are built with per-route loaderData by both dev and prod handlers
|
|
332
|
+
// this avoids re-running loaders during render and keeps dev/prod identical
|
|
333
|
+
const serverContext = useServerContext()
|
|
334
|
+
if (serverContext?.matches) {
|
|
335
|
+
const contextKey = useContextKey()
|
|
336
|
+
const match = serverContext.matches.find(
|
|
337
|
+
(m: any) => getContextKey(m.routeId) === contextKey
|
|
338
|
+
)
|
|
339
|
+
if (match && match.loaderData !== undefined) {
|
|
340
|
+
return { data: match.loaderData, refetch: async () => {}, state: 'idle' } as any
|
|
341
|
+
}
|
|
321
342
|
}
|
|
322
|
-
|
|
323
|
-
|
|
343
|
+
// 3) last resort fallback: run the loader
|
|
344
|
+
const serverData = useAsyncFn(
|
|
345
|
+
loader,
|
|
346
|
+
loaderPropsFromServerContext || { path: pathname, params }
|
|
347
|
+
)
|
|
348
|
+
return { data: serverData, refetch: async () => {}, state: 'idle' } as any
|
|
349
|
+
}
|
|
350
|
+
// no loader function (useLoaderState without loader arg) — use page-level data
|
|
351
|
+
if (loaderDataFromServerContext !== undefined) {
|
|
352
|
+
return {
|
|
353
|
+
data: loaderDataFromServerContext,
|
|
354
|
+
refetch: async () => {},
|
|
355
|
+
state: 'idle',
|
|
356
|
+
} as any
|
|
357
|
+
}
|
|
324
358
|
}
|
|
325
359
|
|
|
326
360
|
// detect if the loader stub returns a routeId string (set by clientTreeShakePlugin)
|
|
@@ -446,8 +480,22 @@ export function useLoaderState<
|
|
|
446
480
|
|
|
447
481
|
try {
|
|
448
482
|
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
449
|
-
|
|
450
|
-
|
|
483
|
+
let nativeLoaderJSUrl: string
|
|
484
|
+
if (process.env.NODE_ENV === 'development') {
|
|
485
|
+
// dev: ?platform=native tells vite plugin to return CJS
|
|
486
|
+
nativeLoaderJSUrl = `${getLoaderPath(currentPath, true)}?platform=native`
|
|
487
|
+
} else {
|
|
488
|
+
// prod: request the .native.js static file directly
|
|
489
|
+
// use uncached postfix since metro can't inline ONE_CACHE_KEY
|
|
490
|
+
const { getURL } = require('./getURL')
|
|
491
|
+
const base = getURL()
|
|
492
|
+
const cleanedPath = currentPath
|
|
493
|
+
.slice(1)
|
|
494
|
+
.replace(/\/$/, '')
|
|
495
|
+
.replaceAll('_', '__')
|
|
496
|
+
.replaceAll('/', '_')
|
|
497
|
+
nativeLoaderJSUrl = `${base}/assets/${cleanedPath}${LOADER_JS_POSTFIX_UNCACHED.replace('.js', '.native.js')}`
|
|
498
|
+
}
|
|
451
499
|
|
|
452
500
|
try {
|
|
453
501
|
const moduleLoadStart = performance.now()
|
|
@@ -526,6 +574,11 @@ export function useLoaderState<
|
|
|
526
574
|
})
|
|
527
575
|
return
|
|
528
576
|
} catch (e) {
|
|
577
|
+
console.error(
|
|
578
|
+
`[one] native loader error for ${currentPath}:`,
|
|
579
|
+
e instanceof Error ? e.message : e,
|
|
580
|
+
`url: ${nativeLoaderJSUrl}`
|
|
581
|
+
)
|
|
529
582
|
const totalTime = performance.now() - startTime
|
|
530
583
|
updateState(currentPath, {
|
|
531
584
|
data: {},
|
|
@@ -691,6 +744,11 @@ export function useLoader<
|
|
|
691
744
|
const results = new Map()
|
|
692
745
|
const started = new Map()
|
|
693
746
|
|
|
747
|
+
// maps loader function → its route's loaderData for SSR
|
|
748
|
+
// populated before render in oneServe.ts, cleared after
|
|
749
|
+
// re-export for backwards compat
|
|
750
|
+
export { setSSRLoaderData } from './server/ssrLoaderData'
|
|
751
|
+
|
|
694
752
|
export function resetLoaderState() {
|
|
695
753
|
results.clear()
|
|
696
754
|
started.clear()
|
package/src/utils/isRolldown.ts
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { version } from 'vite'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
if (_isRolldown !== undefined) {
|
|
5
|
-
return _isRolldown
|
|
6
|
-
}
|
|
3
|
+
const majorVersion = parseInt(version.split('.')[0], 10)
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// withFilter only exists in rolldown-vite
|
|
11
|
-
_isRolldown = 'withFilter' in vite
|
|
12
|
-
} catch {
|
|
13
|
-
_isRolldown = false
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return _isRolldown
|
|
5
|
+
export function isRolldown(): boolean {
|
|
6
|
+
return majorVersion >= 8
|
|
17
7
|
}
|