@vxrn/vite-plugin-metro 2.0.0-beta.53.1 → 2.0.0-beta.57.1

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 (115) hide show
  1. package/dist/cjs/index.cjs +0 -2
  2. package/dist/cjs/index.native.cjs +0 -2
  3. package/dist/cjs/index.native.js +0 -2
  4. package/dist/cjs/index.native.js.map +1 -1
  5. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +48 -38
  6. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.cjs +62 -42
  7. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +62 -42
  8. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  9. package/dist/cjs/transformer/babel-transformer.cjs +53 -4
  10. package/dist/cjs/transformer/babel-transformer.native.cjs +65 -6
  11. package/dist/cjs/transformer/babel-transformer.native.js +65 -6
  12. package/dist/cjs/transformer/babel-transformer.native.js.map +1 -1
  13. package/dist/cjs/transformer/expoVirtualEnv.cjs +92 -0
  14. package/dist/cjs/transformer/expoVirtualEnv.native.cjs +113 -0
  15. package/dist/cjs/transformer/expoVirtualEnv.native.js +115 -0
  16. package/dist/cjs/transformer/expoVirtualEnv.native.js.map +1 -0
  17. package/dist/cjs/transformer/loadBabelConfig.cjs +1 -1
  18. package/dist/cjs/transformer/loadBabelConfig.native.cjs +1 -1
  19. package/dist/cjs/transformer/loadBabelConfig.native.js +1 -1
  20. package/dist/cjs/transformer/loadBabelConfig.native.js.map +1 -1
  21. package/dist/cjs/transformer/metroNativeWorker.cjs +8 -20
  22. package/dist/cjs/transformer/metroNativeWorker.native.cjs +8 -20
  23. package/dist/cjs/transformer/metroNativeWorker.native.js +8 -20
  24. package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
  25. package/dist/cjs/transformer/transformSync.cjs +3 -3
  26. package/dist/cjs/transformer/transformSync.native.cjs +3 -3
  27. package/dist/cjs/transformer/transformSync.native.js +3 -3
  28. package/dist/cjs/transformer/transformSync.native.js.map +1 -1
  29. package/dist/cjs/utils/exit.cjs +1 -1
  30. package/dist/cjs/utils/exit.native.cjs +1 -1
  31. package/dist/cjs/utils/exit.native.js +1 -1
  32. package/dist/cjs/utils/exit.native.js.map +1 -1
  33. package/dist/esm/index.js +1 -2
  34. package/dist/esm/index.mjs +1 -2
  35. package/dist/esm/index.native.js +1 -2
  36. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +48 -38
  37. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
  38. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +62 -42
  39. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  40. package/dist/esm/transformer/babel-transformer.mjs +133 -96
  41. package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
  42. package/dist/esm/transformer/babel-transformer.native.js +147 -103
  43. package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
  44. package/dist/esm/transformer/expoVirtualEnv.mjs +67 -0
  45. package/dist/esm/transformer/expoVirtualEnv.mjs.map +1 -0
  46. package/dist/esm/transformer/expoVirtualEnv.native.js +86 -0
  47. package/dist/esm/transformer/expoVirtualEnv.native.js.map +1 -0
  48. package/dist/esm/transformer/loadBabelConfig.mjs +1 -1
  49. package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -1
  50. package/dist/esm/transformer/loadBabelConfig.native.js +1 -1
  51. package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -1
  52. package/dist/esm/transformer/metroNativeWorker.mjs +8 -20
  53. package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
  54. package/dist/esm/transformer/metroNativeWorker.native.js +8 -20
  55. package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
  56. package/dist/esm/transformer/transformSync.mjs +3 -3
  57. package/dist/esm/transformer/transformSync.mjs.map +1 -1
  58. package/dist/esm/transformer/transformSync.native.js +3 -3
  59. package/dist/esm/transformer/transformSync.native.js.map +1 -1
  60. package/dist/esm/utils/exit.mjs +1 -1
  61. package/dist/esm/utils/exit.mjs.map +1 -1
  62. package/dist/esm/utils/exit.native.js +1 -1
  63. package/dist/esm/utils/exit.native.js.map +1 -1
  64. package/package.json +7 -9
  65. package/src/index.ts +0 -2
  66. package/src/metro-config/getMetroConfigFromViteConfig.test.ts +5 -0
  67. package/src/metro-config/getMetroConfigFromViteConfig.ts +81 -96
  68. package/src/plugins/metroPlugin.ts +3 -6
  69. package/src/transformer/babel-transformer.test.ts +118 -0
  70. package/src/transformer/babel-transformer.ts +82 -15
  71. package/src/transformer/expoVirtualEnv.integration.test.ts +106 -0
  72. package/src/transformer/expoVirtualEnv.test.ts +72 -0
  73. package/src/transformer/expoVirtualEnv.ts +115 -0
  74. package/src/transformer/loadBabelConfig.ts +1 -1
  75. package/src/transformer/metroNativeWorker.test.ts +105 -1
  76. package/src/transformer/metroNativeWorker.ts +12 -33
  77. package/src/transformer/transformSync.test.ts +22 -0
  78. package/src/transformer/transformSync.ts +4 -4
  79. package/src/utils/exit.ts +2 -2
  80. package/src/utils/getTerminalReporter.ts +1 -1
  81. package/src/utils/projectImport.ts +2 -2
  82. package/types/index.d.ts +0 -2
  83. package/types/index.d.ts.map +1 -1
  84. package/types/metro-config/getMetroConfigFromViteConfig.d.ts +2 -2
  85. package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
  86. package/types/plugins/metroPlugin.d.ts +2 -4
  87. package/types/plugins/metroPlugin.d.ts.map +1 -1
  88. package/types/transformer/babel-transformer.d.ts +10 -1
  89. package/types/transformer/babel-transformer.d.ts.map +1 -1
  90. package/types/transformer/expoVirtualEnv.d.ts +8 -0
  91. package/types/transformer/expoVirtualEnv.d.ts.map +1 -0
  92. package/types/transformer/metroNativeWorker.d.ts.map +1 -1
  93. package/types/utils/projectImport.d.ts +2 -2
  94. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +0 -59
  95. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.cjs +0 -62
  96. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +0 -64
  97. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  98. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +0 -35
  99. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.cjs +0 -37
  100. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -39
  101. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  102. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +0 -40
  103. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +0 -1
  104. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +0 -41
  105. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  106. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +0 -15
  107. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +0 -1
  108. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -15
  109. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  110. package/src/plugins/expoManifestRequestHandlerPlugin.ts +0 -88
  111. package/src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts +0 -28
  112. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +0 -14
  113. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +0 -1
  114. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts +0 -5
  115. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"metroNativeWorker.js","names":[],"sources":["esm/transformer/metroNativeWorker.js"],"sourcesContent":["import crypto from \"node:crypto\";\nimport { createRequire } from \"node:module\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { parseSync } from \"oxc-parser\";\nimport MagicString from \"magic-string\";\nimport remapping from \"@jridgewell/remapping\";\nimport { TraceMap, eachMapping } from \"@jridgewell/trace-mapping\";\nimport {\n shouldStripFlow,\n stripFlowTypes,\n transformHermesAsync,\n transformHermesLoops,\n transformReactNativeCodegen\n} from \"@vxrn/compiler\";\nimport { withExpoPublicEnvAliases } from \"@vxrn/utils/publicEnv\";\nimport { getPlatformEnv, metroPlatformToViteEnvironment } from \"../env/platformEnv\";\nfunction collectModuleLiteralBindings(program) {\n const reassigned = /* @__PURE__ */ new Set();\n const declCount = /* @__PURE__ */ new Map();\n (function findReassignments(node) {\n if (!node || typeof node !== \"object\") return;\n if (Array.isArray(node)) {\n for (const child of node) findReassignments(child);\n return;\n }\n if (node.type === \"AssignmentExpression\" && node.left?.type === \"Identifier\") {\n reassigned.add(node.left.name);\n } else if (node.type === \"UpdateExpression\" && node.argument?.type === \"Identifier\") {\n reassigned.add(node.argument.name);\n }\n for (const key in node) {\n if (key === \"type\" || key === \"start\" || key === \"end\") continue;\n findReassignments(node[key]);\n }\n })(program);\n for (const stmt of program.body || []) {\n if (stmt.type !== \"VariableDeclaration\") continue;\n for (const decl of stmt.declarations || []) {\n if (decl.id?.type === \"Identifier\") {\n declCount.set(decl.id.name, (declCount.get(decl.id.name) || 0) + 1);\n }\n }\n }\n const bindings = /* @__PURE__ */ new Map();\n for (const stmt of program.body || []) {\n if (stmt.type !== \"VariableDeclaration\") continue;\n for (const decl of stmt.declarations || []) {\n if (decl.id?.type === \"Identifier\" && decl.init?.type === \"Literal\" && !reassigned.has(decl.id.name) && declCount.get(decl.id.name) === 1) {\n bindings.set(decl.id.name, decl.init);\n }\n }\n }\n return bindings;\n}\nconst WORKER_CACHE_KEY_VERSION = \"5\";\nfunction langForFilename(filename) {\n if (filename.endsWith(\".tsx\")) return \"tsx\";\n if (filename.endsWith(\".ts\")) return \"ts\";\n return \"jsx\";\n}\nfunction getOneRouterMetroOptions(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return void 0;\n for (const plugin of plugins) {\n if (Array.isArray(plugin) && typeof plugin[0] === \"string\" && plugin[0].includes(\"one-router-metro\")) {\n return plugin[1];\n }\n }\n return void 0;\n}\nfunction getRemoveServerCodeRouterRoot(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return void 0;\n for (const plugin of plugins) {\n if (Array.isArray(plugin) && typeof plugin[0] === \"string\" && plugin[0].includes(\"remove-server-code\")) {\n return plugin[1]?.routerRoot ?? \"app\";\n }\n }\n return void 0;\n}\nconst importMetaEnvCache = /* @__PURE__ */ new WeakMap();\nfunction getImportMetaEnv(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n const platform = options.platform ?? \"\";\n let byPlatform = Array.isArray(plugins) ? importMetaEnvCache.get(plugins) : void 0;\n const cached = byPlatform?.get(platform);\n if (cached) return cached;\n let env = {};\n if (Array.isArray(plugins)) {\n for (const plugin of plugins) {\n if (Array.isArray(plugin) && typeof plugin[0] === \"string\" && plugin[0].includes(\"import-meta-env-plugin\")) {\n const found = plugin[1]?.env;\n if (found && typeof found === \"object\") env = found;\n }\n }\n }\n const merged = {\n ...env,\n ...getPlatformEnv(metroPlatformToViteEnvironment(options.platform))\n };\n if (Array.isArray(plugins)) {\n if (!byPlatform) {\n byPlatform = /* @__PURE__ */ new Map();\n importMetaEnvCache.set(plugins, byPlatform);\n }\n byPlatform.set(platform, merged);\n }\n return merged;\n}\nconst PORTED_BABEL_PLUGINS = [\n \"import-meta-env-plugin\",\n \"one-router-metro\",\n \"remove-server-code\",\n \"module-resolver\",\n \"environment-guard\",\n \"inline-one-server-url\",\n // the worklets transform is a native oxc port, so both plugin names it can\n // arrive under are covered.\n \"react-native-worklets/plugin\",\n \"react-native-reanimated/plugin\",\n \"babel-plugin-react-compiler\"\n];\nconst unportedPluginCache = /* @__PURE__ */ new WeakMap();\nconst loadedNativeTransforms = /* @__PURE__ */ new Map();\nfunction getNativeTransforms(options, projectRoot) {\n const ids = options.customTransformOptions?.vite?.nativeTransformModules;\n if (!Array.isArray(ids) || !ids.length) return [];\n const req = createRequire(path.join(projectRoot, \"package.json\"));\n return ids.map((id) => {\n const cached = loadedNativeTransforms.get(id);\n if (cached) return cached;\n let mod;\n try {\n mod = req(id);\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Could not load the native transform \"${id}\" from ${projectRoot}: ${err.message}`\n );\n }\n const fn = mod?.default ?? mod;\n if (typeof fn !== \"function\") {\n throw new Error(\n `[vxrn/metro] The native transform \"${id}\" must default-export a function (code, ctx) => string.`\n );\n }\n loadedNativeTransforms.set(id, fn);\n return fn;\n });\n}\nfunction isReactCompilerCandidate(filename) {\n if (!/\\.tsx?$/.test(filename)) return false;\n if (filename.includes(\"node_modules\")) return false;\n if (filename.includes(\"+api.\")) return false;\n return true;\n}\nfunction hasBabelPlugin(options, id) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return false;\n return plugins.some((plugin) => (Array.isArray(plugin) ? plugin[0] : plugin) === id);\n}\nfunction assertNoUnportedBabelPlugins(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return;\n let unported = unportedPluginCache.get(plugins);\n if (!unported) {\n unported = [];\n for (const plugin of plugins) {\n const id = Array.isArray(plugin) ? plugin[0] : plugin;\n if (typeof id !== \"string\") {\n unported.push(\"(a function or object plugin, which cannot be ported)\");\n continue;\n }\n if (!PORTED_BABEL_PLUGINS.some((ported) => id.includes(ported))) {\n unported.push(id);\n }\n }\n unportedPluginCache.set(plugins, unported);\n }\n if (unported.length) {\n throw new Error(\n `[vxrn/metro] the native transform path runs no babel, so these babel plugins would be silently ignored:\n` + unported.map((id) => ` - ${id}`).join(\"\\n\") + `\n\nPort each one to a native transform and list it in bundlerOptions.nativeTransformModules, remove it from bundlerOptions.babelConfigOverrides, or set bundlerOptions.nativeTransforms: false (or ONE_METRO_NATIVE_TRANSFORMS=0) to go back to the babel transformer.`\n );\n }\n}\nfunction getModuleResolverAliases(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return void 0;\n for (const plugin of plugins) {\n if (Array.isArray(plugin) && typeof plugin[0] === \"string\" && plugin[0].includes(\"module-resolver\")) {\n const alias = plugin[1]?.alias;\n if (alias && typeof alias === \"object\") return alias;\n }\n }\n return void 0;\n}\nfunction resolveAliasSpecifier(specifier, filename, projectRoot, aliases) {\n for (const [rawKey, value] of Object.entries(aliases)) {\n let target;\n if (rawKey.endsWith(\"$\")) {\n if (specifier === rawKey.slice(0, -1)) target = value;\n } else if (specifier === rawKey || specifier.startsWith(`${rawKey}/`)) {\n target = value + specifier.slice(rawKey.length);\n }\n if (target === void 0) continue;\n const abs = path.resolve(projectRoot, target);\n let rel = path.relative(path.dirname(filename), abs).split(path.sep).join(\"/\");\n if (!rel.startsWith(\".\")) rel = `./${rel}`;\n return rel;\n }\n return void 0;\n}\nfunction applyModuleResolverAliases(code, filename, projectRoot, aliases) {\n const parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for alias resolution: ${parsed.errors[0].message}`\n );\n }\n if (!parsed?.program) return code;\n const ms = new MagicString(code);\n let changed = false;\n function rewrite(sourceNode) {\n if (sourceNode?.type !== \"Literal\" || typeof sourceNode.value !== \"string\") return;\n const resolved = resolveAliasSpecifier(\n sourceNode.value,\n filename,\n projectRoot,\n aliases\n );\n if (resolved === void 0) return;\n ms.overwrite(sourceNode.start, sourceNode.end, JSON.stringify(resolved));\n changed = true;\n }\n function walk(node) {\n if (!node || typeof node !== \"object\") return;\n if (node.type === \"ImportDeclaration\" || node.type === \"ExportNamedDeclaration\" || node.type === \"ExportAllDeclaration\" || node.type === \"ImportExpression\") {\n rewrite(node.source);\n } else if (node.type === \"CallExpression\" && node.callee?.type === \"Identifier\" && node.callee.name === \"require\") {\n rewrite(node.arguments?.[0]);\n }\n for (const k of Object.keys(node)) {\n if (k === \"start\" || k === \"end\" || k === \"loc\" || k === \"range\" || k === \"parent\" || k === \"comments\")\n continue;\n const child = node[k];\n if (Array.isArray(child)) {\n for (const item of child) walk(item);\n } else if (child && typeof child === \"object\") {\n walk(child);\n }\n }\n }\n walk(parsed.program);\n return changed ? ms.toString() : code;\n}\nfunction applyInlineEnvVars(code, filename, isProduction, env = {}) {\n const parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for env inlining: ${parsed.errors[0].message}`\n );\n }\n if (!parsed?.program) return code;\n const processPublicEnv = Object.fromEntries(\n Object.entries(process.env).filter(\n ([key]) => key.startsWith(\"ONE_PUBLIC_\") || key.startsWith(\"EXPO_PUBLIC_\")\n )\n );\n const effectiveEnv = withExpoPublicEnvAliases({ ...processPublicEnv, ...env });\n const ms = new MagicString(code);\n const edits = [];\n const known = /* @__PURE__ */ new Map();\n function replace(node, value) {\n const text = value === void 0 ? \"undefined\" : JSON.stringify(value);\n edits.push({ start: node.start, end: node.end, text });\n known.set(node, value);\n }\n function keyOf(prop, computed) {\n if (!computed && prop?.type === \"Identifier\") return prop.name;\n if (prop?.type === \"Literal\" && typeof prop.value === \"string\") return prop.value;\n return void 0;\n }\n function isImportMeta(node) {\n return node?.type === \"MetaProperty\" && node.meta?.name === \"import\" && node.property?.name === \"meta\";\n }\n function walk(node, parent) {\n if (!node || typeof node !== \"object\") return;\n if (node.type === \"MemberExpression\" || node.type === \"OptionalMemberExpression\") {\n const obj = node.object;\n const isMember = obj?.type === \"MemberExpression\" || obj?.type === \"OptionalMemberExpression\";\n const isProcessEnv = isMember && obj.object?.type === \"Identifier\" && obj.object.name === \"process\" && keyOf(obj.property, obj.computed) === \"env\";\n const isAssignmentTarget = parent?.type === \"AssignmentExpression\" && parent.left === node;\n const key = keyOf(node.property, node.computed);\n if (isProcessEnv && !isAssignmentTarget && key === \"ONE_SERVER_URL\") {\n replace(node, process.env.ONE_SERVER_URL || \"\");\n return;\n }\n if (isProcessEnv && !isAssignmentTarget && (key?.startsWith(\"ONE_PUBLIC_\") || key?.startsWith(\"EXPO_PUBLIC_\"))) {\n replace(node, effectiveEnv[key] ?? void 0);\n return;\n }\n if (!isAssignmentTarget && isMember && isImportMeta(obj.object) && keyOf(obj.property, obj.computed) === \"env\" && key !== void 0) {\n replace(node, effectiveEnv[key]);\n return;\n }\n if (!isAssignmentTarget && isImportMeta(obj) && key === \"env\") {\n edits.push({\n start: node.start,\n end: node.end,\n text: JSON.stringify(effectiveEnv)\n });\n return;\n }\n if (isProcessEnv && !isAssignmentTarget && key !== void 0 && key in effectiveEnv) {\n replace(node, effectiveEnv[key]);\n return;\n }\n }\n for (const k of Object.keys(node)) {\n if (k === \"start\" || k === \"end\" || k === \"loc\" || k === \"range\" || k === \"parent\" || k === \"comments\")\n continue;\n const child = node[k];\n if (Array.isArray(child)) {\n for (const item of child) walk(item, node);\n } else if (child && typeof child === \"object\") {\n walk(child, node);\n }\n }\n }\n walk(parsed.program, null);\n function testValue(node) {\n if (known.has(node)) return !!known.get(node);\n if (node?.type === \"UnaryExpression\" && node.operator === \"!\") {\n const inner = testValue(node.argument);\n return inner === void 0 ? void 0 : !inner;\n }\n if (node?.type === \"BinaryExpression\" && (node.operator === \"===\" || node.operator === \"!==\")) {\n const left = known.has(node.left) ? known.get(node.left) : void 0;\n const right = node.right?.type === \"Literal\" ? node.right.value : void 0;\n if (!known.has(node.left) || node.right?.type !== \"Literal\") return void 0;\n return node.operator === \"===\" ? left === right : left !== right;\n }\n return void 0;\n }\n const dead = [];\n (function foldWalk(node) {\n if (!node || typeof node !== \"object\") return;\n if (Array.isArray(node)) {\n for (const child of node) foldWalk(child);\n return;\n }\n if (node.type === \"IfStatement\" || node.type === \"ConditionalExpression\") {\n const value = testValue(node.test);\n if (value !== void 0) {\n const kept = value ? node.consequent : node.alternate;\n if (!kept) {\n dead.push({ start: node.start, end: node.end, text: \";\" });\n return;\n }\n dead.push({ start: node.start, end: kept.start, text: \"\" });\n if (kept.end < node.end) {\n dead.push({ start: kept.end, end: node.end, text: \"\" });\n }\n foldWalk(kept);\n return;\n }\n }\n for (const k of Object.keys(node)) {\n if (k === \"start\" || k === \"end\" || k === \"loc\" || k === \"range\" || k === \"parent\" || k === \"comments\")\n continue;\n foldWalk(node[k]);\n }\n })(parsed.program);\n for (const range of dead) {\n ms.overwrite(range.start, range.end, range.text);\n }\n for (const edit of edits) {\n if (dead.some((d) => edit.start >= d.start && edit.end <= d.end)) continue;\n ms.overwrite(edit.start, edit.end, edit.text);\n }\n return ms.hasChanged() ? ms.toString() : code;\n}\nconst GUARD_SPECIFIERS = /* @__PURE__ */ new Set([\"server-only\", \"client-only\", \"web-only\"]);\nfunction applyEnvironmentGuard(code, filename) {\n const parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for environment guards: ${parsed.errors[0].message}`\n );\n }\n const body = parsed?.program?.body;\n if (!body) return code;\n const ms = new MagicString(code);\n let changed = false;\n for (const node of body) {\n if (node.type !== \"ImportDeclaration\") continue;\n const source = node.source?.value;\n if (source === \"native-only\") {\n ms.remove(node.start, node.end);\n changed = true;\n } else if (GUARD_SPECIFIERS.has(source)) {\n ms.overwrite(\n node.start,\n node.end,\n `throw new Error(${JSON.stringify(`${source} cannot be imported in a native environment`)});`\n );\n changed = true;\n }\n }\n return changed ? ms.toString() : code;\n}\nfunction applyOneRouterMetro(code, filename, options) {\n const isMetroEntry = filename.endsWith(\"metro-entry.js\");\n const isEntryCtx = filename.endsWith(\"metro-entry-ctx.js\");\n if (!isMetroEntry && !isEntryCtx) return code;\n const parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for one-router-metro: ${parsed.errors[0].message}`\n );\n }\n if (!parsed?.program) return code;\n const ms = new MagicString(code);\n let lastImportEnd = -1;\n function replacementFor(key) {\n if (key.startsWith(\"ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY\")) {\n return JSON.stringify(options.ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY);\n }\n if (key.startsWith(\"ONE_ROUTER_ROOT_FOLDER_NAME\")) {\n return JSON.stringify(options.ONE_ROUTER_ROOT_FOLDER_NAME);\n }\n if (key.startsWith(\"ONE_ROUTER_REQUIRE_CONTEXT_REGEX\")) {\n return `/${options.ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING}/`;\n }\n if (key === \"ONE_ROUTER_LINKING_CONFIG\") {\n return isMetroEntry ? JSON.stringify(options.ONE_ROUTER_LINKING_CONFIG ?? null) : void 0;\n }\n if (key === \"ONE_SETUP_FILE_NATIVE\") {\n return options.ONE_SETUP_FILE_NATIVE ? JSON.stringify(options.ONE_SETUP_FILE_NATIVE) : \"undefined\";\n }\n return void 0;\n }\n function walk(node, parent) {\n if (!node || typeof node !== \"object\") return;\n if (node.type === \"ImportDeclaration\" && parent === parsed.program) {\n lastImportEnd = Math.max(lastImportEnd, node.end);\n }\n if (node.type === \"MemberExpression\" && node.object?.type === \"MemberExpression\" && !node.object.computed && node.object.object?.type === \"Identifier\" && node.object.object.name === \"process\" && node.object.property?.type === \"Identifier\" && node.object.property.name === \"env\") {\n const key = node.computed ? node.property?.type === \"Literal\" && typeof node.property.value === \"string\" ? node.property.value : void 0 : node.property?.type === \"Identifier\" ? node.property.name : void 0;\n const isAssignTarget = parent?.type === \"AssignmentExpression\" && parent.left === node;\n if (key && !isAssignTarget) {\n const replacement = replacementFor(key);\n if (replacement !== void 0) {\n ms.overwrite(node.start, node.end, replacement);\n }\n }\n }\n for (const k of Object.keys(node)) {\n if (k === \"start\" || k === \"end\" || k === \"loc\" || k === \"range\" || k === \"parent\" || k === \"comments\")\n continue;\n const child = node[k];\n if (Array.isArray(child)) {\n for (const item of child) walk(item, node);\n } else if (child && typeof child === \"object\") {\n walk(child, node);\n }\n }\n }\n walk(parsed.program, parsed.program);\n if (isMetroEntry && options.ONE_SETUP_FILE_NATIVE) {\n const stmt = `\nimport ${JSON.stringify(options.ONE_SETUP_FILE_NATIVE)};`;\n if (lastImportEnd >= 0) {\n ms.appendRight(lastImportEnd, stmt);\n } else {\n ms.prepend(`${stmt}\n`);\n }\n }\n return ms.toString();\n}\nfunction collectPatternNames(pattern, names) {\n if (!pattern) return;\n if (pattern.type === \"Identifier\") {\n names.add(pattern.name);\n } else if (pattern.type === \"AssignmentPattern\") {\n collectPatternNames(pattern.left, names);\n } else if (pattern.type === \"ObjectPattern\") {\n for (const prop of pattern.properties || []) {\n if (prop.type === \"Property\") collectPatternNames(prop.value, names);\n else if (prop.type === \"RestElement\") collectPatternNames(prop.argument, names);\n }\n } else if (pattern.type === \"ArrayPattern\") {\n for (const elem of pattern.elements || []) {\n if (elem) collectPatternNames(elem, names);\n }\n } else if (pattern.type === \"RestElement\") {\n collectPatternNames(pattern.argument, names);\n }\n}\nfunction collectHoistedBindings(node, names) {\n function traverse(n) {\n if (!n || typeof n !== \"object\") return;\n if (n === node) {\n } else if (n.type === \"FunctionDeclaration\" || n.type === \"FunctionExpression\" || n.type === \"ArrowFunctionExpression\") {\n if (n.type === \"FunctionDeclaration\" && n.id?.name) {\n names.add(n.id.name);\n }\n return;\n }\n if (n.type === \"VariableDeclaration\" && n.kind === \"var\") {\n for (const decl of n.declarations || []) {\n collectPatternNames(decl.id, names);\n }\n }\n for (const key of Object.keys(n)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\" || key === \"parent\" || key === \"comments\")\n continue;\n const child = n[key];\n if (Array.isArray(child)) {\n for (const item of child) traverse(item);\n } else if (child && typeof child === \"object\") {\n traverse(child);\n }\n }\n }\n traverse(node);\n}\nfunction collectBlockBindings(statements, names) {\n if (!Array.isArray(statements)) return;\n for (const stmt of statements) {\n if (!stmt) continue;\n if (stmt.type === \"VariableDeclaration\" && stmt.kind !== \"var\") {\n for (const decl of stmt.declarations || []) {\n collectPatternNames(decl.id, names);\n }\n } else if (stmt.type === \"ClassDeclaration\" && stmt.id?.name) {\n names.add(stmt.id.name);\n } else if (stmt.type === \"FunctionDeclaration\" && stmt.id?.name) {\n names.add(stmt.id.name);\n }\n }\n}\nclass ScopeTracker {\n stack = [/* @__PURE__ */ new Set()];\n enter(initialBindings) {\n this.stack.push(new Set(initialBindings));\n }\n exit() {\n if (this.stack.length > 1) {\n this.stack.pop();\n }\n }\n add(name) {\n this.stack[this.stack.length - 1].add(name);\n }\n currentScope() {\n return this.stack[this.stack.length - 1];\n }\n addPattern(pattern) {\n collectPatternNames(pattern, this.currentScope());\n }\n isShadowed(name) {\n for (let i = this.stack.length - 1; i >= 0; i--) {\n if (this.stack[i].has(name)) return true;\n }\n return false;\n }\n}\nfunction getCacheKey(config = {}, opts) {\n const hash = crypto.createHash(\"sha256\");\n hash.update(\"metroNativeWorker\");\n hash.update(WORKER_CACHE_KEY_VERSION);\n if (config.globalPrefix) {\n hash.update(config.globalPrefix);\n }\n if (config.unstable_dependencyMapReservedName) {\n hash.update(config.unstable_dependencyMapReservedName);\n }\n if (config.minifierPath) {\n hash.update(config.minifierPath);\n }\n if (opts?.projectRoot) {\n hash.update(opts.projectRoot);\n }\n return hash.digest(\"hex\");\n}\nfunction convertSourceMapToMetroRawMappings(composedMap) {\n if (!composedMap) return [];\n const tracer = new TraceMap(composedMap);\n const rawMappings = [];\n eachMapping(tracer, (m) => {\n if (m.originalLine == null) {\n rawMappings.push([m.generatedLine, m.generatedColumn]);\n } else if (m.name == null) {\n rawMappings.push([\n m.generatedLine,\n m.generatedColumn,\n m.originalLine,\n m.originalColumn\n ]);\n } else {\n rawMappings.push([\n m.generatedLine,\n m.generatedColumn,\n m.originalLine,\n m.originalColumn,\n m.name\n ]);\n }\n });\n rawMappings.sort((a, b) => {\n if (a[0] !== b[0]) return a[0] - b[0];\n return a[1] - b[1];\n });\n const deduped = [];\n for (const mapping of rawMappings) {\n const prev = deduped[deduped.length - 1];\n if (prev && prev[0] === mapping[0] && prev[1] === mapping[1]) {\n continue;\n }\n deduped.push(mapping);\n }\n return deduped;\n}\nfunction countLinesAndTerminateMap(code, map = []) {\n const NEWLINE = /\\r\\n?|\\n|\\u2028|\\u2029/g;\n let lineCount = 1;\n let lastLineStart = 0;\n for (const match of code.matchAll(NEWLINE)) {\n lineCount++;\n lastLineStart = match.index + match[0].length;\n }\n const lastLineLength = code.length - lastLineStart;\n const lastLineIndex1Based = lineCount;\n const lastLineNextColumn0Based = lastLineLength;\n const lastMapping = map[map.length - 1];\n const terminatingMapping = [\n lastLineIndex1Based,\n lastLineNextColumn0Based\n ];\n if (!lastMapping || lastMapping[0] !== terminatingMapping[0] || lastMapping[1] !== terminatingMapping[1]) {\n return {\n lineCount,\n map: map.concat([terminatingMapping])\n };\n }\n return {\n lineCount,\n map: [...map]\n };\n}\nfunction wrapJson(source, options) {\n const globalPrefix = options?.globalPrefix || \"\";\n const factory = [\n \"function (global, require, _importDefaultUnused, _importAllUnused, module, exports, _dependencyMapUnused) {\",\n ` module.exports = ${source};`,\n \"}\"\n ].join(\"\\n\");\n if (options?.moduleId !== void 0) {\n const depIds = options.dependencyIds ? JSON.stringify(options.dependencyIds) : \"[]\";\n return `${globalPrefix}__d(${factory}, ${JSON.stringify(options.moduleId)}, ${depIds});`;\n }\n return `${globalPrefix}__d(${factory});`;\n}\nfunction wrapModule(code, options) {\n const globalPrefix = options?.globalPrefix || \"\";\n const depMap = options?.dependencyMapName || \"_dependencyMap\";\n const header = `function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, ${depMap}) {`;\n const requireAlias = options?.requireAlias !== false ? \"var require = _$$_REQUIRE;\\n\" : \"\";\n const footer = `}`;\n if (options?.moduleId !== void 0) {\n const depIds = options.dependencyIds ? JSON.stringify(options.dependencyIds) : \"[]\";\n return `${globalPrefix}__d(${header}\n${requireAlias}${code}\n${footer}, ${JSON.stringify(options.moduleId)}, ${depIds});`;\n }\n return `${globalPrefix}__d(${header}\n${requireAlias}${code}\n${footer});`;\n}\nfunction getDependencyKey(name, isESM, asyncType = null, contextParams) {\n let key = `${name}\\0${isESM ? \"import\" : \"require\"}`;\n if (asyncType != null) {\n key += `\\0${asyncType}`;\n }\n if (contextParams) {\n key += [\n \"\",\n \"context\",\n String(contextParams.recursive),\n String(contextParams.filter.pattern),\n String(contextParams.filter.flags),\n contextParams.mode\n ].join(\"\\0\");\n }\n return key;\n}\nfunction rewriteDependencyCalls(code, dependencies, depMapName = \"_dependencyMap\", filename = \"module.js\", asyncRequirePath = \"metro-runtime/src/modules/asyncRequire\") {\n const ms = new MagicString(code);\n const emptyResult = {\n code,\n map: ms.generateMap({ source: filename, hires: true, includeContent: true }),\n toString() {\n return code;\n }\n };\n if (dependencies.length === 0) return emptyResult;\n let parsed;\n try {\n parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for dependency rewriting: ${err.message || err}`\n );\n }\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for dependency rewriting: ${parsed.errors[0].message}`\n );\n }\n if (!parsed?.program) return emptyResult;\n const contextLiteralBindings = collectModuleLiteralBindings(parsed.program);\n const scopeTracker = new ScopeTracker();\n collectHoistedBindings(parsed.program, scopeTracker.currentScope());\n collectBlockBindings(parsed.program.body, scopeTracker.currentScope());\n for (const stmt of parsed.program.body || []) {\n if (stmt.type === \"ImportDeclaration\") {\n for (const spec of stmt.specifiers || []) {\n if (spec.local?.name) {\n scopeTracker.add(spec.local.name);\n }\n }\n }\n }\n function walk(node) {\n if (!node || typeof node !== \"object\") return;\n let pushedScope = false;\n if (node.type === \"FunctionDeclaration\" || node.type === \"FunctionExpression\" || node.type === \"ArrowFunctionExpression\") {\n scopeTracker.enter();\n pushedScope = true;\n for (const param of node.params || []) {\n scopeTracker.addPattern(param);\n }\n if (node.type === \"FunctionExpression\" && node.id?.name) {\n scopeTracker.add(node.id.name);\n }\n if (node.body) {\n collectHoistedBindings(node.body, scopeTracker.currentScope());\n }\n } else if (node.type === \"BlockStatement\") {\n scopeTracker.enter();\n pushedScope = true;\n collectBlockBindings(node.body, scopeTracker.currentScope());\n } else if (node.type === \"CatchClause\") {\n scopeTracker.enter();\n pushedScope = true;\n if (node.param) {\n scopeTracker.addPattern(node.param);\n }\n } else if (node.type === \"ForStatement\" || node.type === \"ForInStatement\" || node.type === \"ForOfStatement\") {\n const decl = node.type === \"ForStatement\" ? node.init : node.left;\n if (decl?.type === \"VariableDeclaration\" && decl.kind !== \"var\") {\n scopeTracker.enter();\n pushedScope = true;\n for (const d of decl.declarations || []) {\n scopeTracker.addPattern(d.id);\n }\n }\n }\n if (node.type === \"ImportExpression\" && node.source?.type === \"Literal\" && typeof node.source.value === \"string\") {\n const depName = node.source.value;\n const depKey = getDependencyKey(depName, true, \"async\");\n const dep = dependencies.find((d) => d.data.key === depKey) || dependencies.find((d) => d.name === depName && d.data.asyncType === \"async\");\n const asyncKey = getDependencyKey(asyncRequirePath, false, null);\n const asyncDep = dependencies.find((d) => d.data.key === asyncKey) || dependencies.find((d) => d.name === asyncRequirePath && d.data.asyncType == null);\n if (dep && asyncDep) {\n const depIndex = dep.data.index ?? dependencies.indexOf(dep);\n const asyncIndex = asyncDep.data.index ?? dependencies.indexOf(asyncDep);\n ms.overwrite(\n node.start,\n node.end,\n `require(${depMapName}[${asyncIndex}], ${JSON.stringify(asyncRequirePath)})(${depMapName}[${depIndex}], ${depMapName}.paths, ${JSON.stringify(depName)})`\n );\n }\n } else if (node.type === \"CallExpression\" && node.callee?.type === \"Identifier\" && node.callee.name === \"require\" && !scopeTracker.isShadowed(\"require\") && node.arguments?.length >= 1) {\n const arg = node.arguments[0];\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n const depKey = getDependencyKey(arg.value, false, null);\n const dep = dependencies.find((d) => d.data.key === depKey) || dependencies.find((d) => d.name === arg.value && d.data.asyncType == null);\n if (dep) {\n const index = dep.data.index ?? dependencies.indexOf(dep);\n ms.overwrite(\n arg.start,\n arg.end,\n `${depMapName}[${index}], ${JSON.stringify(arg.value)}`\n );\n }\n }\n } else if (\n // metro rewrites require.context(dir, ...) down to a plain require of the\n // single context module it registered for that directory.\n node.type === \"CallExpression\" && node.callee?.type === \"MemberExpression\" && !node.callee.computed && node.callee.object?.type === \"Identifier\" && node.callee.object.name === \"require\" && node.callee.property?.type === \"Identifier\" && node.callee.property.name === \"context\" && !scopeTracker.isShadowed(\"require\") && node.arguments?.length >= 1\n ) {\n const arg = node.arguments[0]?.type === \"Identifier\" ? contextLiteralBindings.get(node.arguments[0].name) : node.arguments[0];\n if (arg?.type === \"Literal\" && typeof arg.value === \"string\") {\n const dep = dependencies.find(\n (d) => d.name === arg.value && d.data.contextParams != null\n );\n if (dep) {\n const index = dep.data.index ?? dependencies.indexOf(dep);\n ms.overwrite(\n node.start,\n node.end,\n `require(${depMapName}[${index}], ${JSON.stringify(arg.value)})`\n );\n }\n }\n }\n for (const key of Object.keys(node)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\" || key === \"parent\" || key === \"comments\")\n continue;\n const child = node[key];\n if (Array.isArray(child)) {\n for (const item of child) walk(item);\n } else if (child && typeof child === \"object\") {\n walk(child);\n }\n }\n if (pushedScope) {\n scopeTracker.exit();\n }\n }\n walk(parsed.program);\n const resultString = ms.toString();\n const map = ms.generateMap({ source: filename, hires: true, includeContent: true });\n return {\n code: resultString,\n map,\n toString() {\n return resultString;\n }\n };\n}\nfunction extractDependencies(code, filename, options) {\n const asyncRequirePath = options?.asyncRequireModulePath || \"metro-runtime/src/modules/asyncRequire\";\n const allowOptionalDependencies = options?.allowOptionalDependencies;\n const lineOffsets = [0];\n for (let i = 0; i < code.length; i++) {\n if (code[i] === \"\\n\") {\n lineOffsets.push(i + 1);\n }\n }\n function offsetToLoc(pos) {\n let low = 0;\n let high = lineOffsets.length - 1;\n while (low <= high) {\n const mid = low + high >> 1;\n if (lineOffsets[mid] <= pos) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n const line = high + 1;\n const column = pos - lineOffsets[high];\n return { line, column };\n }\n let parseResult;\n try {\n parseResult = parseSync(filename, code, { lang: langForFilename(filename) });\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for dependency extraction: ${err.message || err}`\n );\n }\n if (parseResult?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for dependency extraction: ${parseResult.errors[0].message}`\n );\n }\n if (!parseResult?.program) {\n return [];\n }\n const depMap = /* @__PURE__ */ new Map();\n function addDep(name, isESM, asyncType, start, end, contextParams, isOptional) {\n const key = getDependencyKey(name, isESM, asyncType, contextParams);\n let entry = depMap.get(key);\n const loc = { start: offsetToLoc(start), end: offsetToLoc(end) };\n if (!entry) {\n entry = {\n name,\n data: {\n key,\n asyncType,\n locs: [loc],\n isESMImportAtSource: isESM,\n isESMImport: isESM,\n index: depMap.size,\n ...contextParams ? { contextParams } : {},\n ...isOptional ? { isOptional: true } : {}\n }\n };\n depMap.set(key, entry);\n } else {\n entry.data.locs.push(loc);\n }\n }\n const moduleConsts = collectModuleLiteralBindings(parseResult.program);\n function resolveConst(node) {\n if (node?.type === \"Identifier\") return moduleConsts.get(node.name);\n return node;\n }\n const ancestors = [];\n function isOptionalHere(name) {\n if (!allowOptionalDependencies) return false;\n if (Array.isArray(allowOptionalDependencies.exclude)) {\n if (allowOptionalDependencies.exclude.includes(name)) return false;\n }\n let sCount = 0;\n for (let i = ancestors.length - 1; i >= 0 && sCount < 3; i--) {\n const n = ancestors[i];\n const isStatement = /(?:Statement|Declaration)$/.test(n.type);\n if (!isStatement) continue;\n if (n.type === \"BlockStatement\") {\n const parent = ancestors[i - 1];\n return parent?.type === \"TryStatement\" && parent.block === n;\n }\n sCount += 1;\n }\n return false;\n }\n const scopeTracker = new ScopeTracker();\n collectHoistedBindings(parseResult.program, scopeTracker.currentScope());\n collectBlockBindings(parseResult.program.body, scopeTracker.currentScope());\n for (const stmt of parseResult.program.body || []) {\n if (stmt.type === \"ImportDeclaration\") {\n for (const spec of stmt.specifiers || []) {\n if (spec.local?.name) {\n scopeTracker.add(spec.local.name);\n }\n }\n }\n }\n function walk(node) {\n if (!node || typeof node !== \"object\") return;\n let pushedScope = false;\n ancestors.push(node);\n if (node.type === \"FunctionDeclaration\" || node.type === \"FunctionExpression\" || node.type === \"ArrowFunctionExpression\") {\n scopeTracker.enter();\n pushedScope = true;\n for (const param of node.params || []) {\n scopeTracker.addPattern(param);\n }\n if (node.type === \"FunctionExpression\" && node.id?.name) {\n scopeTracker.add(node.id.name);\n }\n if (node.body) {\n collectHoistedBindings(node.body, scopeTracker.currentScope());\n }\n } else if (node.type === \"BlockStatement\") {\n scopeTracker.enter();\n pushedScope = true;\n collectBlockBindings(node.body, scopeTracker.currentScope());\n } else if (node.type === \"CatchClause\") {\n scopeTracker.enter();\n pushedScope = true;\n if (node.param) {\n scopeTracker.addPattern(node.param);\n }\n } else if (node.type === \"ForStatement\" || node.type === \"ForInStatement\" || node.type === \"ForOfStatement\") {\n const decl = node.type === \"ForStatement\" ? node.init : node.left;\n if (decl?.type === \"VariableDeclaration\" && decl.kind !== \"var\") {\n scopeTracker.enter();\n pushedScope = true;\n for (const d of decl.declarations || []) {\n scopeTracker.addPattern(d.id);\n }\n }\n }\n if (node.type === \"ImportDeclaration\" && node.source?.value) {\n if (node.importKind !== \"type\") {\n const hasValueSpecifier = !node.specifiers?.length || node.specifiers.some((s) => s.importKind !== \"type\");\n if (hasValueSpecifier) {\n addDep(node.source.value, true, null, node.start, node.end);\n }\n }\n } else if ((node.type === \"ExportNamedDeclaration\" || node.type === \"ExportAllDeclaration\") && node.source?.value) {\n if (node.exportKind !== \"type\") {\n addDep(node.source.value, true, null, node.start, node.end);\n }\n } else if (node.type === \"ImportExpression\") {\n if (node.source?.type === \"Literal\" && typeof node.source.value === \"string\") {\n addDep(node.source.value, true, \"async\", node.start, node.end);\n addDep(asyncRequirePath, false, null, node.start, node.end);\n } else {\n throw new Error(\n `[vxrn/metro] Dynamic import with non-string literal is not supported by Metro in ${filename}`\n );\n }\n } else if (node.type === \"CallExpression\" && node.callee?.type === \"Identifier\" && node.callee.name === \"require\" && !scopeTracker.isShadowed(\"require\")) {\n if (node.arguments?.[0]?.type === \"Literal\" && typeof node.arguments[0].value === \"string\") {\n addDep(\n node.arguments[0].value,\n false,\n null,\n node.start,\n node.end,\n void 0,\n node.arguments[0].value !== asyncRequirePath && isOptionalHere(node.arguments[0].value)\n );\n }\n } else if (\n // require.context(dir, recursive?, filter?, mode?) registers a whole\n // directory as one dependency. one's router entry uses it for the route\n // tree, so dropping it silently omits every route from the bundle.\n node.type === \"CallExpression\" && node.callee?.type === \"MemberExpression\" && !node.callee.computed && node.callee.object?.type === \"Identifier\" && node.callee.object.name === \"require\" && node.callee.property?.type === \"Identifier\" && node.callee.property.name === \"context\" && !scopeTracker.isShadowed(\"require\")\n ) {\n const args = node.arguments || [];\n const dir = resolveConst(args[0]);\n if (dir?.type !== \"Literal\" || typeof dir.value !== \"string\") {\n throw new Error(\n `[vxrn/metro] First argument of require.context must be a string literal in ${filename}`\n );\n }\n if (args.length > 4) {\n throw new Error(\n `[vxrn/metro] Too many arguments provided to require.context in ${filename}. Expected 4, got: ${args.length}`\n );\n }\n let recursive = true;\n const recursiveArg = resolveConst(args[1]);\n if (recursiveArg) {\n if (recursiveArg.type !== \"Literal\" || typeof recursiveArg.value !== \"boolean\") {\n throw new Error(\n `[vxrn/metro] Second argument of require.context must be an optional boolean literal in ${filename}`\n );\n }\n recursive = recursiveArg.value;\n }\n let filter = { pattern: \".*\", flags: \"\" };\n const filterArg = resolveConst(args[2]);\n if (filterArg) {\n if (filterArg.type !== \"Literal\" || !filterArg.regex) {\n throw new Error(\n `[vxrn/metro] Third argument of require.context must be an optional RegExp literal in ${filename}, instead found node of type: ${filterArg.type}`\n );\n }\n filter = { pattern: filterArg.regex.pattern, flags: filterArg.regex.flags || \"\" };\n }\n let mode = \"sync\";\n const modeArg = resolveConst(args[3]);\n if (modeArg) {\n const m = modeArg.type === \"Literal\" ? modeArg.value : void 0;\n if (m !== \"sync\" && m !== \"eager\" && m !== \"lazy\" && m !== \"lazy-once\") {\n throw new Error(\n `[vxrn/metro] require.context mode must be one of sync, eager, lazy, lazy-once in ${filename}`\n );\n }\n mode = m;\n }\n addDep(dir.value, false, null, node.start, node.end, { recursive, filter, mode });\n }\n for (const key of Object.keys(node)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\" || key === \"parent\" || key === \"comments\")\n continue;\n const child = node[key];\n if (Array.isArray(child)) {\n for (const item of child) walk(item);\n } else if (child && typeof child === \"object\") {\n walk(child);\n }\n }\n ancestors.pop();\n if (pushedScope) {\n scopeTracker.exit();\n }\n }\n walk(parseResult.program);\n return Array.from(depMap.values());\n}\nfunction checkReservedStrings(sourceCode, config, options) {\n const reservedStrings = [];\n if (options.customTransformOptions?.unstable_staticHermesOptimizedRequire === true) {\n reservedStrings.push(\"_$$_METRO_MODULE_ID\");\n }\n if (config.unstable_dependencyMapReservedName != null) {\n reservedStrings.push(config.unstable_dependencyMapReservedName);\n }\n for (const reservedString of reservedStrings) {\n const position = sourceCode.indexOf(reservedString);\n if (position > -1) {\n throw new SyntaxError(\n \"Source code contains the reserved string `\" + reservedString + \"` at character offset \" + position\n );\n }\n }\n}\nlet workletsConfigured = false;\nlet oneNativeTransforms;\nfunction loadOneNativeTransforms(projectRoot) {\n if (oneNativeTransforms !== void 0) return oneNativeTransforms;\n try {\n const req = createRequire(path.resolve(projectRoot, \"package.json\"));\n oneNativeTransforms = req(\"one/native-transforms\");\n } catch {\n oneNativeTransforms = null;\n }\n return oneNativeTransforms;\n}\nasync function configureWorkletsForWorker(projectRoot) {\n if (workletsConfigured) return;\n workletsConfigured = true;\n if (!projectRoot) return;\n const req = createRequire(path.resolve(projectRoot, \"package.json\"));\n let hasReanimated = false;\n try {\n req.resolve(\"react-native-reanimated/package.json\");\n hasReanimated = true;\n } catch {\n try {\n req.resolve(\"react-native-worklets/package.json\");\n hasReanimated = true;\n } catch {\n }\n }\n const { configureVXRNCompilerPlugin } = await import(\"@vxrn/compiler\");\n configureVXRNCompilerPlugin({ enableReanimated: hasReanimated });\n}\nasync function transform(config, projectRoot, filename, data, options) {\n assertNoUnportedBabelPlugins(options);\n let sourceCode = typeof data === \"string\" ? data : data.toString(\"utf8\");\n const environment = options.customTransformOptions?.environment;\n const isClientEnvironment = environment !== \"node\" && environment !== \"react-server\";\n if (isClientEnvironment && /[\\\\/]expo[\\\\/]virtual[\\\\/]env\\.js$/.test(filename)) {\n if (options.dev) {\n const rel = path.relative(path.dirname(filename), projectRoot).split(path.sep).join(\"/\");\n sourceCode = `const dotEnvModules = require.context(${JSON.stringify(rel)},false,/^\\\\.\\\\/\\\\.env/);\nexport const env = !dotEnvModules.keys().length ? process.env : { ...process.env, ...['.env', '.env.development', '.env.local', '.env.development.local'].reduce((acc, file) => {\n return { ...acc, ...(dotEnvModules(file)?.default ?? {}) };\n}, {}) };`;\n } else {\n sourceCode = `export const env = new Proxy({}, {\n get(target, key) {\n throw new Error(\\`Attempting to access internal environment variable \"\\${String(key)}\" is not supported in production bundles.\\`);\n },\n});`;\n }\n } else if (/(^|[\\\\/])\\.env(\\.(local|(development|production)(\\.local)?))?$/.test(filename)) {\n const { parseEnvFile } = await import(\"@expo/metro-config/build/transform-worker/dot-env-development\");\n sourceCode = `export default ${JSON.stringify(parseEnvFile(sourceCode, isClientEnvironment))};`;\n }\n checkReservedStrings(sourceCode, config, options);\n if (filename.endsWith(\".json\")) {\n try {\n JSON.parse(sourceCode);\n } catch (err) {\n throw new Error(\n `[vxrn/metro] JSON parse error in ${filename}: ${err.message || err}`\n );\n }\n let code2 = config.unstable_disableModuleWrapping === true ? `module.exports = ${sourceCode};` : wrapJson(sourceCode, {\n globalPrefix: config.globalPrefix,\n moduleId: options.moduleId,\n dependencyIds: options.dependencyIds\n });\n if (options.minify && options.unstable_transformProfile !== \"hermes-canary\" && options.unstable_transformProfile !== \"hermes-stable\" && config.minifierPath) {\n try {\n const minifier = require(config.minifierPath);\n const minified = await minifier({\n code: code2,\n config: config.minifierConfig,\n filename\n });\n code2 = minified.code;\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Minifier failed for ${filename}: ${err.message || err}`\n );\n }\n }\n const { lineCount: lineCount2, map: map2 } = countLinesAndTerminateMap(code2, []);\n const outputType = options.type === \"asset\" ? \"js/module/asset\" : options.type === \"script\" ? \"js/script\" : \"js/module\";\n return {\n dependencies: [],\n output: [\n {\n data: {\n code: code2,\n lineCount: lineCount2,\n map: map2,\n functionMap: null\n },\n type: outputType\n }\n ]\n };\n }\n if (options.type === \"asset\") {\n const assetRegistryPath = config.assetRegistryPath || \"react-native/asset-registry\";\n let properDescriptor = null;\n const absolutePath = path.resolve(projectRoot, filename);\n if (fs.existsSync(absolutePath)) {\n try {\n let getAssetData;\n try {\n getAssetData = require(\"metro/private/Assets\").getAssetData;\n } catch {\n getAssetData = require(\"metro/src/Assets\").getAssetData;\n }\n if (typeof getAssetData === \"function\") {\n const rawData = await getAssetData(\n absolutePath,\n filename,\n config.assetPlugins || [],\n options.platform || \"\",\n config.publicPath || \"/assets\"\n );\n const copied = { ...rawData };\n delete copied.files;\n delete copied.fileSystemLocation;\n delete copied.path;\n properDescriptor = copied;\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Asset resolution failed for ${filename}: ${err.message || err}`\n );\n }\n }\n if (!properDescriptor) {\n const ext = path.extname(filename).slice(1);\n const name = path.basename(filename, \".\" + ext);\n properDescriptor = {\n __packager_asset: true,\n httpServerLocation: config.publicPath || \"/assets\",\n width: void 0,\n height: void 0,\n scales: [1],\n hash: crypto.createHash(\"md5\").update(sourceCode).digest(\"hex\"),\n name,\n type: ext\n };\n }\n const assetDepMapName = config.unstable_dependencyMapReservedName || \"_dependencyMap\";\n const assetCode = `module.exports = require(${assetDepMapName}[0], ${JSON.stringify(assetRegistryPath)}).registerAsset(${JSON.stringify(properDescriptor)});`;\n let code2 = config.unstable_disableModuleWrapping === true ? assetCode : wrapModule(assetCode, {\n globalPrefix: config.globalPrefix,\n moduleId: options.moduleId,\n dependencyIds: options.dependencyIds,\n dependencyMapName: config.unstable_dependencyMapReservedName\n });\n const dependencies2 = [\n {\n name: assetRegistryPath,\n data: {\n key: getDependencyKey(assetRegistryPath, false, null),\n asyncType: null,\n locs: [],\n isESMImportAtSource: false,\n isESMImport: false,\n index: 0\n }\n }\n ];\n const { lineCount: lineCount2, map: map2 } = countLinesAndTerminateMap(code2, []);\n return {\n dependencies: dependencies2,\n output: [\n {\n data: {\n code: code2,\n lineCount: lineCount2,\n map: map2,\n functionMap: null\n },\n type: \"js/module/asset\"\n }\n ]\n };\n }\n let code = sourceCode;\n const intermediateMaps = [];\n for (const nativeTransform of getNativeTransforms(options, projectRoot)) {\n const out = nativeTransform(code, {\n // absolute, unlike metro's own project-relative name. a transform that\n // matches on paths (include/exclude lists, node_modules skips) or stamps\n // a location into the output would otherwise get a different answer here\n // than the babel plugin it replaced, which is handed an absolute path.\n filename: path.isAbsolute(filename) ? filename : path.resolve(projectRoot, filename),\n platform: options.platform,\n dev: options.dev,\n projectRoot\n });\n if (typeof out === \"string\") code = out;\n }\n const oneRouterOptions = getOneRouterMetroOptions(options);\n if (oneRouterOptions) {\n code = applyOneRouterMetro(code, filename, oneRouterOptions);\n }\n try {\n const codegenRes = transformReactNativeCodegen(code, filename, projectRoot);\n if (codegenRes?.code) {\n code = codegenRes.code;\n if (codegenRes.map) {\n intermediateMaps.push(codegenRes.map);\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] React Native codegen failed for ${filename}: ${err.message || err}`\n );\n }\n if (shouldStripFlow(filename, code)) {\n try {\n const flowResult = await stripFlowTypes(filename, code);\n if (flowResult?.code) {\n code = flowResult.code;\n if (flowResult.map) {\n intermediateMaps.push(\n typeof flowResult.map === \"string\" ? JSON.parse(flowResult.map) : flowResult.map\n );\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Flow transform failed for ${filename}: ${err.message || err}`\n );\n }\n }\n const asyncRequirePath = config.asyncRequireModulePath || \"metro-runtime/src/modules/asyncRequire\";\n const aliases = getModuleResolverAliases(options);\n if (aliases && projectRoot) {\n const aliasKeys = Object.keys(aliases);\n if (aliasKeys.some((k) => code.includes(k.endsWith(\"$\") ? k.slice(0, -1) : k))) {\n code = applyModuleResolverAliases(code, filename, projectRoot, aliases);\n }\n }\n if (code.includes(\"process.env\") || code.includes(\"import.meta\")) {\n code = applyInlineEnvVars(code, filename, !options.dev, getImportMetaEnv(options));\n }\n if (code.includes(\"-only\")) {\n code = applyEnvironmentGuard(code, filename);\n }\n const serverCodeRouterRoot = getRemoveServerCodeRouterRoot(options);\n if (serverCodeRouterRoot && projectRoot && !filename.includes(\"node_modules\")) {\n const oneNativeTransforms2 = loadOneNativeTransforms(projectRoot);\n if (oneNativeTransforms2) {\n const shaken = await oneNativeTransforms2.transformTreeShakeClient(\n code,\n filename,\n projectRoot,\n serverCodeRouterRoot\n );\n if (shaken?.code) {\n code = shaken.code;\n }\n }\n }\n const dependencies = extractDependencies(code, filename, {\n asyncRequireModulePath: asyncRequirePath,\n allowOptionalDependencies: config.allowOptionalDependencies\n });\n await configureWorkletsForWorker(projectRoot);\n let shouldRunWorklets = Boolean(options.customTransformOptions?.worklets);\n if (!shouldRunWorklets) {\n const { shouldTransformWorklets } = await import(\"@vxrn/compiler\");\n shouldRunWorklets = shouldTransformWorklets({ id: filename, code });\n }\n const shouldRunReactCompiler = Boolean(options.customTransformOptions?.reactCompiler) || hasBabelPlugin(options, \"babel-plugin-react-compiler\") && isReactCompilerCandidate(filename) || code.includes('\"use memo\"') || code.includes(\"'use memo'\");\n if (shouldRunReactCompiler) {\n try {\n const { prepareWorkletsForReactCompiler, transformOxcReactCompiler } = await import(\"@vxrn/compiler\");\n if (shouldRunWorklets) {\n const prepared = prepareWorkletsForReactCompiler(filename, code, true);\n if (prepared) {\n code = prepared.code;\n if (prepared.map) intermediateMaps.push(prepared.map);\n }\n }\n const compilerRes = await transformOxcReactCompiler(filename, code, \"19\", true);\n if (compilerRes?.code) {\n code = compilerRes.code;\n if (compilerRes.map) {\n intermediateMaps.push(\n typeof compilerRes.map === \"string\" ? JSON.parse(compilerRes.map) : compilerRes.map\n );\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] React Compiler failed for ${filename}: ${err.message || err}`\n );\n }\n }\n if (shouldRunWorklets) {\n try {\n const { transformWorklets } = await import(\"@vxrn/compiler\");\n const workletRes = await transformWorklets(filename, code, true, {\n projectRoot\n });\n if (workletRes?.code) {\n code = workletRes.code;\n if (workletRes.map) {\n intermediateMaps.push(\n typeof workletRes.map === \"string\" ? JSON.parse(workletRes.map) : workletRes.map\n );\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Worklets transform failed for ${filename}: ${err.message || err}`\n );\n }\n }\n const lang = langForFilename(filename);\n const { transformSync: oxcTransform } = await import(\"oxc-transform\");\n let oxcRes;\n try {\n oxcRes = oxcTransform(filename, code, {\n lang,\n target: \"es2020\",\n assumptions: {\n setPublicClassFields: true\n },\n jsx: {\n runtime: \"automatic\",\n development: Boolean(options.dev)\n },\n sourcemap: true\n });\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Oxc transform failed for ${filename}: ${err.message || err}`\n );\n }\n if (oxcRes.errors?.length) {\n throw new Error(\n `[vxrn/metro] Oxc transform failed for ${filename}: ${oxcRes.errors[0].message || oxcRes.errors[0]}`\n );\n }\n code = oxcRes.code || code;\n if (oxcRes.map) {\n intermediateMaps.push(\n typeof oxcRes.map === \"string\" ? JSON.parse(oxcRes.map) : oxcRes.map\n );\n }\n try {\n const esbuildRes = await transformHermesAsync(\n code,\n filename,\n true,\n options.type === \"script\" ? void 0 : \"cjs\"\n );\n if (esbuildRes) {\n code = esbuildRes.code;\n if (esbuildRes.map) {\n intermediateMaps.push(esbuildRes.map);\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] native async/CJS lowering failed for ${filename}: ${err.message || err}`\n );\n }\n try {\n const loopsRes = transformHermesLoops(code, filename);\n if (loopsRes) {\n code = loopsRes.code;\n for (const map2 of loopsRes.maps) {\n intermediateMaps.push(map2);\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Hermes loop-binding transform failed for ${filename}: ${err.message || err}`\n );\n }\n const finalDeps = extractDependencies(code, filename, {\n asyncRequireModulePath: asyncRequirePath,\n allowOptionalDependencies: config.allowOptionalDependencies\n });\n const finalNames = new Set(finalDeps.map((d) => d.name));\n const reconciled = dependencies.filter((d) => finalNames.has(d.name));\n for (const injected of finalDeps) {\n if (reconciled.some((d) => d.name === injected.name)) continue;\n reconciled.push(injected);\n }\n dependencies.length = 0;\n for (const dep of reconciled) {\n dependencies.push({ ...dep, data: { ...dep.data, index: dependencies.length } });\n }\n const depMapName = config.unstable_dependencyMapReservedName || \"_dependencyMap\";\n if (options.type === \"script\") {\n const msScript = new MagicString(code);\n msScript.prepend(`(function (global) {\n`);\n msScript.append(\n `\n})(typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this);`\n );\n code = msScript.toString();\n intermediateMaps.push(\n msScript.generateMap({ source: filename, hires: true, includeContent: true })\n );\n } else if (config.unstable_disableModuleWrapping === true) {\n const rewriteRes = rewriteDependencyCalls(\n code,\n dependencies,\n depMapName,\n filename,\n asyncRequirePath\n );\n code = rewriteRes.code;\n if (rewriteRes.map) {\n intermediateMaps.push(rewriteRes.map);\n }\n } else {\n const rewriteRes = rewriteDependencyCalls(\n code,\n dependencies,\n depMapName,\n filename,\n asyncRequirePath\n );\n if (rewriteRes.map) {\n intermediateMaps.push(rewriteRes.map);\n }\n const msWrap = new MagicString(rewriteRes.code);\n const globalPrefix = config.globalPrefix || \"\";\n const header = `function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, ${depMapName}) {\nvar require = _$$_REQUIRE;\n`;\n const footer = `\n}`;\n msWrap.prepend(`${globalPrefix}__d(${header}`);\n if (options.moduleId !== void 0) {\n const depIds = options.dependencyIds ? JSON.stringify(options.dependencyIds) : \"[]\";\n msWrap.append(`${footer}, ${JSON.stringify(options.moduleId)}, ${depIds});`);\n } else {\n msWrap.append(`${footer});`);\n }\n code = msWrap.toString();\n intermediateMaps.push(\n msWrap.generateMap({ source: filename, hires: true, includeContent: true })\n );\n }\n if (options.minify && options.unstable_transformProfile !== \"hermes-canary\" && options.unstable_transformProfile !== \"hermes-stable\" && config.minifierPath) {\n try {\n const minifier = require(config.minifierPath);\n const minified = await minifier({\n code,\n config: config.minifierConfig,\n filename,\n map: new MagicString(code).generateMap({\n source: filename,\n hires: true,\n includeContent: true\n })\n });\n code = minified.code;\n if (minified.map) {\n intermediateMaps.push(\n typeof minified.map === \"string\" ? JSON.parse(minified.map) : minified.map\n );\n } else {\n intermediateMaps.length = 0;\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Minifier failed for ${filename}: ${err.message || err}`\n );\n }\n }\n let rawMappings = [];\n if (intermediateMaps.length > 0) {\n const cleanMaps = intermediateMaps.map((m) => typeof m === \"string\" ? JSON.parse(m) : m).filter(Boolean);\n if (cleanMaps.length > 0) {\n const composed = cleanMaps.length === 1 ? cleanMaps[0] : remapping(cleanMaps.slice().reverse(), () => null);\n rawMappings = convertSourceMapToMetroRawMappings(composed);\n }\n }\n const { lineCount, map } = countLinesAndTerminateMap(code, rawMappings);\n return {\n dependencies,\n output: [\n {\n data: {\n code,\n lineCount,\n map,\n functionMap: null\n },\n type: options.type === \"script\" ? \"js/script\" : \"js/module\"\n }\n ]\n };\n}\nvar metroNativeWorker_default = {\n transform,\n getCacheKey,\n wrapModule,\n wrapJson,\n extractDependencies,\n rewriteDependencyCalls,\n convertSourceMapToMetroRawMappings\n};\nexport {\n ScopeTracker,\n applyEnvironmentGuard,\n applyInlineEnvVars,\n applyModuleResolverAliases,\n applyOneRouterMetro,\n assertNoUnportedBabelPlugins,\n collectBlockBindings,\n collectHoistedBindings,\n collectPatternNames,\n convertSourceMapToMetroRawMappings,\n countLinesAndTerminateMap,\n metroNativeWorker_default as default,\n extractDependencies,\n getCacheKey,\n getDependencyKey,\n getImportMetaEnv,\n getModuleResolverAliases,\n getOneRouterMetroOptions,\n getRemoveServerCodeRouterRoot,\n resolveAliasSpecifier,\n rewriteDependencyCalls,\n transform,\n wrapJson,\n wrapModule\n};\n//# sourceMappingURL=metroNativeWorker.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"metroNativeWorker.js","names":[],"sources":["esm/transformer/metroNativeWorker.js"],"sourcesContent":["import crypto from \"node:crypto\";\nimport { createRequire } from \"node:module\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { parseSync } from \"oxc-parser\";\nimport MagicString from \"magic-string\";\nimport remapping from \"@jridgewell/remapping\";\nimport { TraceMap, eachMapping } from \"@jridgewell/trace-mapping\";\nimport {\n shouldStripFlow,\n stripFlowTypes,\n transformHermesAsync,\n transformHermesLoops,\n transformReactNativeCodegen\n} from \"@vxrn/compiler\";\nimport { withExpoPublicEnvAliases } from \"@vxrn/utils/publicEnv\";\nimport { substituteExpoVirtualEnvSource } from \"./expoVirtualEnv\";\nimport { getPlatformEnv, metroPlatformToViteEnvironment } from \"../env/platformEnv\";\nfunction collectModuleLiteralBindings(program) {\n const reassigned = /* @__PURE__ */ new Set();\n const declCount = /* @__PURE__ */ new Map();\n (function findReassignments(node) {\n if (!node || typeof node !== \"object\") return;\n if (Array.isArray(node)) {\n for (const child of node) findReassignments(child);\n return;\n }\n if (node.type === \"AssignmentExpression\" && node.left?.type === \"Identifier\") {\n reassigned.add(node.left.name);\n } else if (node.type === \"UpdateExpression\" && node.argument?.type === \"Identifier\") {\n reassigned.add(node.argument.name);\n }\n for (const key in node) {\n if (key === \"type\" || key === \"start\" || key === \"end\") continue;\n findReassignments(node[key]);\n }\n })(program);\n for (const stmt of program.body || []) {\n if (stmt.type !== \"VariableDeclaration\") continue;\n for (const decl of stmt.declarations || []) {\n if (decl.id?.type === \"Identifier\") {\n declCount.set(decl.id.name, (declCount.get(decl.id.name) || 0) + 1);\n }\n }\n }\n const bindings = /* @__PURE__ */ new Map();\n for (const stmt of program.body || []) {\n if (stmt.type !== \"VariableDeclaration\") continue;\n for (const decl of stmt.declarations || []) {\n if (decl.id?.type === \"Identifier\" && decl.init?.type === \"Literal\" && !reassigned.has(decl.id.name) && declCount.get(decl.id.name) === 1) {\n bindings.set(decl.id.name, decl.init);\n }\n }\n }\n return bindings;\n}\nconst WORKER_CACHE_KEY_VERSION = \"5\";\nfunction langForFilename(filename) {\n if (filename.endsWith(\".tsx\")) return \"tsx\";\n if (filename.endsWith(\".ts\")) return \"ts\";\n return \"jsx\";\n}\nfunction getOneRouterMetroOptions(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return void 0;\n for (const plugin of plugins) {\n if (Array.isArray(plugin) && typeof plugin[0] === \"string\" && plugin[0].includes(\"one-router-metro\")) {\n return plugin[1];\n }\n }\n return void 0;\n}\nfunction getRemoveServerCodeRouterRoot(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return void 0;\n for (const plugin of plugins) {\n if (Array.isArray(plugin) && typeof plugin[0] === \"string\" && plugin[0].includes(\"remove-server-code\")) {\n return plugin[1]?.routerRoot ?? \"app\";\n }\n }\n return void 0;\n}\nconst importMetaEnvCache = /* @__PURE__ */ new WeakMap();\nfunction getImportMetaEnv(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n const platform = options.platform ?? \"\";\n let byPlatform = Array.isArray(plugins) ? importMetaEnvCache.get(plugins) : void 0;\n const cached = byPlatform?.get(platform);\n if (cached) return cached;\n let env = {};\n if (Array.isArray(plugins)) {\n for (const plugin of plugins) {\n if (Array.isArray(plugin) && typeof plugin[0] === \"string\" && plugin[0].includes(\"import-meta-env-plugin\")) {\n const found = plugin[1]?.env;\n if (found && typeof found === \"object\") env = found;\n }\n }\n }\n const merged = {\n ...env,\n ...getPlatformEnv(metroPlatformToViteEnvironment(options.platform))\n };\n if (Array.isArray(plugins)) {\n if (!byPlatform) {\n byPlatform = /* @__PURE__ */ new Map();\n importMetaEnvCache.set(plugins, byPlatform);\n }\n byPlatform.set(platform, merged);\n }\n return merged;\n}\nconst PORTED_BABEL_PLUGINS = [\n \"import-meta-env-plugin\",\n \"one-router-metro\",\n \"remove-server-code\",\n \"module-resolver\",\n \"environment-guard\",\n \"inline-one-server-url\",\n // the worklets transform is a native oxc port, so both plugin names it can\n // arrive under are covered.\n \"react-native-worklets/plugin\",\n \"react-native-reanimated/plugin\",\n \"babel-plugin-react-compiler\"\n];\nconst unportedPluginCache = /* @__PURE__ */ new WeakMap();\nconst loadedNativeTransforms = /* @__PURE__ */ new Map();\nfunction getNativeTransforms(options, projectRoot) {\n const ids = options.customTransformOptions?.vite?.nativeTransformModules;\n if (!Array.isArray(ids) || !ids.length) return [];\n const req = createRequire(path.join(projectRoot, \"package.json\"));\n return ids.map((id) => {\n const cached = loadedNativeTransforms.get(id);\n if (cached) return cached;\n let mod;\n try {\n mod = req(id);\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Could not load the native transform \"${id}\" from ${projectRoot}: ${err.message}`\n );\n }\n const fn = mod?.default ?? mod;\n if (typeof fn !== \"function\") {\n throw new Error(\n `[vxrn/metro] The native transform \"${id}\" must default-export a function (code, ctx) => string.`\n );\n }\n loadedNativeTransforms.set(id, fn);\n return fn;\n });\n}\nfunction isReactCompilerCandidate(filename) {\n if (!/\\.tsx?$/.test(filename)) return false;\n if (filename.includes(\"node_modules\")) return false;\n if (filename.includes(\"+api.\")) return false;\n return true;\n}\nfunction hasBabelPlugin(options, id) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return false;\n return plugins.some((plugin) => (Array.isArray(plugin) ? plugin[0] : plugin) === id);\n}\nfunction assertNoUnportedBabelPlugins(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return;\n let unported = unportedPluginCache.get(plugins);\n if (!unported) {\n unported = [];\n for (const plugin of plugins) {\n const id = Array.isArray(plugin) ? plugin[0] : plugin;\n if (typeof id !== \"string\") {\n unported.push(\"(a function or object plugin, which cannot be ported)\");\n continue;\n }\n if (!PORTED_BABEL_PLUGINS.some((ported) => id.includes(ported))) {\n unported.push(id);\n }\n }\n unportedPluginCache.set(plugins, unported);\n }\n if (unported.length) {\n throw new Error(\n `[vxrn/metro] the native transform path runs no babel, so these babel plugins would be silently ignored:\n` + unported.map((id) => ` - ${id}`).join(\"\\n\") + `\n\nPort each one to a native transform and list it in bundlerOptions.nativeTransformModules, remove it from bundlerOptions.babelConfigOverrides, or set bundlerOptions.nativeTransforms: false (or ONE_METRO_NATIVE_TRANSFORMS=0) to go back to the babel transformer.`\n );\n }\n}\nfunction getModuleResolverAliases(options) {\n const plugins = options.customTransformOptions?.vite?.babelConfig?.plugins;\n if (!Array.isArray(plugins)) return void 0;\n for (const plugin of plugins) {\n if (Array.isArray(plugin) && typeof plugin[0] === \"string\" && plugin[0].includes(\"module-resolver\")) {\n const alias = plugin[1]?.alias;\n if (alias && typeof alias === \"object\") return alias;\n }\n }\n return void 0;\n}\nfunction resolveAliasSpecifier(specifier, filename, projectRoot, aliases) {\n for (const [rawKey, value] of Object.entries(aliases)) {\n let target;\n if (rawKey.endsWith(\"$\")) {\n if (specifier === rawKey.slice(0, -1)) target = value;\n } else if (specifier === rawKey || specifier.startsWith(`${rawKey}/`)) {\n target = value + specifier.slice(rawKey.length);\n }\n if (target === void 0) continue;\n const abs = path.resolve(projectRoot, target);\n let rel = path.relative(path.dirname(filename), abs).split(path.sep).join(\"/\");\n if (!rel.startsWith(\".\")) rel = `./${rel}`;\n return rel;\n }\n return void 0;\n}\nfunction applyModuleResolverAliases(code, filename, projectRoot, aliases) {\n const parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for alias resolution: ${parsed.errors[0].message}`\n );\n }\n if (!parsed?.program) return code;\n const ms = new MagicString(code);\n let changed = false;\n function rewrite(sourceNode) {\n if (sourceNode?.type !== \"Literal\" || typeof sourceNode.value !== \"string\") return;\n const resolved = resolveAliasSpecifier(\n sourceNode.value,\n filename,\n projectRoot,\n aliases\n );\n if (resolved === void 0) return;\n ms.overwrite(sourceNode.start, sourceNode.end, JSON.stringify(resolved));\n changed = true;\n }\n function walk(node) {\n if (!node || typeof node !== \"object\") return;\n if (node.type === \"ImportDeclaration\" || node.type === \"ExportNamedDeclaration\" || node.type === \"ExportAllDeclaration\" || node.type === \"ImportExpression\") {\n rewrite(node.source);\n } else if (node.type === \"CallExpression\" && node.callee?.type === \"Identifier\" && node.callee.name === \"require\") {\n rewrite(node.arguments?.[0]);\n }\n for (const k of Object.keys(node)) {\n if (k === \"start\" || k === \"end\" || k === \"loc\" || k === \"range\" || k === \"parent\" || k === \"comments\")\n continue;\n const child = node[k];\n if (Array.isArray(child)) {\n for (const item of child) walk(item);\n } else if (child && typeof child === \"object\") {\n walk(child);\n }\n }\n }\n walk(parsed.program);\n return changed ? ms.toString() : code;\n}\nfunction applyInlineEnvVars(code, filename, isProduction, env = {}) {\n const parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for env inlining: ${parsed.errors[0].message}`\n );\n }\n if (!parsed?.program) return code;\n const processPublicEnv = Object.fromEntries(\n Object.entries(process.env).filter(\n ([key]) => key.startsWith(\"ONE_PUBLIC_\") || key.startsWith(\"EXPO_PUBLIC_\")\n )\n );\n const effectiveEnv = withExpoPublicEnvAliases({ ...processPublicEnv, ...env });\n const ms = new MagicString(code);\n const edits = [];\n const known = /* @__PURE__ */ new Map();\n function replace(node, value) {\n const text = value === void 0 ? \"undefined\" : JSON.stringify(value);\n edits.push({ start: node.start, end: node.end, text });\n known.set(node, value);\n }\n function keyOf(prop, computed) {\n if (!computed && prop?.type === \"Identifier\") return prop.name;\n if (prop?.type === \"Literal\" && typeof prop.value === \"string\") return prop.value;\n return void 0;\n }\n function isImportMeta(node) {\n return node?.type === \"MetaProperty\" && node.meta?.name === \"import\" && node.property?.name === \"meta\";\n }\n function walk(node, parent) {\n if (!node || typeof node !== \"object\") return;\n if (node.type === \"MemberExpression\" || node.type === \"OptionalMemberExpression\") {\n const obj = node.object;\n const isMember = obj?.type === \"MemberExpression\" || obj?.type === \"OptionalMemberExpression\";\n const isProcessEnv = isMember && obj.object?.type === \"Identifier\" && obj.object.name === \"process\" && keyOf(obj.property, obj.computed) === \"env\";\n const isAssignmentTarget = parent?.type === \"AssignmentExpression\" && parent.left === node;\n const key = keyOf(node.property, node.computed);\n if (isProcessEnv && !isAssignmentTarget && key === \"ONE_SERVER_URL\") {\n replace(node, process.env.ONE_SERVER_URL || \"\");\n return;\n }\n if (isProcessEnv && !isAssignmentTarget && (key?.startsWith(\"ONE_PUBLIC_\") || key?.startsWith(\"EXPO_PUBLIC_\"))) {\n replace(node, effectiveEnv[key] ?? void 0);\n return;\n }\n if (!isAssignmentTarget && isMember && isImportMeta(obj.object) && keyOf(obj.property, obj.computed) === \"env\" && key !== void 0) {\n replace(node, effectiveEnv[key]);\n return;\n }\n if (!isAssignmentTarget && isImportMeta(obj) && key === \"env\") {\n edits.push({\n start: node.start,\n end: node.end,\n text: JSON.stringify(effectiveEnv)\n });\n return;\n }\n if (isProcessEnv && !isAssignmentTarget && key !== void 0 && key in effectiveEnv) {\n replace(node, effectiveEnv[key]);\n return;\n }\n }\n for (const k of Object.keys(node)) {\n if (k === \"start\" || k === \"end\" || k === \"loc\" || k === \"range\" || k === \"parent\" || k === \"comments\")\n continue;\n const child = node[k];\n if (Array.isArray(child)) {\n for (const item of child) walk(item, node);\n } else if (child && typeof child === \"object\") {\n walk(child, node);\n }\n }\n }\n walk(parsed.program, null);\n function testValue(node) {\n if (known.has(node)) return !!known.get(node);\n if (node?.type === \"UnaryExpression\" && node.operator === \"!\") {\n const inner = testValue(node.argument);\n return inner === void 0 ? void 0 : !inner;\n }\n if (node?.type === \"BinaryExpression\" && (node.operator === \"===\" || node.operator === \"!==\")) {\n const left = known.has(node.left) ? known.get(node.left) : void 0;\n const right = node.right?.type === \"Literal\" ? node.right.value : void 0;\n if (!known.has(node.left) || node.right?.type !== \"Literal\") return void 0;\n return node.operator === \"===\" ? left === right : left !== right;\n }\n return void 0;\n }\n const dead = [];\n (function foldWalk(node) {\n if (!node || typeof node !== \"object\") return;\n if (Array.isArray(node)) {\n for (const child of node) foldWalk(child);\n return;\n }\n if (node.type === \"IfStatement\" || node.type === \"ConditionalExpression\") {\n const value = testValue(node.test);\n if (value !== void 0) {\n const kept = value ? node.consequent : node.alternate;\n if (!kept) {\n dead.push({ start: node.start, end: node.end, text: \";\" });\n return;\n }\n dead.push({ start: node.start, end: kept.start, text: \"\" });\n if (kept.end < node.end) {\n dead.push({ start: kept.end, end: node.end, text: \"\" });\n }\n foldWalk(kept);\n return;\n }\n }\n for (const k of Object.keys(node)) {\n if (k === \"start\" || k === \"end\" || k === \"loc\" || k === \"range\" || k === \"parent\" || k === \"comments\")\n continue;\n foldWalk(node[k]);\n }\n })(parsed.program);\n for (const range of dead) {\n ms.overwrite(range.start, range.end, range.text);\n }\n for (const edit of edits) {\n if (dead.some((d) => edit.start >= d.start && edit.end <= d.end)) continue;\n ms.overwrite(edit.start, edit.end, edit.text);\n }\n return ms.hasChanged() ? ms.toString() : code;\n}\nconst GUARD_SPECIFIERS = /* @__PURE__ */ new Set([\"server-only\", \"client-only\", \"web-only\"]);\nfunction applyEnvironmentGuard(code, filename) {\n const parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for environment guards: ${parsed.errors[0].message}`\n );\n }\n const body = parsed?.program?.body;\n if (!body) return code;\n const ms = new MagicString(code);\n let changed = false;\n for (const node of body) {\n if (node.type !== \"ImportDeclaration\") continue;\n const source = node.source?.value;\n if (source === \"native-only\") {\n ms.remove(node.start, node.end);\n changed = true;\n } else if (GUARD_SPECIFIERS.has(source)) {\n ms.overwrite(\n node.start,\n node.end,\n `throw new Error(${JSON.stringify(`${source} cannot be imported in a native environment`)});`\n );\n changed = true;\n }\n }\n return changed ? ms.toString() : code;\n}\nfunction applyOneRouterMetro(code, filename, options) {\n const isMetroEntry = filename.endsWith(\"metro-entry.js\");\n const isEntryCtx = filename.endsWith(\"metro-entry-ctx.js\");\n if (!isMetroEntry && !isEntryCtx) return code;\n const parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for one-router-metro: ${parsed.errors[0].message}`\n );\n }\n if (!parsed?.program) return code;\n const ms = new MagicString(code);\n let lastImportEnd = -1;\n function replacementFor(key) {\n if (key.startsWith(\"ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY\")) {\n return JSON.stringify(options.ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY);\n }\n if (key.startsWith(\"ONE_ROUTER_ROOT_FOLDER_NAME\")) {\n return JSON.stringify(options.ONE_ROUTER_ROOT_FOLDER_NAME);\n }\n if (key.startsWith(\"ONE_ROUTER_REQUIRE_CONTEXT_REGEX\")) {\n return `/${options.ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING}/`;\n }\n if (key === \"ONE_ROUTER_LINKING_CONFIG\") {\n return isMetroEntry ? JSON.stringify(options.ONE_ROUTER_LINKING_CONFIG ?? null) : void 0;\n }\n if (key === \"ONE_SETUP_FILE_NATIVE\") {\n return options.ONE_SETUP_FILE_NATIVE ? JSON.stringify(options.ONE_SETUP_FILE_NATIVE) : \"undefined\";\n }\n return void 0;\n }\n function walk(node, parent) {\n if (!node || typeof node !== \"object\") return;\n if (node.type === \"ImportDeclaration\" && parent === parsed.program) {\n lastImportEnd = Math.max(lastImportEnd, node.end);\n }\n if (node.type === \"MemberExpression\" && node.object?.type === \"MemberExpression\" && !node.object.computed && node.object.object?.type === \"Identifier\" && node.object.object.name === \"process\" && node.object.property?.type === \"Identifier\" && node.object.property.name === \"env\") {\n const key = node.computed ? node.property?.type === \"Literal\" && typeof node.property.value === \"string\" ? node.property.value : void 0 : node.property?.type === \"Identifier\" ? node.property.name : void 0;\n const isAssignTarget = parent?.type === \"AssignmentExpression\" && parent.left === node;\n if (key && !isAssignTarget) {\n const replacement = replacementFor(key);\n if (replacement !== void 0) {\n ms.overwrite(node.start, node.end, replacement);\n }\n }\n }\n for (const k of Object.keys(node)) {\n if (k === \"start\" || k === \"end\" || k === \"loc\" || k === \"range\" || k === \"parent\" || k === \"comments\")\n continue;\n const child = node[k];\n if (Array.isArray(child)) {\n for (const item of child) walk(item, node);\n } else if (child && typeof child === \"object\") {\n walk(child, node);\n }\n }\n }\n walk(parsed.program, parsed.program);\n if (isMetroEntry && options.ONE_SETUP_FILE_NATIVE) {\n const stmt = `\nimport ${JSON.stringify(options.ONE_SETUP_FILE_NATIVE)};`;\n if (lastImportEnd >= 0) {\n ms.appendRight(lastImportEnd, stmt);\n } else {\n ms.prepend(`${stmt}\n`);\n }\n }\n return ms.toString();\n}\nfunction collectPatternNames(pattern, names) {\n if (!pattern) return;\n if (pattern.type === \"Identifier\") {\n names.add(pattern.name);\n } else if (pattern.type === \"AssignmentPattern\") {\n collectPatternNames(pattern.left, names);\n } else if (pattern.type === \"ObjectPattern\") {\n for (const prop of pattern.properties || []) {\n if (prop.type === \"Property\") collectPatternNames(prop.value, names);\n else if (prop.type === \"RestElement\") collectPatternNames(prop.argument, names);\n }\n } else if (pattern.type === \"ArrayPattern\") {\n for (const elem of pattern.elements || []) {\n if (elem) collectPatternNames(elem, names);\n }\n } else if (pattern.type === \"RestElement\") {\n collectPatternNames(pattern.argument, names);\n }\n}\nfunction collectHoistedBindings(node, names) {\n function traverse(n) {\n if (!n || typeof n !== \"object\") return;\n if (n === node) {\n } else if (n.type === \"FunctionDeclaration\" || n.type === \"FunctionExpression\" || n.type === \"ArrowFunctionExpression\") {\n if (n.type === \"FunctionDeclaration\" && n.id?.name) {\n names.add(n.id.name);\n }\n return;\n }\n if (n.type === \"VariableDeclaration\" && n.kind === \"var\") {\n for (const decl of n.declarations || []) {\n collectPatternNames(decl.id, names);\n }\n }\n for (const key of Object.keys(n)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\" || key === \"parent\" || key === \"comments\")\n continue;\n const child = n[key];\n if (Array.isArray(child)) {\n for (const item of child) traverse(item);\n } else if (child && typeof child === \"object\") {\n traverse(child);\n }\n }\n }\n traverse(node);\n}\nfunction collectBlockBindings(statements, names) {\n if (!Array.isArray(statements)) return;\n for (const stmt of statements) {\n if (!stmt) continue;\n if (stmt.type === \"VariableDeclaration\" && stmt.kind !== \"var\") {\n for (const decl of stmt.declarations || []) {\n collectPatternNames(decl.id, names);\n }\n } else if (stmt.type === \"ClassDeclaration\" && stmt.id?.name) {\n names.add(stmt.id.name);\n } else if (stmt.type === \"FunctionDeclaration\" && stmt.id?.name) {\n names.add(stmt.id.name);\n }\n }\n}\nclass ScopeTracker {\n stack = [/* @__PURE__ */ new Set()];\n enter(initialBindings) {\n this.stack.push(new Set(initialBindings));\n }\n exit() {\n if (this.stack.length > 1) {\n this.stack.pop();\n }\n }\n add(name) {\n this.stack[this.stack.length - 1].add(name);\n }\n currentScope() {\n return this.stack[this.stack.length - 1];\n }\n addPattern(pattern) {\n collectPatternNames(pattern, this.currentScope());\n }\n isShadowed(name) {\n for (let i = this.stack.length - 1; i >= 0; i--) {\n if (this.stack[i].has(name)) return true;\n }\n return false;\n }\n}\nfunction getCacheKey(config = {}, opts) {\n const hash = crypto.createHash(\"sha256\");\n hash.update(\"metroNativeWorker\");\n hash.update(WORKER_CACHE_KEY_VERSION);\n if (config.globalPrefix) {\n hash.update(config.globalPrefix);\n }\n if (config.unstable_dependencyMapReservedName) {\n hash.update(config.unstable_dependencyMapReservedName);\n }\n if (config.minifierPath) {\n hash.update(config.minifierPath);\n }\n if (opts?.projectRoot) {\n hash.update(opts.projectRoot);\n }\n return hash.digest(\"hex\");\n}\nfunction convertSourceMapToMetroRawMappings(composedMap) {\n if (!composedMap) return [];\n const tracer = new TraceMap(composedMap);\n const rawMappings = [];\n eachMapping(tracer, (m) => {\n if (m.originalLine == null) {\n rawMappings.push([m.generatedLine, m.generatedColumn]);\n } else if (m.name == null) {\n rawMappings.push([\n m.generatedLine,\n m.generatedColumn,\n m.originalLine,\n m.originalColumn\n ]);\n } else {\n rawMappings.push([\n m.generatedLine,\n m.generatedColumn,\n m.originalLine,\n m.originalColumn,\n m.name\n ]);\n }\n });\n rawMappings.sort((a, b) => {\n if (a[0] !== b[0]) return a[0] - b[0];\n return a[1] - b[1];\n });\n const deduped = [];\n for (const mapping of rawMappings) {\n const prev = deduped[deduped.length - 1];\n if (prev && prev[0] === mapping[0] && prev[1] === mapping[1]) {\n continue;\n }\n deduped.push(mapping);\n }\n return deduped;\n}\nfunction countLinesAndTerminateMap(code, map = []) {\n const NEWLINE = /\\r\\n?|\\n|\\u2028|\\u2029/g;\n let lineCount = 1;\n let lastLineStart = 0;\n for (const match of code.matchAll(NEWLINE)) {\n lineCount++;\n lastLineStart = match.index + match[0].length;\n }\n const lastLineLength = code.length - lastLineStart;\n const lastLineIndex1Based = lineCount;\n const lastLineNextColumn0Based = lastLineLength;\n const lastMapping = map[map.length - 1];\n const terminatingMapping = [\n lastLineIndex1Based,\n lastLineNextColumn0Based\n ];\n if (!lastMapping || lastMapping[0] !== terminatingMapping[0] || lastMapping[1] !== terminatingMapping[1]) {\n return {\n lineCount,\n map: map.concat([terminatingMapping])\n };\n }\n return {\n lineCount,\n map: [...map]\n };\n}\nfunction wrapJson(source, options) {\n const globalPrefix = options?.globalPrefix || \"\";\n const factory = [\n \"function (global, require, _importDefaultUnused, _importAllUnused, module, exports, _dependencyMapUnused) {\",\n ` module.exports = ${source};`,\n \"}\"\n ].join(\"\\n\");\n if (options?.moduleId !== void 0) {\n const depIds = options.dependencyIds ? JSON.stringify(options.dependencyIds) : \"[]\";\n return `${globalPrefix}__d(${factory}, ${JSON.stringify(options.moduleId)}, ${depIds});`;\n }\n return `${globalPrefix}__d(${factory});`;\n}\nfunction wrapModule(code, options) {\n const globalPrefix = options?.globalPrefix || \"\";\n const depMap = options?.dependencyMapName || \"_dependencyMap\";\n const header = `function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, ${depMap}) {`;\n const requireAlias = options?.requireAlias !== false ? \"var require = _$$_REQUIRE;\\n\" : \"\";\n const footer = `}`;\n if (options?.moduleId !== void 0) {\n const depIds = options.dependencyIds ? JSON.stringify(options.dependencyIds) : \"[]\";\n return `${globalPrefix}__d(${header}\n${requireAlias}${code}\n${footer}, ${JSON.stringify(options.moduleId)}, ${depIds});`;\n }\n return `${globalPrefix}__d(${header}\n${requireAlias}${code}\n${footer});`;\n}\nfunction getDependencyKey(name, isESM, asyncType = null, contextParams) {\n let key = `${name}\\0${isESM ? \"import\" : \"require\"}`;\n if (asyncType != null) {\n key += `\\0${asyncType}`;\n }\n if (contextParams) {\n key += [\n \"\",\n \"context\",\n String(contextParams.recursive),\n String(contextParams.filter.pattern),\n String(contextParams.filter.flags),\n contextParams.mode\n ].join(\"\\0\");\n }\n return key;\n}\nfunction rewriteDependencyCalls(code, dependencies, depMapName = \"_dependencyMap\", filename = \"module.js\", asyncRequirePath = \"metro-runtime/src/modules/asyncRequire\") {\n const ms = new MagicString(code);\n const emptyResult = {\n code,\n map: ms.generateMap({ source: filename, hires: true, includeContent: true }),\n toString() {\n return code;\n }\n };\n if (dependencies.length === 0) return emptyResult;\n let parsed;\n try {\n parsed = parseSync(filename, code, { lang: langForFilename(filename) });\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for dependency rewriting: ${err.message || err}`\n );\n }\n if (parsed?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for dependency rewriting: ${parsed.errors[0].message}`\n );\n }\n if (!parsed?.program) return emptyResult;\n const contextLiteralBindings = collectModuleLiteralBindings(parsed.program);\n const scopeTracker = new ScopeTracker();\n collectHoistedBindings(parsed.program, scopeTracker.currentScope());\n collectBlockBindings(parsed.program.body, scopeTracker.currentScope());\n for (const stmt of parsed.program.body || []) {\n if (stmt.type === \"ImportDeclaration\") {\n for (const spec of stmt.specifiers || []) {\n if (spec.local?.name) {\n scopeTracker.add(spec.local.name);\n }\n }\n }\n }\n function walk(node) {\n if (!node || typeof node !== \"object\") return;\n let pushedScope = false;\n if (node.type === \"FunctionDeclaration\" || node.type === \"FunctionExpression\" || node.type === \"ArrowFunctionExpression\") {\n scopeTracker.enter();\n pushedScope = true;\n for (const param of node.params || []) {\n scopeTracker.addPattern(param);\n }\n if (node.type === \"FunctionExpression\" && node.id?.name) {\n scopeTracker.add(node.id.name);\n }\n if (node.body) {\n collectHoistedBindings(node.body, scopeTracker.currentScope());\n }\n } else if (node.type === \"BlockStatement\") {\n scopeTracker.enter();\n pushedScope = true;\n collectBlockBindings(node.body, scopeTracker.currentScope());\n } else if (node.type === \"CatchClause\") {\n scopeTracker.enter();\n pushedScope = true;\n if (node.param) {\n scopeTracker.addPattern(node.param);\n }\n } else if (node.type === \"ForStatement\" || node.type === \"ForInStatement\" || node.type === \"ForOfStatement\") {\n const decl = node.type === \"ForStatement\" ? node.init : node.left;\n if (decl?.type === \"VariableDeclaration\" && decl.kind !== \"var\") {\n scopeTracker.enter();\n pushedScope = true;\n for (const d of decl.declarations || []) {\n scopeTracker.addPattern(d.id);\n }\n }\n }\n if (node.type === \"ImportExpression\" && node.source?.type === \"Literal\" && typeof node.source.value === \"string\") {\n const depName = node.source.value;\n const depKey = getDependencyKey(depName, true, \"async\");\n const dep = dependencies.find((d) => d.data.key === depKey) || dependencies.find((d) => d.name === depName && d.data.asyncType === \"async\");\n const asyncKey = getDependencyKey(asyncRequirePath, false, null);\n const asyncDep = dependencies.find((d) => d.data.key === asyncKey) || dependencies.find((d) => d.name === asyncRequirePath && d.data.asyncType == null);\n if (dep && asyncDep) {\n const depIndex = dep.data.index ?? dependencies.indexOf(dep);\n const asyncIndex = asyncDep.data.index ?? dependencies.indexOf(asyncDep);\n ms.overwrite(\n node.start,\n node.end,\n `require(${depMapName}[${asyncIndex}], ${JSON.stringify(asyncRequirePath)})(${depMapName}[${depIndex}], ${depMapName}.paths, ${JSON.stringify(depName)})`\n );\n }\n } else if (node.type === \"CallExpression\" && node.callee?.type === \"Identifier\" && node.callee.name === \"require\" && !scopeTracker.isShadowed(\"require\") && node.arguments?.length >= 1) {\n const arg = node.arguments[0];\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n const depKey = getDependencyKey(arg.value, false, null);\n const dep = dependencies.find((d) => d.data.key === depKey) || dependencies.find((d) => d.name === arg.value && d.data.asyncType == null);\n if (dep) {\n const index = dep.data.index ?? dependencies.indexOf(dep);\n ms.overwrite(\n arg.start,\n arg.end,\n `${depMapName}[${index}], ${JSON.stringify(arg.value)}`\n );\n }\n }\n } else if (\n // metro rewrites require.context(dir, ...) down to a plain require of the\n // single context module it registered for that directory.\n node.type === \"CallExpression\" && node.callee?.type === \"MemberExpression\" && !node.callee.computed && node.callee.object?.type === \"Identifier\" && node.callee.object.name === \"require\" && node.callee.property?.type === \"Identifier\" && node.callee.property.name === \"context\" && !scopeTracker.isShadowed(\"require\") && node.arguments?.length >= 1\n ) {\n const arg = node.arguments[0]?.type === \"Identifier\" ? contextLiteralBindings.get(node.arguments[0].name) : node.arguments[0];\n if (arg?.type === \"Literal\" && typeof arg.value === \"string\") {\n const dep = dependencies.find(\n (d) => d.name === arg.value && d.data.contextParams != null\n );\n if (dep) {\n const index = dep.data.index ?? dependencies.indexOf(dep);\n ms.overwrite(\n node.start,\n node.end,\n `require(${depMapName}[${index}], ${JSON.stringify(arg.value)})`\n );\n }\n }\n }\n for (const key of Object.keys(node)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\" || key === \"parent\" || key === \"comments\")\n continue;\n const child = node[key];\n if (Array.isArray(child)) {\n for (const item of child) walk(item);\n } else if (child && typeof child === \"object\") {\n walk(child);\n }\n }\n if (pushedScope) {\n scopeTracker.exit();\n }\n }\n walk(parsed.program);\n const resultString = ms.toString();\n const map = ms.generateMap({ source: filename, hires: true, includeContent: true });\n return {\n code: resultString,\n map,\n toString() {\n return resultString;\n }\n };\n}\nfunction extractDependencies(code, filename, options) {\n const asyncRequirePath = options?.asyncRequireModulePath || \"metro-runtime/src/modules/asyncRequire\";\n const allowOptionalDependencies = options?.allowOptionalDependencies;\n const lineOffsets = [0];\n for (let i = 0; i < code.length; i++) {\n if (code[i] === \"\\n\") {\n lineOffsets.push(i + 1);\n }\n }\n function offsetToLoc(pos) {\n let low = 0;\n let high = lineOffsets.length - 1;\n while (low <= high) {\n const mid = low + high >> 1;\n if (lineOffsets[mid] <= pos) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n const line = high + 1;\n const column = pos - lineOffsets[high];\n return { line, column };\n }\n let parseResult;\n try {\n parseResult = parseSync(filename, code, { lang: langForFilename(filename) });\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for dependency extraction: ${err.message || err}`\n );\n }\n if (parseResult?.errors?.length) {\n throw new Error(\n `[vxrn/metro] Failed to parse ${filename} for dependency extraction: ${parseResult.errors[0].message}`\n );\n }\n if (!parseResult?.program) {\n return [];\n }\n const depMap = /* @__PURE__ */ new Map();\n function addDep(name, isESM, asyncType, start, end, contextParams, isOptional) {\n const key = getDependencyKey(name, isESM, asyncType, contextParams);\n let entry = depMap.get(key);\n const loc = { start: offsetToLoc(start), end: offsetToLoc(end) };\n if (!entry) {\n entry = {\n name,\n data: {\n key,\n asyncType,\n locs: [loc],\n isESMImportAtSource: isESM,\n isESMImport: isESM,\n index: depMap.size,\n ...contextParams ? { contextParams } : {},\n ...isOptional ? { isOptional: true } : {}\n }\n };\n depMap.set(key, entry);\n } else {\n entry.data.locs.push(loc);\n }\n }\n const moduleConsts = collectModuleLiteralBindings(parseResult.program);\n function resolveConst(node) {\n if (node?.type === \"Identifier\") return moduleConsts.get(node.name);\n return node;\n }\n const ancestors = [];\n function isOptionalHere(name) {\n if (!allowOptionalDependencies) return false;\n if (Array.isArray(allowOptionalDependencies.exclude)) {\n if (allowOptionalDependencies.exclude.includes(name)) return false;\n }\n let sCount = 0;\n for (let i = ancestors.length - 1; i >= 0 && sCount < 3; i--) {\n const n = ancestors[i];\n const isStatement = /(?:Statement|Declaration)$/.test(n.type);\n if (!isStatement) continue;\n if (n.type === \"BlockStatement\") {\n const parent = ancestors[i - 1];\n return parent?.type === \"TryStatement\" && parent.block === n;\n }\n sCount += 1;\n }\n return false;\n }\n const scopeTracker = new ScopeTracker();\n collectHoistedBindings(parseResult.program, scopeTracker.currentScope());\n collectBlockBindings(parseResult.program.body, scopeTracker.currentScope());\n for (const stmt of parseResult.program.body || []) {\n if (stmt.type === \"ImportDeclaration\") {\n for (const spec of stmt.specifiers || []) {\n if (spec.local?.name) {\n scopeTracker.add(spec.local.name);\n }\n }\n }\n }\n function walk(node) {\n if (!node || typeof node !== \"object\") return;\n let pushedScope = false;\n ancestors.push(node);\n if (node.type === \"FunctionDeclaration\" || node.type === \"FunctionExpression\" || node.type === \"ArrowFunctionExpression\") {\n scopeTracker.enter();\n pushedScope = true;\n for (const param of node.params || []) {\n scopeTracker.addPattern(param);\n }\n if (node.type === \"FunctionExpression\" && node.id?.name) {\n scopeTracker.add(node.id.name);\n }\n if (node.body) {\n collectHoistedBindings(node.body, scopeTracker.currentScope());\n }\n } else if (node.type === \"BlockStatement\") {\n scopeTracker.enter();\n pushedScope = true;\n collectBlockBindings(node.body, scopeTracker.currentScope());\n } else if (node.type === \"CatchClause\") {\n scopeTracker.enter();\n pushedScope = true;\n if (node.param) {\n scopeTracker.addPattern(node.param);\n }\n } else if (node.type === \"ForStatement\" || node.type === \"ForInStatement\" || node.type === \"ForOfStatement\") {\n const decl = node.type === \"ForStatement\" ? node.init : node.left;\n if (decl?.type === \"VariableDeclaration\" && decl.kind !== \"var\") {\n scopeTracker.enter();\n pushedScope = true;\n for (const d of decl.declarations || []) {\n scopeTracker.addPattern(d.id);\n }\n }\n }\n if (node.type === \"ImportDeclaration\" && node.source?.value) {\n if (node.importKind !== \"type\") {\n const hasValueSpecifier = !node.specifiers?.length || node.specifiers.some((s) => s.importKind !== \"type\");\n if (hasValueSpecifier) {\n addDep(node.source.value, true, null, node.start, node.end);\n }\n }\n } else if ((node.type === \"ExportNamedDeclaration\" || node.type === \"ExportAllDeclaration\") && node.source?.value) {\n if (node.exportKind !== \"type\") {\n addDep(node.source.value, true, null, node.start, node.end);\n }\n } else if (node.type === \"ImportExpression\") {\n if (node.source?.type === \"Literal\" && typeof node.source.value === \"string\") {\n addDep(node.source.value, true, \"async\", node.start, node.end);\n addDep(asyncRequirePath, false, null, node.start, node.end);\n } else {\n throw new Error(\n `[vxrn/metro] Dynamic import with non-string literal is not supported by Metro in ${filename}`\n );\n }\n } else if (node.type === \"CallExpression\" && node.callee?.type === \"Identifier\" && node.callee.name === \"require\" && !scopeTracker.isShadowed(\"require\")) {\n if (node.arguments?.[0]?.type === \"Literal\" && typeof node.arguments[0].value === \"string\") {\n addDep(\n node.arguments[0].value,\n false,\n null,\n node.start,\n node.end,\n void 0,\n node.arguments[0].value !== asyncRequirePath && isOptionalHere(node.arguments[0].value)\n );\n }\n } else if (\n // require.context(dir, recursive?, filter?, mode?) registers a whole\n // directory as one dependency. one's router entry uses it for the route\n // tree, so dropping it silently omits every route from the bundle.\n node.type === \"CallExpression\" && node.callee?.type === \"MemberExpression\" && !node.callee.computed && node.callee.object?.type === \"Identifier\" && node.callee.object.name === \"require\" && node.callee.property?.type === \"Identifier\" && node.callee.property.name === \"context\" && !scopeTracker.isShadowed(\"require\")\n ) {\n const args = node.arguments || [];\n const dir = resolveConst(args[0]);\n if (dir?.type !== \"Literal\" || typeof dir.value !== \"string\") {\n throw new Error(\n `[vxrn/metro] First argument of require.context must be a string literal in ${filename}`\n );\n }\n if (args.length > 4) {\n throw new Error(\n `[vxrn/metro] Too many arguments provided to require.context in ${filename}. Expected 4, got: ${args.length}`\n );\n }\n let recursive = true;\n const recursiveArg = resolveConst(args[1]);\n if (recursiveArg) {\n if (recursiveArg.type !== \"Literal\" || typeof recursiveArg.value !== \"boolean\") {\n throw new Error(\n `[vxrn/metro] Second argument of require.context must be an optional boolean literal in ${filename}`\n );\n }\n recursive = recursiveArg.value;\n }\n let filter = { pattern: \".*\", flags: \"\" };\n const filterArg = resolveConst(args[2]);\n if (filterArg) {\n if (filterArg.type !== \"Literal\" || !filterArg.regex) {\n throw new Error(\n `[vxrn/metro] Third argument of require.context must be an optional RegExp literal in ${filename}, instead found node of type: ${filterArg.type}`\n );\n }\n filter = { pattern: filterArg.regex.pattern, flags: filterArg.regex.flags || \"\" };\n }\n let mode = \"sync\";\n const modeArg = resolveConst(args[3]);\n if (modeArg) {\n const m = modeArg.type === \"Literal\" ? modeArg.value : void 0;\n if (m !== \"sync\" && m !== \"eager\" && m !== \"lazy\" && m !== \"lazy-once\") {\n throw new Error(\n `[vxrn/metro] require.context mode must be one of sync, eager, lazy, lazy-once in ${filename}`\n );\n }\n mode = m;\n }\n addDep(dir.value, false, null, node.start, node.end, { recursive, filter, mode });\n }\n for (const key of Object.keys(node)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\" || key === \"parent\" || key === \"comments\")\n continue;\n const child = node[key];\n if (Array.isArray(child)) {\n for (const item of child) walk(item);\n } else if (child && typeof child === \"object\") {\n walk(child);\n }\n }\n ancestors.pop();\n if (pushedScope) {\n scopeTracker.exit();\n }\n }\n walk(parseResult.program);\n return Array.from(depMap.values());\n}\nfunction checkReservedStrings(sourceCode, config, options) {\n const reservedStrings = [];\n if (options.customTransformOptions?.unstable_staticHermesOptimizedRequire === true) {\n reservedStrings.push(\"_$$_METRO_MODULE_ID\");\n }\n if (config.unstable_dependencyMapReservedName != null) {\n reservedStrings.push(config.unstable_dependencyMapReservedName);\n }\n for (const reservedString of reservedStrings) {\n const position = sourceCode.indexOf(reservedString);\n if (position > -1) {\n throw new SyntaxError(\n \"Source code contains the reserved string `\" + reservedString + \"` at character offset \" + position\n );\n }\n }\n}\nlet workletsConfigured = false;\nlet oneNativeTransforms;\nfunction loadOneNativeTransforms(projectRoot) {\n if (oneNativeTransforms !== void 0) return oneNativeTransforms;\n try {\n const req = createRequire(path.resolve(projectRoot, \"package.json\"));\n oneNativeTransforms = req(\"one/native-transforms\");\n } catch {\n oneNativeTransforms = null;\n }\n return oneNativeTransforms;\n}\nasync function configureWorkletsForWorker(projectRoot) {\n if (workletsConfigured) return;\n workletsConfigured = true;\n if (!projectRoot) return;\n const req = createRequire(path.resolve(projectRoot, \"package.json\"));\n let hasReanimated = false;\n try {\n req.resolve(\"react-native-reanimated/package.json\");\n hasReanimated = true;\n } catch {\n try {\n req.resolve(\"react-native-worklets/package.json\");\n hasReanimated = true;\n } catch {\n }\n }\n const { configureVXRNCompilerPlugin } = await import(\"@vxrn/compiler\");\n configureVXRNCompilerPlugin({ enableReanimated: hasReanimated });\n}\nasync function transform(config, projectRoot, filename, data, options) {\n assertNoUnportedBabelPlugins(options);\n let sourceCode = typeof data === \"string\" ? data : data.toString(\"utf8\");\n sourceCode = substituteExpoVirtualEnvSource({\n filename,\n src: sourceCode,\n projectRoot,\n dev: options.dev,\n environment: options.customTransformOptions?.environment\n });\n checkReservedStrings(sourceCode, config, options);\n if (filename.endsWith(\".json\")) {\n try {\n JSON.parse(sourceCode);\n } catch (err) {\n throw new Error(\n `[vxrn/metro] JSON parse error in ${filename}: ${err.message || err}`\n );\n }\n let code2 = config.unstable_disableModuleWrapping === true ? `module.exports = ${sourceCode};` : wrapJson(sourceCode, {\n globalPrefix: config.globalPrefix,\n moduleId: options.moduleId,\n dependencyIds: options.dependencyIds\n });\n if (options.minify && options.unstable_transformProfile !== \"hermes-canary\" && options.unstable_transformProfile !== \"hermes-stable\" && config.minifierPath) {\n try {\n const minifier = require(config.minifierPath);\n const minified = await minifier({\n code: code2,\n config: config.minifierConfig,\n filename\n });\n code2 = minified.code;\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Minifier failed for ${filename}: ${err.message || err}`\n );\n }\n }\n const { lineCount: lineCount2, map: map2 } = countLinesAndTerminateMap(code2, []);\n const outputType = options.type === \"asset\" ? \"js/module/asset\" : options.type === \"script\" ? \"js/script\" : \"js/module\";\n return {\n dependencies: [],\n output: [\n {\n data: {\n code: code2,\n lineCount: lineCount2,\n map: map2,\n functionMap: null\n },\n type: outputType\n }\n ]\n };\n }\n if (options.type === \"asset\") {\n const assetRegistryPath = config.assetRegistryPath || \"react-native/asset-registry\";\n let properDescriptor = null;\n const absolutePath = path.resolve(projectRoot, filename);\n if (fs.existsSync(absolutePath)) {\n try {\n let getAssetData;\n try {\n getAssetData = require(\"metro/private/Assets\").getAssetData;\n } catch {\n getAssetData = require(\"metro/src/Assets\").getAssetData;\n }\n if (typeof getAssetData === \"function\") {\n const rawData = await getAssetData(\n absolutePath,\n filename,\n config.assetPlugins || [],\n options.platform || \"\",\n config.publicPath || \"/assets\"\n );\n const copied = { ...rawData };\n delete copied.files;\n delete copied.fileSystemLocation;\n delete copied.path;\n properDescriptor = copied;\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Asset resolution failed for ${filename}: ${err.message || err}`\n );\n }\n }\n if (!properDescriptor) {\n const ext = path.extname(filename).slice(1);\n const name = path.basename(filename, \".\" + ext);\n properDescriptor = {\n __packager_asset: true,\n httpServerLocation: config.publicPath || \"/assets\",\n width: void 0,\n height: void 0,\n scales: [1],\n hash: crypto.createHash(\"md5\").update(sourceCode).digest(\"hex\"),\n name,\n type: ext\n };\n }\n const assetDepMapName = config.unstable_dependencyMapReservedName || \"_dependencyMap\";\n const assetCode = `module.exports = require(${assetDepMapName}[0], ${JSON.stringify(assetRegistryPath)}).registerAsset(${JSON.stringify(properDescriptor)});`;\n let code2 = config.unstable_disableModuleWrapping === true ? assetCode : wrapModule(assetCode, {\n globalPrefix: config.globalPrefix,\n moduleId: options.moduleId,\n dependencyIds: options.dependencyIds,\n dependencyMapName: config.unstable_dependencyMapReservedName\n });\n const dependencies2 = [\n {\n name: assetRegistryPath,\n data: {\n key: getDependencyKey(assetRegistryPath, false, null),\n asyncType: null,\n locs: [],\n isESMImportAtSource: false,\n isESMImport: false,\n index: 0\n }\n }\n ];\n const { lineCount: lineCount2, map: map2 } = countLinesAndTerminateMap(code2, []);\n return {\n dependencies: dependencies2,\n output: [\n {\n data: {\n code: code2,\n lineCount: lineCount2,\n map: map2,\n functionMap: null\n },\n type: \"js/module/asset\"\n }\n ]\n };\n }\n let code = sourceCode;\n const intermediateMaps = [];\n for (const nativeTransform of getNativeTransforms(options, projectRoot)) {\n const out = nativeTransform(code, {\n // absolute, unlike metro's own project-relative name. a transform that\n // matches on paths (include/exclude lists, node_modules skips) or stamps\n // a location into the output would otherwise get a different answer here\n // than the babel plugin it replaced, which is handed an absolute path.\n filename: path.isAbsolute(filename) ? filename : path.resolve(projectRoot, filename),\n platform: options.platform,\n dev: options.dev,\n projectRoot\n });\n if (typeof out === \"string\") code = out;\n }\n const oneRouterOptions = getOneRouterMetroOptions(options);\n if (oneRouterOptions) {\n code = applyOneRouterMetro(code, filename, oneRouterOptions);\n }\n try {\n const codegenRes = transformReactNativeCodegen(code, filename, projectRoot);\n if (codegenRes?.code) {\n code = codegenRes.code;\n if (codegenRes.map) {\n intermediateMaps.push(codegenRes.map);\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] React Native codegen failed for ${filename}: ${err.message || err}`\n );\n }\n if (shouldStripFlow(filename, code)) {\n try {\n const flowResult = await stripFlowTypes(filename, code);\n if (flowResult?.code) {\n code = flowResult.code;\n if (flowResult.map) {\n intermediateMaps.push(\n typeof flowResult.map === \"string\" ? JSON.parse(flowResult.map) : flowResult.map\n );\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Flow transform failed for ${filename}: ${err.message || err}`\n );\n }\n }\n const asyncRequirePath = config.asyncRequireModulePath || \"metro-runtime/src/modules/asyncRequire\";\n const aliases = getModuleResolverAliases(options);\n if (aliases && projectRoot) {\n const aliasKeys = Object.keys(aliases);\n if (aliasKeys.some((k) => code.includes(k.endsWith(\"$\") ? k.slice(0, -1) : k))) {\n code = applyModuleResolverAliases(code, filename, projectRoot, aliases);\n }\n }\n if (code.includes(\"process.env\") || code.includes(\"import.meta\")) {\n code = applyInlineEnvVars(code, filename, !options.dev, getImportMetaEnv(options));\n }\n if (code.includes(\"-only\")) {\n code = applyEnvironmentGuard(code, filename);\n }\n const serverCodeRouterRoot = getRemoveServerCodeRouterRoot(options);\n if (serverCodeRouterRoot && projectRoot && !filename.includes(\"node_modules\")) {\n const oneNativeTransforms2 = loadOneNativeTransforms(projectRoot);\n if (oneNativeTransforms2) {\n const shaken = await oneNativeTransforms2.transformTreeShakeClient(\n code,\n filename,\n projectRoot,\n serverCodeRouterRoot\n );\n if (shaken?.code) {\n code = shaken.code;\n }\n }\n }\n const dependencies = extractDependencies(code, filename, {\n asyncRequireModulePath: asyncRequirePath,\n allowOptionalDependencies: config.allowOptionalDependencies\n });\n await configureWorkletsForWorker(projectRoot);\n let shouldRunWorklets = Boolean(options.customTransformOptions?.worklets);\n if (!shouldRunWorklets) {\n const { shouldTransformWorklets } = await import(\"@vxrn/compiler\");\n shouldRunWorklets = shouldTransformWorklets({ id: filename, code });\n }\n const shouldRunReactCompiler = Boolean(options.customTransformOptions?.reactCompiler) || hasBabelPlugin(options, \"babel-plugin-react-compiler\") && isReactCompilerCandidate(filename) || code.includes('\"use memo\"') || code.includes(\"'use memo'\");\n if (shouldRunReactCompiler) {\n try {\n const { prepareWorkletsForReactCompiler, transformOxcReactCompiler } = await import(\"@vxrn/compiler\");\n if (shouldRunWorklets) {\n const prepared = prepareWorkletsForReactCompiler(filename, code, true);\n if (prepared) {\n code = prepared.code;\n if (prepared.map) intermediateMaps.push(prepared.map);\n }\n }\n const compilerRes = await transformOxcReactCompiler(filename, code, \"19\", true);\n if (compilerRes?.code) {\n code = compilerRes.code;\n if (compilerRes.map) {\n intermediateMaps.push(\n typeof compilerRes.map === \"string\" ? JSON.parse(compilerRes.map) : compilerRes.map\n );\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] React Compiler failed for ${filename}: ${err.message || err}`\n );\n }\n }\n if (shouldRunWorklets) {\n try {\n const { transformWorklets } = await import(\"@vxrn/compiler\");\n const workletRes = await transformWorklets(filename, code, true, {\n projectRoot\n });\n if (workletRes?.code) {\n code = workletRes.code;\n if (workletRes.map) {\n intermediateMaps.push(\n typeof workletRes.map === \"string\" ? JSON.parse(workletRes.map) : workletRes.map\n );\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Worklets transform failed for ${filename}: ${err.message || err}`\n );\n }\n }\n const lang = langForFilename(filename);\n const { transformSync: oxcTransform } = await import(\"oxc-transform\");\n let oxcRes;\n try {\n oxcRes = oxcTransform(filename, code, {\n lang,\n target: \"es2020\",\n assumptions: {\n setPublicClassFields: true\n },\n jsx: {\n runtime: \"automatic\",\n development: Boolean(options.dev)\n },\n sourcemap: true\n });\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Oxc transform failed for ${filename}: ${err.message || err}`\n );\n }\n if (oxcRes.errors?.length) {\n throw new Error(\n `[vxrn/metro] Oxc transform failed for ${filename}: ${oxcRes.errors[0].message || oxcRes.errors[0]}`\n );\n }\n code = oxcRes.code || code;\n if (oxcRes.map) {\n intermediateMaps.push(\n typeof oxcRes.map === \"string\" ? JSON.parse(oxcRes.map) : oxcRes.map\n );\n }\n try {\n const esbuildRes = await transformHermesAsync(\n code,\n filename,\n true,\n options.type === \"script\" ? void 0 : \"cjs\"\n );\n if (esbuildRes) {\n code = esbuildRes.code;\n if (esbuildRes.map) {\n intermediateMaps.push(esbuildRes.map);\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] native async/CJS lowering failed for ${filename}: ${err.message || err}`\n );\n }\n try {\n const loopsRes = transformHermesLoops(code, filename);\n if (loopsRes) {\n code = loopsRes.code;\n for (const map2 of loopsRes.maps) {\n intermediateMaps.push(map2);\n }\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Hermes loop-binding transform failed for ${filename}: ${err.message || err}`\n );\n }\n const finalDeps = extractDependencies(code, filename, {\n asyncRequireModulePath: asyncRequirePath,\n allowOptionalDependencies: config.allowOptionalDependencies\n });\n const finalNames = new Set(finalDeps.map((d) => d.name));\n const reconciled = dependencies.filter((d) => finalNames.has(d.name));\n for (const injected of finalDeps) {\n if (reconciled.some((d) => d.name === injected.name)) continue;\n reconciled.push(injected);\n }\n dependencies.length = 0;\n for (const dep of reconciled) {\n dependencies.push({ ...dep, data: { ...dep.data, index: dependencies.length } });\n }\n const depMapName = config.unstable_dependencyMapReservedName || \"_dependencyMap\";\n if (options.type === \"script\") {\n const msScript = new MagicString(code);\n msScript.prepend(`(function (global) {\n`);\n msScript.append(\n `\n})(typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this);`\n );\n code = msScript.toString();\n intermediateMaps.push(\n msScript.generateMap({ source: filename, hires: true, includeContent: true })\n );\n } else if (config.unstable_disableModuleWrapping === true) {\n const rewriteRes = rewriteDependencyCalls(\n code,\n dependencies,\n depMapName,\n filename,\n asyncRequirePath\n );\n code = rewriteRes.code;\n if (rewriteRes.map) {\n intermediateMaps.push(rewriteRes.map);\n }\n } else {\n const rewriteRes = rewriteDependencyCalls(\n code,\n dependencies,\n depMapName,\n filename,\n asyncRequirePath\n );\n if (rewriteRes.map) {\n intermediateMaps.push(rewriteRes.map);\n }\n const msWrap = new MagicString(rewriteRes.code);\n const globalPrefix = config.globalPrefix || \"\";\n const header = `function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, ${depMapName}) {\nvar require = _$$_REQUIRE;\n`;\n const footer = `\n}`;\n msWrap.prepend(`${globalPrefix}__d(${header}`);\n if (options.moduleId !== void 0) {\n const depIds = options.dependencyIds ? JSON.stringify(options.dependencyIds) : \"[]\";\n msWrap.append(`${footer}, ${JSON.stringify(options.moduleId)}, ${depIds});`);\n } else {\n msWrap.append(`${footer});`);\n }\n code = msWrap.toString();\n intermediateMaps.push(\n msWrap.generateMap({ source: filename, hires: true, includeContent: true })\n );\n }\n if (options.minify && options.unstable_transformProfile !== \"hermes-canary\" && options.unstable_transformProfile !== \"hermes-stable\" && config.minifierPath) {\n try {\n const minifier = require(config.minifierPath);\n const minified = await minifier({\n code,\n config: config.minifierConfig,\n filename,\n map: new MagicString(code).generateMap({\n source: filename,\n hires: true,\n includeContent: true\n })\n });\n code = minified.code;\n if (minified.map) {\n intermediateMaps.push(\n typeof minified.map === \"string\" ? JSON.parse(minified.map) : minified.map\n );\n } else {\n intermediateMaps.length = 0;\n }\n } catch (err) {\n throw new Error(\n `[vxrn/metro] Minifier failed for ${filename}: ${err.message || err}`\n );\n }\n }\n let rawMappings = [];\n if (intermediateMaps.length > 0) {\n const cleanMaps = intermediateMaps.map((m) => typeof m === \"string\" ? JSON.parse(m) : m).filter(Boolean);\n if (cleanMaps.length > 0) {\n const composed = cleanMaps.length === 1 ? cleanMaps[0] : remapping(cleanMaps.slice().reverse(), () => null);\n rawMappings = convertSourceMapToMetroRawMappings(composed);\n }\n }\n const { lineCount, map } = countLinesAndTerminateMap(code, rawMappings);\n return {\n dependencies,\n output: [\n {\n data: {\n code,\n lineCount,\n map,\n functionMap: null\n },\n type: options.type === \"script\" ? \"js/script\" : \"js/module\"\n }\n ]\n };\n}\nvar metroNativeWorker_default = {\n transform,\n getCacheKey,\n wrapModule,\n wrapJson,\n extractDependencies,\n rewriteDependencyCalls,\n convertSourceMapToMetroRawMappings\n};\nexport {\n ScopeTracker,\n applyEnvironmentGuard,\n applyInlineEnvVars,\n applyModuleResolverAliases,\n applyOneRouterMetro,\n assertNoUnportedBabelPlugins,\n collectBlockBindings,\n collectHoistedBindings,\n collectPatternNames,\n convertSourceMapToMetroRawMappings,\n countLinesAndTerminateMap,\n metroNativeWorker_default as default,\n extractDependencies,\n getCacheKey,\n getDependencyKey,\n getImportMetaEnv,\n getModuleResolverAliases,\n getOneRouterMetroOptions,\n getRemoveServerCodeRouterRoot,\n resolveAliasSpecifier,\n rewriteDependencyCalls,\n transform,\n wrapJson,\n wrapModule\n};\n//# sourceMappingURL=metroNativeWorker.js.map\n"],"mappings":"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"}
@@ -8,6 +8,7 @@ import remapping from "@jridgewell/remapping";
8
8
  import { TraceMap, eachMapping } from "@jridgewell/trace-mapping";
9
9
  import { shouldStripFlow, stripFlowTypes, transformHermesAsync, transformHermesLoops, transformReactNativeCodegen } from "@vxrn/compiler";
10
10
  import { withExpoPublicEnvAliases } from "@vxrn/utils/publicEnv";
11
+ import { substituteExpoVirtualEnvSource } from "./expoVirtualEnv.native.js";
11
12
  import { getPlatformEnv, metroPlatformToViteEnvironment } from "../env/platformEnv.native.js";
12
13
 
13
14
  function _class_call_check(instance, Constructor) {
@@ -1985,26 +1986,13 @@ async function transform(config, projectRoot, filename, data, options) {
1985
1986
  var _options_customTransformOptions, _options_customTransformOptions1, _options_customTransformOptions2, _oxcRes_errors;
1986
1987
  assertNoUnportedBabelPlugins(options);
1987
1988
  var sourceCode = typeof data === "string" ? data : data.toString("utf8");
1988
- var environment = (_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.environment;
1989
- var isClientEnvironment = environment !== "node" && environment !== "react-server";
1990
- if (isClientEnvironment && /[\\/]expo[\\/]virtual[\\/]env\.js$/.test(filename)) {
1991
- if (options.dev) {
1992
- var rel = path.relative(path.dirname(filename), projectRoot).split(path.sep).join("/");
1993
- sourceCode = `const dotEnvModules = require.context(${JSON.stringify(rel)},false,/^\\.\\/\\.env/);
1994
- export const env = !dotEnvModules.keys().length ? process.env : { ...process.env, ...['.env', '.env.development', '.env.local', '.env.development.local'].reduce((acc, file) => {
1995
- return { ...acc, ...(dotEnvModules(file)?.default ?? {}) };
1996
- }, {}) };`;
1997
- } else {
1998
- sourceCode = `export const env = new Proxy({}, {
1999
- get(target, key) {
2000
- throw new Error(\`Attempting to access internal environment variable "\${String(key)}" is not supported in production bundles.\`);
2001
- },
2002
- });`;
2003
- }
2004
- } else if (/(^|[\\/])\.env(\.(local|(development|production)(\.local)?))?$/.test(filename)) {
2005
- var { parseEnvFile } = await import("@expo/metro-config/build/transform-worker/dot-env-development");
2006
- sourceCode = `export default ${JSON.stringify(parseEnvFile(sourceCode, isClientEnvironment))};`;
2007
- }
1989
+ sourceCode = substituteExpoVirtualEnvSource({
1990
+ filename,
1991
+ src: sourceCode,
1992
+ projectRoot,
1993
+ dev: options.dev,
1994
+ environment: (_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.environment
1995
+ });
2008
1996
  checkReservedStrings(sourceCode, config, options);
2009
1997
  if (filename.endsWith(".json")) {
2010
1998
  try {