vxrn 2.7.6 → 2.8.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.
Files changed (53) hide show
  1. package/dist/config/getBaseViteConfigOnly.mjs +1 -1
  2. package/dist/config/getBaseViteConfigOnly.mjs.map +1 -1
  3. package/dist/config/getBaseViteConfigOnly.native.js +1 -1
  4. package/dist/config/getBaseViteConfigOnly.native.js.map +1 -1
  5. package/dist/config/getOptimizeDeps.mjs +1 -1
  6. package/dist/config/getOptimizeDeps.mjs.map +1 -1
  7. package/dist/config/getOptimizeDeps.native.js +3 -1
  8. package/dist/config/getOptimizeDeps.native.js.map +1 -1
  9. package/dist/config/getReactNativePlugins.mjs +1 -2
  10. package/dist/config/getReactNativePlugins.mjs.map +1 -1
  11. package/dist/config/getReactNativePlugins.native.js +4 -2
  12. package/dist/config/getReactNativePlugins.native.js.map +1 -1
  13. package/dist/exports/prebuildWithoutExpo.mjs +26 -97
  14. package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
  15. package/dist/exports/prebuildWithoutExpo.native.js +47 -133
  16. package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
  17. package/dist/plugins/autoDepOptimizePlugin.mjs +5 -2
  18. package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
  19. package/dist/plugins/autoDepOptimizePlugin.native.js +10 -7
  20. package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
  21. package/dist/rn-commands/bundle/buildBundle.mjs +5 -4
  22. package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
  23. package/dist/rn-commands/bundle/buildBundle.native.js +5 -4
  24. package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
  25. package/dist/utils/createNativeDevEngine.mjs +30 -7
  26. package/dist/utils/createNativeDevEngine.mjs.map +1 -1
  27. package/dist/utils/createNativeDevEngine.native.js +64 -10
  28. package/dist/utils/createNativeDevEngine.native.js.map +1 -1
  29. package/package.json +27 -20
  30. package/src/config/getBaseViteConfigOnly.ts +1 -1
  31. package/src/config/getOptimizeDeps.ts +3 -1
  32. package/src/config/getReactNativePlugins.ts +8 -4
  33. package/src/config/ssrVendorOptimization.test.ts +115 -0
  34. package/src/exports/prebuildWithoutExpo.test.ts +62 -157
  35. package/src/exports/prebuildWithoutExpo.ts +31 -125
  36. package/src/plugins/autoDepOptimizeExternal.test.ts +101 -0
  37. package/src/plugins/autoDepOptimizePlugin.ts +12 -6
  38. package/src/plugins/rnCodegenPlugin.ts +1 -2
  39. package/src/rn-commands/bundle/buildBundle.ts +8 -7
  40. package/src/utils/createNativeDevEngine.test.ts +308 -9
  41. package/src/utils/createNativeDevEngine.ts +71 -29
  42. package/types/config/getOptimizeDeps.d.ts.map +1 -1
  43. package/types/config/getReactNativePlugins.d.ts +3 -2
  44. package/types/config/getReactNativePlugins.d.ts.map +1 -1
  45. package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
  46. package/types/plugins/autoDepOptimizePlugin.d.ts +1 -0
  47. package/types/plugins/autoDepOptimizePlugin.d.ts.map +1 -1
  48. package/types/plugins/rnCodegenPlugin.d.ts.map +1 -1
  49. package/types/rn-commands/bundle/buildBundle.d.ts +1 -1
  50. package/types/rn-commands/bundle/buildBundle.d.ts.map +1 -1
  51. package/types/utils/createNativeDevEngine.d.ts +3 -4
  52. package/types/utils/createNativeDevEngine.d.ts.map +1 -1
  53. package/src/plugins/autoDepOptimizePlugin.test.ts +0 -42
@@ -1 +1 @@
1
- {"version":3,"file":"createNativeDevEngine.js","names":[],"sources":["utils/createNativeDevEngine.js"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { basename, dirname, extname, join, relative, resolve } from \"node:path\";\nimport { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync, watch, writeFileSync } from \"node:fs\";\nimport { pathToFileURL } from \"node:url\";\nimport micromatch from \"micromatch\";\nimport { loadEnv, normalizePath } from \"vite\";\nimport { shouldStripFlow, transformHermesAsync } from \"@vxrn/compiler\";\nimport { resolvePath } from \"@vxrn/resolve\";\nimport { withExpoPublicEnvAliases } from \"@vxrn/utils/publicEnv\";\nimport { DEFAULT_ASSET_EXTS } from \"../constants/defaults\";\nimport { getNativePrelude } from \"../runtime/native-prelude\";\nimport { rnCodegenPlugin } from \"../plugins/rnCodegenPlugin\";\nimport { dedupe } from \"../config/getBaseViteConfigOnly\";\n\nconst HERMES_CLASS_TRANSFORMS = [\n\t\"transform-classes\",\n\t\"transform-parameters\",\n\t\"transform-block-scoping\",\n\t\"transform-class-properties\",\n\t\"transform-class-static-block\",\n\t\"transform-private-methods\",\n\t\"transform-private-property-in-object\"\n];\nconst HERMES_ASYNC_TRANSFORMS = [\"transform-async-to-generator\"];\nfunction getHermesSWCIncludes(dev) {\n\treturn [...HERMES_CLASS_TRANSFORMS, ...HERMES_ASYNC_TRANSFORMS];\n}\nfunction getResolveExtensions(platform) {\n\tconst platformExts = platform === \"ios\" ? [\n\t\t\".ios.tsx\",\n\t\t\".ios.ts\",\n\t\t\".ios.jsx\",\n\t\t\".ios.js\"\n\t] : [\n\t\t\".android.tsx\",\n\t\t\".android.ts\",\n\t\t\".android.jsx\",\n\t\t\".android.js\"\n\t];\n\tconst nativeExts = [\n\t\t\".native.tsx\",\n\t\t\".native.ts\",\n\t\t\".native.jsx\",\n\t\t\".native.js\"\n\t];\n\tconst defaultExts = [\n\t\t\".tsx\",\n\t\t\".ts\",\n\t\t\".jsx\",\n\t\t\".js\",\n\t\t\".mjs\",\n\t\t\".cjs\",\n\t\t\".json\"\n\t];\n\treturn [\n\t\t...platformExts,\n\t\t...nativeExts,\n\t\t...defaultExts\n\t];\n}\nfunction getNativeResolveConfig(platform) {\n\treturn {\n\t\textensions: getResolveExtensions(platform),\n\t\tconditionNames: [\"react-native\", \"browser\"],\n\t\tmainFields: [\n\t\t\t\"react-native\",\n\t\t\t\"browser\",\n\t\t\t\"main\",\n\t\t\t\"module\"\n\t\t],\n\t\taliasFields: [[\"react-native\"], [\"browser\"]]\n\t};\n}\nfunction getNativeTransformConfig(platform, dev, root) {\n\tconst entryConfig = globalThis.__vxrnNativeEntryConfig || {};\n\tconst setupFileDefines = (() => {\n\t\tconst sf = entryConfig.setupFile;\n\t\tif (!sf) return {};\n\t\tconst files = typeof sf === \"string\" ? {\n\t\t\tclient: sf,\n\t\t\tserver: sf,\n\t\t\tios: sf,\n\t\t\tandroid: sf\n\t\t} : \"native\" in sf ? {\n\t\t\tclient: sf.client,\n\t\t\tserver: sf.server,\n\t\t\tios: sf.native,\n\t\t\tandroid: sf.native\n\t\t} : sf;\n\t\treturn {\n\t\t\t...files.client && { \"process.env.ONE_SETUP_FILE_CLIENT\": JSON.stringify(files.client) },\n\t\t\t...files.server && { \"process.env.ONE_SETUP_FILE_SERVER\": JSON.stringify(files.server) },\n\t\t\t...files.ios && { \"process.env.ONE_SETUP_FILE_IOS\": JSON.stringify(files.ios) },\n\t\t\t...files.android && { \"process.env.ONE_SETUP_FILE_ANDROID\": JSON.stringify(files.android) }\n\t\t};\n\t})();\n\tconst userDefines = {};\n\tfor (const [key, value] of Object.entries(globalThis.__vxrnNativeUserDefine || {})) userDefines[key] = typeof value === \"string\" ? value : JSON.stringify(value);\n\tconst mode = dev ? \"development\" : \"production\";\n\tconst publicEnv = withExpoPublicEnvAliases(loadEnv(mode, root, [\n\t\t\"VITE_\",\n\t\t\"ONE_PUBLIC_\",\n\t\t\"EXPO_PUBLIC_\"\n\t]));\n\tconst envDefines = {};\n\tfor (const [key, value] of Object.entries(publicEnv)) {\n\t\tenvDefines[`import.meta.env.${key}`] = JSON.stringify(value);\n\t\tenvDefines[`process.env.${key}`] = JSON.stringify(value);\n\t}\n\tconst envObject = {\n\t\t...publicEnv,\n\t\tMODE: mode,\n\t\tDEV: dev,\n\t\tPROD: !dev,\n\t\tSSR: false,\n\t\tVITE_ENVIRONMENT: platform,\n\t\tVITE_NATIVE: \"1\",\n\t\tONE_PLATFORM: platform,\n\t\tEXPO_OS: platform,\n\t\tTAMAGUI_TARGET: \"native\",\n\t\tTAMAGUI_ENVIRONMENT: platform\n\t};\n\treturn {\n\t\tjsx: { runtime: \"classic\" },\n\t\tdefine: {\n\t\t\t...userDefines,\n\t\t\t...envDefines,\n\t\t\t\"process.env.NODE_ENV\": JSON.stringify(mode),\n\t\t\t\"process.env.VXRN_REACT_19\": \"false\",\n\t\t\t\"process.env.VITE_ENVIRONMENT\": JSON.stringify(platform),\n\t\t\t\"process.env.VITE_NATIVE\": \"\\\"1\\\"\",\n\t\t\t\"process.env.ONE_PLATFORM\": JSON.stringify(platform),\n\t\t\t\"process.env.EXPO_OS\": JSON.stringify(platform),\n\t\t\t\"process.env.TAMAGUI_TARGET\": \"\\\"native\\\"\",\n\t\t\t\"process.env.TAMAGUI_ENVIRONMENT\": JSON.stringify(platform),\n\t\t\t__DEV__: dev ? \"true\" : \"false\",\n\t\t\t\"import.meta.env\": JSON.stringify(envObject),\n\t\t\t\"import.meta.env.MODE\": JSON.stringify(mode),\n\t\t\t\"import.meta.env.DEV\": dev ? \"true\" : \"false\",\n\t\t\t\"import.meta.env.PROD\": dev ? \"false\" : \"true\",\n\t\t\t\"import.meta.env.SSR\": \"false\",\n\t\t\t\"import.meta.env.VITE_ENVIRONMENT\": JSON.stringify(platform),\n\t\t\t\"import.meta.env.VITE_NATIVE\": \"\\\"1\\\"\",\n\t\t\t\"import.meta.env.ONE_PLATFORM\": JSON.stringify(platform),\n\t\t\t\"import.meta.env.EXPO_OS\": JSON.stringify(platform),\n\t\t\t\"import.meta.env.TAMAGUI_TARGET\": \"\\\"native\\\"\",\n\t\t\t\"import.meta.env.TAMAGUI_ENVIRONMENT\": JSON.stringify(platform),\n\t\t\t...setupFileDefines\n\t\t},\n\t\tinject: { React: \"react\" }\n\t};\n}\nfunction getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest, onAsset, sourceMaps = false, userPlugins = []) {\n\tconst context = {\n\t\troot,\n\t\tplatform,\n\t\tdev\n\t};\n\treturn [\n\t\t...globalThis.__vxrnAddNativePlugins?.(platform) || [],\n\t\tserverFileExclusionPlugin(),\n\t\tenvironmentGuardPlugin(),\n\t\tmissingDynamicImportPlugin(),\n\t\thmrClientNoopPlugin(),\n\t\tnativeIdentityAliasPlugin(platform),\n\t\tnativeAssetRegistryPlugin(root),\n\t\treactNativeDedupePlugin(root),\n\t\tnativePackageDedupePlugin(root),\n\t\tcssStubPlugin(),\n\t\tviteImportGlobPlugin({ root }),\n\t\tvxrnCompilerPlugin(platform, dev, root, sourceMaps),\n\t\trnCodegenPlugin({ projectRoot: root }),\n\t\tflowStripPlugin(),\n\t\tnativeAnimatedGuardPlugin(),\n\t\tassetPlugin({\n\t\t\troot,\n\t\t\tplatform,\n\t\t\tassetsDest,\n\t\t\tonAsset\n\t\t}),\n\t\thermesCompatSWCPlugin(dev, sourceMaps),\n\t\thermesLoopsPlugin(sourceMaps),\n\t\t...userPlugins,\n\t\tnativeExportsPrecedencePlugin(root, platform),\n\t\tnativeDeclarationAliasPlugin(root, platform)\n\t].map((plugin) => plugin.api?.vxrnNative ? plugin.api.vxrnNative(context) : plugin);\n}\nfunction getNativeOutputOptions(prelude, sourcemap, minify) {\n\treturn {\n\t\tformat: \"esm\",\n\t\tsourcemap,\n\t\tsourcemapPathTransform: (relativeSourcePath, sourcemapPath) => normalizePath(resolve(dirname(sourcemapPath), relativeSourcePath)),\n\t\tintro: prelude,\n\t\tcodeSplitting: false,\n\t\tstrictExecutionOrder: true,\n\t\tminify: minify || \"dce-only\"\n\t};\n}\nfunction normalizeNativeCommonJSInterop(code) {\n\treturn code.replace(/(\\b__toESM(?:\\$\\d+)?\\(\\s*(?:require[\\w$]*\\(\\)|__rolldown_runtime__\\.loadExports\\(\"(?:\\\\.|[^\"\\\\])*\"\\))\\s*),\\s*1(\\s*\\))/g, \"$1$2\");\n}\nfunction blankPreservingLines(match) {\n\treturn \"\\n\".repeat(match.match(/\\n/g)?.length ?? 0);\n}\nfunction countLines(code) {\n\treturn (code.match(/\\n/g)?.length ?? 0) + 1;\n}\nfunction assertBundleLinesPreserved(before, after, stage) {\n\tconst beforeLines = countLines(before);\n\tconst afterLines = countLines(after);\n\tif (beforeLines !== afterLines) throw new Error(`[vxrn] native bundle post-processing (${stage}) changed the line count (${beforeLines} -> ${afterLines}), which invalidates the source map. Every pass after Rolldown emits the map must preserve lines.`);\n}\nfunction postProcessNativeBundle(code) {\n\tcode = normalizeNativeCommonJSInterop(code);\n\tcode = code.replace(/\\btypeof\\s+import\\.meta\\b/g, \"\\\"object\\\"\");\n\tcode = code.replace(/^[^\\S\\n]*export[^\\S\\n]*\\{[^}]*\\}[^\\S\\n]*;?[^\\S\\n]*$/gm, blankPreservingLines);\n\tcode = code.replace(/^([^\\S\\n]*)export[^\\S\\n]+default[^\\S\\n]+([^;\\n]+);?[^\\S\\n]*$/gm, \"$1$2;\");\n\tcode = code.replace(/^if \\(import\\.meta\\.hot\\).*$/gm, \"\");\n\t{\n\t\tconst idx = code.indexOf(\"NativeAnimatedModule_default ?? NativeAnimatedTurboModule_default;\");\n\t\tif (idx !== -1) {\n\t\t\tconst beforeMarker = code.lastIndexOf(\"NativeAnimatedModule = \", idx);\n\t\t\tif (beforeMarker !== -1) {\n\t\t\t\tconst lineStart = code.lastIndexOf(\"\\n\", beforeMarker);\n\t\t\t\tconst snippet = code.slice(lineStart + 1, beforeMarker + 50);\n\t\t\t\tif (snippet.includes(\"(function()\") || snippet.includes(\"new Proxy\")) {\n\t\t\t\t\tconst afterMarker = code.indexOf(\"})();\", idx);\n\t\t\t\t\tif (afterMarker !== -1) {\n\t\t\t\t\t\tconst end = afterMarker + 5;\n\t\t\t\t\t\tconst removed = code.slice(beforeMarker, end);\n\t\t\t\t\t\tcode = code.slice(0, beforeMarker) + \"NativeAnimatedModule = NativeAnimatedModule_default ?? NativeAnimatedTurboModule_default;\" + blankPreservingLines(removed) + code.slice(end);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn code;\n}\nfunction wrapNativeBundleModuleScope(code) {\n\tconst idx = code.indexOf(\"//#region \\\\0rolldown/runtime.js\");\n\tif (idx === -1) return code;\n\treturn code.slice(0, idx) + \";(function() {\" + code.slice(idx) + \"\\n})();\\n\";\n}\nasync function downlevelClassFieldsInBundle(code) {\n\tconst startMarker = \"//#region \\\\0rolldown/runtime.js\";\n\tconst endMarker = \"//#endregion\";\n\tconst startIdx = code.indexOf(startMarker);\n\tif (startIdx === -1) return code;\n\tconst endIdx = code.indexOf(endMarker, startIdx);\n\tif (endIdx === -1) return code;\n\tconst runtimeEnd = endIdx + 12;\n\tconst runtimeSection = code.slice(startIdx, runtimeEnd);\n\tconst originalNewlines = runtimeSection.match(/\\n/g)?.length ?? 0;\n\tconst { transformSync } = await import(\"oxc-transform\");\n\tconst result = transformSync(\"rolldown-runtime.js\", runtimeSection, {\n\t\ttarget: \"es2020\",\n\t\tassumptions: { setPublicClassFields: true }\n\t});\n\tif (result.errors?.length) throw new Error(result.errors.map((e) => e.message).join(\"\\n\"));\n\tconst transformedCode = result.code.trimEnd();\n\tconst transformed = transformedCode.includes(startMarker) ? transformedCode : `${startMarker}\n${transformedCode}`;\n\tconst transformedNewlines = transformed.match(/\\n/g)?.length ?? 0;\n\tif (transformedNewlines > originalNewlines) throw new Error(\"[vxrn] Hermes runtime transform added lines and would invalidate the production source map\");\n\tconst linePreservingRuntime = transformed + \"\\n\".repeat(originalNewlines - transformedNewlines);\n\treturn code.slice(0, startIdx) + linePreservingRuntime + code.slice(runtimeEnd);\n}\nfunction nativeBundlePostProcessPlugin() {\n\treturn {\n\t\tname: \"vxrn:native-post-process\",\n\t\tasync renderChunk(code) {\n\t\t\tconst processed = await downlevelClassFieldsInBundle(postProcessNativeBundle(code));\n\t\t\tassertBundleLinesPreserved(code, processed, \"production\");\n\t\t\treturn {\n\t\t\t\tcode: processed,\n\t\t\t\tmap: null\n\t\t\t};\n\t\t}\n\t};\n}\nasync function createNativeDevEngine(options) {\n\tconst { root, port, host = \"localhost\", platform, serverUrl, plugins: userPlugins = [], onHmrUpdate } = options;\n\tconst { dev, viteImportGlobPlugin } = await import(\"rolldown/experimental\");\n\tconst hmrRuntimeSource = getHmrRuntimeSource();\n\tconst prelude = getNativePrelude({\n\t\tdev: true,\n\t\tplatform,\n\t\tserverUrl: serverUrl || `http://${host}:${port}`\n\t});\n\tconst assetRegistry = createNativeDevAssetRegistry();\n\tlet currentBundle = null;\n\tlet firstBuildError = null;\n\tlet bundleResolve = null;\n\tlet bundleReject = null;\n\tlet bundlePromise = null;\n\tconst virtualEntry = nativeVirtualEntryPlugin(root, {\n\t\tdev: true,\n\t\tplatform,\n\t\tdynamicRoutes: true\n\t});\n\tlet engineWork = Promise.resolve();\n\tconst queueEngineWork = (work) => {\n\t\tconst result = engineWork.then(work, work);\n\t\tengineWork = result.catch(() => {});\n\t\treturn result;\n\t};\n\tconst inputOptions = {\n\t\tinput: VIRTUAL_NATIVE_ENTRY,\n\t\tcwd: root,\n\t\tplatform: \"neutral\",\n\t\tresolve: getNativeResolveConfig(platform),\n\t\ttransform: getNativeTransformConfig(platform, true, root),\n\t\texperimental: {\n\t\t\tdevMode: {\n\t\t\t\timplement: hmrRuntimeSource,\n\t\t\t\thost,\n\t\t\t\tport\n\t\t\t},\n\t\t\tincrementalBuild: true,\n\t\t\tlazyBarrel: true\n\t\t},\n\t\ttreeshake: false,\n\t\tshimMissingExports: true,\n\t\tmoduleTypes: { \".js\": \"jsx\" },\n\t\tplugins: [virtualEntry.plugin, ...getNativePlugins(root, platform, viteImportGlobPlugin, true, void 0, assetRegistry.register, true, userPlugins)]\n\t};\n\tconst outputOptions = {\n\t\t...getNativeOutputOptions(prelude, true, false),\n\t\toutro: `\ntry {\n var __WS = (init_WebSocket(), __toCommonJS(WebSocket_exports)).default;\n var __devServer = (init_getDevServer(), __toCommonJS(getDevServer_exports)).default();\n var __hmrUrl = __devServer.url.replace(/^http/, 'ws') + 'hot?platform=${platform}&clientId=' + encodeURIComponent(__rolldown_runtime__.clientId);\n __rolldown_runtime__.setup(new __WS(__hmrUrl));\n} catch(e) {\n // a swallowed failure here leaves the app permanently without Fast Refresh and\n // nothing on screen or in the terminal says so.\n console.error('[vxrn] HMR client failed to start:', (e && e.message) || e);\n}\n`\n\t};\n\tlet outputProcessed = Promise.resolve();\n\tlet engine;\n\tlet routeWatcher;\n\tconst rebuildIfRouteGraphChanged = () => queueEngineWork(async () => {\n\t\tconst { files: knownRoutes, scanFiles, updateFiles } = virtualEntry.routes;\n\t\tconst currentRoutes = scanFiles();\n\t\tif (!(currentRoutes.size !== knownRoutes.size || [...currentRoutes].some((route) => !knownRoutes.has(route)))) return false;\n\t\tupdateFiles(currentRoutes);\n\t\treturn true;\n\t});\n\tengine = await dev(inputOptions, outputOptions, {\n\t\tonOutput: async (result) => {\n\t\t\tlet finishOutput = () => {};\n\t\t\toutputProcessed = new Promise((resolve2) => {\n\t\t\t\tfinishOutput = resolve2;\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tawait handleOutput(result);\n\t\t\t} finally {\n\t\t\t\tfinishOutput();\n\t\t\t}\n\t\t},\n\t\tonHmrUpdates: async (result) => {\n\t\t\tawait engine?.ensureCurrentBuildFinish();\n\t\t\tif (result instanceof Error) {\n\t\t\t\tconsole.error(\"[vxrn] HMR error:\", result.message);\n\t\t\t\tonHmrUpdate?.({ type: \"hmr:error\" });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (await rebuildIfRouteGraphChanged()) return;\n\t\t\tfor (const { clientId, update } of result.updates) if (update.type === \"Patch\" && update.code) {\n\t\t\t\tawait engine.notifyPayloadDelivered(update.filename);\n\t\t\t\tonHmrUpdate?.({\n\t\t\t\t\ttype: \"hmr:update\",\n\t\t\t\t\tclientId,\n\t\t\t\t\tcode: normalizeNativeCommonJSInterop(update.code),\n\t\t\t\t\tchangedIds: update.changedIds,\n\t\t\t\t\tseq: update.seq\n\t\t\t\t});\n\t\t\t} else if (update.type === \"FullReload\") onHmrUpdate?.({\n\t\t\t\ttype: \"hmr:reload\",\n\t\t\t\tclientId\n\t\t\t});\n\t\t},\n\t\trebuildStrategy: \"never\",\n\t\twatch: { exclude: [\"**/node_modules/.test/**\", \"**/.git/**\"] }\n\t});\n\tasync function handleOutput(result) {\n\t\tif (result instanceof Error) {\n\t\t\tconsole.error(\"[vxrn] native bundle error:\", result.message);\n\t\t\tif (/panic/i.test(result.message)) console.error(\"[vxrn] rolldown itself panicked. Fast Refresh will full-reload until you restart the dev server.\");\n\t\t\tif (!currentBundle) {\n\t\t\t\tfirstBuildError ||= result;\n\t\t\t\tif (bundleReject) {\n\t\t\t\t\tconst reject = bundleReject;\n\t\t\t\t\tbundleResolve = null;\n\t\t\t\t\tbundleReject = null;\n\t\t\t\t\tbundlePromise = null;\n\t\t\t\t\treject(firstBuildError);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst chunk = result.output.find((o) => o.type === \"chunk\" && o.isEntry);\n\t\tif (chunk && \"code\" in chunk) {\n\t\t\tfirstBuildError = null;\n\t\t\tlet code = postProcessNativeBundle(chunk.code);\n\t\t\tcode = await downlevelClassFieldsInBundle(code);\n\t\t\tassertBundleLinesPreserved(chunk.code, code, \"dev\");\n\t\t\tcode = wrapNativeBundleModuleScope(code);\n\t\t\tif (!chunk.map) throw new Error(\"[vxrn] rolldown produced no source map for the dev bundle, so /symbolicate cannot resolve a frame\");\n\t\t\tcurrentBundle = {\n\t\t\t\tcode,\n\t\t\t\tmap: chunk.map.toString()\n\t\t\t};\n\t\t\tconsole.info(`[vxrn] native bundle ready (${Math.round(code.length / 1024)}KB)`);\n\t\t\tif (bundleResolve) {\n\t\t\t\tbundleResolve(currentBundle);\n\t\t\t\tbundleResolve = null;\n\t\t\t\tbundleReject = null;\n\t\t\t\tbundlePromise = null;\n\t\t\t}\n\t\t}\n\t}\n\tawait engine.run();\n\tlet routeWatchTarget = virtualEntry.routes.routeRoot;\n\twhile (!statSync(routeWatchTarget, { throwIfNoEntry: false })?.isDirectory()) {\n\t\tconst parent = dirname(routeWatchTarget);\n\t\tif (parent === routeWatchTarget) break;\n\t\trouteWatchTarget = parent;\n\t}\n\tconst normalizedRouteRoot = normalizePath(virtualEntry.routes.routeRoot);\n\trouteWatcher = watch(routeWatchTarget, { recursive: true }, (_eventType, file) => {\n\t\tif (file === null) return;\n\t\tconst changed = normalizePath(resolve(routeWatchTarget, file.toString()));\n\t\tif (changed !== normalizedRouteRoot && !changed.startsWith(`${normalizedRouteRoot}/`)) return;\n\t\trebuildIfRouteGraphChanged().catch((error) => {\n\t\t\tconsole.error(`[vxrn] rebuilding the native route map failed`, error);\n\t\t});\n\t});\n\trouteWatcher.on(\"error\", (error) => {\n\t\tconsole.error(`[vxrn] watching the native route map failed`, error);\n\t});\n\tawait rebuildIfRouteGraphChanged();\n\tconst getBundle = async () => {\n\t\tawait queueEngineWork(async () => {\n\t\t\tawait engine.ensureLatestBuildOutput();\n\t\t\tawait outputProcessed;\n\t\t});\n\t\tif (currentBundle) return currentBundle;\n\t\tif (firstBuildError) throw firstBuildError;\n\t\tif (!bundlePromise) {\n\t\t\tlet timeoutId;\n\t\t\tbundlePromise = new Promise((resolve2, reject) => {\n\t\t\t\tbundleResolve = (value) => {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\tresolve2(value);\n\t\t\t\t};\n\t\t\t\tbundleReject = (error) => {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\treject(error);\n\t\t\t\t};\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tbundleResolve = null;\n\t\t\t\t\tbundleReject = null;\n\t\t\t\t\tbundlePromise = null;\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"[vxrn] bundle build timed out after 120s\"));\n\t\t\t\t}, 12e4);\n\t\t\t});\n\t\t}\n\t\treturn bundlePromise;\n\t};\n\treturn {\n\t\tengine,\n\t\tgetBundle,\n\t\tasync getSourceMap() {\n\t\t\tawait outputProcessed;\n\t\t\tif (currentBundle) return currentBundle.map;\n\t\t\treturn (await getBundle()).map;\n\t\t},\n\t\tgetAsset(pathname, hash) {\n\t\t\treturn assetRegistry.resolve(pathname, hash);\n\t\t},\n\t\tasync close() {\n\t\t\trouteWatcher?.close();\n\t\t\tawait engine.close();\n\t\t}\n\t};\n}\nasync function buildNativeBundle(options) {\n\tconst { root, platform, dev = false, serverUrl, entryFile, assetsDest, plugins: userPlugins = [], sourcemap = false, minify = !dev } = options;\n\tconst { build } = await import(\"rolldown\");\n\tconst { viteImportGlobPlugin } = await import(\"rolldown/experimental\");\n\tconst prelude = getNativePrelude({\n\t\tdev,\n\t\tplatform,\n\t\tserverUrl\n\t});\n\tconst chunk = (await build({\n\t\tinput: entryFile ? normalizePath(resolve(root, entryFile)) : VIRTUAL_NATIVE_ENTRY,\n\t\tcwd: root,\n\t\tplatform: \"neutral\",\n\t\tresolve: getNativeResolveConfig(platform),\n\t\ttransform: getNativeTransformConfig(platform, dev, root),\n\t\ttreeshake: !dev,\n\t\texperimental: { lazyBarrel: false },\n\t\tshimMissingExports: true,\n\t\tmoduleTypes: { \".js\": \"jsx\" },\n\t\tplugins: [\n\t\t\t...entryFile ? [] : [nativeVirtualEntryPlugin(root, {\n\t\t\t\tdev,\n\t\t\t\tplatform\n\t\t\t}).plugin],\n\t\t\t...getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest, void 0, sourcemap, userPlugins),\n\t\t\tnativeBundlePostProcessPlugin()\n\t\t],\n\t\toutput: {\n\t\t\t...getNativeOutputOptions(prelude, sourcemap, minify),\n\t\t\tformat: \"iife\"\n\t\t}\n\t})).output.find((o) => o.type === \"chunk\" && o.isEntry);\n\tif (!chunk || !(\"code\" in chunk)) throw new Error(\"[vxrn] production build produced no output\");\n\tif (sourcemap && !chunk.map) throw new Error(\"[vxrn] a source map was requested but rolldown produced none for the production bundle\");\n\treturn {\n\t\tcode: chunk.code,\n\t\tmap: sourcemap ? chunk.map?.toString() : void 0\n\t};\n}\nconst VIRTUAL_NATIVE_ENTRY = \"virtual:native-entry\";\nfunction nativeVirtualEntryPlugin(root, opts) {\n\tconst isDev = opts?.dev !== false;\n\tconst useDynamicRouteRegistry = opts.dynamicRoutes === true;\n\tconst resolvedId = normalizePath(resolve(root, \"__virtual-native-entry.tsx\"));\n\tconst entryConfig = globalThis.__vxrnNativeEntryConfig || {};\n\tconst routerRoot = entryConfig.routerRoot || \"app\";\n\tconst flags = entryConfig.flags || {};\n\tconst linking = entryConfig.linking;\n\tconst setupFileImport = (() => {\n\t\tconst sf = entryConfig.setupFile;\n\t\tif (!sf) return \"\";\n\t\tconst file = typeof sf === \"string\" ? sf : \"native\" in sf ? sf.native : sf.ios;\n\t\tif (!file) return \"\";\n\t\tconst resolved = pathToFileURL(resolve(root, file)).href;\n\t\treturn `import ${JSON.stringify(resolved)};`;\n\t})();\n\tconst routeGlobs = [\n\t\t`./${routerRoot}/**/*.tsx`,\n\t\t`./${routerRoot}/**/*.ts`,\n\t\t`!./${routerRoot}/**/*+api.*`,\n\t\t`!./${routerRoot}/**/*.test.*`,\n\t\t`!./${routerRoot}/**/*.d.ts`,\n\t\t`!./${routerRoot}/**/*.server.*`,\n\t\t`!./${routerRoot}/**/_middleware.*`,\n\t\t`!./${routerRoot}/**/*.web.*`,\n\t\t...(entryConfig.ignoredRouteFiles || []).map((pattern) => `!./${routerRoot}/${pattern}`)\n\t];\n\tconst refreshSetup = isDev ? `\n// react-refresh/runtime MUST initialize before React loads\nimport RefreshRuntime from 'react-refresh/runtime';\nRefreshRuntime.injectIntoGlobalHook(globalThis);\nglobalThis.__ReactRefresh = RefreshRuntime;\nglobalThis.$RefreshReg$ = function(type, id) {\n RefreshRuntime.register(type, id);\n};\nglobalThis.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;\n` : \"\";\n\tconst entryCode = () => `\n${refreshSetup}\nimport * as ReactNativeInitializeCore from 'react-native/Libraries/Core/InitializeCore';\nimport NativeWebSocket from 'react-native/Libraries/WebSocket/WebSocket';\nimport DevSettings from 'react-native/Libraries/Utilities/DevSettings';\n${setupFileImport}\n${routeImports}\nimport { createApp } from 'one';\n\nvoid ReactNativeInitializeCore;\nglobalThis.WebSocket = NativeWebSocket;\nglobalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__ = function(reason) {\n DevSettings.reload(reason);\n};\n\n// React Native reloads a dev bundle in the existing JS runtime. Advance One's\n// route-cache version so a full reload cannot reuse the previous context.\nglobalThis.__vxrnVersion = (globalThis.__vxrnVersion || 0) + 1;\n\ncreateApp({\n routes: routes,\n routerRoot: ${JSON.stringify(routerRoot)},\n flags: ${JSON.stringify(flags)},\n linking: ${JSON.stringify(linking)},\n});\n\n${routeHmr}\n`;\n\tconst routeRoot = resolve(root, routerRoot);\n\tconst stripDot = (pattern) => pattern.replace(/^\\.\\//, \"\");\n\tconst includeGlobs = routeGlobs.filter((p) => !p.startsWith(\"!\")).map(stripDot);\n\tconst excludeGlobs = routeGlobs.filter((p) => p.startsWith(\"!\")).map((p) => stripDot(p.slice(1)));\n\tconst isRouteFile = (file) => {\n\t\tconst relativeToRoot = normalizePath(relative(root, file));\n\t\treturn micromatch.isMatch(relativeToRoot, includeGlobs) && !micromatch.isMatch(relativeToRoot, excludeGlobs);\n\t};\n\tconst scanFiles = () => {\n\t\tconst files = /* @__PURE__ */ new Set();\n\t\tconst walkRouteRoot = (dir) => {\n\t\t\tfor (const entry of readdirSync(dir, { withFileTypes: true })) {\n\t\t\t\tconst child = resolve(dir, entry.name);\n\t\t\t\tif (entry.isDirectory()) walkRouteRoot(child);\n\t\t\t\telse if (isRouteFile(child)) files.add(normalizePath(child));\n\t\t\t}\n\t\t};\n\t\tif (statSync(routeRoot, { throwIfNoEntry: false })?.isDirectory()) walkRouteRoot(routeRoot);\n\t\treturn files;\n\t};\n\tconst registrySpecifier = `./node_modules/.vxrn/native-routes-${opts.platform}.mjs`;\n\tconst registryPath = resolve(root, registrySpecifier);\n\tconst routes = {\n\t\trouteRoot,\n\t\tfiles: /* @__PURE__ */ new Set(),\n\t\tisRouteFile,\n\t\tscanFiles,\n\t\tupdateFiles(files) {\n\t\t\troutes.files = files;\n\t\t\tif (!useDynamicRouteRegistry) return;\n\t\t\tmkdirSync(dirname(registryPath), { recursive: true });\n\t\t\tconst registryDir = realpathSync(dirname(registryPath));\n\t\t\tconst source = `export const routes = {\n${[...files].sort().map((file) => {\n\t\t\t\tconst routeKey = `/${normalizePath(relative(root, file))}`;\n\t\t\t\tlet importPath = normalizePath(relative(registryDir, file));\n\t\t\t\tif (!importPath.startsWith(\".\")) importPath = `./${importPath}`;\n\t\t\t\treturn ` ${JSON.stringify(routeKey)}: () => import(${JSON.stringify(importPath)})`;\n\t\t\t}).join(\",\\n\")}\n}\n`;\n\t\t\tif (!existsSync(registryPath) || readFileSync(registryPath, \"utf8\") !== source) writeFileSync(registryPath, source);\n\t\t}\n\t};\n\troutes.updateFiles(routes.scanFiles());\n\tconst routeImports = useDynamicRouteRegistry ? `import { routes } from ${JSON.stringify(registrySpecifier)};` : `var _routes = import.meta.glob(${JSON.stringify(routeGlobs)}, { exhaustive: true });\n// fix route keys: One expects '/${routerRoot}/...' prefix but import.meta.glob returns './${routerRoot}/...'\nvar routes = {};\nObject.keys(_routes).forEach(function(key) {\n var normalizedKey = key.replace(/^\\\\.\\\\//, '');\n routes['/' + normalizedKey] = _routes[key];\n});`;\n\tconst routeHmr = useDynamicRouteRegistry ? `if (import.meta.hot) {\n import.meta.hot.accept(${JSON.stringify(registrySpecifier)}, function(next) {\n if (globalThis.__VXRN_UPDATE_NATIVE_ROUTES__) {\n globalThis.__VXRN_UPDATE_NATIVE_ROUTES__(next.routes);\n }\n });\n}` : \"\";\n\treturn {\n\t\troutes,\n\t\tplugin: {\n\t\t\tname: \"vxrn:native-virtual-entry\",\n\t\t\tresolveId(id) {\n\t\t\t\tif (id === VIRTUAL_NATIVE_ENTRY) return resolvedId;\n\t\t\t},\n\t\t\tload(id) {\n\t\t\t\tif (id !== resolvedId) return;\n\t\t\t\treturn entryCode();\n\t\t\t}\n\t\t}\n\t};\n}\nfunction nativeAnimatedGuardPlugin() {\n\treturn {\n\t\tname: \"vxrn:native-animated-guard\",\n\t\ttransform(code, id) {\n\t\t\tif (!id.includes(\"animated/NativeAnimatedHelper\")) return;\n\t\t\tconst target = \"const method = nullthrows(NativeAnimatedModule)[methodName];\";\n\t\t\tif (!code.includes(target)) return;\n\t\t\treturn {\n\t\t\t\tcode: code.replace(target, `${target} if (typeof method !== 'function') return;`),\n\t\t\t\tmap: {\n\t\t\t\t\tversion: 3,\n\t\t\t\t\tsources: [id],\n\t\t\t\t\tsourcesContent: [code],\n\t\t\t\t\tnames: [],\n\t\t\t\t\tmappings: code.split(\"\\n\").map((_, index) => index === 0 ? \"AAAA\" : \"AACA\").join(\";\")\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t};\n}\nfunction serverFileExclusionPlugin() {\n\treturn {\n\t\tname: \"vxrn:server-file-exclusion\",\n\t\tload(id) {\n\t\t\tif (/\\.server\\.\\w+$/.test(id)) return {\n\t\t\t\tcode: \"export default undefined;\",\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t\tif (/[\\\\/]_middleware\\.\\w+$/.test(id)) return {\n\t\t\t\tcode: \"export default undefined;\",\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t}\n\t};\n}\nfunction missingDynamicImportPlugin() {\n\tconst PREFIX = \"\\0vxrn-missing-module:\";\n\treturn {\n\t\tname: \"vxrn:missing-dynamic-import\",\n\t\tasync resolveId(source, importer, options) {\n\t\t\tif (options.kind !== \"dynamic-import\") return;\n\t\t\tif (source.startsWith(\".\") || source.startsWith(\"/\") || source.includes(\":\")) return;\n\t\t\tif (source.startsWith(\"\\0\")) return;\n\t\t\tconst resolved = await this.resolve(source, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t\tif (resolved) return resolved;\n\t\t\treturn {\n\t\t\t\tid: `${PREFIX}${source}`,\n\t\t\t\texternal: false\n\t\t\t};\n\t\t},\n\t\tload(id) {\n\t\t\tif (!id.startsWith(PREFIX)) return;\n\t\t\treturn {\n\t\t\t\tcode: `throw new Error(${JSON.stringify(`Cannot find module '${id.slice(21)}'`)});`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t}\n\t};\n}\nfunction environmentGuardPlugin() {\n\tconst THROWING = [\n\t\t\"server-only\",\n\t\t\"client-only\",\n\t\t\"web-only\"\n\t];\n\tconst NOOP = [\"native-only\"];\n\treturn {\n\t\tname: \"vxrn:environment-guard\",\n\t\tresolveId(source) {\n\t\t\tif (THROWING.includes(source)) return {\n\t\t\t\tid: `\\0env-guard-throw:${source}`,\n\t\t\t\texternal: false\n\t\t\t};\n\t\t\tif (NOOP.includes(source)) return {\n\t\t\t\tid: `\\0env-guard-noop:${source}`,\n\t\t\t\texternal: false\n\t\t\t};\n\t\t},\n\t\tload(id) {\n\t\t\tif (id.startsWith(\"\\0env-guard-throw:\")) return {\n\t\t\t\tcode: `throw new Error(\"Cannot import '${id.slice(17)}' in a native bundle.\");`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t\tif (id.startsWith(\"\\0env-guard-noop:\")) return {\n\t\t\t\tcode: \"\",\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t}\n\t};\n}\nfunction hmrClientNoopPlugin() {\n\tconst RN_HMR_CLIENT_RE = /(^|[\\\\/])Utilities[\\\\/]HMRClient(\\.[cm]?[jt]sx?)?$/;\n\treturn {\n\t\tname: \"vxrn:hmr-client-noop\",\n\t\tresolveId(source, importer) {\n\t\t\tif ((source.startsWith(\"react-native/\") || importer != null && /(^|[\\\\/])react-native[\\\\/]/.test(importer)) && RN_HMR_CLIENT_RE.test(source)) return {\n\t\t\t\tid: \"\\0vxrn-hmr-client-noop\",\n\t\t\t\texternal: false\n\t\t\t};\n\t\t},\n\t\tload(id) {\n\t\t\tif (id === \"\\0vxrn-hmr-client-noop\") return {\n\t\t\t\tcode: `const HMRClient = { setup() {}, enable() {}, disable() {}, registerBundle() {}, log() {}, isEnabled() { return false } }\nexport default HMRClient`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t}\n\t};\n}\nfunction nativeIdentityAliasPlugin(platform) {\n\tconst packages = /* @__PURE__ */ new Map();\n\tlet resolver;\n\tconst findPackage = (directory) => {\n\t\tif (packages.has(directory)) return packages.get(directory);\n\t\tlet result = null;\n\t\tconst manifest = join(directory, \"package.json\");\n\t\tif (existsSync(manifest)) try {\n\t\t\tconst field = JSON.parse(readFileSync(manifest, \"utf8\"))[\"react-native\"];\n\t\t\tresult = {\n\t\t\t\troot: directory,\n\t\t\t\taliases: field && typeof field === \"object\" ? field : {}\n\t\t\t};\n\t\t} catch {}\n\t\telse {\n\t\t\tconst parent = dirname(directory);\n\t\t\tif (parent !== directory) result = findPackage(parent);\n\t\t}\n\t\tpackages.set(directory, result);\n\t\treturn result;\n\t};\n\treturn {\n\t\tname: \"vxrn:native-identity-alias\",\n\t\tasync resolveId(source, importer) {\n\t\t\tif (!importer || !source.startsWith(\".\")) return;\n\t\t\tconst pkg = findPackage(dirname(importer));\n\t\t\tif (!pkg) return;\n\t\t\tconst key = `./${normalizePath(relative(pkg.root, resolve(dirname(importer), source)))}`;\n\t\t\tif (pkg.aliases[key] !== key) return;\n\t\t\tif (!resolver) {\n\t\t\t\tconst { ResolverFactory } = await import(\"rolldown/experimental\");\n\t\t\t\tresolver = new ResolverFactory({\n\t\t\t\t\t...getNativeResolveConfig(platform),\n\t\t\t\t\taliasFields: []\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst result = resolver.sync(dirname(importer), source);\n\t\t\tif (result.path) return result.path;\n\t\t}\n\t};\n}\nfunction nativeExportsPrecedencePlugin(root, platform) {\n\tconst manifests = /* @__PURE__ */ new Map();\n\tconst readManifest = (directory) => {\n\t\tif (!manifests.has(directory)) {\n\t\t\tlet manifest = null;\n\t\t\ttry {\n\t\t\t\tmanifest = JSON.parse(readFileSync(join(directory, \"package.json\"), \"utf8\"));\n\t\t\t} catch {}\n\t\t\tmanifests.set(directory, manifest);\n\t\t}\n\t\treturn manifests.get(directory);\n\t};\n\tconst resolvers = /* @__PURE__ */ new Map();\n\treturn {\n\t\tname: \"vxrn:native-exports-precedence\",\n\t\tasync resolveId(source, importer, options) {\n\t\t\tif (source.startsWith(\".\") || source.startsWith(\"/\") || source.includes(\":\")) return;\n\t\t\tconst resolved = await this.resolve(source, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t\tif (!resolved || resolved.external || resolved.id.startsWith(\"\\0\")) return resolved;\n\t\t\tconst name = source.split(\"/\").slice(0, source.startsWith(\"@\") ? 2 : 1).join(\"/\");\n\t\t\tlet directory = dirname(resolved.id);\n\t\t\twhile (readManifest(directory)?.name !== name) {\n\t\t\t\tif (dirname(directory) === directory) return resolved;\n\t\t\t\tdirectory = dirname(directory);\n\t\t\t}\n\t\t\tconst exportsMap = JSON.stringify(readManifest(directory)?.exports ?? null);\n\t\t\tif (!exportsMap.includes(\"\\\"react-native\\\"\") || !exportsMap.includes(\"\\\"browser\\\"\")) return resolved;\n\t\t\tconst kind = options.kind === \"require-call\" ? \"require\" : \"import\";\n\t\t\tlet resolver = resolvers.get(kind);\n\t\t\tif (!resolver) {\n\t\t\t\tconst { ResolverFactory } = await import(\"rolldown/experimental\");\n\t\t\t\tresolver = new ResolverFactory({\n\t\t\t\t\t...getNativeResolveConfig(platform),\n\t\t\t\t\tconditionNames: [\n\t\t\t\t\t\t\"react-native\",\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\"default\"\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\tresolvers.set(kind, resolver);\n\t\t\t}\n\t\t\tconst native = resolver.sync(importer ? dirname(importer) : root, source);\n\t\t\tif (!native.path || native.path === resolved.id) return resolved;\n\t\t\treturn this.resolve(native.path, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t}\n\t};\n}\nfunction nativeDeclarationAliasPlugin(root, platform) {\n\tconst resolvers = /* @__PURE__ */ new Map();\n\treturn {\n\t\tname: \"vxrn:declaration-alias\",\n\t\tasync resolveId(source, importer, options) {\n\t\t\tif (source.startsWith(\".\") || source.startsWith(\"/\") || source.includes(\":\")) return;\n\t\t\tconst resolved = await this.resolve(source, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t\tif (!resolved || resolved.external || !/\\.d\\.[cm]?ts$/.test(resolved.id)) return resolved;\n\t\t\tconst kind = options.kind === \"require-call\" ? \"require\" : \"import\";\n\t\t\tlet resolver = resolvers.get(kind);\n\t\t\tif (!resolver) {\n\t\t\t\tconst { ResolverFactory } = await import(\"rolldown/experimental\");\n\t\t\t\tresolver = new ResolverFactory({\n\t\t\t\t\t...getNativeResolveConfig(platform),\n\t\t\t\t\tconditionNames: [\n\t\t\t\t\t\t\"react-native\",\n\t\t\t\t\t\t\"browser\",\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\"default\"\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\tresolvers.set(kind, resolver);\n\t\t\t}\n\t\t\tconst runtime = resolver.sync(importer ? dirname(importer) : root, source);\n\t\t\tif (!runtime.path || /\\.d\\.[cm]?ts$/.test(runtime.path)) this.error(`Native import ${source} resolves to a declaration without a runtime export`);\n\t\t\treturn this.resolve(runtime.path, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t}\n\t};\n}\nfunction nativeAssetRegistryPlugin(root) {\n\tlet registryPath;\n\treturn {\n\t\tname: \"vxrn:asset-registry\",\n\t\tasync resolveId(source, importer) {\n\t\t\tif (source !== \"react-native/asset-registry\" && source !== \"@react-native/assets-registry/registry\") return;\n\t\t\tif (registryPath === void 0) try {\n\t\t\t\tconst reactNativeRoot = dirname(resolvePath(\"react-native/package.json\", root));\n\t\t\t\tconst exportedRegistry = join(reactNativeRoot, \"src/asset-registry.js\");\n\t\t\t\tregistryPath = existsSync(exportedRegistry) ? exportedRegistry : resolvePath(\"@react-native/assets-registry/registry\", reactNativeRoot);\n\t\t\t} catch {\n\t\t\t\tregistryPath = null;\n\t\t\t}\n\t\t\tif (registryPath) return this.resolve(normalizePath(registryPath), importer, { skipSelf: true });\n\t\t}\n\t};\n}\nfunction nativePackageDedupePlugin(root) {\n\tconst packages = /* @__PURE__ */ new Set([\n\t\t...dedupe,\n\t\t\"react-native-worklets\",\n\t\t\"react-native-nitro-modules\"\n\t]);\n\treturn {\n\t\tname: \"vxrn:native-package-dedupe\",\n\t\tasync resolveId(source) {\n\t\t\tconst parts = source.split(\"/\");\n\t\t\tconst packageName = source.startsWith(\"@\") ? parts.slice(0, 2).join(\"/\") : parts[0];\n\t\t\tif (!packages.has(packageName)) return;\n\t\t\treturn this.resolve(source, join(root, \"package.json\"), { skipSelf: true });\n\t\t}\n\t};\n}\nfunction reactNativeDedupePlugin(root) {\n\tlet reactNativeRoot;\n\treturn {\n\t\tname: \"vxrn:react-native-dedupe\",\n\t\tasync resolveId(source, importer) {\n\t\t\tif (source !== \"react-native\" && !source.startsWith(\"react-native/\")) return;\n\t\t\tif (reactNativeRoot === void 0) try {\n\t\t\t\treactNativeRoot = realpathSync(dirname(resolvePath(\"react-native/package.json\", root)));\n\t\t\t} catch {\n\t\t\t\treactNativeRoot = null;\n\t\t\t}\n\t\t\tif (!reactNativeRoot) return;\n\t\t\tconst subpath = source === \"react-native\" ? \"index.js\" : source.slice(13);\n\t\t\treturn this.resolve(normalizePath(resolve(reactNativeRoot, subpath)), importer, { skipSelf: true });\n\t\t}\n\t};\n}\nfunction cssStubPlugin() {\n\treturn {\n\t\tname: \"vxrn:css-stub\",\n\t\tload: { handler(id) {\n\t\t\tif (id.endsWith(\".css\")) return {\n\t\t\t\tcode: \"\",\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t} }\n\t};\n}\nfunction vxrnCompilerPlugin(platform, dev, projectRoot = process.cwd(), sourceMaps = false) {\n\tlet compiler = null;\n\tconst isRefreshCandidate = (id) => dev && !id.includes(\"node_modules\") && !id.includes(\"__virtual-native-entry\") && /\\.[tj]sx?$/.test(id);\n\treturn {\n\t\tname: \"vxrn:compiler\",\n\t\tasync transform(code, id) {\n\t\t\tif (!/\\.[cm]?[jt]sx?$/.test(id)) return;\n\t\t\tif (id.includes(\"\\0\") || id.includes(\"virtual:\")) return;\n\t\t\tconst needsRefresh = isRefreshCandidate(id);\n\t\t\tif (!compiler) compiler = await import(\"@vxrn/compiler\");\n\t\t\tconst props = {\n\t\t\t\tid,\n\t\t\t\tcode,\n\t\t\t\tprojectRoot,\n\t\t\t\tdevelopment: dev,\n\t\t\t\tenvironment: platform,\n\t\t\t\treactForRNVersion: \"19\"\n\t\t\t};\n\t\t\tlet babelOptions = compiler.getBabelOptions(props);\n\t\t\tlet curCode = code;\n\t\t\tconst intermediateMaps = [];\n\t\t\tconst isWorkletPlugin = (entry) => {\n\t\t\t\tif (!entry) return false;\n\t\t\t\tconst name = typeof entry === \"string\" ? entry : Array.isArray(entry) ? entry[0] : null;\n\t\t\t\treturn typeof name === \"string\" && (name.includes(\"react-native-worklets\") || name.includes(\"react-native-reanimated\"));\n\t\t\t};\n\t\t\tconst workletEntry = babelOptions?.plugins?.find(isWorkletPlugin);\n\t\t\tconst workletPluginOptions = Array.isArray(workletEntry) ? workletEntry[1] : void 0;\n\t\t\tconst useWorklets = compiler.isNativeWorkletsEnabled() && (Boolean(workletEntry) || compiler.shouldTransformWorklets({\n\t\t\t\tid,\n\t\t\t\tcode\n\t\t\t}));\n\t\t\tconst compilerPluginIndex = babelOptions?.plugins?.findIndex((x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\") ?? -1;\n\t\t\tif (compilerPluginIndex !== -1) {\n\t\t\t\tif (useWorklets) {\n\t\t\t\t\tconst prepared = compiler.prepareWorkletsForReactCompiler(id, curCode, sourceMaps);\n\t\t\t\t\tif (prepared) {\n\t\t\t\t\t\tcurCode = prepared.code;\n\t\t\t\t\t\tif (prepared.map) intermediateMaps.push(prepared.map);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst compilerPluginOptions = babelOptions.plugins[compilerPluginIndex][1] || {};\n\t\t\t\tif (!(compilerPluginOptions.compiler === \"babel\" || process.env.ONE_REACT_COMPILER === \"babel\" || process.env.VXRN_REACT_COMPILER === \"babel\")) {\n\t\t\t\t\tconst compilerOut = await compiler.transformOxcReactCompiler(id, curCode, compilerPluginOptions, sourceMaps);\n\t\t\t\t\tif (compilerOut?.code) {\n\t\t\t\t\t\tcurCode = compilerOut.code;\n\t\t\t\t\t\tif (sourceMaps && compilerOut.map) intermediateMaps.push(compilerOut.map);\n\t\t\t\t\t}\n\t\t\t\t\tbabelOptions.plugins.splice(compilerPluginIndex, 1);\n\t\t\t\t\tif (babelOptions.plugins.length === 0 && !babelOptions.configFile && !babelOptions.babelrc) babelOptions = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useWorklets) {\n\t\t\t\tconst workletOut = await compiler.transformWorklets(id, curCode, sourceMaps, {\n\t\t\t\t\tprojectRoot,\n\t\t\t\t\t...workletPluginOptions\n\t\t\t\t});\n\t\t\t\tif (workletOut?.code) {\n\t\t\t\t\tcurCode = workletOut.code;\n\t\t\t\t\tif (sourceMaps && workletOut.map) intermediateMaps.push(workletOut.map);\n\t\t\t\t}\n\t\t\t\tif (babelOptions?.plugins) {\n\t\t\t\t\tbabelOptions.plugins = babelOptions.plugins.filter((entry) => !isWorkletPlugin(entry));\n\t\t\t\t\tif (babelOptions.plugins.length === 0 && !babelOptions.configFile && !babelOptions.babelrc) babelOptions = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!babelOptions && !needsRefresh) {\n\t\t\t\tif (curCode !== code) {\n\t\t\t\t\tlet finalMap = void 0;\n\t\t\t\t\tif (sourceMaps && intermediateMaps.length > 0) if (intermediateMaps.length === 1) finalMap = intermediateMaps[0];\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\t\t\tfinalMap = remapping(intermediateMaps.slice().reverse(), () => null);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcode: curCode,\n\t\t\t\t\t\tmap: finalMap\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (sourceMaps && babelOptions) {\n\t\t\t\tbabelOptions = {\n\t\t\t\t\t...babelOptions,\n\t\t\t\t\tsourceMaps: true,\n\t\t\t\t\tsourceFileName: id\n\t\t\t\t};\n\t\t\t\tdelete babelOptions.inputSourceMap;\n\t\t\t}\n\t\t\tif (babelOptions) {\n\t\t\t\tconst result = await compiler.transformBabel(id, curCode, babelOptions);\n\t\t\t\tif (result?.code) {\n\t\t\t\t\tcurCode = result.code;\n\t\t\t\t\tif (sourceMaps && result.map) intermediateMaps.push(result.map);\n\t\t\t\t\tif (!needsRefresh) {\n\t\t\t\t\t\tlet finalMap = void 0;\n\t\t\t\t\t\tif (sourceMaps && intermediateMaps.length > 0) if (intermediateMaps.length === 1) finalMap = intermediateMaps[0];\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\t\t\t\tfinalMap = remapping(intermediateMaps.slice().reverse(), () => null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tcode: curCode,\n\t\t\t\t\t\t\tmap: finalMap\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (needsRefresh) {\n\t\t\t\tconst { transformSync } = await import(\"oxc-transform-react\");\n\t\t\t\tconst jsxImportSource = compiler.configuration?.enableNativewind && !id.includes(\"node_modules\") ? \"nativewind\" : \"react\";\n\t\t\t\tconst res = transformSync(id, curCode, {\n\t\t\t\t\tjsx: {\n\t\t\t\t\t\tdevelopment: dev,\n\t\t\t\t\t\truntime: \"automatic\",\n\t\t\t\t\t\timportSource: jsxImportSource,\n\t\t\t\t\t\trefresh: {\n\t\t\t\t\t\t\trefreshReg: \"__vxrnRefreshReg\",\n\t\t\t\t\t\t\trefreshSig: \"__vxrnRefreshSig\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\treactCompiler: false,\n\t\t\t\t\tsourcemap: sourceMaps\n\t\t\t\t});\n\t\t\t\tif (res.fatal) throw new Error(`[vxrn:compiler] oxc react transform failed on ${id}: ${(res.errors ?? []).map((e) => e.message ?? String(e)).join(\", \")}`);\n\t\t\t\tconst header = `var __prevRefreshReg = globalThis.$RefreshReg$;\nvar __prevRefreshSig = globalThis.$RefreshSig$;\nif (globalThis.__ReactRefresh) {\n globalThis.$RefreshReg$ = function(type, id) {\n globalThis.__ReactRefresh.register(type, \"${id.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\")}\" + \" \" + id);\n };\n globalThis.$RefreshSig$ = globalThis.__ReactRefresh.createSignatureFunctionForTransform;\n}\n// keep registration calls local so rolldown retains them in the initial bundle.\nvar __vxrnRefreshReg = globalThis.$RefreshReg$;\nvar __vxrnRefreshSig = globalThis.$RefreshSig$;\n\n`;\n\t\t\t\tconst footer = `\n\nglobalThis.$RefreshReg$ = __prevRefreshReg;\nglobalThis.$RefreshSig$ = __prevRefreshSig;\nif (import.meta.hot) {\n import.meta.hot.acceptReactRefresh(function() {\n if (globalThis.__ReactRefresh) {\n setTimeout(function() { globalThis.__ReactRefresh.performReactRefresh(); }, 30);\n }\n });\n}\n`;\n\t\t\t\tlet out;\n\t\t\t\tlet finalMap = void 0;\n\t\t\t\tif (sourceMaps) {\n\t\t\t\t\tconst MagicString = (await import(\"magic-string\")).default;\n\t\t\t\t\tconst ms = new MagicString(res.code);\n\t\t\t\t\tms.prepend(header);\n\t\t\t\t\tms.append(footer);\n\t\t\t\t\tout = ms.toString();\n\t\t\t\t\tconst allMaps = [\n\t\t\t\t\t\tms.generateMap({\n\t\t\t\t\t\t\tsource: id,\n\t\t\t\t\t\t\thires: true\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tres.map,\n\t\t\t\t\t\t...intermediateMaps.slice().reverse()\n\t\t\t\t\t].filter(Boolean);\n\t\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\t\tfinalMap = remapping(allMaps, () => null);\n\t\t\t\t} else out = header + res.code + footer;\n\t\t\t\treturn {\n\t\t\t\t\tcode: out,\n\t\t\t\t\tmap: finalMap\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\n}\nfunction flowStripPlugin() {\n\treturn {\n\t\tname: \"vxrn:flow-strip\",\n\t\ttransform: { async handler(code, id) {\n\t\t\tif (!shouldStripFlow(id, code)) return;\n\t\t\tconst { stripFlowTypes } = await import(\"@vxrn/compiler\");\n\t\t\tconst result = await stripFlowTypes(id, code);\n\t\t\treturn {\n\t\t\t\tcode: result.code,\n\t\t\t\tmap: result.map\n\t\t\t};\n\t\t} }\n\t};\n}\nfunction assetPlugin(opts) {\n\tconst assetRegex = new RegExp(`\\\\.(?:${DEFAULT_ASSET_EXTS.join(\"|\")})$`);\n\treturn {\n\t\tname: \"vxrn:asset\",\n\t\tload: { async handler(id) {\n\t\t\tif (!assetRegex.test(id)) return;\n\t\t\tconst assetData = await getNativeAssetData(id, opts.root, opts.platform);\n\t\t\topts.onAsset?.(assetData);\n\t\t\tif (opts.assetsDest) copyNativeAssetFiles(assetData, opts.assetsDest, opts.platform);\n\t\t\treturn {\n\t\t\t\tcode: `module.exports = require('react-native/asset-registry').registerAsset(${JSON.stringify(assetData)});`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t} }\n\t};\n}\nfunction createNativeDevAssetRegistry() {\n\tconst assets = /* @__PURE__ */ new Map();\n\treturn {\n\t\tregister(asset) {\n\t\t\tfor (const [index, scale] of asset.scales.entries()) {\n\t\t\t\tconst filePath = asset.files[index];\n\t\t\t\tif (!filePath) continue;\n\t\t\t\tconst fileName = `${asset.name}${scale === 1 ? \"\" : `@${scale}x`}.${asset.type}`;\n\t\t\t\tassets.set(`${asset.httpServerLocation}/${fileName}`, {\n\t\t\t\t\tfilePath,\n\t\t\t\t\thash: asset.hash,\n\t\t\t\t\ttype: asset.type\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresolve(pathname, hash) {\n\t\t\tconst asset = assets.get(pathname);\n\t\t\tif (!asset || hash !== void 0 && hash !== asset.hash) return;\n\t\t\treturn asset;\n\t\t}\n\t};\n}\nconst NATIVE_IMAGE_EXTS = /* @__PURE__ */ new Set([\n\t\"png\",\n\t\"jpg\",\n\t\"jpeg\",\n\t\"gif\",\n\t\"webp\",\n\t\"bmp\",\n\t\"psd\",\n\t\"svg\",\n\t\"tiff\",\n\t\"ktx\"\n]);\nfunction parseNativeAssetName(filePath) {\n\tconst type = extname(filePath).slice(1);\n\tif (!type) return;\n\tconst stem = basename(filePath, `.${type}`);\n\tconst platformMatch = stem.match(/^(.*)\\.(ios|android)$/);\n\tconst platform = platformMatch?.[2];\n\tconst scaleMatch = (platformMatch?.[1] ?? stem).match(/^(.+?)(?:@([\\d.]+)x)?$/);\n\tif (!scaleMatch) return;\n\tconst scale = scaleMatch[2] === void 0 ? 1 : Number.parseFloat(scaleMatch[2]);\n\tif (!Number.isFinite(scale) || scale <= 0) return;\n\treturn {\n\t\tname: scaleMatch[1],\n\t\tscale,\n\t\tplatform,\n\t\ttype\n\t};\n}\nfunction getNativeAssetUrlDirectory(root, assetDirectory) {\n\tconst safeDirectory = relative(realpathSync(root), realpathSync(assetDirectory)).replace(/\\\\/g, \"/\").split(\"/\").filter((segment) => segment && segment !== \".\").map((segment) => segment === \"..\" ? \"_\" : segment).join(\"/\");\n\treturn safeDirectory ? `/assets/${safeDirectory}` : \"/assets\";\n}\nasync function getNativeAssetData(id, root, platform) {\n\tconst requested = parseNativeAssetName(id);\n\tif (!requested) throw new Error(`[vxrn] invalid native asset path: ${id}`);\n\tconst assetDirectory = dirname(id);\n\tconst filesByScale = /* @__PURE__ */ new Map();\n\tfor (const fileName of readdirSync(assetDirectory)) {\n\t\tconst candidate = parseNativeAssetName(fileName);\n\t\tif (!candidate || candidate.name !== requested.name || candidate.type !== requested.type || candidate.platform !== void 0 && candidate.platform !== platform) continue;\n\t\tconst platformSpecific = candidate.platform === platform;\n\t\tconst existing = filesByScale.get(candidate.scale);\n\t\tif (!existing || platformSpecific && !existing.platformSpecific) filesByScale.set(candidate.scale, {\n\t\t\tfile: join(assetDirectory, fileName),\n\t\t\tplatformSpecific\n\t\t});\n\t}\n\tconst scales = [...filesByScale.keys()].sort((a, b) => a - b);\n\tconst files = scales.map((scale) => filesByScale.get(scale).file);\n\tif (files.length === 0) throw new Error(`[vxrn] native asset has no files for ${platform}: ${id}`);\n\tconst hash = createHash(\"md5\");\n\tfor (const file of files) hash.update(readFileSync(file));\n\tconst assetData = {\n\t\t__packager_asset: true,\n\t\tname: requested.name,\n\t\ttype: requested.type,\n\t\tscales,\n\t\tfiles,\n\t\thttpServerLocation: getNativeAssetUrlDirectory(root, assetDirectory),\n\t\tfileSystemLocation: assetDirectory,\n\t\thash: hash.digest(\"hex\")\n\t};\n\tif (NATIVE_IMAGE_EXTS.has(requested.type)) try {\n\t\tconst { imageSize } = await import(\"image-size\");\n\t\tconst dims = imageSize(files[0]);\n\t\tassetData.width = dims.width === void 0 ? void 0 : dims.width / scales[0];\n\t\tassetData.height = dims.height === void 0 ? void 0 : dims.height / scales[0];\n\t} catch {}\n\treturn assetData;\n}\nfunction getIOSAssetScales(scales) {\n\tconst supported = scales.filter((scale) => scale === 1 || scale === 2 || scale === 3);\n\tif (supported.length > 0 || scales.length === 0) return supported;\n\treturn [scales.find((scale) => scale > 3) ?? scales[scales.length - 1]];\n}\nfunction getAndroidAssetDirectory(type, scale) {\n\tif (!(/* @__PURE__ */ new Set([\n\t\t\"gif\",\n\t\t\"heic\",\n\t\t\"heif\",\n\t\t\"jpeg\",\n\t\t\"jpg\",\n\t\t\"ktx\",\n\t\t\"png\",\n\t\t\"webp\",\n\t\t\"xml\"\n\t])).has(type)) return \"raw\";\n\tconst density = (/* @__PURE__ */ new Map([\n\t\t[.75, \"ldpi\"],\n\t\t[1, \"mdpi\"],\n\t\t[1.5, \"hdpi\"],\n\t\t[2, \"xhdpi\"],\n\t\t[3, \"xxhdpi\"],\n\t\t[4, \"xxxhdpi\"]\n\t])).get(scale);\n\tif (density) return `drawable-${density}`;\n\treturn `drawable-${Math.round(scale * 160)}dpi`;\n}\nfunction getAndroidAssetName(asset) {\n\treturn `${asset.httpServerLocation}/${asset.name}`.toLowerCase().replace(/^\\//, \"\").replace(/\\//g, \"_\").replace(/([^a-z0-9_])/g, \"\").replace(/^assets_/, \"\");\n}\nfunction copyNativeAssetFiles(asset, assetsDest, platform) {\n\tconst validIOSScales = new Set(getIOSAssetScales(asset.scales));\n\tfor (const [index, scale] of asset.scales.entries()) {\n\t\tif (platform === \"ios\" && !validIOSScales.has(scale)) continue;\n\t\tconst destination = platform === \"android\" ? join(assetsDest, getAndroidAssetDirectory(asset.type, scale), `${getAndroidAssetName(asset)}.${asset.type}`) : join(assetsDest, asset.httpServerLocation.slice(1), `${asset.name}${scale === 1 ? \"\" : `@${scale}x`}.${asset.type}`);\n\t\tmkdirSync(dirname(destination), { recursive: true });\n\t\tcopyFileSync(asset.files[index], destination);\n\t}\n}\nfunction hermesCompatSWCPlugin(dev, sourceMaps = false) {\n\tlet oxc = null;\n\treturn {\n\t\tname: \"vxrn:hermes-compat\",\n\t\tasync transform(code, id) {\n\t\t\tif (!/\\.[cm]?[jt]sx?$/.test(id)) return;\n\t\t\tif (id.includes(\"\\0\") || id.includes(\"virtual:\")) return;\n\t\t\tconst hasClass = /\\bclass(?:\\s|\\{)/.test(code);\n\t\t\tconst hasAsync = code.includes(\"async\");\n\t\t\tconst hasBlockScopedBinding = /\\b(?:const|let)\\s/.test(code);\n\t\t\tif (!hasClass && !hasAsync && !hasBlockScopedBinding) return;\n\t\t\tlet output;\n\t\t\tif (code.length <= 5e5 || hasClass) {\n\t\t\t\tif (!oxc) oxc = await import(\"oxc-transform\");\n\t\t\t\tconst lang = /\\.[cm]?ts$/.test(id) ? \"ts\" : id.endsWith(\".tsx\") ? \"tsx\" : \"jsx\";\n\t\t\t\tconst result = oxc.transformSync(id, code, {\n\t\t\t\t\tlang,\n\t\t\t\t\ttarget: \"es2020\",\n\t\t\t\t\tassumptions: { setPublicClassFields: true },\n\t\t\t\t\tjsx: \"preserve\",\n\t\t\t\t\tsourcemap: sourceMaps,\n\t\t\t\t\tsourceType: id.endsWith(\".cjs\") ? \"script\" : \"module\"\n\t\t\t\t});\n\t\t\t\tif (result.errors?.length) {\n\t\t\t\t\tconst err = result.errors[0];\n\t\t\t\t\tthrow new Error(err.message + (err.codeframe ? `\n${err.codeframe}` : \"\"));\n\t\t\t\t}\n\t\t\t\toutput = {\n\t\t\t\t\tcode: result.code,\n\t\t\t\t\tmap: sourceMaps ? result.map : void 0\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (hasClass || hasBlockScopedBinding) {\n\t\t\t\tconst { transformHermesClasses } = await import(\"@vxrn/compiler\");\n\t\t\t\tconst classes = await transformHermesClasses(output?.code ?? code, id, sourceMaps);\n\t\t\t\tif (classes) {\n\t\t\t\t\tif (classes.map && output?.map) {\n\t\t\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\t\t\tclasses.map = remapping([classes.map, output.map], () => null);\n\t\t\t\t\t}\n\t\t\t\t\toutput = classes;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst lowered = await transformHermesAsync(output?.code ?? code, id, sourceMaps);\n\t\t\tif (!lowered) return output;\n\t\t\tif (lowered.map && output?.map) {\n\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\tlowered.map = remapping([lowered.map, output.map], () => null);\n\t\t\t}\n\t\t\treturn lowered;\n\t\t}\n\t};\n}\nconst hermesCompatPlugin = hermesCompatSWCPlugin;\nfunction hermesLoopsPlugin(sourceMaps = false) {\n\tlet compiler = null;\n\treturn {\n\t\tname: \"vxrn:hermes-loops\",\n\t\tasync transform(code, id) {\n\t\t\tif (!/\\.[cm]?[jt]sx?$/.test(id)) return;\n\t\t\tif (id.includes(\"\\0\") || id.includes(\"virtual:\")) return;\n\t\t\tif (!compiler) compiler = await import(\"@vxrn/compiler\");\n\t\t\tconst result = compiler.transformHermesLoops(code, id);\n\t\t\tif (!result) return;\n\t\t\tif (!sourceMaps) return {\n\t\t\t\tcode: result.code,\n\t\t\t\tmap: null\n\t\t\t};\n\t\t\tif (result.maps.length === 1) return {\n\t\t\t\tcode: result.code,\n\t\t\t\tmap: result.maps[0]\n\t\t\t};\n\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\treturn {\n\t\t\t\tcode: result.code,\n\t\t\t\tmap: remapping(result.maps.slice().reverse(), () => null)\n\t\t\t};\n\t\t}\n\t};\n}\nfunction getHmrRuntimeSource() {\n\treturn `\n// vxrn HMR runtime for rolldown devMode\nvar BaseDevRuntime = DevRuntime;\n\nclass ReactNativeDevRuntime extends BaseDevRuntime {\n constructor() {\n var clientId = 'rn-' + Date.now() + '-' + Math.random().toString(36).slice(2);\n super(clientId);\n this._socket = null;\n this.moduleHotContexts = {};\n this.lastSeq = 0;\n }\n\n createModuleHotContext(moduleId) {\n var runtime = this;\n var ctx = {\n acceptCallbacks: [],\n reactRefreshAcceptCallback: null,\n accept: function(deps, callback) {\n if (typeof deps === 'function' || !deps) {\n ctx.acceptCallbacks.push({\n deps: [moduleId],\n fn: function(modules) { if (typeof deps === 'function') deps(modules[0]); }\n });\n } else if (typeof deps === 'string') {\n ctx.acceptCallbacks.push({\n deps: [deps],\n fn: function(modules) { if (callback) callback(modules[0]); }\n });\n } else if (Array.isArray(deps)) {\n ctx.acceptCallbacks.push({ deps: deps, fn: callback || function() {} });\n }\n },\n acceptReactRefresh: function(callback) {\n ctx.reactRefreshAcceptCallback = callback;\n },\n invalidate: function() { runtime.requestReload('module invalidated: ' + moduleId); },\n on: function() {},\n off: function() {},\n send: function() {},\n get refresh() { return globalThis.__ReactRefresh; },\n get refreshUtils() {\n return {\n isReactRefreshBoundary: function(exports) {\n if (!globalThis.__ReactRefresh) return false;\n if (globalThis.__ReactRefresh.isLikelyComponentType(exports)) return true;\n if (!exports || typeof exports !== 'object') return false;\n var hasExports = false, allComponents = true;\n for (var key in exports) {\n hasExports = true;\n if (key === '__esModule') continue;\n if (!globalThis.__ReactRefresh.isLikelyComponentType(exports[key])) allComponents = false;\n }\n return hasExports && allComponents;\n },\n enqueueUpdate: function() {\n if (globalThis.__ReactRefresh) {\n setTimeout(function() { globalThis.__ReactRefresh.performReactRefresh(); }, 50);\n }\n }\n };\n }\n };\n this.moduleHotContexts[moduleId] = ctx;\n return ctx;\n }\n\n isSelfAccepted(moduleId) {\n var ctx = this.moduleHotContexts[moduleId];\n var explicitlyAccepted = !!(ctx && ctx.acceptCallbacks.some(function(callback) {\n return callback.deps.indexOf(moduleId) !== -1;\n }));\n if (explicitlyAccepted) return { accepted: true, reactRefresh: false };\n if (!ctx || !ctx.reactRefreshAcceptCallback || !globalThis.__ReactRefresh) {\n return { accepted: false, reactRefresh: false };\n }\n var exports = this.loadExports(moduleId);\n return {\n accepted: ctx.refreshUtils.isReactRefreshBoundary(exports),\n reactRefresh: true\n };\n }\n\n acceptsDependency(parentId, moduleId) {\n var ctx = this.moduleHotContexts[parentId];\n return !!(ctx && ctx.acceptCallbacks.some(function(callback) {\n return callback.deps.indexOf(moduleId) !== -1;\n }));\n }\n\n findBoundaries(moduleId, traversed, updateSet, boundaries) {\n if (traversed.has(moduleId)) return true;\n traversed.add(moduleId);\n updateSet.add(moduleId);\n\n var selfAcceptance = this.isSelfAccepted(moduleId);\n if (selfAcceptance.accepted) {\n boundaries.push({\n boundary: moduleId,\n acceptedVia: moduleId,\n reactRefresh: selfAcceptance.reactRefresh\n });\n return true;\n }\n\n var importers = this.getImporters(moduleId).filter(function(importer) {\n return this.isExecuted(importer);\n }, this);\n if (importers.length === 0) return false;\n\n for (var i = 0; i < importers.length; i++) {\n var importer = importers[i];\n if (this.acceptsDependency(importer, moduleId)) {\n boundaries.push({ boundary: importer, acceptedVia: moduleId });\n } else if (!this.findBoundaries(importer, traversed, updateSet, boundaries)) {\n return false;\n }\n }\n return true;\n }\n\n applyHmrUpdate(code, changedIds, seq) {\n if (seq !== this.lastSeq + 1) return false;\n this.lastSeq = seq;\n\n var traversed = new Set();\n var updateSet = new Set();\n var boundaries = [];\n for (var i = 0; i < changedIds.length; i++) {\n var changedId = changedIds[i];\n if (!this.isExecuted(changedId)) continue;\n if (!this.findBoundaries(changedId, traversed, updateSet, boundaries)) return false;\n }\n if (boundaries.length === 0) return true;\n\n var callbacks = boundaries.map(function(item) {\n var ctx = this.moduleHotContexts[item.boundary];\n var selectedCallbacks = ctx ? ctx.acceptCallbacks.filter(function(callback) {\n return callback.deps.indexOf(item.acceptedVia) !== -1;\n }) : [];\n if (item.reactRefresh && ctx && ctx.reactRefreshAcceptCallback) {\n selectedCallbacks.push({\n deps: [item.acceptedVia],\n fn: function() { ctx.reactRefreshAcceptCallback(); }\n });\n }\n return {\n boundary: item.boundary,\n acceptedVia: item.acceptedVia,\n callbacks: selectedCallbacks\n };\n }, this);\n\n if (globalThis.globalEvalWithSourceUrl) globalThis.globalEvalWithSourceUrl(code);\n else (0, eval)(code);\n\n var modulesToReplace = Array.from(updateSet);\n for (var j = 0; j < modulesToReplace.length; j++) {\n if (!this.hasFactory(modulesToReplace[j])) return false;\n }\n for (var k = 0; k < modulesToReplace.length; k++) {\n this.removeModuleCache(modulesToReplace[k]);\n }\n\n for (var m = 0; m < callbacks.length; m++) {\n var apply = callbacks[m];\n this.initModule(apply.acceptedVia);\n var freshExports = this.loadExports(apply.acceptedVia);\n for (var n = 0; n < apply.callbacks.length; n++) {\n apply.callbacks[n].fn([freshExports]);\n }\n }\n\n for (var p = 0; p < changedIds.length; p++) {\n try {\n if (globalThis.__VXRN_ON_MODULE_UPDATED__) {\n globalThis.__VXRN_ON_MODULE_UPDATED__(changedIds[p]);\n }\n } catch (error) {\n console.error('[vxrn HMR]: module update hook failed', error);\n }\n }\n return true;\n }\n\n requestReload(reason) {\n if (this._socket && this._socket.readyState === 1) {\n this._socket.send(JSON.stringify({ type: 'hmr:invalidate', reason: reason }));\n }\n }\n\n reload(reason) {\n var reloadNativeBundle = globalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__;\n if (typeof reloadNativeBundle === 'function') {\n reloadNativeBundle(reason);\n return;\n }\n console.error('[vxrn HMR]: DevSettings.reload is unavailable');\n }\n\n setup(socket) {\n if (this._socket) return;\n this._socket = socket;\n var runtime = this;\n // addEventListener rather than socket.onmessage: the bundle's WebSocket is\n // whatever the host platform provides, and a host that does not honor on*\n // property assignment would otherwise leave the app permanently without\n // Fast Refresh and say nothing.\n socket.addEventListener('message', function(event) {\n var message;\n try {\n message = JSON.parse(event.data);\n } catch (error) {\n return;\n }\n try {\n if (message.type === 'hmr:update') {\n // a patch that cannot be applied in place is the reload signal\n if (!runtime.applyHmrUpdate(message.code, message.changedIds, message.seq)) {\n runtime.reload('native HMR update could not be applied');\n }\n } else if (message.type === 'hmr:reload') {\n runtime.reload('native route map changed');\n }\n } catch (error) {\n console.error('[vxrn HMR]: failed to apply update', error);\n }\n });\n socket.addEventListener('error', function(event) {\n console.warn('[vxrn HMR]: connection error', (event && event.message) || event);\n });\n }\n}\n\nglobalThis.__rolldown_runtime__ = new ReactNativeDevRuntime();\n`;\n}\n\nexport { buildNativeBundle, createNativeDevAssetRegistry, createNativeDevEngine, getHermesSWCIncludes, getHmrRuntimeSource, getNativeAssetData, getNativeTransformConfig, hermesCompatPlugin, hermesCompatSWCPlugin, hermesLoopsPlugin, hmrClientNoopPlugin, nativeAnimatedGuardPlugin, normalizeNativeCommonJSInterop, postProcessNativeBundle, vxrnCompilerPlugin, wrapNativeBundleModuleScope };"],"mappings":"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"}
1
+ {"version":3,"file":"createNativeDevEngine.js","names":[],"sources":["utils/createNativeDevEngine.js"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { basename, dirname, extname, join, relative, resolve } from \"node:path\";\nimport { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync, watch, writeFileSync } from \"node:fs\";\nimport { pathToFileURL } from \"node:url\";\nimport micromatch from \"micromatch\";\nimport { loadEnv, normalizePath } from \"vite\";\nimport { shouldStripFlow, transformHermesAsync } from \"@vxrn/compiler\";\nimport { resolvePath } from \"@vxrn/resolve\";\nimport { withExpoPublicEnvAliases } from \"@vxrn/utils/publicEnv\";\nimport { DEFAULT_ASSET_EXTS } from \"../constants/defaults\";\nimport { getNativePrelude } from \"../runtime/native-prelude\";\nimport { rnCodegenPlugin } from \"../plugins/rnCodegenPlugin\";\nimport { dedupe } from \"../config/getBaseViteConfigOnly\";\n\nconst HERMES_CLASS_TRANSFORMS = [\n\t\"transform-classes\",\n\t\"transform-parameters\",\n\t\"transform-block-scoping\",\n\t\"transform-class-properties\",\n\t\"transform-class-static-block\",\n\t\"transform-private-methods\",\n\t\"transform-private-property-in-object\"\n];\nconst HERMES_ASYNC_TRANSFORMS = [\"transform-async-to-generator\"];\nfunction getHermesSWCIncludes(dev) {\n\treturn [...HERMES_CLASS_TRANSFORMS, ...HERMES_ASYNC_TRANSFORMS];\n}\nfunction getResolveExtensions(platform) {\n\tconst platformExts = platform === \"ios\" ? [\n\t\t\".ios.tsx\",\n\t\t\".ios.ts\",\n\t\t\".ios.jsx\",\n\t\t\".ios.js\"\n\t] : [\n\t\t\".android.tsx\",\n\t\t\".android.ts\",\n\t\t\".android.jsx\",\n\t\t\".android.js\"\n\t];\n\tconst nativeExts = [\n\t\t\".native.tsx\",\n\t\t\".native.ts\",\n\t\t\".native.jsx\",\n\t\t\".native.js\"\n\t];\n\tconst defaultExts = [\n\t\t\".tsx\",\n\t\t\".ts\",\n\t\t\".jsx\",\n\t\t\".js\",\n\t\t\".mjs\",\n\t\t\".cjs\",\n\t\t\".json\"\n\t];\n\treturn [\n\t\t...platformExts,\n\t\t...nativeExts,\n\t\t...defaultExts\n\t];\n}\nfunction getNativeResolveConfig(platform) {\n\treturn {\n\t\textensions: getResolveExtensions(platform),\n\t\tconditionNames: [\"react-native\", \"browser\"],\n\t\tmainFields: [\n\t\t\t\"react-native\",\n\t\t\t\"browser\",\n\t\t\t\"main\",\n\t\t\t\"module\"\n\t\t],\n\t\taliasFields: [[\"react-native\"], [\"browser\"]]\n\t};\n}\nfunction getNativeTransformConfig(platform, dev, root) {\n\tconst entryConfig = globalThis.__vxrnNativeEntryConfig || {};\n\tconst setupFileDefines = (() => {\n\t\tconst sf = entryConfig.setupFile;\n\t\tif (!sf) return {};\n\t\tconst files = typeof sf === \"string\" ? {\n\t\t\tclient: sf,\n\t\t\tserver: sf,\n\t\t\tios: sf,\n\t\t\tandroid: sf\n\t\t} : \"native\" in sf ? {\n\t\t\tclient: sf.client,\n\t\t\tserver: sf.server,\n\t\t\tios: sf.native,\n\t\t\tandroid: sf.native\n\t\t} : sf;\n\t\treturn {\n\t\t\t...files.client && { \"process.env.ONE_SETUP_FILE_CLIENT\": JSON.stringify(files.client) },\n\t\t\t...files.server && { \"process.env.ONE_SETUP_FILE_SERVER\": JSON.stringify(files.server) },\n\t\t\t...files.ios && { \"process.env.ONE_SETUP_FILE_IOS\": JSON.stringify(files.ios) },\n\t\t\t...files.android && { \"process.env.ONE_SETUP_FILE_ANDROID\": JSON.stringify(files.android) }\n\t\t};\n\t})();\n\tconst userDefines = {};\n\tfor (const [key, value] of Object.entries(globalThis.__vxrnNativeUserDefine || {})) userDefines[key] = typeof value === \"string\" ? value : JSON.stringify(value);\n\tconst mode = dev ? \"development\" : \"production\";\n\tconst publicEnv = withExpoPublicEnvAliases(loadEnv(mode, root, [\n\t\t\"VITE_\",\n\t\t\"ONE_PUBLIC_\",\n\t\t\"EXPO_PUBLIC_\"\n\t]));\n\tconst envDefines = {};\n\tfor (const [key, value] of Object.entries(publicEnv)) {\n\t\tenvDefines[`import.meta.env.${key}`] = JSON.stringify(value);\n\t\tenvDefines[`process.env.${key}`] = JSON.stringify(value);\n\t}\n\tconst envObject = {\n\t\t...publicEnv,\n\t\tMODE: mode,\n\t\tDEV: dev,\n\t\tPROD: !dev,\n\t\tSSR: false,\n\t\tVITE_ENVIRONMENT: platform,\n\t\tVITE_NATIVE: \"1\",\n\t\tONE_PLATFORM: platform,\n\t\tEXPO_OS: platform,\n\t\tTAMAGUI_TARGET: \"native\",\n\t\tTAMAGUI_ENVIRONMENT: platform\n\t};\n\treturn {\n\t\tjsx: { runtime: \"classic\" },\n\t\tdefine: {\n\t\t\t...userDefines,\n\t\t\t...envDefines,\n\t\t\t\"process.env.NODE_ENV\": JSON.stringify(mode),\n\t\t\t\"process.env.VXRN_REACT_19\": \"false\",\n\t\t\t\"process.env.VITE_ENVIRONMENT\": JSON.stringify(platform),\n\t\t\t\"process.env.VITE_NATIVE\": \"\\\"1\\\"\",\n\t\t\t\"process.env.ONE_PLATFORM\": JSON.stringify(platform),\n\t\t\t\"process.env.EXPO_OS\": JSON.stringify(platform),\n\t\t\t\"process.env.TAMAGUI_TARGET\": \"\\\"native\\\"\",\n\t\t\t\"process.env.TAMAGUI_ENVIRONMENT\": JSON.stringify(platform),\n\t\t\t__DEV__: dev ? \"true\" : \"false\",\n\t\t\t\"import.meta.env\": JSON.stringify(envObject),\n\t\t\t\"import.meta.env.MODE\": JSON.stringify(mode),\n\t\t\t\"import.meta.env.DEV\": dev ? \"true\" : \"false\",\n\t\t\t\"import.meta.env.PROD\": dev ? \"false\" : \"true\",\n\t\t\t\"import.meta.env.SSR\": \"false\",\n\t\t\t\"import.meta.env.VITE_ENVIRONMENT\": JSON.stringify(platform),\n\t\t\t\"import.meta.env.VITE_NATIVE\": \"\\\"1\\\"\",\n\t\t\t\"import.meta.env.ONE_PLATFORM\": JSON.stringify(platform),\n\t\t\t\"import.meta.env.EXPO_OS\": JSON.stringify(platform),\n\t\t\t\"import.meta.env.TAMAGUI_TARGET\": \"\\\"native\\\"\",\n\t\t\t\"import.meta.env.TAMAGUI_ENVIRONMENT\": JSON.stringify(platform),\n\t\t\t...setupFileDefines\n\t\t},\n\t\tinject: { React: \"react\" }\n\t};\n}\nfunction getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest, onAsset, sourceMaps = false, userPlugins = []) {\n\tconst context = {\n\t\troot,\n\t\tplatform,\n\t\tdev\n\t};\n\treturn [\n\t\t...globalThis.__vxrnAddNativePlugins?.(platform) || [],\n\t\tserverFileExclusionPlugin(),\n\t\tenvironmentGuardPlugin(),\n\t\tmissingDynamicImportPlugin(),\n\t\thmrClientNoopPlugin(),\n\t\tnativeIdentityAliasPlugin(platform),\n\t\tnativeAssetRegistryPlugin(root),\n\t\treactNativeDedupePlugin(root),\n\t\tnativePackageDedupePlugin(root),\n\t\tcssStubPlugin(),\n\t\tviteImportGlobPlugin({ root }),\n\t\trnCodegenPlugin({ projectRoot: root }),\n\t\tflowStripPlugin(),\n\t\tvxrnCompilerPlugin(platform, dev, root, sourceMaps),\n\t\tnativeAnimatedGuardPlugin(),\n\t\tassetPlugin({\n\t\t\troot,\n\t\t\tplatform,\n\t\t\tassetsDest,\n\t\t\tonAsset\n\t\t}),\n\t\thermesCompatSWCPlugin(dev, sourceMaps),\n\t\thermesLoopsPlugin(sourceMaps),\n\t\t...userPlugins,\n\t\tnativeExportsPrecedencePlugin(root, platform),\n\t\tnativeDeclarationAliasPlugin(root, platform)\n\t].map((plugin) => plugin.api?.vxrnNative ? plugin.api.vxrnNative(context) : plugin);\n}\nfunction getNativeOutputOptions(prelude, sourcemap, minify) {\n\treturn {\n\t\tformat: \"esm\",\n\t\tsourcemap,\n\t\tsourcemapPathTransform: (relativeSourcePath, sourcemapPath) => normalizePath(resolve(dirname(sourcemapPath), relativeSourcePath)),\n\t\tintro: prelude,\n\t\tcodeSplitting: false,\n\t\tstrictExecutionOrder: true,\n\t\tminify: minify || \"dce-only\"\n\t};\n}\nfunction normalizeNativeCommonJSInterop(code) {\n\treturn code.replace(/(\\b__toESM(?:\\$\\d+)?\\(\\s*(?:require[\\w$]*\\(\\)|[\\w$]+|__rolldown_runtime__\\.loadExports\\(\"(?:\\\\.|[^\"\\\\])*\"\\))\\s*),\\s*1(\\s*\\))/g, \"$1$2\");\n}\nfunction blankPreservingLines(match) {\n\treturn \"\\n\".repeat(match.match(/\\n/g)?.length ?? 0);\n}\nfunction countLines(code) {\n\treturn (code.match(/\\n/g)?.length ?? 0) + 1;\n}\nfunction assertBundleLinesPreserved(before, after, stage) {\n\tconst beforeLines = countLines(before);\n\tconst afterLines = countLines(after);\n\tif (beforeLines !== afterLines) throw new Error(`[vxrn] native bundle post-processing (${stage}) changed the line count (${beforeLines} -> ${afterLines}), which invalidates the source map. Every pass after Rolldown emits the map must preserve lines.`);\n}\nfunction postProcessNativeBundle(code) {\n\tcode = normalizeNativeCommonJSInterop(code);\n\tcode = code.replace(/\\btypeof\\s+import\\.meta\\b/g, \"\\\"object\\\"\");\n\tcode = code.replace(/^[^\\S\\n]*export[^\\S\\n]*\\{[^}]*\\}[^\\S\\n]*;?[^\\S\\n]*$/gm, blankPreservingLines);\n\tcode = code.replace(/^([^\\S\\n]*)export[^\\S\\n]+default[^\\S\\n]+([^;\\n]+);?[^\\S\\n]*$/gm, \"$1$2;\");\n\tcode = code.replace(/^if \\(import\\.meta\\.hot\\).*$/gm, \"\");\n\t{\n\t\tconst idx = code.indexOf(\"NativeAnimatedModule_default ?? NativeAnimatedTurboModule_default;\");\n\t\tif (idx !== -1) {\n\t\t\tconst beforeMarker = code.lastIndexOf(\"NativeAnimatedModule = \", idx);\n\t\t\tif (beforeMarker !== -1) {\n\t\t\t\tconst lineStart = code.lastIndexOf(\"\\n\", beforeMarker);\n\t\t\t\tconst snippet = code.slice(lineStart + 1, beforeMarker + 50);\n\t\t\t\tif (snippet.includes(\"(function()\") || snippet.includes(\"new Proxy\")) {\n\t\t\t\t\tconst afterMarker = code.indexOf(\"})();\", idx);\n\t\t\t\t\tif (afterMarker !== -1) {\n\t\t\t\t\t\tconst end = afterMarker + 5;\n\t\t\t\t\t\tconst removed = code.slice(beforeMarker, end);\n\t\t\t\t\t\tcode = code.slice(0, beforeMarker) + \"NativeAnimatedModule = NativeAnimatedModule_default ?? NativeAnimatedTurboModule_default;\" + blankPreservingLines(removed) + code.slice(end);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn code;\n}\nfunction wrapNativeBundleModuleScope(code) {\n\tconst idx = code.indexOf(\"//#region \\\\0rolldown/runtime.js\");\n\tif (idx === -1) return code;\n\treturn code.slice(0, idx) + \";(function() {\" + code.slice(idx) + \"\\n})();\\n\";\n}\nasync function downlevelClassFieldsInBundle(code) {\n\tconst startMarker = \"//#region \\\\0rolldown/runtime.js\";\n\tconst endMarker = \"//#endregion\";\n\tconst startIdx = code.indexOf(startMarker);\n\tif (startIdx === -1) return code;\n\tconst endIdx = code.indexOf(endMarker, startIdx);\n\tif (endIdx === -1) return code;\n\tconst runtimeEnd = endIdx + 12;\n\tconst runtimeSection = code.slice(startIdx, runtimeEnd);\n\tconst originalNewlines = runtimeSection.match(/\\n/g)?.length ?? 0;\n\tconst { transformSync } = await import(\"oxc-transform\");\n\tconst result = transformSync(\"rolldown-runtime.js\", runtimeSection, {\n\t\ttarget: \"es2020\",\n\t\tassumptions: { setPublicClassFields: true }\n\t});\n\tif (result.errors?.length) throw new Error(result.errors.map((e) => e.message).join(\"\\n\"));\n\tconst transformedCode = result.code.trimEnd();\n\tconst transformed = transformedCode.includes(startMarker) ? transformedCode : `${startMarker}\n${transformedCode}`;\n\tconst transformedNewlines = transformed.match(/\\n/g)?.length ?? 0;\n\tif (transformedNewlines > originalNewlines) throw new Error(\"[vxrn] Hermes runtime transform added lines and would invalidate the production source map\");\n\tconst linePreservingRuntime = transformed + \"\\n\".repeat(originalNewlines - transformedNewlines);\n\treturn code.slice(0, startIdx) + linePreservingRuntime + code.slice(runtimeEnd);\n}\nfunction nativeBundlePostProcessPlugin() {\n\treturn {\n\t\tname: \"vxrn:native-post-process\",\n\t\tasync renderChunk(code) {\n\t\t\tconst processed = await downlevelClassFieldsInBundle(postProcessNativeBundle(code));\n\t\t\tassertBundleLinesPreserved(code, processed, \"production\");\n\t\t\treturn {\n\t\t\t\tcode: processed,\n\t\t\t\tmap: null\n\t\t\t};\n\t\t}\n\t};\n}\nasync function createNativeDevEngine(options) {\n\tconst { root, port, host = \"localhost\", platform, serverUrl, plugins: userPlugins = [], onHmrUpdate } = options;\n\tconst { dev, viteImportGlobPlugin } = await import(\"rolldown/experimental\");\n\tconst hmrRuntimeSource = getHmrRuntimeSource();\n\tconst prelude = getNativePrelude({\n\t\tdev: true,\n\t\tplatform,\n\t\tserverUrl: serverUrl || `http://${host}:${port}`\n\t});\n\tconst assetRegistry = createNativeDevAssetRegistry();\n\tlet currentBundle = null;\n\tlet firstBuildError = null;\n\tlet bundleResolve = null;\n\tlet bundleReject = null;\n\tlet bundlePromise = null;\n\tconst virtualEntry = nativeVirtualEntryPlugin(root, {\n\t\tdev: true,\n\t\tplatform,\n\t\tdynamicRoutes: true\n\t});\n\tlet engineWork = Promise.resolve();\n\tconst queueEngineWork = (work) => {\n\t\tconst result = engineWork.then(work, work);\n\t\tengineWork = result.catch(() => {});\n\t\treturn result;\n\t};\n\tconst inputOptions = {\n\t\tinput: VIRTUAL_NATIVE_ENTRY,\n\t\tcwd: root,\n\t\tplatform: \"neutral\",\n\t\tresolve: getNativeResolveConfig(platform),\n\t\ttransform: getNativeTransformConfig(platform, true, root),\n\t\texperimental: {\n\t\t\tdevMode: {\n\t\t\t\timplement: hmrRuntimeSource,\n\t\t\t\thost,\n\t\t\t\tport\n\t\t\t},\n\t\t\tincrementalBuild: true,\n\t\t\tlazyBarrel: true\n\t\t},\n\t\ttreeshake: false,\n\t\tshimMissingExports: true,\n\t\tmoduleTypes: { \".js\": \"jsx\" },\n\t\tplugins: [virtualEntry.plugin, ...getNativePlugins(root, platform, viteImportGlobPlugin, true, void 0, assetRegistry.register, true, userPlugins)]\n\t};\n\tconst outputOptions = {\n\t\t...getNativeOutputOptions(prelude, true, false),\n\t\toutro: `\ntry {\n var __WS = (init_WebSocket(), __toCommonJS(WebSocket_exports)).default;\n var __devServer = (init_getDevServer(), __toCommonJS(getDevServer_exports)).default();\n var __hmrUrl = __devServer.url.replace(/^http/, 'ws') + 'hot?platform=${platform}&clientId=' + encodeURIComponent(__rolldown_runtime__.clientId);\n __rolldown_runtime__.setup(new __WS(__hmrUrl));\n} catch(e) {\n // a swallowed failure here leaves the app permanently without Fast Refresh and\n // nothing on screen or in the terminal says so.\n console.error('[vxrn] HMR client failed to start:', (e && e.message) || e);\n}\n`\n\t};\n\tlet outputProcessed = Promise.resolve();\n\tlet engine;\n\tlet routeWatcher;\n\tconst rebuildIfRouteGraphChanged = () => queueEngineWork(async () => {\n\t\tconst { files: knownRoutes, scanFiles, updateFiles } = virtualEntry.routes;\n\t\tconst currentRoutes = scanFiles();\n\t\tif (!(currentRoutes.size !== knownRoutes.size || [...currentRoutes].some((route) => !knownRoutes.has(route)))) return false;\n\t\tupdateFiles(currentRoutes);\n\t\treturn true;\n\t});\n\tengine = await dev(inputOptions, outputOptions, {\n\t\tonOutput: async (result) => {\n\t\t\tlet finishOutput = () => {};\n\t\t\toutputProcessed = new Promise((resolve2) => {\n\t\t\t\tfinishOutput = resolve2;\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tawait handleOutput(result);\n\t\t\t} finally {\n\t\t\t\tfinishOutput();\n\t\t\t}\n\t\t},\n\t\tonHmrUpdates: async (result) => {\n\t\t\tawait engine?.ensureCurrentBuildFinish();\n\t\t\tif (await rebuildIfRouteGraphChanged()) return;\n\t\t\tif (result instanceof Error) {\n\t\t\t\tconst { removedFiles, registryId } = virtualEntry.routes;\n\t\t\t\tconst errors = result.errors ?? [];\n\t\t\t\tif (registryId && errors.length && errors.every((e) => {\n\t\t\t\t\tif (e.code !== \"UNRESOLVED_IMPORT\" || e.id !== registryId || !e.exporter) return false;\n\t\t\t\t\tconst file = normalizePath(resolve(dirname(e.id), e.exporter));\n\t\t\t\t\treturn removedFiles.has(file);\n\t\t\t\t})) return;\n\t\t\t\tconsole.error(\"[vxrn] HMR error:\", result.message);\n\t\t\t\tonHmrUpdate?.({ type: \"hmr:error\" });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (const { clientId, update } of result.updates) if (update.type === \"Patch\" && update.code) {\n\t\t\t\tawait engine.notifyPayloadDelivered(update.filename);\n\t\t\t\tonHmrUpdate?.({\n\t\t\t\t\ttype: \"hmr:update\",\n\t\t\t\t\tclientId,\n\t\t\t\t\tcode: normalizeNativeCommonJSInterop(update.code),\n\t\t\t\t\tchangedIds: update.changedIds,\n\t\t\t\t\tseq: update.seq\n\t\t\t\t});\n\t\t\t} else if (update.type === \"FullReload\") onHmrUpdate?.({\n\t\t\t\ttype: \"hmr:reload\",\n\t\t\t\tclientId\n\t\t\t});\n\t\t},\n\t\trebuildStrategy: \"never\",\n\t\twatch: { exclude: [\"**/node_modules/.test/**\", \"**/.git/**\"] }\n\t});\n\tasync function handleOutput(result) {\n\t\tif (result instanceof Error) {\n\t\t\tconsole.error(\"[vxrn] native bundle error:\", result.message);\n\t\t\tif (/panic/i.test(result.message)) console.error(\"[vxrn] rolldown itself panicked. Fast Refresh will full-reload until you restart the dev server.\");\n\t\t\tif (!currentBundle) {\n\t\t\t\tfirstBuildError ||= result;\n\t\t\t\tif (bundleReject) {\n\t\t\t\t\tconst reject = bundleReject;\n\t\t\t\t\tbundleResolve = null;\n\t\t\t\t\tbundleReject = null;\n\t\t\t\t\tbundlePromise = null;\n\t\t\t\t\treject(firstBuildError);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst chunk = result.output.find((o) => o.type === \"chunk\" && o.isEntry);\n\t\tif (chunk && \"code\" in chunk) {\n\t\t\tfirstBuildError = null;\n\t\t\tlet code = postProcessNativeBundle(chunk.code);\n\t\t\tcode = await downlevelClassFieldsInBundle(code);\n\t\t\tassertBundleLinesPreserved(chunk.code, code, \"dev\");\n\t\t\tcode = wrapNativeBundleModuleScope(code);\n\t\t\tif (!chunk.map) throw new Error(\"[vxrn] rolldown produced no source map for the dev bundle, so /symbolicate cannot resolve a frame\");\n\t\t\tcurrentBundle = {\n\t\t\t\tcode,\n\t\t\t\tmap: chunk.map.toString()\n\t\t\t};\n\t\t\tconsole.info(`[vxrn] native bundle ready (${Math.round(code.length / 1024)}KB)`);\n\t\t\tif (bundleResolve) {\n\t\t\t\tbundleResolve(currentBundle);\n\t\t\t\tbundleResolve = null;\n\t\t\t\tbundleReject = null;\n\t\t\t\tbundlePromise = null;\n\t\t\t}\n\t\t}\n\t}\n\tawait engine.run();\n\tlet routeWatchTarget = virtualEntry.routes.routeRoot;\n\twhile (!statSync(routeWatchTarget, { throwIfNoEntry: false })?.isDirectory()) {\n\t\tconst parent = dirname(routeWatchTarget);\n\t\tif (parent === routeWatchTarget) break;\n\t\trouteWatchTarget = parent;\n\t}\n\tconst normalizedRouteRoot = normalizePath(virtualEntry.routes.routeRoot);\n\trouteWatcher = watch(routeWatchTarget, { recursive: true }, (_eventType, file) => {\n\t\tif (file === null) return;\n\t\tconst changed = normalizePath(resolve(routeWatchTarget, file.toString()));\n\t\tif (changed !== normalizedRouteRoot && !changed.startsWith(`${normalizedRouteRoot}/`)) return;\n\t\trebuildIfRouteGraphChanged().catch((error) => {\n\t\t\tconsole.error(`[vxrn] rebuilding the native route map failed`, error);\n\t\t});\n\t});\n\trouteWatcher.on(\"error\", (error) => {\n\t\tconsole.error(`[vxrn] watching the native route map failed`, error);\n\t});\n\tawait rebuildIfRouteGraphChanged();\n\tconst getBundle = async () => {\n\t\tawait queueEngineWork(async () => {\n\t\t\tawait engine.ensureLatestBuildOutput();\n\t\t\tawait outputProcessed;\n\t\t});\n\t\tif (currentBundle) return currentBundle;\n\t\tif (firstBuildError) throw firstBuildError;\n\t\tif (!bundlePromise) {\n\t\t\tlet timeoutId;\n\t\t\tbundlePromise = new Promise((resolve2, reject) => {\n\t\t\t\tbundleResolve = (value) => {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\tresolve2(value);\n\t\t\t\t};\n\t\t\t\tbundleReject = (error) => {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\treject(error);\n\t\t\t\t};\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tbundleResolve = null;\n\t\t\t\t\tbundleReject = null;\n\t\t\t\t\tbundlePromise = null;\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"[vxrn] bundle build timed out after 120s\"));\n\t\t\t\t}, 12e4);\n\t\t\t});\n\t\t}\n\t\treturn bundlePromise;\n\t};\n\treturn {\n\t\tengine,\n\t\tgetBundle,\n\t\tasync getSourceMap() {\n\t\t\tawait outputProcessed;\n\t\t\tif (currentBundle) return currentBundle.map;\n\t\t\treturn (await getBundle()).map;\n\t\t},\n\t\tgetAsset(pathname, hash) {\n\t\t\treturn assetRegistry.resolve(pathname, hash);\n\t\t},\n\t\tasync close() {\n\t\t\trouteWatcher?.close();\n\t\t\tawait engine.close();\n\t\t}\n\t};\n}\nasync function buildNativeBundle(options) {\n\tconst { root, platform, dev = false, serverUrl, entryFile, assetsDest, plugins: userPlugins = [], sourcemap = false, minify = !dev } = options;\n\tconst { build } = await import(\"rolldown\");\n\tconst { viteImportGlobPlugin } = await import(\"rolldown/experimental\");\n\tconst prelude = getNativePrelude({\n\t\tdev,\n\t\tplatform,\n\t\tserverUrl\n\t});\n\tconst chunk = (await build({\n\t\tinput: entryFile ? normalizePath(resolve(root, entryFile)) : VIRTUAL_NATIVE_ENTRY,\n\t\tcwd: root,\n\t\tplatform: \"neutral\",\n\t\tresolve: getNativeResolveConfig(platform),\n\t\ttransform: getNativeTransformConfig(platform, dev, root),\n\t\ttreeshake: !dev,\n\t\texperimental: { lazyBarrel: false },\n\t\tshimMissingExports: true,\n\t\tmoduleTypes: { \".js\": \"jsx\" },\n\t\tplugins: [\n\t\t\t...entryFile ? [] : [nativeVirtualEntryPlugin(root, {\n\t\t\t\tdev,\n\t\t\t\tplatform\n\t\t\t}).plugin],\n\t\t\t...getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest, void 0, sourcemap, userPlugins),\n\t\t\tnativeBundlePostProcessPlugin()\n\t\t],\n\t\toutput: {\n\t\t\t...getNativeOutputOptions(prelude, sourcemap, minify),\n\t\t\tformat: \"iife\"\n\t\t}\n\t})).output.find((o) => o.type === \"chunk\" && o.isEntry);\n\tif (!chunk || !(\"code\" in chunk)) throw new Error(\"[vxrn] production build produced no output\");\n\tif (sourcemap && !chunk.map) throw new Error(\"[vxrn] a source map was requested but rolldown produced none for the production bundle\");\n\treturn {\n\t\tcode: chunk.code,\n\t\tmap: sourcemap ? chunk.map?.toString() : void 0\n\t};\n}\nconst VIRTUAL_NATIVE_ENTRY = \"virtual:native-entry\";\nfunction nativeVirtualEntryPlugin(root, opts) {\n\tconst isDev = opts?.dev !== false;\n\tconst useDynamicRouteRegistry = opts.dynamicRoutes === true;\n\tconst resolvedId = normalizePath(resolve(root, \"__virtual-native-entry.tsx\"));\n\tconst entryConfig = globalThis.__vxrnNativeEntryConfig || {};\n\tconst routerRoot = entryConfig.routerRoot || \"app\";\n\tconst flags = entryConfig.flags || {};\n\tconst linking = entryConfig.linking;\n\tconst setupFileImport = (() => {\n\t\tconst sf = entryConfig.setupFile;\n\t\tif (!sf) return \"\";\n\t\tconst file = typeof sf === \"string\" ? sf : \"native\" in sf ? sf.native : sf.ios;\n\t\tif (!file) return \"\";\n\t\tconst resolved = pathToFileURL(resolve(root, file)).href;\n\t\treturn `import ${JSON.stringify(resolved)};`;\n\t})();\n\tconst routeGlobs = [\n\t\t`./${routerRoot}/**/*.tsx`,\n\t\t`./${routerRoot}/**/*.ts`,\n\t\t`!./${routerRoot}/**/*+api.*`,\n\t\t`!./${routerRoot}/**/*.test.*`,\n\t\t`!./${routerRoot}/**/*.d.ts`,\n\t\t`!./${routerRoot}/**/*.server.*`,\n\t\t`!./${routerRoot}/**/_middleware.*`,\n\t\t`!./${routerRoot}/**/*.web.*`,\n\t\t...(entryConfig.ignoredRouteFiles || []).map((pattern) => `!./${routerRoot}/${pattern}`)\n\t];\n\tconst refreshSetup = isDev ? `\n// react-refresh/runtime MUST initialize before React loads\nimport RefreshRuntime from 'react-refresh/runtime';\nRefreshRuntime.injectIntoGlobalHook(globalThis);\nglobalThis.__ReactRefresh = RefreshRuntime;\nglobalThis.$RefreshReg$ = function(type, id) {\n RefreshRuntime.register(type, id);\n};\nglobalThis.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;\n` : \"\";\n\tconst entryCode = () => `\n${refreshSetup}\n// retain the namespace so rolldown dev eagerly initializes the RN environment\n// before app modules, even when the renderer also requires this entry.\nimport * as ReactNativeEnvironment from 'react-native/setup-env';\nimport NativeWebSocket from 'react-native/Libraries/WebSocket/WebSocket';\nimport DevSettings from 'react-native/Libraries/Utilities/DevSettings';\n${setupFileImport}\n${routeImports}\nimport { createApp } from 'one';\n\nvoid ReactNativeEnvironment;\nglobalThis.WebSocket = NativeWebSocket;\nglobalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__ = function(reason) {\n DevSettings.reload(reason);\n};\n\n// React Native reloads a dev bundle in the existing JS runtime. Advance One's\n// route-cache version so a full reload cannot reuse the previous context.\nglobalThis.__vxrnVersion = (globalThis.__vxrnVersion || 0) + 1;\n\ncreateApp({\n routes: routes,\n routerRoot: ${JSON.stringify(routerRoot)},\n flags: ${JSON.stringify(flags)},\n linking: ${JSON.stringify(linking)},\n});\n\n${routeHmr}\n`;\n\tconst routeRoot = resolve(root, routerRoot);\n\tconst stripDot = (pattern) => pattern.replace(/^\\.\\//, \"\");\n\tconst includeGlobs = routeGlobs.filter((p) => !p.startsWith(\"!\")).map(stripDot);\n\tconst excludeGlobs = routeGlobs.filter((p) => p.startsWith(\"!\")).map((p) => stripDot(p.slice(1)));\n\tconst isRouteFile = (file) => {\n\t\tconst relativeToRoot = normalizePath(relative(root, file));\n\t\treturn micromatch.isMatch(relativeToRoot, includeGlobs) && !micromatch.isMatch(relativeToRoot, excludeGlobs);\n\t};\n\tconst scanFiles = () => {\n\t\tconst files = /* @__PURE__ */ new Set();\n\t\tconst walkRouteRoot = (dir) => {\n\t\t\tfor (const entry of readdirSync(dir, { withFileTypes: true })) {\n\t\t\t\tconst child = resolve(dir, entry.name);\n\t\t\t\tif (entry.isDirectory()) walkRouteRoot(child);\n\t\t\t\telse if (isRouteFile(child)) files.add(normalizePath(child));\n\t\t\t}\n\t\t};\n\t\tif (statSync(routeRoot, { throwIfNoEntry: false })?.isDirectory()) walkRouteRoot(routeRoot);\n\t\treturn files;\n\t};\n\tconst registrySpecifier = `./node_modules/.vxrn/native-routes-${opts.platform}.mjs`;\n\tconst registryPath = resolve(root, registrySpecifier);\n\tconst routes = {\n\t\trouteRoot,\n\t\tfiles: /* @__PURE__ */ new Set(),\n\t\tremovedFiles: /* @__PURE__ */ new Set(),\n\t\tisRouteFile,\n\t\tscanFiles,\n\t\tupdateFiles(files) {\n\t\t\tfor (const file of routes.files) if (!files.has(file)) routes.removedFiles.add(file);\n\t\t\tfor (const file of files) routes.removedFiles.delete(file);\n\t\t\troutes.files = files;\n\t\t\tif (!useDynamicRouteRegistry) return;\n\t\t\tmkdirSync(dirname(registryPath), { recursive: true });\n\t\t\tconst registryDir = realpathSync(dirname(registryPath));\n\t\t\troutes.registryId = join(registryDir, basename(registryPath));\n\t\t\tconst source = `export const routes = {\n${[...files].sort().map((file) => {\n\t\t\t\tconst routeKey = `/${normalizePath(relative(root, file))}`;\n\t\t\t\tlet importPath = normalizePath(relative(registryDir, file));\n\t\t\t\tif (!importPath.startsWith(\".\")) importPath = `./${importPath}`;\n\t\t\t\treturn ` ${JSON.stringify(routeKey)}: () => import(${JSON.stringify(importPath)})`;\n\t\t\t}).join(\",\\n\")}\n}\n`;\n\t\t\tif (!existsSync(registryPath) || readFileSync(registryPath, \"utf8\") !== source) writeFileSync(registryPath, source);\n\t\t}\n\t};\n\troutes.updateFiles(routes.scanFiles());\n\tconst routeImports = useDynamicRouteRegistry ? `import { routes } from ${JSON.stringify(registrySpecifier)};` : `var _routes = import.meta.glob(${JSON.stringify(routeGlobs)}, { exhaustive: true });\n// fix route keys: One expects '/${routerRoot}/...' prefix but import.meta.glob returns './${routerRoot}/...'\nvar routes = {};\nObject.keys(_routes).forEach(function(key) {\n var normalizedKey = key.replace(/^\\\\.\\\\//, '');\n routes['/' + normalizedKey] = _routes[key];\n});`;\n\tconst routeHmr = useDynamicRouteRegistry ? `if (import.meta.hot) {\n import.meta.hot.accept(${JSON.stringify(registrySpecifier)}, function(next) {\n if (globalThis.__VXRN_UPDATE_NATIVE_ROUTES__) {\n globalThis.__VXRN_UPDATE_NATIVE_ROUTES__(next.routes);\n }\n });\n}` : \"\";\n\treturn {\n\t\troutes,\n\t\tplugin: {\n\t\t\tname: \"vxrn:native-virtual-entry\",\n\t\t\tresolveId(id) {\n\t\t\t\tif (id === VIRTUAL_NATIVE_ENTRY) return resolvedId;\n\t\t\t},\n\t\t\tload(id) {\n\t\t\t\tif (id !== resolvedId) return;\n\t\t\t\treturn entryCode();\n\t\t\t}\n\t\t}\n\t};\n}\nfunction nativeAnimatedGuardPlugin() {\n\treturn {\n\t\tname: \"vxrn:native-animated-guard\",\n\t\ttransform(code, id) {\n\t\t\tif (!id.includes(\"animated/NativeAnimatedHelper\")) return;\n\t\t\tconst target = \"const method = nullthrows(NativeAnimatedModule)[methodName];\";\n\t\t\tif (!code.includes(target)) return;\n\t\t\treturn {\n\t\t\t\tcode: code.replace(target, `${target} if (typeof method !== 'function') return;`),\n\t\t\t\tmap: {\n\t\t\t\t\tversion: 3,\n\t\t\t\t\tsources: [id],\n\t\t\t\t\tsourcesContent: [code],\n\t\t\t\t\tnames: [],\n\t\t\t\t\tmappings: code.split(\"\\n\").map((_, index) => index === 0 ? \"AAAA\" : \"AACA\").join(\";\")\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t};\n}\nfunction serverFileExclusionPlugin() {\n\treturn {\n\t\tname: \"vxrn:server-file-exclusion\",\n\t\tload(id) {\n\t\t\tif (/\\.server\\.\\w+$/.test(id)) return {\n\t\t\t\tcode: \"export default undefined;\",\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t\tif (/[\\\\/]_middleware\\.\\w+$/.test(id)) return {\n\t\t\t\tcode: \"export default undefined;\",\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t}\n\t};\n}\nfunction missingDynamicImportPlugin() {\n\tconst PREFIX = \"\\0vxrn-missing-module:\";\n\treturn {\n\t\tname: \"vxrn:missing-dynamic-import\",\n\t\tasync resolveId(source, importer, options) {\n\t\t\tif (options.kind !== \"dynamic-import\") return;\n\t\t\tif (source.startsWith(\".\") || source.startsWith(\"/\") || source.includes(\":\")) return;\n\t\t\tif (source.startsWith(\"\\0\")) return;\n\t\t\tconst resolved = await this.resolve(source, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t\tif (resolved) return resolved;\n\t\t\treturn {\n\t\t\t\tid: `${PREFIX}${source}`,\n\t\t\t\texternal: false\n\t\t\t};\n\t\t},\n\t\tload(id) {\n\t\t\tif (!id.startsWith(PREFIX)) return;\n\t\t\treturn {\n\t\t\t\tcode: `throw new Error(${JSON.stringify(`Cannot find module '${id.slice(21)}'`)});`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t}\n\t};\n}\nfunction environmentGuardPlugin() {\n\tconst THROWING = [\n\t\t\"server-only\",\n\t\t\"client-only\",\n\t\t\"web-only\"\n\t];\n\tconst NOOP = [\"native-only\"];\n\treturn {\n\t\tname: \"vxrn:environment-guard\",\n\t\tresolveId(source) {\n\t\t\tif (THROWING.includes(source)) return {\n\t\t\t\tid: `\\0env-guard-throw:${source}`,\n\t\t\t\texternal: false\n\t\t\t};\n\t\t\tif (NOOP.includes(source)) return {\n\t\t\t\tid: `\\0env-guard-noop:${source}`,\n\t\t\t\texternal: false\n\t\t\t};\n\t\t},\n\t\tload(id) {\n\t\t\tif (id.startsWith(\"\\0env-guard-throw:\")) return {\n\t\t\t\tcode: `throw new Error(\"Cannot import '${id.slice(17)}' in a native bundle.\");`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t\tif (id.startsWith(\"\\0env-guard-noop:\")) return {\n\t\t\t\tcode: \"\",\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t}\n\t};\n}\nfunction hmrClientNoopPlugin() {\n\tconst RN_HMR_CLIENT_RE = /(^|[\\\\/])Utilities[\\\\/]HMRClient(\\.[cm]?[jt]sx?)?$/;\n\treturn {\n\t\tname: \"vxrn:hmr-client-noop\",\n\t\tresolveId(source, importer) {\n\t\t\tif ((source.startsWith(\"react-native/\") || importer != null && /(^|[\\\\/])react-native[\\\\/]/.test(importer)) && RN_HMR_CLIENT_RE.test(source)) return {\n\t\t\t\tid: \"\\0vxrn-hmr-client-noop\",\n\t\t\t\texternal: false\n\t\t\t};\n\t\t},\n\t\tload(id) {\n\t\t\tif (id === \"\\0vxrn-hmr-client-noop\") return {\n\t\t\t\tcode: `const HMRClient = { setup() {}, enable() {}, disable() {}, registerBundle() {}, log() {}, isEnabled() { return false } }\nexport default HMRClient`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t}\n\t};\n}\nfunction nativeIdentityAliasPlugin(platform) {\n\tconst packages = /* @__PURE__ */ new Map();\n\tlet resolver;\n\tconst findPackage = (directory) => {\n\t\tif (packages.has(directory)) return packages.get(directory);\n\t\tlet result = null;\n\t\tconst manifest = join(directory, \"package.json\");\n\t\tif (existsSync(manifest)) try {\n\t\t\tconst field = JSON.parse(readFileSync(manifest, \"utf8\"))[\"react-native\"];\n\t\t\tresult = {\n\t\t\t\troot: directory,\n\t\t\t\taliases: field && typeof field === \"object\" ? field : {}\n\t\t\t};\n\t\t} catch {}\n\t\telse {\n\t\t\tconst parent = dirname(directory);\n\t\t\tif (parent !== directory) result = findPackage(parent);\n\t\t}\n\t\tpackages.set(directory, result);\n\t\treturn result;\n\t};\n\treturn {\n\t\tname: \"vxrn:native-identity-alias\",\n\t\tasync resolveId(source, importer) {\n\t\t\tif (!importer || !source.startsWith(\".\")) return;\n\t\t\tconst pkg = findPackage(dirname(importer));\n\t\t\tif (!pkg) return;\n\t\t\tconst key = `./${normalizePath(relative(pkg.root, resolve(dirname(importer), source)))}`;\n\t\t\tif (pkg.aliases[key] !== key) return;\n\t\t\tif (!resolver) {\n\t\t\t\tconst { ResolverFactory } = await import(\"rolldown/experimental\");\n\t\t\t\tresolver = new ResolverFactory({\n\t\t\t\t\t...getNativeResolveConfig(platform),\n\t\t\t\t\taliasFields: []\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst result = resolver.sync(dirname(importer), source);\n\t\t\tif (result.path) return result.path;\n\t\t}\n\t};\n}\nfunction nativeExportsPrecedencePlugin(root, platform) {\n\tconst manifests = /* @__PURE__ */ new Map();\n\tconst readManifest = (directory) => {\n\t\tif (!manifests.has(directory)) {\n\t\t\tlet manifest = null;\n\t\t\ttry {\n\t\t\t\tmanifest = JSON.parse(readFileSync(join(directory, \"package.json\"), \"utf8\"));\n\t\t\t} catch {}\n\t\t\tmanifests.set(directory, manifest);\n\t\t}\n\t\treturn manifests.get(directory);\n\t};\n\tconst resolvers = /* @__PURE__ */ new Map();\n\treturn {\n\t\tname: \"vxrn:native-exports-precedence\",\n\t\tasync resolveId(source, importer, options) {\n\t\t\tif (source.startsWith(\".\") || source.startsWith(\"/\") || source.includes(\":\")) return;\n\t\t\tconst resolved = await this.resolve(source, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t\tif (!resolved || resolved.external || resolved.id.startsWith(\"\\0\")) return resolved;\n\t\t\tconst name = source.split(\"/\").slice(0, source.startsWith(\"@\") ? 2 : 1).join(\"/\");\n\t\t\tlet directory = dirname(resolved.id);\n\t\t\twhile (readManifest(directory)?.name !== name) {\n\t\t\t\tif (dirname(directory) === directory) return resolved;\n\t\t\t\tdirectory = dirname(directory);\n\t\t\t}\n\t\t\tconst exportsMap = JSON.stringify(readManifest(directory)?.exports ?? null);\n\t\t\tif (!exportsMap.includes(\"\\\"react-native\\\"\") || !exportsMap.includes(\"\\\"browser\\\"\")) return resolved;\n\t\t\tconst kind = options.kind === \"require-call\" ? \"require\" : \"import\";\n\t\t\tlet resolver = resolvers.get(kind);\n\t\t\tif (!resolver) {\n\t\t\t\tconst { ResolverFactory } = await import(\"rolldown/experimental\");\n\t\t\t\tresolver = new ResolverFactory({\n\t\t\t\t\t...getNativeResolveConfig(platform),\n\t\t\t\t\tconditionNames: [\n\t\t\t\t\t\t\"react-native\",\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\"default\"\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\tresolvers.set(kind, resolver);\n\t\t\t}\n\t\t\tconst native = resolver.sync(importer ? dirname(importer) : root, source);\n\t\t\tif (!native.path || native.path === resolved.id) return resolved;\n\t\t\treturn this.resolve(native.path, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t}\n\t};\n}\nfunction nativeDeclarationAliasPlugin(root, platform) {\n\tconst resolvers = /* @__PURE__ */ new Map();\n\treturn {\n\t\tname: \"vxrn:declaration-alias\",\n\t\tasync resolveId(source, importer, options) {\n\t\t\tif (source.startsWith(\".\") || source.startsWith(\"/\") || source.includes(\":\")) return;\n\t\t\tconst resolved = await this.resolve(source, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t\tif (!resolved || resolved.external || !/\\.d\\.[cm]?ts$/.test(resolved.id)) return resolved;\n\t\t\tconst kind = options.kind === \"require-call\" ? \"require\" : \"import\";\n\t\t\tlet resolver = resolvers.get(kind);\n\t\t\tif (!resolver) {\n\t\t\t\tconst { ResolverFactory } = await import(\"rolldown/experimental\");\n\t\t\t\tresolver = new ResolverFactory({\n\t\t\t\t\t...getNativeResolveConfig(platform),\n\t\t\t\t\tconditionNames: [\n\t\t\t\t\t\t\"react-native\",\n\t\t\t\t\t\t\"browser\",\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\"default\"\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\tresolvers.set(kind, resolver);\n\t\t\t}\n\t\t\tconst runtime = resolver.sync(importer ? dirname(importer) : root, source);\n\t\t\tif (!runtime.path || /\\.d\\.[cm]?ts$/.test(runtime.path)) this.error(`Native import ${source} resolves to a declaration without a runtime export`);\n\t\t\treturn this.resolve(runtime.path, importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t}\n\t};\n}\nfunction nativeAssetRegistryPlugin(root) {\n\tlet registryPath;\n\treturn {\n\t\tname: \"vxrn:asset-registry\",\n\t\tasync resolveId(source, importer) {\n\t\t\tif (source !== \"react-native/asset-registry\" && source !== \"@react-native/assets-registry/registry\") return;\n\t\t\tif (registryPath === void 0) try {\n\t\t\t\tconst reactNativeRoot = dirname(resolvePath(\"react-native/package.json\", root));\n\t\t\t\tconst exportedRegistry = join(reactNativeRoot, \"src/asset-registry.js\");\n\t\t\t\tregistryPath = existsSync(exportedRegistry) ? exportedRegistry : resolvePath(\"@react-native/assets-registry/registry\", reactNativeRoot);\n\t\t\t} catch {\n\t\t\t\tregistryPath = null;\n\t\t\t}\n\t\t\tif (registryPath) return this.resolve(normalizePath(registryPath), importer, { skipSelf: true });\n\t\t}\n\t};\n}\nfunction nativePackageDedupePlugin(root) {\n\tconst packages = /* @__PURE__ */ new Set([\n\t\t...dedupe,\n\t\t\"react-native-worklets\",\n\t\t\"react-native-nitro-modules\"\n\t]);\n\treturn {\n\t\tname: \"vxrn:native-package-dedupe\",\n\t\tasync resolveId(source) {\n\t\t\tconst parts = source.split(\"/\");\n\t\t\tconst packageName = source.startsWith(\"@\") ? parts.slice(0, 2).join(\"/\") : parts[0];\n\t\t\tif (!packages.has(packageName)) return;\n\t\t\treturn this.resolve(source, join(root, \"package.json\"), { skipSelf: true });\n\t\t}\n\t};\n}\nfunction reactNativeDedupePlugin(root) {\n\tlet reactNativeRoot;\n\treturn {\n\t\tname: \"vxrn:react-native-dedupe\",\n\t\tasync resolveId(source, importer, options) {\n\t\t\tif (source !== \"react-native\" && !source.startsWith(\"react-native/\")) return;\n\t\t\tif (reactNativeRoot === void 0) try {\n\t\t\t\treactNativeRoot = realpathSync(dirname(resolvePath(\"react-native/package.json\", root)));\n\t\t\t} catch {\n\t\t\t\treactNativeRoot = null;\n\t\t\t}\n\t\t\tif (!reactNativeRoot) return;\n\t\t\tconst exported = await this.resolve(source, join(root, \"package.json\"), {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t\tif (exported) return exported;\n\t\t\tconst subpath = source === \"react-native\" ? \"index.js\" : source.slice(13);\n\t\t\tconst unified = await this.resolve(normalizePath(resolve(reactNativeRoot, subpath)), importer, {\n\t\t\t\tskipSelf: true,\n\t\t\t\tkind: options.kind\n\t\t\t});\n\t\t\tif (unified) return unified;\n\t\t\tthis.error(`[vxrn] '${source}' is missing from the app's react-native (${reactNativeRoot}), imported by '${importer}'. refusing the nested copy so the native runtime stays a singleton.`);\n\t\t}\n\t};\n}\nfunction cssStubPlugin() {\n\treturn {\n\t\tname: \"vxrn:css-stub\",\n\t\tload: { handler(id) {\n\t\t\tif (id.endsWith(\".css\")) return {\n\t\t\t\tcode: \"\",\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t} }\n\t};\n}\nfunction vxrnCompilerPlugin(platform, dev, projectRoot = process.cwd(), sourceMaps = false) {\n\tlet compiler = null;\n\tconst isRefreshCandidate = (id) => dev && !id.includes(\"node_modules\") && !id.includes(\"__virtual-native-entry\") && /\\.[tj]sx?$/.test(id);\n\treturn {\n\t\tname: \"vxrn:compiler\",\n\t\tasync transform(code, id) {\n\t\t\tif (!/\\.[cm]?[jt]sx?$/.test(id)) return;\n\t\t\tif (id.includes(\"\\0\") || id.includes(\"virtual:\")) return;\n\t\t\tconst needsRefresh = isRefreshCandidate(id);\n\t\t\tif (!compiler) compiler = await import(\"@vxrn/compiler\");\n\t\t\tconst props = {\n\t\t\t\tid,\n\t\t\t\tcode,\n\t\t\t\tprojectRoot,\n\t\t\t\tdevelopment: dev,\n\t\t\t\tenvironment: platform,\n\t\t\t\treactForRNVersion: \"19\"\n\t\t\t};\n\t\t\tlet babelOptions = compiler.getBabelOptions(props);\n\t\t\tlet curCode = code;\n\t\t\tconst intermediateMaps = [];\n\t\t\tconst isWorkletPlugin = (entry) => {\n\t\t\t\tif (!entry) return false;\n\t\t\t\tconst name = typeof entry === \"string\" ? entry : Array.isArray(entry) ? entry[0] : null;\n\t\t\t\treturn typeof name === \"string\" && (name.includes(\"react-native-worklets\") || name.includes(\"react-native-reanimated\"));\n\t\t\t};\n\t\t\tconst workletEntry = babelOptions?.plugins?.find(isWorkletPlugin);\n\t\t\tconst workletPluginOptions = Array.isArray(workletEntry) ? workletEntry[1] : void 0;\n\t\t\tconst useWorklets = compiler.isNativeWorkletsEnabled() && (Boolean(workletEntry) || compiler.shouldTransformWorklets({\n\t\t\t\tid,\n\t\t\t\tcode\n\t\t\t}));\n\t\t\tconst compilerPluginIndex = babelOptions?.plugins?.findIndex((x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\") ?? -1;\n\t\t\tif (compilerPluginIndex !== -1) {\n\t\t\t\tif (useWorklets) {\n\t\t\t\t\tconst prepared = compiler.prepareWorkletsForReactCompiler(id, curCode, sourceMaps);\n\t\t\t\t\tif (prepared) {\n\t\t\t\t\t\tcurCode = prepared.code;\n\t\t\t\t\t\tif (prepared.map) intermediateMaps.push(prepared.map);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst compilerPluginOptions = babelOptions.plugins[compilerPluginIndex][1] || {};\n\t\t\t\tif (!(compilerPluginOptions.compiler === \"babel\" || process.env.ONE_REACT_COMPILER === \"babel\" || process.env.VXRN_REACT_COMPILER === \"babel\")) {\n\t\t\t\t\tconst compilerOut = await compiler.transformOxcReactCompiler(id, curCode, compilerPluginOptions, sourceMaps);\n\t\t\t\t\tif (compilerOut?.code) {\n\t\t\t\t\t\tcurCode = compilerOut.code;\n\t\t\t\t\t\tif (sourceMaps && compilerOut.map) intermediateMaps.push(compilerOut.map);\n\t\t\t\t\t}\n\t\t\t\t\tbabelOptions.plugins.splice(compilerPluginIndex, 1);\n\t\t\t\t\tif (babelOptions.plugins.length === 0 && !babelOptions.configFile && !babelOptions.babelrc) babelOptions = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useWorklets) {\n\t\t\t\tconst workletOut = await compiler.transformWorklets(id, curCode, sourceMaps, {\n\t\t\t\t\tprojectRoot,\n\t\t\t\t\t...workletPluginOptions\n\t\t\t\t});\n\t\t\t\tif (workletOut?.code) {\n\t\t\t\t\tcurCode = workletOut.code;\n\t\t\t\t\tif (sourceMaps && workletOut.map) intermediateMaps.push(workletOut.map);\n\t\t\t\t}\n\t\t\t\tif (babelOptions?.plugins) {\n\t\t\t\t\tbabelOptions.plugins = babelOptions.plugins.filter((entry) => !isWorkletPlugin(entry));\n\t\t\t\t\tif (babelOptions.plugins.length === 0 && !babelOptions.configFile && !babelOptions.babelrc) babelOptions = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!babelOptions && !needsRefresh) {\n\t\t\t\tif (curCode !== code) {\n\t\t\t\t\tlet finalMap = void 0;\n\t\t\t\t\tif (sourceMaps && intermediateMaps.length > 0) if (intermediateMaps.length === 1) finalMap = intermediateMaps[0];\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\t\t\tfinalMap = remapping(intermediateMaps.slice().reverse(), () => null);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcode: curCode,\n\t\t\t\t\t\tmap: finalMap\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (sourceMaps && babelOptions) {\n\t\t\t\tbabelOptions = {\n\t\t\t\t\t...babelOptions,\n\t\t\t\t\tsourceMaps: true,\n\t\t\t\t\tsourceFileName: id\n\t\t\t\t};\n\t\t\t\tdelete babelOptions.inputSourceMap;\n\t\t\t}\n\t\t\tif (babelOptions) {\n\t\t\t\tconst result = await compiler.transformBabel(id, curCode, babelOptions);\n\t\t\t\tif (result?.code) {\n\t\t\t\t\tcurCode = result.code;\n\t\t\t\t\tif (sourceMaps && result.map) intermediateMaps.push(result.map);\n\t\t\t\t\tif (!needsRefresh) {\n\t\t\t\t\t\tlet finalMap = void 0;\n\t\t\t\t\t\tif (sourceMaps && intermediateMaps.length > 0) if (intermediateMaps.length === 1) finalMap = intermediateMaps[0];\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\t\t\t\tfinalMap = remapping(intermediateMaps.slice().reverse(), () => null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tcode: curCode,\n\t\t\t\t\t\t\tmap: finalMap\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (needsRefresh) {\n\t\t\t\tconst { transformSync } = await import(\"oxc-transform-react\");\n\t\t\t\tconst jsxImportSource = compiler.configuration?.enableNativewind && !id.includes(\"node_modules\") ? \"nativewind\" : \"react\";\n\t\t\t\tconst res = transformSync(id, curCode, {\n\t\t\t\t\tjsx: {\n\t\t\t\t\t\tdevelopment: dev,\n\t\t\t\t\t\truntime: \"automatic\",\n\t\t\t\t\t\timportSource: jsxImportSource,\n\t\t\t\t\t\trefresh: {\n\t\t\t\t\t\t\trefreshReg: \"__vxrnRefreshReg\",\n\t\t\t\t\t\t\trefreshSig: \"__vxrnRefreshSig\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\treactCompiler: false,\n\t\t\t\t\tsourcemap: sourceMaps\n\t\t\t\t});\n\t\t\t\tif (res.fatal) throw new Error(`[vxrn:compiler] oxc react transform failed on ${id}: ${(res.errors ?? []).map((e) => e.message ?? String(e)).join(\", \")}`);\n\t\t\t\tconst header = `var __prevRefreshReg = globalThis.$RefreshReg$;\nvar __prevRefreshSig = globalThis.$RefreshSig$;\nif (globalThis.__ReactRefresh) {\n globalThis.$RefreshReg$ = function(type, id) {\n globalThis.__ReactRefresh.register(type, \"${id.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\")}\" + \" \" + id);\n };\n globalThis.$RefreshSig$ = globalThis.__ReactRefresh.createSignatureFunctionForTransform;\n}\n// keep registration calls local so rolldown retains them in the initial bundle.\nvar __vxrnRefreshReg = globalThis.$RefreshReg$;\nvar __vxrnRefreshSig = globalThis.$RefreshSig$;\n\n`;\n\t\t\t\tconst footer = `\n\nglobalThis.$RefreshReg$ = __prevRefreshReg;\nglobalThis.$RefreshSig$ = __prevRefreshSig;\nif (import.meta.hot) {\n import.meta.hot.acceptReactRefresh(function() {\n if (globalThis.__ReactRefresh) {\n setTimeout(function() { globalThis.__ReactRefresh.performReactRefresh(); }, 30);\n }\n });\n}\n`;\n\t\t\t\tlet out;\n\t\t\t\tlet finalMap = void 0;\n\t\t\t\tif (sourceMaps) {\n\t\t\t\t\tconst MagicString = (await import(\"magic-string\")).default;\n\t\t\t\t\tconst ms = new MagicString(res.code);\n\t\t\t\t\tms.prepend(header);\n\t\t\t\t\tms.append(footer);\n\t\t\t\t\tout = ms.toString();\n\t\t\t\t\tconst allMaps = [\n\t\t\t\t\t\tms.generateMap({\n\t\t\t\t\t\t\tsource: id,\n\t\t\t\t\t\t\thires: true\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tres.map,\n\t\t\t\t\t\t...intermediateMaps.slice().reverse()\n\t\t\t\t\t].filter(Boolean);\n\t\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\t\tfinalMap = remapping(allMaps, () => null);\n\t\t\t\t} else out = header + res.code + footer;\n\t\t\t\treturn {\n\t\t\t\t\tcode: out,\n\t\t\t\t\tmap: finalMap\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\n}\nfunction flowStripPlugin() {\n\treturn {\n\t\tname: \"vxrn:flow-strip\",\n\t\ttransform: { async handler(code, id) {\n\t\t\tif (!shouldStripFlow(id, code)) return;\n\t\t\tconst { stripFlowTypes } = await import(\"@vxrn/compiler\");\n\t\t\tconst result = await stripFlowTypes(id, code);\n\t\t\treturn {\n\t\t\t\tcode: result.code,\n\t\t\t\tmap: result.map\n\t\t\t};\n\t\t} }\n\t};\n}\nfunction assetPlugin(opts) {\n\tconst assetRegex = new RegExp(`\\\\.(?:${DEFAULT_ASSET_EXTS.join(\"|\")})$`);\n\treturn {\n\t\tname: \"vxrn:asset\",\n\t\tload: { async handler(id) {\n\t\t\tif (!assetRegex.test(id)) return;\n\t\t\tconst assetData = await getNativeAssetData(id, opts.root, opts.platform);\n\t\t\topts.onAsset?.(assetData);\n\t\t\tif (opts.assetsDest) copyNativeAssetFiles(assetData, opts.assetsDest, opts.platform);\n\t\t\treturn {\n\t\t\t\tcode: `module.exports = require('react-native/asset-registry').registerAsset(${JSON.stringify(assetData)});`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t} }\n\t};\n}\nfunction createNativeDevAssetRegistry() {\n\tconst assets = /* @__PURE__ */ new Map();\n\treturn {\n\t\tregister(asset) {\n\t\t\tfor (const [index, scale] of asset.scales.entries()) {\n\t\t\t\tconst filePath = asset.files[index];\n\t\t\t\tif (!filePath) continue;\n\t\t\t\tconst fileName = `${asset.name}${scale === 1 ? \"\" : `@${scale}x`}.${asset.type}`;\n\t\t\t\tassets.set(`${asset.httpServerLocation}/${fileName}`, {\n\t\t\t\t\tfilePath,\n\t\t\t\t\thash: asset.hash,\n\t\t\t\t\ttype: asset.type\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresolve(pathname, hash) {\n\t\t\tconst asset = assets.get(pathname);\n\t\t\tif (!asset || hash !== void 0 && hash !== asset.hash) return;\n\t\t\treturn asset;\n\t\t}\n\t};\n}\nconst NATIVE_IMAGE_EXTS = /* @__PURE__ */ new Set([\n\t\"png\",\n\t\"jpg\",\n\t\"jpeg\",\n\t\"gif\",\n\t\"webp\",\n\t\"bmp\",\n\t\"psd\",\n\t\"svg\",\n\t\"tiff\",\n\t\"ktx\"\n]);\nfunction parseNativeAssetName(filePath) {\n\tconst type = extname(filePath).slice(1);\n\tif (!type) return;\n\tconst stem = basename(filePath, `.${type}`);\n\tconst platformMatch = stem.match(/^(.*)\\.(ios|android)$/);\n\tconst platform = platformMatch?.[2];\n\tconst scaleMatch = (platformMatch?.[1] ?? stem).match(/^(.+?)(?:@([\\d.]+)x)?$/);\n\tif (!scaleMatch) return;\n\tconst scale = scaleMatch[2] === void 0 ? 1 : Number.parseFloat(scaleMatch[2]);\n\tif (!Number.isFinite(scale) || scale <= 0) return;\n\treturn {\n\t\tname: scaleMatch[1],\n\t\tscale,\n\t\tplatform,\n\t\ttype\n\t};\n}\nfunction getNativeAssetUrlDirectory(root, assetDirectory) {\n\tconst safeDirectory = relative(realpathSync(root), realpathSync(assetDirectory)).replace(/\\\\/g, \"/\").split(\"/\").filter((segment) => segment && segment !== \".\").map((segment) => segment === \"..\" ? \"_\" : segment).join(\"/\");\n\treturn safeDirectory ? `/assets/${safeDirectory}` : \"/assets\";\n}\nasync function getNativeAssetData(id, root, platform) {\n\tconst requested = parseNativeAssetName(id);\n\tif (!requested) throw new Error(`[vxrn] invalid native asset path: ${id}`);\n\tconst assetDirectory = dirname(id);\n\tconst filesByScale = /* @__PURE__ */ new Map();\n\tfor (const fileName of readdirSync(assetDirectory)) {\n\t\tconst candidate = parseNativeAssetName(fileName);\n\t\tif (!candidate || candidate.name !== requested.name || candidate.type !== requested.type || candidate.platform !== void 0 && candidate.platform !== platform) continue;\n\t\tconst platformSpecific = candidate.platform === platform;\n\t\tconst existing = filesByScale.get(candidate.scale);\n\t\tif (!existing || platformSpecific && !existing.platformSpecific) filesByScale.set(candidate.scale, {\n\t\t\tfile: join(assetDirectory, fileName),\n\t\t\tplatformSpecific\n\t\t});\n\t}\n\tconst scales = [...filesByScale.keys()].sort((a, b) => a - b);\n\tconst files = scales.map((scale) => filesByScale.get(scale).file);\n\tif (files.length === 0) throw new Error(`[vxrn] native asset has no files for ${platform}: ${id}`);\n\tconst hash = createHash(\"md5\");\n\tfor (const file of files) hash.update(readFileSync(file));\n\tconst assetData = {\n\t\t__packager_asset: true,\n\t\tname: requested.name,\n\t\ttype: requested.type,\n\t\tscales,\n\t\tfiles,\n\t\thttpServerLocation: getNativeAssetUrlDirectory(root, assetDirectory),\n\t\tfileSystemLocation: assetDirectory,\n\t\thash: hash.digest(\"hex\")\n\t};\n\tif (NATIVE_IMAGE_EXTS.has(requested.type)) try {\n\t\tconst { imageSize } = await import(\"image-size\");\n\t\tconst dims = imageSize(files[0]);\n\t\tassetData.width = dims.width === void 0 ? void 0 : dims.width / scales[0];\n\t\tassetData.height = dims.height === void 0 ? void 0 : dims.height / scales[0];\n\t} catch {}\n\treturn assetData;\n}\nfunction getIOSAssetScales(scales) {\n\tconst supported = scales.filter((scale) => scale === 1 || scale === 2 || scale === 3);\n\tif (supported.length > 0 || scales.length === 0) return supported;\n\treturn [scales.find((scale) => scale > 3) ?? scales[scales.length - 1]];\n}\nfunction getAndroidAssetDirectory(type, scale) {\n\tif (!(/* @__PURE__ */ new Set([\n\t\t\"gif\",\n\t\t\"heic\",\n\t\t\"heif\",\n\t\t\"jpeg\",\n\t\t\"jpg\",\n\t\t\"ktx\",\n\t\t\"png\",\n\t\t\"webp\",\n\t\t\"xml\"\n\t])).has(type)) return \"raw\";\n\tconst density = (/* @__PURE__ */ new Map([\n\t\t[.75, \"ldpi\"],\n\t\t[1, \"mdpi\"],\n\t\t[1.5, \"hdpi\"],\n\t\t[2, \"xhdpi\"],\n\t\t[3, \"xxhdpi\"],\n\t\t[4, \"xxxhdpi\"]\n\t])).get(scale);\n\tif (density) return `drawable-${density}`;\n\treturn `drawable-${Math.round(scale * 160)}dpi`;\n}\nfunction getAndroidAssetName(asset) {\n\treturn `${asset.httpServerLocation}/${asset.name}`.toLowerCase().replace(/^\\//, \"\").replace(/\\//g, \"_\").replace(/([^a-z0-9_])/g, \"\").replace(/^assets_/, \"\");\n}\nfunction copyNativeAssetFiles(asset, assetsDest, platform) {\n\tconst validIOSScales = new Set(getIOSAssetScales(asset.scales));\n\tfor (const [index, scale] of asset.scales.entries()) {\n\t\tif (platform === \"ios\" && !validIOSScales.has(scale)) continue;\n\t\tconst destination = platform === \"android\" ? join(assetsDest, getAndroidAssetDirectory(asset.type, scale), `${getAndroidAssetName(asset)}.${asset.type}`) : join(assetsDest, asset.httpServerLocation.slice(1), `${asset.name}${scale === 1 ? \"\" : `@${scale}x`}.${asset.type}`);\n\t\tmkdirSync(dirname(destination), { recursive: true });\n\t\tcopyFileSync(asset.files[index], destination);\n\t}\n}\nfunction hermesCompatSWCPlugin(dev, sourceMaps = false) {\n\tlet oxc = null;\n\treturn {\n\t\tname: \"vxrn:hermes-compat\",\n\t\tasync transform(code, id) {\n\t\t\tif (!/\\.[cm]?[jt]sx?$/.test(id)) return;\n\t\t\tif (id.includes(\"\\0\") || id.includes(\"virtual:\")) return;\n\t\t\tconst hasClass = /\\bclass(?:\\s|\\{)/.test(code);\n\t\t\tconst hasAsync = code.includes(\"async\");\n\t\t\tconst hasBlockScopedBinding = /\\b(?:const|let)\\s/.test(code);\n\t\t\tif (!hasClass && !hasAsync && !hasBlockScopedBinding) return;\n\t\t\tlet output;\n\t\t\tif (code.length <= 5e5 || hasClass) {\n\t\t\t\tif (!oxc) oxc = await import(\"oxc-transform\");\n\t\t\t\tconst lang = /\\.[cm]?ts$/.test(id) ? \"ts\" : id.endsWith(\".tsx\") ? \"tsx\" : \"jsx\";\n\t\t\t\tconst result = oxc.transformSync(id, code, {\n\t\t\t\t\tlang,\n\t\t\t\t\ttarget: \"es2020\",\n\t\t\t\t\tassumptions: { setPublicClassFields: true },\n\t\t\t\t\tjsx: \"preserve\",\n\t\t\t\t\tsourcemap: sourceMaps,\n\t\t\t\t\tsourceType: id.endsWith(\".cjs\") ? \"script\" : \"module\"\n\t\t\t\t});\n\t\t\t\tif (result.errors?.length) {\n\t\t\t\t\tconst err = result.errors[0];\n\t\t\t\t\tthrow new Error(err.message + (err.codeframe ? `\n${err.codeframe}` : \"\"));\n\t\t\t\t}\n\t\t\t\toutput = {\n\t\t\t\t\tcode: result.code,\n\t\t\t\t\tmap: sourceMaps ? result.map : void 0\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (hasClass || hasBlockScopedBinding) {\n\t\t\t\tconst { transformHermesClasses } = await import(\"@vxrn/compiler\");\n\t\t\t\tconst classes = await transformHermesClasses(output?.code ?? code, id, sourceMaps);\n\t\t\t\tif (classes) {\n\t\t\t\t\tif (classes.map && output?.map) {\n\t\t\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\t\t\tclasses.map = remapping([classes.map, output.map], () => null);\n\t\t\t\t\t}\n\t\t\t\t\toutput = classes;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst lowered = await transformHermesAsync(output?.code ?? code, id, sourceMaps);\n\t\t\tif (!lowered) return output;\n\t\t\tif (lowered.map && output?.map) {\n\t\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\t\tlowered.map = remapping([lowered.map, output.map], () => null);\n\t\t\t}\n\t\t\treturn lowered;\n\t\t}\n\t};\n}\nconst hermesCompatPlugin = hermesCompatSWCPlugin;\nfunction hermesLoopsPlugin(sourceMaps = false) {\n\tlet compiler = null;\n\treturn {\n\t\tname: \"vxrn:hermes-loops\",\n\t\tasync transform(code, id) {\n\t\t\tif (!/\\.[cm]?[jt]sx?$/.test(id)) return;\n\t\t\tif (id.includes(\"\\0\") || id.includes(\"virtual:\")) return;\n\t\t\tif (!compiler) compiler = await import(\"@vxrn/compiler\");\n\t\t\tconst result = compiler.transformHermesLoops(code, id);\n\t\t\tif (!result) return;\n\t\t\tif (!sourceMaps) return {\n\t\t\t\tcode: result.code,\n\t\t\t\tmap: null\n\t\t\t};\n\t\t\tif (result.maps.length === 1) return {\n\t\t\t\tcode: result.code,\n\t\t\t\tmap: result.maps[0]\n\t\t\t};\n\t\t\tconst remapping = (await import(\"@jridgewell/remapping\")).default;\n\t\t\treturn {\n\t\t\t\tcode: result.code,\n\t\t\t\tmap: remapping(result.maps.slice().reverse(), () => null)\n\t\t\t};\n\t\t}\n\t};\n}\nfunction getHmrRuntimeSource() {\n\treturn `\n// vxrn HMR runtime for rolldown devMode\nvar BaseDevRuntime = DevRuntime;\n\nclass ReactNativeDevRuntime extends BaseDevRuntime {\n constructor() {\n var clientId = 'rn-' + Date.now() + '-' + Math.random().toString(36).slice(2);\n super(clientId);\n this._socket = null;\n this.moduleHotContexts = {};\n this.lastSeq = 0;\n }\n\n createModuleHotContext(moduleId) {\n var runtime = this;\n var ctx = {\n acceptCallbacks: [],\n reactRefreshAcceptCallback: null,\n accept: function(deps, callback) {\n if (typeof deps === 'function' || !deps) {\n ctx.acceptCallbacks.push({\n deps: [moduleId],\n fn: function(modules) { if (typeof deps === 'function') deps(modules[0]); }\n });\n } else if (typeof deps === 'string') {\n ctx.acceptCallbacks.push({\n deps: [deps],\n fn: function(modules) { if (callback) callback(modules[0]); }\n });\n } else if (Array.isArray(deps)) {\n ctx.acceptCallbacks.push({ deps: deps, fn: callback || function() {} });\n }\n },\n acceptReactRefresh: function(callback) {\n ctx.reactRefreshAcceptCallback = callback;\n },\n invalidate: function() { runtime.requestReload('module invalidated: ' + moduleId); },\n on: function() {},\n off: function() {},\n send: function() {},\n get refresh() { return globalThis.__ReactRefresh; },\n get refreshUtils() {\n return {\n isReactRefreshBoundary: function(exports) {\n if (!globalThis.__ReactRefresh) return false;\n if (globalThis.__ReactRefresh.isLikelyComponentType(exports)) return true;\n if (!exports || typeof exports !== 'object') return false;\n var hasExports = false, allComponents = true;\n for (var key in exports) {\n hasExports = true;\n if (key === '__esModule') continue;\n if (!globalThis.__ReactRefresh.isLikelyComponentType(exports[key])) allComponents = false;\n }\n return hasExports && allComponents;\n },\n enqueueUpdate: function() {\n if (globalThis.__ReactRefresh) {\n setTimeout(function() { globalThis.__ReactRefresh.performReactRefresh(); }, 50);\n }\n }\n };\n }\n };\n this.moduleHotContexts[moduleId] = ctx;\n return ctx;\n }\n\n isSelfAccepted(moduleId) {\n var ctx = this.moduleHotContexts[moduleId];\n var explicitlyAccepted = !!(ctx && ctx.acceptCallbacks.some(function(callback) {\n return callback.deps.indexOf(moduleId) !== -1;\n }));\n if (explicitlyAccepted) return { accepted: true, reactRefresh: false };\n if (!ctx || !ctx.reactRefreshAcceptCallback || !globalThis.__ReactRefresh) {\n return { accepted: false, reactRefresh: false };\n }\n var exports = this.loadExports(moduleId);\n return {\n accepted: ctx.refreshUtils.isReactRefreshBoundary(exports),\n reactRefresh: true\n };\n }\n\n acceptsDependency(parentId, moduleId) {\n var ctx = this.moduleHotContexts[parentId];\n return !!(ctx && ctx.acceptCallbacks.some(function(callback) {\n return callback.deps.indexOf(moduleId) !== -1;\n }));\n }\n\n findBoundaries(moduleId, traversed, updateSet, boundaries) {\n if (traversed.has(moduleId)) return true;\n traversed.add(moduleId);\n updateSet.add(moduleId);\n\n var selfAcceptance = this.isSelfAccepted(moduleId);\n if (selfAcceptance.accepted) {\n boundaries.push({\n boundary: moduleId,\n acceptedVia: moduleId,\n reactRefresh: selfAcceptance.reactRefresh\n });\n return true;\n }\n\n var importers = this.getImporters(moduleId).filter(function(importer) {\n return this.isExecuted(importer);\n }, this);\n if (importers.length === 0) return false;\n\n for (var i = 0; i < importers.length; i++) {\n var importer = importers[i];\n if (this.acceptsDependency(importer, moduleId)) {\n boundaries.push({ boundary: importer, acceptedVia: moduleId });\n } else if (!this.findBoundaries(importer, traversed, updateSet, boundaries)) {\n return false;\n }\n }\n return true;\n }\n\n applyHmrUpdate(code, changedIds, seq) {\n if (seq !== this.lastSeq + 1) return false;\n this.lastSeq = seq;\n\n var traversed = new Set();\n var updateSet = new Set();\n var boundaries = [];\n for (var i = 0; i < changedIds.length; i++) {\n var changedId = changedIds[i];\n if (!this.isExecuted(changedId)) continue;\n if (!this.findBoundaries(changedId, traversed, updateSet, boundaries)) return false;\n }\n if (boundaries.length === 0) return true;\n\n var callbacks = boundaries.map(function(item) {\n var ctx = this.moduleHotContexts[item.boundary];\n var selectedCallbacks = ctx ? ctx.acceptCallbacks.filter(function(callback) {\n return callback.deps.indexOf(item.acceptedVia) !== -1;\n }) : [];\n if (item.reactRefresh && ctx && ctx.reactRefreshAcceptCallback) {\n selectedCallbacks.push({\n deps: [item.acceptedVia],\n fn: function() { ctx.reactRefreshAcceptCallback(); }\n });\n }\n return {\n boundary: item.boundary,\n acceptedVia: item.acceptedVia,\n callbacks: selectedCallbacks\n };\n }, this);\n\n if (globalThis.globalEvalWithSourceUrl) globalThis.globalEvalWithSourceUrl(code);\n else (0, eval)(code);\n\n var modulesToReplace = Array.from(updateSet);\n for (var j = 0; j < modulesToReplace.length; j++) {\n if (!this.hasFactory(modulesToReplace[j])) return false;\n }\n for (var k = 0; k < modulesToReplace.length; k++) {\n this.removeModuleCache(modulesToReplace[k]);\n }\n\n for (var m = 0; m < callbacks.length; m++) {\n var apply = callbacks[m];\n this.initModule(apply.acceptedVia);\n var freshExports = this.loadExports(apply.acceptedVia);\n for (var n = 0; n < apply.callbacks.length; n++) {\n apply.callbacks[n].fn([freshExports]);\n }\n }\n\n for (var p = 0; p < changedIds.length; p++) {\n try {\n if (globalThis.__VXRN_ON_MODULE_UPDATED__) {\n globalThis.__VXRN_ON_MODULE_UPDATED__(changedIds[p]);\n }\n } catch (error) {\n console.error('[vxrn HMR]: module update hook failed', error);\n }\n }\n return true;\n }\n\n requestReload(reason) {\n if (this._socket && this._socket.readyState === 1) {\n this._socket.send(JSON.stringify({ type: 'hmr:invalidate', reason: reason }));\n }\n }\n\n reload(reason) {\n var reloadNativeBundle = globalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__;\n if (typeof reloadNativeBundle === 'function') {\n reloadNativeBundle(reason);\n return;\n }\n console.error('[vxrn HMR]: DevSettings.reload is unavailable');\n }\n\n setup(socket) {\n if (this._socket) return;\n this._socket = socket;\n var runtime = this;\n // addEventListener rather than socket.onmessage: the bundle's WebSocket is\n // whatever the host platform provides, and a host that does not honor on*\n // property assignment would otherwise leave the app permanently without\n // Fast Refresh and say nothing.\n socket.addEventListener('message', function(event) {\n var message;\n try {\n message = JSON.parse(event.data);\n } catch (error) {\n return;\n }\n try {\n if (message.type === 'hmr:update') {\n // a patch that cannot be applied in place is the reload signal\n if (!runtime.applyHmrUpdate(message.code, message.changedIds, message.seq)) {\n runtime.reload('native HMR update could not be applied');\n }\n } else if (message.type === 'hmr:reload') {\n runtime.reload('native route map changed');\n }\n } catch (error) {\n console.error('[vxrn HMR]: failed to apply update', error);\n }\n });\n socket.addEventListener('error', function(event) {\n console.warn('[vxrn HMR]: connection error', (event && event.message) || event);\n });\n }\n}\n\nglobalThis.__rolldown_runtime__ = new ReactNativeDevRuntime();\n`;\n}\n\nexport { buildNativeBundle, createNativeDevAssetRegistry, createNativeDevEngine, getHermesSWCIncludes, getHmrRuntimeSource, getNativeAssetData, getNativeTransformConfig, hermesCompatPlugin, hermesCompatSWCPlugin, hermesLoopsPlugin, hmrClientNoopPlugin, nativeAnimatedGuardPlugin, normalizeNativeCommonJSInterop, postProcessNativeBundle, vxrnCompilerPlugin, wrapNativeBundleModuleScope };"],"mappings":"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"}
@@ -198,9 +198,9 @@ function getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest,
198
198
  nativePackageDedupePlugin(root),
199
199
  cssStubPlugin(),
200
200
  viteImportGlobPlugin({ root }),
201
- vxrnCompilerPlugin(platform, dev, root, sourceMaps),
202
201
  rnCodegenPlugin({ projectRoot: root }),
203
202
  flowStripPlugin(),
203
+ vxrnCompilerPlugin(platform, dev, root, sourceMaps),
204
204
  nativeAnimatedGuardPlugin(),
205
205
  assetPlugin({
206
206
  root,
@@ -232,7 +232,7 @@ function getNativeOutputOptions(prelude, sourcemap, minify) {
232
232
  };
233
233
  }
234
234
  function normalizeNativeCommonJSInterop(code) {
235
- return code.replace(/(\b__toESM(?:\$\d+)?\(\s*(?:require[\w$]*\(\)|__rolldown_runtime__\.loadExports\("(?:\\.|[^"\\])*"\))\s*),\s*1(\s*\))/g, "$1$2");
235
+ return code.replace(/(\b__toESM(?:\$\d+)?\(\s*(?:require[\w$]*\(\)|[\w$]+|__rolldown_runtime__\.loadExports\("(?:\\.|[^"\\])*"\))\s*),\s*1(\s*\))/g, "$1$2");
236
236
  }
237
237
  function blankPreservingLines(match) {
238
238
  var _ref;
@@ -409,12 +409,20 @@ try {
409
409
  },
410
410
  onHmrUpdates: async function onHmrUpdates(result) {
411
411
  await (engine === null || engine === void 0 ? void 0 : engine.ensureCurrentBuildFinish());
412
+ if (await rebuildIfRouteGraphChanged()) return;
412
413
  if (result instanceof Error) {
414
+ var _result_errors;
415
+ var { removedFiles, registryId } = virtualEntry.routes;
416
+ var errors = (_result_errors = result.errors) !== null && _result_errors !== void 0 ? _result_errors : [];
417
+ if (registryId && errors.length && errors.every(function(e) {
418
+ if (e.code !== "UNRESOLVED_IMPORT" || e.id !== registryId || !e.exporter) return false;
419
+ var file = normalizePath(resolve(dirname(e.id), e.exporter));
420
+ return removedFiles.has(file);
421
+ })) return;
413
422
  console.error("[vxrn] HMR error:", result.message);
414
423
  onHmrUpdate === null || onHmrUpdate === void 0 || onHmrUpdate({ type: "hmr:error" });
415
424
  return;
416
425
  }
417
- if (await rebuildIfRouteGraphChanged()) return;
418
426
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
419
427
  try {
420
428
  for (var _iterator = result.updates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
@@ -636,14 +644,16 @@ globalThis.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
636
644
  var entryCode = function entryCode2() {
637
645
  return `
638
646
  ${refreshSetup}
639
- import * as ReactNativeInitializeCore from 'react-native/Libraries/Core/InitializeCore';
647
+ // retain the namespace so rolldown dev eagerly initializes the RN environment
648
+ // before app modules, even when the renderer also requires this entry.
649
+ import * as ReactNativeEnvironment from 'react-native/setup-env';
640
650
  import NativeWebSocket from 'react-native/Libraries/WebSocket/WebSocket';
641
651
  import DevSettings from 'react-native/Libraries/Utilities/DevSettings';
642
652
  ${setupFileImport}
643
653
  ${routeImports}
644
654
  import { createApp } from 'one';
645
655
 
646
- void ReactNativeInitializeCore;
656
+ void ReactNativeEnvironment;
647
657
  globalThis.WebSocket = NativeWebSocket;
648
658
  globalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__ = function(reason) {
649
659
  DevSettings.reload(reason);
@@ -710,17 +720,51 @@ ${routeHmr}
710
720
  var routes = {
711
721
  routeRoot,
712
722
  files: /* @__PURE__ */ new Set(),
723
+ removedFiles: /* @__PURE__ */ new Set(),
713
724
  isRouteFile,
714
725
  scanFiles,
715
726
  updateFiles(files) {
727
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
728
+ try {
729
+ for (var _iterator = routes.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
730
+ var file = _step.value;
731
+ if (!files.has(file)) routes.removedFiles.add(file);
732
+ }
733
+ } catch (err) {
734
+ _didIteratorError = true;
735
+ _iteratorError = err;
736
+ } finally {
737
+ try {
738
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
739
+ } finally {
740
+ if (_didIteratorError) throw _iteratorError;
741
+ }
742
+ }
743
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
744
+ try {
745
+ for (var _iterator1 = files[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
746
+ var file1 = _step1.value;
747
+ routes.removedFiles.delete(file1);
748
+ }
749
+ } catch (err) {
750
+ _didIteratorError1 = true;
751
+ _iteratorError1 = err;
752
+ } finally {
753
+ try {
754
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) _iterator1.return();
755
+ } finally {
756
+ if (_didIteratorError1) throw _iteratorError1;
757
+ }
758
+ }
716
759
  routes.files = files;
717
760
  if (!useDynamicRouteRegistry) return;
718
761
  mkdirSync(dirname(registryPath), { recursive: true });
719
762
  var registryDir = realpathSync(dirname(registryPath));
763
+ routes.registryId = join(registryDir, basename(registryPath));
720
764
  var source = `export const routes = {
721
- ${[...files].sort().map(function(file) {
722
- var routeKey = `/${normalizePath(relative(root, file))}`;
723
- var importPath = normalizePath(relative(registryDir, file));
765
+ ${[...files].sort().map(function(file2) {
766
+ var routeKey = `/${normalizePath(relative(root, file2))}`;
767
+ var importPath = normalizePath(relative(registryDir, file2));
724
768
  if (!importPath.startsWith(".")) importPath = `./${importPath}`;
725
769
  return ` ${JSON.stringify(routeKey)}: () => import(${JSON.stringify(importPath)})`;
726
770
  }).join(",\n")}
@@ -1040,7 +1084,7 @@ function reactNativeDedupePlugin(root) {
1040
1084
  var reactNativeRoot;
1041
1085
  return {
1042
1086
  name: "vxrn:react-native-dedupe",
1043
- async resolveId(source, importer) {
1087
+ async resolveId(source, importer, options) {
1044
1088
  if (source !== "react-native" && !source.startsWith("react-native/")) return;
1045
1089
  if (reactNativeRoot === void 0) try {
1046
1090
  reactNativeRoot = realpathSync(dirname(resolvePath("react-native/package.json", root)));
@@ -1048,8 +1092,18 @@ function reactNativeDedupePlugin(root) {
1048
1092
  reactNativeRoot = null;
1049
1093
  }
1050
1094
  if (!reactNativeRoot) return;
1095
+ var exported = await this.resolve(source, join(root, "package.json"), {
1096
+ skipSelf: true,
1097
+ kind: options.kind
1098
+ });
1099
+ if (exported) return exported;
1051
1100
  var subpath = source === "react-native" ? "index.js" : source.slice(13);
1052
- return this.resolve(normalizePath(resolve(reactNativeRoot, subpath)), importer, { skipSelf: true });
1101
+ var unified = await this.resolve(normalizePath(resolve(reactNativeRoot, subpath)), importer, {
1102
+ skipSelf: true,
1103
+ kind: options.kind
1104
+ });
1105
+ if (unified) return unified;
1106
+ this.error(`[vxrn] '${source}' is missing from the app's react-native (${reactNativeRoot}), imported by '${importer}'. refusing the nested copy so the native runtime stays a singleton.`);
1053
1107
  }
1054
1108
  };
1055
1109
  }