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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/cjs/index.cjs +0 -2
  2. package/dist/cjs/index.native.cjs +0 -2
  3. package/dist/cjs/index.native.js +0 -2
  4. package/dist/cjs/index.native.js.map +1 -1
  5. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +48 -38
  6. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.cjs +62 -42
  7. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +62 -42
  8. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  9. package/dist/cjs/transformer/babel-transformer.cjs +53 -4
  10. package/dist/cjs/transformer/babel-transformer.native.cjs +65 -6
  11. package/dist/cjs/transformer/babel-transformer.native.js +65 -6
  12. package/dist/cjs/transformer/babel-transformer.native.js.map +1 -1
  13. package/dist/cjs/transformer/expoVirtualEnv.cjs +92 -0
  14. package/dist/cjs/transformer/expoVirtualEnv.native.cjs +113 -0
  15. package/dist/cjs/transformer/expoVirtualEnv.native.js +115 -0
  16. package/dist/cjs/transformer/expoVirtualEnv.native.js.map +1 -0
  17. package/dist/cjs/transformer/loadBabelConfig.cjs +1 -1
  18. package/dist/cjs/transformer/loadBabelConfig.native.cjs +1 -1
  19. package/dist/cjs/transformer/loadBabelConfig.native.js +1 -1
  20. package/dist/cjs/transformer/loadBabelConfig.native.js.map +1 -1
  21. package/dist/cjs/transformer/metroNativeWorker.cjs +8 -20
  22. package/dist/cjs/transformer/metroNativeWorker.native.cjs +8 -20
  23. package/dist/cjs/transformer/metroNativeWorker.native.js +8 -20
  24. package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
  25. package/dist/cjs/transformer/transformSync.cjs +3 -3
  26. package/dist/cjs/transformer/transformSync.native.cjs +3 -3
  27. package/dist/cjs/transformer/transformSync.native.js +3 -3
  28. package/dist/cjs/transformer/transformSync.native.js.map +1 -1
  29. package/dist/cjs/utils/exit.cjs +1 -1
  30. package/dist/cjs/utils/exit.native.cjs +1 -1
  31. package/dist/cjs/utils/exit.native.js +1 -1
  32. package/dist/cjs/utils/exit.native.js.map +1 -1
  33. package/dist/esm/index.js +1 -2
  34. package/dist/esm/index.mjs +1 -2
  35. package/dist/esm/index.native.js +1 -2
  36. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +48 -38
  37. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
  38. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +62 -42
  39. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  40. package/dist/esm/transformer/babel-transformer.mjs +133 -96
  41. package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
  42. package/dist/esm/transformer/babel-transformer.native.js +147 -103
  43. package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
  44. package/dist/esm/transformer/expoVirtualEnv.mjs +67 -0
  45. package/dist/esm/transformer/expoVirtualEnv.mjs.map +1 -0
  46. package/dist/esm/transformer/expoVirtualEnv.native.js +86 -0
  47. package/dist/esm/transformer/expoVirtualEnv.native.js.map +1 -0
  48. package/dist/esm/transformer/loadBabelConfig.mjs +1 -1
  49. package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -1
  50. package/dist/esm/transformer/loadBabelConfig.native.js +1 -1
  51. package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -1
  52. package/dist/esm/transformer/metroNativeWorker.mjs +8 -20
  53. package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
  54. package/dist/esm/transformer/metroNativeWorker.native.js +8 -20
  55. package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
  56. package/dist/esm/transformer/transformSync.mjs +3 -3
  57. package/dist/esm/transformer/transformSync.mjs.map +1 -1
  58. package/dist/esm/transformer/transformSync.native.js +3 -3
  59. package/dist/esm/transformer/transformSync.native.js.map +1 -1
  60. package/dist/esm/utils/exit.mjs +1 -1
  61. package/dist/esm/utils/exit.mjs.map +1 -1
  62. package/dist/esm/utils/exit.native.js +1 -1
  63. package/dist/esm/utils/exit.native.js.map +1 -1
  64. package/package.json +7 -9
  65. package/src/index.ts +0 -2
  66. package/src/metro-config/getMetroConfigFromViteConfig.test.ts +5 -0
  67. package/src/metro-config/getMetroConfigFromViteConfig.ts +81 -96
  68. package/src/plugins/metroPlugin.ts +3 -6
  69. package/src/transformer/babel-transformer.test.ts +118 -0
  70. package/src/transformer/babel-transformer.ts +82 -15
  71. package/src/transformer/expoVirtualEnv.integration.test.ts +106 -0
  72. package/src/transformer/expoVirtualEnv.test.ts +72 -0
  73. package/src/transformer/expoVirtualEnv.ts +115 -0
  74. package/src/transformer/loadBabelConfig.ts +1 -1
  75. package/src/transformer/metroNativeWorker.test.ts +105 -1
  76. package/src/transformer/metroNativeWorker.ts +12 -33
  77. package/src/transformer/transformSync.test.ts +22 -0
  78. package/src/transformer/transformSync.ts +4 -4
  79. package/src/utils/exit.ts +2 -2
  80. package/src/utils/getTerminalReporter.ts +1 -1
  81. package/src/utils/projectImport.ts +2 -2
  82. package/types/index.d.ts +0 -2
  83. package/types/index.d.ts.map +1 -1
  84. package/types/metro-config/getMetroConfigFromViteConfig.d.ts +2 -2
  85. package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
  86. package/types/plugins/metroPlugin.d.ts +2 -4
  87. package/types/plugins/metroPlugin.d.ts.map +1 -1
  88. package/types/transformer/babel-transformer.d.ts +10 -1
  89. package/types/transformer/babel-transformer.d.ts.map +1 -1
  90. package/types/transformer/expoVirtualEnv.d.ts +8 -0
  91. package/types/transformer/expoVirtualEnv.d.ts.map +1 -0
  92. package/types/transformer/metroNativeWorker.d.ts.map +1 -1
  93. package/types/utils/projectImport.d.ts +2 -2
  94. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +0 -59
  95. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.cjs +0 -62
  96. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +0 -64
  97. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  98. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +0 -35
  99. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.cjs +0 -37
  100. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -39
  101. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  102. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +0 -40
  103. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +0 -1
  104. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +0 -41
  105. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  106. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +0 -15
  107. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +0 -1
  108. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -15
  109. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  110. package/src/plugins/expoManifestRequestHandlerPlugin.ts +0 -88
  111. package/src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts +0 -28
  112. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +0 -14
  113. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +0 -1
  114. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts +0 -5
  115. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts.map +0 -1
@@ -32,14 +32,20 @@ __export(getMetroConfigFromViteConfig_exports, {
32
32
  getMetroConfigFromViteConfig: () => getMetroConfigFromViteConfig
33
33
  });
34
34
  module.exports = __toCommonJS(getMetroConfigFromViteConfig_exports);
35
+ var import_vite = require("vite");
35
36
  var import_child_process = require("child_process");
36
37
  var import_path = require("path");
37
38
  var import_micromatch = __toESM(require("micromatch"), 1);
39
+ var import_metro_config = require("@react-native/metro-config");
38
40
  var import_compiler = require("@vxrn/compiler");
39
41
  var import_projectImport = require("../utils/projectImport.native.js");
40
42
  var import_getTerminalReporter = require("../utils/getTerminalReporter.native.js");
41
- var import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName = require("../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js");
42
43
  var WATCHMAN_PROBE_TIMEOUT_MS = 2e3;
44
+ var expoEnvAdditionalExts = [
45
+ "env",
46
+ "local",
47
+ "development"
48
+ ];
43
49
  var watchmanResponsivePromises = /* @__PURE__ */ new Map();
44
50
  var didWarnAboutWatchmanFallback = false;
45
51
  var rootIndexBundleRequestPattern = /^(https?:\/\/[^/]+)?\/index\.bundle(?=$|[?#])/;
@@ -50,6 +56,27 @@ var metroWatchExclusions = [
50
56
  /[/\\]\.vite(?:[/\\]|$)/,
51
57
  /[/\\]node_modules[/\\]\.vxrn(?:[/\\]|$)/
52
58
  ];
59
+ function enforceWorkspaceVisibility(config, projectRoot) {
60
+ var _config_watchFolders, _ref;
61
+ var _config_resolver;
62
+ var workspaceRoot = (0, import_vite.searchForWorkspaceRoot)(projectRoot);
63
+ if (workspaceRoot === projectRoot) return config;
64
+ return {
65
+ ...config,
66
+ watchFolders: [.../* @__PURE__ */ new Set([...(_config_watchFolders = config.watchFolders) !== null && _config_watchFolders !== void 0 ? _config_watchFolders : [], workspaceRoot])],
67
+ resolver: {
68
+ ...config.resolver,
69
+ nodeModulesPaths: [.../* @__PURE__ */ new Set([
70
+ ...(_ref = (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _config_resolver.nodeModulesPaths) !== null && _ref !== void 0 ? _ref : [],
71
+ (0, import_path.resolve)(projectRoot, "node_modules"),
72
+ (0, import_path.resolve)(workspaceRoot, "node_modules")
73
+ ])]
74
+ }
75
+ };
76
+ }
77
+ function getReactNativeDefaultConfig(projectRoot) {
78
+ return enforceWorkspaceVisibility((0, import_metro_config.getDefaultConfig)(projectRoot), projectRoot);
79
+ }
53
80
  function getPlatformFromBundleUrl(url) {
54
81
  var _url_match;
55
82
  var platform = (_url_match = url.match(/[?&]platform=(ios|android)(?:&|$)/)) === null || _url_match === void 0 ? void 0 : _url_match[1];
@@ -57,9 +84,6 @@ function getPlatformFromBundleUrl(url) {
57
84
  }
58
85
  function rewriteMainModuleBundleUrl(url, resolveMainModuleName) {
59
86
  var resolvedMainModulePath = resolveMainModuleName({ platform: getPlatformFromBundleUrl(url) });
60
- if (url.includes("/.expo/.virtual-metro-entry.bundle?")) {
61
- return url.replace(".expo/.virtual-metro-entry", resolvedMainModulePath);
62
- }
63
87
  return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);
64
88
  }
65
89
  function isBareSpecifier(name) {
@@ -127,8 +151,8 @@ function resolveNativeTransforms(projectRoot, metroPluginOptions) {
127
151
  };
128
152
  }
129
153
  async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
130
- var _ref;
131
- var _metroPluginOptions_argv, _defaultConfig_resolver;
154
+ var _ref, _ref1;
155
+ var _metroPluginOptions_argv, _defaultConfig_resolver, _defaultConfig_watcher;
132
156
  var extraConfig = {};
133
157
  var projectRoot = (0, import_path.resolve)((_ref = (_metroPluginOptions_argv = metroPluginOptions.argv) === null || _metroPluginOptions_argv === void 0 ? void 0 : _metroPluginOptions_argv.projectRoot) !== null && _ref !== void 0 ? _ref : config.root);
134
158
  var { mainModuleName, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
@@ -137,27 +161,20 @@ async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
137
161
  didWarnAboutWatchmanFallback = true;
138
162
  console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
139
163
  }
140
- var { getDefaultConfig } = await (0, import_projectImport.projectImport)(projectRoot, "@expo/metro-config");
141
- var _defaultConfig = getDefaultConfig(projectRoot);
164
+ var _defaultConfig = getReactNativeDefaultConfig(projectRoot);
142
165
  if (mainModuleName) {
143
- var origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
144
- var resolveMainModuleName = await (async function() {
145
- var ExpoGoManifestHandlerMiddleware = (await (0, import_projectImport.projectImport)(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
146
- var manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
147
- (0, import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName)(manifestHandlerMiddleware, mainModuleName);
148
- return function(p) {
149
- return manifestHandlerMiddleware.resolveMainModuleName({
150
- pkg: { main: mainModuleName },
151
- platform: p.platform
152
- });
153
- };
154
- })();
166
+ var _defaultConfig_server;
167
+ var origRewriteRequestUrl = (_defaultConfig_server = _defaultConfig.server) === null || _defaultConfig_server === void 0 ? void 0 : _defaultConfig_server.rewriteRequestUrl;
168
+ var resolveMainModuleName = function() {
169
+ return mainModuleName;
170
+ };
155
171
  extraConfig.getResolveMainModuleName = resolveMainModuleName;
156
172
  _defaultConfig.server.rewriteRequestUrl = function(url) {
157
- if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
173
+ var _ref2;
174
+ if (rootIndexBundleRequestPattern.test(url)) {
158
175
  return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
159
176
  }
160
- return origRewriteRequestUrl(url);
177
+ return (_ref2 = origRewriteRequestUrl === null || origRewriteRequestUrl === void 0 ? void 0 : origRewriteRequestUrl(url)) !== null && _ref2 !== void 0 ? _ref2 : url;
161
178
  };
162
179
  }
163
180
  var existingBlockList = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = _defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.blockList;
@@ -169,6 +186,10 @@ async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
169
186
  }
170
187
  var defaultConfig = {
171
188
  ..._defaultConfig,
189
+ watcher: {
190
+ ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.watcher,
191
+ additionalExts: [.../* @__PURE__ */ new Set([...(_ref1 = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_watcher = _defaultConfig.watcher) === null || _defaultConfig_watcher === void 0 ? void 0 : _defaultConfig_watcher.additionalExts) !== null && _ref1 !== void 0 ? _ref1 : [], ...expoEnvAdditionalExts])]
192
+ },
172
193
  resolver: {
173
194
  ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.resolver,
174
195
  useWatchman,
@@ -204,6 +225,7 @@ async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
204
225
  },
205
226
  transformer: {
206
227
  ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.transformer,
228
+ unstable_allowRequireContext: true,
207
229
  babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
208
230
  },
209
231
  ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
@@ -214,14 +236,14 @@ async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
214
236
  ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
215
237
  };
216
238
  return {
217
- defaultConfig: enforceBareMainModuleEntry(merged, mainModuleName),
239
+ defaultConfig: enforceBareMainModuleEntry(enforceWorkspaceVisibility(merged, projectRoot), mainModuleName),
218
240
  projectRoot,
219
241
  extraConfig
220
242
  };
221
243
  }
222
244
  async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
223
- var _ref;
224
- var _metroPluginOptions_argv, _defaultConfig_resolver;
245
+ var _ref, _ref1;
246
+ var _metroPluginOptions_argv, _defaultConfig_resolver, _defaultConfig_watcher;
225
247
  var extraConfig = {};
226
248
  var projectRoot = (0, import_path.resolve)((_ref = (_metroPluginOptions_argv = metroPluginOptions.argv) === null || _metroPluginOptions_argv === void 0 ? void 0 : _metroPluginOptions_argv.projectRoot) !== null && _ref !== void 0 ? _ref : config.root);
227
249
  var { mainModuleName, argv, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
@@ -231,27 +253,20 @@ async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
231
253
  console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
232
254
  }
233
255
  var { loadConfig } = await (0, import_projectImport.projectImport)(projectRoot, "metro");
234
- var { getDefaultConfig } = await (0, import_projectImport.projectImport)(projectRoot, "@expo/metro-config");
235
- var _defaultConfig = getDefaultConfig(projectRoot);
256
+ var _defaultConfig = getReactNativeDefaultConfig(projectRoot);
236
257
  if (mainModuleName) {
237
- var origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
238
- var resolveMainModuleName = await (async function() {
239
- var ExpoGoManifestHandlerMiddleware = (await (0, import_projectImport.projectImport)(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
240
- var manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
241
- (0, import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName)(manifestHandlerMiddleware, mainModuleName);
242
- return function(p) {
243
- return manifestHandlerMiddleware.resolveMainModuleName({
244
- pkg: { main: mainModuleName },
245
- platform: p.platform
246
- });
247
- };
248
- })();
258
+ var _defaultConfig_server;
259
+ var origRewriteRequestUrl = (_defaultConfig_server = _defaultConfig.server) === null || _defaultConfig_server === void 0 ? void 0 : _defaultConfig_server.rewriteRequestUrl;
260
+ var resolveMainModuleName = function() {
261
+ return mainModuleName;
262
+ };
249
263
  extraConfig.getResolveMainModuleName = resolveMainModuleName;
250
264
  _defaultConfig.server.rewriteRequestUrl = function(url) {
251
- if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
265
+ var _ref2;
266
+ if (rootIndexBundleRequestPattern.test(url)) {
252
267
  return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
253
268
  }
254
- return origRewriteRequestUrl(url);
269
+ return (_ref2 = origRewriteRequestUrl === null || origRewriteRequestUrl === void 0 ? void 0 : origRewriteRequestUrl(url)) !== null && _ref2 !== void 0 ? _ref2 : url;
255
270
  };
256
271
  }
257
272
  var existingBlockList = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = _defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.blockList;
@@ -263,6 +278,10 @@ async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
263
278
  }
264
279
  var defaultConfig = {
265
280
  ..._defaultConfig,
281
+ watcher: {
282
+ ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.watcher,
283
+ additionalExts: [.../* @__PURE__ */ new Set([...(_ref1 = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_watcher = _defaultConfig.watcher) === null || _defaultConfig_watcher === void 0 ? void 0 : _defaultConfig_watcher.additionalExts) !== null && _ref1 !== void 0 ? _ref1 : [], ...expoEnvAdditionalExts])]
284
+ },
266
285
  resolver: {
267
286
  ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.resolver,
268
287
  useWatchman,
@@ -298,6 +317,7 @@ async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
298
317
  },
299
318
  transformer: {
300
319
  ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.transformer,
320
+ unstable_allowRequireContext: true,
301
321
  babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
302
322
  },
303
323
  ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
@@ -313,7 +333,7 @@ async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
313
333
  ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
314
334
  });
315
335
  return {
316
- ...enforceBareMainModuleEntry(metroConfig, mainModuleName),
336
+ ...enforceBareMainModuleEntry(enforceWorkspaceVisibility(metroConfig, projectRoot), mainModuleName),
317
337
  ...extraConfig
318
338
  };
319
339
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getMetroConfigFromViteConfig.native.js","names":[],"sources":["cjs/metro-config/getMetroConfigFromViteConfig.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar getMetroConfigFromViteConfig_exports = {};\n__export(getMetroConfigFromViteConfig_exports, {\n buildMetroConfigInputFromViteConfig: () => buildMetroConfigInputFromViteConfig,\n getMetroConfigFromViteConfig: () => getMetroConfigFromViteConfig\n});\nmodule.exports = __toCommonJS(getMetroConfigFromViteConfig_exports);\nvar import_child_process = require(\"child_process\");\nvar import_path = require(\"path\");\nvar import_micromatch = __toESM(require(\"micromatch\"), 1);\nvar import_compiler = require(\"@vxrn/compiler\");\nvar import_projectImport = require(\"../utils/projectImport\");\nvar import_getTerminalReporter = require(\"../utils/getTerminalReporter\");\nvar import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName = require(\"../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName\");\nvar WATCHMAN_PROBE_TIMEOUT_MS = 2e3;\nvar watchmanResponsivePromises = /* @__PURE__ */ new Map();\nvar didWarnAboutWatchmanFallback = false;\nvar rootIndexBundleRequestPattern = /^(https?:\\/\\/[^/]+)?\\/index\\.bundle(?=$|[?#])/;\nvar metroWatchExclusions = [\n /[/\\\\]dist[/\\\\](?:static|server)(?:[/\\\\]|$)/,\n /[/\\\\]tests[/\\\\][^/\\\\]+[/\\\\]dist(?:[/\\\\]|$)/,\n /[/\\\\]\\.docker(?:[/\\\\]|$)/,\n /[/\\\\]\\.vite(?:[/\\\\]|$)/,\n /[/\\\\]node_modules[/\\\\]\\.vxrn(?:[/\\\\]|$)/\n];\nfunction getPlatformFromBundleUrl(url) {\n var _url_match;\n var platform = (_url_match = url.match(/[?&]platform=(ios|android)(?:&|$)/)) === null || _url_match === void 0 ? void 0 : _url_match[1];\n return platform === \"android\" ? \"android\" : \"ios\";\n}\nfunction rewriteMainModuleBundleUrl(url, resolveMainModuleName) {\n var resolvedMainModulePath = resolveMainModuleName({\n platform: getPlatformFromBundleUrl(url)\n });\n if (url.includes(\"/.expo/.virtual-metro-entry.bundle?\")) {\n return url.replace(\".expo/.virtual-metro-entry\", resolvedMainModulePath);\n }\n return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);\n}\nfunction isBareSpecifier(name) {\n return name !== \"\" && !name.startsWith(\".\") && !name.startsWith(\"/\");\n}\nfunction bareMainModuleForRequest(moduleName, mainModuleName) {\n if (!mainModuleName || !isBareSpecifier(mainModuleName)) return void 0;\n if (moduleName === `./${mainModuleName}`) return mainModuleName;\n return void 0;\n}\nfunction enforceBareMainModuleEntry(config, mainModuleName) {\n var _config_resolver;\n if (!mainModuleName || !isBareSpecifier(mainModuleName)) return config;\n var innerResolveRequest = config === null || config === void 0 ? void 0 : (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _config_resolver.resolveRequest;\n return {\n ...config,\n resolver: {\n ...config === null || config === void 0 ? void 0 : config.resolver,\n resolveRequest: function(context, moduleName, platform) {\n var bareMain = bareMainModuleForRequest(moduleName, mainModuleName);\n var resolveRequest = innerResolveRequest || context.resolveRequest;\n return resolveRequest(context, bareMain !== null && bareMain !== void 0 ? bareMain : moduleName, platform);\n }\n }\n };\n}\nasync function isWatchmanResponsive(projectRoot) {\n var probe = watchmanResponsivePromises.get(projectRoot);\n if (probe) {\n return probe;\n }\n probe = new Promise(function(resolve2) {\n var settled = false;\n var finish = function(value) {\n if (settled) return;\n settled = true;\n clearTimeout(timeout);\n resolve2(value);\n };\n var child = (0, import_child_process.spawn)(\"watchman\", [\n \"watch-project\",\n projectRoot\n ], {\n stdio: \"ignore\"\n });\n var timeout = setTimeout(function() {\n child.kill();\n finish(false);\n }, WATCHMAN_PROBE_TIMEOUT_MS);\n child.once(\"error\", function() {\n finish(false);\n });\n child.once(\"exit\", function(code) {\n finish(code === 0);\n });\n });\n watchmanResponsivePromises.set(projectRoot, probe);\n return probe;\n}\nfunction resolveNativeTransforms(projectRoot, metroPluginOptions) {\n var userBabelConfigPath = projectRoot ? (0, import_compiler.findUserBabelConfig)(projectRoot) : null;\n var hasUserBabelConfig = Boolean(userBabelConfigPath);\n var isNativeTransforms = process.env.ONE_METRO_NATIVE_TRANSFORMS === \"0\" ? false : process.env.ONE_METRO_NATIVE_TRANSFORMS === \"1\" ? true : metroPluginOptions.nativeTransforms === false ? false : metroPluginOptions.nativeTransforms === true ? true : hasUserBabelConfig ? false : true;\n if (userBabelConfigPath && isNativeTransforms) {\n console.warn(`[vxrn/metro] Ignoring user babel config at ${userBabelConfigPath} because native transforms are explicitly enabled (nativeTransforms: true or ONE_METRO_NATIVE_TRANSFORMS=1). Port its plugins to nativeTransformModules, or set nativeTransforms: false (or ONE_METRO_NATIVE_TRANSFORMS=0) to use the babel transformer.`);\n }\n return {\n isNativeTransforms,\n userBabelConfigPath\n };\n}\nasync function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {\n var _ref;\n var _metroPluginOptions_argv, _defaultConfig_resolver;\n var extraConfig = {};\n var projectRoot = (0, import_path.resolve)((_ref = (_metroPluginOptions_argv = metroPluginOptions.argv) === null || _metroPluginOptions_argv === void 0 ? void 0 : _metroPluginOptions_argv.projectRoot) !== null && _ref !== void 0 ? _ref : config.root);\n var { mainModuleName, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;\n var useWatchman = watchman !== null && watchman !== void 0 ? watchman : await isWatchmanResponsive(projectRoot);\n if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {\n didWarnAboutWatchmanFallback = true;\n console.warn(\"[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.\");\n }\n var { getDefaultConfig } = await (0, import_projectImport.projectImport)(projectRoot, \"@expo/metro-config\");\n var _defaultConfig = getDefaultConfig(projectRoot);\n if (mainModuleName) {\n var origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;\n var resolveMainModuleName = await (async function() {\n var ExpoGoManifestHandlerMiddleware = (await (0, import_projectImport.projectImport)(projectRoot, \"@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js\")).default.ExpoGoManifestHandlerMiddleware;\n var manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});\n (0, import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName)(manifestHandlerMiddleware, mainModuleName);\n return function(p) {\n return manifestHandlerMiddleware.resolveMainModuleName({\n pkg: {\n main: mainModuleName\n },\n platform: p.platform\n });\n };\n })();\n extraConfig.getResolveMainModuleName = resolveMainModuleName;\n _defaultConfig.server.rewriteRequestUrl = function(url) {\n if (url.includes(\"/.expo/.virtual-metro-entry.bundle?\") || rootIndexBundleRequestPattern.test(url)) {\n return rewriteMainModuleBundleUrl(url, resolveMainModuleName);\n }\n return origRewriteRequestUrl(url);\n };\n }\n var existingBlockList = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = _defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.blockList;\n var blockList = [\n ...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [\n existingBlockList\n ] : [],\n ...metroWatchExclusions\n ];\n var { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);\n var nativeWorkerPath;\n if (isNativeTransforms) {\n nativeWorkerPath = (0, import_projectImport.projectResolve)(projectRoot, \"@vxrn/vite-plugin-metro/transformer/metroNativeWorker\");\n }\n var defaultConfig = {\n ..._defaultConfig,\n resolver: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.resolver,\n useWatchman,\n blockList,\n sourceExts: [\n \"js\",\n \"jsx\",\n \"json\",\n \"ts\",\n \"tsx\",\n \"mjs\",\n \"cjs\"\n ],\n // `one` related packages are using `.mjs` extensions. This fixes `.native` files not being resolved correctly when `.mjs` files are present.\n resolveRequest: function(context, moduleName, platform) {\n var _defaultConfig_resolver2;\n var origResolveRequestFn = (_defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver2 = _defaultConfig.resolver) === null || _defaultConfig_resolver2 === void 0 ? void 0 : _defaultConfig_resolver2.resolveRequest) || context.resolveRequest;\n if (excludeModules && excludeModules.length > 0) {\n if (import_micromatch.default.isMatch(moduleName, excludeModules)) {\n return origResolveRequestFn(context, \"@vxrn/vite-plugin-metro/empty\", platform);\n }\n }\n if (moduleName.startsWith(\"@babel/runtime\")) {\n var contextOverride = {\n ...context,\n unstable_conditionNames: context.unstable_conditionNames.filter(function(c) {\n return c !== \"import\";\n })\n };\n return origResolveRequestFn(contextOverride, moduleName, platform);\n }\n return origResolveRequestFn(context, moduleName, platform);\n }\n },\n transformer: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.transformer,\n babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, \"@vxrn/vite-plugin-metro/babel-transformer\")\n },\n // transformerPath is a TOP-LEVEL metro config key, not a transformer option.\n // nesting it under transformer silently leaves metro on its default worker.\n ...nativeWorkerPath ? {\n transformerPath: nativeWorkerPath\n } : {},\n reporter: await (0, import_getTerminalReporter.getTerminalReporter)(projectRoot)\n };\n var merged = {\n ...defaultConfig,\n ...typeof defaultConfigOverrides === \"function\" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides\n };\n return {\n defaultConfig: enforceBareMainModuleEntry(merged, mainModuleName),\n projectRoot,\n extraConfig\n };\n}\nasync function getMetroConfigFromViteConfig(config, metroPluginOptions) {\n var _ref;\n var _metroPluginOptions_argv, _defaultConfig_resolver;\n var extraConfig = {};\n var projectRoot = (0, import_path.resolve)((_ref = (_metroPluginOptions_argv = metroPluginOptions.argv) === null || _metroPluginOptions_argv === void 0 ? void 0 : _metroPluginOptions_argv.projectRoot) !== null && _ref !== void 0 ? _ref : config.root);\n var { mainModuleName, argv, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;\n var useWatchman = watchman !== null && watchman !== void 0 ? watchman : await isWatchmanResponsive(projectRoot);\n if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {\n didWarnAboutWatchmanFallback = true;\n console.warn(\"[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.\");\n }\n var { loadConfig } = await (0, import_projectImport.projectImport)(projectRoot, \"metro\");\n var { getDefaultConfig } = await (0, import_projectImport.projectImport)(projectRoot, \"@expo/metro-config\");\n var _defaultConfig = getDefaultConfig(projectRoot);\n if (mainModuleName) {\n var origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;\n var resolveMainModuleName = await (async function() {\n var ExpoGoManifestHandlerMiddleware = (await (0, import_projectImport.projectImport)(projectRoot, \"@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js\")).default.ExpoGoManifestHandlerMiddleware;\n var manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});\n (0, import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName)(manifestHandlerMiddleware, mainModuleName);\n return function(p) {\n return manifestHandlerMiddleware.resolveMainModuleName({\n pkg: {\n main: mainModuleName\n },\n platform: p.platform\n });\n };\n })();\n extraConfig.getResolveMainModuleName = resolveMainModuleName;\n _defaultConfig.server.rewriteRequestUrl = function(url) {\n if (url.includes(\"/.expo/.virtual-metro-entry.bundle?\") || rootIndexBundleRequestPattern.test(url)) {\n return rewriteMainModuleBundleUrl(url, resolveMainModuleName);\n }\n return origRewriteRequestUrl(url);\n };\n }\n var existingBlockList = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = _defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.blockList;\n var blockList = [\n ...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [\n existingBlockList\n ] : [],\n ...metroWatchExclusions\n ];\n var { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);\n var nativeWorkerPath;\n if (isNativeTransforms) {\n nativeWorkerPath = (0, import_projectImport.projectResolve)(projectRoot, \"@vxrn/vite-plugin-metro/transformer/metroNativeWorker\");\n }\n var defaultConfig = {\n ..._defaultConfig,\n resolver: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.resolver,\n useWatchman,\n blockList,\n sourceExts: [\n \"js\",\n \"jsx\",\n \"json\",\n \"ts\",\n \"tsx\",\n \"mjs\",\n \"cjs\"\n ],\n // `one` related packages are using `.mjs` extensions. This somehow fixes `.native` files not being resolved correctly when `.mjs` files are present.\n resolveRequest: function(context, moduleName, platform) {\n var _defaultConfig_resolver2;\n var origResolveRequestFn = (_defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver2 = _defaultConfig.resolver) === null || _defaultConfig_resolver2 === void 0 ? void 0 : _defaultConfig_resolver2.resolveRequest) || context.resolveRequest;\n if (excludeModules && excludeModules.length > 0) {\n if (import_micromatch.default.isMatch(moduleName, excludeModules)) {\n return origResolveRequestFn(context, \"@vxrn/vite-plugin-metro/empty\", platform);\n }\n }\n if (moduleName.startsWith(\"@babel/runtime\")) {\n var contextOverride = {\n ...context,\n unstable_conditionNames: context.unstable_conditionNames.filter(function(c) {\n return c !== \"import\";\n })\n };\n return origResolveRequestFn(contextOverride, moduleName, platform);\n }\n return origResolveRequestFn(context, moduleName, platform);\n }\n },\n transformer: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.transformer,\n babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, \"@vxrn/vite-plugin-metro/babel-transformer\")\n },\n // transformerPath is a TOP-LEVEL metro config key, not a transformer option.\n // nesting it under transformer silently leaves metro on its default worker.\n ...nativeWorkerPath ? {\n transformerPath: nativeWorkerPath\n } : {},\n reporter: await (0, import_getTerminalReporter.getTerminalReporter)(projectRoot)\n };\n var metroConfig = await loadConfig({\n cwd: projectRoot,\n projectRoot,\n \"reset-cache\": !!process.env.METRO_RESET_CACHE,\n ...argv\n }, {\n ...defaultConfig,\n ...typeof defaultConfigOverrides === \"function\" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides\n });\n return {\n ...enforceBareMainModuleEntry(metroConfig, mainModuleName),\n ...extraConfig\n };\n}\n//# sourceMappingURL=getMetroConfigFromViteConfig.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"getMetroConfigFromViteConfig.native.js","names":[],"sources":["cjs/metro-config/getMetroConfigFromViteConfig.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar getMetroConfigFromViteConfig_exports = {};\n__export(getMetroConfigFromViteConfig_exports, {\n buildMetroConfigInputFromViteConfig: () => buildMetroConfigInputFromViteConfig,\n getMetroConfigFromViteConfig: () => getMetroConfigFromViteConfig\n});\nmodule.exports = __toCommonJS(getMetroConfigFromViteConfig_exports);\nvar import_vite = require(\"vite\");\nvar import_child_process = require(\"child_process\");\nvar import_path = require(\"path\");\nvar import_micromatch = __toESM(require(\"micromatch\"), 1);\nvar import_metro_config = require(\"@react-native/metro-config\");\nvar import_compiler = require(\"@vxrn/compiler\");\nvar import_projectImport = require(\"../utils/projectImport\");\nvar import_getTerminalReporter = require(\"../utils/getTerminalReporter\");\nvar WATCHMAN_PROBE_TIMEOUT_MS = 2e3;\nvar expoEnvAdditionalExts = [\n \"env\",\n \"local\",\n \"development\"\n];\nvar watchmanResponsivePromises = /* @__PURE__ */ new Map();\nvar didWarnAboutWatchmanFallback = false;\nvar rootIndexBundleRequestPattern = /^(https?:\\/\\/[^/]+)?\\/index\\.bundle(?=$|[?#])/;\nvar metroWatchExclusions = [\n /[/\\\\]dist[/\\\\](?:static|server)(?:[/\\\\]|$)/,\n /[/\\\\]tests[/\\\\][^/\\\\]+[/\\\\]dist(?:[/\\\\]|$)/,\n /[/\\\\]\\.docker(?:[/\\\\]|$)/,\n /[/\\\\]\\.vite(?:[/\\\\]|$)/,\n /[/\\\\]node_modules[/\\\\]\\.vxrn(?:[/\\\\]|$)/\n];\nfunction enforceWorkspaceVisibility(config, projectRoot) {\n var _config_watchFolders, _ref;\n var _config_resolver;\n var workspaceRoot = (0, import_vite.searchForWorkspaceRoot)(projectRoot);\n if (workspaceRoot === projectRoot) return config;\n return {\n ...config,\n watchFolders: [\n .../* @__PURE__ */ new Set([\n ...(_config_watchFolders = config.watchFolders) !== null && _config_watchFolders !== void 0 ? _config_watchFolders : [],\n workspaceRoot\n ])\n ],\n resolver: {\n ...config.resolver,\n nodeModulesPaths: [\n .../* @__PURE__ */ new Set([\n ...(_ref = (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _config_resolver.nodeModulesPaths) !== null && _ref !== void 0 ? _ref : [],\n (0, import_path.resolve)(projectRoot, \"node_modules\"),\n (0, import_path.resolve)(workspaceRoot, \"node_modules\")\n ])\n ]\n }\n };\n}\nfunction getReactNativeDefaultConfig(projectRoot) {\n return enforceWorkspaceVisibility((0, import_metro_config.getDefaultConfig)(projectRoot), projectRoot);\n}\nfunction getPlatformFromBundleUrl(url) {\n var _url_match;\n var platform = (_url_match = url.match(/[?&]platform=(ios|android)(?:&|$)/)) === null || _url_match === void 0 ? void 0 : _url_match[1];\n return platform === \"android\" ? \"android\" : \"ios\";\n}\nfunction rewriteMainModuleBundleUrl(url, resolveMainModuleName) {\n var resolvedMainModulePath = resolveMainModuleName({\n platform: getPlatformFromBundleUrl(url)\n });\n return url.replace(rootIndexBundleRequestPattern, `$1/${resolvedMainModulePath}.bundle`);\n}\nfunction isBareSpecifier(name) {\n return name !== \"\" && !name.startsWith(\".\") && !name.startsWith(\"/\");\n}\nfunction bareMainModuleForRequest(moduleName, mainModuleName) {\n if (!mainModuleName || !isBareSpecifier(mainModuleName)) return void 0;\n if (moduleName === `./${mainModuleName}`) return mainModuleName;\n return void 0;\n}\nfunction enforceBareMainModuleEntry(config, mainModuleName) {\n var _config_resolver;\n if (!mainModuleName || !isBareSpecifier(mainModuleName)) return config;\n var innerResolveRequest = config === null || config === void 0 ? void 0 : (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _config_resolver.resolveRequest;\n return {\n ...config,\n resolver: {\n ...config === null || config === void 0 ? void 0 : config.resolver,\n resolveRequest: function(context, moduleName, platform) {\n var bareMain = bareMainModuleForRequest(moduleName, mainModuleName);\n var resolveRequest = innerResolveRequest || context.resolveRequest;\n return resolveRequest(context, bareMain !== null && bareMain !== void 0 ? bareMain : moduleName, platform);\n }\n }\n };\n}\nasync function isWatchmanResponsive(projectRoot) {\n var probe = watchmanResponsivePromises.get(projectRoot);\n if (probe) {\n return probe;\n }\n probe = new Promise(function(resolve2) {\n var settled = false;\n var finish = function(value) {\n if (settled) return;\n settled = true;\n clearTimeout(timeout);\n resolve2(value);\n };\n var child = (0, import_child_process.spawn)(\"watchman\", [\n \"watch-project\",\n projectRoot\n ], {\n stdio: \"ignore\"\n });\n var timeout = setTimeout(function() {\n child.kill();\n finish(false);\n }, WATCHMAN_PROBE_TIMEOUT_MS);\n child.once(\"error\", function() {\n finish(false);\n });\n child.once(\"exit\", function(code) {\n finish(code === 0);\n });\n });\n watchmanResponsivePromises.set(projectRoot, probe);\n return probe;\n}\nfunction resolveNativeTransforms(projectRoot, metroPluginOptions) {\n var userBabelConfigPath = projectRoot ? (0, import_compiler.findUserBabelConfig)(projectRoot) : null;\n var hasUserBabelConfig = Boolean(userBabelConfigPath);\n var isNativeTransforms = process.env.ONE_METRO_NATIVE_TRANSFORMS === \"0\" ? false : process.env.ONE_METRO_NATIVE_TRANSFORMS === \"1\" ? true : metroPluginOptions.nativeTransforms === false ? false : metroPluginOptions.nativeTransforms === true ? true : hasUserBabelConfig ? false : true;\n if (userBabelConfigPath && isNativeTransforms) {\n console.warn(`[vxrn/metro] Ignoring user babel config at ${userBabelConfigPath} because native transforms are explicitly enabled (nativeTransforms: true or ONE_METRO_NATIVE_TRANSFORMS=1). Port its plugins to nativeTransformModules, or set nativeTransforms: false (or ONE_METRO_NATIVE_TRANSFORMS=0) to use the babel transformer.`);\n }\n return {\n isNativeTransforms,\n userBabelConfigPath\n };\n}\nasync function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {\n var _ref, _ref1;\n var _metroPluginOptions_argv, _defaultConfig_resolver, _defaultConfig_watcher;\n var extraConfig = {};\n var projectRoot = (0, import_path.resolve)((_ref = (_metroPluginOptions_argv = metroPluginOptions.argv) === null || _metroPluginOptions_argv === void 0 ? void 0 : _metroPluginOptions_argv.projectRoot) !== null && _ref !== void 0 ? _ref : config.root);\n var { mainModuleName, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;\n var useWatchman = watchman !== null && watchman !== void 0 ? watchman : await isWatchmanResponsive(projectRoot);\n if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {\n didWarnAboutWatchmanFallback = true;\n console.warn(\"[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.\");\n }\n var _defaultConfig = getReactNativeDefaultConfig(projectRoot);\n if (mainModuleName) {\n var _defaultConfig_server;\n var origRewriteRequestUrl = (_defaultConfig_server = _defaultConfig.server) === null || _defaultConfig_server === void 0 ? void 0 : _defaultConfig_server.rewriteRequestUrl;\n var resolveMainModuleName = function() {\n return mainModuleName;\n };\n extraConfig.getResolveMainModuleName = resolveMainModuleName;\n _defaultConfig.server.rewriteRequestUrl = function(url) {\n var _ref2;\n if (rootIndexBundleRequestPattern.test(url)) {\n return rewriteMainModuleBundleUrl(url, resolveMainModuleName);\n }\n return (_ref2 = origRewriteRequestUrl === null || origRewriteRequestUrl === void 0 ? void 0 : origRewriteRequestUrl(url)) !== null && _ref2 !== void 0 ? _ref2 : url;\n };\n }\n var existingBlockList = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = _defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.blockList;\n var blockList = [\n ...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [\n existingBlockList\n ] : [],\n ...metroWatchExclusions\n ];\n var { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);\n var nativeWorkerPath;\n if (isNativeTransforms) {\n nativeWorkerPath = (0, import_projectImport.projectResolve)(projectRoot, \"@vxrn/vite-plugin-metro/transformer/metroNativeWorker\");\n }\n var defaultConfig = {\n ..._defaultConfig,\n watcher: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.watcher,\n additionalExts: [\n .../* @__PURE__ */ new Set([\n ...(_ref1 = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_watcher = _defaultConfig.watcher) === null || _defaultConfig_watcher === void 0 ? void 0 : _defaultConfig_watcher.additionalExts) !== null && _ref1 !== void 0 ? _ref1 : [],\n ...expoEnvAdditionalExts\n ])\n ]\n },\n resolver: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.resolver,\n useWatchman,\n blockList,\n sourceExts: [\n \"js\",\n \"jsx\",\n \"json\",\n \"ts\",\n \"tsx\",\n \"mjs\",\n \"cjs\"\n ],\n // `one` related packages are using `.mjs` extensions. This fixes `.native` files not being resolved correctly when `.mjs` files are present.\n resolveRequest: function(context, moduleName, platform) {\n var _defaultConfig_resolver2;\n var origResolveRequestFn = (_defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver2 = _defaultConfig.resolver) === null || _defaultConfig_resolver2 === void 0 ? void 0 : _defaultConfig_resolver2.resolveRequest) || context.resolveRequest;\n if (excludeModules && excludeModules.length > 0) {\n if (import_micromatch.default.isMatch(moduleName, excludeModules)) {\n return origResolveRequestFn(context, \"@vxrn/vite-plugin-metro/empty\", platform);\n }\n }\n if (moduleName.startsWith(\"@babel/runtime\")) {\n var contextOverride = {\n ...context,\n unstable_conditionNames: context.unstable_conditionNames.filter(function(c) {\n return c !== \"import\";\n })\n };\n return origResolveRequestFn(contextOverride, moduleName, platform);\n }\n return origResolveRequestFn(context, moduleName, platform);\n }\n },\n transformer: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.transformer,\n // one's router and Expo's optional development env module both use\n // require.context. Metro installs a throwing runtime stub unless this\n // graph feature is enabled.\n unstable_allowRequireContext: true,\n babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, \"@vxrn/vite-plugin-metro/babel-transformer\")\n },\n // transformerPath is a TOP-LEVEL metro config key, not a transformer option.\n // nesting it under transformer silently leaves metro on its default worker.\n ...nativeWorkerPath ? {\n transformerPath: nativeWorkerPath\n } : {},\n reporter: await (0, import_getTerminalReporter.getTerminalReporter)(projectRoot)\n };\n var merged = {\n ...defaultConfig,\n ...typeof defaultConfigOverrides === \"function\" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides\n };\n return {\n defaultConfig: enforceBareMainModuleEntry(enforceWorkspaceVisibility(merged, projectRoot), mainModuleName),\n projectRoot,\n extraConfig\n };\n}\nasync function getMetroConfigFromViteConfig(config, metroPluginOptions) {\n var _ref, _ref1;\n var _metroPluginOptions_argv, _defaultConfig_resolver, _defaultConfig_watcher;\n var extraConfig = {};\n var projectRoot = (0, import_path.resolve)((_ref = (_metroPluginOptions_argv = metroPluginOptions.argv) === null || _metroPluginOptions_argv === void 0 ? void 0 : _metroPluginOptions_argv.projectRoot) !== null && _ref !== void 0 ? _ref : config.root);\n var { mainModuleName, argv, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;\n var useWatchman = watchman !== null && watchman !== void 0 ? watchman : await isWatchmanResponsive(projectRoot);\n if (watchman === void 0 && !useWatchman && !didWarnAboutWatchmanFallback) {\n didWarnAboutWatchmanFallback = true;\n console.warn(\"[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.\");\n }\n var { loadConfig } = await (0, import_projectImport.projectImport)(projectRoot, \"metro\");\n var _defaultConfig = getReactNativeDefaultConfig(projectRoot);\n if (mainModuleName) {\n var _defaultConfig_server;\n var origRewriteRequestUrl = (_defaultConfig_server = _defaultConfig.server) === null || _defaultConfig_server === void 0 ? void 0 : _defaultConfig_server.rewriteRequestUrl;\n var resolveMainModuleName = function() {\n return mainModuleName;\n };\n extraConfig.getResolveMainModuleName = resolveMainModuleName;\n _defaultConfig.server.rewriteRequestUrl = function(url) {\n var _ref2;\n if (rootIndexBundleRequestPattern.test(url)) {\n return rewriteMainModuleBundleUrl(url, resolveMainModuleName);\n }\n return (_ref2 = origRewriteRequestUrl === null || origRewriteRequestUrl === void 0 ? void 0 : origRewriteRequestUrl(url)) !== null && _ref2 !== void 0 ? _ref2 : url;\n };\n }\n var existingBlockList = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = _defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.blockList;\n var blockList = [\n ...existingBlockList ? Array.isArray(existingBlockList) ? existingBlockList : [\n existingBlockList\n ] : [],\n ...metroWatchExclusions\n ];\n var { isNativeTransforms } = resolveNativeTransforms(projectRoot, metroPluginOptions);\n var nativeWorkerPath;\n if (isNativeTransforms) {\n nativeWorkerPath = (0, import_projectImport.projectResolve)(projectRoot, \"@vxrn/vite-plugin-metro/transformer/metroNativeWorker\");\n }\n var defaultConfig = {\n ..._defaultConfig,\n watcher: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.watcher,\n additionalExts: [\n .../* @__PURE__ */ new Set([\n ...(_ref1 = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_watcher = _defaultConfig.watcher) === null || _defaultConfig_watcher === void 0 ? void 0 : _defaultConfig_watcher.additionalExts) !== null && _ref1 !== void 0 ? _ref1 : [],\n ...expoEnvAdditionalExts\n ])\n ]\n },\n resolver: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.resolver,\n useWatchman,\n blockList,\n sourceExts: [\n \"js\",\n \"jsx\",\n \"json\",\n \"ts\",\n \"tsx\",\n \"mjs\",\n \"cjs\"\n ],\n // `one` related packages are using `.mjs` extensions. This somehow fixes `.native` files not being resolved correctly when `.mjs` files are present.\n resolveRequest: function(context, moduleName, platform) {\n var _defaultConfig_resolver2;\n var origResolveRequestFn = (_defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver2 = _defaultConfig.resolver) === null || _defaultConfig_resolver2 === void 0 ? void 0 : _defaultConfig_resolver2.resolveRequest) || context.resolveRequest;\n if (excludeModules && excludeModules.length > 0) {\n if (import_micromatch.default.isMatch(moduleName, excludeModules)) {\n return origResolveRequestFn(context, \"@vxrn/vite-plugin-metro/empty\", platform);\n }\n }\n if (moduleName.startsWith(\"@babel/runtime\")) {\n var contextOverride = {\n ...context,\n unstable_conditionNames: context.unstable_conditionNames.filter(function(c) {\n return c !== \"import\";\n })\n };\n return origResolveRequestFn(contextOverride, moduleName, platform);\n }\n return origResolveRequestFn(context, moduleName, platform);\n }\n },\n transformer: {\n ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.transformer,\n // one's router and Expo's optional development env module both use\n // require.context. Metro installs a throwing runtime stub unless this\n // graph feature is enabled.\n unstable_allowRequireContext: true,\n babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, \"@vxrn/vite-plugin-metro/babel-transformer\")\n },\n // transformerPath is a TOP-LEVEL metro config key, not a transformer option.\n // nesting it under transformer silently leaves metro on its default worker.\n ...nativeWorkerPath ? {\n transformerPath: nativeWorkerPath\n } : {},\n reporter: await (0, import_getTerminalReporter.getTerminalReporter)(projectRoot)\n };\n var metroConfig = await loadConfig({\n cwd: projectRoot,\n projectRoot,\n \"reset-cache\": !!process.env.METRO_RESET_CACHE,\n ...argv\n }, {\n ...defaultConfig,\n ...typeof defaultConfigOverrides === \"function\" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides\n });\n return {\n ...enforceBareMainModuleEntry(enforceWorkspaceVisibility(metroConfig, projectRoot), mainModuleName),\n ...extraConfig\n };\n}\n//# sourceMappingURL=getMetroConfigFromViteConfig.js.map\n"],"mappings":"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"}
@@ -4,6 +4,12 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
7
13
  var __copyProps = (to, from, except, desc) => {
8
14
  if (from && typeof from === "object" || typeof from === "function") {
9
15
  for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
@@ -19,11 +25,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
19
25
  }) : target, mod));
20
26
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
27
  var babel_transformer_exports = {};
28
+ __export(babel_transformer_exports, { getCacheKey: () => getCacheKey });
22
29
  module.exports = __toCommonJS(babel_transformer_exports);
23
30
  var import_node_assert = __toESM(require("node:assert"), 1);
31
+ var import_node_crypto = require("node:crypto");
32
+ var import_node_fs = require("node:fs");
33
+ var import_node_path = __toESM(require("node:path"), 1);
34
+ var import_expoVirtualEnv = require("./expoVirtualEnv.cjs");
24
35
  var import_loadBabelConfig = require("./loadBabelConfig.cjs");
25
36
  var import_transformSync = require("./transformSync.cjs");
26
- const debug = require("debug")("expo:metro-config:babel-transformer");
37
+ const debug = require("debug")("vxrn:metro-config:babel-transformer");
27
38
  function isCustomTruthy(value) {
28
39
  return String(value) === "true";
29
40
  }
@@ -49,7 +60,7 @@ function getBabelCaller({ filename, options, oneViteMetroBabelConfig }) {
49
60
  const isServer = isReactServer || isGenericServer;
50
61
  const routerRoot = typeof options.customTransformOptions?.routerRoot === "string" ? decodeURI(options.customTransformOptions.routerRoot) : void 0;
51
62
  if (routerRoot == null) {
52
- memoizeWarning("Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory. This can occur if you bundle without Expo CLI or expo/metro-config.");
63
+ memoizeWarning("Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory.");
53
64
  }
54
65
  return {
55
66
  name: "metro",
@@ -74,7 +85,14 @@ function getBabelCaller({ filename, options, oneViteMetroBabelConfig }) {
74
85
  function stringOrUndefined(value) {
75
86
  return typeof value === "string" ? value : void 0;
76
87
  }
77
- const transform = ({ filename, src, options, plugins }) => {
88
+ const transform = ({ filename, src: originalSrc, options, plugins }) => {
89
+ const src = (0, import_expoVirtualEnv.substituteExpoVirtualEnvSource)({
90
+ filename,
91
+ src: originalSrc,
92
+ projectRoot: options.projectRoot,
93
+ dev: options.dev,
94
+ environment: options.customTransformOptions?.environment
95
+ });
78
96
  const viteCustomTransformOptions = options.customTransformOptions?.vite;
79
97
  const customOptionsFromVite = (() => {
80
98
  const c = viteCustomTransformOptions;
@@ -121,5 +139,36 @@ const transform = ({ filename, src, options, plugins }) => {
121
139
  }
122
140
  }
123
141
  };
124
- const babelTransformer = { transform };
142
+ function getCacheKey(options) {
143
+ const hash = (0, import_node_crypto.createHash)("sha256");
144
+ hash.update("vxrn-metro-babel-transformer-v1");
145
+ const projectRoot = options?.projectRoot;
146
+ if (!projectRoot) {
147
+ return hash.digest("hex");
148
+ }
149
+ hash.update(projectRoot);
150
+ for (const file of [
151
+ ".env",
152
+ ".env.development",
153
+ ".env.local",
154
+ ".env.development.local"
155
+ ]) {
156
+ const filename = import_node_path.default.join(projectRoot, file);
157
+ hash.update(filename);
158
+ try {
159
+ hash.update((0, import_node_fs.readFileSync)(filename));
160
+ } catch (error) {
161
+ if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") {
162
+ continue;
163
+ }
164
+ throw error;
165
+ }
166
+ }
167
+ hash.update(JSON.stringify(Object.entries(process.env).filter(([key]) => key.startsWith("ONE_PUBLIC_") || key.startsWith("EXPO_PUBLIC_")).sort(([left], [right]) => left.localeCompare(right))));
168
+ return hash.digest("hex");
169
+ }
170
+ const babelTransformer = {
171
+ transform,
172
+ getCacheKey
173
+ };
125
174
  module.exports = babelTransformer;
@@ -6,6 +6,12 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
9
15
  var __copyProps = (to, from, except, desc) => {
10
16
  if (from && typeof from === "object" || typeof from === "function") {
11
17
  for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
@@ -19,10 +25,18 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
19
25
  value: mod,
20
26
  enumerable: true
21
27
  }) : target, mod));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var babel_transformer_exports = {};
30
+ __export(babel_transformer_exports, { getCacheKey: () => getCacheKey });
31
+ module.exports = __toCommonJS(babel_transformer_exports);
22
32
  var import_assert = __toESM(require("assert"), 1);
33
+ var import_crypto = require("crypto");
34
+ var import_fs = require("fs");
35
+ var import_path = __toESM(require("path"), 1);
36
+ var import_expoVirtualEnv = require("./expoVirtualEnv.native.js");
23
37
  var import_loadBabelConfig = require("./loadBabelConfig.native.js");
24
38
  var import_transformSync = require("./transformSync.native.js");
25
- var debug = require("debug")("expo:metro-config:babel-transformer");
39
+ var debug = require("debug")("vxrn:metro-config:babel-transformer");
26
40
  function isCustomTruthy(value) {
27
41
  return String(value) === "true";
28
42
  }
@@ -53,7 +67,7 @@ function getBabelCaller(param) {
53
67
  var isServer = isReactServer || isGenericServer;
54
68
  var routerRoot = typeof ((_options_customTransformOptions2 = options.customTransformOptions) === null || _options_customTransformOptions2 === void 0 ? void 0 : _options_customTransformOptions2.routerRoot) === "string" ? decodeURI(options.customTransformOptions.routerRoot) : void 0;
55
69
  if (routerRoot == null) {
56
- memoizeWarning("Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory. This can occur if you bundle without Expo CLI or expo/metro-config.");
70
+ memoizeWarning("Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory.");
57
71
  }
58
72
  return {
59
73
  name: "metro",
@@ -79,9 +93,16 @@ function stringOrUndefined(value) {
79
93
  return typeof value === "string" ? value : void 0;
80
94
  }
81
95
  var transform = function(param) {
82
- var { filename, src, options, plugins } = param;
83
- var _options_customTransformOptions;
84
- var viteCustomTransformOptions = (_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.vite;
96
+ var { filename, src: originalSrc, options, plugins } = param;
97
+ var _options_customTransformOptions, _options_customTransformOptions1;
98
+ var src = (0, import_expoVirtualEnv.substituteExpoVirtualEnvSource)({
99
+ filename,
100
+ src: originalSrc,
101
+ projectRoot: options.projectRoot,
102
+ dev: options.dev,
103
+ environment: (_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.environment
104
+ });
105
+ var viteCustomTransformOptions = (_options_customTransformOptions1 = options.customTransformOptions) === null || _options_customTransformOptions1 === void 0 ? void 0 : _options_customTransformOptions1.vite;
85
106
  var customOptionsFromVite = (function() {
86
107
  var c = viteCustomTransformOptions;
87
108
  if (!c || typeof c !== "object") {
@@ -127,5 +148,43 @@ var transform = function(param) {
127
148
  }
128
149
  }
129
150
  };
130
- var babelTransformer = { transform };
151
+ function getCacheKey(options) {
152
+ var hash = (0, import_crypto.createHash)("sha256");
153
+ hash.update("vxrn-metro-babel-transformer-v1");
154
+ var projectRoot = options === null || options === void 0 ? void 0 : options.projectRoot;
155
+ if (!projectRoot) {
156
+ return hash.digest("hex");
157
+ }
158
+ hash.update(projectRoot);
159
+ for (var _i = 0, _iter = [
160
+ ".env",
161
+ ".env.development",
162
+ ".env.local",
163
+ ".env.development.local"
164
+ ]; _i < _iter.length; _i++) {
165
+ var file = _iter[_i];
166
+ var filename = import_path.default.join(projectRoot, file);
167
+ hash.update(filename);
168
+ try {
169
+ hash.update((0, import_fs.readFileSync)(filename));
170
+ } catch (error) {
171
+ if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") {
172
+ continue;
173
+ }
174
+ throw error;
175
+ }
176
+ }
177
+ hash.update(JSON.stringify(Object.entries(process.env).filter(function(param) {
178
+ var [key] = param;
179
+ return key.startsWith("ONE_PUBLIC_") || key.startsWith("EXPO_PUBLIC_");
180
+ }).sort(function(param, param1) {
181
+ var [left] = param, [right] = param1;
182
+ return left.localeCompare(right);
183
+ })));
184
+ return hash.digest("hex");
185
+ }
186
+ var babelTransformer = {
187
+ transform,
188
+ getCacheKey
189
+ };
131
190
  module.exports = babelTransformer;
@@ -6,6 +6,12 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
9
15
  var __copyProps = (to, from, except, desc) => {
10
16
  if (from && typeof from === "object" || typeof from === "function") {
11
17
  for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
@@ -19,10 +25,18 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
19
25
  value: mod,
20
26
  enumerable: true
21
27
  }) : target, mod));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var babel_transformer_exports = {};
30
+ __export(babel_transformer_exports, { getCacheKey: () => getCacheKey });
31
+ module.exports = __toCommonJS(babel_transformer_exports);
22
32
  var import_assert = __toESM(require("assert"), 1);
33
+ var import_crypto = require("crypto");
34
+ var import_fs = require("fs");
35
+ var import_path = __toESM(require("path"), 1);
36
+ var import_expoVirtualEnv = require("./expoVirtualEnv.native.js");
23
37
  var import_loadBabelConfig = require("./loadBabelConfig.native.js");
24
38
  var import_transformSync = require("./transformSync.native.js");
25
- var debug = require("debug")("expo:metro-config:babel-transformer");
39
+ var debug = require("debug")("vxrn:metro-config:babel-transformer");
26
40
  function isCustomTruthy(value) {
27
41
  return String(value) === "true";
28
42
  }
@@ -53,7 +67,7 @@ function getBabelCaller(param) {
53
67
  var isServer = isReactServer || isGenericServer;
54
68
  var routerRoot = typeof ((_options_customTransformOptions2 = options.customTransformOptions) === null || _options_customTransformOptions2 === void 0 ? void 0 : _options_customTransformOptions2.routerRoot) === "string" ? decodeURI(options.customTransformOptions.routerRoot) : void 0;
55
69
  if (routerRoot == null) {
56
- memoizeWarning("Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory. This can occur if you bundle without Expo CLI or expo/metro-config.");
70
+ memoizeWarning("Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory.");
57
71
  }
58
72
  return {
59
73
  name: "metro",
@@ -79,9 +93,16 @@ function stringOrUndefined(value) {
79
93
  return typeof value === "string" ? value : void 0;
80
94
  }
81
95
  var transform = function(param) {
82
- var { filename, src, options, plugins } = param;
83
- var _options_customTransformOptions;
84
- var viteCustomTransformOptions = (_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.vite;
96
+ var { filename, src: originalSrc, options, plugins } = param;
97
+ var _options_customTransformOptions, _options_customTransformOptions1;
98
+ var src = (0, import_expoVirtualEnv.substituteExpoVirtualEnvSource)({
99
+ filename,
100
+ src: originalSrc,
101
+ projectRoot: options.projectRoot,
102
+ dev: options.dev,
103
+ environment: (_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.environment
104
+ });
105
+ var viteCustomTransformOptions = (_options_customTransformOptions1 = options.customTransformOptions) === null || _options_customTransformOptions1 === void 0 ? void 0 : _options_customTransformOptions1.vite;
85
106
  var customOptionsFromVite = (function() {
86
107
  var c = viteCustomTransformOptions;
87
108
  if (!c || typeof c !== "object") {
@@ -127,7 +148,45 @@ var transform = function(param) {
127
148
  }
128
149
  }
129
150
  };
130
- var babelTransformer = { transform };
151
+ function getCacheKey(options) {
152
+ var hash = (0, import_crypto.createHash)("sha256");
153
+ hash.update("vxrn-metro-babel-transformer-v1");
154
+ var projectRoot = options === null || options === void 0 ? void 0 : options.projectRoot;
155
+ if (!projectRoot) {
156
+ return hash.digest("hex");
157
+ }
158
+ hash.update(projectRoot);
159
+ for (var _i = 0, _iter = [
160
+ ".env",
161
+ ".env.development",
162
+ ".env.local",
163
+ ".env.development.local"
164
+ ]; _i < _iter.length; _i++) {
165
+ var file = _iter[_i];
166
+ var filename = import_path.default.join(projectRoot, file);
167
+ hash.update(filename);
168
+ try {
169
+ hash.update((0, import_fs.readFileSync)(filename));
170
+ } catch (error) {
171
+ if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") {
172
+ continue;
173
+ }
174
+ throw error;
175
+ }
176
+ }
177
+ hash.update(JSON.stringify(Object.entries(process.env).filter(function(param) {
178
+ var [key] = param;
179
+ return key.startsWith("ONE_PUBLIC_") || key.startsWith("EXPO_PUBLIC_");
180
+ }).sort(function(param, param1) {
181
+ var [left] = param, [right] = param1;
182
+ return left.localeCompare(right);
183
+ })));
184
+ return hash.digest("hex");
185
+ }
186
+ var babelTransformer = {
187
+ transform,
188
+ getCacheKey
189
+ };
131
190
  module.exports = babelTransformer;
132
191
 
133
192
  //# sourceMappingURL=babel-transformer.native.js.map