{"version":3,"file":"one.js","names":[],"sources":["esm/vite/one.js"],"sourcesContent":["import { configureVXRNCompilerPlugin } from \"@vxrn/compiler\";\nimport { resolvePath } from \"@vxrn/resolve\";\nimport { getPlatformEnvDefine } from \"@vxrn/vite-plugin-metro\";\nimport events from \"node:events\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { exactRegex } from \"rolldown/filter\";\nimport { normalizePath } from \"vite\";\nimport {\n  autoDepOptimizePlugin,\n  getOptionsFilled,\n  loadEnv,\n  nearestPackageJson,\n  backgroundComputationPlugin,\n  workletImportsPlugin\n} from \"vxrn\";\nimport vxrnVitePlugin from \"vxrn/vite-plugin\";\nimport { CACHE_KEY } from \"../constants\";\nimport { getViteMetroPluginOptions } from \"../metro-config/getViteMetroPluginOptions\";\nimport { setServerGlobals } from \"../server/setServerGlobals\";\nimport { getRouterRootFromOneOptions } from \"../utils/getRouterRootFromOneOptions\";\nimport { createRouteIndex } from \"../utils/routeIndex\";\nimport { absorbedPackageAliases } from \"../utils/absorbedPackages\";\nimport { ensureTSConfig } from \"./ensureTsConfig\";\nimport { setOneOptions } from \"./loadConfig\";\nimport { resolveNativeBundler } from \"./nativeBundler\";\nimport { bundledDevPlugin } from \"./plugins/bundledDevPlugin\";\nimport { clientTreeShakePlugin } from \"./plugins/clientTreeShakePlugin\";\nimport { createDevtoolsPlugin } from \"./plugins/devtoolsPlugin\";\nimport { createFileSystemRouterPlugin } from \"./plugins/fileSystemRouterPlugin\";\nimport { fixDependenciesPlugin } from \"./plugins/fixDependenciesPlugin\";\nimport { generateFileSystemRouteTypesPlugin } from \"./plugins/generateFileSystemRouteTypesPlugin\";\nimport { criticalCSSPlugin } from \"./plugins/criticalCSSPlugin\";\nimport { imageDataPlugin } from \"./plugins/imageDataPlugin\";\nimport { createRouteModuleHmrPlugin } from \"./plugins/routeModuleHmrPlugin\";\nimport { sourceInspectorPlugin } from \"./plugins/sourceInspectorPlugin\";\nimport { swiftPackagePlugin } from \"./plugins/swiftPackagePlugin\";\nimport { kotlinSourcePlugin } from \"./plugins/kotlinSourcePlugin\";\nimport { SSRCSSPlugin } from \"./plugins/SSRCSSPlugin\";\nimport { virtualEntryId } from \"./plugins/virtualEntryConstants\";\nimport { createVirtualEntry } from \"./plugins/virtualEntryPlugin\";\nimport { environmentGuardPlugin } from \"./plugins/environmentGuardPlugin\";\nimport { shouldEnableWorkerdDev } from \"./cloudflareWranglerConfig\";\nconst RN_DEEP_IMPORT_RE = /^react-native\\/Libraries\\/|react-native-web(-lite)?\\/.*\\/Libraries\\//;\nevents.setMaxListeners(1e3);\nglobalThis.__vxrnEnableNativeEnv = true;\nfunction one(options = {}) {\n  setServerGlobals();\n  const routerRoot = getRouterRootFromOneOptions(options);\n  const nativeDisabled = options.native === false;\n  const nativeOptions = options.native === false ? void 0 : options.native;\n  const nativeAppName = nativeOptions?.app?.name || nativeOptions?.key;\n  const nativeApp = nativeOptions?.app;\n  const nativeAppVersion = nativeApp?.version;\n  if (nativeDisabled) {\n    globalThis.__vxrnEnableNativeEnv = false;\n  }\n  const metroOptions = (() => {\n    if (nativeDisabled) return null;\n    if (resolveNativeBundler({ bundler: nativeOptions?.bundler }) !== \"metro\") {\n      const dropped = nativeOptions?.bundlerOptions;\n      if (dropped?.babelConfig || dropped?.babelConfigOverrides) {\n        console.warn(\n          `[one] native.bundlerOptions configures babel plugins, but native.bundler is \"${nativeOptions?.bundler}\", which runs no babel. Those plugins will not run and whatever they were rewriting will reach the bundle untransformed.`\n        );\n      }\n      return null;\n    }\n    if (process.env.ONE_METRO_MODE) {\n      console.info(\"ONE_METRO_MODE environment variable is set, enabling Metro mode\");\n    }\n    const routerRoot2 = getRouterRootFromOneOptions(options);\n    const defaultMetroOptions = getViteMetroPluginOptions({\n      projectRoot: nativeOptions?.bundlerOptions?.argv?.projectRoot || process.cwd(),\n      relativeRouterRoot: routerRoot2,\n      ignoredRouteFiles: options.router?.ignoredRouteFiles,\n      linking: options.router?.linking,\n      userDefaultConfigOverrides: nativeOptions?.bundlerOptions?.defaultConfigOverrides,\n      setupFile: options.setupFile\n    });\n    const userMetroOptions = nativeOptions?.bundlerOptions;\n    const babelConfig = {\n      ...defaultMetroOptions?.babelConfig,\n      ...userMetroOptions?.babelConfig\n    };\n    return {\n      ...defaultMetroOptions,\n      ...userMetroOptions,\n      defaultConfigOverrides: defaultMetroOptions?.defaultConfigOverrides,\n      // defaultConfigOverrides is merged by getViteMetroPluginOptions, so we need to set it here again.\n      argv: {\n        ...defaultMetroOptions?.argv,\n        ...userMetroOptions?.argv\n      },\n      babelConfig: {\n        ...babelConfig,\n        plugins: [\n          ...babelConfig.plugins || [],\n          ...options.react?.compiler === true || options.react?.compiler === \"native\" ? [\"babel-plugin-react-compiler\"] : []\n        ]\n      },\n      mainModuleName: \"one/metro-entry\",\n      // allow env var to enable lazy startup\n      startup: process.env.ONE_METRO_LAZY ? \"lazy\" : userMetroOptions?.startup\n    };\n  })();\n  const vxrnPlugins = [];\n  if (!process.env.IS_VXRN_CLI) {\n    console.warn(\"Experimental: running VxRN as a Vite plugin. This is not yet stable.\");\n    vxrnPlugins.push(\n      vxrnVitePlugin({\n        metro: metroOptions,\n        disableNative: nativeDisabled\n      })\n    );\n  } else {\n    if (!globalThis.__oneOptions) {\n      setOneOptions(options);\n      globalThis[\"__vxrnPluginConfig__\"] = options;\n      globalThis[\"__vxrnMetroOptions__\"] = metroOptions;\n      return [];\n    }\n  }\n  if (options.config?.ensureTSConfig !== false) {\n    void ensureTSConfig();\n  }\n  const vxrnOptions = getOptionsFilled();\n  const root = vxrnOptions?.root || process.cwd();\n  const compiler = options.react?.compiler;\n  if (compiler) {\n    configureVXRNCompilerPlugin({\n      enableCompiler: (\n        // pass through object config, regex, or function directly\n        typeof compiler === \"object\" || typeof compiler === \"function\" ? compiler : compiler === \"native\" ? [\"ios\", \"android\"] : compiler === \"web\" ? [\"ssr\", \"client\"] : true\n      )\n    });\n  }\n  const autoDepsOptions = options.ssr?.autoDepsOptimization;\n  const dedupeSymlinks = options.ssr?.dedupeSymlinkedModules ?? false;\n  let ssrDedup_optimizedPackages = null;\n  let ssrDedup_projectRoot = \"\";\n  const ssrSymlinkDedupPlugin = {\n    name: \"one:ssr-symlink-dedup\",\n    enforce: \"pre\",\n    configResolved(config) {\n      if (!dedupeSymlinks) return;\n      ssrDedup_projectRoot = config.root || process.cwd();\n      const ssrInclude = config.ssr?.optimizeDeps?.include;\n      if (!ssrInclude?.length) return;\n      ssrDedup_optimizedPackages = /* @__PURE__ */ new Set();\n      for (const entry of ssrInclude) {\n        if (entry.startsWith(\"@\")) {\n          const parts = entry.split(\"/\");\n          ssrDedup_optimizedPackages.add(`${parts[0]}/${parts[1]}`);\n        } else {\n          ssrDedup_optimizedPackages.add(entry.split(\"/\")[0]);\n        }\n      }\n    },\n    async resolveId(source, importer, options2) {\n      if (!dedupeSymlinks) return;\n      if (source[0] === \".\" || source[0] === \"/\") return;\n      let pkgName;\n      let subpath = null;\n      if (source.startsWith(\"@\")) {\n        const parts = source.split(\"/\");\n        pkgName = parts.length >= 2 ? `${parts[0]}/${parts[1]}` : source;\n        if (parts.length > 2) subpath = `./${parts.slice(2).join(\"/\")}`;\n      } else {\n        const parts = source.split(\"/\");\n        pkgName = parts[0];\n        if (parts.length > 1) subpath = `./${parts.slice(1).join(\"/\")}`;\n      }\n      const resolved = await this.resolve(source, importer, {\n        ...options2,\n        skipSelf: true\n      });\n      if (!resolved?.id) return;\n      if (resolved.id.includes(\"/node_modules/\")) return;\n      const path2 = await import(\"node:path\");\n      const fs = await import(\"node:fs\");\n      const { join, dirname } = path2;\n      const { realpathSync, existsSync: existsSync2, readFileSync: readFileSync2 } = fs;\n      let dir = ssrDedup_projectRoot;\n      while (dir !== dirname(dir)) {\n        const nmPkgDir = join(dir, \"node_modules\", pkgName);\n        if (existsSync2(nmPkgDir)) {\n          if (subpath) {\n            try {\n              const pkg = JSON.parse(readFileSync2(join(nmPkgDir, \"package.json\"), \"utf8\"));\n              const exportEntry = pkg.exports?.[subpath];\n              if (exportEntry && typeof exportEntry === \"object\") {\n                const target = exportEntry.import || exportEntry.module || exportEntry.default;\n                if (target) {\n                  const fullPath = join(nmPkgDir, target);\n                  if (existsSync2(fullPath))\n                    return { id: normalizePath(fullPath), external: resolved.external };\n                }\n              }\n            } catch {\n            }\n          }\n          const realPkgDir = normalizePath(realpathSync(nmPkgDir));\n          if (resolved.id.startsWith(realPkgDir)) {\n            const relativePart = resolved.id.slice(realPkgDir.length);\n            return {\n              id: normalizePath(nmPkgDir) + relativePart,\n              external: resolved.external\n            };\n          }\n          break;\n        }\n        dir = dirname(dir);\n      }\n    }\n  };\n  const withAbsorbedAliases = (alias) => {\n    const root2 = process.cwd();\n    return {\n      ...alias,\n      native: { ...absorbedPackageAliases(root2, \"native\"), ...alias?.native }\n    };\n  };\n  const createAliasPlugin = (alias, nativePlatform) => {\n    const resolveMap = (map) => {\n      if (!map) return null;\n      const out = {};\n      for (const [key, value] of Object.entries(map)) {\n        try {\n          out[key] = path.isAbsolute(value) ? value : resolvePath(value);\n        } catch {\n          out[key] = value;\n        }\n      }\n      return out;\n    };\n    const resolved = {\n      web: resolveMap(alias.web),\n      native: resolveMap(alias.native),\n      client: resolveMap(alias.client),\n      ssr: resolveMap(alias.ssr),\n      ios: resolveMap(alias.ios),\n      android: resolveMap(alias.android)\n    };\n    const aliasKeys = [\n      ...new Set(Object.values(resolved).flatMap((m) => m ? Object.keys(m) : []))\n    ];\n    const aliasFilter = aliasKeys.length ? new RegExp(\n      `^(?:${aliasKeys.map((k) => k.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\")})$`\n    ) : /(?!)/;\n    return {\n      name: \"one:alias\",\n      enforce: \"pre\",\n      // vite's dep optimizer resolves its include list without plugins, so the\n      // absorbed packages also go in resolve.alias, which only web resolves with\n      config: nativePlatform ? void 0 : () => ({\n        resolve: {\n          alias: Object.entries(absorbedPackageAliases(process.cwd(), \"web\")).map(\n            ([name, replacement]) => ({ find: new RegExp(`^${name}$`), replacement })\n          )\n        }\n      }),\n      resolveId: {\n        filter: { id: aliasFilter },\n        handler(source) {\n          const env = nativePlatform ?? this.environment?.name;\n          const specific = env ? resolved[env] : null;\n          if (specific && source in specific) {\n            const id = specific[source];\n            return {\n              id,\n              external: false,\n              packageJsonPath: nearestPackageJson(id)\n            };\n          }\n          const isWeb = !env || env === \"client\" || env === \"ssr\";\n          const general = isWeb ? resolved.web : resolved.native;\n          if (general && source in general) {\n            const id = general[source];\n            return {\n              id,\n              external: false,\n              packageJsonPath: nearestPackageJson(id)\n            };\n          }\n        }\n      }\n    };\n  };\n  const devAndProdPlugins = [\n    {\n      name: \"one:config\",\n      __get: options\n    },\n    {\n      name: \"one:env-prefix\",\n      config(userConfig) {\n        if (userConfig.envPrefix) return;\n        return {\n          envPrefix: [\"VITE_\", \"ONE_PUBLIC_\", \"EXPO_PUBLIC_\"]\n        };\n      }\n    },\n    bundledDevPlugin(!!options.web?.experimentalBundledDev),\n    environmentGuardPlugin(options.environmentGuards),\n    criticalCSSPlugin(),\n    imageDataPlugin(),\n    {\n      name: \"one-define-client-env\",\n      async config(userConfig, env) {\n        const clientEnvDefine = options.skipEnv ? {} : (await loadEnv(\n          vxrnOptions?.mode ?? userConfig?.mode ?? env?.mode ?? \"development\",\n          process.cwd(),\n          userConfig?.envPrefix\n        )).clientEnvDefine;\n        return {\n          define: {\n            ...clientEnvDefine,\n            ...process.env.ONE_DEBUG_ROUTER && {\n              \"process.env.ONE_DEBUG_ROUTER\": JSON.stringify(\n                process.env.ONE_DEBUG_ROUTER\n              )\n            }\n          }\n        };\n      }\n    },\n    ...autoDepsOptions === false ? [] : [\n      autoDepOptimizePlugin({\n        onScannedDeps({ hasReanimated, hasNativewind }) {\n          configureVXRNCompilerPlugin({\n            enableReanimated: hasReanimated,\n            enableNativeCSS: nativeOptions?.css ?? hasNativewind,\n            enableNativewind: hasNativewind\n          });\n        },\n        root,\n        include: /node_modules/,\n        ...autoDepsOptions === true ? {} : autoDepsOptions\n      })\n    ],\n    ...options.config?.tsConfigPaths === false ? [] : [\n      (() => {\n        let mappings = [];\n        function loadMappings(resolvedRoot) {\n          try {\n            const configPath = path.resolve(resolvedRoot, \"tsconfig.json\");\n            if (!existsSync(configPath)) return;\n            const raw = readFileSync(configPath, \"utf-8\");\n            const stripped = raw.replace(\n              /\\\\\"|\"(?:\\\\\"|[^\"])*\"|(\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/)/g,\n              (m, g) => g ? \"\" : m\n            );\n            const config = JSON.parse(stripped);\n            const paths = config?.compilerOptions?.paths;\n            const baseUrl = config?.compilerOptions?.baseUrl || \".\";\n            if (!paths) return;\n            for (const [pattern, targets] of Object.entries(\n              paths\n            )) {\n              const target = targets[0];\n              if (!target) continue;\n              if (pattern.endsWith(\"/*\")) {\n                const resolved = path.resolve(\n                  resolvedRoot,\n                  baseUrl,\n                  target.slice(0, -1)\n                );\n                mappings.push({\n                  prefix: pattern.slice(0, -1),\n                  replacement: resolved.endsWith(\"/\") ? resolved : resolved + \"/\",\n                  wildcard: true\n                });\n              } else {\n                mappings.push({\n                  prefix: pattern,\n                  replacement: path.resolve(resolvedRoot, baseUrl, target),\n                  wildcard: false\n                });\n              }\n            }\n          } catch {\n          }\n        }\n        loadMappings(root);\n        const tsconfigPathsFilter = mappings.length ? new RegExp(\n          mappings.map(\n            (m) => `^${m.prefix.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}${m.wildcard ? \"\" : \"$\"}`\n          ).join(\"|\")\n        ) : /^[^./]/;\n        return {\n          name: \"one:tsconfig-paths\",\n          enforce: \"pre\",\n          config() {\n            return {\n              resolve: { tsconfigPaths: true }\n            };\n          },\n          configResolved(config) {\n            if (mappings.length === 0) {\n              loadMappings(config.root);\n            }\n          },\n          resolveId: {\n            filter: { id: tsconfigPathsFilter },\n            handler(source) {\n              const resolved = (id) => ({\n                id,\n                packageJsonPath: nearestPackageJson(id)\n              });\n              const jsExts = [\n                \".ts\",\n                \".tsx\",\n                \".js\",\n                \".jsx\",\n                \".mts\",\n                \".mjs\",\n                \".cjs\",\n                \".cts\"\n              ];\n              for (const m of mappings) {\n                let candidate;\n                if (m.wildcard) {\n                  if (source.startsWith(m.prefix)) {\n                    candidate = m.replacement + source.slice(m.prefix.length);\n                  }\n                } else if (source === m.prefix) {\n                  candidate = m.replacement;\n                }\n                if (!candidate) continue;\n                if (jsExts.includes(path.extname(candidate)))\n                  return resolved(candidate);\n                for (const e of jsExts) {\n                  if (existsSync(candidate + e)) return resolved(candidate + e);\n                }\n                for (const e of jsExts) {\n                  if (existsSync(candidate + \"/index\" + e))\n                    return resolved(candidate + \"/index\" + e);\n                }\n                return resolved(candidate);\n              }\n            }\n          }\n        };\n      })()\n    ],\n    createAliasPlugin(withAbsorbedAliases(options.alias)),\n    {\n      // rolldown fails on deep react-native/Libraries/* imports during dep pre-bundling.\n      // these are native-only paths that don't exist in react-native-web.\n      name: \"one:redirect-rn-deep-imports\",\n      enforce: \"pre\",\n      // rust-side filter matching the two source patterns below, so the ~24k\n      // non-matching imports in a build never enter js at all\n      resolveId: {\n        filter: { id: RN_DEEP_IMPORT_RE },\n        handler(source) {\n          if (this.environment?.name === \"client\" || this.environment?.name === \"ssr\" || this.environment?.name === \"worker\") {\n            return \"\\0rn-empty-module\";\n          }\n        }\n      },\n      load: {\n        filter: { id: exactRegex(\"\\0rn-empty-module\") },\n        handler() {\n          return \"export default {}; export {};\";\n        }\n      }\n    },\n    {\n      name: \"one-aliases\",\n      enforce: \"pre\",\n      config() {\n        let tslibLitePath = \"\";\n        try {\n          tslibLitePath = resolvePath(\"@vxrn/tslib-lite\", process.cwd());\n        } catch (err) {\n          console.info(`Can't find tslib-lite, falling back to tslib`);\n          if (process.env.DEBUG) {\n            console.error(err);\n          }\n        }\n        return {\n          resolve: {\n            alias: {\n              // testing getting transition between routes working\n              // 'use-sync-external-store/with-selector': resolvePath(\n              //   'use-sync-external-store/shim/with-selector'\n              // ),\n              ...tslibLitePath && {\n                tslib: tslibLitePath\n              }\n            }\n          }\n        };\n      }\n    },\n    {\n      name: \"one:init-config\",\n      config() {\n        const setupFileDefines = (() => {\n          if (!options.setupFile) return {};\n          let setupFiles;\n          if (typeof options.setupFile === \"string\") {\n            setupFiles = {\n              client: options.setupFile,\n              server: options.setupFile,\n              ios: options.setupFile,\n              android: options.setupFile\n            };\n          } else if (\"native\" in options.setupFile) {\n            setupFiles = {\n              client: options.setupFile.client,\n              server: options.setupFile.server,\n              ios: options.setupFile.native,\n              android: options.setupFile.native\n            };\n          } else {\n            setupFiles = options.setupFile;\n          }\n          return {\n            ...setupFiles.client && {\n              \"process.env.ONE_SETUP_FILE_CLIENT\": JSON.stringify(setupFiles.client)\n            },\n            ...setupFiles.server && {\n              \"process.env.ONE_SETUP_FILE_SERVER\": JSON.stringify(setupFiles.server)\n            },\n            ...setupFiles.ios && {\n              \"process.env.ONE_SETUP_FILE_IOS\": JSON.stringify(setupFiles.ios)\n            },\n            ...setupFiles.android && {\n              \"process.env.ONE_SETUP_FILE_ANDROID\": JSON.stringify(setupFiles.android)\n            }\n          };\n        })();\n        const serverURL = process.env.ONE_SERVER_URL || vxrnOptions?.server.url;\n        return {\n          // Platform env defined at root level for client (workaround for Vite bug with environment.client.define)\n          define: {\n            ...getPlatformEnvDefine(\"client\"),\n            ...setupFileDefines,\n            ...options.web?.defaultRenderMode && {\n              \"process.env.ONE_DEFAULT_RENDER_MODE\": JSON.stringify(\n                options.web.defaultRenderMode\n              ),\n              \"import.meta.env.ONE_DEFAULT_RENDER_MODE\": JSON.stringify(\n                options.web.defaultRenderMode\n              )\n            },\n            ...process.env.NODE_ENV !== \"production\" && serverURL && {\n              \"process.env.ONE_SERVER_URL\": JSON.stringify(serverURL),\n              \"import.meta.env.ONE_SERVER_URL\": JSON.stringify(serverURL)\n            },\n            ...options.web?.linkPrefetch && {\n              \"process.env.ONE_LINK_PREFETCH\": JSON.stringify(options.web.linkPrefetch)\n            },\n            ...options.web?.skewProtection !== void 0 && {\n              \"process.env.ONE_SKEW_PROTECTION\": JSON.stringify(\n                options.web.skewProtection === true ? \"true\" : options.web.skewProtection === false ? \"false\" : options.web.skewProtection\n                // 'proactive'\n              )\n            },\n            ...options.web?.suspendRoutes !== void 0 && {\n              \"process.env.ONE_SUSPEND_ROUTES\": JSON.stringify(\n                options.web.suspendRoutes ? \"1\" : \"0\"\n              )\n            }\n          },\n          environments: {\n            ssr: {\n              define: getPlatformEnvDefine(\"ssr\")\n            },\n            ios: {\n              define: {\n                ...getPlatformEnvDefine(\"ios\"),\n                ...nativeOptions?.suspendRoutes !== void 0 && {\n                  \"process.env.ONE_SUSPEND_ROUTES_NATIVE\": JSON.stringify(\n                    nativeOptions.suspendRoutes ? \"1\" : \"0\"\n                  )\n                }\n              }\n            },\n            android: {\n              define: {\n                ...getPlatformEnvDefine(\"android\"),\n                ...nativeOptions?.suspendRoutes !== void 0 && {\n                  \"process.env.ONE_SUSPEND_ROUTES_NATIVE\": JSON.stringify(\n                    nativeOptions.suspendRoutes ? \"1\" : \"0\"\n                  )\n                }\n              }\n            }\n          },\n          ssr: {\n            // ensure server-only/client-only go through vite so our environmentGuardPlugin can handle them\n            noExternal: [\"server-only\", \"client-only\"]\n          }\n        };\n      }\n    },\n    {\n      name: \"one:tamagui\",\n      config() {\n        return {\n          define: {\n            // safe to set because it only affects web in tamagui, and one is always react 19\n            \"process.env.TAMAGUI_REACT_19\": '\"1\"'\n          },\n          environments: {\n            ssr: {\n              define: {\n                \"process.env.TAMAGUI_IS_SERVER\": '\"1\"',\n                \"process.env.TAMAGUI_KEEP_THEMES\": '\"1\"'\n              }\n            },\n            ios: {\n              define: {\n                \"process.env.TAMAGUI_KEEP_THEMES\": '\"1\"'\n              }\n            },\n            android: {\n              define: {\n                \"process.env.TAMAGUI_KEEP_THEMES\": '\"1\"'\n              }\n            }\n          }\n        };\n      }\n    },\n    createRouteModuleHmrPlugin(routerRoot),\n    // Plugins may transform the source code and add imports of `react/jsx-dev-runtime`, which won't be discovered by Vite's initial `scanImports` since the implementation is using ESbuild where such plugins are not executed.\n    // Thus, if the project has a valid `react/jsx-dev-runtime` import, we tell Vite to optimize it, so Vite won't only discover it on the next page load and trigger a full reload.\n    {\n      name: \"one:optimize-dev-deps\",\n      config(_, env) {\n        if (env.mode === \"development\") {\n          return {\n            optimizeDeps: {\n              include: [\"react/jsx-dev-runtime\", \"react/compiler-runtime\"]\n            }\n          };\n        }\n      }\n    },\n    {\n      name: \"one:remove-server-from-client\",\n      enforce: \"pre\",\n      // both conditions are rust-side: only one-server-only modules that\n      // actually contain the import cross into js\n      transform: {\n        filter: {\n          id: /one-server-only/,\n          code: 'import { AsyncLocalStorage } from \"node:async_hooks\"'\n        },\n        handler(code) {\n          if (this.environment.name !== \"client\") return;\n          return code.replace(\n            `import { AsyncLocalStorage } from \"node:async_hooks\"`,\n            `class AsyncLocalStorage {}`\n          );\n        }\n      }\n    },\n    // packages in resolve.dedupe must also be pre-bundled for SSR to prevent\n    // duplicate module instances (e.g. symlinked monorepo packages resolving\n    // to different paths)\n    {\n      name: \"one:ssr-dedupe-prebundle\",\n      config(config) {\n        if (!dedupeSymlinks) return;\n        const dedupeList = config.resolve?.dedupe;\n        if (!Array.isArray(dedupeList) || dedupeList.length === 0) return;\n        return {\n          ssr: {\n            optimizeDeps: {\n              include: [...dedupeList]\n            },\n            noExternal: [...dedupeList]\n          }\n        };\n      }\n    },\n    // fix: vite's ssr dep optimizer registers pre-bundled deps by their\n    // node_modules path, but symlinks cause imports to resolve to the real\n    // (source) path. the optimizer doesn't recognize the real path, so it\n    // loads from source — creating a duplicate instance.\n    // this plugin forces optimized SSR deps to resolve via node_modules.\n    // off by default, and every hook bails on `!dedupeSymlinks`, so skip\n    // registering it entirely rather than paying a napi round trip per import\n    ...dedupeSymlinks ? [ssrSymlinkDedupPlugin] : []\n  ];\n  const nativeWebDevAndProdPlugsin = [clientTreeShakePlugin({ routerRoot })];\n  let nativeFormPlugins = [];\n  const nativeFormPluginsCapture = {\n    name: \"one:native-form-plugins\",\n    configResolved(config) {\n      nativeFormPlugins = config.plugins.filter((plugin) => plugin.api?.vxrnNative);\n    }\n  };\n  if (!nativeDisabled) {\n    const viteBundlerOptions = nativeOptions?.bundler === \"metro\" ? void 0 : nativeOptions?.bundlerOptions;\n    globalThis.__vxrnAddNativePlugins = (platform) => {\n      const listed = [\n        backgroundComputationPlugin(\"native\"),\n        workletImportsPlugin({}),\n        ...nativeApp ? [\n          {\n            name: \"one:externalize-expo-for-native-app\",\n            resolveId(source) {\n              if (/^(?:expo(?:-[^/]+)?|@expo\\/[^/]+)(?:\\/|$)/.test(source)) {\n                return { id: source, external: true };\n              }\n            }\n          }\n        ] : [],\n        createAliasPlugin(withAbsorbedAliases(options.alias), platform),\n        clientTreeShakePlugin({ runtime: \"rolldown\", routerRoot }),\n        ...viteBundlerOptions?.plugins ?? []\n      ];\n      const listedNames = new Set(listed.map((plugin) => plugin.name));\n      return [\n        ...listed,\n        ...nativeFormPlugins.filter((plugin) => !listedNames.has(plugin.name)),\n        // last, so an app plugin that compiles .swift itself (a simulator) wins\n        swiftPackagePlugin(platform, root),\n        kotlinSourcePlugin(platform, root)\n      ];\n    };\n    globalThis.__vxrnNativeUserDefine = {\n      ...viteBundlerOptions?.define,\n      ...nativeAppName && {\n        \"process.env.ONE_APP_NAME\": JSON.stringify(nativeAppName),\n        \"import.meta.env.ONE_APP_NAME\": JSON.stringify(nativeAppName)\n      }\n    };\n  }\n  globalThis.__vxrnAddWebPluginsProd = devAndProdPlugins;\n  const flags = {};\n  const routeIndex = createRouteIndex({\n    routerRoot: path.resolve(root, routerRoot),\n    ignoredRouteFiles: options.router?.ignoredRouteFiles\n  });\n  if (!nativeDisabled) {\n    globalThis.__vxrnNativeEntryConfig = {\n      routerRoot,\n      ignoredRouteFiles: options.router?.ignoredRouteFiles,\n      linking: options.router?.linking,\n      setupFile: options.setupFile,\n      flags,\n      app: nativeApp\n    };\n  }\n  const inspectorPlugins = (() => {\n    const devtools = options.devtools ?? true;\n    const inspector = devtools === true || devtools !== false && (devtools.inspector ?? true);\n    const editor = devtools !== true && devtools !== false ? devtools.editor : void 0;\n    return inspector ? sourceInspectorPlugin({ editor }) : [];\n  })();\n  const workerdDevPlugins = shouldEnableWorkerdDev(options.web?.deploy, root) ? import(\"./plugins/workerdDevPlugin\").then(\n    ({ createWorkerdDevPlugins }) => createWorkerdDevPlugins(options, root, routeIndex)\n  ) : [];\n  return [\n    backgroundComputationPlugin(\"web\"),\n    {\n      name: \"one:background-worker-build\",\n      config(config) {\n        const plugins = config.worker?.plugins;\n        return {\n          worker: {\n            plugins: () => [...plugins?.() ?? [], backgroundComputationPlugin(\"web\")]\n          }\n        };\n      }\n    },\n    workerdDevPlugins,\n    ...vxrnPlugins,\n    ...devAndProdPlugins,\n    ...inspectorPlugins,\n    ...nativeWebDevAndProdPlugsin,\n    ...nativeDisabled ? [] : [nativeFormPluginsCapture],\n    /**\n     * This is really the meat of one, where it handles requests:\n     */\n    createFileSystemRouterPlugin(options, routeIndex),\n    generateFileSystemRouteTypesPlugin(options, routeIndex),\n    fixDependenciesPlugin(options.patches),\n    createVirtualEntry({\n      ...options,\n      flags,\n      root: routerRoot,\n      routeIndex\n    }),\n    {\n      name: \"one-define-environment\",\n      config() {\n        return {\n          define: {\n            ...nativeAppName && {\n              \"process.env.ONE_APP_NAME\": JSON.stringify(nativeAppName),\n              \"import.meta.env.ONE_APP_NAME\": JSON.stringify(nativeAppName)\n            },\n            ...nativeAppVersion && {\n              \"process.env.ONE_APP_VERSION\": JSON.stringify(nativeAppVersion),\n              \"import.meta.env.ONE_APP_VERSION\": JSON.stringify(nativeAppVersion)\n            },\n            \"process.env.ONE_CACHE_KEY\": JSON.stringify(CACHE_KEY),\n            \"import.meta.env.ONE_CACHE_KEY\": JSON.stringify(CACHE_KEY)\n          }\n        };\n      }\n    },\n    SSRCSSPlugin({\n      entries: [virtualEntryId]\n    }),\n    // devtools (always includes refresh preamble for HMR, optionally includes UI)\n    ...(() => {\n      const devtools = options.devtools ?? true;\n      const includeUI = devtools !== false;\n      return [\n        // always include devtools plugin for refresh preamble (required for HMR)\n        createDevtoolsPlugin({ includeUI })\n      ];\n    })()\n  ];\n}\nexport {\n  one\n};\n//# sourceMappingURL=one.js.map\n"],"mappings":"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"}