vxrn 1.25.4 → 1.25.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/plugins/reactNativeDevServer.mjs +45 -14
- package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
- package/dist/plugins/reactNativeDevServer.native.js +45 -14
- package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +137 -72
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +136 -68
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.test.mjs +79 -3
- package/dist/utils/createNativeDevEngine.test.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.test.native.js +101 -4
- package/dist/utils/createNativeDevEngine.test.native.js.map +1 -1
- package/package.json +11 -11
- package/src/plugins/reactNativeDevServer.ts +57 -17
- package/src/utils/createNativeDevEngine.test.ts +95 -0
- package/src/utils/createNativeDevEngine.ts +156 -84
- package/types/plugins/reactNativeDevServer.d.ts.map +1 -1
- package/types/utils/createNativeDevEngine.d.ts +17 -6
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["basename","dirname","extname","join","relative","resolve","copyFileSync","existsSync","mkdirSync","readFileSync","pathToFileURL","normalizePath","DEFAULT_ASSET_EXTS","getNativePrelude","FLOW_FILE_PATTERN","HERMES_CLASS_TRANSFORMS","HERMES_PROD_TRANSFORMS","getHermesSWCIncludes","dev","getResolveExtensions","platform","platformExts","nativeExts","defaultExts","getNativeResolveConfig","extensions","conditionNames","mainFields","getNativeTransformConfig","root","entryConfig","globalThis","__vxrnNativeEntryConfig","setupFileDefines","sf","setupFile","files","client","server","ios","android","native","JSON","stringify","envDefines","defines","mode2","envFile","envPath","content","line","split","match","key","rawVal","val","replace","trim","mode","envObject","MODE","DEV","PROD","SSR","VITE_ENVIRONMENT","VITE_NATIVE","EXPO_OS","TAMAGUI_TARGET","TAMAGUI_ENVIRONMENT","Object","entries","parse","jsx","runtime","define","__DEV__","inject","React","getNativePlugins","viteImportGlobPlugin","assetsDest","__vxrnAddNativePlugins","serverFileExclusionPlugin","environmentGuardPlugin","hmrClientNoopPlugin","cssStubPlugin","vxrnCompilerPlugin","flowStripPlugin","nativeAnimatedGuardPlugin","assetPlugin","hermesCompatSWCPlugin","getNativeOutputOptions","prelude","sourcemap","format","intro","codeSplitting","strictExecutionOrder","postProcessNativeBundle","code","idx","indexOf","beforeMarker","lastIndexOf","lineStart","snippet","slice","includes","afterMarker","end","wrapNativeBundleModuleScope","downlevelClassFieldsInBundle","startMarker","endMarker","startIdx","endIdx","runtimeEnd","runtimeSection","result","transform","filename","configFile","swcrc","sourceMaps","inputSourceMap","isModule","env","targets","node","include","jsc","parser","syntax","react","externalHelpers","assumptions","setPublicClassFields","privateFieldsAsProperties","err","console","warn","createNativeDevEngine","options","port","host","serverUrl","plugins","userPlugins","onHmrUpdate","hmrRuntimeSource","getHmrRuntimeSource","currentBundle","bundleResolve","bundlePromise","resolvedHost","engine","input","VIRTUAL_NATIVE_ENTRY","cwd","experimental","devMode","implement","incrementalBuild","lazyBarrel","treeshake","shimMissingExports","moduleTypes","nativeVirtualEntryPlugin","outro","onOutput","Error","error","message","chunk","output","find","o","type","isEntry","info","Math","round","length","onHmrUpdates","updates","item","update","rebuildStrategy","watch","run","getBundle","ensureLatestBuildOutput","timeoutId","Promise","resolve2","reject","value","clearTimeout","setTimeout","close","buildNativeBundle","entryFile","build","map","toString","opts","isDev","resolvedId","routerRoot","flags","linking","setupFileImport","file","resolved","href","routeGlobs","ignoredRouteFiles","pattern","entryCode","name","resolveId","id","load","target","test","moduleType","THROWING","NOOP","source","external","startsWith","RN_HMR_CLIENT_RE","importer","handler","endsWith","compiler","isRefreshCandidate","needsRefresh","props","development","environment","reactForRNVersion","babelOptions","getBabelOptions","existingPlugins","skipEnvCheck","refreshReg","refreshSig","transformBabel","out","default","dialect","assetRegex","RegExp","ext","dir","relativePath","assetData","__packager_asset","scales","httpServerLocation","fileSystemLocation","hash","width","height","imageSize","dims","relativeAssetDir","assetDestDir","recursive","swc","hasClass","hasAsync","envIncludes","tsx"],"sources":["createNativeDevEngine.mjs"],"sourcesContent":["import { basename, dirname, extname, join, relative, resolve } from \"node:path\";\nimport { copyFileSync, existsSync, mkdirSync, readFileSync } from \"node:fs\";\nimport { pathToFileURL } from \"node:url\";\nimport { normalizePath } from \"vite\";\nimport { DEFAULT_ASSET_EXTS } from \"../constants/defaults\";\nimport { getNativePrelude } from \"../runtime/native-prelude\";\n\nconst FLOW_FILE_PATTERN = /node_modules[\\\\/](?:react-native|@react-native)[\\\\/].*\\.js$/;\nconst HERMES_CLASS_TRANSFORMS = [\n\t\"transform-classes\",\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_PROD_TRANSFORMS = [\"transform-async-to-generator\"];\nfunction getHermesSWCIncludes(dev) {\n\treturn [...HERMES_CLASS_TRANSFORMS, ...dev ? [] : HERMES_PROD_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: [\n\t\t\t\"react-native\",\n\t\t\t\"import\",\n\t\t\t\"require\",\n\t\t\t\"default\"\n\t\t],\n\t\tmainFields: [\n\t\t\t\"react-native\",\n\t\t\t\"module\",\n\t\t\t\"main\"\n\t\t]\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 envDefines = (() => {\n\t\tconst defines = {};\n\t\ttry {\n\t\t\tconst mode2 = dev ? \"development\" : \"production\";\n\t\t\tfor (const envFile of [\n\t\t\t\t\".env\",\n\t\t\t\t\".env.local\",\n\t\t\t\t`.env.${mode2}`,\n\t\t\t\t`.env.${mode2}.local`\n\t\t\t]) {\n\t\t\t\tconst envPath = join(root, envFile);\n\t\t\t\tif (!existsSync(envPath)) continue;\n\t\t\t\tconst content = readFileSync(envPath, \"utf8\");\n\t\t\t\tfor (const line of content.split(\"\\n\")) {\n\t\t\t\t\tconst match = line.match(/^\\s*(VITE_\\w+)\\s*=\\s*(.*)$/);\n\t\t\t\t\tif (match) {\n\t\t\t\t\t\tconst [, key, rawVal] = match;\n\t\t\t\t\t\tconst val = rawVal.replace(/^['\"]|['\"]$/g, \"\").trim();\n\t\t\t\t\t\tdefines[`import.meta.env.${key}`] = JSON.stringify(val);\n\t\t\t\t\t\tdefines[`process.env.${key}`] = JSON.stringify(val);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {}\n\t\treturn defines;\n\t})();\n\tconst mode = dev ? \"development\" : \"production\";\n\tconst envObject = {\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\tEXPO_OS: platform,\n\t\tTAMAGUI_TARGET: \"native\",\n\t\tTAMAGUI_ENVIRONMENT: platform\n\t};\n\tfor (const [key, val] of Object.entries(envDefines)) {\n\t\tconst match = key.match(/^import\\.meta\\.env\\.(.+)$/);\n\t\tif (match) try {\n\t\t\tenvObject[match[1]] = JSON.parse(val);\n\t\t} catch {\n\t\t\tenvObject[match[1]] = val;\n\t\t}\n\t}\n\treturn {\n\t\tjsx: { runtime: \"classic\" },\n\t\tdefine: {\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.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.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...envDefines,\n\t\t\t...setupFileDefines\n\t\t},\n\t\tinject: { React: \"react\" }\n\t};\n}\nfunction getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest) {\n\treturn [\n\t\t...globalThis.__vxrnAddNativePlugins || [],\n\t\tserverFileExclusionPlugin(),\n\t\tenvironmentGuardPlugin(),\n\t\thmrClientNoopPlugin(),\n\t\tcssStubPlugin(),\n\t\tviteImportGlobPlugin({ root }),\n\t\tvxrnCompilerPlugin(platform, dev),\n\t\tflowStripPlugin(),\n\t\tnativeAnimatedGuardPlugin(),\n\t\tassetPlugin({\n\t\t\troot,\n\t\t\tplatform,\n\t\t\tassetsDest\n\t\t}),\n\t\thermesCompatSWCPlugin(dev)\n\t];\n}\nfunction getNativeOutputOptions(prelude, sourcemap) {\n\treturn {\n\t\tformat: \"esm\",\n\t\tsourcemap,\n\t\tintro: prelude,\n\t\tcodeSplitting: false,\n\t\tstrictExecutionOrder: true\n\t};\n}\nfunction postProcessNativeBundle(code) {\n\tcode = code.replace(/^\\s*export\\s*\\{[^}]*\\}\\s*;?\\s*$/gm, \"\");\n\tcode = code.replace(/^\\s*export\\s+default\\s+([^;\\n]+);?\\s*$/gm, \"$1;\");\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\tcode = code.slice(0, beforeMarker) + \"NativeAnimatedModule = NativeAnimatedModule_default ?? NativeAnimatedTurboModule_default;\" + 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() {\\n\" + 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\ttry {\n\t\tconst result = await (await import(\"@swc/core\")).transform(runtimeSection, {\n\t\t\tfilename: \"rolldown-runtime.js\",\n\t\t\tconfigFile: false,\n\t\t\tswcrc: false,\n\t\t\tsourceMaps: false,\n\t\t\tinputSourceMap: false,\n\t\t\tisModule: false,\n\t\t\tenv: {\n\t\t\t\ttargets: { node: 9999 },\n\t\t\t\tinclude: [...HERMES_CLASS_TRANSFORMS]\n\t\t\t},\n\t\t\tjsc: {\n\t\t\t\tparser: { syntax: \"ecmascript\" },\n\t\t\t\ttransform: { react: { runtime: \"preserve\" } },\n\t\t\t\texternalHelpers: false,\n\t\t\t\tassumptions: {\n\t\t\t\t\tsetPublicClassFields: true,\n\t\t\t\t\tprivateFieldsAsProperties: true\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn code.slice(0, startIdx) + result.code + code.slice(runtimeEnd);\n\t} catch (err) {\n\t\tconsole.warn(\"[vxrn] downlevelClassFieldsInBundle failed, returning original:\", err);\n\t\treturn code;\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\tlet currentBundle = null;\n\tlet bundleResolve = null;\n\tlet bundlePromise = null;\n\tconst resolvedHost = host === \"0.0.0.0\" ? \"localhost\" : host;\n\tconst engine = await dev({\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: [\n\t\t\tnativeVirtualEntryPlugin(root, { dev: true }),\n\t\t\t...getNativePlugins(root, platform, viteImportGlobPlugin, true),\n\t\t\t...userPlugins\n\t\t]\n\t}, {\n\t\t...getNativeOutputOptions(prelude, false),\n\t\toutro: `\ntry {\n var __WS = (init_WebSocket(), __toCommonJS(WebSocket_exports)).default;\n var __hmrUrl = 'ws://${resolvedHost}:${port}/hot';\n var __hmrWS = new __WS(__hmrUrl);\n __hmrWS.onmessage = function(event) {\n try {\n var msg = JSON.parse(event.data);\n var g = typeof global !== 'undefined' ? global : globalThis;\n if (msg.type === 'hmr:update' && msg.code) {\n if (g.globalEvalWithSourceUrl) g.globalEvalWithSourceUrl(msg.code);\n else (0, eval)(msg.code);\n setTimeout(function() {\n try { if (g.__ReactRefresh) g.__ReactRefresh.performReactRefresh(); } catch(e) {}\n }, 50);\n } else if (msg.type === 'hmr:reload') {\n var ds = g.__turboModuleProxy ? g.__turboModuleProxy('DevSettings') : null;\n if (ds && ds.reload) ds.reload();\n }\n } catch(e) { console.error('[vxrn] HMR eval error:', e); }\n };\n __hmrWS.onopen = function() {\n if (typeof __rolldown_runtime__ !== 'undefined' && __rolldown_runtime__.setup) {\n __rolldown_runtime__.setup(__hmrWS, __hmrUrl.replace('ws://', 'http://'));\n }\n };\n __hmrWS.onerror = function(e) { console.warn('[vxrn] HMR connection error:', e.message || e); };\n} catch(e) {}\n`\n\t}, {\n\t\tonOutput: async (result) => {\n\t\t\tif (result instanceof Error) {\n\t\t\t\tconsole.error(\"[vxrn] native bundle error:\", result.message);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst chunk = result.output.find((o) => o.type === \"chunk\" && o.isEntry);\n\t\t\tif (chunk && \"code\" in chunk) {\n\t\t\t\tlet code = postProcessNativeBundle(chunk.code);\n\t\t\t\tcode = await downlevelClassFieldsInBundle(code);\n\t\t\t\tcode = wrapNativeBundleModuleScope(code);\n\t\t\t\tcurrentBundle = { code };\n\t\t\t\tconsole.info(`[vxrn] native bundle ready (${Math.round(code.length / 1024)}KB)`);\n\t\t\t\tif (bundleResolve) {\n\t\t\t\t\tbundleResolve(currentBundle);\n\t\t\t\t\tbundleResolve = null;\n\t\t\t\t\tbundlePromise = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonHmrUpdates: async (result) => {\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\tconst updates = result.updates || [];\n\t\t\tfor (const item of updates) {\n\t\t\t\tconst update = item.update || item;\n\t\t\t\tif (update.type === \"Patch\" && update.code) onHmrUpdate?.({\n\t\t\t\t\ttype: \"hmr:update\",\n\t\t\t\t\tcode: update.code\n\t\t\t\t});\n\t\t\t\telse if (update.type === \"FullReload\") onHmrUpdate?.({ type: \"hmr:reload\" });\n\t\t\t}\n\t\t\tif (updates.length === 0) onHmrUpdate?.({ type: \"hmr:reload\" });\n\t\t},\n\t\trebuildStrategy: \"never\",\n\t\twatch: {}\n\t});\n\tawait engine.run();\n\treturn {\n\t\tengine,\n\t\tasync getBundle() {\n\t\t\tawait engine.ensureLatestBuildOutput();\n\t\t\tif (currentBundle) return currentBundle;\n\t\t\tif (!bundlePromise) {\n\t\t\t\tlet timeoutId;\n\t\t\t\tbundlePromise = new Promise((resolve2, reject) => {\n\t\t\t\t\tbundleResolve = (value) => {\n\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\tresolve2(value);\n\t\t\t\t\t};\n\t\t\t\t\ttimeoutId = setTimeout(() => reject(/* @__PURE__ */ new Error(\"[vxrn] bundle build timed out after 120s\")), 12e4);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn bundlePromise;\n\t\t},\n\t\tasync 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 } = 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, { dev })],\n\t\t\t...getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest),\n\t\t\t...userPlugins\n\t\t],\n\t\toutput: getNativeOutputOptions(prelude, sourcemap)\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\tlet code = postProcessNativeBundle(chunk.code);\n\tcode = await downlevelClassFieldsInBundle(code);\n\treturn {\n\t\tcode,\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 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 entryCode = `\n${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` : \"\"}\nimport * as ReactNativeInitializeCore from 'react-native/Libraries/Core/InitializeCore';\nimport NativeWebSocket from 'react-native/Libraries/WebSocket/WebSocket';\n${setupFileImport}\nimport { createApp } from 'one';\n\nvoid ReactNativeInitializeCore;\nglobalThis.WebSocket = NativeWebSocket;\n\nvar _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\ncreateApp({\n routes: routes,\n routerRoot: ${JSON.stringify(routerRoot)},\n flags: ${JSON.stringify(flags)},\n linking: ${JSON.stringify(linking)},\n});\n`;\n\treturn {\n\t\tname: \"vxrn:native-virtual-entry\",\n\t\tresolveId(id) {\n\t\t\tif (id === VIRTUAL_NATIVE_ENTRY) return resolvedId;\n\t\t},\n\t\tload(id) {\n\t\t\tif (id === resolvedId) return entryCode;\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 { code: code.replace(target, `const method = nullthrows(NativeAnimatedModule)[methodName];\n if (typeof method !== 'function') return;`) };\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 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 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) {\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\ttry {\n\t\t\t\tif (!compiler) compiler = await import(\"@vxrn/compiler\");\n\t\t\t\tconst props = {\n\t\t\t\t\tid,\n\t\t\t\t\tcode,\n\t\t\t\t\tdevelopment: dev,\n\t\t\t\t\tenvironment: platform,\n\t\t\t\t\treactForRNVersion: \"19\"\n\t\t\t\t};\n\t\t\t\tlet babelOptions = compiler.getBabelOptions(props);\n\t\t\t\tif (needsRefresh) {\n\t\t\t\t\tconst existingPlugins = babelOptions?.plugins || [];\n\t\t\t\t\tbabelOptions = {\n\t\t\t\t\t\t...babelOptions,\n\t\t\t\t\t\tplugins: [...existingPlugins, [\"react-refresh/babel\", {\n\t\t\t\t\t\t\tskipEnvCheck: true,\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}\n\t\t\t\tif (!babelOptions) return;\n\t\t\t\tconst result = await compiler.transformBabel(id, code, babelOptions);\n\t\t\t\tif (result?.code) {\n\t\t\t\t\tlet out = result.code;\n\t\t\t\t\tif (needsRefresh) out = `\nvar __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${out}\n\nglobalThis.$RefreshReg$ = __prevRefreshReg;\nglobalThis.$RefreshSig$ = __prevRefreshSig;\nif (import.meta.hot) {\n import.meta.hot.accept(function() {\n if (globalThis.__ReactRefresh) {\n setTimeout(function() { globalThis.__ReactRefresh.performReactRefresh(); }, 30);\n }\n });\n}\n`;\n\t\t\t\t\treturn { code: out };\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tif (dev) console.warn(`[vxrn:compiler] ${id}: ${err.message || err}`);\n\t\t\t\tif (needsRefresh) return { code: code + `\nif (import.meta.hot) { import.meta.hot.accept(); }\n` };\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 (!FLOW_FILE_PATTERN.test(id)) return;\n\t\t\ttry {\n\t\t\t\tconst result = await (await import(\"fast-flow-transform\")).default({\n\t\t\t\t\tfilename: id,\n\t\t\t\t\tsource: code,\n\t\t\t\t\tsourcemap: true,\n\t\t\t\t\tdialect: \"flow\",\n\t\t\t\t\tformat: \"pretty\"\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tcode: result.code,\n\t\t\t\t\tmap: result.map\n\t\t\t\t};\n\t\t\t} catch (err) {\n\t\t\t\tconsole.warn(`[vxrn:flow-strip] ${id}: ${err.message}`);\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 ext = extname(id).slice(1);\n\t\t\tconst name = basename(id, `.${ext}`);\n\t\t\tconst dir = dirname(id);\n\t\t\tconst relativePath = relative(opts.root, id);\n\t\t\tconst assetData = {\n\t\t\t\t__packager_asset: true,\n\t\t\t\tname,\n\t\t\t\ttype: ext,\n\t\t\t\tscales: [1],\n\t\t\t\thttpServerLocation: \"/assets/\" + dirname(relativePath).replace(/\\\\/g, \"/\"),\n\t\t\t\tfileSystemLocation: dir,\n\t\t\t\thash: \"\",\n\t\t\t\twidth: void 0,\n\t\t\t\theight: void 0\n\t\t\t};\n\t\t\tif ([\n\t\t\t\t\"png\",\n\t\t\t\t\"jpg\",\n\t\t\t\t\"jpeg\",\n\t\t\t\t\"gif\",\n\t\t\t\t\"webp\",\n\t\t\t\t\"bmp\"\n\t\t\t].includes(ext)) try {\n\t\t\t\tconst { imageSize } = await import(\"image-size\");\n\t\t\t\tconst dims = imageSize(id);\n\t\t\t\tassetData.width = dims.width;\n\t\t\t\tassetData.height = dims.height;\n\t\t\t} catch {}\n\t\t\tif (opts.assetsDest) {\n\t\t\t\tconst relativeAssetDir = dirname(relativePath).replace(/\\\\/g, \"/\");\n\t\t\t\tconst assetDestDir = join(opts.assetsDest, \"assets\", relativeAssetDir);\n\t\t\t\tmkdirSync(assetDestDir, { recursive: true });\n\t\t\t\tcopyFileSync(id, join(assetDestDir, `${name}.${ext}`));\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcode: `module.exports = require('react-native/Libraries/Image/AssetRegistry').registerAsset(${JSON.stringify(assetData)});`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t} }\n\t};\n}\nfunction hermesCompatSWCPlugin(dev) {\n\tlet swc = 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 = code.includes(\"class \") || code.includes(\"class{\");\n\t\t\tconst hasAsync = !dev && code.includes(\"async \");\n\t\t\tif (!hasClass && !hasAsync) return;\n\t\t\tif (code.length > 5e5) return;\n\t\t\ttry {\n\t\t\t\tif (!swc) swc = await import(\"@swc/core\");\n\t\t\t\tconst envIncludes = getHermesSWCIncludes(dev);\n\t\t\t\treturn { code: (await swc.transform(code, {\n\t\t\t\t\tfilename: id,\n\t\t\t\t\tconfigFile: false,\n\t\t\t\t\tswcrc: false,\n\t\t\t\t\tsourceMaps: false,\n\t\t\t\t\tinputSourceMap: false,\n\t\t\t\t\tenv: {\n\t\t\t\t\t\ttargets: { node: 9999 },\n\t\t\t\t\t\tinclude: envIncludes\n\t\t\t\t\t},\n\t\t\t\t\tjsc: {\n\t\t\t\t\t\tparser: {\n\t\t\t\t\t\t\tsyntax: \"typescript\",\n\t\t\t\t\t\t\ttsx: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttransform: { react: { runtime: \"preserve\" } },\n\t\t\t\t\t\texternalHelpers: false,\n\t\t\t\t\t\tassumptions: {\n\t\t\t\t\t\t\tsetPublicClassFields: true,\n\t\t\t\t\t\t\tprivateFieldsAsProperties: true\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tisModule: !id.endsWith(\".cjs\")\n\t\t\t\t})).code };\n\t\t\t} catch (err) {}\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 _shared = { _socket: null, _queue: [] };\n var clientId = 'rn-' + Date.now() + '-' + Math.random().toString(36).slice(2);\n super({ send: function(msg) {\n var s = JSON.stringify(msg);\n if (_shared._socket && _shared._socket.readyState === 1) { _shared._socket.send(s); }\n else { _shared._queue.push(s); }\n }}, clientId);\n this._shared = _shared;\n this._socket = null;\n this._queue = [];\n this.moduleHotContexts = {};\n }\n\n createModuleHotContext(moduleId) {\n var ctx = {\n acceptCallbacks: [],\n accept: function(cb) {\n if (cb) ctx.acceptCallbacks.push({ deps: [moduleId], fn: cb });\n },\n invalidate: function() {},\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 applyUpdates(boundaries) {\n for (var i = 0; i < boundaries.length; i++) {\n var moduleId = boundaries[i][0];\n var ctx = this.moduleHotContexts[moduleId];\n if (ctx && ctx.acceptCallbacks) {\n for (var j = 0; j < ctx.acceptCallbacks.length; j++) {\n ctx.acceptCallbacks[j].fn(this.modules[moduleId].exports);\n }\n }\n // surface each committed module id to the framework hot-update hook (if one\n // is registered). RN's React Refresh can't repaint frameworks that re-wrap\n // route components away from the edited module's Refresh family (e.g. One),\n // and the web route-update event has no equivalent on the native /hot\n // socket, so this generic vxrn global is the bridge.\n try {\n if (globalThis.__VXRN_ON_MODULE_UPDATED__ && moduleId) globalThis.__VXRN_ON_MODULE_UPDATED__(moduleId);\n } catch (error) {\n console.error('[vxrn HMR]: module update hook failed', error);\n }\n }\n }\n\n setup(socket, origin) {\n if (this._socket) return;\n this._socket = socket;\n // also set the shared messenger socket so queued messages can flush\n if (this._shared) this._shared._socket = socket;\n\n var flushQueues = function() {\n // flush messenger queue\n if (this._shared && this._shared._queue.length) {\n for (var i = 0; i < this._shared._queue.length; i++) socket.send(this._shared._queue[i]);\n this._shared._queue = [];\n }\n // flush instance queue\n for (var i = 0; i < this._queue.length; i++) socket.send(this._queue[i]);\n this._queue = [];\n }.bind(this);\n\n if (socket.readyState === 1) {\n flushQueues();\n } else {\n socket.addEventListener('open', function() {\n flushQueues();\n }, { once: true });\n }\n\n // HMR message handling is done by the outro WebSocket handler\n // the runtime's setup() only needs to flush queued messages\n }\n}\n\nglobalThis.__rolldown_runtime__ = new ReactNativeDevRuntime();\n`;\n}\n\nexport { buildNativeBundle, createNativeDevEngine, getHermesSWCIncludes, getNativeTransformConfig, hmrClientNoopPlugin, vxrnCompilerPlugin, wrapNativeBundleModuleScope };"],"mappings":"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ACpB8I,GAAG,EAAE;cACN,CAAC;cACD3J,SAAS,EAAE;gBAAEc,KAAK,EAAE;kBAAE5D,OAAO,EAAE;gBAAW;cAAE,CAAC;cAC7C6D,eAAe,EAAE,KAAK;cACtBC,WAAW,EAAE;gBACZC,oBAAoB,EAAE,IAAI;gBAC1BC,yBAAyB,EAAE;cAC5B;YACD,CAAC;YACDZ,QAAQ,EAAE,CAACgG,EAAE,CAACa,QAAQ,CAAC,MAAM;UAC9B,CAAC,CAAC,EAAEvI;QAAK,CAAC;MACX,CAAC,CAAC,OAAOuC,GAAG,EAAE,CAAC;IAChB;EACD,CAAC;AACF;AACA,SAASY,mBAAmBA,CAAA,EAAG;EAC9B,OAAO;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASkD,iBAAiB,EAAE3D,qBAAqB,EAAE5H,oBAAoB,EAAEW,wBAAwB,EAAEwD,mBAAmB,EAAEE,kBAAkB,EAAEwB,2BAA2B","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["basename","dirname","extname","join","relative","resolve","copyFileSync","existsSync","mkdirSync","readFileSync","pathToFileURL","normalizePath","DEFAULT_ASSET_EXTS","getNativePrelude","FLOW_FILE_PATTERN","HERMES_CLASS_TRANSFORMS","HERMES_PROD_TRANSFORMS","getHermesSWCIncludes","dev","getResolveExtensions","platform","platformExts","nativeExts","defaultExts","getNativeResolveConfig","extensions","conditionNames","mainFields","getNativeTransformConfig","root","entryConfig","globalThis","__vxrnNativeEntryConfig","setupFileDefines","sf","setupFile","files","client","server","ios","android","native","JSON","stringify","envDefines","defines","mode2","envFile","envPath","content","line","split","match","key","rawVal","val","replace","trim","mode","envObject","MODE","DEV","PROD","SSR","VITE_ENVIRONMENT","VITE_NATIVE","EXPO_OS","TAMAGUI_TARGET","TAMAGUI_ENVIRONMENT","Object","entries","parse","jsx","runtime","define","__DEV__","inject","React","getNativePlugins","viteImportGlobPlugin","assetsDest","__vxrnAddNativePlugins","serverFileExclusionPlugin","environmentGuardPlugin","hmrClientNoopPlugin","cssStubPlugin","vxrnCompilerPlugin","flowStripPlugin","nativeAnimatedGuardPlugin","assetPlugin","hermesCompatSWCPlugin","getNativeOutputOptions","prelude","sourcemap","format","intro","codeSplitting","strictExecutionOrder","postProcessNativeBundle","code","idx","indexOf","beforeMarker","lastIndexOf","lineStart","snippet","slice","includes","afterMarker","end","wrapNativeBundleModuleScope","downlevelClassFieldsInBundle","startMarker","endMarker","startIdx","endIdx","runtimeEnd","runtimeSection","result","transform","filename","configFile","swcrc","sourceMaps","inputSourceMap","isModule","env","targets","node","include","jsc","parser","syntax","react","externalHelpers","assumptions","setPublicClassFields","privateFieldsAsProperties","err","console","warn","createNativeDevEngine","options","port","host","serverUrl","plugins","userPlugins","onHmrUpdate","hmrRuntimeSource","getHmrRuntimeSource","currentBundle","bundleResolve","bundlePromise","resolvedHost","engine","input","VIRTUAL_NATIVE_ENTRY","cwd","experimental","devMode","implement","incrementalBuild","lazyBarrel","treeshake","shimMissingExports","moduleTypes","nativeVirtualEntryPlugin","outro","onOutput","Error","error","message","chunk","output","find","o","type","isEntry","info","Math","round","length","onHmrUpdates","clientId","update","updates","changedIds","seq","rebuildStrategy","watch","run","getBundle","ensureLatestBuildOutput","timeoutId","Promise","resolve2","reject","value","clearTimeout","setTimeout","close","buildNativeBundle","entryFile","build","map","toString","opts","isDev","resolvedId","routerRoot","flags","linking","setupFileImport","file","resolved","href","routeGlobs","ignoredRouteFiles","pattern","entryCode","name","resolveId","id","load","target","test","moduleType","THROWING","NOOP","source","external","startsWith","RN_HMR_CLIENT_RE","importer","handler","endsWith","projectRoot","process","compiler","isRefreshCandidate","needsRefresh","props","development","environment","reactForRNVersion","babelOptions","getBabelOptions","existingPlugins","skipEnvCheck","refreshReg","refreshSig","transformBabel","out","default","dialect","assetRegex","RegExp","ext","dir","relativePath","assetData","__packager_asset","scales","httpServerLocation","fileSystemLocation","hash","width","height","imageSize","dims","relativeAssetDir","assetDestDir","recursive","swc","hasClass","hasAsync","envIncludes","tsx"],"sources":["createNativeDevEngine.mjs"],"sourcesContent":["import { basename, dirname, extname, join, relative, resolve } from \"node:path\";\nimport { copyFileSync, existsSync, mkdirSync, readFileSync } from \"node:fs\";\nimport { pathToFileURL } from \"node:url\";\nimport { normalizePath } from \"vite\";\nimport { DEFAULT_ASSET_EXTS } from \"../constants/defaults\";\nimport { getNativePrelude } from \"../runtime/native-prelude\";\n\nconst FLOW_FILE_PATTERN = /node_modules[\\\\/](?:react-native|@react-native)[\\\\/].*\\.js$/;\nconst HERMES_CLASS_TRANSFORMS = [\n\t\"transform-classes\",\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_PROD_TRANSFORMS = [\"transform-async-to-generator\"];\nfunction getHermesSWCIncludes(dev) {\n\treturn [...HERMES_CLASS_TRANSFORMS, ...dev ? [] : HERMES_PROD_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: [\n\t\t\t\"react-native\",\n\t\t\t\"import\",\n\t\t\t\"require\",\n\t\t\t\"default\"\n\t\t],\n\t\tmainFields: [\n\t\t\t\"react-native\",\n\t\t\t\"module\",\n\t\t\t\"main\"\n\t\t]\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 envDefines = (() => {\n\t\tconst defines = {};\n\t\ttry {\n\t\t\tconst mode2 = dev ? \"development\" : \"production\";\n\t\t\tfor (const envFile of [\n\t\t\t\t\".env\",\n\t\t\t\t\".env.local\",\n\t\t\t\t`.env.${mode2}`,\n\t\t\t\t`.env.${mode2}.local`\n\t\t\t]) {\n\t\t\t\tconst envPath = join(root, envFile);\n\t\t\t\tif (!existsSync(envPath)) continue;\n\t\t\t\tconst content = readFileSync(envPath, \"utf8\");\n\t\t\t\tfor (const line of content.split(\"\\n\")) {\n\t\t\t\t\tconst match = line.match(/^\\s*(VITE_\\w+)\\s*=\\s*(.*)$/);\n\t\t\t\t\tif (match) {\n\t\t\t\t\t\tconst [, key, rawVal] = match;\n\t\t\t\t\t\tconst val = rawVal.replace(/^['\"]|['\"]$/g, \"\").trim();\n\t\t\t\t\t\tdefines[`import.meta.env.${key}`] = JSON.stringify(val);\n\t\t\t\t\t\tdefines[`process.env.${key}`] = JSON.stringify(val);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {}\n\t\treturn defines;\n\t})();\n\tconst mode = dev ? \"development\" : \"production\";\n\tconst envObject = {\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\tEXPO_OS: platform,\n\t\tTAMAGUI_TARGET: \"native\",\n\t\tTAMAGUI_ENVIRONMENT: platform\n\t};\n\tfor (const [key, val] of Object.entries(envDefines)) {\n\t\tconst match = key.match(/^import\\.meta\\.env\\.(.+)$/);\n\t\tif (match) try {\n\t\t\tenvObject[match[1]] = JSON.parse(val);\n\t\t} catch {\n\t\t\tenvObject[match[1]] = val;\n\t\t}\n\t}\n\treturn {\n\t\tjsx: { runtime: \"classic\" },\n\t\tdefine: {\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.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.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...envDefines,\n\t\t\t...setupFileDefines\n\t\t},\n\t\tinject: { React: \"react\" }\n\t};\n}\nfunction getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest) {\n\treturn [\n\t\t...globalThis.__vxrnAddNativePlugins || [],\n\t\tserverFileExclusionPlugin(),\n\t\tenvironmentGuardPlugin(),\n\t\thmrClientNoopPlugin(),\n\t\tcssStubPlugin(),\n\t\tviteImportGlobPlugin({ root }),\n\t\tvxrnCompilerPlugin(platform, dev, 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}),\n\t\thermesCompatSWCPlugin(dev)\n\t];\n}\nfunction getNativeOutputOptions(prelude, sourcemap) {\n\treturn {\n\t\tformat: \"esm\",\n\t\tsourcemap,\n\t\tintro: prelude,\n\t\tcodeSplitting: false,\n\t\tstrictExecutionOrder: true\n\t};\n}\nfunction postProcessNativeBundle(code) {\n\tcode = code.replace(/^\\s*export\\s*\\{[^}]*\\}\\s*;?\\s*$/gm, \"\");\n\tcode = code.replace(/^\\s*export\\s+default\\s+([^;\\n]+);?\\s*$/gm, \"$1;\");\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\tcode = code.slice(0, beforeMarker) + \"NativeAnimatedModule = NativeAnimatedModule_default ?? NativeAnimatedTurboModule_default;\" + 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() {\\n\" + 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\ttry {\n\t\tconst result = await (await import(\"@swc/core\")).transform(runtimeSection, {\n\t\t\tfilename: \"rolldown-runtime.js\",\n\t\t\tconfigFile: false,\n\t\t\tswcrc: false,\n\t\t\tsourceMaps: false,\n\t\t\tinputSourceMap: false,\n\t\t\tisModule: false,\n\t\t\tenv: {\n\t\t\t\ttargets: { node: 9999 },\n\t\t\t\tinclude: [...HERMES_CLASS_TRANSFORMS]\n\t\t\t},\n\t\t\tjsc: {\n\t\t\t\tparser: { syntax: \"ecmascript\" },\n\t\t\t\ttransform: { react: { runtime: \"preserve\" } },\n\t\t\t\texternalHelpers: false,\n\t\t\t\tassumptions: {\n\t\t\t\t\tsetPublicClassFields: true,\n\t\t\t\t\tprivateFieldsAsProperties: true\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn code.slice(0, startIdx) + result.code + code.slice(runtimeEnd);\n\t} catch (err) {\n\t\tconsole.warn(\"[vxrn] downlevelClassFieldsInBundle failed, returning original:\", err);\n\t\treturn code;\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\tlet currentBundle = null;\n\tlet bundleResolve = null;\n\tlet bundlePromise = null;\n\tconst resolvedHost = host === \"0.0.0.0\" ? \"localhost\" : host;\n\tconst engine = await dev({\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: [\n\t\t\tnativeVirtualEntryPlugin(root, { dev: true }),\n\t\t\t...getNativePlugins(root, platform, viteImportGlobPlugin, true),\n\t\t\t...userPlugins\n\t\t]\n\t}, {\n\t\t...getNativeOutputOptions(prelude, false),\n\t\toutro: `\ntry {\n var __WS = (init_WebSocket(), __toCommonJS(WebSocket_exports)).default;\n var __hmrUrl = 'ws://${resolvedHost}:${port}/hot?platform=${platform}&clientId=' + encodeURIComponent(__rolldown_runtime__.clientId);\n var __hmrWS = new __WS(__hmrUrl);\n __hmrWS.onmessage = function(event) {\n try {\n var msg = JSON.parse(event.data);\n var g = typeof global !== 'undefined' ? global : globalThis;\n if (msg.type === 'hmr:update' && msg.code) {\n var applied = __rolldown_runtime__.applyHmrUpdate(msg.code, msg.changedIds, msg.seq);\n if (!applied) {\n var updateSettings = g.__turboModuleProxy ? g.__turboModuleProxy('DevSettings') : null;\n if (updateSettings && updateSettings.reload) updateSettings.reload();\n }\n } else if (msg.type === 'hmr:reload') {\n var ds = g.__turboModuleProxy ? g.__turboModuleProxy('DevSettings') : null;\n if (ds && ds.reload) ds.reload();\n }\n } catch(e) { console.error('[vxrn] HMR eval error:', e); }\n };\n __hmrWS.onopen = function() {\n if (typeof __rolldown_runtime__ !== 'undefined' && __rolldown_runtime__.setup) {\n __rolldown_runtime__.setup(__hmrWS);\n }\n };\n __hmrWS.onerror = function(e) { console.warn('[vxrn] HMR connection error:', e.message || e); };\n} catch(e) {}\n`\n\t}, {\n\t\tonOutput: async (result) => {\n\t\t\tif (result instanceof Error) {\n\t\t\t\tconsole.error(\"[vxrn] native bundle error:\", result.message);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst chunk = result.output.find((o) => o.type === \"chunk\" && o.isEntry);\n\t\t\tif (chunk && \"code\" in chunk) {\n\t\t\t\tlet code = postProcessNativeBundle(chunk.code);\n\t\t\t\tcode = await downlevelClassFieldsInBundle(code);\n\t\t\t\tcode = wrapNativeBundleModuleScope(code);\n\t\t\t\tcurrentBundle = { code };\n\t\t\t\tconsole.info(`[vxrn] native bundle ready (${Math.round(code.length / 1024)}KB)`);\n\t\t\t\tif (bundleResolve) {\n\t\t\t\t\tbundleResolve(currentBundle);\n\t\t\t\t\tbundleResolve = null;\n\t\t\t\t\tbundlePromise = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonHmrUpdates: async (result) => {\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\tfor (const { clientId, update } of result.updates) if (update.type === \"Patch\" && update.code) onHmrUpdate?.({\n\t\t\t\ttype: \"hmr:update\",\n\t\t\t\tclientId,\n\t\t\t\tcode: update.code,\n\t\t\t\tchangedIds: update.changedIds,\n\t\t\t\tseq: update.seq\n\t\t\t});\n\t\t\telse 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: {}\n\t});\n\tawait engine.run();\n\treturn {\n\t\tengine,\n\t\tasync getBundle() {\n\t\t\tawait engine.ensureLatestBuildOutput();\n\t\t\tif (currentBundle) return currentBundle;\n\t\t\tif (!bundlePromise) {\n\t\t\t\tlet timeoutId;\n\t\t\t\tbundlePromise = new Promise((resolve2, reject) => {\n\t\t\t\t\tbundleResolve = (value) => {\n\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\tresolve2(value);\n\t\t\t\t\t};\n\t\t\t\t\ttimeoutId = setTimeout(() => reject(/* @__PURE__ */ new Error(\"[vxrn] bundle build timed out after 120s\")), 12e4);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn bundlePromise;\n\t\t},\n\t\tasync 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 } = 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, { dev })],\n\t\t\t...getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest),\n\t\t\t...userPlugins\n\t\t],\n\t\toutput: getNativeOutputOptions(prelude, sourcemap)\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\tlet code = postProcessNativeBundle(chunk.code);\n\tcode = await downlevelClassFieldsInBundle(code);\n\treturn {\n\t\tcode,\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 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 entryCode = `\n${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` : \"\"}\nimport * as ReactNativeInitializeCore from 'react-native/Libraries/Core/InitializeCore';\nimport NativeWebSocket from 'react-native/Libraries/WebSocket/WebSocket';\n${setupFileImport}\nimport { createApp } from 'one';\n\nvoid ReactNativeInitializeCore;\nglobalThis.WebSocket = NativeWebSocket;\n\nvar _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\ncreateApp({\n routes: routes,\n routerRoot: ${JSON.stringify(routerRoot)},\n flags: ${JSON.stringify(flags)},\n linking: ${JSON.stringify(linking)},\n});\n`;\n\treturn {\n\t\tname: \"vxrn:native-virtual-entry\",\n\t\tresolveId(id) {\n\t\t\tif (id === VIRTUAL_NATIVE_ENTRY) return resolvedId;\n\t\t},\n\t\tload(id) {\n\t\t\tif (id === resolvedId) return entryCode;\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 { code: code.replace(target, `const method = nullthrows(NativeAnimatedModule)[methodName];\n if (typeof method !== 'function') return;`) };\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 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 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()) {\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\ttry {\n\t\t\t\tif (!compiler) compiler = await import(\"@vxrn/compiler\");\n\t\t\t\tconst props = {\n\t\t\t\t\tid,\n\t\t\t\t\tcode,\n\t\t\t\t\tprojectRoot,\n\t\t\t\t\tdevelopment: dev,\n\t\t\t\t\tenvironment: platform,\n\t\t\t\t\treactForRNVersion: \"19\"\n\t\t\t\t};\n\t\t\t\tlet babelOptions = compiler.getBabelOptions(props);\n\t\t\t\tif (needsRefresh) {\n\t\t\t\t\tconst existingPlugins = babelOptions?.plugins || [];\n\t\t\t\t\tbabelOptions = {\n\t\t\t\t\t\t...babelOptions,\n\t\t\t\t\t\tplugins: [...existingPlugins, [\"react-refresh/babel\", {\n\t\t\t\t\t\t\tskipEnvCheck: true,\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}\n\t\t\t\tif (!babelOptions) return;\n\t\t\t\tconst result = await compiler.transformBabel(id, code, babelOptions);\n\t\t\t\tif (result?.code) {\n\t\t\t\t\tlet out = result.code;\n\t\t\t\t\tif (needsRefresh) out = `\nvar __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${out}\n\nglobalThis.$RefreshReg$ = __prevRefreshReg;\nglobalThis.$RefreshSig$ = __prevRefreshSig;\nif (import.meta.hot) {\n import.meta.hot.accept(function() {\n if (globalThis.__ReactRefresh) {\n setTimeout(function() { globalThis.__ReactRefresh.performReactRefresh(); }, 30);\n }\n });\n}\n`;\n\t\t\t\t\treturn { code: out };\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tif (dev) console.warn(`[vxrn:compiler] ${id}: ${err.message || err}`);\n\t\t\t\tif (needsRefresh) return { code: code + `\nif (import.meta.hot) { import.meta.hot.accept(); }\n` };\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 (!FLOW_FILE_PATTERN.test(id)) return;\n\t\t\ttry {\n\t\t\t\tconst result = await (await import(\"fast-flow-transform\")).default({\n\t\t\t\t\tfilename: id,\n\t\t\t\t\tsource: code,\n\t\t\t\t\tsourcemap: true,\n\t\t\t\t\tdialect: \"flow\",\n\t\t\t\t\tformat: \"pretty\"\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tcode: result.code,\n\t\t\t\t\tmap: result.map\n\t\t\t\t};\n\t\t\t} catch (err) {\n\t\t\t\tconsole.warn(`[vxrn:flow-strip] ${id}: ${err.message}`);\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 ext = extname(id).slice(1);\n\t\t\tconst name = basename(id, `.${ext}`);\n\t\t\tconst dir = dirname(id);\n\t\t\tconst relativePath = relative(opts.root, id);\n\t\t\tconst assetData = {\n\t\t\t\t__packager_asset: true,\n\t\t\t\tname,\n\t\t\t\ttype: ext,\n\t\t\t\tscales: [1],\n\t\t\t\thttpServerLocation: \"/assets/\" + dirname(relativePath).replace(/\\\\/g, \"/\"),\n\t\t\t\tfileSystemLocation: dir,\n\t\t\t\thash: \"\",\n\t\t\t\twidth: void 0,\n\t\t\t\theight: void 0\n\t\t\t};\n\t\t\tif ([\n\t\t\t\t\"png\",\n\t\t\t\t\"jpg\",\n\t\t\t\t\"jpeg\",\n\t\t\t\t\"gif\",\n\t\t\t\t\"webp\",\n\t\t\t\t\"bmp\"\n\t\t\t].includes(ext)) try {\n\t\t\t\tconst { imageSize } = await import(\"image-size\");\n\t\t\t\tconst dims = imageSize(id);\n\t\t\t\tassetData.width = dims.width;\n\t\t\t\tassetData.height = dims.height;\n\t\t\t} catch {}\n\t\t\tif (opts.assetsDest) {\n\t\t\t\tconst relativeAssetDir = dirname(relativePath).replace(/\\\\/g, \"/\");\n\t\t\t\tconst assetDestDir = join(opts.assetsDest, \"assets\", relativeAssetDir);\n\t\t\t\tmkdirSync(assetDestDir, { recursive: true });\n\t\t\t\tcopyFileSync(id, join(assetDestDir, `${name}.${ext}`));\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcode: `module.exports = require('react-native/Libraries/Image/AssetRegistry').registerAsset(${JSON.stringify(assetData)});`,\n\t\t\t\tmoduleType: \"js\"\n\t\t\t};\n\t\t} }\n\t};\n}\nfunction hermesCompatSWCPlugin(dev) {\n\tlet swc = 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 = code.includes(\"class \") || code.includes(\"class{\");\n\t\t\tconst hasAsync = !dev && code.includes(\"async \");\n\t\t\tif (!hasClass && !hasAsync) return;\n\t\t\tif (code.length > 5e5) return;\n\t\t\ttry {\n\t\t\t\tif (!swc) swc = await import(\"@swc/core\");\n\t\t\t\tconst envIncludes = getHermesSWCIncludes(dev);\n\t\t\t\treturn { code: (await swc.transform(code, {\n\t\t\t\t\tfilename: id,\n\t\t\t\t\tconfigFile: false,\n\t\t\t\t\tswcrc: false,\n\t\t\t\t\tsourceMaps: false,\n\t\t\t\t\tinputSourceMap: false,\n\t\t\t\t\tenv: {\n\t\t\t\t\t\ttargets: { node: 9999 },\n\t\t\t\t\t\tinclude: envIncludes\n\t\t\t\t\t},\n\t\t\t\t\tjsc: {\n\t\t\t\t\t\tparser: {\n\t\t\t\t\t\t\tsyntax: \"typescript\",\n\t\t\t\t\t\t\ttsx: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttransform: { react: { runtime: \"preserve\" } },\n\t\t\t\t\t\texternalHelpers: false,\n\t\t\t\t\t\tassumptions: {\n\t\t\t\t\t\t\tsetPublicClassFields: true,\n\t\t\t\t\t\t\tprivateFieldsAsProperties: true\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tisModule: !id.endsWith(\".cjs\")\n\t\t\t\t})).code };\n\t\t\t} catch (err) {}\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 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 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 return !!(ctx && ctx.acceptCallbacks.some(function(callback) {\n return callback.deps.indexOf(moduleId) !== -1;\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 if (this.isSelfAccepted(moduleId)) {\n boundaries.push({ boundary: moduleId, acceptedVia: moduleId });\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 return {\n boundary: item.boundary,\n acceptedVia: item.acceptedVia,\n callbacks: ctx ? ctx.acceptCallbacks.filter(function(callback) {\n return callback.deps.indexOf(item.acceptedVia) !== -1;\n }) : []\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 setup(socket) {\n if (this._socket) return;\n this._socket = socket;\n }\n}\n\nglobalThis.__rolldown_runtime__ = new ReactNativeDevRuntime();\n`;\n}\n\nexport { buildNativeBundle, createNativeDevEngine, getHermesSWCIncludes, getHmrRuntimeSource, getNativeTransformConfig, hmrClientNoopPlugin, vxrnCompilerPlugin, wrapNativeBundleModuleScope };"],"mappings":"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AE,YAAY;gBACpBkJ,GAAG,EAAE;cACN,CAAC;cACD/J,SAAS,EAAE;gBAAEc,KAAK,EAAE;kBAAE5D,OAAO,EAAE;gBAAW;cAAE,CAAC;cAC7C6D,eAAe,EAAE,KAAK;cACtBC,WAAW,EAAE;gBACZC,oBAAoB,EAAE,IAAI;gBAC1BC,yBAAyB,EAAE;cAC5B;YACD,CAAC;YACDZ,QAAQ,EAAE,CAACkG,EAAE,CAACa,QAAQ,CAAC,MAAM;UAC9B,CAAC,CAAC,EAAEzI;QAAK,CAAC;MACX,CAAC,CAAC,OAAOuC,GAAG,EAAE,CAAC;IAChB;EACD,CAAC;AACF;AACA,SAASY,mBAAmBA,CAAA,EAAG;EAC9B,OAAO;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASoD,iBAAiB,EAAE7D,qBAAqB,EAAE5H,oBAAoB,EAAEqI,mBAAmB,EAAE1H,wBAAwB,EAAEwD,mBAAmB,EAAEE,kBAAkB,EAAEwB,2BAA2B","ignoreList":[]}
|
|
@@ -162,7 +162,7 @@ function getNativeTransformConfig(platform, dev, root) {
|
|
|
162
162
|
function getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest) {
|
|
163
163
|
return [...(globalThis.__vxrnAddNativePlugins || []), serverFileExclusionPlugin(), environmentGuardPlugin(), hmrClientNoopPlugin(), cssStubPlugin(), viteImportGlobPlugin({
|
|
164
164
|
root
|
|
165
|
-
}), vxrnCompilerPlugin(platform, dev), flowStripPlugin(), nativeAnimatedGuardPlugin(), assetPlugin({
|
|
165
|
+
}), vxrnCompilerPlugin(platform, dev, root), flowStripPlugin(), nativeAnimatedGuardPlugin(), assetPlugin({
|
|
166
166
|
root,
|
|
167
167
|
platform,
|
|
168
168
|
assetsDest
|
|
@@ -300,18 +300,18 @@ async function createNativeDevEngine(options) {
|
|
|
300
300
|
outro: `
|
|
301
301
|
try {
|
|
302
302
|
var __WS = (init_WebSocket(), __toCommonJS(WebSocket_exports)).default;
|
|
303
|
-
var __hmrUrl = 'ws://${resolvedHost}:${port}/hot';
|
|
303
|
+
var __hmrUrl = 'ws://${resolvedHost}:${port}/hot?platform=${platform}&clientId=' + encodeURIComponent(__rolldown_runtime__.clientId);
|
|
304
304
|
var __hmrWS = new __WS(__hmrUrl);
|
|
305
305
|
__hmrWS.onmessage = function(event) {
|
|
306
306
|
try {
|
|
307
307
|
var msg = JSON.parse(event.data);
|
|
308
308
|
var g = typeof global !== 'undefined' ? global : globalThis;
|
|
309
309
|
if (msg.type === 'hmr:update' && msg.code) {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
}
|
|
310
|
+
var applied = __rolldown_runtime__.applyHmrUpdate(msg.code, msg.changedIds, msg.seq);
|
|
311
|
+
if (!applied) {
|
|
312
|
+
var updateSettings = g.__turboModuleProxy ? g.__turboModuleProxy('DevSettings') : null;
|
|
313
|
+
if (updateSettings && updateSettings.reload) updateSettings.reload();
|
|
314
|
+
}
|
|
315
315
|
} else if (msg.type === 'hmr:reload') {
|
|
316
316
|
var ds = g.__turboModuleProxy ? g.__turboModuleProxy('DevSettings') : null;
|
|
317
317
|
if (ds && ds.reload) ds.reload();
|
|
@@ -320,7 +320,7 @@ try {
|
|
|
320
320
|
};
|
|
321
321
|
__hmrWS.onopen = function() {
|
|
322
322
|
if (typeof __rolldown_runtime__ !== 'undefined' && __rolldown_runtime__.setup) {
|
|
323
|
-
__rolldown_runtime__.setup(__hmrWS
|
|
323
|
+
__rolldown_runtime__.setup(__hmrWS);
|
|
324
324
|
}
|
|
325
325
|
};
|
|
326
326
|
__hmrWS.onerror = function(e) { console.warn('[vxrn] HMR connection error:', e.message || e); };
|
|
@@ -358,19 +358,24 @@ try {
|
|
|
358
358
|
});
|
|
359
359
|
return;
|
|
360
360
|
}
|
|
361
|
-
var updates = result.updates || [];
|
|
362
361
|
var _iteratorNormalCompletion = true,
|
|
363
362
|
_didIteratorError = false,
|
|
364
363
|
_iteratorError = void 0;
|
|
365
364
|
try {
|
|
366
|
-
for (var _iterator = updates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
367
|
-
var
|
|
368
|
-
|
|
365
|
+
for (var _iterator = result.updates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
366
|
+
var {
|
|
367
|
+
clientId,
|
|
368
|
+
update
|
|
369
|
+
} = _step.value;
|
|
369
370
|
if (update.type === "Patch" && update.code) onHmrUpdate === null || onHmrUpdate === void 0 || onHmrUpdate({
|
|
370
371
|
type: "hmr:update",
|
|
371
|
-
|
|
372
|
+
clientId,
|
|
373
|
+
code: update.code,
|
|
374
|
+
changedIds: update.changedIds,
|
|
375
|
+
seq: update.seq
|
|
372
376
|
});else if (update.type === "FullReload") onHmrUpdate === null || onHmrUpdate === void 0 || onHmrUpdate({
|
|
373
|
-
type: "hmr:reload"
|
|
377
|
+
type: "hmr:reload",
|
|
378
|
+
clientId
|
|
374
379
|
});
|
|
375
380
|
}
|
|
376
381
|
} catch (err) {
|
|
@@ -383,9 +388,6 @@ try {
|
|
|
383
388
|
if (_didIteratorError) throw _iteratorError;
|
|
384
389
|
}
|
|
385
390
|
}
|
|
386
|
-
if (updates.length === 0) onHmrUpdate === null || onHmrUpdate === void 0 || onHmrUpdate({
|
|
387
|
-
type: "hmr:reload"
|
|
388
|
-
});
|
|
389
391
|
},
|
|
390
392
|
rebuildStrategy: "never",
|
|
391
393
|
watch: {}
|
|
@@ -619,6 +621,7 @@ function cssStubPlugin() {
|
|
|
619
621
|
};
|
|
620
622
|
}
|
|
621
623
|
function vxrnCompilerPlugin(platform, dev) {
|
|
624
|
+
var projectRoot = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : process.cwd();
|
|
622
625
|
var compiler = null;
|
|
623
626
|
var isRefreshCandidate = function (id) {
|
|
624
627
|
return dev && !id.includes("node_modules") && !id.includes("__virtual-native-entry") && /\.[tj]sx?$/.test(id);
|
|
@@ -634,6 +637,7 @@ function vxrnCompilerPlugin(platform, dev) {
|
|
|
634
637
|
var props = {
|
|
635
638
|
id,
|
|
636
639
|
code,
|
|
640
|
+
projectRoot,
|
|
637
641
|
development: dev,
|
|
638
642
|
environment: platform,
|
|
639
643
|
reactForRNVersion: "19"
|
|
@@ -822,26 +826,33 @@ var BaseDevRuntime = DevRuntime;
|
|
|
822
826
|
|
|
823
827
|
class ReactNativeDevRuntime extends BaseDevRuntime {
|
|
824
828
|
constructor() {
|
|
825
|
-
var _shared = { _socket: null, _queue: [] };
|
|
826
829
|
var clientId = 'rn-' + Date.now() + '-' + Math.random().toString(36).slice(2);
|
|
827
|
-
super(
|
|
828
|
-
var s = JSON.stringify(msg);
|
|
829
|
-
if (_shared._socket && _shared._socket.readyState === 1) { _shared._socket.send(s); }
|
|
830
|
-
else { _shared._queue.push(s); }
|
|
831
|
-
}}, clientId);
|
|
832
|
-
this._shared = _shared;
|
|
830
|
+
super(clientId);
|
|
833
831
|
this._socket = null;
|
|
834
|
-
this._queue = [];
|
|
835
832
|
this.moduleHotContexts = {};
|
|
833
|
+
this.lastSeq = 0;
|
|
836
834
|
}
|
|
837
835
|
|
|
838
836
|
createModuleHotContext(moduleId) {
|
|
837
|
+
var runtime = this;
|
|
839
838
|
var ctx = {
|
|
840
839
|
acceptCallbacks: [],
|
|
841
|
-
accept: function(
|
|
842
|
-
if (
|
|
840
|
+
accept: function(deps, callback) {
|
|
841
|
+
if (typeof deps === 'function' || !deps) {
|
|
842
|
+
ctx.acceptCallbacks.push({
|
|
843
|
+
deps: [moduleId],
|
|
844
|
+
fn: function(modules) { if (typeof deps === 'function') deps(modules[0]); }
|
|
845
|
+
});
|
|
846
|
+
} else if (typeof deps === 'string') {
|
|
847
|
+
ctx.acceptCallbacks.push({
|
|
848
|
+
deps: [deps],
|
|
849
|
+
fn: function(modules) { if (callback) callback(modules[0]); }
|
|
850
|
+
});
|
|
851
|
+
} else if (Array.isArray(deps)) {
|
|
852
|
+
ctx.acceptCallbacks.push({ deps: deps, fn: callback || function() {} });
|
|
853
|
+
}
|
|
843
854
|
},
|
|
844
|
-
invalidate: function() {},
|
|
855
|
+
invalidate: function() { runtime.requestReload('module invalidated: ' + moduleId); },
|
|
845
856
|
on: function() {},
|
|
846
857
|
off: function() {},
|
|
847
858
|
send: function() {},
|
|
@@ -872,60 +883,117 @@ class ReactNativeDevRuntime extends BaseDevRuntime {
|
|
|
872
883
|
return ctx;
|
|
873
884
|
}
|
|
874
885
|
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
886
|
+
isSelfAccepted(moduleId) {
|
|
887
|
+
var ctx = this.moduleHotContexts[moduleId];
|
|
888
|
+
return !!(ctx && ctx.acceptCallbacks.some(function(callback) {
|
|
889
|
+
return callback.deps.indexOf(moduleId) !== -1;
|
|
890
|
+
}));
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
acceptsDependency(parentId, moduleId) {
|
|
894
|
+
var ctx = this.moduleHotContexts[parentId];
|
|
895
|
+
return !!(ctx && ctx.acceptCallbacks.some(function(callback) {
|
|
896
|
+
return callback.deps.indexOf(moduleId) !== -1;
|
|
897
|
+
}));
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
findBoundaries(moduleId, traversed, updateSet, boundaries) {
|
|
901
|
+
if (traversed.has(moduleId)) return true;
|
|
902
|
+
traversed.add(moduleId);
|
|
903
|
+
updateSet.add(moduleId);
|
|
904
|
+
|
|
905
|
+
if (this.isSelfAccepted(moduleId)) {
|
|
906
|
+
boundaries.push({ boundary: moduleId, acceptedVia: moduleId });
|
|
907
|
+
return true;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
var importers = this.getImporters(moduleId).filter(function(importer) {
|
|
911
|
+
return this.isExecuted(importer);
|
|
912
|
+
}, this);
|
|
913
|
+
if (importers.length === 0) return false;
|
|
914
|
+
|
|
915
|
+
for (var i = 0; i < importers.length; i++) {
|
|
916
|
+
var importer = importers[i];
|
|
917
|
+
if (this.acceptsDependency(importer, moduleId)) {
|
|
918
|
+
boundaries.push({ boundary: importer, acceptedVia: moduleId });
|
|
919
|
+
} else if (!this.findBoundaries(importer, traversed, updateSet, boundaries)) {
|
|
920
|
+
return false;
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
return true;
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
applyHmrUpdate(code, changedIds, seq) {
|
|
927
|
+
if (seq !== this.lastSeq + 1) return false;
|
|
928
|
+
this.lastSeq = seq;
|
|
929
|
+
|
|
930
|
+
var traversed = new Set();
|
|
931
|
+
var updateSet = new Set();
|
|
932
|
+
var boundaries = [];
|
|
933
|
+
for (var i = 0; i < changedIds.length; i++) {
|
|
934
|
+
var changedId = changedIds[i];
|
|
935
|
+
if (!this.isExecuted(changedId)) continue;
|
|
936
|
+
if (!this.findBoundaries(changedId, traversed, updateSet, boundaries)) return false;
|
|
937
|
+
}
|
|
938
|
+
if (boundaries.length === 0) return true;
|
|
939
|
+
|
|
940
|
+
var callbacks = boundaries.map(function(item) {
|
|
941
|
+
var ctx = this.moduleHotContexts[item.boundary];
|
|
942
|
+
return {
|
|
943
|
+
boundary: item.boundary,
|
|
944
|
+
acceptedVia: item.acceptedVia,
|
|
945
|
+
callbacks: ctx ? ctx.acceptCallbacks.filter(function(callback) {
|
|
946
|
+
return callback.deps.indexOf(item.acceptedVia) !== -1;
|
|
947
|
+
}) : []
|
|
948
|
+
};
|
|
949
|
+
}, this);
|
|
950
|
+
|
|
951
|
+
if (globalThis.globalEvalWithSourceUrl) globalThis.globalEvalWithSourceUrl(code);
|
|
952
|
+
else (0, eval)(code);
|
|
953
|
+
|
|
954
|
+
var modulesToReplace = Array.from(updateSet);
|
|
955
|
+
for (var j = 0; j < modulesToReplace.length; j++) {
|
|
956
|
+
if (!this.hasFactory(modulesToReplace[j])) return false;
|
|
957
|
+
}
|
|
958
|
+
for (var k = 0; k < modulesToReplace.length; k++) {
|
|
959
|
+
this.removeModuleCache(modulesToReplace[k]);
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
for (var m = 0; m < callbacks.length; m++) {
|
|
963
|
+
var apply = callbacks[m];
|
|
964
|
+
this.initModule(apply.acceptedVia);
|
|
965
|
+
var freshExports = this.loadExports(apply.acceptedVia);
|
|
966
|
+
for (var n = 0; n < apply.callbacks.length; n++) {
|
|
967
|
+
apply.callbacks[n].fn([freshExports]);
|
|
883
968
|
}
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
// and the web route-update event has no equivalent on the native /hot
|
|
888
|
-
// socket, so this generic vxrn global is the bridge.
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
for (var p = 0; p < changedIds.length; p++) {
|
|
889
972
|
try {
|
|
890
|
-
if (globalThis.__VXRN_ON_MODULE_UPDATED__
|
|
973
|
+
if (globalThis.__VXRN_ON_MODULE_UPDATED__) {
|
|
974
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__(changedIds[p]);
|
|
975
|
+
}
|
|
891
976
|
} catch (error) {
|
|
892
977
|
console.error('[vxrn HMR]: module update hook failed', error);
|
|
893
978
|
}
|
|
894
979
|
}
|
|
980
|
+
return true;
|
|
895
981
|
}
|
|
896
982
|
|
|
897
|
-
|
|
898
|
-
if (this._socket)
|
|
899
|
-
|
|
900
|
-
// also set the shared messenger socket so queued messages can flush
|
|
901
|
-
if (this._shared) this._shared._socket = socket;
|
|
902
|
-
|
|
903
|
-
var flushQueues = function() {
|
|
904
|
-
// flush messenger queue
|
|
905
|
-
if (this._shared && this._shared._queue.length) {
|
|
906
|
-
for (var i = 0; i < this._shared._queue.length; i++) socket.send(this._shared._queue[i]);
|
|
907
|
-
this._shared._queue = [];
|
|
908
|
-
}
|
|
909
|
-
// flush instance queue
|
|
910
|
-
for (var i = 0; i < this._queue.length; i++) socket.send(this._queue[i]);
|
|
911
|
-
this._queue = [];
|
|
912
|
-
}.bind(this);
|
|
913
|
-
|
|
914
|
-
if (socket.readyState === 1) {
|
|
915
|
-
flushQueues();
|
|
916
|
-
} else {
|
|
917
|
-
socket.addEventListener('open', function() {
|
|
918
|
-
flushQueues();
|
|
919
|
-
}, { once: true });
|
|
983
|
+
requestReload(reason) {
|
|
984
|
+
if (this._socket && this._socket.readyState === 1) {
|
|
985
|
+
this._socket.send(JSON.stringify({ type: 'hmr:invalidate', reason: reason }));
|
|
920
986
|
}
|
|
987
|
+
}
|
|
921
988
|
|
|
922
|
-
|
|
923
|
-
|
|
989
|
+
setup(socket) {
|
|
990
|
+
if (this._socket) return;
|
|
991
|
+
this._socket = socket;
|
|
924
992
|
}
|
|
925
993
|
}
|
|
926
994
|
|
|
927
995
|
globalThis.__rolldown_runtime__ = new ReactNativeDevRuntime();
|
|
928
996
|
`;
|
|
929
997
|
}
|
|
930
|
-
export { buildNativeBundle, createNativeDevEngine, getHermesSWCIncludes, getNativeTransformConfig, hmrClientNoopPlugin, vxrnCompilerPlugin, wrapNativeBundleModuleScope };
|
|
998
|
+
export { buildNativeBundle, createNativeDevEngine, getHermesSWCIncludes, getHmrRuntimeSource, getNativeTransformConfig, hmrClientNoopPlugin, vxrnCompilerPlugin, wrapNativeBundleModuleScope };
|
|
931
999
|
//# sourceMappingURL=createNativeDevEngine.native.js.map
|