vxrn 1.12.8 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/dist/config/getAdditionalViteConfig.mjs +1 -4
  2. package/dist/config/getAdditionalViteConfig.mjs.map +1 -1
  3. package/dist/config/getAdditionalViteConfig.native.js +1 -4
  4. package/dist/config/getAdditionalViteConfig.native.js.map +1 -1
  5. package/dist/config/getReactNativePlugins.mjs +1 -5
  6. package/dist/config/getReactNativePlugins.mjs.map +1 -1
  7. package/dist/config/getReactNativePlugins.native.js +1 -5
  8. package/dist/config/getReactNativePlugins.native.js.map +1 -1
  9. package/dist/exports/build.mjs +5 -0
  10. package/dist/exports/build.mjs.map +1 -1
  11. package/dist/exports/build.native.js +5 -0
  12. package/dist/exports/build.native.js.map +1 -1
  13. package/dist/exports/createServer.mjs +30 -25
  14. package/dist/exports/createServer.mjs.map +1 -1
  15. package/dist/exports/createServer.native.js +6 -3
  16. package/dist/exports/createServer.native.js.map +1 -1
  17. package/dist/exports/prebuild.mjs +25 -1
  18. package/dist/exports/prebuild.mjs.map +1 -1
  19. package/dist/exports/prebuild.native.js +30 -1
  20. package/dist/exports/prebuild.native.js.map +1 -1
  21. package/dist/exports/serve.mjs +2 -2
  22. package/dist/exports/serve.mjs.map +1 -1
  23. package/dist/exports/serve.native.js +2 -2
  24. package/dist/exports/serve.native.js.map +1 -1
  25. package/dist/exports/serveStaticAssets.mjs +43 -11
  26. package/dist/exports/serveStaticAssets.mjs.map +1 -1
  27. package/dist/exports/serveStaticAssets.native.js +69 -6
  28. package/dist/exports/serveStaticAssets.native.js.map +1 -1
  29. package/dist/index.js +1 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/index.mjs +1 -2
  32. package/dist/index.mjs.map +1 -1
  33. package/dist/index.native.js +1 -2
  34. package/dist/index.native.js.map +1 -1
  35. package/dist/patches/builtInDepPatches.mjs +14 -0
  36. package/dist/patches/builtInDepPatches.mjs.map +1 -1
  37. package/dist/patches/builtInDepPatches.native.js +14 -0
  38. package/dist/patches/builtInDepPatches.native.js.map +1 -1
  39. package/dist/plugins/clientInjectPlugin.mjs +2 -62
  40. package/dist/plugins/clientInjectPlugin.mjs.map +1 -1
  41. package/dist/plugins/clientInjectPlugin.native.js +2 -75
  42. package/dist/plugins/clientInjectPlugin.native.js.map +1 -1
  43. package/dist/plugins/reactNativeDevAssetPlugin.mjs +1 -3
  44. package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
  45. package/dist/plugins/reactNativeDevAssetPlugin.native.js +1 -3
  46. package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
  47. package/dist/plugins/reactNativeDevServer.mjs +55 -77
  48. package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
  49. package/dist/plugins/reactNativeDevServer.native.js +73 -84
  50. package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
  51. package/dist/plugins/serverExtensions.test.mjs +12 -6
  52. package/dist/plugins/serverExtensions.test.mjs.map +1 -1
  53. package/dist/plugins/serverExtensions.test.native.js +12 -6
  54. package/dist/plugins/serverExtensions.test.native.js.map +1 -1
  55. package/dist/rn-commands/bundle/buildBundle.mjs +11 -35
  56. package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
  57. package/dist/rn-commands/bundle/buildBundle.native.js +9 -36
  58. package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
  59. package/dist/runtime/hmr-client.mjs +125 -0
  60. package/dist/runtime/hmr-client.mjs.map +1 -0
  61. package/dist/runtime/hmr-client.native.js +197 -0
  62. package/dist/runtime/hmr-client.native.js.map +1 -0
  63. package/dist/runtime/hmr-runtime.mjs +162 -0
  64. package/dist/runtime/hmr-runtime.mjs.map +1 -0
  65. package/dist/runtime/hmr-runtime.native.js +348 -0
  66. package/dist/runtime/hmr-runtime.native.js.map +1 -0
  67. package/dist/runtime/hmr-types.mjs +2 -0
  68. package/dist/runtime/hmr-types.mjs.map +1 -0
  69. package/dist/runtime/hmr-types.native.js +2 -0
  70. package/dist/runtime/hmr-types.native.js.map +1 -0
  71. package/dist/runtime/native-prelude.mjs +97 -0
  72. package/dist/runtime/native-prelude.mjs.map +1 -0
  73. package/dist/runtime/native-prelude.native.js +97 -0
  74. package/dist/runtime/native-prelude.native.js.map +1 -0
  75. package/dist/runtime/react-refresh-utils.mjs +19 -0
  76. package/dist/runtime/react-refresh-utils.mjs.map +1 -0
  77. package/dist/runtime/react-refresh-utils.native.js +24 -0
  78. package/dist/runtime/react-refresh-utils.native.js.map +1 -0
  79. package/dist/utils/createNativeDevEngine.mjs +661 -0
  80. package/dist/utils/createNativeDevEngine.mjs.map +1 -0
  81. package/dist/utils/createNativeDevEngine.native.js +702 -0
  82. package/dist/utils/createNativeDevEngine.native.js.map +1 -0
  83. package/dist/utils/patches.mjs +6 -2
  84. package/dist/utils/patches.mjs.map +1 -1
  85. package/dist/utils/patches.native.js +6 -2
  86. package/dist/utils/patches.native.js.map +1 -1
  87. package/dist/utils/scanDepsToOptimize.mjs +4 -3
  88. package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
  89. package/dist/utils/scanDepsToOptimize.native.js +4 -3
  90. package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
  91. package/expo-plugin.cjs +122 -0
  92. package/package.json +15 -19
  93. package/src/config/getAdditionalViteConfig.ts +1 -3
  94. package/src/config/getReactNativePlugins.ts +0 -6
  95. package/src/exports/build.ts +5 -0
  96. package/src/exports/createServer.ts +7 -2
  97. package/src/exports/prebuild.ts +45 -0
  98. package/src/exports/serve.ts +2 -1
  99. package/src/exports/serveStaticAssets.ts +67 -4
  100. package/src/index.ts +0 -2
  101. package/src/patches/builtInDepPatches.ts +29 -0
  102. package/src/plugins/clientInjectPlugin.ts +2 -109
  103. package/src/plugins/reactNativeDevAssetPlugin.ts +0 -21
  104. package/src/plugins/reactNativeDevServer.ts +57 -84
  105. package/src/plugins/serverExtensions.test.ts +6 -8
  106. package/src/rn-commands/bundle/buildBundle.ts +9 -62
  107. package/src/runtime/hmr-client.ts +215 -0
  108. package/src/runtime/hmr-runtime.ts +276 -0
  109. package/src/runtime/hmr-types.ts +84 -0
  110. package/src/runtime/native-prelude.ts +110 -0
  111. package/src/runtime/react-refresh-utils.ts +36 -0
  112. package/src/types.ts +22 -4
  113. package/src/utils/createNativeDevEngine.ts +942 -0
  114. package/src/utils/patches.ts +36 -18
  115. package/src/utils/scanDepsToOptimize.ts +2 -3
  116. package/types/config/getAdditionalViteConfig.d.ts.map +1 -1
  117. package/types/config/getOptionsFilled.d.ts +2 -18
  118. package/types/config/getOptionsFilled.d.ts.map +1 -1
  119. package/types/config/getReactNativePlugins.d.ts.map +1 -1
  120. package/types/exports/build.d.ts +1 -9
  121. package/types/exports/build.d.ts.map +1 -1
  122. package/types/exports/createServer.d.ts.map +1 -1
  123. package/types/exports/prebuild.d.ts.map +1 -1
  124. package/types/exports/serve.d.ts +2 -1
  125. package/types/exports/serve.d.ts.map +1 -1
  126. package/types/exports/serveStaticAssets.d.ts +12 -1
  127. package/types/exports/serveStaticAssets.d.ts.map +1 -1
  128. package/types/index.d.ts +0 -1
  129. package/types/index.d.ts.map +1 -1
  130. package/types/patches/builtInDepPatches.d.ts.map +1 -1
  131. package/types/plugins/clientInjectPlugin.d.ts +1 -7
  132. package/types/plugins/clientInjectPlugin.d.ts.map +1 -1
  133. package/types/plugins/reactNativeDevAssetPlugin.d.ts.map +1 -1
  134. package/types/plugins/reactNativeDevServer.d.ts.map +1 -1
  135. package/types/rn-commands/bundle/buildBundle.d.ts.map +1 -1
  136. package/types/runtime/hmr-client.d.ts +40 -0
  137. package/types/runtime/hmr-client.d.ts.map +1 -0
  138. package/types/runtime/hmr-runtime.d.ts +69 -0
  139. package/types/runtime/hmr-runtime.d.ts.map +1 -0
  140. package/types/runtime/hmr-types.d.ts +76 -0
  141. package/types/runtime/hmr-types.d.ts.map +1 -0
  142. package/types/runtime/native-prelude.d.ts +11 -0
  143. package/types/runtime/native-prelude.d.ts.map +1 -0
  144. package/types/runtime/react-refresh-utils.d.ts +3 -0
  145. package/types/runtime/react-refresh-utils.d.ts.map +1 -0
  146. package/types/types.d.ts +15 -1
  147. package/types/types.d.ts.map +1 -1
  148. package/types/utils/createNativeDevEngine.d.ts +42 -0
  149. package/types/utils/createNativeDevEngine.d.ts.map +1 -0
  150. package/types/utils/patches.d.ts.map +1 -1
  151. package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
  152. package/dist/config/getReactNativeBuildConfig.mjs +0 -200
  153. package/dist/config/getReactNativeBuildConfig.mjs.map +0 -1
  154. package/dist/config/getReactNativeBuildConfig.native.js +0 -204
  155. package/dist/config/getReactNativeBuildConfig.native.js.map +0 -1
  156. package/dist/plugins/reactNativeHMRPlugin.mjs +0 -120
  157. package/dist/plugins/reactNativeHMRPlugin.mjs.map +0 -1
  158. package/dist/plugins/reactNativeHMRPlugin.native.js +0 -151
  159. package/dist/plugins/reactNativeHMRPlugin.native.js.map +0 -1
  160. package/dist/utils/filterPluginsForNative.mjs +0 -27
  161. package/dist/utils/filterPluginsForNative.mjs.map +0 -1
  162. package/dist/utils/filterPluginsForNative.native.js +0 -33
  163. package/dist/utils/filterPluginsForNative.native.js.map +0 -1
  164. package/dist/utils/getReactNativeBundle.mjs +0 -104
  165. package/dist/utils/getReactNativeBundle.mjs.map +0 -1
  166. package/dist/utils/getReactNativeBundle.native.js +0 -135
  167. package/dist/utils/getReactNativeBundle.native.js.map +0 -1
  168. package/dist/utils/hotUpdateCache.mjs +0 -3
  169. package/dist/utils/hotUpdateCache.mjs.map +0 -1
  170. package/dist/utils/hotUpdateCache.native.js +0 -3
  171. package/dist/utils/hotUpdateCache.native.js.map +0 -1
  172. package/dist/utils/isBuildingNativeBundle.mjs +0 -6
  173. package/dist/utils/isBuildingNativeBundle.mjs.map +0 -1
  174. package/dist/utils/isBuildingNativeBundle.native.js +0 -7
  175. package/dist/utils/isBuildingNativeBundle.native.js.map +0 -1
  176. package/dist/utils/swapPrebuiltReactModules.mjs +0 -168
  177. package/dist/utils/swapPrebuiltReactModules.mjs.map +0 -1
  178. package/dist/utils/swapPrebuiltReactModules.native.js +0 -181
  179. package/dist/utils/swapPrebuiltReactModules.native.js.map +0 -1
  180. package/dist/worker.mjs +0 -55
  181. package/dist/worker.mjs.map +0 -1
  182. package/dist/worker.native.js +0 -55
  183. package/dist/worker.native.js.map +0 -1
  184. package/react-native-template.js +0 -375
  185. package/src/config/getReactNativeBuildConfig.ts +0 -349
  186. package/src/plugins/reactNativeHMRPlugin.ts +0 -237
  187. package/src/utils/filterPluginsForNative.ts +0 -55
  188. package/src/utils/getReactNativeBundle.ts +0 -243
  189. package/src/utils/hotUpdateCache.ts +0 -1
  190. package/src/utils/isBuildingNativeBundle.ts +0 -7
  191. package/src/utils/swapPrebuiltReactModules.ts +0 -341
  192. package/src/worker.ts +0 -90
  193. package/types/config/getReactNativeBuildConfig.d.ts +0 -72
  194. package/types/config/getReactNativeBuildConfig.d.ts.map +0 -1
  195. package/types/plugins/reactNativeHMRPlugin.d.ts +0 -10
  196. package/types/plugins/reactNativeHMRPlugin.d.ts.map +0 -1
  197. package/types/utils/filterPluginsForNative.d.ts +0 -8
  198. package/types/utils/filterPluginsForNative.d.ts.map +0 -1
  199. package/types/utils/getReactNativeBundle.d.ts +0 -12
  200. package/types/utils/getReactNativeBundle.d.ts.map +0 -1
  201. package/types/utils/hotUpdateCache.d.ts +0 -2
  202. package/types/utils/hotUpdateCache.d.ts.map +0 -1
  203. package/types/utils/isBuildingNativeBundle.d.ts +0 -3
  204. package/types/utils/isBuildingNativeBundle.d.ts.map +0 -1
  205. package/types/utils/swapPrebuiltReactModules.d.ts +0 -9
  206. package/types/utils/swapPrebuiltReactModules.d.ts.map +0 -1
  207. package/types/worker.d.ts +0 -13
  208. package/types/worker.d.ts.map +0 -1
@@ -0,0 +1,661 @@
1
+ import { writeFileSync } from "node:fs";
2
+ import { basename, dirname, extname, join, relative } from "node:path";
3
+ import { DEFAULT_ASSET_EXTS } from "../constants/defaults.mjs";
4
+ import { getNativePrelude } from "../runtime/native-prelude.mjs";
5
+ const FLOW_FILE_PATTERN = /node_modules[\\/](?:react-native|@react-native)[\\/].*\.js$/;
6
+ function getResolveExtensions(platform) {
7
+ const platformExts = platform === "ios" ? [".ios.tsx", ".ios.ts", ".ios.jsx", ".ios.js"] : [".android.tsx", ".android.ts", ".android.jsx", ".android.js"],
8
+ nativeExts = [".native.tsx", ".native.ts", ".native.jsx", ".native.js"],
9
+ defaultExts = [".tsx", ".ts", ".jsx", ".js", ".mjs", ".cjs", ".json"];
10
+ return [...platformExts, ...nativeExts, ...defaultExts];
11
+ }
12
+ function getNativeResolveConfig(platform) {
13
+ return {
14
+ extensions: getResolveExtensions(platform),
15
+ conditionNames: ["react-native", "import", "require", "default"],
16
+ mainFields: ["react-native", "module", "main"]
17
+ };
18
+ }
19
+ function getNativeTransformConfig(dev) {
20
+ return {
21
+ jsx: {
22
+ // use 'classic' mode (babel plugin-transform-react-jsx)
23
+ // 'automatic' has files where jsxDEV import fails to resolve
24
+ runtime: "classic"
25
+ },
26
+ define: {
27
+ "process.env.NODE_ENV": dev ? '"development"' : '"production"',
28
+ "process.env.VXRN_REACT_19": "false",
29
+ __DEV__: dev ? "true" : "false"
30
+ },
31
+ // auto-inject React import for classic JSX (React.createElement)
32
+ inject: {
33
+ React: "react"
34
+ }
35
+ };
36
+ }
37
+ function getNativePlugins(root, platform, viteImportGlobPlugin, dev) {
38
+ return [
39
+ // stub CSS imports — native doesn't support CSS and rolldown removed CSS bundling
40
+ cssStubPlugin(),
41
+ // handle import.meta.glob (used by One's route system)
42
+ viteImportGlobPlugin({
43
+ root
44
+ }),
45
+ // strip Flow types from react-native and @react-native packages
46
+ flowStripPlugin(),
47
+ // handle asset imports (.png, .jpg, .ttf, etc.)
48
+ assetPlugin({
49
+ root,
50
+ platform
51
+ }),
52
+ // @vxrn/compiler babel transforms: reanimated worklets, async generators,
53
+ // react-native codegen, react compiler — same pipeline as metro
54
+ vxrnCompilerPlugin(platform, dev),
55
+ // hermes compat: transform class properties and private fields
56
+ hermesCompatSWCPlugin(dev),
57
+ // downgrade polyfill "not configurable" errors to warnings (hermes v1)
58
+ polyfillErrorDowngradePlugin(),
59
+ // strip DevSettings in prod (dev-only native module)
60
+ stripDevSettingsPlugin(dev)];
61
+ }
62
+ function getNativeOutputOptions(prelude) {
63
+ return {
64
+ format: "esm",
65
+ sourcemap: !0,
66
+ intro: prelude,
67
+ codeSplitting: !1,
68
+ strictExecutionOrder: !0
69
+ };
70
+ }
71
+ function postProcessNativeBundle(code) {
72
+ return code = code.replace(/^\s*export\s*\{[^}]*\}\s*;?\s*$/gm, ""), code = code.replace(/^if \(import\.meta\.hot\).*$/gm, ""), code;
73
+ }
74
+ async function downlevelClassFieldsInBundle(code) {
75
+ const startMarker = "//#region \\0rolldown/runtime.js",
76
+ endMarker = "//#endregion",
77
+ startIdx = code.indexOf(startMarker);
78
+ if (startIdx === -1) return code;
79
+ const endIdx = code.indexOf(endMarker, startIdx);
80
+ if (endIdx === -1) return code;
81
+ const runtimeEnd = endIdx + endMarker.length,
82
+ runtimeSection = code.slice(startIdx, runtimeEnd);
83
+ try {
84
+ const result = await (await import("@swc/core")).transform(runtimeSection, {
85
+ filename: "rolldown-runtime.js",
86
+ configFile: !1,
87
+ swcrc: !1,
88
+ sourceMaps: !1,
89
+ inputSourceMap: !1,
90
+ isModule: !1,
91
+ env: {
92
+ targets: {
93
+ node: 9999
94
+ },
95
+ include: ["transform-class-properties", "transform-class-static-block", "transform-private-methods", "transform-private-property-in-object"]
96
+ },
97
+ jsc: {
98
+ parser: {
99
+ syntax: "ecmascript"
100
+ },
101
+ transform: {
102
+ react: {
103
+ runtime: "preserve"
104
+ }
105
+ },
106
+ externalHelpers: !1,
107
+ assumptions: {
108
+ setPublicClassFields: !0,
109
+ privateFieldsAsProperties: !0
110
+ }
111
+ }
112
+ });
113
+ return code.slice(0, startIdx) + result.code + code.slice(runtimeEnd);
114
+ } catch (err) {
115
+ return console.warn("[vxrn] downlevelClassFieldsInBundle failed, returning original:", err), code;
116
+ }
117
+ }
118
+ async function createNativeDevEngine(options) {
119
+ const {
120
+ root,
121
+ port,
122
+ host = "localhost",
123
+ platform,
124
+ serverUrl,
125
+ plugins: userPlugins = [],
126
+ onHmrUpdate
127
+ } = options,
128
+ {
129
+ dev,
130
+ viteImportGlobPlugin
131
+ } = await import("rolldown/experimental"),
132
+ hmrRuntimeSource = getHmrRuntimeSource(),
133
+ prelude = getNativePrelude({
134
+ dev: !0,
135
+ platform,
136
+ serverUrl: serverUrl || `http://${host}:${port}`
137
+ }),
138
+ entryFile = generateNativeEntry(root);
139
+ let currentBundle = null,
140
+ bundleResolve = null,
141
+ bundlePromise = null;
142
+ const resolvedHost = host === "0.0.0.0" ? "localhost" : host,
143
+ inputOptions = {
144
+ input: entryFile,
145
+ cwd: root,
146
+ platform: "neutral",
147
+ resolve: getNativeResolveConfig(platform),
148
+ transform: getNativeTransformConfig(!0),
149
+ experimental: {
150
+ devMode: {
151
+ implement: hmrRuntimeSource,
152
+ host,
153
+ port
154
+ },
155
+ incrementalBuild: !0
156
+ },
157
+ treeshake: !1,
158
+ // some react-native ecosystem packages import symbols that don't exist in
159
+ // the declared entry (e.g. @react-navigation/elements imports NavigationProvider
160
+ // from @react-navigation/native which doesn't export it). metro silently shims
161
+ // these — rolldown needs an explicit opt-in.
162
+ shimMissingExports: !0,
163
+ moduleTypes: {
164
+ ".js": "jsx"
165
+ },
166
+ plugins: [...getNativePlugins(root, platform, viteImportGlobPlugin, !0),
167
+ // add import.meta.hot.accept() to user files for HMR boundaries
168
+ // rolldown compiles import.meta.hot -> createModuleHotContext at build time
169
+ nativeReactRefreshPlugin(), ...userPlugins]
170
+ },
171
+ outputOptions = {
172
+ ...getNativeOutputOptions(prelude),
173
+ // connect HMR WebSocket using RN's WebSocket module (not the global)
174
+ outro: `
175
+ try {
176
+ var __WS = (init_WebSocket(), __toCommonJS(WebSocket_exports)).default;
177
+ var __hmrUrl = 'ws://${resolvedHost}:${port}/hot';
178
+ var __hmrWS = new __WS(__hmrUrl);
179
+ __hmrWS.onmessage = function(event) {
180
+ try {
181
+ var msg = JSON.parse(event.data);
182
+ var g = typeof global !== 'undefined' ? global : globalThis;
183
+ if (msg.type === 'hmr:update' && msg.code) {
184
+ if (g.globalEvalWithSourceUrl) g.globalEvalWithSourceUrl(msg.code);
185
+ else (0, eval)(msg.code);
186
+ setTimeout(function() {
187
+ try { if (g.__ReactRefresh) g.__ReactRefresh.performReactRefresh(); } catch(e) {}
188
+ }, 50);
189
+ } else if (msg.type === 'hmr:reload') {
190
+ var ds = g.__turboModuleProxy ? g.__turboModuleProxy('DevSettings') : null;
191
+ if (ds && ds.reload) ds.reload();
192
+ }
193
+ } catch(e) { console.error('[vxrn] HMR eval error:', e); }
194
+ };
195
+ __hmrWS.onopen = function() {
196
+ if (typeof __rolldown_runtime__ !== 'undefined' && __rolldown_runtime__.setup) {
197
+ __rolldown_runtime__.setup(__hmrWS, __hmrUrl.replace('ws://', 'http://'));
198
+ }
199
+ };
200
+ __hmrWS.onerror = function(e) { console.warn('[vxrn] HMR connection error:', e.message || e); };
201
+ } catch(e) {}
202
+ `
203
+ },
204
+ engine = await dev(inputOptions, outputOptions, {
205
+ onOutput: async result => {
206
+ if (result instanceof Error) {
207
+ console.error("[vxrn] native bundle error:", result.message);
208
+ return;
209
+ }
210
+ const chunk = result.output.find(o => o.type === "chunk" && o.isEntry);
211
+ if (chunk && "code" in chunk) {
212
+ let code = postProcessNativeBundle(chunk.code);
213
+ code = await downlevelClassFieldsInBundle(code);
214
+ const hmrClientStub = 'registerCallableModule("HMRClient",{setup:function(){},enable:function(){},disable:function(){},registerBundle:function(){},log:function(){}})';
215
+ code = code.replace(/registerCallableModule\s*\(\s*["']AppRegistry["']/, match => hmrClientStub + "," + match), currentBundle = {
216
+ code,
217
+ map: chunk.map?.toString()
218
+ }, console.info(`[vxrn] native bundle ready (${Math.round(chunk.code.length / 1024)}KB)`), bundleResolve && (bundleResolve(currentBundle), bundleResolve = null, bundlePromise = null);
219
+ }
220
+ },
221
+ onHmrUpdates: async result => {
222
+ if (result instanceof Error) {
223
+ console.error("[vxrn] HMR error:", result.message), onHmrUpdate?.({
224
+ type: "hmr:error"
225
+ });
226
+ return;
227
+ }
228
+ const updates = result.updates || [];
229
+ for (const item of updates) {
230
+ const update = item.update || item;
231
+ update.type === "Patch" && update.code ? onHmrUpdate?.({
232
+ type: "hmr:update",
233
+ code: update.code
234
+ }) : update.type === "FullReload" && onHmrUpdate?.({
235
+ type: "hmr:reload"
236
+ });
237
+ }
238
+ updates.length === 0 && onHmrUpdate?.({
239
+ type: "hmr:reload"
240
+ });
241
+ },
242
+ rebuildStrategy: "auto",
243
+ watch: {}
244
+ });
245
+ return await engine.run(), {
246
+ engine,
247
+ async getBundle() {
248
+ if (currentBundle) return currentBundle;
249
+ if (!bundlePromise) {
250
+ let timeoutId;
251
+ bundlePromise = new Promise((resolve, reject) => {
252
+ bundleResolve = value => {
253
+ clearTimeout(timeoutId), resolve(value);
254
+ }, timeoutId = setTimeout(() => reject(new Error("[vxrn] bundle build timed out after 120s")), 12e4);
255
+ });
256
+ }
257
+ return await engine.ensureLatestBuildOutput(), currentBundle || bundlePromise;
258
+ },
259
+ async close() {
260
+ await engine.close();
261
+ }
262
+ };
263
+ }
264
+ async function buildNativeBundle(options) {
265
+ const {
266
+ root,
267
+ platform,
268
+ dev = !1,
269
+ serverUrl,
270
+ plugins: userPlugins = []
271
+ } = options,
272
+ {
273
+ build
274
+ } = await import("rolldown"),
275
+ {
276
+ viteImportGlobPlugin
277
+ } = await import("rolldown/experimental"),
278
+ prelude = getNativePrelude({
279
+ dev,
280
+ platform,
281
+ serverUrl
282
+ }),
283
+ entryFile = generateNativeEntry(root, {
284
+ dev
285
+ }),
286
+ chunk = (await build({
287
+ input: entryFile,
288
+ cwd: root,
289
+ platform: "neutral",
290
+ resolve: getNativeResolveConfig(platform),
291
+ transform: getNativeTransformConfig(dev),
292
+ treeshake: !dev,
293
+ shimMissingExports: !0,
294
+ moduleTypes: {
295
+ ".js": "jsx"
296
+ },
297
+ plugins: [...getNativePlugins(root, platform, viteImportGlobPlugin, dev), ...userPlugins],
298
+ output: getNativeOutputOptions(prelude)
299
+ })).output.find(o => o.type === "chunk" && o.isEntry);
300
+ if (!chunk || !("code" in chunk)) throw new Error("[vxrn] production build produced no output");
301
+ let code = postProcessNativeBundle(chunk.code);
302
+ return code = await downlevelClassFieldsInBundle(code), {
303
+ code,
304
+ map: chunk.map?.toString()
305
+ };
306
+ }
307
+ function generateNativeEntry(root, opts) {
308
+ const isDev = opts?.dev !== !1,
309
+ entryPath = join(root, ".vxrn-entry-native.tsx");
310
+ return writeFileSync(entryPath, `
311
+ // auto-generated native entry for rolldown
312
+ ${isDev ? `
313
+ // react-refresh/runtime MUST initialize before React loads
314
+ import RefreshRuntime from 'react-refresh/runtime';
315
+ RefreshRuntime.injectIntoGlobalHook(globalThis);
316
+ globalThis.__ReactRefresh = RefreshRuntime;
317
+ globalThis.$RefreshReg$ = function(type, id) {
318
+ RefreshRuntime.register(type, id);
319
+ };
320
+ globalThis.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
321
+ ` : ""}
322
+ import { createApp } from 'one';
323
+
324
+ var _routes = import.meta.glob(['./app/**/*.tsx', './app/**/*.ts', '!./app/**/*+api.*', '!./app/**/*.test.*', '!./app/**/*.d.ts'], { exhaustive: true });
325
+ // fix route keys: One expects '/app/...' prefix but import.meta.glob returns './app/...'
326
+ var routes = {};
327
+ Object.keys(_routes).forEach(function(key) {
328
+ routes[key.replace(/^\\./, '')] = _routes[key];
329
+ });
330
+
331
+ createApp({
332
+ routes: routes,
333
+ routerRoot: 'app',
334
+ flags: {},
335
+ });
336
+ `), entryPath;
337
+ }
338
+ function cssStubPlugin() {
339
+ return {
340
+ name: "vxrn:css-stub",
341
+ load: {
342
+ handler(id) {
343
+ if (/\.css$/.test(id)) return {
344
+ code: "",
345
+ moduleType: "js"
346
+ };
347
+ }
348
+ }
349
+ };
350
+ }
351
+ function vxrnCompilerPlugin(platform, dev) {
352
+ let compiler = null;
353
+ return {
354
+ name: "vxrn:compiler",
355
+ async transform(code, id) {
356
+ if (/\.[cm]?[jt]sx?$/.test(id) && !(id.includes("\0") || id.includes("virtual:"))) try {
357
+ compiler || (compiler = await import("@vxrn/compiler"));
358
+ const props = {
359
+ id,
360
+ code,
361
+ development: dev,
362
+ environment: platform,
363
+ reactForRNVersion: "19"
364
+ },
365
+ babelOptions = compiler.getBabelOptions(props);
366
+ if (!babelOptions) return;
367
+ const result = await compiler.transformBabel(id, code, babelOptions);
368
+ if (result?.code) return {
369
+ code: result.code
370
+ };
371
+ } catch (err) {
372
+ dev && console.warn(`[vxrn:compiler] ${id}: ${err.message || err}`);
373
+ }
374
+ }
375
+ };
376
+ }
377
+ function flowStripPlugin() {
378
+ return {
379
+ name: "vxrn:flow-strip",
380
+ transform: {
381
+ async handler(code, id) {
382
+ if (FLOW_FILE_PATTERN.test(id)) try {
383
+ const result = await (await import("fast-flow-transform")).default({
384
+ filename: id,
385
+ source: code,
386
+ sourcemap: !0,
387
+ dialect: "flow",
388
+ format: "pretty"
389
+ });
390
+ return {
391
+ code: result.code,
392
+ map: result.map
393
+ };
394
+ } catch (err) {
395
+ console.warn(`[vxrn:flow-strip] ${id}: ${err.message}`);
396
+ }
397
+ }
398
+ }
399
+ };
400
+ }
401
+ function assetPlugin(opts) {
402
+ const assetRegex = new RegExp(`\\.(?:${DEFAULT_ASSET_EXTS.join("|")})$`);
403
+ return {
404
+ name: "vxrn:asset",
405
+ load: {
406
+ async handler(id) {
407
+ if (!assetRegex.test(id)) return;
408
+ const ext = extname(id).slice(1),
409
+ name = basename(id, `.${ext}`),
410
+ dir = dirname(id),
411
+ relativePath = relative(opts.root, id),
412
+ httpLocation = "/assets/" + dirname(relativePath),
413
+ assetData = {
414
+ __packager_asset: !0,
415
+ name,
416
+ type: ext,
417
+ scales: [1],
418
+ httpServerLocation: httpLocation,
419
+ fileSystemLocation: dir,
420
+ hash: "",
421
+ width: void 0,
422
+ height: void 0
423
+ };
424
+ if (["png", "jpg", "jpeg", "gif", "webp", "bmp"].includes(ext)) try {
425
+ const {
426
+ imageSize
427
+ } = await import("image-size"),
428
+ dims = imageSize(id);
429
+ assetData.width = dims.width, assetData.height = dims.height;
430
+ } catch {}
431
+ return {
432
+ code: `module.exports = require('react-native/Libraries/Image/AssetRegistry').registerAsset(${JSON.stringify(assetData)});`,
433
+ moduleType: "js"
434
+ };
435
+ }
436
+ }
437
+ };
438
+ }
439
+ function hermesCompatSWCPlugin(dev) {
440
+ let swc = null;
441
+ return {
442
+ name: "vxrn:hermes-compat",
443
+ async transform(code, id) {
444
+ if (!/\.[cm]?[jt]sx?$/.test(id) || id.includes("\0") || id.includes("virtual:")) return;
445
+ const hasClass = code.includes("class ") || code.includes("class{"),
446
+ hasAsync = !dev && code.includes("async ");
447
+ if (!(!hasClass && !hasAsync) && !(code.length > 5e5)) try {
448
+ swc || (swc = await import("@swc/core"));
449
+ const envIncludes = ["transform-class-properties", "transform-class-static-block", "transform-private-methods", "transform-private-property-in-object", ...(dev ? [] : ["transform-classes", "transform-async-to-generator"])];
450
+ return {
451
+ code: (await swc.transform(code, {
452
+ filename: id,
453
+ configFile: !1,
454
+ swcrc: !1,
455
+ sourceMaps: !1,
456
+ inputSourceMap: !1,
457
+ env: {
458
+ targets: {
459
+ node: 9999
460
+ },
461
+ include: envIncludes
462
+ },
463
+ jsc: {
464
+ parser: {
465
+ syntax: "typescript",
466
+ tsx: !0
467
+ },
468
+ transform: {
469
+ react: {
470
+ runtime: "preserve"
471
+ }
472
+ },
473
+ externalHelpers: !1,
474
+ assumptions: {
475
+ setPublicClassFields: !0,
476
+ privateFieldsAsProperties: !0
477
+ }
478
+ },
479
+ isModule: !id.endsWith(".cjs")
480
+ })).code
481
+ };
482
+ } catch {}
483
+ }
484
+ };
485
+ }
486
+ function polyfillErrorDowngradePlugin() {
487
+ return {
488
+ name: "vxrn:polyfill-error-downgrade",
489
+ transform(code, id) {
490
+ if (id.includes("node_modules") && code.includes('console.error("Failed to set polyfill.')) return {
491
+ code: code.replace(/console\.error\(\s*"Failed to set polyfill\.\s*"\s*\+/g, 'console.warn("Failed to set polyfill. " +')
492
+ };
493
+ }
494
+ };
495
+ }
496
+ function stripDevSettingsPlugin(dev) {
497
+ return {
498
+ name: "vxrn:strip-dev-settings",
499
+ transform(code, id) {
500
+ if (!dev && code.includes("DevSettings")) return {
501
+ code: code.replace(/getEnforcing\s*\(\s*["']DevSettings["']\s*\)/g, "patched_getEnforcing_DevSettings_will_not_work_in_production()")
502
+ };
503
+ }
504
+ };
505
+ }
506
+ function nativeReactRefreshPlugin() {
507
+ return {
508
+ name: "vxrn:react-refresh",
509
+ async transform(code, id) {
510
+ if (!id.includes("node_modules") && !id.includes(".vxrn-entry-native") && !id.startsWith("\0") && /\.[tj]sx?$/.test(id) && /[<]|function\s|=>\s*[{(]/.test(code)) try {
511
+ const babel = await import("@babel/core"),
512
+ parserPlugins = [];
513
+ id.endsWith(".tsx") ? parserPlugins.push(["@babel/plugin-syntax-typescript", {
514
+ isTSX: !0
515
+ }]) : id.endsWith(".ts") ? parserPlugins.push("@babel/plugin-syntax-typescript") : id.endsWith(".jsx") && parserPlugins.push("@babel/plugin-syntax-jsx");
516
+ const result = await babel.transformAsync(code, {
517
+ filename: id,
518
+ babelrc: !1,
519
+ configFile: !1,
520
+ compact: !1,
521
+ plugins: [...parserPlugins, "react-refresh/babel"],
522
+ sourceType: "unambiguous"
523
+ });
524
+ if (result?.code) return {
525
+ code: `
526
+ var __prevRefreshReg = globalThis.$RefreshReg$;
527
+ var __prevRefreshSig = globalThis.$RefreshSig$;
528
+ if (globalThis.__ReactRefresh) {
529
+ globalThis.$RefreshReg$ = function(type, id) {
530
+ globalThis.__ReactRefresh.register(type, "${id.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}" + " " + id);
531
+ };
532
+ globalThis.$RefreshSig$ = globalThis.__ReactRefresh.createSignatureFunctionForTransform;
533
+ }
534
+
535
+ ${result.code}
536
+
537
+ globalThis.$RefreshReg$ = __prevRefreshReg;
538
+ globalThis.$RefreshSig$ = __prevRefreshSig;
539
+ if (import.meta.hot) {
540
+ import.meta.hot.accept(function() {
541
+ if (globalThis.__ReactRefresh) {
542
+ setTimeout(function() { globalThis.__ReactRefresh.performReactRefresh(); }, 30);
543
+ }
544
+ });
545
+ }
546
+ `
547
+ };
548
+ } catch {
549
+ return {
550
+ code: code + `
551
+ if (import.meta.hot) { import.meta.hot.accept(); }
552
+ `
553
+ };
554
+ }
555
+ }
556
+ };
557
+ }
558
+ function getHmrRuntimeSource() {
559
+ return `
560
+ // vxrn HMR runtime for rolldown devMode
561
+ var BaseDevRuntime = DevRuntime;
562
+
563
+ class ReactNativeDevRuntime extends BaseDevRuntime {
564
+ constructor() {
565
+ var _shared = { _socket: null, _queue: [] };
566
+ var clientId = 'rn-' + Date.now() + '-' + Math.random().toString(36).slice(2);
567
+ super({ send: function(msg) {
568
+ var s = JSON.stringify(msg);
569
+ if (_shared._socket && _shared._socket.readyState === 1) { _shared._socket.send(s); }
570
+ else { _shared._queue.push(s); }
571
+ }}, clientId);
572
+ this._shared = _shared;
573
+ this._socket = null;
574
+ this._queue = [];
575
+ this.moduleHotContexts = {};
576
+ }
577
+
578
+ createModuleHotContext(moduleId) {
579
+ var ctx = {
580
+ acceptCallbacks: [],
581
+ accept: function(cb) {
582
+ if (cb) ctx.acceptCallbacks.push({ deps: [moduleId], fn: cb });
583
+ },
584
+ invalidate: function() {},
585
+ on: function() {},
586
+ off: function() {},
587
+ send: function() {},
588
+ get refresh() { return globalThis.__ReactRefresh; },
589
+ get refreshUtils() {
590
+ return {
591
+ isReactRefreshBoundary: function(exports) {
592
+ if (!globalThis.__ReactRefresh) return false;
593
+ if (globalThis.__ReactRefresh.isLikelyComponentType(exports)) return true;
594
+ if (!exports || typeof exports !== 'object') return false;
595
+ var hasExports = false, allComponents = true;
596
+ for (var key in exports) {
597
+ hasExports = true;
598
+ if (key === '__esModule') continue;
599
+ if (!globalThis.__ReactRefresh.isLikelyComponentType(exports[key])) allComponents = false;
600
+ }
601
+ return hasExports && allComponents;
602
+ },
603
+ enqueueUpdate: function() {
604
+ if (globalThis.__ReactRefresh) {
605
+ setTimeout(function() { globalThis.__ReactRefresh.performReactRefresh(); }, 50);
606
+ }
607
+ }
608
+ };
609
+ }
610
+ };
611
+ this.moduleHotContexts[moduleId] = ctx;
612
+ return ctx;
613
+ }
614
+
615
+ applyUpdates(boundaries) {
616
+ for (var i = 0; i < boundaries.length; i++) {
617
+ var moduleId = boundaries[i][0];
618
+ var ctx = this.moduleHotContexts[moduleId];
619
+ if (ctx && ctx.acceptCallbacks) {
620
+ for (var j = 0; j < ctx.acceptCallbacks.length; j++) {
621
+ ctx.acceptCallbacks[j].fn(this.modules[moduleId].exports);
622
+ }
623
+ }
624
+ }
625
+ }
626
+
627
+ setup(socket, origin) {
628
+ if (this._socket) return;
629
+ this._socket = socket;
630
+ // also set the shared messenger socket so queued messages can flush
631
+ if (this._shared) this._shared._socket = socket;
632
+
633
+ var flushQueues = function() {
634
+ // flush messenger queue
635
+ if (this._shared && this._shared._queue.length) {
636
+ for (var i = 0; i < this._shared._queue.length; i++) socket.send(this._shared._queue[i]);
637
+ this._shared._queue = [];
638
+ }
639
+ // flush instance queue
640
+ for (var i = 0; i < this._queue.length; i++) socket.send(this._queue[i]);
641
+ this._queue = [];
642
+ }.bind(this);
643
+
644
+ if (socket.readyState === 1) {
645
+ flushQueues();
646
+ } else {
647
+ socket.addEventListener('open', function() {
648
+ flushQueues();
649
+ }, { once: true });
650
+ }
651
+
652
+ // HMR message handling is done by the outro WebSocket handler
653
+ // the runtime's setup() only needs to flush queued messages
654
+ }
655
+ }
656
+
657
+ globalThis.__rolldown_runtime__ = new ReactNativeDevRuntime();
658
+ `;
659
+ }
660
+ export { buildNativeBundle, createNativeDevEngine };
661
+ //# sourceMappingURL=createNativeDevEngine.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["writeFileSync","basename","dirname","extname","join","relative","DEFAULT_ASSET_EXTS","getNativePrelude","FLOW_FILE_PATTERN","getResolveExtensions","platform","platformExts","nativeExts","defaultExts","getNativeResolveConfig","extensions","conditionNames","mainFields","getNativeTransformConfig","dev","jsx","runtime","define","__DEV__","inject","React","getNativePlugins","root","viteImportGlobPlugin","cssStubPlugin","flowStripPlugin","assetPlugin","vxrnCompilerPlugin","hermesCompatSWCPlugin","polyfillErrorDowngradePlugin","stripDevSettingsPlugin","getNativeOutputOptions","prelude","format","sourcemap","intro","codeSplitting","strictExecutionOrder","postProcessNativeBundle","code","replace","downlevelClassFieldsInBundle","startMarker","endMarker","startIdx","indexOf","endIdx","runtimeEnd","length","runtimeSection","slice","result","transform","filename","configFile","swcrc","sourceMaps","inputSourceMap","isModule","env","targets","node","include","jsc","parser","syntax","react","externalHelpers","assumptions","setPublicClassFields","privateFieldsAsProperties","err","console","warn","createNativeDevEngine","options","port","host","serverUrl","plugins","userPlugins","onHmrUpdate","hmrRuntimeSource","getHmrRuntimeSource","entryFile","generateNativeEntry","currentBundle","bundleResolve","bundlePromise","resolvedHost","inputOptions","input","cwd","resolve","experimental","devMode","implement","incrementalBuild","treeshake","shimMissingExports","moduleTypes","nativeReactRefreshPlugin","outputOptions","outro","engine","onOutput","Error","error","message","chunk","output","find","o","type","isEntry","hmrClientStub","match","map","toString","info","Math","round","onHmrUpdates","updates","item","update","rebuildStrategy","watch","run","getBundle","timeoutId","Promise","reject","value","clearTimeout","setTimeout","ensureLatestBuildOutput","close","buildNativeBundle","build","opts","isDev","entryPath","name","load","handler","id","test","moduleType","compiler","includes","props","development","environment","reactForRNVersion","babelOptions","getBabelOptions","transformBabel","default","source","dialect","assetRegex","RegExp","ext","dir","relativePath","httpLocation","assetData","__packager_asset","scales","httpServerLocation","fileSystemLocation","hash","width","height","imageSize","dims","JSON","stringify","swc","hasClass","hasAsync","envIncludes","tsx","endsWith","startsWith","babel","parserPlugins","push","isTSX","transformAsync","babelrc","compact","sourceType"],"sources":["../../src/utils/createNativeDevEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}