@vxrn/compiler 2.0.0-beta.101.1 → 2.0.0-beta.103.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.
@@ -449,6 +449,7 @@ ${code}`;
449
449
  transform(code, _id) {
450
450
  if (this.environment.name !== "client") return;
451
451
  if (code.includes(import_constants.runtimePublicPath)) return;
452
+ if (/[?&](?:worker|sharedworker|raw|url)\b/.test(_id)) return;
452
453
  const id = _id.split("?")[0];
453
454
  if (id.includes("node_modules")) return;
454
455
  if (id.includes("virtual:")) return;
package/dist/esm/index.js CHANGED
@@ -420,6 +420,7 @@ ${code}`;
420
420
  transform(code, _id) {
421
421
  if (this.environment.name !== "client") return;
422
422
  if (code.includes(runtimePublicPath)) return;
423
+ if (/[?&](?:worker|sharedworker|raw|url)\b/.test(_id)) return;
423
424
  const id = _id.split("?")[0];
424
425
  if (id.includes("node_modules")) return;
425
426
  if (id.includes("virtual:")) return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["esm/index.js"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, extname, join, relative, sep } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { resolvePath } from \"@vxrn/utils\";\nimport { cssToReactNativeRuntime } from \"react-native-css-interop/css-to-rn/index.js\";\nimport { configuration, isNativeWorkletsEnabled } from \"./configure\";\nimport { debug, runtimePublicPath, validParsers } from \"./constants\";\nimport {\n getBabelOptions,\n transformBabel,\n transformOxcReactCompiler\n} from \"./transformBabel\";\nimport { shouldSourceMap } from \"./transformSWC\";\nimport {\n prepareWorkletsForReactCompiler,\n shouldTransformWorklets,\n transformWorklets\n} from \"./transformWorklets\";\nimport { getCachedTransform, logCacheStats, setCachedTransform } from \"./cache\";\nexport * from \"./configure\";\nexport * from \"./transformBabel\";\nexport * from \"./transformSWC\";\nexport * from \"./transformWorklets\";\nexport * from \"./reactNativeCodegen\";\nexport * from \"./transformHermesLoops\";\nexport * from \"./transformHermesAsync\";\nimport { clearTransformCache } from \"./cache\";\nimport { JS_GLOBALS } from \"./worklets/globals\";\nimport { getClosureVariables } from \"./worklets/scope\";\nconst perfStats = {\n babel: {\n totalCalls: 0,\n totalTransforms: 0,\n totalTime: 0,\n byEnvironment: {}\n },\n optimizeDeps: {\n byEnvironment: {}\n }\n};\nfunction logPerfSummary() {\n if (!process.env.DEBUG_COMPILER_PERF) {\n return;\n }\n console.info(\"\\n\\u{1F4CA} [Compiler Performance Summary]\");\n console.info(\n `Babel: ${perfStats.babel.totalTransforms} transforms / ${perfStats.babel.totalCalls} calls (${(perfStats.babel.totalTransforms / Math.max(perfStats.babel.totalCalls, 1) * 100).toFixed(1)}% transform rate)`\n );\n console.info(`Babel total time: ${perfStats.babel.totalTime}ms`);\n for (const [env, stats] of Object.entries(perfStats.babel.byEnvironment)) {\n if (stats.transforms > 0) {\n console.info(\n ` ${env}: ${stats.transforms} transforms, ${stats.time}ms (${(stats.time / stats.transforms).toFixed(1)}ms avg)`\n );\n }\n }\n for (const [env, stats] of Object.entries(perfStats.optimizeDeps.byEnvironment)) {\n const elapsed = Date.now() - stats.startTime;\n console.info(\n `optimizeDeps ${env}: checked ${stats.filesChecked} files, transformed ${stats.filesTransformed} (${elapsed}ms)`\n );\n }\n}\nconst compilerLog = {\n compiled: 0,\n cached: 0,\n time: 0,\n // typed loose because the dom lib types setTimeout as number, but node gives\n // us a Timeout we need to unref so the debounce never holds the process open\n timer: null\n};\nfunction logCompiled(cached, ms) {\n if (cached) {\n compilerLog.cached++;\n } else {\n compilerLog.compiled++;\n compilerLog.time += ms;\n }\n if (compilerLog.timer) clearTimeout(compilerLog.timer);\n compilerLog.timer = setTimeout(() => {\n const total = compilerLog.compiled + compilerLog.cached;\n const detail = compilerLog.compiled ? `${compilerLog.compiled} compiled in ${compilerLog.time}ms${compilerLog.cached ? `, ${compilerLog.cached} cached` : \"\"}` : `all cached`;\n console.info(` \\u{1FA84} [compiler] ${total} file${total === 1 ? \"\" : \"s\"} (${detail})`);\n compilerLog.compiled = 0;\n compilerLog.cached = 0;\n compilerLog.time = 0;\n compilerLog.timer = null;\n }, 500);\n compilerLog.timer.unref?.();\n}\nasync function performBabelTransform({\n id,\n code,\n projectRoot,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n}) {\n perfStats.babel.totalCalls++;\n if (!perfStats.babel.byEnvironment[environment]) {\n perfStats.babel.byEnvironment[environment] = { calls: 0, transforms: 0, time: 0 };\n }\n perfStats.babel.byEnvironment[environment].calls++;\n const transformProps = {\n id,\n code,\n projectRoot,\n development: !production,\n environment,\n reactForRNVersion\n };\n const userTransform = optionsIn?.transform?.(transformProps);\n if (userTransform === false) {\n return null;\n }\n if (userTransform !== \"swc\" && userTransform !== \"oxc\") {\n const babelOptions = getBabelOptions({\n ...transformProps,\n userSetting: userTransform\n });\n if (babelOptions) {\n const hasCompilerPlugin = babelOptions.plugins?.some(\n (x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\"\n );\n const userBabelConfigPath = typeof babelOptions.configFile === \"string\" ? babelOptions.configFile : null;\n const cached = getCachedTransform(id, code, environment, userBabelConfigPath);\n if (cached) {\n perfStats.babel.byEnvironment[environment].transforms++;\n if (hasCompilerPlugin && (cached.code.includes(\"react/compiler-runtime\") || cached.code.includes(\"react-compiler-runtime\"))) {\n debug?.(` \\u{1FA84} [compiler] ${relative(process.cwd(), id)} (cached)`);\n logCompiled(true, 0);\n }\n debug?.(`[babel/cached] ${id}`);\n return cached;\n }\n const isWorkletPlugin = (entry) => {\n if (!entry) return false;\n const name = typeof entry === \"string\" ? entry : Array.isArray(entry) ? entry[0] : null;\n return typeof name === \"string\" && (name.includes(\"react-native-worklets\") || name.includes(\"react-native-reanimated\"));\n };\n const workletEntry = babelOptions.plugins?.find(isWorkletPlugin);\n const workletPluginOptions = Array.isArray(workletEntry) ? workletEntry[1] : void 0;\n const useWorklets = isNativeWorkletsEnabled() && (Boolean(workletEntry) || shouldTransformWorklets({ id, code }));\n let curCode = code;\n let workletPreparation = null;\n let compilerOut = null;\n const compilerPluginIndex = babelOptions.plugins?.findIndex(\n (x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\"\n ) ?? -1;\n if (compilerPluginIndex !== -1) {\n const compilerPluginConfig = babelOptions.plugins[compilerPluginIndex];\n const compilerPluginOptions = compilerPluginConfig[1] || {};\n const useBabelCompiler = compilerPluginOptions.compiler === \"babel\" || process.env.ONE_REACT_COMPILER === \"babel\" || process.env.VXRN_REACT_COMPILER === \"babel\";\n if (!useBabelCompiler) {\n if (useWorklets) {\n workletPreparation = prepareWorkletsForReactCompiler(\n id,\n curCode,\n shouldSourceMap()\n );\n if (workletPreparation) curCode = workletPreparation.code;\n }\n compilerOut = await transformOxcReactCompiler(\n id,\n curCode,\n compilerPluginOptions,\n shouldSourceMap()\n );\n if (compilerOut) curCode = compilerOut.code;\n babelOptions.plugins.splice(compilerPluginIndex, 1);\n }\n }\n let workletsOut = null;\n if (useWorklets) {\n workletsOut = await transformWorklets(id, curCode, shouldSourceMap(), {\n projectRoot,\n ...workletPluginOptions\n });\n babelOptions.plugins = babelOptions.plugins?.filter(\n (entry) => !isWorkletPlugin(entry)\n );\n curCode = workletsOut.code;\n }\n const startTime = Date.now();\n let babelOut = null;\n if (babelOptions.plugins?.length === 0 && !babelOptions.configFile && !babelOptions.babelrc) {\n let finalMap = void 0;\n if (shouldSourceMap()) {\n const intermediateMaps = [\n workletPreparation?.map,\n compilerOut?.map,\n workletsOut?.map\n ].filter(Boolean);\n if (intermediateMaps.length === 1) {\n finalMap = intermediateMaps[0];\n } else if (intermediateMaps.length > 1) {\n const remapping = (await import(\"@jridgewell/remapping\")).default;\n finalMap = remapping(intermediateMaps.slice().reverse(), () => null);\n }\n }\n babelOut = { code: curCode, map: finalMap };\n } else {\n const babelOptsWithMap = shouldSourceMap() && (workletsOut?.map || compilerOut?.map || workletPreparation?.map) ? { ...babelOptions, sourceMaps: true } : babelOptions;\n babelOut = await transformBabel(id, curCode, babelOptsWithMap);\n if (shouldSourceMap() && babelOut?.map) {\n const priorMaps = [\n workletPreparation?.map,\n compilerOut?.map,\n workletsOut?.map\n ].filter(Boolean);\n if (priorMaps.length > 0) {\n const remapping = (await import(\"@jridgewell/remapping\")).default;\n babelOut.map = remapping(\n [babelOut.map, ...priorMaps.slice().reverse()],\n () => null\n );\n }\n }\n }\n const babelTime = Date.now() - startTime;\n if (babelOut?.code) {\n perfStats.babel.totalTransforms++;\n perfStats.babel.totalTime += babelTime;\n perfStats.babel.byEnvironment[environment].transforms++;\n perfStats.babel.byEnvironment[environment].time += babelTime;\n if (hasCompilerPlugin && (babelOut.code.includes(\"react/compiler-runtime\") || babelOut.code.includes(\"react-compiler-runtime\"))) {\n debug?.(` \\u{1FA84} [compiler] ${relative(process.cwd(), id)} (${babelTime}ms)`);\n logCompiled(false, babelTime);\n }\n debug?.(`[babel] ${id}`);\n const outCode = `${babelOut.code}\n// vxrn-did-babel`;\n const result = { code: outCode, map: babelOut.map };\n setCachedTransform(id, code, result, environment, userBabelConfigPath);\n return result;\n }\n }\n }\n return null;\n}\nasync function createVXRNCompilerPlugin(optionsIn) {\n const reactVersion = await (async () => {\n const path = resolvePath(\"react/package.json\");\n const json = JSON.parse(await readFile(path, \"utf-8\"));\n return json.version;\n })();\n const envNames = {\n ios: true,\n android: true,\n client: true,\n ssr: true\n };\n function getEnvName(name) {\n if (name === \"worker\") return \"ssr\";\n if (!envNames[name]) throw new Error(`Invalid env: ${name}`);\n return name;\n }\n const reactForRNVersion = reactVersion.split(\".\")[0];\n const cssTransformCache = /* @__PURE__ */ new Map();\n const rolldownPath = resolvePath(\"rolldown\");\n const rolldownNodeMods = rolldownPath.slice(\n 0,\n rolldownPath.indexOf(sep + \"node_modules\")\n );\n let config;\n return [\n {\n name: \"one:compiler-resolve-refresh-runtime\",\n apply: \"serve\",\n enforce: \"pre\",\n // Run before Vite default resolve to avoid syscalls\n resolveId: (id) => id === runtimePublicPath || id === `${runtimePublicPath}.map` ? id : void 0,\n load: (id) => {\n const basePath = dirname(fileURLToPath(import.meta.url));\n if (id === runtimePublicPath) {\n return readFileSync(join(basePath, \"refresh-runtime.mjs\"), \"utf-8\").replace(\n /\\/\\/# sourceMappingURL=.*/,\n \"\"\n );\n }\n if (id === `${runtimePublicPath}.map`) {\n return JSON.stringify({ version: 3, sources: [], mappings: \"\" });\n }\n return void 0;\n }\n },\n {\n name: `one:compiler-css-to-js`,\n // only .css files can match, so let rust reject everything else\n transform: {\n filter: { id: /\\.css$/ },\n handler(codeIn, id) {\n const environment = getEnvName(this.environment.name);\n if (configuration.enableNativeCSS && (environment === \"ios\" || environment === \"android\")) {\n {\n const data = JSON.stringify(\n cssToReactNativeRuntime(codeIn, { inlineRem: 16 })\n );\n const code = `require(\"nativewind/dist/index.js\").require().StyleSheet.registerCompiled(${data})`;\n const newId = `${id}.js`;\n const cssId = newId.replace(rolldownNodeMods + sep, \"\");\n cssTransformCache.set(cssId, code);\n return {\n code,\n id: newId,\n map: null\n };\n }\n }\n }\n },\n generateBundle(_, bundle) {\n const environment = getEnvName(this.environment.name);\n if (configuration.enableNativeCSS && (environment === \"ios\" || environment === \"android\")) {\n const rootJSName = Object.keys(bundle).find((i) => {\n const chunk = bundle[i];\n return chunk.type == \"chunk\" && chunk.fileName.match(/.[cm]?js(?:\\?.+)?$/) != null;\n });\n if (!rootJSName) {\n throw new Error(`Can't find root js, internal one error`);\n }\n const rootJS = bundle[rootJSName];\n const cssAssets = Object.keys(bundle).filter(\n (i) => bundle[i].fileName.endsWith(\".css.js\")\n );\n for (const name of cssAssets) {\n delete bundle[name];\n const jsCSS = cssTransformCache.get(name);\n rootJS.code = `\n${jsCSS}\n${rootJS.code}\n`;\n }\n }\n }\n },\n {\n name: \"one:compiler\",\n enforce: \"pre\",\n config: () => {\n const nodeModulesFilter = /node_modules[/\\\\].*\\.(tsx?|jsx?|mjs|cjs)$/;\n const createEnvironmentConfig = (environment) => {\n if (!perfStats.optimizeDeps.byEnvironment[environment]) {\n perfStats.optimizeDeps.byEnvironment[environment] = {\n filesChecked: 0,\n filesTransformed: 0,\n startTime: Date.now()\n };\n }\n return {\n optimizeDeps: {\n rolldownOptions: {\n plugins: [\n {\n name: `transform-before-optimize-deps-${environment}`,\n async transform(code, id) {\n if (!nodeModulesFilter.test(id)) {\n return null;\n }\n perfStats.optimizeDeps.byEnvironment[environment].filesChecked++;\n const production = process.env.NODE_ENV === \"production\" || process.env.NODE_ENV === \"test\";\n debug?.(`[rolldown optimizeDeps] ${id}`);\n const result = await performBabelTransform({\n id,\n code,\n projectRoot: config.root,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n });\n if (!result) {\n return null;\n }\n perfStats.optimizeDeps.byEnvironment[environment].filesTransformed++;\n return {\n code: result.code,\n map: result.map\n };\n },\n buildEnd() {\n if (process.env.DEBUG_COMPILER_PERF) {\n const stats = perfStats.optimizeDeps.byEnvironment[environment];\n const elapsed = Date.now() - stats.startTime;\n console.info(\n `[optimizeDeps ${environment}] Done: ${stats.filesChecked} files checked, ${stats.filesTransformed} transformed (${elapsed}ms)`\n );\n }\n const allDone = Object.keys(perfStats.optimizeDeps.byEnvironment).length >= 2;\n if (allDone) {\n logCacheStats();\n logPerfSummary();\n }\n }\n }\n ]\n }\n },\n define: {\n \"process.env.NATIVEWIND_OS\": JSON.stringify(\n environment === \"ios\" || environment === \"android\" ? \"native\" : \"web\"\n )\n }\n };\n };\n return {\n environments: {\n ios: createEnvironmentConfig(\"ios\"),\n android: createEnvironmentConfig(\"android\"),\n client: createEnvironmentConfig(\"client\"),\n ssr: createEnvironmentConfig(\"ssr\")\n }\n };\n },\n configResolved(resolvedConfig) {\n config = resolvedConfig;\n },\n async transform(codeIn, _id) {\n let code = codeIn;\n const environment = getEnvName(this.environment.name);\n const isNative = environment === \"ios\" || environment === \"android\";\n const production = config.command === \"build\" || process.env.NODE_ENV === \"production\" || JSON.parse(\n this.environment.config?.define?.[\"process.env.NODE_ENV\"] || '\"\"'\n ) === \"production\";\n const isEntry = _id.includes(\"one-entry-native\");\n if (isEntry) {\n if (isNative && !production) {\n code = `import '@vxrn/vite-native-client'\n${code}`;\n }\n if (isNative && configuration.enableNativewind) {\n code = `import * as x from 'nativewind'\n${code}`;\n }\n return code;\n }\n const id = _id.split(\"?\")[0];\n const extension = extname(id);\n if (extension === \".css\" || !validParsers.has(extension)) {\n return;\n }\n if (id.includes(`virtual:`)) {\n return;\n }\n if (codeIn.endsWith(`// vxrn-did-babel`)) {\n debug?.(`[skip babel] ${id}`);\n return;\n }\n return performBabelTransform({\n id,\n code: codeIn,\n projectRoot: config.root,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n });\n }\n },\n // wraps client-side TSX/JSX with React Refresh preamble + import.meta.hot.accept\n // runs after vite:oxc (no enforce:'pre') so it sees the already-transformed code\n {\n name: \"one:react-refresh-web\",\n apply: \"serve\",\n transform(code, _id) {\n if (this.environment.name !== \"client\") return;\n if (code.includes(runtimePublicPath)) return;\n const id = _id.split(\"?\")[0];\n if (id.includes(\"node_modules\")) return;\n if (id.includes(\"virtual:\")) return;\n if (id === runtimePublicPath) return;\n const ext = extname(id);\n if (ext !== \".tsx\" && ext !== \".jsx\") return;\n const hasRefreshCalls = /\\$RefreshReg\\$\\(/.test(code);\n let out = `import * as RefreshRuntime from \"${runtimePublicPath}\";\n\n`;\n if (hasRefreshCalls) {\n out += `if (!window.$RefreshReg$) throw new Error(\"React refresh preamble was not loaded. Something is wrong.\");\nconst prevRefreshReg = window.$RefreshReg$;\nconst prevRefreshSig = window.$RefreshSig$;\nwindow.$RefreshReg$ = RefreshRuntime.getRefreshReg(\"${id}\");\nwindow.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;\n\n`;\n }\n out += code;\n if (hasRefreshCalls) {\n out += `\n\nwindow.$RefreshReg$ = prevRefreshReg;\nwindow.$RefreshSig$ = prevRefreshSig;\n`;\n }\n out += `\nRefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {\n RefreshRuntime.registerExportsForReactRefresh(\"${id}\", currentExports);\n import.meta.hot.accept((nextExports) => {\n if (!nextExports) return;\n const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate(\"${id}\", currentExports, nextExports);\n if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);\n });\n});\n`;\n return { code: out, map: null };\n }\n }\n ];\n}\nexport {\n JS_GLOBALS,\n clearTransformCache,\n createVXRNCompilerPlugin,\n getClosureVariables\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["esm/index.js"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, extname, join, relative, sep } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { resolvePath } from \"@vxrn/utils\";\nimport { cssToReactNativeRuntime } from \"react-native-css-interop/css-to-rn/index.js\";\nimport { configuration, isNativeWorkletsEnabled } from \"./configure\";\nimport { debug, runtimePublicPath, validParsers } from \"./constants\";\nimport {\n getBabelOptions,\n transformBabel,\n transformOxcReactCompiler\n} from \"./transformBabel\";\nimport { shouldSourceMap } from \"./transformSWC\";\nimport {\n prepareWorkletsForReactCompiler,\n shouldTransformWorklets,\n transformWorklets\n} from \"./transformWorklets\";\nimport { getCachedTransform, logCacheStats, setCachedTransform } from \"./cache\";\nexport * from \"./configure\";\nexport * from \"./transformBabel\";\nexport * from \"./transformSWC\";\nexport * from \"./transformWorklets\";\nexport * from \"./reactNativeCodegen\";\nexport * from \"./transformHermesLoops\";\nexport * from \"./transformHermesAsync\";\nimport { clearTransformCache } from \"./cache\";\nimport { JS_GLOBALS } from \"./worklets/globals\";\nimport { getClosureVariables } from \"./worklets/scope\";\nconst perfStats = {\n babel: {\n totalCalls: 0,\n totalTransforms: 0,\n totalTime: 0,\n byEnvironment: {}\n },\n optimizeDeps: {\n byEnvironment: {}\n }\n};\nfunction logPerfSummary() {\n if (!process.env.DEBUG_COMPILER_PERF) {\n return;\n }\n console.info(\"\\n\\u{1F4CA} [Compiler Performance Summary]\");\n console.info(\n `Babel: ${perfStats.babel.totalTransforms} transforms / ${perfStats.babel.totalCalls} calls (${(perfStats.babel.totalTransforms / Math.max(perfStats.babel.totalCalls, 1) * 100).toFixed(1)}% transform rate)`\n );\n console.info(`Babel total time: ${perfStats.babel.totalTime}ms`);\n for (const [env, stats] of Object.entries(perfStats.babel.byEnvironment)) {\n if (stats.transforms > 0) {\n console.info(\n ` ${env}: ${stats.transforms} transforms, ${stats.time}ms (${(stats.time / stats.transforms).toFixed(1)}ms avg)`\n );\n }\n }\n for (const [env, stats] of Object.entries(perfStats.optimizeDeps.byEnvironment)) {\n const elapsed = Date.now() - stats.startTime;\n console.info(\n `optimizeDeps ${env}: checked ${stats.filesChecked} files, transformed ${stats.filesTransformed} (${elapsed}ms)`\n );\n }\n}\nconst compilerLog = {\n compiled: 0,\n cached: 0,\n time: 0,\n // typed loose because the dom lib types setTimeout as number, but node gives\n // us a Timeout we need to unref so the debounce never holds the process open\n timer: null\n};\nfunction logCompiled(cached, ms) {\n if (cached) {\n compilerLog.cached++;\n } else {\n compilerLog.compiled++;\n compilerLog.time += ms;\n }\n if (compilerLog.timer) clearTimeout(compilerLog.timer);\n compilerLog.timer = setTimeout(() => {\n const total = compilerLog.compiled + compilerLog.cached;\n const detail = compilerLog.compiled ? `${compilerLog.compiled} compiled in ${compilerLog.time}ms${compilerLog.cached ? `, ${compilerLog.cached} cached` : \"\"}` : `all cached`;\n console.info(` \\u{1FA84} [compiler] ${total} file${total === 1 ? \"\" : \"s\"} (${detail})`);\n compilerLog.compiled = 0;\n compilerLog.cached = 0;\n compilerLog.time = 0;\n compilerLog.timer = null;\n }, 500);\n compilerLog.timer.unref?.();\n}\nasync function performBabelTransform({\n id,\n code,\n projectRoot,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n}) {\n perfStats.babel.totalCalls++;\n if (!perfStats.babel.byEnvironment[environment]) {\n perfStats.babel.byEnvironment[environment] = { calls: 0, transforms: 0, time: 0 };\n }\n perfStats.babel.byEnvironment[environment].calls++;\n const transformProps = {\n id,\n code,\n projectRoot,\n development: !production,\n environment,\n reactForRNVersion\n };\n const userTransform = optionsIn?.transform?.(transformProps);\n if (userTransform === false) {\n return null;\n }\n if (userTransform !== \"swc\" && userTransform !== \"oxc\") {\n const babelOptions = getBabelOptions({\n ...transformProps,\n userSetting: userTransform\n });\n if (babelOptions) {\n const hasCompilerPlugin = babelOptions.plugins?.some(\n (x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\"\n );\n const userBabelConfigPath = typeof babelOptions.configFile === \"string\" ? babelOptions.configFile : null;\n const cached = getCachedTransform(id, code, environment, userBabelConfigPath);\n if (cached) {\n perfStats.babel.byEnvironment[environment].transforms++;\n if (hasCompilerPlugin && (cached.code.includes(\"react/compiler-runtime\") || cached.code.includes(\"react-compiler-runtime\"))) {\n debug?.(` \\u{1FA84} [compiler] ${relative(process.cwd(), id)} (cached)`);\n logCompiled(true, 0);\n }\n debug?.(`[babel/cached] ${id}`);\n return cached;\n }\n const isWorkletPlugin = (entry) => {\n if (!entry) return false;\n const name = typeof entry === \"string\" ? entry : Array.isArray(entry) ? entry[0] : null;\n return typeof name === \"string\" && (name.includes(\"react-native-worklets\") || name.includes(\"react-native-reanimated\"));\n };\n const workletEntry = babelOptions.plugins?.find(isWorkletPlugin);\n const workletPluginOptions = Array.isArray(workletEntry) ? workletEntry[1] : void 0;\n const useWorklets = isNativeWorkletsEnabled() && (Boolean(workletEntry) || shouldTransformWorklets({ id, code }));\n let curCode = code;\n let workletPreparation = null;\n let compilerOut = null;\n const compilerPluginIndex = babelOptions.plugins?.findIndex(\n (x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\"\n ) ?? -1;\n if (compilerPluginIndex !== -1) {\n const compilerPluginConfig = babelOptions.plugins[compilerPluginIndex];\n const compilerPluginOptions = compilerPluginConfig[1] || {};\n const useBabelCompiler = compilerPluginOptions.compiler === \"babel\" || process.env.ONE_REACT_COMPILER === \"babel\" || process.env.VXRN_REACT_COMPILER === \"babel\";\n if (!useBabelCompiler) {\n if (useWorklets) {\n workletPreparation = prepareWorkletsForReactCompiler(\n id,\n curCode,\n shouldSourceMap()\n );\n if (workletPreparation) curCode = workletPreparation.code;\n }\n compilerOut = await transformOxcReactCompiler(\n id,\n curCode,\n compilerPluginOptions,\n shouldSourceMap()\n );\n if (compilerOut) curCode = compilerOut.code;\n babelOptions.plugins.splice(compilerPluginIndex, 1);\n }\n }\n let workletsOut = null;\n if (useWorklets) {\n workletsOut = await transformWorklets(id, curCode, shouldSourceMap(), {\n projectRoot,\n ...workletPluginOptions\n });\n babelOptions.plugins = babelOptions.plugins?.filter(\n (entry) => !isWorkletPlugin(entry)\n );\n curCode = workletsOut.code;\n }\n const startTime = Date.now();\n let babelOut = null;\n if (babelOptions.plugins?.length === 0 && !babelOptions.configFile && !babelOptions.babelrc) {\n let finalMap = void 0;\n if (shouldSourceMap()) {\n const intermediateMaps = [\n workletPreparation?.map,\n compilerOut?.map,\n workletsOut?.map\n ].filter(Boolean);\n if (intermediateMaps.length === 1) {\n finalMap = intermediateMaps[0];\n } else if (intermediateMaps.length > 1) {\n const remapping = (await import(\"@jridgewell/remapping\")).default;\n finalMap = remapping(intermediateMaps.slice().reverse(), () => null);\n }\n }\n babelOut = { code: curCode, map: finalMap };\n } else {\n const babelOptsWithMap = shouldSourceMap() && (workletsOut?.map || compilerOut?.map || workletPreparation?.map) ? { ...babelOptions, sourceMaps: true } : babelOptions;\n babelOut = await transformBabel(id, curCode, babelOptsWithMap);\n if (shouldSourceMap() && babelOut?.map) {\n const priorMaps = [\n workletPreparation?.map,\n compilerOut?.map,\n workletsOut?.map\n ].filter(Boolean);\n if (priorMaps.length > 0) {\n const remapping = (await import(\"@jridgewell/remapping\")).default;\n babelOut.map = remapping(\n [babelOut.map, ...priorMaps.slice().reverse()],\n () => null\n );\n }\n }\n }\n const babelTime = Date.now() - startTime;\n if (babelOut?.code) {\n perfStats.babel.totalTransforms++;\n perfStats.babel.totalTime += babelTime;\n perfStats.babel.byEnvironment[environment].transforms++;\n perfStats.babel.byEnvironment[environment].time += babelTime;\n if (hasCompilerPlugin && (babelOut.code.includes(\"react/compiler-runtime\") || babelOut.code.includes(\"react-compiler-runtime\"))) {\n debug?.(` \\u{1FA84} [compiler] ${relative(process.cwd(), id)} (${babelTime}ms)`);\n logCompiled(false, babelTime);\n }\n debug?.(`[babel] ${id}`);\n const outCode = `${babelOut.code}\n// vxrn-did-babel`;\n const result = { code: outCode, map: babelOut.map };\n setCachedTransform(id, code, result, environment, userBabelConfigPath);\n return result;\n }\n }\n }\n return null;\n}\nasync function createVXRNCompilerPlugin(optionsIn) {\n const reactVersion = await (async () => {\n const path = resolvePath(\"react/package.json\");\n const json = JSON.parse(await readFile(path, \"utf-8\"));\n return json.version;\n })();\n const envNames = {\n ios: true,\n android: true,\n client: true,\n ssr: true\n };\n function getEnvName(name) {\n if (name === \"worker\") return \"ssr\";\n if (!envNames[name]) throw new Error(`Invalid env: ${name}`);\n return name;\n }\n const reactForRNVersion = reactVersion.split(\".\")[0];\n const cssTransformCache = /* @__PURE__ */ new Map();\n const rolldownPath = resolvePath(\"rolldown\");\n const rolldownNodeMods = rolldownPath.slice(\n 0,\n rolldownPath.indexOf(sep + \"node_modules\")\n );\n let config;\n return [\n {\n name: \"one:compiler-resolve-refresh-runtime\",\n apply: \"serve\",\n enforce: \"pre\",\n // Run before Vite default resolve to avoid syscalls\n resolveId: (id) => id === runtimePublicPath || id === `${runtimePublicPath}.map` ? id : void 0,\n load: (id) => {\n const basePath = dirname(fileURLToPath(import.meta.url));\n if (id === runtimePublicPath) {\n return readFileSync(join(basePath, \"refresh-runtime.mjs\"), \"utf-8\").replace(\n /\\/\\/# sourceMappingURL=.*/,\n \"\"\n );\n }\n if (id === `${runtimePublicPath}.map`) {\n return JSON.stringify({ version: 3, sources: [], mappings: \"\" });\n }\n return void 0;\n }\n },\n {\n name: `one:compiler-css-to-js`,\n // only .css files can match, so let rust reject everything else\n transform: {\n filter: { id: /\\.css$/ },\n handler(codeIn, id) {\n const environment = getEnvName(this.environment.name);\n if (configuration.enableNativeCSS && (environment === \"ios\" || environment === \"android\")) {\n {\n const data = JSON.stringify(\n cssToReactNativeRuntime(codeIn, { inlineRem: 16 })\n );\n const code = `require(\"nativewind/dist/index.js\").require().StyleSheet.registerCompiled(${data})`;\n const newId = `${id}.js`;\n const cssId = newId.replace(rolldownNodeMods + sep, \"\");\n cssTransformCache.set(cssId, code);\n return {\n code,\n id: newId,\n map: null\n };\n }\n }\n }\n },\n generateBundle(_, bundle) {\n const environment = getEnvName(this.environment.name);\n if (configuration.enableNativeCSS && (environment === \"ios\" || environment === \"android\")) {\n const rootJSName = Object.keys(bundle).find((i) => {\n const chunk = bundle[i];\n return chunk.type == \"chunk\" && chunk.fileName.match(/.[cm]?js(?:\\?.+)?$/) != null;\n });\n if (!rootJSName) {\n throw new Error(`Can't find root js, internal one error`);\n }\n const rootJS = bundle[rootJSName];\n const cssAssets = Object.keys(bundle).filter(\n (i) => bundle[i].fileName.endsWith(\".css.js\")\n );\n for (const name of cssAssets) {\n delete bundle[name];\n const jsCSS = cssTransformCache.get(name);\n rootJS.code = `\n${jsCSS}\n${rootJS.code}\n`;\n }\n }\n }\n },\n {\n name: \"one:compiler\",\n enforce: \"pre\",\n config: () => {\n const nodeModulesFilter = /node_modules[/\\\\].*\\.(tsx?|jsx?|mjs|cjs)$/;\n const createEnvironmentConfig = (environment) => {\n if (!perfStats.optimizeDeps.byEnvironment[environment]) {\n perfStats.optimizeDeps.byEnvironment[environment] = {\n filesChecked: 0,\n filesTransformed: 0,\n startTime: Date.now()\n };\n }\n return {\n optimizeDeps: {\n rolldownOptions: {\n plugins: [\n {\n name: `transform-before-optimize-deps-${environment}`,\n async transform(code, id) {\n if (!nodeModulesFilter.test(id)) {\n return null;\n }\n perfStats.optimizeDeps.byEnvironment[environment].filesChecked++;\n const production = process.env.NODE_ENV === \"production\" || process.env.NODE_ENV === \"test\";\n debug?.(`[rolldown optimizeDeps] ${id}`);\n const result = await performBabelTransform({\n id,\n code,\n projectRoot: config.root,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n });\n if (!result) {\n return null;\n }\n perfStats.optimizeDeps.byEnvironment[environment].filesTransformed++;\n return {\n code: result.code,\n map: result.map\n };\n },\n buildEnd() {\n if (process.env.DEBUG_COMPILER_PERF) {\n const stats = perfStats.optimizeDeps.byEnvironment[environment];\n const elapsed = Date.now() - stats.startTime;\n console.info(\n `[optimizeDeps ${environment}] Done: ${stats.filesChecked} files checked, ${stats.filesTransformed} transformed (${elapsed}ms)`\n );\n }\n const allDone = Object.keys(perfStats.optimizeDeps.byEnvironment).length >= 2;\n if (allDone) {\n logCacheStats();\n logPerfSummary();\n }\n }\n }\n ]\n }\n },\n define: {\n \"process.env.NATIVEWIND_OS\": JSON.stringify(\n environment === \"ios\" || environment === \"android\" ? \"native\" : \"web\"\n )\n }\n };\n };\n return {\n environments: {\n ios: createEnvironmentConfig(\"ios\"),\n android: createEnvironmentConfig(\"android\"),\n client: createEnvironmentConfig(\"client\"),\n ssr: createEnvironmentConfig(\"ssr\")\n }\n };\n },\n configResolved(resolvedConfig) {\n config = resolvedConfig;\n },\n async transform(codeIn, _id) {\n let code = codeIn;\n const environment = getEnvName(this.environment.name);\n const isNative = environment === \"ios\" || environment === \"android\";\n const production = config.command === \"build\" || process.env.NODE_ENV === \"production\" || JSON.parse(\n this.environment.config?.define?.[\"process.env.NODE_ENV\"] || '\"\"'\n ) === \"production\";\n const isEntry = _id.includes(\"one-entry-native\");\n if (isEntry) {\n if (isNative && !production) {\n code = `import '@vxrn/vite-native-client'\n${code}`;\n }\n if (isNative && configuration.enableNativewind) {\n code = `import * as x from 'nativewind'\n${code}`;\n }\n return code;\n }\n const id = _id.split(\"?\")[0];\n const extension = extname(id);\n if (extension === \".css\" || !validParsers.has(extension)) {\n return;\n }\n if (id.includes(`virtual:`)) {\n return;\n }\n if (codeIn.endsWith(`// vxrn-did-babel`)) {\n debug?.(`[skip babel] ${id}`);\n return;\n }\n return performBabelTransform({\n id,\n code: codeIn,\n projectRoot: config.root,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n });\n }\n },\n // wraps client-side TSX/JSX with React Refresh preamble + import.meta.hot.accept\n // runs after vite:oxc (no enforce:'pre') so it sees the already-transformed code\n {\n name: \"one:react-refresh-web\",\n apply: \"serve\",\n transform(code, _id) {\n if (this.environment.name !== \"client\") return;\n if (code.includes(runtimePublicPath)) return;\n if (/[?&](?:worker|sharedworker|raw|url)\\b/.test(_id)) return;\n const id = _id.split(\"?\")[0];\n if (id.includes(\"node_modules\")) return;\n if (id.includes(\"virtual:\")) return;\n if (id === runtimePublicPath) return;\n const ext = extname(id);\n if (ext !== \".tsx\" && ext !== \".jsx\") return;\n const hasRefreshCalls = /\\$RefreshReg\\$\\(/.test(code);\n let out = `import * as RefreshRuntime from \"${runtimePublicPath}\";\n\n`;\n if (hasRefreshCalls) {\n out += `if (!window.$RefreshReg$) throw new Error(\"React refresh preamble was not loaded. Something is wrong.\");\nconst prevRefreshReg = window.$RefreshReg$;\nconst prevRefreshSig = window.$RefreshSig$;\nwindow.$RefreshReg$ = RefreshRuntime.getRefreshReg(\"${id}\");\nwindow.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;\n\n`;\n }\n out += code;\n if (hasRefreshCalls) {\n out += `\n\nwindow.$RefreshReg$ = prevRefreshReg;\nwindow.$RefreshSig$ = prevRefreshSig;\n`;\n }\n out += `\nRefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {\n RefreshRuntime.registerExportsForReactRefresh(\"${id}\", currentExports);\n import.meta.hot.accept((nextExports) => {\n if (!nextExports) return;\n const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate(\"${id}\", currentExports, nextExports);\n if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);\n });\n});\n`;\n return { code: out, map: null };\n }\n }\n ];\n}\nexport {\n JS_GLOBALS,\n clearTransformCache,\n createVXRNCompilerPlugin,\n getClosureVariables\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}
@@ -420,6 +420,7 @@ ${code}`;
420
420
  transform(code, _id) {
421
421
  if (this.environment.name !== "client") return;
422
422
  if (code.includes(runtimePublicPath)) return;
423
+ if (/[?&](?:worker|sharedworker|raw|url)\b/.test(_id)) return;
423
424
  const id = _id.split("?")[0];
424
425
  if (id.includes("node_modules")) return;
425
426
  if (id.includes("virtual:")) return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["esm/index.js"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, extname, join, relative, sep } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { resolvePath } from \"@vxrn/utils\";\nimport { cssToReactNativeRuntime } from \"react-native-css-interop/css-to-rn/index.js\";\nimport { configuration, isNativeWorkletsEnabled } from \"./configure\";\nimport { debug, runtimePublicPath, validParsers } from \"./constants\";\nimport {\n getBabelOptions,\n transformBabel,\n transformOxcReactCompiler\n} from \"./transformBabel\";\nimport { shouldSourceMap } from \"./transformSWC\";\nimport {\n prepareWorkletsForReactCompiler,\n shouldTransformWorklets,\n transformWorklets\n} from \"./transformWorklets\";\nimport { getCachedTransform, logCacheStats, setCachedTransform } from \"./cache\";\nexport * from \"./configure\";\nexport * from \"./transformBabel\";\nexport * from \"./transformSWC\";\nexport * from \"./transformWorklets\";\nexport * from \"./reactNativeCodegen\";\nexport * from \"./transformHermesLoops\";\nexport * from \"./transformHermesAsync\";\nimport { clearTransformCache } from \"./cache\";\nimport { JS_GLOBALS } from \"./worklets/globals\";\nimport { getClosureVariables } from \"./worklets/scope\";\nconst perfStats = {\n babel: {\n totalCalls: 0,\n totalTransforms: 0,\n totalTime: 0,\n byEnvironment: {}\n },\n optimizeDeps: {\n byEnvironment: {}\n }\n};\nfunction logPerfSummary() {\n if (!process.env.DEBUG_COMPILER_PERF) {\n return;\n }\n console.info(\"\\n\\u{1F4CA} [Compiler Performance Summary]\");\n console.info(\n `Babel: ${perfStats.babel.totalTransforms} transforms / ${perfStats.babel.totalCalls} calls (${(perfStats.babel.totalTransforms / Math.max(perfStats.babel.totalCalls, 1) * 100).toFixed(1)}% transform rate)`\n );\n console.info(`Babel total time: ${perfStats.babel.totalTime}ms`);\n for (const [env, stats] of Object.entries(perfStats.babel.byEnvironment)) {\n if (stats.transforms > 0) {\n console.info(\n ` ${env}: ${stats.transforms} transforms, ${stats.time}ms (${(stats.time / stats.transforms).toFixed(1)}ms avg)`\n );\n }\n }\n for (const [env, stats] of Object.entries(perfStats.optimizeDeps.byEnvironment)) {\n const elapsed = Date.now() - stats.startTime;\n console.info(\n `optimizeDeps ${env}: checked ${stats.filesChecked} files, transformed ${stats.filesTransformed} (${elapsed}ms)`\n );\n }\n}\nconst compilerLog = {\n compiled: 0,\n cached: 0,\n time: 0,\n // typed loose because the dom lib types setTimeout as number, but node gives\n // us a Timeout we need to unref so the debounce never holds the process open\n timer: null\n};\nfunction logCompiled(cached, ms) {\n if (cached) {\n compilerLog.cached++;\n } else {\n compilerLog.compiled++;\n compilerLog.time += ms;\n }\n if (compilerLog.timer) clearTimeout(compilerLog.timer);\n compilerLog.timer = setTimeout(() => {\n const total = compilerLog.compiled + compilerLog.cached;\n const detail = compilerLog.compiled ? `${compilerLog.compiled} compiled in ${compilerLog.time}ms${compilerLog.cached ? `, ${compilerLog.cached} cached` : \"\"}` : `all cached`;\n console.info(` \\u{1FA84} [compiler] ${total} file${total === 1 ? \"\" : \"s\"} (${detail})`);\n compilerLog.compiled = 0;\n compilerLog.cached = 0;\n compilerLog.time = 0;\n compilerLog.timer = null;\n }, 500);\n compilerLog.timer.unref?.();\n}\nasync function performBabelTransform({\n id,\n code,\n projectRoot,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n}) {\n perfStats.babel.totalCalls++;\n if (!perfStats.babel.byEnvironment[environment]) {\n perfStats.babel.byEnvironment[environment] = { calls: 0, transforms: 0, time: 0 };\n }\n perfStats.babel.byEnvironment[environment].calls++;\n const transformProps = {\n id,\n code,\n projectRoot,\n development: !production,\n environment,\n reactForRNVersion\n };\n const userTransform = optionsIn?.transform?.(transformProps);\n if (userTransform === false) {\n return null;\n }\n if (userTransform !== \"swc\" && userTransform !== \"oxc\") {\n const babelOptions = getBabelOptions({\n ...transformProps,\n userSetting: userTransform\n });\n if (babelOptions) {\n const hasCompilerPlugin = babelOptions.plugins?.some(\n (x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\"\n );\n const userBabelConfigPath = typeof babelOptions.configFile === \"string\" ? babelOptions.configFile : null;\n const cached = getCachedTransform(id, code, environment, userBabelConfigPath);\n if (cached) {\n perfStats.babel.byEnvironment[environment].transforms++;\n if (hasCompilerPlugin && (cached.code.includes(\"react/compiler-runtime\") || cached.code.includes(\"react-compiler-runtime\"))) {\n debug?.(` \\u{1FA84} [compiler] ${relative(process.cwd(), id)} (cached)`);\n logCompiled(true, 0);\n }\n debug?.(`[babel/cached] ${id}`);\n return cached;\n }\n const isWorkletPlugin = (entry) => {\n if (!entry) return false;\n const name = typeof entry === \"string\" ? entry : Array.isArray(entry) ? entry[0] : null;\n return typeof name === \"string\" && (name.includes(\"react-native-worklets\") || name.includes(\"react-native-reanimated\"));\n };\n const workletEntry = babelOptions.plugins?.find(isWorkletPlugin);\n const workletPluginOptions = Array.isArray(workletEntry) ? workletEntry[1] : void 0;\n const useWorklets = isNativeWorkletsEnabled() && (Boolean(workletEntry) || shouldTransformWorklets({ id, code }));\n let curCode = code;\n let workletPreparation = null;\n let compilerOut = null;\n const compilerPluginIndex = babelOptions.plugins?.findIndex(\n (x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\"\n ) ?? -1;\n if (compilerPluginIndex !== -1) {\n const compilerPluginConfig = babelOptions.plugins[compilerPluginIndex];\n const compilerPluginOptions = compilerPluginConfig[1] || {};\n const useBabelCompiler = compilerPluginOptions.compiler === \"babel\" || process.env.ONE_REACT_COMPILER === \"babel\" || process.env.VXRN_REACT_COMPILER === \"babel\";\n if (!useBabelCompiler) {\n if (useWorklets) {\n workletPreparation = prepareWorkletsForReactCompiler(\n id,\n curCode,\n shouldSourceMap()\n );\n if (workletPreparation) curCode = workletPreparation.code;\n }\n compilerOut = await transformOxcReactCompiler(\n id,\n curCode,\n compilerPluginOptions,\n shouldSourceMap()\n );\n if (compilerOut) curCode = compilerOut.code;\n babelOptions.plugins.splice(compilerPluginIndex, 1);\n }\n }\n let workletsOut = null;\n if (useWorklets) {\n workletsOut = await transformWorklets(id, curCode, shouldSourceMap(), {\n projectRoot,\n ...workletPluginOptions\n });\n babelOptions.plugins = babelOptions.plugins?.filter(\n (entry) => !isWorkletPlugin(entry)\n );\n curCode = workletsOut.code;\n }\n const startTime = Date.now();\n let babelOut = null;\n if (babelOptions.plugins?.length === 0 && !babelOptions.configFile && !babelOptions.babelrc) {\n let finalMap = void 0;\n if (shouldSourceMap()) {\n const intermediateMaps = [\n workletPreparation?.map,\n compilerOut?.map,\n workletsOut?.map\n ].filter(Boolean);\n if (intermediateMaps.length === 1) {\n finalMap = intermediateMaps[0];\n } else if (intermediateMaps.length > 1) {\n const remapping = (await import(\"@jridgewell/remapping\")).default;\n finalMap = remapping(intermediateMaps.slice().reverse(), () => null);\n }\n }\n babelOut = { code: curCode, map: finalMap };\n } else {\n const babelOptsWithMap = shouldSourceMap() && (workletsOut?.map || compilerOut?.map || workletPreparation?.map) ? { ...babelOptions, sourceMaps: true } : babelOptions;\n babelOut = await transformBabel(id, curCode, babelOptsWithMap);\n if (shouldSourceMap() && babelOut?.map) {\n const priorMaps = [\n workletPreparation?.map,\n compilerOut?.map,\n workletsOut?.map\n ].filter(Boolean);\n if (priorMaps.length > 0) {\n const remapping = (await import(\"@jridgewell/remapping\")).default;\n babelOut.map = remapping(\n [babelOut.map, ...priorMaps.slice().reverse()],\n () => null\n );\n }\n }\n }\n const babelTime = Date.now() - startTime;\n if (babelOut?.code) {\n perfStats.babel.totalTransforms++;\n perfStats.babel.totalTime += babelTime;\n perfStats.babel.byEnvironment[environment].transforms++;\n perfStats.babel.byEnvironment[environment].time += babelTime;\n if (hasCompilerPlugin && (babelOut.code.includes(\"react/compiler-runtime\") || babelOut.code.includes(\"react-compiler-runtime\"))) {\n debug?.(` \\u{1FA84} [compiler] ${relative(process.cwd(), id)} (${babelTime}ms)`);\n logCompiled(false, babelTime);\n }\n debug?.(`[babel] ${id}`);\n const outCode = `${babelOut.code}\n// vxrn-did-babel`;\n const result = { code: outCode, map: babelOut.map };\n setCachedTransform(id, code, result, environment, userBabelConfigPath);\n return result;\n }\n }\n }\n return null;\n}\nasync function createVXRNCompilerPlugin(optionsIn) {\n const reactVersion = await (async () => {\n const path = resolvePath(\"react/package.json\");\n const json = JSON.parse(await readFile(path, \"utf-8\"));\n return json.version;\n })();\n const envNames = {\n ios: true,\n android: true,\n client: true,\n ssr: true\n };\n function getEnvName(name) {\n if (name === \"worker\") return \"ssr\";\n if (!envNames[name]) throw new Error(`Invalid env: ${name}`);\n return name;\n }\n const reactForRNVersion = reactVersion.split(\".\")[0];\n const cssTransformCache = /* @__PURE__ */ new Map();\n const rolldownPath = resolvePath(\"rolldown\");\n const rolldownNodeMods = rolldownPath.slice(\n 0,\n rolldownPath.indexOf(sep + \"node_modules\")\n );\n let config;\n return [\n {\n name: \"one:compiler-resolve-refresh-runtime\",\n apply: \"serve\",\n enforce: \"pre\",\n // Run before Vite default resolve to avoid syscalls\n resolveId: (id) => id === runtimePublicPath || id === `${runtimePublicPath}.map` ? id : void 0,\n load: (id) => {\n const basePath = dirname(fileURLToPath(import.meta.url));\n if (id === runtimePublicPath) {\n return readFileSync(join(basePath, \"refresh-runtime.mjs\"), \"utf-8\").replace(\n /\\/\\/# sourceMappingURL=.*/,\n \"\"\n );\n }\n if (id === `${runtimePublicPath}.map`) {\n return JSON.stringify({ version: 3, sources: [], mappings: \"\" });\n }\n return void 0;\n }\n },\n {\n name: `one:compiler-css-to-js`,\n // only .css files can match, so let rust reject everything else\n transform: {\n filter: { id: /\\.css$/ },\n handler(codeIn, id) {\n const environment = getEnvName(this.environment.name);\n if (configuration.enableNativeCSS && (environment === \"ios\" || environment === \"android\")) {\n {\n const data = JSON.stringify(\n cssToReactNativeRuntime(codeIn, { inlineRem: 16 })\n );\n const code = `require(\"nativewind/dist/index.js\").require().StyleSheet.registerCompiled(${data})`;\n const newId = `${id}.js`;\n const cssId = newId.replace(rolldownNodeMods + sep, \"\");\n cssTransformCache.set(cssId, code);\n return {\n code,\n id: newId,\n map: null\n };\n }\n }\n }\n },\n generateBundle(_, bundle) {\n const environment = getEnvName(this.environment.name);\n if (configuration.enableNativeCSS && (environment === \"ios\" || environment === \"android\")) {\n const rootJSName = Object.keys(bundle).find((i) => {\n const chunk = bundle[i];\n return chunk.type == \"chunk\" && chunk.fileName.match(/.[cm]?js(?:\\?.+)?$/) != null;\n });\n if (!rootJSName) {\n throw new Error(`Can't find root js, internal one error`);\n }\n const rootJS = bundle[rootJSName];\n const cssAssets = Object.keys(bundle).filter(\n (i) => bundle[i].fileName.endsWith(\".css.js\")\n );\n for (const name of cssAssets) {\n delete bundle[name];\n const jsCSS = cssTransformCache.get(name);\n rootJS.code = `\n${jsCSS}\n${rootJS.code}\n`;\n }\n }\n }\n },\n {\n name: \"one:compiler\",\n enforce: \"pre\",\n config: () => {\n const nodeModulesFilter = /node_modules[/\\\\].*\\.(tsx?|jsx?|mjs|cjs)$/;\n const createEnvironmentConfig = (environment) => {\n if (!perfStats.optimizeDeps.byEnvironment[environment]) {\n perfStats.optimizeDeps.byEnvironment[environment] = {\n filesChecked: 0,\n filesTransformed: 0,\n startTime: Date.now()\n };\n }\n return {\n optimizeDeps: {\n rolldownOptions: {\n plugins: [\n {\n name: `transform-before-optimize-deps-${environment}`,\n async transform(code, id) {\n if (!nodeModulesFilter.test(id)) {\n return null;\n }\n perfStats.optimizeDeps.byEnvironment[environment].filesChecked++;\n const production = process.env.NODE_ENV === \"production\" || process.env.NODE_ENV === \"test\";\n debug?.(`[rolldown optimizeDeps] ${id}`);\n const result = await performBabelTransform({\n id,\n code,\n projectRoot: config.root,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n });\n if (!result) {\n return null;\n }\n perfStats.optimizeDeps.byEnvironment[environment].filesTransformed++;\n return {\n code: result.code,\n map: result.map\n };\n },\n buildEnd() {\n if (process.env.DEBUG_COMPILER_PERF) {\n const stats = perfStats.optimizeDeps.byEnvironment[environment];\n const elapsed = Date.now() - stats.startTime;\n console.info(\n `[optimizeDeps ${environment}] Done: ${stats.filesChecked} files checked, ${stats.filesTransformed} transformed (${elapsed}ms)`\n );\n }\n const allDone = Object.keys(perfStats.optimizeDeps.byEnvironment).length >= 2;\n if (allDone) {\n logCacheStats();\n logPerfSummary();\n }\n }\n }\n ]\n }\n },\n define: {\n \"process.env.NATIVEWIND_OS\": JSON.stringify(\n environment === \"ios\" || environment === \"android\" ? \"native\" : \"web\"\n )\n }\n };\n };\n return {\n environments: {\n ios: createEnvironmentConfig(\"ios\"),\n android: createEnvironmentConfig(\"android\"),\n client: createEnvironmentConfig(\"client\"),\n ssr: createEnvironmentConfig(\"ssr\")\n }\n };\n },\n configResolved(resolvedConfig) {\n config = resolvedConfig;\n },\n async transform(codeIn, _id) {\n let code = codeIn;\n const environment = getEnvName(this.environment.name);\n const isNative = environment === \"ios\" || environment === \"android\";\n const production = config.command === \"build\" || process.env.NODE_ENV === \"production\" || JSON.parse(\n this.environment.config?.define?.[\"process.env.NODE_ENV\"] || '\"\"'\n ) === \"production\";\n const isEntry = _id.includes(\"one-entry-native\");\n if (isEntry) {\n if (isNative && !production) {\n code = `import '@vxrn/vite-native-client'\n${code}`;\n }\n if (isNative && configuration.enableNativewind) {\n code = `import * as x from 'nativewind'\n${code}`;\n }\n return code;\n }\n const id = _id.split(\"?\")[0];\n const extension = extname(id);\n if (extension === \".css\" || !validParsers.has(extension)) {\n return;\n }\n if (id.includes(`virtual:`)) {\n return;\n }\n if (codeIn.endsWith(`// vxrn-did-babel`)) {\n debug?.(`[skip babel] ${id}`);\n return;\n }\n return performBabelTransform({\n id,\n code: codeIn,\n projectRoot: config.root,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n });\n }\n },\n // wraps client-side TSX/JSX with React Refresh preamble + import.meta.hot.accept\n // runs after vite:oxc (no enforce:'pre') so it sees the already-transformed code\n {\n name: \"one:react-refresh-web\",\n apply: \"serve\",\n transform(code, _id) {\n if (this.environment.name !== \"client\") return;\n if (code.includes(runtimePublicPath)) return;\n const id = _id.split(\"?\")[0];\n if (id.includes(\"node_modules\")) return;\n if (id.includes(\"virtual:\")) return;\n if (id === runtimePublicPath) return;\n const ext = extname(id);\n if (ext !== \".tsx\" && ext !== \".jsx\") return;\n const hasRefreshCalls = /\\$RefreshReg\\$\\(/.test(code);\n let out = `import * as RefreshRuntime from \"${runtimePublicPath}\";\n\n`;\n if (hasRefreshCalls) {\n out += `if (!window.$RefreshReg$) throw new Error(\"React refresh preamble was not loaded. Something is wrong.\");\nconst prevRefreshReg = window.$RefreshReg$;\nconst prevRefreshSig = window.$RefreshSig$;\nwindow.$RefreshReg$ = RefreshRuntime.getRefreshReg(\"${id}\");\nwindow.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;\n\n`;\n }\n out += code;\n if (hasRefreshCalls) {\n out += `\n\nwindow.$RefreshReg$ = prevRefreshReg;\nwindow.$RefreshSig$ = prevRefreshSig;\n`;\n }\n out += `\nRefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {\n RefreshRuntime.registerExportsForReactRefresh(\"${id}\", currentExports);\n import.meta.hot.accept((nextExports) => {\n if (!nextExports) return;\n const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate(\"${id}\", currentExports, nextExports);\n if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);\n });\n});\n`;\n return { code: out, map: null };\n }\n }\n ];\n}\nexport {\n JS_GLOBALS,\n clearTransformCache,\n createVXRNCompilerPlugin,\n getClosureVariables\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["esm/index.js"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, extname, join, relative, sep } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { resolvePath } from \"@vxrn/utils\";\nimport { cssToReactNativeRuntime } from \"react-native-css-interop/css-to-rn/index.js\";\nimport { configuration, isNativeWorkletsEnabled } from \"./configure\";\nimport { debug, runtimePublicPath, validParsers } from \"./constants\";\nimport {\n getBabelOptions,\n transformBabel,\n transformOxcReactCompiler\n} from \"./transformBabel\";\nimport { shouldSourceMap } from \"./transformSWC\";\nimport {\n prepareWorkletsForReactCompiler,\n shouldTransformWorklets,\n transformWorklets\n} from \"./transformWorklets\";\nimport { getCachedTransform, logCacheStats, setCachedTransform } from \"./cache\";\nexport * from \"./configure\";\nexport * from \"./transformBabel\";\nexport * from \"./transformSWC\";\nexport * from \"./transformWorklets\";\nexport * from \"./reactNativeCodegen\";\nexport * from \"./transformHermesLoops\";\nexport * from \"./transformHermesAsync\";\nimport { clearTransformCache } from \"./cache\";\nimport { JS_GLOBALS } from \"./worklets/globals\";\nimport { getClosureVariables } from \"./worklets/scope\";\nconst perfStats = {\n babel: {\n totalCalls: 0,\n totalTransforms: 0,\n totalTime: 0,\n byEnvironment: {}\n },\n optimizeDeps: {\n byEnvironment: {}\n }\n};\nfunction logPerfSummary() {\n if (!process.env.DEBUG_COMPILER_PERF) {\n return;\n }\n console.info(\"\\n\\u{1F4CA} [Compiler Performance Summary]\");\n console.info(\n `Babel: ${perfStats.babel.totalTransforms} transforms / ${perfStats.babel.totalCalls} calls (${(perfStats.babel.totalTransforms / Math.max(perfStats.babel.totalCalls, 1) * 100).toFixed(1)}% transform rate)`\n );\n console.info(`Babel total time: ${perfStats.babel.totalTime}ms`);\n for (const [env, stats] of Object.entries(perfStats.babel.byEnvironment)) {\n if (stats.transforms > 0) {\n console.info(\n ` ${env}: ${stats.transforms} transforms, ${stats.time}ms (${(stats.time / stats.transforms).toFixed(1)}ms avg)`\n );\n }\n }\n for (const [env, stats] of Object.entries(perfStats.optimizeDeps.byEnvironment)) {\n const elapsed = Date.now() - stats.startTime;\n console.info(\n `optimizeDeps ${env}: checked ${stats.filesChecked} files, transformed ${stats.filesTransformed} (${elapsed}ms)`\n );\n }\n}\nconst compilerLog = {\n compiled: 0,\n cached: 0,\n time: 0,\n // typed loose because the dom lib types setTimeout as number, but node gives\n // us a Timeout we need to unref so the debounce never holds the process open\n timer: null\n};\nfunction logCompiled(cached, ms) {\n if (cached) {\n compilerLog.cached++;\n } else {\n compilerLog.compiled++;\n compilerLog.time += ms;\n }\n if (compilerLog.timer) clearTimeout(compilerLog.timer);\n compilerLog.timer = setTimeout(() => {\n const total = compilerLog.compiled + compilerLog.cached;\n const detail = compilerLog.compiled ? `${compilerLog.compiled} compiled in ${compilerLog.time}ms${compilerLog.cached ? `, ${compilerLog.cached} cached` : \"\"}` : `all cached`;\n console.info(` \\u{1FA84} [compiler] ${total} file${total === 1 ? \"\" : \"s\"} (${detail})`);\n compilerLog.compiled = 0;\n compilerLog.cached = 0;\n compilerLog.time = 0;\n compilerLog.timer = null;\n }, 500);\n compilerLog.timer.unref?.();\n}\nasync function performBabelTransform({\n id,\n code,\n projectRoot,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n}) {\n perfStats.babel.totalCalls++;\n if (!perfStats.babel.byEnvironment[environment]) {\n perfStats.babel.byEnvironment[environment] = { calls: 0, transforms: 0, time: 0 };\n }\n perfStats.babel.byEnvironment[environment].calls++;\n const transformProps = {\n id,\n code,\n projectRoot,\n development: !production,\n environment,\n reactForRNVersion\n };\n const userTransform = optionsIn?.transform?.(transformProps);\n if (userTransform === false) {\n return null;\n }\n if (userTransform !== \"swc\" && userTransform !== \"oxc\") {\n const babelOptions = getBabelOptions({\n ...transformProps,\n userSetting: userTransform\n });\n if (babelOptions) {\n const hasCompilerPlugin = babelOptions.plugins?.some(\n (x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\"\n );\n const userBabelConfigPath = typeof babelOptions.configFile === \"string\" ? babelOptions.configFile : null;\n const cached = getCachedTransform(id, code, environment, userBabelConfigPath);\n if (cached) {\n perfStats.babel.byEnvironment[environment].transforms++;\n if (hasCompilerPlugin && (cached.code.includes(\"react/compiler-runtime\") || cached.code.includes(\"react-compiler-runtime\"))) {\n debug?.(` \\u{1FA84} [compiler] ${relative(process.cwd(), id)} (cached)`);\n logCompiled(true, 0);\n }\n debug?.(`[babel/cached] ${id}`);\n return cached;\n }\n const isWorkletPlugin = (entry) => {\n if (!entry) return false;\n const name = typeof entry === \"string\" ? entry : Array.isArray(entry) ? entry[0] : null;\n return typeof name === \"string\" && (name.includes(\"react-native-worklets\") || name.includes(\"react-native-reanimated\"));\n };\n const workletEntry = babelOptions.plugins?.find(isWorkletPlugin);\n const workletPluginOptions = Array.isArray(workletEntry) ? workletEntry[1] : void 0;\n const useWorklets = isNativeWorkletsEnabled() && (Boolean(workletEntry) || shouldTransformWorklets({ id, code }));\n let curCode = code;\n let workletPreparation = null;\n let compilerOut = null;\n const compilerPluginIndex = babelOptions.plugins?.findIndex(\n (x) => Array.isArray(x) && x[0] === \"babel-plugin-react-compiler\"\n ) ?? -1;\n if (compilerPluginIndex !== -1) {\n const compilerPluginConfig = babelOptions.plugins[compilerPluginIndex];\n const compilerPluginOptions = compilerPluginConfig[1] || {};\n const useBabelCompiler = compilerPluginOptions.compiler === \"babel\" || process.env.ONE_REACT_COMPILER === \"babel\" || process.env.VXRN_REACT_COMPILER === \"babel\";\n if (!useBabelCompiler) {\n if (useWorklets) {\n workletPreparation = prepareWorkletsForReactCompiler(\n id,\n curCode,\n shouldSourceMap()\n );\n if (workletPreparation) curCode = workletPreparation.code;\n }\n compilerOut = await transformOxcReactCompiler(\n id,\n curCode,\n compilerPluginOptions,\n shouldSourceMap()\n );\n if (compilerOut) curCode = compilerOut.code;\n babelOptions.plugins.splice(compilerPluginIndex, 1);\n }\n }\n let workletsOut = null;\n if (useWorklets) {\n workletsOut = await transformWorklets(id, curCode, shouldSourceMap(), {\n projectRoot,\n ...workletPluginOptions\n });\n babelOptions.plugins = babelOptions.plugins?.filter(\n (entry) => !isWorkletPlugin(entry)\n );\n curCode = workletsOut.code;\n }\n const startTime = Date.now();\n let babelOut = null;\n if (babelOptions.plugins?.length === 0 && !babelOptions.configFile && !babelOptions.babelrc) {\n let finalMap = void 0;\n if (shouldSourceMap()) {\n const intermediateMaps = [\n workletPreparation?.map,\n compilerOut?.map,\n workletsOut?.map\n ].filter(Boolean);\n if (intermediateMaps.length === 1) {\n finalMap = intermediateMaps[0];\n } else if (intermediateMaps.length > 1) {\n const remapping = (await import(\"@jridgewell/remapping\")).default;\n finalMap = remapping(intermediateMaps.slice().reverse(), () => null);\n }\n }\n babelOut = { code: curCode, map: finalMap };\n } else {\n const babelOptsWithMap = shouldSourceMap() && (workletsOut?.map || compilerOut?.map || workletPreparation?.map) ? { ...babelOptions, sourceMaps: true } : babelOptions;\n babelOut = await transformBabel(id, curCode, babelOptsWithMap);\n if (shouldSourceMap() && babelOut?.map) {\n const priorMaps = [\n workletPreparation?.map,\n compilerOut?.map,\n workletsOut?.map\n ].filter(Boolean);\n if (priorMaps.length > 0) {\n const remapping = (await import(\"@jridgewell/remapping\")).default;\n babelOut.map = remapping(\n [babelOut.map, ...priorMaps.slice().reverse()],\n () => null\n );\n }\n }\n }\n const babelTime = Date.now() - startTime;\n if (babelOut?.code) {\n perfStats.babel.totalTransforms++;\n perfStats.babel.totalTime += babelTime;\n perfStats.babel.byEnvironment[environment].transforms++;\n perfStats.babel.byEnvironment[environment].time += babelTime;\n if (hasCompilerPlugin && (babelOut.code.includes(\"react/compiler-runtime\") || babelOut.code.includes(\"react-compiler-runtime\"))) {\n debug?.(` \\u{1FA84} [compiler] ${relative(process.cwd(), id)} (${babelTime}ms)`);\n logCompiled(false, babelTime);\n }\n debug?.(`[babel] ${id}`);\n const outCode = `${babelOut.code}\n// vxrn-did-babel`;\n const result = { code: outCode, map: babelOut.map };\n setCachedTransform(id, code, result, environment, userBabelConfigPath);\n return result;\n }\n }\n }\n return null;\n}\nasync function createVXRNCompilerPlugin(optionsIn) {\n const reactVersion = await (async () => {\n const path = resolvePath(\"react/package.json\");\n const json = JSON.parse(await readFile(path, \"utf-8\"));\n return json.version;\n })();\n const envNames = {\n ios: true,\n android: true,\n client: true,\n ssr: true\n };\n function getEnvName(name) {\n if (name === \"worker\") return \"ssr\";\n if (!envNames[name]) throw new Error(`Invalid env: ${name}`);\n return name;\n }\n const reactForRNVersion = reactVersion.split(\".\")[0];\n const cssTransformCache = /* @__PURE__ */ new Map();\n const rolldownPath = resolvePath(\"rolldown\");\n const rolldownNodeMods = rolldownPath.slice(\n 0,\n rolldownPath.indexOf(sep + \"node_modules\")\n );\n let config;\n return [\n {\n name: \"one:compiler-resolve-refresh-runtime\",\n apply: \"serve\",\n enforce: \"pre\",\n // Run before Vite default resolve to avoid syscalls\n resolveId: (id) => id === runtimePublicPath || id === `${runtimePublicPath}.map` ? id : void 0,\n load: (id) => {\n const basePath = dirname(fileURLToPath(import.meta.url));\n if (id === runtimePublicPath) {\n return readFileSync(join(basePath, \"refresh-runtime.mjs\"), \"utf-8\").replace(\n /\\/\\/# sourceMappingURL=.*/,\n \"\"\n );\n }\n if (id === `${runtimePublicPath}.map`) {\n return JSON.stringify({ version: 3, sources: [], mappings: \"\" });\n }\n return void 0;\n }\n },\n {\n name: `one:compiler-css-to-js`,\n // only .css files can match, so let rust reject everything else\n transform: {\n filter: { id: /\\.css$/ },\n handler(codeIn, id) {\n const environment = getEnvName(this.environment.name);\n if (configuration.enableNativeCSS && (environment === \"ios\" || environment === \"android\")) {\n {\n const data = JSON.stringify(\n cssToReactNativeRuntime(codeIn, { inlineRem: 16 })\n );\n const code = `require(\"nativewind/dist/index.js\").require().StyleSheet.registerCompiled(${data})`;\n const newId = `${id}.js`;\n const cssId = newId.replace(rolldownNodeMods + sep, \"\");\n cssTransformCache.set(cssId, code);\n return {\n code,\n id: newId,\n map: null\n };\n }\n }\n }\n },\n generateBundle(_, bundle) {\n const environment = getEnvName(this.environment.name);\n if (configuration.enableNativeCSS && (environment === \"ios\" || environment === \"android\")) {\n const rootJSName = Object.keys(bundle).find((i) => {\n const chunk = bundle[i];\n return chunk.type == \"chunk\" && chunk.fileName.match(/.[cm]?js(?:\\?.+)?$/) != null;\n });\n if (!rootJSName) {\n throw new Error(`Can't find root js, internal one error`);\n }\n const rootJS = bundle[rootJSName];\n const cssAssets = Object.keys(bundle).filter(\n (i) => bundle[i].fileName.endsWith(\".css.js\")\n );\n for (const name of cssAssets) {\n delete bundle[name];\n const jsCSS = cssTransformCache.get(name);\n rootJS.code = `\n${jsCSS}\n${rootJS.code}\n`;\n }\n }\n }\n },\n {\n name: \"one:compiler\",\n enforce: \"pre\",\n config: () => {\n const nodeModulesFilter = /node_modules[/\\\\].*\\.(tsx?|jsx?|mjs|cjs)$/;\n const createEnvironmentConfig = (environment) => {\n if (!perfStats.optimizeDeps.byEnvironment[environment]) {\n perfStats.optimizeDeps.byEnvironment[environment] = {\n filesChecked: 0,\n filesTransformed: 0,\n startTime: Date.now()\n };\n }\n return {\n optimizeDeps: {\n rolldownOptions: {\n plugins: [\n {\n name: `transform-before-optimize-deps-${environment}`,\n async transform(code, id) {\n if (!nodeModulesFilter.test(id)) {\n return null;\n }\n perfStats.optimizeDeps.byEnvironment[environment].filesChecked++;\n const production = process.env.NODE_ENV === \"production\" || process.env.NODE_ENV === \"test\";\n debug?.(`[rolldown optimizeDeps] ${id}`);\n const result = await performBabelTransform({\n id,\n code,\n projectRoot: config.root,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n });\n if (!result) {\n return null;\n }\n perfStats.optimizeDeps.byEnvironment[environment].filesTransformed++;\n return {\n code: result.code,\n map: result.map\n };\n },\n buildEnd() {\n if (process.env.DEBUG_COMPILER_PERF) {\n const stats = perfStats.optimizeDeps.byEnvironment[environment];\n const elapsed = Date.now() - stats.startTime;\n console.info(\n `[optimizeDeps ${environment}] Done: ${stats.filesChecked} files checked, ${stats.filesTransformed} transformed (${elapsed}ms)`\n );\n }\n const allDone = Object.keys(perfStats.optimizeDeps.byEnvironment).length >= 2;\n if (allDone) {\n logCacheStats();\n logPerfSummary();\n }\n }\n }\n ]\n }\n },\n define: {\n \"process.env.NATIVEWIND_OS\": JSON.stringify(\n environment === \"ios\" || environment === \"android\" ? \"native\" : \"web\"\n )\n }\n };\n };\n return {\n environments: {\n ios: createEnvironmentConfig(\"ios\"),\n android: createEnvironmentConfig(\"android\"),\n client: createEnvironmentConfig(\"client\"),\n ssr: createEnvironmentConfig(\"ssr\")\n }\n };\n },\n configResolved(resolvedConfig) {\n config = resolvedConfig;\n },\n async transform(codeIn, _id) {\n let code = codeIn;\n const environment = getEnvName(this.environment.name);\n const isNative = environment === \"ios\" || environment === \"android\";\n const production = config.command === \"build\" || process.env.NODE_ENV === \"production\" || JSON.parse(\n this.environment.config?.define?.[\"process.env.NODE_ENV\"] || '\"\"'\n ) === \"production\";\n const isEntry = _id.includes(\"one-entry-native\");\n if (isEntry) {\n if (isNative && !production) {\n code = `import '@vxrn/vite-native-client'\n${code}`;\n }\n if (isNative && configuration.enableNativewind) {\n code = `import * as x from 'nativewind'\n${code}`;\n }\n return code;\n }\n const id = _id.split(\"?\")[0];\n const extension = extname(id);\n if (extension === \".css\" || !validParsers.has(extension)) {\n return;\n }\n if (id.includes(`virtual:`)) {\n return;\n }\n if (codeIn.endsWith(`// vxrn-did-babel`)) {\n debug?.(`[skip babel] ${id}`);\n return;\n }\n return performBabelTransform({\n id,\n code: codeIn,\n projectRoot: config.root,\n environment,\n production,\n reactForRNVersion,\n optionsIn\n });\n }\n },\n // wraps client-side TSX/JSX with React Refresh preamble + import.meta.hot.accept\n // runs after vite:oxc (no enforce:'pre') so it sees the already-transformed code\n {\n name: \"one:react-refresh-web\",\n apply: \"serve\",\n transform(code, _id) {\n if (this.environment.name !== \"client\") return;\n if (code.includes(runtimePublicPath)) return;\n if (/[?&](?:worker|sharedworker|raw|url)\\b/.test(_id)) return;\n const id = _id.split(\"?\")[0];\n if (id.includes(\"node_modules\")) return;\n if (id.includes(\"virtual:\")) return;\n if (id === runtimePublicPath) return;\n const ext = extname(id);\n if (ext !== \".tsx\" && ext !== \".jsx\") return;\n const hasRefreshCalls = /\\$RefreshReg\\$\\(/.test(code);\n let out = `import * as RefreshRuntime from \"${runtimePublicPath}\";\n\n`;\n if (hasRefreshCalls) {\n out += `if (!window.$RefreshReg$) throw new Error(\"React refresh preamble was not loaded. Something is wrong.\");\nconst prevRefreshReg = window.$RefreshReg$;\nconst prevRefreshSig = window.$RefreshSig$;\nwindow.$RefreshReg$ = RefreshRuntime.getRefreshReg(\"${id}\");\nwindow.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;\n\n`;\n }\n out += code;\n if (hasRefreshCalls) {\n out += `\n\nwindow.$RefreshReg$ = prevRefreshReg;\nwindow.$RefreshSig$ = prevRefreshSig;\n`;\n }\n out += `\nRefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {\n RefreshRuntime.registerExportsForReactRefresh(\"${id}\", currentExports);\n import.meta.hot.accept((nextExports) => {\n if (!nextExports) return;\n const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate(\"${id}\", currentExports, nextExports);\n if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);\n });\n});\n`;\n return { code: out, map: null };\n }\n }\n ];\n}\nexport {\n JS_GLOBALS,\n clearTransformCache,\n createVXRNCompilerPlugin,\n getClosureVariables\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAM,YAAY;CAChB,OAAO;EACL,YAAY;EACZ,iBAAiB;EACjB,WAAW;EACX,eAAe,CAAC;CAClB;CACA,cAAc,EACZ,eAAe,CAAC,EAClB;AACF;AACA,SAAS,iBAAiB;CACxB,IAAI,CAAC,QAAQ,IAAI,qBAAqB;EACpC;CACF;CACA,QAAQ,KAAK,qCAA4C;CACzD,QAAQ,KACN,UAAU,UAAU,MAAM,gBAAgB,gBAAgB,UAAU,MAAM,WAAW,WAAW,UAAU,MAAM,kBAAkB,KAAK,IAAI,UAAU,MAAM,YAAY,CAAC,IAAI,IAAG,CAAE,QAAQ,CAAC,EAAE,kBAC9L;CACA,QAAQ,KAAK,qBAAqB,UAAU,MAAM,UAAU,GAAG;CAC/D,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,UAAU,MAAM,aAAa,GAAG;EACxE,IAAI,MAAM,aAAa,GAAG;GACxB,QAAQ,KACN,KAAK,IAAI,IAAI,MAAM,WAAW,eAAe,MAAM,KAAK,OAAO,MAAM,OAAO,MAAM,WAAU,CAAE,QAAQ,CAAC,EAAE,QAC3G;EACF;CACF;CACA,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,UAAU,aAAa,aAAa,GAAG;EAC/E,MAAM,UAAU,KAAK,IAAI,IAAI,MAAM;EACnC,QAAQ,KACN,gBAAgB,IAAI,YAAY,MAAM,aAAa,sBAAsB,MAAM,iBAAiB,IAAI,QAAQ,IAC9G;CACF;AACF;AACA,MAAM,cAAc;CAClB,UAAU;CACV,QAAQ;CACR,MAAM;CAGN,OAAO;AACT;AACA,SAAS,YAAY,QAAQ,IAAI;CAC/B,IAAI,QAAQ;EACV,YAAY;CACd,OAAO;EACL,YAAY;EACZ,YAAY,QAAQ;CACtB;CACA,IAAI,YAAY,OAAO,aAAa,YAAY,KAAK;CACrD,YAAY,QAAQ,iBAAiB;EACnC,MAAM,QAAQ,YAAY,WAAW,YAAY;EACjD,MAAM,SAAS,YAAY,WAAW,GAAG,YAAY,SAAS,eAAe,YAAY,KAAK,IAAI,YAAY,SAAS,KAAK,YAAY,OAAO,WAAW,OAAO;EACjK,QAAQ,KAAK,yBAAyB,MAAM,OAAO,UAAU,IAAI,KAAK,IAAI,IAAI,OAAO,EAAE;EACvF,YAAY,WAAW;EACvB,YAAY,SAAS;EACrB,YAAY,OAAO;EACnB,YAAY,QAAQ;CACtB,GAAG,GAAG;CACN,YAAY,MAAM,QAAQ;AAC5B;AACA,eAAe,sBAAsB,EACnC,IACA,MACA,aACA,aACA,YACA,mBACA,aACC;CACD,UAAU,MAAM;CAChB,IAAI,CAAC,UAAU,MAAM,cAAc,cAAc;EAC/C,UAAU,MAAM,cAAc,eAAe;GAAE,OAAO;GAAG,YAAY;GAAG,MAAM;EAAE;CAClF;CACA,UAAU,MAAM,cAAc,YAAY,CAAC;CAC3C,MAAM,iBAAiB;EACrB;EACA;EACA;EACA,aAAa,CAAC;EACd;EACA;CACF;CACA,MAAM,gBAAgB,WAAW,YAAY,cAAc;CAC3D,IAAI,kBAAkB,OAAO;EAC3B,OAAO;CACT;CACA,IAAI,kBAAkB,SAAS,kBAAkB,OAAO;EACtD,MAAM,eAAe,gBAAgB;GACnC,GAAG;GACH,aAAa;EACf,CAAC;EACD,IAAI,cAAc;GAChB,MAAM,oBAAoB,aAAa,SAAS,MAC7C,MAAM,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,6BACtC;GACA,MAAM,sBAAsB,OAAO,aAAa,eAAe,WAAW,aAAa,aAAa;GACpG,MAAM,SAAS,mBAAmB,IAAI,MAAM,aAAa,mBAAmB;GAC5E,IAAI,QAAQ;IACV,UAAU,MAAM,cAAc,YAAY,CAAC;IAC3C,IAAI,sBAAsB,OAAO,KAAK,SAAS,wBAAwB,KAAK,OAAO,KAAK,SAAS,wBAAwB,IAAI;KAC3H,QAAQ,yBAAyB,SAAS,QAAQ,IAAI,GAAG,EAAE,EAAE,UAAU;KACvE,YAAY,MAAM,CAAC;IACrB;IACA,QAAQ,kBAAkB,IAAI;IAC9B,OAAO;GACT;GACA,MAAM,mBAAmB,UAAU;IACjC,IAAI,CAAC,OAAO,OAAO;IACnB,MAAM,OAAO,OAAO,UAAU,WAAW,QAAQ,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK;IACnF,OAAO,OAAO,SAAS,aAAa,KAAK,SAAS,uBAAuB,KAAK,KAAK,SAAS,yBAAyB;GACvH;GACA,MAAM,eAAe,aAAa,SAAS,KAAK,eAAe;GAC/D,MAAM,uBAAuB,MAAM,QAAQ,YAAY,IAAI,aAAa,KAAK,KAAK;GAClF,MAAM,cAAc,wBAAwB,MAAM,QAAQ,YAAY,KAAK,wBAAwB;IAAE;IAAI;GAAK,CAAC;GAC/G,IAAI,UAAU;GACd,IAAI,qBAAqB;GACzB,IAAI,cAAc;GAClB,MAAM,sBAAsB,aAAa,SAAS,WAC/C,MAAM,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,6BACtC,KAAK,CAAC;GACN,IAAI,wBAAwB,CAAC,GAAG;IAC9B,MAAM,uBAAuB,aAAa,QAAQ;IAClD,MAAM,wBAAwB,qBAAqB,MAAM,CAAC;IAC1D,MAAM,mBAAmB,sBAAsB,aAAa,WAAW,QAAQ,IAAI,uBAAuB,WAAW,QAAQ,IAAI,wBAAwB;IACzJ,IAAI,CAAC,kBAAkB;KACrB,IAAI,aAAa;MACf,qBAAqB,gCACnB,IACA,SACA,gBAAgB,CAClB;MACA,IAAI,oBAAoB,UAAU,mBAAmB;KACvD;KACA,cAAc,MAAM,0BAClB,IACA,SACA,uBACA,gBAAgB,CAClB;KACA,IAAI,aAAa,UAAU,YAAY;KACvC,aAAa,QAAQ,OAAO,qBAAqB,CAAC;IACpD;GACF;GACA,IAAI,cAAc;GAClB,IAAI,aAAa;IACf,cAAc,MAAM,kBAAkB,IAAI,SAAS,gBAAgB,GAAG;KACpE;KACA,GAAG;IACL,CAAC;IACD,aAAa,UAAU,aAAa,SAAS,QAC1C,UAAU,CAAC,gBAAgB,KAAK,CACnC;IACA,UAAU,YAAY;GACxB;GACA,MAAM,YAAY,KAAK,IAAI;GAC3B,IAAI,WAAW;GACf,IAAI,aAAa,SAAS,WAAW,KAAK,CAAC,aAAa,cAAc,CAAC,aAAa,SAAS;IAC3F,IAAI,WAAW,KAAK;IACpB,IAAI,gBAAgB,GAAG;KACrB,MAAM,mBAAmB;MACvB,oBAAoB;MACpB,aAAa;MACb,aAAa;KACf,CAAC,CAAC,OAAO,OAAO;KAChB,IAAI,iBAAiB,WAAW,GAAG;MACjC,WAAW,iBAAiB;KAC9B,OAAO,IAAI,iBAAiB,SAAS,GAAG;MACtC,MAAM,aAAa,MAAM,OAAO,yBAAwB,CAAE;MAC1D,WAAW,UAAU,iBAAiB,MAAM,CAAC,CAAC,QAAQ,SAAS,IAAI;KACrE;IACF;IACA,WAAW;KAAE,MAAM;KAAS,KAAK;IAAS;GAC5C,OAAO;IACL,MAAM,mBAAmB,gBAAgB,MAAM,aAAa,OAAO,aAAa,OAAO,oBAAoB,OAAO;KAAE,GAAG;KAAc,YAAY;IAAK,IAAI;IAC1J,WAAW,MAAM,eAAe,IAAI,SAAS,gBAAgB;IAC7D,IAAI,gBAAgB,KAAK,UAAU,KAAK;KACtC,MAAM,YAAY;MAChB,oBAAoB;MACpB,aAAa;MACb,aAAa;KACf,CAAC,CAAC,OAAO,OAAO;KAChB,IAAI,UAAU,SAAS,GAAG;MACxB,MAAM,aAAa,MAAM,OAAO,yBAAwB,CAAE;MAC1D,SAAS,MAAM,UACb,CAAC,SAAS,KAAK,GAAG,UAAU,MAAM,CAAC,CAAC,QAAQ,CAAC,SACvC,IACR;KACF;IACF;GACF;GACA,MAAM,YAAY,KAAK,IAAI,IAAI;GAC/B,IAAI,UAAU,MAAM;IAClB,UAAU,MAAM;IAChB,UAAU,MAAM,aAAa;IAC7B,UAAU,MAAM,cAAc,YAAY,CAAC;IAC3C,UAAU,MAAM,cAAc,YAAY,CAAC,QAAQ;IACnD,IAAI,sBAAsB,SAAS,KAAK,SAAS,wBAAwB,KAAK,SAAS,KAAK,SAAS,wBAAwB,IAAI;KAC/H,QAAQ,yBAAyB,SAAS,QAAQ,IAAI,GAAG,EAAE,EAAE,IAAI,UAAU,IAAI;KAC/E,YAAY,OAAO,SAAS;IAC9B;IACA,QAAQ,WAAW,IAAI;IACvB,MAAM,UAAU,GAAG,SAAS,KAAK;;IAEjC,MAAM,SAAS;KAAE,MAAM;KAAS,KAAK,SAAS;IAAI;IAClD,mBAAmB,IAAI,MAAM,QAAQ,aAAa,mBAAmB;IACrE,OAAO;GACT;EACF;CACF;CACA,OAAO;AACT;AACA,eAAe,yBAAyB,WAAW;CACjD,MAAM,eAAe,OAAO,YAAY;EACtC,MAAM,OAAO,YAAY,oBAAoB;EAC7C,MAAM,OAAO,KAAK,MAAM,MAAM,SAAS,MAAM,OAAO,CAAC;EACrD,OAAO,KAAK;CACd,EAAC,CAAE;CACH,MAAM,WAAW;EACf,KAAK;EACL,SAAS;EACT,QAAQ;EACR,KAAK;CACP;CACA,SAAS,WAAW,MAAM;EACxB,IAAI,SAAS,UAAU,OAAO;EAC9B,IAAI,CAAC,SAAS,OAAO,MAAM,IAAI,MAAM,gBAAgB,MAAM;EAC3D,OAAO;CACT;CACA,MAAM,oBAAoB,aAAa,MAAM,GAAG,CAAC,CAAC;CAClD,MAAM,oCAAoC,IAAI,IAAI;CAClD,MAAM,eAAe,YAAY,UAAU;CAC3C,MAAM,mBAAmB,aAAa,MACpC,GACA,aAAa,QAAQ,MAAM,cAAc,CAC3C;CACA,IAAI;CACJ,OAAO;EACL;GACE,MAAM;GACN,OAAO;GACP,SAAS;GAET,YAAY,OAAO,OAAO,qBAAqB,OAAO,GAAG,kBAAkB,QAAQ,KAAK,KAAK;GAC7F,OAAO,OAAO;IACZ,MAAM,WAAW,QAAQ,cAAc,YAAY,GAAG,CAAC;IACvD,IAAI,OAAO,mBAAmB;KAC5B,OAAO,aAAa,KAAK,UAAU,qBAAqB,GAAG,OAAO,CAAC,CAAC,QAClE,6BACA,EACF;IACF;IACA,IAAI,OAAO,GAAG,kBAAkB,OAAO;KACrC,OAAO,KAAK,UAAU;MAAE,SAAS;MAAG,SAAS,CAAC;MAAG,UAAU;KAAG,CAAC;IACjE;IACA,OAAO,KAAK;GACd;EACF;EACA;GACE,MAAM;GAEN,WAAW;IACT,QAAQ,EAAE,IAAI,SAAS;IACvB,QAAQ,QAAQ,IAAI;KAClB,MAAM,cAAc,WAAW,KAAK,YAAY,IAAI;KACpD,IAAI,cAAc,oBAAoB,gBAAgB,SAAS,gBAAgB,YAAY;MACzF;OACE,MAAM,OAAO,KAAK,UAChB,wBAAwB,QAAQ,EAAE,WAAW,GAAG,CAAC,CACnD;OACA,MAAM,OAAO,6EAA6E,KAAK;OAC/F,MAAM,QAAQ,GAAG,GAAG;OACpB,MAAM,QAAQ,MAAM,QAAQ,mBAAmB,KAAK,EAAE;OACtD,kBAAkB,IAAI,OAAO,IAAI;OACjC,OAAO;QACL;QACA,IAAI;QACJ,KAAK;OACP;MACF;KACF;IACF;GACF;GACA,eAAe,GAAG,QAAQ;IACxB,MAAM,cAAc,WAAW,KAAK,YAAY,IAAI;IACpD,IAAI,cAAc,oBAAoB,gBAAgB,SAAS,gBAAgB,YAAY;KACzF,MAAM,aAAa,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM;MACjD,MAAM,QAAQ,OAAO;MACrB,OAAO,MAAM,QAAQ,WAAW,MAAM,SAAS,MAAM,oBAAoB,KAAK;KAChF,CAAC;KACD,IAAI,CAAC,YAAY;MACf,MAAM,IAAI,MAAM,wCAAwC;KAC1D;KACA,MAAM,SAAS,OAAO;KACtB,MAAM,YAAY,OAAO,KAAK,MAAM,CAAC,CAAC,QACnC,MAAM,OAAO,EAAE,CAAC,SAAS,SAAS,SAAS,CAC9C;KACA,KAAK,MAAM,QAAQ,WAAW;MAC5B,OAAO,OAAO;MACd,MAAM,QAAQ,kBAAkB,IAAI,IAAI;MACxC,OAAO,OAAO;EACxB,MAAM;EACN,OAAO,KAAK;;KAEJ;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,SAAS;GACT,cAAc;IACZ,MAAM,oBAAoB;IAC1B,MAAM,2BAA2B,gBAAgB;KAC/C,IAAI,CAAC,UAAU,aAAa,cAAc,cAAc;MACtD,UAAU,aAAa,cAAc,eAAe;OAClD,cAAc;OACd,kBAAkB;OAClB,WAAW,KAAK,IAAI;MACtB;KACF;KACA,OAAO;MACL,cAAc,EACZ,iBAAiB,EACf,SAAS,CACP;OACE,MAAM,kCAAkC;OACxC,MAAM,UAAU,MAAM,IAAI;QACxB,IAAI,CAAC,kBAAkB,KAAK,EAAE,GAAG;SAC/B,OAAO;QACT;QACA,UAAU,aAAa,cAAc,YAAY,CAAC;QAClD,MAAM,aAAa,QAAQ,IAAI,aAAa,gBAAgB,QAAQ,IAAI,aAAa;QACrF,QAAQ,2BAA2B,IAAI;QACvC,MAAM,SAAS,MAAM,sBAAsB;SACzC;SACA;SACA,aAAa,OAAO;SACpB;SACA;SACA;SACA;QACF,CAAC;QACD,IAAI,CAAC,QAAQ;SACX,OAAO;QACT;QACA,UAAU,aAAa,cAAc,YAAY,CAAC;QAClD,OAAO;SACL,MAAM,OAAO;SACb,KAAK,OAAO;QACd;OACF;OACA,WAAW;QACT,IAAI,QAAQ,IAAI,qBAAqB;SACnC,MAAM,QAAQ,UAAU,aAAa,cAAc;SACnD,MAAM,UAAU,KAAK,IAAI,IAAI,MAAM;SACnC,QAAQ,KACN,iBAAiB,YAAY,UAAU,MAAM,aAAa,kBAAkB,MAAM,iBAAiB,gBAAgB,QAAQ,IAC7H;QACF;QACA,MAAM,UAAU,OAAO,KAAK,UAAU,aAAa,aAAa,CAAC,CAAC,UAAU;QAC5E,IAAI,SAAS;SACX,cAAc;SACd,eAAe;QACjB;OACF;MACF,CACF,EACF,EACF;MACA,QAAQ,EACN,6BAA6B,KAAK,UAChC,gBAAgB,SAAS,gBAAgB,YAAY,WAAW,KAClE,EACF;KACF;IACF;IACA,OAAO,EACL,cAAc;KACZ,KAAK,wBAAwB,KAAK;KAClC,SAAS,wBAAwB,SAAS;KAC1C,QAAQ,wBAAwB,QAAQ;KACxC,KAAK,wBAAwB,KAAK;IACpC,EACF;GACF;GACA,eAAe,gBAAgB;IAC7B,SAAS;GACX;GACA,MAAM,UAAU,QAAQ,KAAK;IAC3B,IAAI,OAAO;IACX,MAAM,cAAc,WAAW,KAAK,YAAY,IAAI;IACpD,MAAM,WAAW,gBAAgB,SAAS,gBAAgB;IAC1D,MAAM,aAAa,OAAO,YAAY,WAAW,QAAQ,IAAI,aAAa,gBAAgB,KAAK,MAC7F,KAAK,YAAY,QAAQ,SAAS,2BAA2B,MAC/D,MAAM;IACN,MAAM,UAAU,IAAI,SAAS,kBAAkB;IAC/C,IAAI,SAAS;KACX,IAAI,YAAY,CAAC,YAAY;MAC3B,OAAO;EACjB;KACQ;KACA,IAAI,YAAY,cAAc,kBAAkB;MAC9C,OAAO;EACjB;KACQ;KACA,OAAO;IACT;IACA,MAAM,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC;IAC1B,MAAM,YAAY,QAAQ,EAAE;IAC5B,IAAI,cAAc,UAAU,CAAC,aAAa,IAAI,SAAS,GAAG;KACxD;IACF;IACA,IAAI,GAAG,SAAS,UAAU,GAAG;KAC3B;IACF;IACA,IAAI,OAAO,SAAS,mBAAmB,GAAG;KACxC,QAAQ,gBAAgB,IAAI;KAC5B;IACF;IACA,OAAO,sBAAsB;KAC3B;KACA,MAAM;KACN,aAAa,OAAO;KACpB;KACA;KACA;KACA;IACF,CAAC;GACH;EACF;EAGA;GACE,MAAM;GACN,OAAO;GACP,UAAU,MAAM,KAAK;IACnB,IAAI,KAAK,YAAY,SAAS,UAAU;IACxC,IAAI,KAAK,SAAS,iBAAiB,GAAG;IACtC,IAAI,wCAAwC,KAAK,GAAG,GAAG;IACvD,MAAM,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,GAAG,SAAS,cAAc,GAAG;IACjC,IAAI,GAAG,SAAS,UAAU,GAAG;IAC7B,IAAI,OAAO,mBAAmB;IAC9B,MAAM,MAAM,QAAQ,EAAE;IACtB,IAAI,QAAQ,UAAU,QAAQ,QAAQ;IACtC,MAAM,kBAAkB,mBAAmB,KAAK,IAAI;IACpD,IAAI,MAAM,oCAAoC,kBAAkB;;;IAGhE,IAAI,iBAAiB;KACnB,OAAO;;;sDAGqC,GAAG;;;;IAIjD;IACA,OAAO;IACP,IAAI,iBAAiB;KACnB,OAAO;;;;;IAKT;IACA,OAAO;;mDAEoC,GAAG;;;wFAGkC,GAAG;;;;;IAKnF,OAAO;KAAE,MAAM;KAAK,KAAK;IAAK;GAChC;EACF;CACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vxrn/compiler",
3
- "version": "2.0.0-beta.101.1",
3
+ "version": "2.0.0-beta.103.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -36,8 +36,8 @@
36
36
  "@babel/plugin-transform-react-jsx": "^7.27.1",
37
37
  "@babel/plugin-transform-regenerator": "^7.28.4",
38
38
  "@jridgewell/remapping": "^2.3.0",
39
- "@vxrn/utils": "2.0.0-beta.101.1",
40
- "@vxrn/vite-native-client": "2.0.0-beta.101.1",
39
+ "@vxrn/utils": "2.0.0-beta.103.1",
40
+ "@vxrn/vite-native-client": "2.0.0-beta.103.1",
41
41
  "babel-plugin-react-compiler": "^1.0.0",
42
42
  "babel-plugin-syntax-hermes-parser": "^0.36.1",
43
43
  "babel-plugin-transform-flow-enums": "^0.0.2",
package/src/index.ts CHANGED
@@ -643,6 +643,11 @@ ${rootJS.code}
643
643
  transform(code, _id) {
644
644
  if (this.environment.name !== 'client') return
645
645
  if (code.includes(runtimePublicPath)) return // already wrapped
646
+ // vite's special queries (the same pattern as its SPECIAL_QUERY_RE) make
647
+ // a string, url, or worker wrapper module, never the component source.
648
+ // wrapping one imports the refresh runtime, which writes to `window` and
649
+ // so throws when a worker imports `Foo.tsx?raw`.
650
+ if (/[?&](?:worker|sharedworker|raw|url)\b/.test(_id)) return
646
651
 
647
652
  const id = _id.split('?')[0]
648
653
  if (id.includes('node_modules')) return
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,MAAM,CAAA;AAcpE,OAAO,KAAK,EAAkC,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtE,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AA0S3C,wBAAsB,wBAAwB,CAC5C,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC,CA6VzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,MAAM,CAAA;AAcpE,OAAO,KAAK,EAAkC,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtE,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AA0S3C,wBAAsB,wBAAwB,CAC5C,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC,CAkWzB"}