vxrn 1.20.0 → 1.20.2

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 (70) hide show
  1. package/dist/exports/build.native.js +1 -1
  2. package/dist/exports/build.native.js.map +1 -1
  3. package/dist/exports/clean.native.js +1 -3
  4. package/dist/exports/clean.native.js.map +1 -1
  5. package/dist/exports/createServer.native.js +2 -2
  6. package/dist/exports/createServer.native.js.map +1 -1
  7. package/dist/exports/dev.native.js +3 -3
  8. package/dist/exports/dev.native.js.map +1 -1
  9. package/dist/exports/loadEnv.native.js +1 -1
  10. package/dist/exports/loadEnv.native.js.map +1 -1
  11. package/dist/exports/patch.native.js +1 -1
  12. package/dist/exports/patch.native.js.map +1 -1
  13. package/dist/exports/prebuild.native.js +1 -1
  14. package/dist/exports/prebuild.native.js.map +1 -1
  15. package/dist/exports/prebuildWithoutExpo.native.js +2 -2
  16. package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
  17. package/dist/exports/runAndroid.native.js +1 -1
  18. package/dist/exports/runAndroid.native.js.map +1 -1
  19. package/dist/exports/runIos.native.js +1 -1
  20. package/dist/exports/runIos.native.js.map +1 -1
  21. package/dist/exports/serve.native.js +1 -1
  22. package/dist/exports/serve.native.js.map +1 -1
  23. package/dist/exports/serveStaticAssets.native.js +1 -1
  24. package/dist/plugins/autoDepOptimizePlugin.native.js +1 -1
  25. package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
  26. package/dist/plugins/expoManifestRequestHandlerPlugin.native.js +1 -3
  27. package/dist/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
  28. package/dist/plugins/reactNativeCommonJsPlugin.native.js +3 -3
  29. package/dist/plugins/reactNativeCommonJsPlugin.native.js.map +1 -1
  30. package/dist/plugins/reactNativeDevAssetPlugin.native.js +1 -3
  31. package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
  32. package/dist/plugins/reactNativeDevServer.mjs +8 -0
  33. package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
  34. package/dist/plugins/reactNativeDevServer.native.js +10 -4
  35. package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
  36. package/dist/plugins/serverExtensions.test.native.js +1 -1
  37. package/dist/plugins/serverExtensions.test.native.js.map +1 -1
  38. package/dist/runtime/hmr-client.native.js +1 -1
  39. package/dist/runtime/hmr-runtime.native.js +1 -1
  40. package/dist/serve/node.native.js +2 -2
  41. package/dist/user-interface/index.native.js +15 -17
  42. package/dist/user-interface/index.native.js.map +1 -1
  43. package/dist/utils/assert.native.js +0 -2
  44. package/dist/utils/assert.native.js.map +1 -1
  45. package/dist/utils/createNativeDevEngine.native.js +4 -6
  46. package/dist/utils/createNativeDevEngine.native.js.map +1 -1
  47. package/dist/utils/execSync.native.js +1 -1
  48. package/dist/utils/execSync.native.js.map +1 -1
  49. package/dist/utils/expoRun.mjs +19 -7
  50. package/dist/utils/expoRun.mjs.map +1 -1
  51. package/dist/utils/expoRun.native.js +19 -3
  52. package/dist/utils/expoRun.native.js.map +1 -1
  53. package/dist/utils/getBoundPort.test.native.js +1 -1
  54. package/dist/utils/getBoundPort.test.native.js.map +1 -1
  55. package/dist/utils/getServerEntry.native.js +2 -2
  56. package/dist/utils/getServerEntry.native.js.map +1 -1
  57. package/dist/utils/patches.native.js +0 -2
  58. package/dist/utils/patches.native.js.map +1 -1
  59. package/dist/utils/patches.test.native.js +5 -5
  60. package/dist/utils/patches.test.native.js.map +1 -1
  61. package/dist/utils/printServerUrls.native.js +1 -1
  62. package/dist/utils/printServerUrls.native.js.map +1 -1
  63. package/dist/vxrn-vite-plugin.native.js +1 -1
  64. package/dist/vxrn-vite-plugin.native.js.map +1 -1
  65. package/expo-plugin.cjs +78 -0
  66. package/package.json +11 -11
  67. package/src/plugins/reactNativeDevServer.ts +10 -0
  68. package/src/utils/expoRun.ts +36 -7
  69. package/types/plugins/reactNativeDevServer.d.ts.map +1 -1
  70. package/types/utils/expoRun.d.ts.map +1 -1
@@ -67,7 +67,7 @@ describe("applyDependencyPatches", function () {
67
67
  }];
68
68
  var nmDir = await setupAndPatch({
69
69
  patches,
70
- setupFs: async function setupFs(nm) {
70
+ setupFs: async function (nm) {
71
71
  var storePkgDir = join(nm, ".pnpm", "@react-navigation+core@7.16.1_react@19.0.0", "node_modules", "@react-navigation", "core");
72
72
  await FSExtra.ensureDir(storePkgDir);
73
73
  await FSExtra.writeFile(join(storePkgDir, "package.json"), makePkg("@react-navigation/core", "7.16.1"));
@@ -89,7 +89,7 @@ describe("applyDependencyPatches", function () {
89
89
  }];
90
90
  await setupAndPatch({
91
91
  patches,
92
- setupFs: async function setupFs(nm) {
92
+ setupFs: async function (nm) {
93
93
  var storeDir = join(nm, ".pnpm", "test-pkg@1.0.0", "node_modules", "test-pkg");
94
94
  await FSExtra.ensureDir(storeDir);
95
95
  await FSExtra.writeFile(join(storeDir, "package.json"), makePkg("test-pkg", "1.0.0"));
@@ -114,7 +114,7 @@ describe("applyDependencyPatches", function () {
114
114
  }];
115
115
  var nmDir = await setupAndPatch({
116
116
  patches,
117
- setupFs: async function setupFs(nm) {
117
+ setupFs: async function (nm) {
118
118
  var pkgDir = join(nm, "test-pkg");
119
119
  await FSExtra.ensureDir(pkgDir);
120
120
  await FSExtra.writeFile(join(pkgDir, "package.json"), makePkg("test-pkg", "1.0.0"));
@@ -136,7 +136,7 @@ describe("applyDependencyPatches", function () {
136
136
  }];
137
137
  await setupAndPatch({
138
138
  patches,
139
- setupFs: async function setupFs(nm) {
139
+ setupFs: async function (nm) {
140
140
  var v1Dir = join(nm, ".pnpm", "test-pkg@1.0.0", "node_modules", "test-pkg");
141
141
  await FSExtra.ensureDir(v1Dir);
142
142
  await FSExtra.writeFile(join(v1Dir, "package.json"), makePkg("test-pkg", "1.0.0"));
@@ -166,7 +166,7 @@ describe("applyDependencyPatches", function () {
166
166
  }];
167
167
  var nmDir = await setupAndPatch({
168
168
  patches,
169
- setupFs: async function setupFs(nm) {
169
+ setupFs: async function (nm) {
170
170
  var storeDir = join(nm, ".pnpm", "test-pkg@1.0.0", "node_modules", "test-pkg");
171
171
  await FSExtra.ensureDir(storeDir);
172
172
  await FSExtra.writeFile(join(storeDir, "package.json"), makePkg("test-pkg", "1.0.0"));
@@ -1 +1 @@
1
- {"version":3,"names":["FSExtra","join","mkdtemp","rm","symlink","tmpdir","afterEach","beforeEach","describe","expect","it","vi","applyDependencyPatches","moduleToPnpmStorePattern","mock","transformSWC","fn","transformFlowBabel","makePkg","name","version","extras","JSON","stringify","toBe","tmpDir","recursive","force","setupAndPatch","opts","nmDir","ensureDir","setupFs","patches","root","module","patchFiles","package.json","contents","pkg","parse","exports","nm","storePkgDir","writeFile","patchedPkg","readJSON","patchCallCount","index.js","storeDir","symlinkTarget","pnpmHoisted","pkgDir","content","readFile","toContain","v1Dir","v2Dir","v1Content","v2Content"],"sources":["../../src/utils/patches.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FSExtra","join","mkdtemp","rm","symlink","tmpdir","afterEach","beforeEach","describe","expect","it","vi","applyDependencyPatches","moduleToPnpmStorePattern","mock","transformSWC","fn","transformFlowBabel","makePkg","name","version","extras","JSON","stringify","toBe","tmpDir","recursive","force","setupAndPatch","opts","nmDir","ensureDir","setupFs","patches","root","module","patchFiles","package.json","contents","pkg","parse","exports","nm","storePkgDir","writeFile","patchedPkg","readJSON","patchCallCount","index.js","storeDir","symlinkTarget","pnpmHoisted","pkgDir","content","readFile","toContain","v1Dir","v2Dir","v1Content","v2Content"],"sources":["../../src/utils/patches.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import colors from "picocolors";
2
2
  function printServerUrls(urls) {
3
3
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {},
4
4
  info = arguments.length > 2 ? arguments[2] : void 0;
5
- var colorUrl = function colorUrl2(url2) {
5
+ var colorUrl = function (url2) {
6
6
  return colors.cyan(url2.replace(/:(\d+)\//, function (_, port) {
7
7
  return `:${colors.bold(port)}/`;
8
8
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["colors","printServerUrls","urls","options","arguments","length","info","colorUrl","colorUrl2","url2","cyan","replace","_","port","bold","_iteratorNormalCompletion","_didIteratorError","_iteratorError"],"sources":["../../src/utils/printServerUrls.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AAGZ,SAASC,gBACdC,IAAA,EACA;EAGA,IAAAC,OAAM,GAAAC,SAAY,CAAAC,MAChB,GAAO,KAAKD,SAAI,GAAQ,cAAaA,SAAG,EAAS,IAAI;IAAAE,IAAO,GAAAF,SAAa,CAACC,MAAA,OAAAD,SAAA;EAC5E,IAAAG,QAAW,YAAYC,SAAOA,CAAAC,IAAA;IAC5B,OAAKT,MAAK,CAAAU,IAAO,CAAAD,IAAM,CAAAE,OAAG,CAAC,UAAK,EAAO,UAAKC,CAAA,EAAOC,IAAC;MACtD,WAAAb,MAAA,CAAAc,IAAA,CAAAD,IAAA;IACA;EACE;EACF,IAAAE,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAQF","ignoreList":[]}
1
+ {"version":3,"names":["colors","printServerUrls","urls","options","arguments","length","info","colorUrl","url2","cyan","replace","_","port","bold","_iteratorNormalCompletion","_didIteratorError","_iteratorError"],"sources":["../../src/utils/printServerUrls.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AAGZ,SAASC,gBACdC,IAAA,EACA;EAGA,IAAAC,OAAM,GAAAC,SAAY,CAAAC,MAChB,GAAO,KAAKD,SAAI,GAAQ,cAAaA,SAAG,EAAS,IAAI;IAAAE,IAAO,GAAAF,SAAa,CAACC,MAAA,OAAAD,SAAA;EAC5E,IAAAG,QAAW,YAAAA,CAAYC,IAAA,EAAO;IAC5B,OAAKR,MAAK,CAAAS,IAAO,CAAAD,IAAM,CAAAE,OAAG,CAAC,UAAK,EAAO,UAAKC,CAAA,EAAOC,IAAC;MACtD,WAAAZ,MAAA,CAAAa,IAAA,CAAAD,IAAA;IACA;EACE;EACF,IAAAE,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAQF","ignoreList":[]}
@@ -7,7 +7,7 @@ import { getReactNativePlugins } from "./config/getReactNativePlugins.native.js"
7
7
  function vxrn(options) {
8
8
  return [{
9
9
  name: "vxrn-config",
10
- config: async function config(config, param) {
10
+ config: async function (config, param) {
11
11
  var {
12
12
  mode: modeIn
13
13
  } = param;
@@ -1 +1 @@
1
- {"version":3,"names":["mergeConfig","getBaseViteConfig","getAdditionalViteConfig","getBaseVitePlugins","getNonCliModeOnlyVitePlugins","getReactNativePlugins","vxrn","options","name","config","param","mode","modeIn","console","warn","root","process","cwd","baseConfig","additionalConfig","disableNative","metro","vxrn_vite_plugin_default"],"sources":["../src/vxrn-vite-plugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAsC;AAC/C,SAASC,iBAAA,QAAyB;AAClC,SAASC,uBAAA,QAA+B;AACxC,SAASC,kBAAA,QAA0B;AACnC,SAASC,4BAAA,QAAoC;AAC7C,SAASC,qBAAA,QAA6B;AA4B/B,SAASC,KAAKC,OAAA,EAA2C;EAC9D,OAAO,CACL;IACEC,IAAA,EAAM;IACNC,MAAA,EAAQ,eAAeA,MAAEA,OAAM,EAAOC,KAAA,EAAM;MAC1C;QAAMC,IAAA,EAAAC;MAAQ,CAAM,GAAAF,KAAA;MAClB,IAAAC,IAAA,GAAQ,YAAQ;QAAA,QACTC,MAAA;UACL,KAAK;UACH,UAAO;YACT,OAAK;UACL,KAAK;UACH,WAAO;YACT;UACE;YAAQC,OACN,CAAAC,IAAA,qCAA0CF,MAAA;YAC5C;QACA;MAAO,EACX;MACF,IAAGG,IAAA,GAAAN,MAAA,CAAAM,IAAA;MAEH,IAAI,CAAAA,IAAA,EAAO;QAEXA,IAAK,GAAAC,OAAM,CAAAC,GAAA;QACTJ,OAAO,CAAAC,IAAA,6FAAYC,IAAA;MACnB;MAAQ,IACNG,UAAA,SAAAjB,iBAAA;QACFc,IAAA;QACFJ;MAEA;MAA2C,IACzCQ,gBAAA,GAAAjB,uBAAA;MAAA,OACAF,WAAA,CAAAkB,UAAA,EAAAC,gBAAA;IAAA;EAGF,GACA,GAAAhB,kBAAO,EAAY,EAA4B,GACjDC,4BAAA,IACF,KAAAG,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAa,aAAA,SAAAf,qBAAA;IACAgB,KAAG,GAAAd,OAAA,KAAmB,QAAAA,OAAA,uBAAAA,OAAA,CAAAc,KAAA;EACtB,IAAgC;AAG+B;AAEnE,IAAAC,wBAAA,GAAAhB,IAAA;AAEA,S","ignoreList":[]}
1
+ {"version":3,"names":["mergeConfig","getBaseViteConfig","getAdditionalViteConfig","getBaseVitePlugins","getNonCliModeOnlyVitePlugins","getReactNativePlugins","vxrn","options","name","config","param","mode","modeIn","console","warn","root","process","cwd","baseConfig","additionalConfig","disableNative","metro","vxrn_vite_plugin_default"],"sources":["../src/vxrn-vite-plugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAsC;AAC/C,SAASC,iBAAA,QAAyB;AAClC,SAASC,uBAAA,QAA+B;AACxC,SAASC,kBAAA,QAA0B;AACnC,SAASC,4BAAA,QAAoC;AAC7C,SAASC,qBAAA,QAA6B;AA4B/B,SAASC,KAAKC,OAAA,EAA2C;EAC9D,OAAO,CACL;IACEC,IAAA,EAAM;IACNC,MAAA,EAAQ,eAAAA,CAAeA,MAAE,EAAMC,KAAA,EAAO;MACpC;QAAMC,IAAA,EAAAC;MAAQ,CAAM,GAAAF,KAAA;MAClB,IAAAC,IAAA,GAAQ,YAAQ;QAAA,QACTC,MAAA;UACL,KAAK;UACH,UAAO;YACT,OAAK;UACL,KAAK;UACH,WAAO;YACT;UACE;YAAQC,OACN,CAAAC,IAAA,qCAA0CF,MAAA;YAC5C;QACA;MAAO,EACX;MACF,IAAGG,IAAA,GAAAN,MAAA,CAAAM,IAAA;MAEH,IAAI,CAAAA,IAAA,EAAO;QAEXA,IAAK,GAAAC,OAAM,CAAAC,GAAA;QACTJ,OAAO,CAAAC,IAAA,6FAAYC,IAAA;MACnB;MAAQ,IACNG,UAAA,SAAAjB,iBAAA;QACFc,IAAA;QACFJ;MAEA;MAA2C,IACzCQ,gBAAA,GAAAjB,uBAAA;MAAA,OACAF,WAAA,CAAAkB,UAAA,EAAAC,gBAAA;IAAA;EAGF,GACA,GAAAhB,kBAAO,EAAY,EAA4B,GACjDC,4BAAA,IACF,KAAAG,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAa,aAAA,SAAAf,qBAAA;IACAgB,KAAG,GAAAd,OAAA,KAAmB,QAAAA,OAAA,uBAAAA,OAAA,CAAAc,KAAA;EACtB,IAAgC;AAG+B;AAEnE,IAAAC,wBAAA,GAAAhB,IAAA;AAEA,S","ignoreList":[]}
package/expo-plugin.cjs CHANGED
@@ -115,6 +115,35 @@ const plugin = (config, options = {}) => {
115
115
  return config
116
116
  },
117
117
  ],
118
+ // iOS: RN's fmt pod fails to compile under Xcode 26 clang in C++20 mode.
119
+ // Compile fmt as c++17 with runtime format strings.
120
+ [
121
+ withDangerousMod,
122
+ [
123
+ 'ios',
124
+ async (config) => {
125
+ const iosRoot = config.modRequest.platformProjectRoot
126
+ const podfilePath = path.join(iosRoot, 'Podfile')
127
+ if (!fs.existsSync(podfilePath)) return config
128
+
129
+ const propsPath = path.join(iosRoot, 'Podfile.properties.json')
130
+ if (getPodfilePropsOptOut(propsPath, 'one.disableFmtCxx17Fix')) {
131
+ return config
132
+ }
133
+
134
+ const podfile = fs.readFileSync(podfilePath, 'utf8')
135
+ const next = injectFmtCxx17FixIntoPodfile(podfile)
136
+ if (next !== podfile) {
137
+ fs.writeFileSync(podfilePath, next, 'utf8')
138
+ console.info(
139
+ '[vxrn] patched Podfile to compile the fmt pod as c++17 (Xcode 26 consteval failure)\n' +
140
+ ' to disable: set "one.disableFmtCxx17Fix": "true" in ios/Podfile.properties.json'
141
+ )
142
+ }
143
+ return config
144
+ },
145
+ ],
146
+ ],
118
147
  // iOS Hermes Release: hermesc can crash on large unminified bundles.
119
148
  // Force Metro to pre-minify so hermesc only does bytecode conversion.
120
149
  [
@@ -185,6 +214,53 @@ const plugin = (config, options = {}) => {
185
214
  ])
186
215
  }
187
216
 
217
+ /**
218
+ * RN's fmt pod (11.x) fails to compile under Xcode 26 clang in C++20 mode:
219
+ * "call to consteval function 'fmt::basic_format_string<...>' is not a
220
+ * constant expression" in format-inl.h. Compiling fmt as c++17 with
221
+ * FMT_USE_NONTYPE_TEMPLATE_ARGS=0 sidesteps the consteval path entirely;
222
+ * fmt is an internal folly/react-native dependency so the flags are local
223
+ * to that pod.
224
+ */
225
+ const FMT_CXX17_MARKER = '# [vxrn/one] fmt c++17 fix'
226
+
227
+ function injectFmtCxx17FixIntoPodfile(podfile) {
228
+ if (podfile.includes(FMT_CXX17_MARKER)) {
229
+ return podfile
230
+ }
231
+
232
+ const patch = `
233
+ ${FMT_CXX17_MARKER}
234
+ # Xcode 26 clang rejects fmt 11.x FMT_STRING consteval in C++20 mode.
235
+ installer.pods_project.targets.each do |target|
236
+ next unless target.name == 'fmt'
237
+
238
+ target.build_configurations.each do |build_config|
239
+ defs = build_config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] || ['$(inherited)']
240
+ defs = [defs] unless defs.is_a?(Array)
241
+ defs |= ['FMT_USE_NONTYPE_TEMPLATE_ARGS=0']
242
+ build_config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = defs
243
+ build_config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++17'
244
+ flags = build_config.build_settings['OTHER_CPLUSPLUSFLAGS'] || ['$(inherited)']
245
+ flags = [flags] unless flags.is_a?(Array)
246
+ flags |= ['-std=c++17']
247
+ build_config.build_settings['OTHER_CPLUSPLUSFLAGS'] = flags
248
+ end
249
+ end
250
+ `
251
+
252
+ const match = podfile.match(/post_install\s+do\s+\|installer\|/)
253
+ if (!match) {
254
+ console.warn(
255
+ '[vxrn] could not find post_install block in Podfile to inject fmt c++17 fix'
256
+ )
257
+ return podfile
258
+ }
259
+
260
+ const insertAt = match.index + match[0].length
261
+ return podfile.slice(0, insertAt) + '\n' + patch + podfile.slice(insertAt)
262
+ }
263
+
188
264
  /**
189
265
  * RN disables Metro minification for iOS Hermes Release, expecting
190
266
  * hermesc -O to handle bytecode optimization. For large One/VxRN bundles
@@ -783,6 +859,8 @@ module.exports.addPodHermescToBundleReactNativeShellScript =
783
859
  module.exports.injectSwift6WorkaroundIntoPodfile = injectSwift6WorkaroundIntoPodfile
784
860
  module.exports.injectHermesMinificationPatchIntoPodfile =
785
861
  injectHermesMinificationPatchIntoPodfile
862
+ module.exports.injectFmtCxx17FixIntoPodfile = injectFmtCxx17FixIntoPodfile
863
+ module.exports.FMT_CXX17_MARKER = FMT_CXX17_MARKER
786
864
  module.exports.injectExpoUpdatesIosResourcesPatchIntoPodfile =
787
865
  injectExpoUpdatesIosResourcesPatchIntoPodfile
788
866
  module.exports.HERMES_MINIFY_PATCH_MARKER = HERMES_MINIFY_PATCH_MARKER
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxrn",
3
- "version": "1.20.0",
3
+ "version": "1.20.2",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -60,16 +60,16 @@
60
60
  "@expo/config-plugins": "~55.0.6",
61
61
  "@hono/node-server": "^1.19.14",
62
62
  "@react-native/dev-middleware": "^0.83.4",
63
- "@vxrn/compiler": "1.20.0",
64
- "@vxrn/debug": "1.20.0",
65
- "@vxrn/query-string": "1.20.0",
66
- "@vxrn/resolve": "1.20.0",
67
- "@vxrn/safe-area": "1.20.0",
68
- "@vxrn/url-parse": "1.20.0",
69
- "@vxrn/utils": "1.20.0",
70
- "@vxrn/vendor": "1.20.0",
71
- "@vxrn/vite-flow": "1.20.0",
72
- "@vxrn/vite-plugin-metro": "1.20.0",
63
+ "@vxrn/compiler": "1.20.2",
64
+ "@vxrn/debug": "1.20.2",
65
+ "@vxrn/query-string": "1.20.2",
66
+ "@vxrn/resolve": "1.20.2",
67
+ "@vxrn/safe-area": "1.20.2",
68
+ "@vxrn/url-parse": "1.20.2",
69
+ "@vxrn/utils": "1.20.2",
70
+ "@vxrn/vendor": "1.20.2",
71
+ "@vxrn/vite-flow": "1.20.2",
72
+ "@vxrn/vite-plugin-metro": "1.20.2",
73
73
  "citty": "^0.1.6",
74
74
  "dotenv": "^17.2.1",
75
75
  "dotenv-expand": "^12.0.2",
@@ -1,5 +1,6 @@
1
1
  import type { Connect, Plugin, ViteDevServer } from 'vite'
2
2
  import { WebSocketServer } from 'ws'
3
+ import { createMessageSocket } from '@vxrn/utils'
3
4
  import {
4
5
  addConnectedNativeClient,
5
6
  removeConnectedNativeClient,
@@ -29,6 +30,7 @@ export function createReactNativeDevServerPlugin(
29
30
  const { root } = server.config
30
31
  const hmrWSS = new WebSocketServer({ noServer: true })
31
32
  const clientWSS = new WebSocketServer({ noServer: true })
33
+ const messageWSS = createMessageSocket()
32
34
 
33
35
  const devToolsSocketEndpoints = ['/inspector/device', '/inspector/debug']
34
36
  const reactNativeDevToolsUrl = `http://${host}:${getBoundPort(server)}`
@@ -77,6 +79,14 @@ export function createReactNativeDevServerPlugin(
77
79
  return
78
80
  }
79
81
 
82
+ // metro packager message socket
83
+ if (url === '/message' || url.startsWith('/message?')) {
84
+ messageWSS.handleUpgrade(req, socket, head, (ws) => {
85
+ messageWSS.emit('connection', ws, req)
86
+ })
87
+ return
88
+ }
89
+
80
90
  // client socket
81
91
  if (url === '/__client') {
82
92
  clientWSS.handleUpgrade(req, socket, head, (ws) => {
@@ -3,6 +3,25 @@ import { pathToFileURL } from 'node:url'
3
3
  import { fillOptions } from '../config/getOptionsFilled'
4
4
  import { applyBuiltInPatches } from '../utils/patches'
5
5
 
6
+ // the built app loads its js from the one/vxrn dev server, never from an
7
+ // expo-started metro. we pass `--port` (not `--no-bundler`) because expo
8
+ // hardcodes the launch url to 8081 under --no-bundler, while with a port it
9
+ // detects the already-running dev server for this project root and skips
10
+ // starting its own bundler ("dev server is already running in another
11
+ // window"). requiring the server up-front keeps that the only path — expo
12
+ // would otherwise boot its own metro (without one's transforms) when the
13
+ // port is free.
14
+ async function devServerRunning(port: number): Promise<boolean> {
15
+ try {
16
+ const res = await fetch(`http://localhost:${port}/status`, {
17
+ signal: AbortSignal.timeout(3000),
18
+ })
19
+ return (await res.text()).includes('packager-status:running')
20
+ } catch {
21
+ return false
22
+ }
23
+ }
24
+
6
25
  export async function expoRun({
7
26
  root,
8
27
  platform,
@@ -18,6 +37,22 @@ export async function expoRun({
18
37
  console.error(`\n 🥺 error applying built-in patches`, err)
19
38
  })
20
39
 
40
+ const resolvedPort = port || 8081
41
+ if (!(await devServerRunning(resolvedPort))) {
42
+ console.error(
43
+ `\nNo dev server running on http://localhost:${resolvedPort} — the app loads its JS from it.\n` +
44
+ `Start it first (e.g. \`bun dev\` or \`one dev\`), then re-run this command.`
45
+ )
46
+ process.exit(1)
47
+ }
48
+
49
+ // bake the port into the native build: React-Core's xcconfig resolves
50
+ // RCT_METRO_PORT from the xcodebuild environment into a preprocessor define
51
+ // that RCTBundleURLProvider uses as its default packager port. expo only
52
+ // sets this env when it starts its own bundler, and our reuse path skips
53
+ // that — without it the app probes 8081 and shows "No script URL provided".
54
+ process.env.RCT_METRO_PORT = String(resolvedPort)
55
+
21
56
  try {
22
57
  // Import Expo from the user's project instead of from where vxrn is installed, since vxrn may be installed globally or at the root workspace.
23
58
  const require = module.createRequire(root)
@@ -27,13 +62,7 @@ export async function expoRun({
27
62
  const expoRun = (await import(pathToFileURL(importPath).href)).default[
28
63
  `expoRun${platform.charAt(0).toUpperCase() + platform.slice(1)}`
29
64
  ]
30
- await expoRun([
31
- // Do not start the Metro bundler automatically
32
- `--no-bundler`,
33
- // CommandError: --port and --no-bundler are mutually exclusive arguments
34
- // `--port`,
35
- // `${port || 8081}`,
36
- ])
65
+ await expoRun([`--port`, `${resolvedPort}`])
37
66
  } catch (e) {
38
67
  console.error(
39
68
  `Failed to run native project: ${e}\nIs "expo" listed in your dependencies?`
@@ -1 +1 @@
1
- {"version":3,"file":"reactNativeDevServer.d.ts","sourceRoot":"","sources":["../../src/plugins/reactNativeDevServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAiB,MAAM,MAAM,CAAA;AAM1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAYnE,wBAAgB,gCAAgC,CAC9C,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAAC,CACrF,GACA,MAAM,CAyMR"}
1
+ {"version":3,"file":"reactNativeDevServer.d.ts","sourceRoot":"","sources":["../../src/plugins/reactNativeDevServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAiB,MAAM,MAAM,CAAA;AAO1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAYnE,wBAAgB,gCAAgC,CAC9C,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAAC,CACrF,GACA,MAAM,CAkNR"}
@@ -1 +1 @@
1
- {"version":3,"file":"expoRun.d.ts","sourceRoot":"","sources":["../../src/utils/expoRun.ts"],"names":[],"mappings":"AAKA,wBAAsB,OAAO,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,GACL,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,iBA4BA"}
1
+ {"version":3,"file":"expoRun.d.ts","sourceRoot":"","sources":["../../src/utils/expoRun.ts"],"names":[],"mappings":"AAwBA,wBAAsB,OAAO,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,GACL,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,iBAsCA"}