one 1.19.2 → 1.19.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Root.native.js.map +1 -1
- package/dist/cjs/__mocks__/@react-navigation/native-stack.native.js.map +1 -1
- package/dist/cjs/__mocks__/expo-linking.native.js.map +1 -1
- package/dist/cjs/__mocks__/expo-modules-core.native.js.map +1 -1
- package/dist/cjs/__mocks__/react-native-screens.native.js.map +1 -1
- package/dist/cjs/babel-plugins/environment-guard.native.js.map +1 -1
- package/dist/cjs/babel-plugins/inline-one-server-url.native.js.map +1 -1
- package/dist/cjs/babel-plugins/one-router-metro.native.js.map +1 -1
- package/dist/cjs/babel-plugins/one-router-metro.test.native.js.map +1 -1
- package/dist/cjs/babel-plugins/remove-server-code.native.js.map +1 -1
- package/dist/cjs/babel-preset/index.native.js.map +1 -1
- package/dist/cjs/babel-preset/index.test.native.js.map +1 -1
- package/dist/cjs/babel-preset/integration.test.native.js.map +1 -1
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
- package/dist/cjs/cli/checkNodeVersion.native.js.map +1 -1
- package/dist/cjs/cli/daemon.native.js.map +1 -1
- package/dist/cjs/cli/dev.native.js.map +1 -1
- package/dist/cjs/cli/generateBundlerConfig.native.js.map +1 -1
- package/dist/cjs/cli/generateBundlerConfig.test.native.js.map +1 -1
- package/dist/cjs/cli/generateRoutes.native.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.native.js.map +1 -1
- package/dist/cjs/cli/generateSitemap.test.native.js.map +1 -1
- package/dist/cjs/cli/install-error-handlers.native.js.map +1 -1
- package/dist/cjs/cli/label-process.native.js.map +1 -1
- package/dist/cjs/cli/main.native.js.map +1 -1
- package/dist/cjs/cli/patch.native.js.map +1 -1
- package/dist/cjs/cli/patch.test.native.js.map +1 -1
- package/dist/cjs/cli/prebuild.native.js.map +1 -1
- package/dist/cjs/cli/runAndroid.native.js.map +1 -1
- package/dist/cjs/cli/runIos.native.js.map +1 -1
- package/dist/cjs/cli/securityScan.native.js.map +1 -1
- package/dist/cjs/cli/workerPool.native.js.map +1 -1
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/clientLoaderResolver.native.js.map +1 -1
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/constants.test.native.js.map +1 -1
- package/dist/cjs/createAPIRoute.native.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
- package/dist/cjs/createMiddleware.native.js.map +1 -1
- package/dist/cjs/daemon/index.native.js.map +1 -1
- package/dist/cjs/daemon/ipc.native.js.map +1 -1
- package/dist/cjs/daemon/picker.native.js.map +1 -1
- package/dist/cjs/daemon/proxy.native.js.map +1 -1
- package/dist/cjs/daemon/registry.native.js.map +1 -1
- package/dist/cjs/daemon/server.native.js.map +1 -1
- package/dist/cjs/daemon/tui.native.js.map +1 -1
- package/dist/cjs/daemon/types.native.js.map +1 -1
- package/dist/cjs/daemon/utils.native.js.map +1 -1
- package/dist/cjs/devtools/registry.native.js.map +1 -1
- package/dist/cjs/drawer.native.js.map +1 -1
- package/dist/cjs/fallbackViews/Sitemap.native.js.map +1 -1
- package/dist/cjs/fallbackViews/Unmatched.native.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
- package/dist/cjs/fork/SSRNavigationContainer.native.js.map +1 -1
- package/dist/cjs/fork/__tests__/getPathFromState.test.native.js.map +1 -1
- package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
- package/dist/cjs/fork/_shared.native.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.test.native.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.native.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.test.native.js.map +1 -1
- package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.test.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.test.native.js.map +1 -1
- package/dist/cjs/fork/useThenable.native.js.map +1 -1
- package/dist/cjs/fork/validatePathConfig.native.js.map +1 -1
- package/dist/cjs/getReactNavigationConfig.native.js.map +1 -1
- package/dist/cjs/getURL.native.test.native.js.map +1 -1
- package/dist/cjs/head/Head.native.js.map +1 -1
- package/dist/cjs/head/HeadModule.native.js.map +1 -1
- package/dist/cjs/head/index.native.js.map +1 -1
- package/dist/cjs/head/types.native.js.map +1 -1
- package/dist/cjs/head/url.native.js.map +1 -1
- package/dist/cjs/headless-server.native.js.map +1 -1
- package/dist/cjs/headless.native.js.map +1 -1
- package/dist/cjs/hooks.native.js.map +1 -1
- package/dist/cjs/hooks.test.native.js.map +1 -1
- package/dist/cjs/href.native.js.map +1 -1
- package/dist/cjs/image/getImageData.native.js.map +1 -1
- package/dist/cjs/image.native.js.map +1 -1
- package/dist/cjs/index.native.js +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interfaces/router.native.js.map +1 -1
- package/dist/cjs/layouts/Drawer.native.js.map +1 -1
- package/dist/cjs/layouts/NativeTabs.native.js.map +1 -1
- package/dist/cjs/layouts/NativeTabs.test.native.js.map +1 -1
- package/dist/cjs/layouts/Stack.native.js +1 -1
- package/dist/cjs/layouts/Stack.native.js.map +1 -1
- package/dist/cjs/layouts/Tabs.native.js.map +1 -1
- package/dist/cjs/layouts/stack-navigator.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/lazyWithRetry.native.js.map +1 -1
- package/dist/cjs/link/Link.native.js.map +1 -1
- package/dist/cjs/link/Redirect.native.js.map +1 -1
- package/dist/cjs/link/getLinking.native.js.map +1 -1
- package/dist/cjs/link/href.native.js.map +1 -1
- package/dist/cjs/link/path.native.js.map +1 -1
- package/dist/cjs/link/prefetchIntent.native.js.map +1 -1
- package/dist/cjs/link/prefetchIntent.test.native.js.map +1 -1
- package/dist/cjs/link/prefetchViewport.native.js.map +1 -1
- package/dist/cjs/link/prefetchViewport.test.native.js.map +1 -1
- package/dist/cjs/link/useLinkTo.native.js.map +1 -1
- package/dist/cjs/link/useLoadedNavigation.native.js.map +1 -1
- package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/metro-config/withOne.native.js.map +1 -1
- package/dist/cjs/metro-config/withOne.test.native.js.map +1 -1
- package/dist/cjs/native-tabs.native.js.map +1 -1
- package/dist/cjs/notFoundState.native.js.map +1 -1
- package/dist/cjs/polyfills-mobile.native.js.map +1 -1
- package/dist/cjs/polyfills-server.native.js.map +1 -1
- package/dist/cjs/router/FlagsContext.native.js.map +1 -1
- package/dist/cjs/router/Route.native.js.map +1 -1
- package/dist/cjs/router/RouteInfoContext.native.js.map +1 -1
- package/dist/cjs/router/RouterStore.native.js.map +1 -1
- package/dist/cjs/router/SpaShellContext.native.js.map +1 -1
- package/dist/cjs/router/createRoute.native.js.map +1 -1
- package/dist/cjs/router/filterRootHTML.native.js.map +1 -1
- package/dist/cjs/router/findRouteNode.native.js.map +1 -1
- package/dist/cjs/router/getLinkingConfig.native.js.map +1 -1
- package/dist/cjs/router/getLinkingConfig.test.native.js.map +1 -1
- package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
- package/dist/cjs/router/getRouteInfo.native.js.map +1 -1
- package/dist/cjs/router/getRoutes.native.js.map +1 -1
- package/dist/cjs/router/getRoutes.test.native.js.map +1 -1
- package/dist/cjs/router/glob-patterns.native.js.map +1 -1
- package/dist/cjs/router/imperative-api.native.js.map +1 -1
- package/dist/cjs/router/interceptRoutes.native.js.map +1 -1
- package/dist/cjs/router/isIndexPath.native.js.map +1 -1
- package/dist/cjs/router/lastAction.native.js.map +1 -1
- package/dist/cjs/router/linkingConfig.native.js.map +1 -1
- package/dist/cjs/router/matchers.native.js.map +1 -1
- package/dist/cjs/router/matchers.test.native.js.map +1 -1
- package/dist/cjs/router/params.native.js.map +1 -1
- package/dist/cjs/router/renderingRegistry.native.js.map +1 -1
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/serverLocationContext.native.js.map +1 -1
- package/dist/cjs/router/sitemap.native.js.map +1 -1
- package/dist/cjs/router/sitemap.test.native.js.map +1 -1
- package/dist/cjs/router/sortRoutes.native.js.map +1 -1
- package/dist/cjs/router/useInitializeOneRouter.native.js.map +1 -1
- package/dist/cjs/router/useNavigation.native.js.map +1 -1
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.native.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.test.native.js.map +1 -1
- package/dist/cjs/router/web/ScreenRenderContext.native.js.map +1 -1
- package/dist/cjs/router/web/WebStackNavigator.native.js.map +1 -1
- package/dist/cjs/router/web/WebStackView.native.js.map +1 -1
- package/dist/cjs/router/web/__tests__/WebStackView.runtime.test.native.js.map +1 -1
- package/dist/cjs/router/web/__tests__/WebStackView.test.native.js.map +1 -1
- package/dist/cjs/router/web/__tests__/stackStateUtils.test.native.js.map +1 -1
- package/dist/cjs/router/web/stackStateUtils.native.js.map +1 -1
- package/dist/cjs/screensFeatureFlags.native.js.map +1 -1
- package/dist/cjs/serve-worker.native.js.map +1 -1
- package/dist/cjs/serve.native.js.map +1 -1
- package/dist/cjs/server/ServerContextScript.native.js.map +1 -1
- package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
- package/dist/cjs/server/getServerManifest.native.js.map +1 -1
- package/dist/cjs/server/getServerManifest.test.native.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/setServerGlobals.native.js.map +1 -1
- package/dist/cjs/server/setupBuildOptions.native.js.map +1 -1
- package/dist/cjs/server/setupServerGlobals.native.js.map +1 -1
- package/dist/cjs/server/ssrLoaderData.native.js.map +1 -1
- package/dist/cjs/server/staticHtmlFetcher.native.js.map +1 -1
- package/dist/cjs/server/workerHandler.native.js.map +1 -1
- package/dist/cjs/server-render.native.js.map +1 -1
- package/dist/cjs/skewProtection.native.js.map +1 -1
- package/dist/cjs/testing-utils.native.js.map +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.test.native.js.map +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
- package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.test.native.js.map +1 -1
- package/dist/cjs/typed-routes/injectRouteHelpers.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/ui/Slot.native.js.map +1 -1
- package/dist/cjs/ui/TabContext.native.js.map +1 -1
- package/dist/cjs/ui/TabList.native.js.map +1 -1
- package/dist/cjs/ui/TabRouter.native.js.map +1 -1
- package/dist/cjs/ui/TabSlot.native.js.map +1 -1
- package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
- package/dist/cjs/ui/Tabs.native.js.map +1 -1
- package/dist/cjs/ui/common.native.js.map +1 -1
- package/dist/cjs/ui/index.native.js.map +1 -1
- package/dist/cjs/ui/useComponent.native.js.map +1 -1
- package/dist/cjs/useFocusEffect.native.js.map +1 -1
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/useMatches.native.js.map +1 -1
- package/dist/cjs/useMatches.test.native.js.map +1 -1
- package/dist/cjs/useServerHeadInsertion.native.js.map +1 -1
- package/dist/cjs/utils/assertIsReady.native.js.map +1 -1
- package/dist/cjs/utils/buildOutputPointer.native.js.map +1 -1
- package/dist/cjs/utils/buildOutputPointer.test.native.js.map +1 -1
- package/dist/cjs/utils/children.native.js.map +1 -1
- package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
- package/dist/cjs/utils/cleanUrl.test.native.js.map +1 -1
- package/dist/cjs/utils/dynamicImport.native.js.map +1 -1
- package/dist/cjs/utils/dynamicImport.test.native.js.map +1 -1
- package/dist/cjs/utils/ensureExists.native.js.map +1 -1
- package/dist/cjs/utils/evictOldest.native.js.map +1 -1
- package/dist/cjs/utils/existsAsync.native.js.map +1 -1
- package/dist/cjs/utils/findRootLayout.native.js.map +1 -1
- package/dist/cjs/utils/getPageExport.native.js.map +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.test.native.js.map +1 -1
- package/dist/cjs/utils/getRouterRootFromOneOptions.native.js.map +1 -1
- package/dist/cjs/utils/globDir.native.js.map +1 -1
- package/dist/cjs/utils/hashString.native.js.map +1 -1
- package/dist/cjs/utils/htmlEscape.native.js.map +1 -1
- package/dist/cjs/utils/isResponse.native.js.map +1 -1
- package/dist/cjs/utils/isRolldown.native.js.map +1 -1
- package/dist/cjs/utils/isStatus.native.js.map +1 -1
- package/dist/cjs/utils/pLimit.native.js.map +1 -1
- package/dist/cjs/utils/posixPathContract.test.native.js.map +1 -1
- package/dist/cjs/utils/promiseWithResolvers.native.js.map +1 -1
- package/dist/cjs/utils/rand.native.js.map +1 -1
- package/dist/cjs/utils/redirect.native.js.map +1 -1
- package/dist/cjs/utils/removeParams.native.js.map +1 -1
- package/dist/cjs/utils/removeSearch.native.js.map +1 -1
- package/dist/cjs/utils/removeUndefined.native.js.map +1 -1
- package/dist/cjs/utils/routeFileWatch.native.js.map +1 -1
- package/dist/cjs/utils/routeFileWatch.test.native.js.map +1 -1
- package/dist/cjs/utils/style.native.js.map +1 -1
- package/dist/cjs/utils/toAbsolute.native.js.map +1 -1
- package/dist/cjs/utils/toServerOutputPath.native.js.map +1 -1
- package/dist/cjs/utils/toServerOutputPath.test.native.js.map +1 -1
- package/dist/cjs/utils/trackLoaderDependencies.native.js.map +1 -1
- package/dist/cjs/utils/url.native.js.map +1 -1
- package/dist/cjs/utils/useConstant.native.js.map +1 -1
- package/dist/cjs/utils/watchFile.native.js.map +1 -1
- package/dist/cjs/utils/weakKey.native.js.map +1 -1
- package/dist/cjs/utils/weakMemo.native.js.map +1 -1
- package/dist/cjs/utils/withStaticProperties.native.js.map +1 -1
- package/dist/cjs/utils/workerImport.native.js.map +1 -1
- package/dist/cjs/validateParams.native.js.map +1 -1
- package/dist/cjs/validateSearch.native.js.map +1 -1
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js.map +1 -1
- package/dist/cjs/vercel/build/config/vc-config-base.native.js.map +1 -1
- package/dist/cjs/vercel/build/config/vc-package-base.native.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
- package/dist/cjs/vercel/build/getPathFromRoute.native.js.map +1 -1
- package/dist/cjs/views/EmptyRoute.native.js.map +1 -1
- package/dist/cjs/views/ErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/views/OneStackRouter.native.js.map +1 -1
- package/dist/cjs/views/Protected.native.js.map +1 -1
- package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/Screen.native.js.map +1 -1
- package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
- package/dist/cjs/views/SourceInspector.native.js.map +1 -1
- package/dist/cjs/views/Try.native.js.map +1 -1
- package/dist/cjs/vite/DevHead.native.js.map +1 -1
- package/dist/cjs/vite/constants.native.js.map +1 -1
- package/dist/cjs/vite/customNodeExternals.native.js.map +1 -1
- package/dist/cjs/vite/ensureTsConfig.native.js.map +1 -1
- package/dist/cjs/vite/findDepsToOptimize.native.js.map +1 -1
- package/dist/cjs/vite/getManifest.native.js.map +1 -1
- package/dist/cjs/vite/getManifest.test.native.js.map +1 -1
- package/dist/cjs/vite/loadConfig.native.js.map +1 -1
- package/dist/cjs/vite/makePluginWebOnly.native.js.map +1 -1
- package/dist/cjs/vite/one-server-only.test.native.js.map +1 -1
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/environmentGuardPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +26 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +26 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.cjs +125 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js +129 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/imageDataPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/imageDataPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/useDomPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryConstants.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/replaceLoader.native.js.map +1 -1
- package/dist/cjs/vite/resolveResponse.native.js.map +1 -1
- package/dist/cjs/vite/types.native.js.map +1 -1
- package/dist/cjs/vite-auto-warm.native.js.map +1 -1
- package/dist/cjs/vite.native.js.map +1 -1
- package/dist/cjs/zero/getQueryKey.native.js.map +1 -1
- package/dist/cjs/zero/isZeroQuery.native.js.map +1 -1
- package/dist/cjs/zero/resolveQuery.native.js.map +1 -1
- package/dist/cjs/zero/subscribeToQuery.native.js.map +1 -1
- package/dist/cjs/zero/types.native.js.map +1 -1
- package/dist/cjs/zero/useQuery.native.js.map +1 -1
- package/dist/cjs/zero/useQueryZero.native.js.map +1 -1
- package/dist/cjs/zero.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +26 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +26 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs +125 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js +129 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/package.json +9 -9
- package/src/vite/plugins/fileSystemRouterPlugin.test.ts +133 -0
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +30 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mkdirSync","mkdtempSync","rmSync","writeFileSync","tmpdir","path","afterEach","beforeEach","describe","expect","it","vi","mock","actual","importActual","createServerModuleRunner","fn","clearCache","import","previousIsVxrnCli","process","env","IS_VXRN_CLI","previousVxrnPluginConfig","tempRoot","globalThis","__vxrnPluginConfig__","recursive","force","restoreAllMocks","join","appDir","web","defaultRenderMode","createFileSystemRouterPlugin","plugin","router","root","watcherListener","server","environments","ssr","watcher","addListener","event","listener","on","configureServer","toBeDefined","warn","spyOn","console","mockImplementation","Error","Promise","resolve","resolves","toBeUndefined","toHaveBeenCalledWith","stringContaining","any"],"sources":["../../../../src/vite/plugins/fileSystemRouterPlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,WAAA,EAAaC,MAAA,EAAQC,aAAA,QAAqB;AAC9D,SAASC,MAAA,QAAc;AACvB,OAAOC,IAAA,MAAU;AACjB,SAASC,SAAA,EAAWC,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAEhEA,EAAA,CAAGC,IAAA,CAAK,QAAQ,YAAY;EAC1B,MAAMC,MAAA,GAAS,MAAMF,EAAA,CAAGG,YAAA,CAAoC,MAAM;EAClE,OAAO;IACL,GAAGD,MAAA;IACHE,wBAAA,EAA0BJ,EAAA,CAAGK,EAAA,CAAG,OAAO;MACrCC,UAAA,EAAYN,EAAA,CAAGK,EAAA,CAAG;MAClBE,MAAA,EAAQP,EAAA,CAAGK,EAAA,CAAG;IAChB,EAAE;EACJ;AACF,CAAC;
|
|
1
|
+
{"version":3,"names":["mkdirSync","mkdtempSync","rmSync","writeFileSync","tmpdir","path","afterEach","beforeEach","describe","expect","it","vi","mock","actual","importActual","createServerModuleRunner","fn","clearCache","import","previousIsVxrnCli","process","env","IS_VXRN_CLI","previousViteEnvironment","VITE_ENVIRONMENT","previousVxrnPluginConfig","tempRoot","globalThis","__vxrnPluginConfig__","recursive","force","restoreAllMocks","join","appDir","web","defaultRenderMode","createFileSystemRouterPlugin","plugin","router","root","watcherListener","server","environments","ssr","watcher","addListener","event","listener","on","configureServer","toBeDefined","warn","spyOn","console","mockImplementation","Error","Promise","resolve","resolves","toBeUndefined","toHaveBeenCalledWith","stringContaining","any","routeFile","virtualEntryId","renderCount","render","runner","id","default","mocked","mockReturnValue","middlewareHandlers","watcherListeners","Map","hot","send","middlewares","use","handler","push","add","set","get","loggingEnabled","installMiddlewares","routeMiddleware","at","handleRouteRequest","request","pathname","chunks","req","originalUrl","url","headers","host","method","res","setHeader","appendHeader","writeHead","write","chunk","end","next","error","toHaveBeenCalled","toContain","toHaveBeenCalledTimes","allListeners","invalidateRunner"],"sources":["../../../../src/vite/plugins/fileSystemRouterPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@ vi.mock("vite", async function () {
|
|
|
16
16
|
});
|
|
17
17
|
describe("createFileSystemRouterPlugin", function () {
|
|
18
18
|
var previousIsVxrnCli = process.env.IS_VXRN_CLI;
|
|
19
|
+
var previousViteEnvironment = process.env.VITE_ENVIRONMENT;
|
|
19
20
|
var previousVxrnPluginConfig;
|
|
20
21
|
var tempRoot;
|
|
21
22
|
beforeEach(function () {
|
|
@@ -34,6 +35,11 @@ describe("createFileSystemRouterPlugin", function () {
|
|
|
34
35
|
} else {
|
|
35
36
|
process.env.IS_VXRN_CLI = previousIsVxrnCli;
|
|
36
37
|
}
|
|
38
|
+
if (previousViteEnvironment === void 0) {
|
|
39
|
+
delete process.env.VITE_ENVIRONMENT;
|
|
40
|
+
} else {
|
|
41
|
+
process.env.VITE_ENVIRONMENT = previousViteEnvironment;
|
|
42
|
+
}
|
|
37
43
|
if (previousVxrnPluginConfig === void 0) {
|
|
38
44
|
delete globalThis.__vxrnPluginConfig__;
|
|
39
45
|
} else {
|
|
@@ -86,5 +92,128 @@ describe("createFileSystemRouterPlugin", function () {
|
|
|
86
92
|
await expect(Promise.resolve(watcherListener("add", path.join(appDir, "new-route.tsx")))).resolves.toBeUndefined();
|
|
87
93
|
expect(warn).toHaveBeenCalledWith(expect.stringContaining("[one] Failed to rebuild routes"), expect.any(Error));
|
|
88
94
|
});
|
|
95
|
+
it("caches dev ssg html until the module runner is invalidated", async function () {
|
|
96
|
+
process.env.VITE_ENVIRONMENT = "ssr";
|
|
97
|
+
tempRoot = mkdtempSync(path.join(tmpdir(), "one-router-ssg-cache-"));
|
|
98
|
+
var appDir = path.join(tempRoot, "app");
|
|
99
|
+
var routeFile = path.join(appDir, "index+ssg.tsx");
|
|
100
|
+
writeFileSync(path.join(tempRoot, "package.json"), "{}\n");
|
|
101
|
+
mkdirSync(appDir);
|
|
102
|
+
writeFileSync(routeFile, "export default function Index() { return null }\n");
|
|
103
|
+
var {
|
|
104
|
+
createServerModuleRunner
|
|
105
|
+
} = await import("vite");
|
|
106
|
+
var {
|
|
107
|
+
createFileSystemRouterPlugin
|
|
108
|
+
} = await import("./fileSystemRouterPlugin.native.js");
|
|
109
|
+
var {
|
|
110
|
+
virtualEntryId
|
|
111
|
+
} = await import("./virtualEntryConstants.native.js");
|
|
112
|
+
var renderCount = 0;
|
|
113
|
+
var render = vi.fn(async function () {
|
|
114
|
+
return `<html><body>${++renderCount}</body></html>`;
|
|
115
|
+
});
|
|
116
|
+
var runner = {
|
|
117
|
+
clearCache: vi.fn(),
|
|
118
|
+
import: vi.fn(async function (id) {
|
|
119
|
+
if (id === virtualEntryId) {
|
|
120
|
+
return {
|
|
121
|
+
default: {
|
|
122
|
+
render
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (id === routeFile) {
|
|
127
|
+
return {
|
|
128
|
+
default: function _default() {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return {};
|
|
134
|
+
})
|
|
135
|
+
};
|
|
136
|
+
vi.mocked(createServerModuleRunner).mockReturnValue(runner);
|
|
137
|
+
var middlewareHandlers = [];
|
|
138
|
+
var watcherListeners = /* @__PURE__ */new Map();
|
|
139
|
+
var server = {
|
|
140
|
+
environments: {
|
|
141
|
+
ssr: {}
|
|
142
|
+
},
|
|
143
|
+
hot: {
|
|
144
|
+
send: vi.fn()
|
|
145
|
+
},
|
|
146
|
+
middlewares: {
|
|
147
|
+
use: vi.fn(function (handler) {
|
|
148
|
+
middlewareHandlers.push(handler);
|
|
149
|
+
})
|
|
150
|
+
},
|
|
151
|
+
watcher: {
|
|
152
|
+
add: vi.fn(),
|
|
153
|
+
addListener: vi.fn(function (event, listener) {
|
|
154
|
+
watcherListeners.set(event, [...(watcherListeners.get(event) || []), listener]);
|
|
155
|
+
}),
|
|
156
|
+
on: vi.fn(function (event, listener) {
|
|
157
|
+
watcherListeners.set(event, [...(watcherListeners.get(event) || []), listener]);
|
|
158
|
+
})
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
var plugin = createFileSystemRouterPlugin({
|
|
162
|
+
router: {
|
|
163
|
+
root: appDir
|
|
164
|
+
},
|
|
165
|
+
server: {
|
|
166
|
+
loggingEnabled: false
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
var installMiddlewares = plugin.configureServer(server);
|
|
170
|
+
installMiddlewares();
|
|
171
|
+
var routeMiddleware = middlewareHandlers.at(-1);
|
|
172
|
+
if (!routeMiddleware) {
|
|
173
|
+
throw new Error("Expected route middleware to be registered");
|
|
174
|
+
}
|
|
175
|
+
var handleRouteRequest = routeMiddleware;
|
|
176
|
+
async function request(pathname) {
|
|
177
|
+
var chunks = [];
|
|
178
|
+
var req = {
|
|
179
|
+
originalUrl: pathname,
|
|
180
|
+
url: pathname,
|
|
181
|
+
headers: {
|
|
182
|
+
host: "localhost"
|
|
183
|
+
},
|
|
184
|
+
method: "GET"
|
|
185
|
+
};
|
|
186
|
+
var res = {
|
|
187
|
+
setHeader: vi.fn(),
|
|
188
|
+
appendHeader: vi.fn(),
|
|
189
|
+
writeHead: vi.fn(),
|
|
190
|
+
write: vi.fn(function (chunk) {
|
|
191
|
+
chunks.push(chunk);
|
|
192
|
+
}),
|
|
193
|
+
end: vi.fn()
|
|
194
|
+
};
|
|
195
|
+
var next = vi.fn(function (error) {
|
|
196
|
+
if (error) {
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
throw new Error("Expected One router middleware to handle request");
|
|
200
|
+
});
|
|
201
|
+
await handleRouteRequest(req, res, next);
|
|
202
|
+
expect(res.end).toHaveBeenCalled();
|
|
203
|
+
return chunks.join("");
|
|
204
|
+
}
|
|
205
|
+
await expect(request("/")).resolves.toContain("<body>1</body>");
|
|
206
|
+
await expect(request("/")).resolves.toContain("<body>1</body>");
|
|
207
|
+
expect(render).toHaveBeenCalledTimes(1);
|
|
208
|
+
var allListeners = watcherListeners.get("all") || [];
|
|
209
|
+
var invalidateRunner = allListeners[0];
|
|
210
|
+
if (!invalidateRunner) {
|
|
211
|
+
throw new Error("Expected runner invalidation listener to be registered");
|
|
212
|
+
}
|
|
213
|
+
invalidateRunner("change", routeFile);
|
|
214
|
+
await expect(request("/")).resolves.toContain("<body>2</body>");
|
|
215
|
+
expect(render).toHaveBeenCalledTimes(2);
|
|
216
|
+
expect(runner.clearCache).toHaveBeenCalledTimes(2);
|
|
217
|
+
});
|
|
89
218
|
});
|
|
90
219
|
//# sourceMappingURL=fileSystemRouterPlugin.test.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mkdirSync","mkdtempSync","rmSync","writeFileSync","tmpdir","path","afterEach","beforeEach","describe","expect","it","vi","mock","actual","importActual","createServerModuleRunner","fn","clearCache","import","previousIsVxrnCli","process","env","IS_VXRN_CLI","previousVxrnPluginConfig","tempRoot","globalThis","__vxrnPluginConfig__","recursive","force","restoreAllMocks","join","appDir","web","defaultRenderMode","createFileSystemRouterPlugin","plugin","router","root","watcherListener","server","environments","ssr","watcher","addListener","event","listener","on","configureServer","toBeDefined","warn","spyOn","console","mockImplementation","Error","Promise","resolve","resolves","toBeUndefined","toHaveBeenCalledWith","stringContaining","any"],"sources":["../../../../src/vite/plugins/fileSystemRouterPlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,WAAA,EAAaC,MAAA,EAAQC,aAAA,QAAqB;AAC9D,SAASC,MAAA,QAAc;AACvB,OAAOC,IAAA,MAAU;AACjB,SAASC,SAAA,EAAWC,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAEhEA,EAAA,CAAGC,IAAA,CAAK,QAAQ,kBAAY;EAC1B,IAAAC,MAAM,SAASF,EAAM,CAAAG,YAAG,OAAoC;EAC5D,OAAO;IACL,GAAGD,MAAA;IACHE,wBAAA,EAA0BJ,EAAA,CAAGK,EAAA,CAAG,YAAO;MACrC;QACAC,UAAW,EAAGN,EAAA,CAAAK,EAAA;QACdE,MAAA,EAAAP,EAAA,CAAAK,EAAA;MACJ;IACD;
|
|
1
|
+
{"version":3,"names":["mkdirSync","mkdtempSync","rmSync","writeFileSync","tmpdir","path","afterEach","beforeEach","describe","expect","it","vi","mock","actual","importActual","createServerModuleRunner","fn","clearCache","import","previousIsVxrnCli","process","env","IS_VXRN_CLI","previousViteEnvironment","VITE_ENVIRONMENT","previousVxrnPluginConfig","tempRoot","globalThis","__vxrnPluginConfig__","recursive","force","restoreAllMocks","join","appDir","web","defaultRenderMode","createFileSystemRouterPlugin","plugin","router","root","watcherListener","server","environments","ssr","watcher","addListener","event","listener","on","configureServer","toBeDefined","warn","spyOn","console","mockImplementation","Error","Promise","resolve","resolves","toBeUndefined","toHaveBeenCalledWith","stringContaining","any","routeFile","virtualEntryId","renderCount","render","runner","id","default","_default","mocked","mockReturnValue","middlewareHandlers","watcherListeners","Map","hot","send","middlewares","use","handler","push","add","set","get","loggingEnabled","installMiddlewares","routeMiddleware","at","handleRouteRequest","request","pathname","chunks","req","originalUrl","url","headers","host","method","res","setHeader","appendHeader","writeHead","write","chunk","end","next","error","toHaveBeenCalled","toContain"],"sources":["../../../../src/vite/plugins/fileSystemRouterPlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,WAAA,EAAaC,MAAA,EAAQC,aAAA,QAAqB;AAC9D,SAASC,MAAA,QAAc;AACvB,OAAOC,IAAA,MAAU;AACjB,SAASC,SAAA,EAAWC,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAEhEA,EAAA,CAAGC,IAAA,CAAK,QAAQ,kBAAY;EAC1B,IAAAC,MAAM,SAASF,EAAM,CAAAG,YAAG,OAAoC;EAC5D,OAAO;IACL,GAAGD,MAAA;IACHE,wBAAA,EAA0BJ,EAAA,CAAGK,EAAA,CAAG,YAAO;MACrC;QACAC,UAAW,EAAGN,EAAA,CAAAK,EAAA;QACdE,MAAA,EAAAP,EAAA,CAAAK,EAAA;MACJ;IACD;EAUD;AACE;AACAR,QAAM,+BAA0B,cAAY;EAC5C,IAAIW,iBAAA,GAAAC,OAAA,CAAAC,GAAA,CAAAC,WAAA;EACJ,IAAIC,uBAAA,GAAAH,OAAA,CAAAC,GAAA,CAAAG,gBAAA;EAEJ,IAAAC,wBAAiB;EACf,IAAAC,QAAA;EACFnB,UAAC;IAEDkB,wBAAgB,GAAAE,UAAA,CAAAC,oBAAA;EACd;EACEtB,SAAA,aAAiB;IACjB,IAAAoB,QAAA,EAAW;MACbxB,MAAA,CAAAwB,QAAA;QAEIG,SAAA;QACFC,KAAO;MACT;MACEJ,QAAQ,QAAI;IACd;IACA,IAAIP,iBAAA,WAA4B;MAC9B,OAAOC,OAAA,CAAQC,GAAA,CAAIC,WAAA;IACrB,OAAO;MACLF,OAAA,CAAQC,GAAA,CAAIC,WAAA,GAAAH,iBAAmB;IACjC;IAEA,IAAII,uBAAA,UAA6B;MAC/B,OAAQH,OAAA,CAAAC,GAAmB,CAAAG,gBAAA;IAC7B,OAAO;MACLJ,OAAA,CAAAC,GAAA,CAAAG,gBAAA,GAAAD,uBAAA;IAAC;IACH,IAAAE,wBAAA;MACA,OAAGE,UAAgB,CAAAC,oBAAA;IACpB;MAEE;MACDD,UAAY,CAAAC,oBAAc,GAAAH,wBAAA;IAC1B;IACAd,EAAA,CAAAoB,eAAe,EAAK;EACpB;EACArB,EAAA,6CAAgB;IAChBU,OAAA,CAAAC,GAAA,CAAAC,WAAA;IAAAI,QACO,GAAAzB,WAAa,CAAAI,IAAA,CAAA2B,IAAW,CAAA5B,MAAA;IAAA,IAC7B6B,MAAA,GAAA5B,IAAA,CAAA2B,IAAA,CAAAN,QAAA;IACFvB,aAAA,CAAAE,IAAA,CAAA2B,IAAA,CAAAN,QAAA;IAEE1B,SAAA,CAAAiC,MAAmB;IAAuB9B,aACrC,CAAAE,IAAA,CAAA2B,IAAA,CAAAC,MAAA;IAAAN,UACH,CAAAC,oBAAmB;MACrBM,GAAA;QACFC,iBAAA;MAEA;IACA;IAA4C,IAC1C;MAAAC;IAAQ;IAAA,IACNC,MAAM,GAAAD,4BAAA;MACRE,MAAA;QACDC,IAAA,EAAAN;MAED;IAGA;IAAe,IACbO,eAAc;IAAA,IACZC,MAAM;MACRC,YAAA;QACAC,GAAA;MAAS;MAELC,OAAA,EAAI;QACFC,WAAA,EAAAlC,EAAA,CAAAK,EAAA,WAAkB8B,KAAA,EAAAC,QAAA;UACpB,IAAAD,KAAA;YACDN,eAAA,GAAAO,QAAA;UACD;QACF;QACFC,EAAA,EAAArC,EAAA,CAAAK,EAAA;MAEE;IACF;IAEAqB,MAAM,CAAAY,eAAgB,CAAAR,MAAA;IAA2ChC,MAAC,CAAA+B,eAAA,EAAAU,WAAA;IAClE,IAAAC,IAAQ,GAAAxC,EAAA,CAAAyC,KAAmB,CAAAC,OAAA,UAAAC,kBAAA,cAE3B;IACE,OAAA3B,UAAU,CAAMC,oBAAA;IAClB,KAAAY,eAAA;MAEA,MAAM,IAAAe,KAAA;IAAA;IAEN,MAAE9C,MAAS,CAAA+C,OAAA,CAAAC,OAAc,CAAAjB,eAAA,QAAAnC,IAAA,CAAA2B,IAAA,CAAAC,MAAA,sBAAAyB,QAAA,CAAAC,aAAA;IAEzBlD,MAAA,CAAO0C,IAAI,EAAES,oBAAA,CAAAnD,MAAA,CAAAoD,gBAAA,oCAAApD,MAAA,CAAAqD,GAAA,CAAAP,KAAA;EAAA;EAC6C7C,EAAA,6DACxC;IAClBU,OAAA,CAAAC,GAAA,CAAAG,gBAAA;IACDE,QAAA,GAAAzB,WAAA,CAAAI,IAAA,CAAA2B,IAAA,CAAA5B,MAAA;IAED,IAAG6B,MAAA,GAAA5B,IAAA,CAAA2B,IAAA,CAAAN,QAAA;IACD,IAAAqC,SAAY,GAAA1D,IAAA,CAAA2B,IAAA,CAAAC,MAAmB;IAC/B9B,aAAW,CAAAE,IAAA,CAAA2B,IAAY,CAAAN,QAAK,EAAK,cAAU;IAC3C1B,SAAM,CAAAiC,MAAS;IACf9B,aAAM,CAAA4D,SAAiB,qDAA4B;IACnD;MAAAhD;IAAwB,IAAU,aAAc,MAAG;IACnD;MAAAqB;IAAgB;IAChB;MAAA4B;IAAc,IAAW;IAEzB,IAAAC,WAAQ;IACR,IAAAC,MAAQ,GAAAvD,EAAA,CAAAK,EAAA;MACR,OAAQ,eAAe,EAAAiD,WAAU,gBAAO;IAExC;IACA,IAAAE,MAAM;MACNlD,UAAM,EAAAN,EAAS,CAAAK,EAAA;MACbE,MAAA,EAAAP,EAAA,CAAAK,EAAY,iBAAMoD,EAAA;QAClB,IAAAA,EAAQ,KAAGJ,cAAU,EAAe;UAClC,OAAI;YACFK,OAAS;cACXH;YACI;UACF;QACF;QACA,IAAAE,EAAA,KAAQL,SAAA;UACT;YACHM,OAAA,WAAAC,SAAA;cACU;YAEJ;UACA;QACN;QACE;MAAc;IACN;IACR3D,EACA,CAAA4D,MAAK,CAAAxD,wBAAA,EAAAyD,eAAA,CAAAL,MAAA;IAAA,IACHM,kBAAY;IAAA,IACdC,gBAAA,sBAAAC,GAAA;IAAA,IACAlC,MAAA;MAAaC,YACH,EAAI;QACVC,GAAA;MAA+B;MAEnCiC,GAAA;QACAC,IAAA,EAAAlE,EAAS,CAAAK,EAAA;MAAA;MACI8D,WACX;QACEC,GAAA,EAAApE,EAAA,CAAAK,EAAA,WAAiBgE,OAAI;UACtBP,kBAAA,CAAAQ,IAAA,CAAAD,OAAA;QACD;MACE;MAA8EpC,OAC/E;QACHsC,GAAA,EAAAvE,EAAA,CAAAK,EAAA;QACF6B,WAAA,EAAAlC,EAAA,CAAAK,EAAA,WAAA8B,KAAA,EAAAC,QAAA;UAEM2B,gBAAS,CAAAS,GAAA,CAAArC,KAAA,GACb,IAAQ4B,gBAAA,CAAAU,GAAA,CAAAtC,KAAA,UACNC,QAAM,CACR;QACA;QACEC,EAAA,EAAArC,EAAA,CAAAK,EAAA,WAAgB8B,KAAA,EAAAC,QAAA;UAClB2B,gBAAA,CAAAS,GAAA,CAAArC,KAAA,GACD,IAAA4B,gBAAA,CAAAU,GAAA,CAAAtC,KAAA,UAEKC,QAAA,CACN;QAEA;MACA;IACE;IACF,IAAAV,MAAA,GAAAD,4BAAA;MACAE,MAAM;QAENC,IAAA,EAAAN;MACE;MACAQ,MAAM;QACJ4C,cAAa;MAAA;IACR;IACI,IAAAC,kBACD,GAAAjD,MAAA,CAAAY,eAAA,CAAAR,MAAA;IAAA6C,kBACR;IAAA,IACAC,eAAQ,GAAAd,kBAAA,CAAAe,EAAA;IAAA,IACV,CAAAD,eAAA;MACA,MAAM,IAAAhC,KAAM;IAAA;IACO,IACjBkC,kBAAiB,GAAGF,eAAA;IAAA,eACTG,OAAMA,CAAAC,QAAA;MAAA,IACjBC,MAAO,GAAG,EAAG;MACX,IAAAC,GAAA;QACFC,WAAC,EAAAH,QAAA;QACDI,GAAA,EAAKJ,QAAM;QACbK,OAAA;UACAC,IAAM;QACJ;QACEC,MAAA,EAAM;MAAA;MAER,IAAAC,GAAA,GAAM;QACPC,SAAA,EAAAzF,EAAA,CAAAK,EAAA;QAEDqF,YAAM,EAAA1F,EAAA,CAAAK,EAAA;QACNsF,SAAW,EAAA3F,EAAG,CAAEK,EAAA;QAChBuF,KAAO,EAAA5F,EAAA,CAAAK,EAAO,WAAOwF,KAAA;UACvBZ,MAAA,CAAAX,IAAA,CAAAuB,KAAA;QAEA,EAAM;QACNC,GAAM,EAAA9F,EAAA,CAAAK,EAAO;MACb;MAEA,IAAM0F,IAAA,GAAA/F,EAAA,CAAAK,EAAA,WAAe2F,KAAA;QACrB,IAAMA,KAAA;UACD,MAAAA,KAAA;QACH;QACF,UAAApD,KAAA;MACA;MAEA,MAAMkC,kBAAmB,CAAEI,GAAA,EAAAM,GAAA,EAASO,IAAA;MACpCjG,MAAO,CAAA0F,GAAA,CAAMM,GAAE,EAAAG,gBAAA;MACf,OAAOhB,MAAO,CAAA5D,IAAA,IAAU;IACzB;IACF,MAAAvB,MAAA,CAAAiF,OAAA,OAAAhC,QAAA,CAAAmD,SAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.4",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -186,18 +186,18 @@
|
|
|
186
186
|
"@cloudflare/vite-plugin": "^1.33.1",
|
|
187
187
|
"@swc/core": "^1.14.0",
|
|
188
188
|
"@ungap/structured-clone": "^1.2.0",
|
|
189
|
-
"@vxrn/color-scheme": "1.19.
|
|
190
|
-
"@vxrn/compiler": "1.19.
|
|
191
|
-
"@vxrn/resolve": "1.19.
|
|
192
|
-
"@vxrn/tslib-lite": "1.19.
|
|
193
|
-
"@vxrn/use-isomorphic-layout-effect": "1.19.
|
|
194
|
-
"@vxrn/vite-plugin-metro": "1.19.
|
|
189
|
+
"@vxrn/color-scheme": "1.19.4",
|
|
190
|
+
"@vxrn/compiler": "1.19.4",
|
|
191
|
+
"@vxrn/resolve": "1.19.4",
|
|
192
|
+
"@vxrn/tslib-lite": "1.19.4",
|
|
193
|
+
"@vxrn/use-isomorphic-layout-effect": "1.19.4",
|
|
194
|
+
"@vxrn/vite-plugin-metro": "1.19.4",
|
|
195
195
|
"babel-dead-code-elimination": "1.0.10",
|
|
196
196
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
197
197
|
"babel-preset-expo": "~55.0.0",
|
|
198
198
|
"citty": "^0.1.6",
|
|
199
199
|
"core-js": "^3.38.1",
|
|
200
|
-
"create-vxrn": "1.19.
|
|
200
|
+
"create-vxrn": "1.19.4",
|
|
201
201
|
"escape-string-regexp": "^5.0.0",
|
|
202
202
|
"expo-linking": "~55.0.7",
|
|
203
203
|
"expo-modules-core": "~55.0.16",
|
|
@@ -217,7 +217,7 @@
|
|
|
217
217
|
"tsconfig-paths": "^4",
|
|
218
218
|
"use-latest-callback": "^0.2.3",
|
|
219
219
|
"vite": "^8.0.13",
|
|
220
|
-
"vxrn": "1.19.
|
|
220
|
+
"vxrn": "1.19.4",
|
|
221
221
|
"ws": "^8.21.0",
|
|
222
222
|
"xxhashjs": "^0.2.2"
|
|
223
223
|
},
|
|
@@ -14,8 +14,17 @@ vi.mock('vite', async () => {
|
|
|
14
14
|
}
|
|
15
15
|
})
|
|
16
16
|
|
|
17
|
+
type MiddlewareHandler = (
|
|
18
|
+
req: object,
|
|
19
|
+
res: object,
|
|
20
|
+
next: (error?: unknown) => void
|
|
21
|
+
) => void | Promise<void>
|
|
22
|
+
|
|
23
|
+
type WatcherListener = (...args: string[]) => void | Promise<void>
|
|
24
|
+
|
|
17
25
|
describe('createFileSystemRouterPlugin', () => {
|
|
18
26
|
const previousIsVxrnCli = process.env.IS_VXRN_CLI
|
|
27
|
+
const previousViteEnvironment = process.env.VITE_ENVIRONMENT
|
|
19
28
|
let previousVxrnPluginConfig: unknown
|
|
20
29
|
let tempRoot: string | undefined
|
|
21
30
|
|
|
@@ -34,6 +43,11 @@ describe('createFileSystemRouterPlugin', () => {
|
|
|
34
43
|
} else {
|
|
35
44
|
process.env.IS_VXRN_CLI = previousIsVxrnCli
|
|
36
45
|
}
|
|
46
|
+
if (previousViteEnvironment === undefined) {
|
|
47
|
+
delete process.env.VITE_ENVIRONMENT
|
|
48
|
+
} else {
|
|
49
|
+
process.env.VITE_ENVIRONMENT = previousViteEnvironment
|
|
50
|
+
}
|
|
37
51
|
|
|
38
52
|
if (previousVxrnPluginConfig === undefined) {
|
|
39
53
|
delete (globalThis as any).__vxrnPluginConfig__
|
|
@@ -103,4 +117,123 @@ describe('createFileSystemRouterPlugin', () => {
|
|
|
103
117
|
expect.any(Error)
|
|
104
118
|
)
|
|
105
119
|
})
|
|
120
|
+
|
|
121
|
+
it('caches dev ssg html until the module runner is invalidated', async () => {
|
|
122
|
+
process.env.VITE_ENVIRONMENT = 'ssr'
|
|
123
|
+
tempRoot = mkdtempSync(path.join(tmpdir(), 'one-router-ssg-cache-'))
|
|
124
|
+
const appDir = path.join(tempRoot, 'app')
|
|
125
|
+
const routeFile = path.join(appDir, 'index+ssg.tsx')
|
|
126
|
+
writeFileSync(path.join(tempRoot, 'package.json'), '{}\n')
|
|
127
|
+
mkdirSync(appDir)
|
|
128
|
+
writeFileSync(routeFile, 'export default function Index() { return null }\n')
|
|
129
|
+
|
|
130
|
+
const { createServerModuleRunner } = await import('vite')
|
|
131
|
+
const { createFileSystemRouterPlugin } = await import('./fileSystemRouterPlugin')
|
|
132
|
+
const { virtualEntryId } = await import('./virtualEntryConstants')
|
|
133
|
+
|
|
134
|
+
let renderCount = 0
|
|
135
|
+
const render = vi.fn(async () => `<html><body>${++renderCount}</body></html>`)
|
|
136
|
+
const runner = {
|
|
137
|
+
clearCache: vi.fn(),
|
|
138
|
+
import: vi.fn(async (id: string) => {
|
|
139
|
+
if (id === virtualEntryId) {
|
|
140
|
+
return { default: { render } }
|
|
141
|
+
}
|
|
142
|
+
if (id === routeFile) {
|
|
143
|
+
return { default: () => null }
|
|
144
|
+
}
|
|
145
|
+
return {}
|
|
146
|
+
}),
|
|
147
|
+
}
|
|
148
|
+
vi.mocked(createServerModuleRunner).mockReturnValue(runner as any)
|
|
149
|
+
|
|
150
|
+
const middlewareHandlers: MiddlewareHandler[] = []
|
|
151
|
+
const watcherListeners = new Map<string, WatcherListener[]>()
|
|
152
|
+
const server = {
|
|
153
|
+
environments: {
|
|
154
|
+
ssr: {},
|
|
155
|
+
},
|
|
156
|
+
hot: {
|
|
157
|
+
send: vi.fn(),
|
|
158
|
+
},
|
|
159
|
+
middlewares: {
|
|
160
|
+
use: vi.fn((handler: MiddlewareHandler) => {
|
|
161
|
+
middlewareHandlers.push(handler)
|
|
162
|
+
}),
|
|
163
|
+
},
|
|
164
|
+
watcher: {
|
|
165
|
+
add: vi.fn(),
|
|
166
|
+
addListener: vi.fn((event: string, listener: WatcherListener) => {
|
|
167
|
+
watcherListeners.set(event, [...(watcherListeners.get(event) || []), listener])
|
|
168
|
+
}),
|
|
169
|
+
on: vi.fn((event: string, listener: WatcherListener) => {
|
|
170
|
+
watcherListeners.set(event, [...(watcherListeners.get(event) || []), listener])
|
|
171
|
+
}),
|
|
172
|
+
},
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const plugin = createFileSystemRouterPlugin({
|
|
176
|
+
router: {
|
|
177
|
+
root: appDir,
|
|
178
|
+
},
|
|
179
|
+
server: {
|
|
180
|
+
loggingEnabled: false,
|
|
181
|
+
},
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
const installMiddlewares = (plugin as any).configureServer(server)
|
|
185
|
+
installMiddlewares()
|
|
186
|
+
|
|
187
|
+
const routeMiddleware = middlewareHandlers.at(-1)
|
|
188
|
+
if (!routeMiddleware) {
|
|
189
|
+
throw new Error('Expected route middleware to be registered')
|
|
190
|
+
}
|
|
191
|
+
const handleRouteRequest = routeMiddleware
|
|
192
|
+
|
|
193
|
+
async function request(pathname: string) {
|
|
194
|
+
const chunks: string[] = []
|
|
195
|
+
const req = {
|
|
196
|
+
originalUrl: pathname,
|
|
197
|
+
url: pathname,
|
|
198
|
+
headers: {
|
|
199
|
+
host: 'localhost',
|
|
200
|
+
},
|
|
201
|
+
method: 'GET',
|
|
202
|
+
}
|
|
203
|
+
const res = {
|
|
204
|
+
setHeader: vi.fn(),
|
|
205
|
+
appendHeader: vi.fn(),
|
|
206
|
+
writeHead: vi.fn(),
|
|
207
|
+
write: vi.fn((chunk: string) => {
|
|
208
|
+
chunks.push(chunk)
|
|
209
|
+
}),
|
|
210
|
+
end: vi.fn(),
|
|
211
|
+
}
|
|
212
|
+
const next = vi.fn((error?: unknown) => {
|
|
213
|
+
if (error) {
|
|
214
|
+
throw error
|
|
215
|
+
}
|
|
216
|
+
throw new Error('Expected One router middleware to handle request')
|
|
217
|
+
})
|
|
218
|
+
|
|
219
|
+
await handleRouteRequest(req, res, next)
|
|
220
|
+
expect(res.end).toHaveBeenCalled()
|
|
221
|
+
return chunks.join('')
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
await expect(request('/')).resolves.toContain('<body>1</body>')
|
|
225
|
+
await expect(request('/')).resolves.toContain('<body>1</body>')
|
|
226
|
+
expect(render).toHaveBeenCalledTimes(1)
|
|
227
|
+
|
|
228
|
+
const allListeners = watcherListeners.get('all') || []
|
|
229
|
+
const invalidateRunner = allListeners[0]
|
|
230
|
+
if (!invalidateRunner) {
|
|
231
|
+
throw new Error('Expected runner invalidation listener to be registered')
|
|
232
|
+
}
|
|
233
|
+
invalidateRunner('change', routeFile)
|
|
234
|
+
|
|
235
|
+
await expect(request('/')).resolves.toContain('<body>2</body>')
|
|
236
|
+
expect(render).toHaveBeenCalledTimes(2)
|
|
237
|
+
expect(runner.clearCache).toHaveBeenCalledTimes(2)
|
|
238
|
+
})
|
|
106
239
|
})
|
|
@@ -17,7 +17,7 @@ import { promiseWithResolvers } from '../../utils/promiseWithResolvers'
|
|
|
17
17
|
import { isRouteFileWatchEvent } from '../../utils/routeFileWatch'
|
|
18
18
|
import { trackLoaderDependencies } from '../../utils/trackLoaderDependencies'
|
|
19
19
|
import { replaceLoader } from '../../vite/replaceLoader'
|
|
20
|
-
import type { One } from '../../vite/types'
|
|
20
|
+
import type { One, RouteInfo } from '../../vite/types'
|
|
21
21
|
import { setServerContext } from '../one-server-only'
|
|
22
22
|
import { virtalEntryIdClient, virtualEntryId } from './virtualEntryConstants'
|
|
23
23
|
|
|
@@ -74,6 +74,11 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
74
74
|
let handleRequest = createRequestHandler()
|
|
75
75
|
// handle only one at a time in dev mode to avoid "Detected multiple renderers concurrently" errors
|
|
76
76
|
let renderPromise: Promise<void> | null = null
|
|
77
|
+
const ssgHtmlCache = new Map<string, string>()
|
|
78
|
+
|
|
79
|
+
function getSsgHtmlCacheKey(route: RouteInfo<string>, url: URL) {
|
|
80
|
+
return `${route.file}\n${url.pathname}\n${url.search}`
|
|
81
|
+
}
|
|
77
82
|
|
|
78
83
|
function createRequestHandler() {
|
|
79
84
|
const routerRoot = getRouterRootFromOneOptions(options)
|
|
@@ -108,6 +113,15 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
108
113
|
return createHandleRequest(
|
|
109
114
|
{
|
|
110
115
|
async handlePage({ route, url, loaderProps }) {
|
|
116
|
+
const ssgCacheKey =
|
|
117
|
+
route.type === 'ssg' ? getSsgHtmlCacheKey(route, url) : null
|
|
118
|
+
if (ssgCacheKey && !needsCacheClear) {
|
|
119
|
+
const cachedHtml = ssgHtmlCache.get(ssgCacheKey)
|
|
120
|
+
if (cachedHtml) {
|
|
121
|
+
return cachedHtml
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
111
125
|
if (options.server?.loggingEnabled !== false) {
|
|
112
126
|
const colorType = routeTypeColors[route.type] || colors.white
|
|
113
127
|
const pathname =
|
|
@@ -143,6 +157,13 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
143
157
|
await renderPromise
|
|
144
158
|
}
|
|
145
159
|
|
|
160
|
+
if (ssgCacheKey && !needsCacheClear) {
|
|
161
|
+
const cachedHtml = ssgHtmlCache.get(ssgCacheKey)
|
|
162
|
+
if (cachedHtml) {
|
|
163
|
+
return cachedHtml
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
146
167
|
const { promise, resolve: resolveRender } = promiseWithResolvers<void>()
|
|
147
168
|
renderPromise = promise
|
|
148
169
|
|
|
@@ -155,6 +176,7 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
155
176
|
const routeFile = isGeneratedNotFound ? '' : path.join(routerRoot, route.file)
|
|
156
177
|
if (needsCacheClear) {
|
|
157
178
|
runner.clearCache()
|
|
179
|
+
ssgHtmlCache.clear()
|
|
158
180
|
needsCacheClear = false
|
|
159
181
|
}
|
|
160
182
|
|
|
@@ -377,6 +399,10 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
377
399
|
})
|
|
378
400
|
}
|
|
379
401
|
|
|
402
|
+
if (ssgCacheKey) {
|
|
403
|
+
ssgHtmlCache.set(ssgCacheKey, html)
|
|
404
|
+
}
|
|
405
|
+
|
|
380
406
|
return html
|
|
381
407
|
} catch (err) {
|
|
382
408
|
// allow throwing a response in a loader (e.g. redirect)
|
|
@@ -547,6 +573,8 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
547
573
|
function recreateRequestHandler(changedPath: string) {
|
|
548
574
|
try {
|
|
549
575
|
handleRequest = createRequestHandler()
|
|
576
|
+
ssgHtmlCache.clear()
|
|
577
|
+
needsCacheClear = true
|
|
550
578
|
} catch (error) {
|
|
551
579
|
console.warn(`[one] Failed to rebuild routes after ${changedPath} changed.`, error)
|
|
552
580
|
}
|
|
@@ -679,6 +707,7 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
679
707
|
event: 'one:loader-data-update',
|
|
680
708
|
data: { routePaths: [...routePaths] },
|
|
681
709
|
})
|
|
710
|
+
ssgHtmlCache.clear()
|
|
682
711
|
}
|
|
683
712
|
}, 100)
|
|
684
713
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSystemRouterPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/fileSystemRouterPlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAW,MAAM,EAAiB,MAAM,MAAM,CAAA;AAe1D,OAAO,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"fileSystemRouterPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/fileSystemRouterPlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAW,MAAM,EAAiB,MAAM,MAAM,CAAA;AAe1D,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,kBAAkB,CAAA;AAiBtD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,GAAG,MAAM,CAszB/E"}
|