one 1.17.11 → 1.18.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.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.cjs +41 -2
- package/dist/cjs/cli/build.native.js +50 -2
- 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.js +6 -5
- package/dist/cjs/getURL.native.js.map +1 -1
- package/dist/cjs/getURL.native.test.cjs +26 -0
- package/dist/cjs/getURL.native.test.native.js +33 -0
- package/dist/cjs/getURL.native.test.native.js.map +1 -0
- 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/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.cjs +25 -15
- package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js +26 -16
- package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/environmentGuardPlugin.test.cjs +44 -31
- package/dist/cjs/vite/plugins/environmentGuardPlugin.test.native.js +44 -31
- package/dist/cjs/vite/plugins/environmentGuardPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/imageDataPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/imageDataPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.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/cli/build.mjs +41 -2
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +50 -2
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/getURL.native.js +6 -5
- package/dist/esm/getURL.native.js.map +1 -1
- package/dist/esm/getURL.native.test.js +27 -0
- package/dist/esm/getURL.native.test.js.map +6 -0
- package/dist/esm/getURL.native.test.mjs +27 -0
- package/dist/esm/getURL.native.test.mjs.map +1 -0
- package/dist/esm/getURL.native.test.native.js +31 -0
- package/dist/esm/getURL.native.test.native.js.map +1 -0
- package/dist/esm/vite/plugins/environmentGuardPlugin.mjs +25 -15
- package/dist/esm/vite/plugins/environmentGuardPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/environmentGuardPlugin.native.js +26 -16
- package/dist/esm/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/environmentGuardPlugin.test.mjs +44 -31
- package/dist/esm/vite/plugins/environmentGuardPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/environmentGuardPlugin.test.native.js +44 -31
- package/dist/esm/vite/plugins/environmentGuardPlugin.test.native.js.map +1 -1
- package/env.d.ts +2 -0
- package/package.json +10 -10
- package/src/cli/build.ts +58 -1
- package/src/getURL.native.test.ts +33 -0
- package/src/getURL.native.ts +9 -7
- package/src/vite/plugins/environmentGuardPlugin.test.ts +58 -33
- package/src/vite/plugins/environmentGuardPlugin.ts +50 -20
- package/types/cli/build.d.ts.map +1 -1
- package/types/getURL.native.d.ts.map +1 -1
- package/types/getURL.native.test.d.ts +2 -0
- package/types/getURL.native.test.d.ts.map +1 -0
- package/types/vite/plugins/environmentGuardPlugin.d.ts +16 -4
- package/types/vite/plugins/environmentGuardPlugin.d.ts.map +1 -1
|
@@ -7,21 +7,25 @@ describe("environmentGuardPlugin", () => {
|
|
|
7
7
|
expect(resolveEnvironmentGuard("vite", "ssr")).toBeNull();
|
|
8
8
|
expect(resolveEnvironmentGuard("some-other-pkg", "ios")).toBeNull();
|
|
9
9
|
});
|
|
10
|
-
it("returns virtual id for server-only", () => {
|
|
11
|
-
const id = resolveEnvironmentGuard("server-only", "ssr");
|
|
12
|
-
expect(id).toBe("\0one-env-guard:server-only:ssr");
|
|
10
|
+
it("returns virtual id for server-only (with consumer)", () => {
|
|
11
|
+
const id = resolveEnvironmentGuard("server-only", "ssr", "server");
|
|
12
|
+
expect(id).toBe("\0one-env-guard:server-only:ssr:server");
|
|
13
13
|
});
|
|
14
|
-
it("returns virtual id for client-only", () => {
|
|
15
|
-
const id = resolveEnvironmentGuard("client-only", "client");
|
|
16
|
-
expect(id).toBe("\0one-env-guard:client-only:client");
|
|
14
|
+
it("returns virtual id for client-only (with consumer)", () => {
|
|
15
|
+
const id = resolveEnvironmentGuard("client-only", "client", "client");
|
|
16
|
+
expect(id).toBe("\0one-env-guard:client-only:client:client");
|
|
17
17
|
});
|
|
18
18
|
it("returns virtual id for native-only", () => {
|
|
19
19
|
const id = resolveEnvironmentGuard("native-only", "ios");
|
|
20
|
-
expect(id).toBe("\0one-env-guard:native-only:ios");
|
|
20
|
+
expect(id).toBe("\0one-env-guard:native-only:ios:unknown");
|
|
21
21
|
});
|
|
22
22
|
it("returns virtual id for web-only", () => {
|
|
23
23
|
const id = resolveEnvironmentGuard("web-only", "client");
|
|
24
|
-
expect(id).toBe("\0one-env-guard:web-only:client");
|
|
24
|
+
expect(id).toBe("\0one-env-guard:web-only:client:unknown");
|
|
25
|
+
});
|
|
26
|
+
it("encodes worker consumer for cloudflare deploy", () => {
|
|
27
|
+
const id = resolveEnvironmentGuard("server-only", "worker", "server");
|
|
28
|
+
expect(id).toBe("\0one-env-guard:server-only:worker:server");
|
|
25
29
|
});
|
|
26
30
|
});
|
|
27
31
|
describe("loadEnvironmentGuard", () => {
|
|
@@ -29,70 +33,79 @@ describe("environmentGuardPlugin", () => {
|
|
|
29
33
|
expect(loadEnvironmentGuard("react")).toBeNull();
|
|
30
34
|
expect(loadEnvironmentGuard("/some/path.ts")).toBeNull();
|
|
31
35
|
});
|
|
32
|
-
it("server-only: allowed in
|
|
36
|
+
it("server-only: allowed in any server-consumer env", () => {
|
|
37
|
+
expect(loadEnvironmentGuard("\0one-env-guard:server-only:ssr:server")).toBe("export {}");
|
|
38
|
+
expect(loadEnvironmentGuard("\0one-env-guard:server-only:worker:server")).toBe("export {}");
|
|
39
|
+
expect(loadEnvironmentGuard("\0one-env-guard:server-only:edge:server")).toBe("export {}");
|
|
40
|
+
});
|
|
41
|
+
it("server-only: legacy 2-part form still allowed in ssr", () => {
|
|
33
42
|
const result = loadEnvironmentGuard("\0one-env-guard:server-only:ssr");
|
|
34
43
|
expect(result).toBe("export {}");
|
|
35
44
|
});
|
|
36
45
|
it("server-only: forbidden in client", () => {
|
|
37
|
-
const result = loadEnvironmentGuard("\0one-env-guard:server-only:client");
|
|
46
|
+
const result = loadEnvironmentGuard("\0one-env-guard:server-only:client:client");
|
|
38
47
|
expect(result).toContain("throw new Error");
|
|
39
48
|
expect(result).toContain("server-only");
|
|
40
49
|
expect(result).toContain("client");
|
|
41
50
|
});
|
|
42
51
|
it("server-only: forbidden in ios", () => {
|
|
43
|
-
const result = loadEnvironmentGuard("\0one-env-guard:server-only:ios");
|
|
52
|
+
const result = loadEnvironmentGuard("\0one-env-guard:server-only:ios:client");
|
|
44
53
|
expect(result).toContain("throw new Error");
|
|
45
54
|
});
|
|
46
55
|
it("server-only: forbidden in android", () => {
|
|
47
|
-
const result = loadEnvironmentGuard("\0one-env-guard:server-only:android");
|
|
56
|
+
const result = loadEnvironmentGuard("\0one-env-guard:server-only:android:client");
|
|
48
57
|
expect(result).toContain("throw new Error");
|
|
49
58
|
});
|
|
50
59
|
it("client-only: allowed in client", () => {
|
|
60
|
+
const result = loadEnvironmentGuard("\0one-env-guard:client-only:client:client");
|
|
61
|
+
expect(result).toBe("export {}");
|
|
62
|
+
});
|
|
63
|
+
it("client-only: legacy 2-part form still allowed in client", () => {
|
|
51
64
|
const result = loadEnvironmentGuard("\0one-env-guard:client-only:client");
|
|
52
65
|
expect(result).toBe("export {}");
|
|
53
66
|
});
|
|
54
67
|
it("client-only: forbidden in ssr", () => {
|
|
55
|
-
const result = loadEnvironmentGuard("\0one-env-guard:client-only:ssr");
|
|
68
|
+
const result = loadEnvironmentGuard("\0one-env-guard:client-only:ssr:server");
|
|
56
69
|
expect(result).toContain("throw new Error");
|
|
57
70
|
});
|
|
58
71
|
it("client-only: forbidden in ios", () => {
|
|
59
|
-
const result = loadEnvironmentGuard("\0one-env-guard:client-only:ios");
|
|
72
|
+
const result = loadEnvironmentGuard("\0one-env-guard:client-only:ios:server");
|
|
60
73
|
expect(result).toContain("throw new Error");
|
|
61
74
|
});
|
|
62
75
|
it("client-only: forbidden in android", () => {
|
|
63
|
-
const result = loadEnvironmentGuard("\0one-env-guard:client-only:android");
|
|
76
|
+
const result = loadEnvironmentGuard("\0one-env-guard:client-only:android:server");
|
|
64
77
|
expect(result).toContain("throw new Error");
|
|
65
78
|
});
|
|
66
79
|
it("native-only: allowed in ios", () => {
|
|
67
|
-
const result = loadEnvironmentGuard("\0one-env-guard:native-only:ios");
|
|
80
|
+
const result = loadEnvironmentGuard("\0one-env-guard:native-only:ios:unknown");
|
|
68
81
|
expect(result).toBe("export {}");
|
|
69
82
|
});
|
|
70
83
|
it("native-only: allowed in android", () => {
|
|
71
|
-
const result = loadEnvironmentGuard("\0one-env-guard:native-only:android");
|
|
84
|
+
const result = loadEnvironmentGuard("\0one-env-guard:native-only:android:unknown");
|
|
72
85
|
expect(result).toBe("export {}");
|
|
73
86
|
});
|
|
74
87
|
it("native-only: forbidden in client", () => {
|
|
75
|
-
const result = loadEnvironmentGuard("\0one-env-guard:native-only:client");
|
|
88
|
+
const result = loadEnvironmentGuard("\0one-env-guard:native-only:client:client");
|
|
76
89
|
expect(result).toContain("throw new Error");
|
|
77
90
|
});
|
|
78
91
|
it("native-only: forbidden in ssr", () => {
|
|
79
|
-
const result = loadEnvironmentGuard("\0one-env-guard:native-only:ssr");
|
|
92
|
+
const result = loadEnvironmentGuard("\0one-env-guard:native-only:ssr:server");
|
|
80
93
|
expect(result).toContain("throw new Error");
|
|
81
94
|
});
|
|
82
95
|
it("web-only: allowed in client", () => {
|
|
83
|
-
const result = loadEnvironmentGuard("\0one-env-guard:web-only:client");
|
|
96
|
+
const result = loadEnvironmentGuard("\0one-env-guard:web-only:client:client");
|
|
84
97
|
expect(result).toBe("export {}");
|
|
85
98
|
});
|
|
86
99
|
it("web-only: allowed in ssr", () => {
|
|
87
|
-
const result = loadEnvironmentGuard("\0one-env-guard:web-only:ssr");
|
|
100
|
+
const result = loadEnvironmentGuard("\0one-env-guard:web-only:ssr:server");
|
|
88
101
|
expect(result).toBe("export {}");
|
|
89
102
|
});
|
|
90
103
|
it("web-only: forbidden in ios", () => {
|
|
91
|
-
const result = loadEnvironmentGuard("\0one-env-guard:web-only:ios");
|
|
104
|
+
const result = loadEnvironmentGuard("\0one-env-guard:web-only:ios:unknown");
|
|
92
105
|
expect(result).toContain("throw new Error");
|
|
93
106
|
});
|
|
94
107
|
it("web-only: forbidden in android", () => {
|
|
95
|
-
const result = loadEnvironmentGuard("\0one-env-guard:web-only:android");
|
|
108
|
+
const result = loadEnvironmentGuard("\0one-env-guard:web-only:android:unknown");
|
|
96
109
|
expect(result).toContain("throw new Error");
|
|
97
110
|
});
|
|
98
111
|
it("disabled guards always pass", () => {
|
|
@@ -102,36 +115,36 @@ describe("environmentGuardPlugin", () => {
|
|
|
102
115
|
});
|
|
103
116
|
describe("options", () => {
|
|
104
117
|
it("disabled: true makes all guards no-ops", () => {
|
|
105
|
-
const id = resolveEnvironmentGuard("client-only", "ssr", {
|
|
118
|
+
const id = resolveEnvironmentGuard("client-only", "ssr", "server", {
|
|
106
119
|
disabled: true
|
|
107
120
|
});
|
|
108
121
|
expect(id).toBe("\0one-env-guard:client-only:disabled");
|
|
109
122
|
expect(loadEnvironmentGuard(id)).toBe("export {}");
|
|
110
123
|
});
|
|
111
124
|
it("disableGuards: disables specific guard types", () => {
|
|
112
|
-
const id1 = resolveEnvironmentGuard("client-only", "ssr", {
|
|
125
|
+
const id1 = resolveEnvironmentGuard("client-only", "ssr", "server", {
|
|
113
126
|
disableGuards: ["client-only"]
|
|
114
127
|
});
|
|
115
128
|
expect(id1).toBe("\0one-env-guard:client-only:disabled");
|
|
116
|
-
const id2 = resolveEnvironmentGuard("server-only", "client", {
|
|
129
|
+
const id2 = resolveEnvironmentGuard("server-only", "client", "client", {
|
|
117
130
|
disableGuards: ["client-only"]
|
|
118
131
|
});
|
|
119
|
-
expect(id2).toBe("\0one-env-guard:server-only:client");
|
|
132
|
+
expect(id2).toBe("\0one-env-guard:server-only:client:client");
|
|
120
133
|
expect(loadEnvironmentGuard(id2)).toContain("throw new Error");
|
|
121
134
|
});
|
|
122
135
|
it("disableGuards: can disable multiple guards", () => {
|
|
123
|
-
const id1 = resolveEnvironmentGuard("client-only", "ssr", {
|
|
136
|
+
const id1 = resolveEnvironmentGuard("client-only", "ssr", "server", {
|
|
124
137
|
disableGuards: ["client-only", "server-only"]
|
|
125
138
|
});
|
|
126
139
|
expect(id1).toBe("\0one-env-guard:client-only:disabled");
|
|
127
|
-
const id2 = resolveEnvironmentGuard("server-only", "client", {
|
|
140
|
+
const id2 = resolveEnvironmentGuard("server-only", "client", "client", {
|
|
128
141
|
disableGuards: ["client-only", "server-only"]
|
|
129
142
|
});
|
|
130
143
|
expect(id2).toBe("\0one-env-guard:server-only:disabled");
|
|
131
|
-
const id3 = resolveEnvironmentGuard("native-only", "client", {
|
|
144
|
+
const id3 = resolveEnvironmentGuard("native-only", "client", "client", {
|
|
132
145
|
disableGuards: ["client-only", "server-only"]
|
|
133
146
|
});
|
|
134
|
-
expect(id3).toBe("\0one-env-guard:native-only:client");
|
|
147
|
+
expect(id3).toBe("\0one-env-guard:native-only:client:client");
|
|
135
148
|
});
|
|
136
149
|
});
|
|
137
150
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","resolveEnvironmentGuard","loadEnvironmentGuard","toBeNull","id","toBe","result","toContain","disabled","id1","disableGuards","id2","id3"],"sources":["../../../../src/vite/plugins/environmentGuardPlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,uBAAA,EAAyBC,oBAAA,QAA4B;AAE9DJ,QAAA,CAAS,0BAA0B,MAAM;EACvCA,QAAA,CAAS,2BAA2B,MAAM;IACxCE,EAAA,CAAG,yCAAyC,MAAM;MAChDD,MAAA,CAAOE,uBAAA,CAAwB,SAAS,QAAQ,CAAC,EAAEE,QAAA,CAAS;MAC5DJ,MAAA,CAAOE,uBAAA,CAAwB,QAAQ,KAAK,CAAC,EAAEE,QAAA,CAAS;MACxDJ,MAAA,CAAOE,uBAAA,CAAwB,kBAAkB,KAAK,CAAC,EAAEE,QAAA,CAAS;IACpE,CAAC;IAEDH,EAAA,CAAG,
|
|
1
|
+
{"version":3,"names":["describe","expect","it","resolveEnvironmentGuard","loadEnvironmentGuard","toBeNull","id","toBe","result","toContain","disabled","id1","disableGuards","id2","id3"],"sources":["../../../../src/vite/plugins/environmentGuardPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -7,21 +7,25 @@ describe("environmentGuardPlugin", function () {
|
|
|
7
7
|
expect(resolveEnvironmentGuard("vite", "ssr")).toBeNull();
|
|
8
8
|
expect(resolveEnvironmentGuard("some-other-pkg", "ios")).toBeNull();
|
|
9
9
|
});
|
|
10
|
-
it("returns virtual id for server-only", function () {
|
|
11
|
-
var id = resolveEnvironmentGuard("server-only", "ssr");
|
|
12
|
-
expect(id).toBe("\0one-env-guard:server-only:ssr");
|
|
10
|
+
it("returns virtual id for server-only (with consumer)", function () {
|
|
11
|
+
var id = resolveEnvironmentGuard("server-only", "ssr", "server");
|
|
12
|
+
expect(id).toBe("\0one-env-guard:server-only:ssr:server");
|
|
13
13
|
});
|
|
14
|
-
it("returns virtual id for client-only", function () {
|
|
15
|
-
var id = resolveEnvironmentGuard("client-only", "client");
|
|
16
|
-
expect(id).toBe("\0one-env-guard:client-only:client");
|
|
14
|
+
it("returns virtual id for client-only (with consumer)", function () {
|
|
15
|
+
var id = resolveEnvironmentGuard("client-only", "client", "client");
|
|
16
|
+
expect(id).toBe("\0one-env-guard:client-only:client:client");
|
|
17
17
|
});
|
|
18
18
|
it("returns virtual id for native-only", function () {
|
|
19
19
|
var id = resolveEnvironmentGuard("native-only", "ios");
|
|
20
|
-
expect(id).toBe("\0one-env-guard:native-only:ios");
|
|
20
|
+
expect(id).toBe("\0one-env-guard:native-only:ios:unknown");
|
|
21
21
|
});
|
|
22
22
|
it("returns virtual id for web-only", function () {
|
|
23
23
|
var id = resolveEnvironmentGuard("web-only", "client");
|
|
24
|
-
expect(id).toBe("\0one-env-guard:web-only:client");
|
|
24
|
+
expect(id).toBe("\0one-env-guard:web-only:client:unknown");
|
|
25
|
+
});
|
|
26
|
+
it("encodes worker consumer for cloudflare deploy", function () {
|
|
27
|
+
var id = resolveEnvironmentGuard("server-only", "worker", "server");
|
|
28
|
+
expect(id).toBe("\0one-env-guard:server-only:worker:server");
|
|
25
29
|
});
|
|
26
30
|
});
|
|
27
31
|
describe("loadEnvironmentGuard", function () {
|
|
@@ -29,70 +33,79 @@ describe("environmentGuardPlugin", function () {
|
|
|
29
33
|
expect(loadEnvironmentGuard("react")).toBeNull();
|
|
30
34
|
expect(loadEnvironmentGuard("/some/path.ts")).toBeNull();
|
|
31
35
|
});
|
|
32
|
-
it("server-only: allowed in
|
|
36
|
+
it("server-only: allowed in any server-consumer env", function () {
|
|
37
|
+
expect(loadEnvironmentGuard("\0one-env-guard:server-only:ssr:server")).toBe("export {}");
|
|
38
|
+
expect(loadEnvironmentGuard("\0one-env-guard:server-only:worker:server")).toBe("export {}");
|
|
39
|
+
expect(loadEnvironmentGuard("\0one-env-guard:server-only:edge:server")).toBe("export {}");
|
|
40
|
+
});
|
|
41
|
+
it("server-only: legacy 2-part form still allowed in ssr", function () {
|
|
33
42
|
var result = loadEnvironmentGuard("\0one-env-guard:server-only:ssr");
|
|
34
43
|
expect(result).toBe("export {}");
|
|
35
44
|
});
|
|
36
45
|
it("server-only: forbidden in client", function () {
|
|
37
|
-
var result = loadEnvironmentGuard("\0one-env-guard:server-only:client");
|
|
46
|
+
var result = loadEnvironmentGuard("\0one-env-guard:server-only:client:client");
|
|
38
47
|
expect(result).toContain("throw new Error");
|
|
39
48
|
expect(result).toContain("server-only");
|
|
40
49
|
expect(result).toContain("client");
|
|
41
50
|
});
|
|
42
51
|
it("server-only: forbidden in ios", function () {
|
|
43
|
-
var result = loadEnvironmentGuard("\0one-env-guard:server-only:ios");
|
|
52
|
+
var result = loadEnvironmentGuard("\0one-env-guard:server-only:ios:client");
|
|
44
53
|
expect(result).toContain("throw new Error");
|
|
45
54
|
});
|
|
46
55
|
it("server-only: forbidden in android", function () {
|
|
47
|
-
var result = loadEnvironmentGuard("\0one-env-guard:server-only:android");
|
|
56
|
+
var result = loadEnvironmentGuard("\0one-env-guard:server-only:android:client");
|
|
48
57
|
expect(result).toContain("throw new Error");
|
|
49
58
|
});
|
|
50
59
|
it("client-only: allowed in client", function () {
|
|
60
|
+
var result = loadEnvironmentGuard("\0one-env-guard:client-only:client:client");
|
|
61
|
+
expect(result).toBe("export {}");
|
|
62
|
+
});
|
|
63
|
+
it("client-only: legacy 2-part form still allowed in client", function () {
|
|
51
64
|
var result = loadEnvironmentGuard("\0one-env-guard:client-only:client");
|
|
52
65
|
expect(result).toBe("export {}");
|
|
53
66
|
});
|
|
54
67
|
it("client-only: forbidden in ssr", function () {
|
|
55
|
-
var result = loadEnvironmentGuard("\0one-env-guard:client-only:ssr");
|
|
68
|
+
var result = loadEnvironmentGuard("\0one-env-guard:client-only:ssr:server");
|
|
56
69
|
expect(result).toContain("throw new Error");
|
|
57
70
|
});
|
|
58
71
|
it("client-only: forbidden in ios", function () {
|
|
59
|
-
var result = loadEnvironmentGuard("\0one-env-guard:client-only:ios");
|
|
72
|
+
var result = loadEnvironmentGuard("\0one-env-guard:client-only:ios:server");
|
|
60
73
|
expect(result).toContain("throw new Error");
|
|
61
74
|
});
|
|
62
75
|
it("client-only: forbidden in android", function () {
|
|
63
|
-
var result = loadEnvironmentGuard("\0one-env-guard:client-only:android");
|
|
76
|
+
var result = loadEnvironmentGuard("\0one-env-guard:client-only:android:server");
|
|
64
77
|
expect(result).toContain("throw new Error");
|
|
65
78
|
});
|
|
66
79
|
it("native-only: allowed in ios", function () {
|
|
67
|
-
var result = loadEnvironmentGuard("\0one-env-guard:native-only:ios");
|
|
80
|
+
var result = loadEnvironmentGuard("\0one-env-guard:native-only:ios:unknown");
|
|
68
81
|
expect(result).toBe("export {}");
|
|
69
82
|
});
|
|
70
83
|
it("native-only: allowed in android", function () {
|
|
71
|
-
var result = loadEnvironmentGuard("\0one-env-guard:native-only:android");
|
|
84
|
+
var result = loadEnvironmentGuard("\0one-env-guard:native-only:android:unknown");
|
|
72
85
|
expect(result).toBe("export {}");
|
|
73
86
|
});
|
|
74
87
|
it("native-only: forbidden in client", function () {
|
|
75
|
-
var result = loadEnvironmentGuard("\0one-env-guard:native-only:client");
|
|
88
|
+
var result = loadEnvironmentGuard("\0one-env-guard:native-only:client:client");
|
|
76
89
|
expect(result).toContain("throw new Error");
|
|
77
90
|
});
|
|
78
91
|
it("native-only: forbidden in ssr", function () {
|
|
79
|
-
var result = loadEnvironmentGuard("\0one-env-guard:native-only:ssr");
|
|
92
|
+
var result = loadEnvironmentGuard("\0one-env-guard:native-only:ssr:server");
|
|
80
93
|
expect(result).toContain("throw new Error");
|
|
81
94
|
});
|
|
82
95
|
it("web-only: allowed in client", function () {
|
|
83
|
-
var result = loadEnvironmentGuard("\0one-env-guard:web-only:client");
|
|
96
|
+
var result = loadEnvironmentGuard("\0one-env-guard:web-only:client:client");
|
|
84
97
|
expect(result).toBe("export {}");
|
|
85
98
|
});
|
|
86
99
|
it("web-only: allowed in ssr", function () {
|
|
87
|
-
var result = loadEnvironmentGuard("\0one-env-guard:web-only:ssr");
|
|
100
|
+
var result = loadEnvironmentGuard("\0one-env-guard:web-only:ssr:server");
|
|
88
101
|
expect(result).toBe("export {}");
|
|
89
102
|
});
|
|
90
103
|
it("web-only: forbidden in ios", function () {
|
|
91
|
-
var result = loadEnvironmentGuard("\0one-env-guard:web-only:ios");
|
|
104
|
+
var result = loadEnvironmentGuard("\0one-env-guard:web-only:ios:unknown");
|
|
92
105
|
expect(result).toContain("throw new Error");
|
|
93
106
|
});
|
|
94
107
|
it("web-only: forbidden in android", function () {
|
|
95
|
-
var result = loadEnvironmentGuard("\0one-env-guard:web-only:android");
|
|
108
|
+
var result = loadEnvironmentGuard("\0one-env-guard:web-only:android:unknown");
|
|
96
109
|
expect(result).toContain("throw new Error");
|
|
97
110
|
});
|
|
98
111
|
it("disabled guards always pass", function () {
|
|
@@ -102,36 +115,36 @@ describe("environmentGuardPlugin", function () {
|
|
|
102
115
|
});
|
|
103
116
|
describe("options", function () {
|
|
104
117
|
it("disabled: true makes all guards no-ops", function () {
|
|
105
|
-
var id = resolveEnvironmentGuard("client-only", "ssr", {
|
|
118
|
+
var id = resolveEnvironmentGuard("client-only", "ssr", "server", {
|
|
106
119
|
disabled: true
|
|
107
120
|
});
|
|
108
121
|
expect(id).toBe("\0one-env-guard:client-only:disabled");
|
|
109
122
|
expect(loadEnvironmentGuard(id)).toBe("export {}");
|
|
110
123
|
});
|
|
111
124
|
it("disableGuards: disables specific guard types", function () {
|
|
112
|
-
var id1 = resolveEnvironmentGuard("client-only", "ssr", {
|
|
125
|
+
var id1 = resolveEnvironmentGuard("client-only", "ssr", "server", {
|
|
113
126
|
disableGuards: ["client-only"]
|
|
114
127
|
});
|
|
115
128
|
expect(id1).toBe("\0one-env-guard:client-only:disabled");
|
|
116
|
-
var id2 = resolveEnvironmentGuard("server-only", "client", {
|
|
129
|
+
var id2 = resolveEnvironmentGuard("server-only", "client", "client", {
|
|
117
130
|
disableGuards: ["client-only"]
|
|
118
131
|
});
|
|
119
|
-
expect(id2).toBe("\0one-env-guard:server-only:client");
|
|
132
|
+
expect(id2).toBe("\0one-env-guard:server-only:client:client");
|
|
120
133
|
expect(loadEnvironmentGuard(id2)).toContain("throw new Error");
|
|
121
134
|
});
|
|
122
135
|
it("disableGuards: can disable multiple guards", function () {
|
|
123
|
-
var id1 = resolveEnvironmentGuard("client-only", "ssr", {
|
|
136
|
+
var id1 = resolveEnvironmentGuard("client-only", "ssr", "server", {
|
|
124
137
|
disableGuards: ["client-only", "server-only"]
|
|
125
138
|
});
|
|
126
139
|
expect(id1).toBe("\0one-env-guard:client-only:disabled");
|
|
127
|
-
var id2 = resolveEnvironmentGuard("server-only", "client", {
|
|
140
|
+
var id2 = resolveEnvironmentGuard("server-only", "client", "client", {
|
|
128
141
|
disableGuards: ["client-only", "server-only"]
|
|
129
142
|
});
|
|
130
143
|
expect(id2).toBe("\0one-env-guard:server-only:disabled");
|
|
131
|
-
var id3 = resolveEnvironmentGuard("native-only", "client", {
|
|
144
|
+
var id3 = resolveEnvironmentGuard("native-only", "client", "client", {
|
|
132
145
|
disableGuards: ["client-only", "server-only"]
|
|
133
146
|
});
|
|
134
|
-
expect(id3).toBe("\0one-env-guard:native-only:client");
|
|
147
|
+
expect(id3).toBe("\0one-env-guard:native-only:client:client");
|
|
135
148
|
});
|
|
136
149
|
});
|
|
137
150
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","resolveEnvironmentGuard","loadEnvironmentGuard","toBeNull","id","toBe","result","toContain","disabled","id1","disableGuards","id2"],"sources":["../../../../src/vite/plugins/environmentGuardPlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,uBAAA,EAAyBC,oBAAA,QAA4B;AAE9DJ,QAAA,CAAS,0BAA0B,YAAM;EACvCA,QAAA,CAAS,2BAA2B,YAAM;IACxCE,EAAA,CAAG,yCAAyC,YAAM;MAChDD,MAAA,CAAOE,uBAAA,CAAwB,SAAS,QAAQ,CAAC,EAAEE,QAAA,CAAS;MAC5DJ,MAAA,CAAOE,uBAAA,CAAwB,QAAQ,KAAK,CAAC,EAAEE,QAAA,CAAS;MACxDJ,MAAA,CAAOE,uBAAA,CAAwB,kBAAkB,KAAK,CAAC,EAAEE,QAAA,CAAS;IACpE,CAAC;IAEDH,EAAA,CAAG,
|
|
1
|
+
{"version":3,"names":["describe","expect","it","resolveEnvironmentGuard","loadEnvironmentGuard","toBeNull","id","toBe","result","toContain","disabled","id1","disableGuards","id2","id3"],"sources":["../../../../src/vite/plugins/environmentGuardPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/env.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ interface OneEnvVariables {
|
|
|
26
26
|
VITE_NATIVE: '' | '1'
|
|
27
27
|
/** "web" for web builds, "ios" or "android" for native. Matches Expo convention. */
|
|
28
28
|
EXPO_OS: 'web' | 'ios' | 'android'
|
|
29
|
+
/** "web" for web builds, "native" for native builds. Used by Tamagui and One native route branches. */
|
|
30
|
+
TAMAGUI_TARGET: 'web' | 'native'
|
|
29
31
|
|
|
30
32
|
// React Native (available in native builds)
|
|
31
33
|
/** The React Native version string */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0",
|
|
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.
|
|
190
|
-
"@vxrn/compiler": "1.
|
|
191
|
-
"@vxrn/resolve": "1.
|
|
192
|
-
"@vxrn/tslib-lite": "1.
|
|
193
|
-
"@vxrn/use-isomorphic-layout-effect": "1.
|
|
194
|
-
"@vxrn/vite-plugin-metro": "1.
|
|
189
|
+
"@vxrn/color-scheme": "1.18.0",
|
|
190
|
+
"@vxrn/compiler": "1.18.0",
|
|
191
|
+
"@vxrn/resolve": "1.18.0",
|
|
192
|
+
"@vxrn/tslib-lite": "1.18.0",
|
|
193
|
+
"@vxrn/use-isomorphic-layout-effect": "1.18.0",
|
|
194
|
+
"@vxrn/vite-plugin-metro": "1.18.0",
|
|
195
195
|
"babel-dead-code-elimination": "1.0.10",
|
|
196
196
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
197
197
|
"babel-preset-expo": "*",
|
|
198
198
|
"citty": "^0.1.6",
|
|
199
199
|
"core-js": "^3.38.1",
|
|
200
|
-
"create-vxrn": "1.
|
|
200
|
+
"create-vxrn": "1.18.0",
|
|
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.
|
|
220
|
+
"vxrn": "1.18.0",
|
|
221
221
|
"ws": "^8.18.0",
|
|
222
222
|
"xxhashjs": "^0.2.2"
|
|
223
223
|
},
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
"@react-navigation/core": "^7.17.2",
|
|
267
267
|
"@react-navigation/drawer": "~7.9.8",
|
|
268
268
|
"@react-navigation/native": "~7.2.2",
|
|
269
|
-
"@tamagui/build": "2.
|
|
269
|
+
"@tamagui/build": "2.1.0",
|
|
270
270
|
"react-native-gesture-handler": "~2.30.0",
|
|
271
271
|
"react-native-reanimated": "~4.2.1",
|
|
272
272
|
"react-native-safe-area-context": "~5.6.2",
|
package/src/cli/build.ts
CHANGED
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
|
|
23
23
|
import * as constants from '../constants'
|
|
24
24
|
import { setServerGlobals } from '../server/setServerGlobals'
|
|
25
|
+
import { environmentGuardPlugin } from '../vite/plugins/environmentGuardPlugin'
|
|
25
26
|
import { writeBuildOutputPointer } from '../utils/buildOutputPointer'
|
|
26
27
|
import { getPathnameFromFilePath } from '../utils/getPathnameFromFilePath'
|
|
27
28
|
import { getRouterRootFromOneOptions } from '../utils/getRouterRootFromOneOptions'
|
|
@@ -60,6 +61,10 @@ const GENERATED_CLOUDFLARE_WRANGLER_RULES = [
|
|
|
60
61
|
{ type: 'ESModule', globs: ['./assets/**/*.js'], fallthrough: true },
|
|
61
62
|
]
|
|
62
63
|
|
|
64
|
+
const CLOUDFLARE_DEPLOY_WRANGLER_RULES = [
|
|
65
|
+
{ type: 'ESModule', globs: ['assets/**/*.js', 'assets/**/*.mjs'] },
|
|
66
|
+
]
|
|
67
|
+
|
|
63
68
|
function isPlainObject(value: unknown): value is Record<string, JsonValue> {
|
|
64
69
|
return !!value && typeof value === 'object' && !Array.isArray(value)
|
|
65
70
|
}
|
|
@@ -231,6 +236,46 @@ function createCloudflareWranglerConfig(
|
|
|
231
236
|
return mergedConfig
|
|
232
237
|
}
|
|
233
238
|
|
|
239
|
+
function omitEmptyJsonValues(value: JsonValue): JsonValue | undefined {
|
|
240
|
+
if (Array.isArray(value)) {
|
|
241
|
+
const items = value
|
|
242
|
+
.map((item) => omitEmptyJsonValues(item))
|
|
243
|
+
.filter((item): item is JsonValue => item !== undefined)
|
|
244
|
+
|
|
245
|
+
return items.length > 0 ? items : undefined
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
if (isPlainObject(value)) {
|
|
249
|
+
const entries = Object.entries(value)
|
|
250
|
+
.map(([key, item]) => [key, omitEmptyJsonValues(item)] as const)
|
|
251
|
+
.filter((entry): entry is readonly [string, JsonValue] => entry[1] !== undefined)
|
|
252
|
+
|
|
253
|
+
return entries.length > 0 ? Object.fromEntries(entries) : undefined
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return value
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
async function finalizeCloudflareWranglerDeployConfig(configPath: string) {
|
|
260
|
+
const parsed = JSON.parse(await FSExtra.readFile(configPath, 'utf-8')) as unknown
|
|
261
|
+
if (!isPlainObject(parsed)) {
|
|
262
|
+
throw new Error(
|
|
263
|
+
`Expected ${relative(process.cwd(), configPath)} to contain a JSON object`
|
|
264
|
+
)
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
parsed.rules = CLOUDFLARE_DEPLOY_WRANGLER_RULES
|
|
268
|
+
|
|
269
|
+
const config = omitEmptyJsonValues(parsed)
|
|
270
|
+
if (!isPlainObject(config)) {
|
|
271
|
+
throw new Error(
|
|
272
|
+
`Expected ${relative(process.cwd(), configPath)} to contain deploy config`
|
|
273
|
+
)
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
await FSExtra.writeFile(configPath, `${JSON.stringify(config, null, 2)}\n`)
|
|
277
|
+
}
|
|
278
|
+
|
|
234
279
|
// reads package.json name, strips npm scope prefix for use as cloudflare worker name
|
|
235
280
|
async function getCloudflareProjectName(root: string): Promise<string> {
|
|
236
281
|
try {
|
|
@@ -1505,6 +1550,15 @@ export default {
|
|
|
1505
1550
|
'process.env.ONE_CACHE_KEY': JSON.stringify(constants.CACHE_KEY),
|
|
1506
1551
|
},
|
|
1507
1552
|
plugins: [
|
|
1553
|
+
// the cloudflare worker IS a server, but this build runs with
|
|
1554
|
+
// configFile:false so the user vite.config (where the user-level
|
|
1555
|
+
// `one()` plugin registers environmentGuardPlugin via vite.config)
|
|
1556
|
+
// doesn't apply. register the guard plugin directly here so
|
|
1557
|
+
// `import 'server-only'` resolves to an empty module in the
|
|
1558
|
+
// worker bundle instead of inlining the package's throwing
|
|
1559
|
+
// index.js — which would crash the deployed worker on the first
|
|
1560
|
+
// /api request that loads any server-only-importing module.
|
|
1561
|
+
environmentGuardPlugin(oneOptions.environmentGuards),
|
|
1508
1562
|
cloudflare({
|
|
1509
1563
|
configPath: wranglerInputPath,
|
|
1510
1564
|
viteEnvironment: { name: 'worker' },
|
|
@@ -1551,6 +1605,9 @@ export default {
|
|
|
1551
1605
|
// Clean up temp file
|
|
1552
1606
|
await FSExtra.remove(workerSrcPath)
|
|
1553
1607
|
await FSExtra.remove(wranglerInputPath)
|
|
1608
|
+
await finalizeCloudflareWranglerDeployConfig(
|
|
1609
|
+
join(options.root, outDir, 'worker', 'wrangler.json')
|
|
1610
|
+
)
|
|
1554
1611
|
|
|
1555
1612
|
if (userWranglerConfig) {
|
|
1556
1613
|
console.info(
|
|
@@ -1559,7 +1616,7 @@ export default {
|
|
|
1559
1616
|
}
|
|
1560
1617
|
|
|
1561
1618
|
postBuildLogs.push(`Cloudflare worker bundled at ${outDir}/worker/index.js`)
|
|
1562
|
-
postBuildLogs.push(`To deploy:
|
|
1619
|
+
postBuildLogs.push(`To deploy: wrangler deploy`)
|
|
1563
1620
|
|
|
1564
1621
|
break
|
|
1565
1622
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from 'vitest'
|
|
2
|
+
import { getDevServer } from './getDevServer'
|
|
3
|
+
import { getURL } from './getURL.native'
|
|
4
|
+
|
|
5
|
+
vi.mock('./getDevServer', () => ({
|
|
6
|
+
getDevServer: vi.fn(() => ({
|
|
7
|
+
url: 'http://metro.local:8081/',
|
|
8
|
+
bundleLoadedFromServer: true,
|
|
9
|
+
})),
|
|
10
|
+
}))
|
|
11
|
+
|
|
12
|
+
const originalServerUrl = process.env.ONE_SERVER_URL
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
process.env.ONE_SERVER_URL = originalServerUrl
|
|
16
|
+
vi.clearAllMocks()
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
describe('getURL native', () => {
|
|
20
|
+
it('prefers explicit ONE_SERVER_URL in dev', () => {
|
|
21
|
+
process.env.ONE_SERVER_URL = 'https://app.example.com/'
|
|
22
|
+
|
|
23
|
+
expect(getURL()).toBe('https://app.example.com')
|
|
24
|
+
expect(getDevServer).not.toHaveBeenCalled()
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
it('falls back to the dev server when ONE_SERVER_URL is unset', () => {
|
|
28
|
+
delete process.env.ONE_SERVER_URL
|
|
29
|
+
|
|
30
|
+
expect(getURL()).toBe('http://metro.local:8081')
|
|
31
|
+
expect(getDevServer).toHaveBeenCalledTimes(1)
|
|
32
|
+
})
|
|
33
|
+
})
|
package/src/getURL.native.ts
CHANGED
|
@@ -5,15 +5,17 @@ let hasWarnedOnce = false
|
|
|
5
5
|
export function getURL() {
|
|
6
6
|
let url = process.env.ONE_SERVER_URL
|
|
7
7
|
|
|
8
|
+
if (url) {
|
|
9
|
+
return url.replace(/\/+$/, '') // remove trailing slash for consistency with web
|
|
10
|
+
}
|
|
11
|
+
|
|
8
12
|
if (__DEV__) {
|
|
9
13
|
// We'll be using the development server in development mode, but we still need to warn the user to set SERVER_URL for things to work in production.
|
|
10
|
-
if (!
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
)
|
|
16
|
-
}
|
|
14
|
+
if (!hasWarnedOnce) {
|
|
15
|
+
hasWarnedOnce = true
|
|
16
|
+
console.warn(
|
|
17
|
+
`The ONE_SERVER_URL environment variable is not set. While things will work in development mode as we'll be using your development server, you should still set ONE_SERVER_URL in your .env file for your production builds to work.`
|
|
18
|
+
)
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
const { url: devServerUrl } = getDevServer()
|