@vxrn/vite-plugin-metro 2.0.0-beta.51.1 → 2.0.0-beta.56.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 (142) hide show
  1. package/dist/cjs/env/platformEnv.cjs +2 -0
  2. package/dist/cjs/env/platformEnv.native.cjs +2 -0
  3. package/dist/cjs/env/platformEnv.native.js +2 -0
  4. package/dist/cjs/env/platformEnv.native.js.map +1 -1
  5. package/dist/cjs/index.cjs +0 -2
  6. package/dist/cjs/index.native.cjs +0 -2
  7. package/dist/cjs/index.native.js +0 -2
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.cjs +10 -15
  10. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.cjs +27 -48
  11. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js +27 -48
  12. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
  13. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +71 -38
  14. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.cjs +86 -42
  15. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +86 -42
  16. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  17. package/dist/cjs/transformer/babel-transformer.cjs +53 -4
  18. package/dist/cjs/transformer/babel-transformer.native.cjs +65 -6
  19. package/dist/cjs/transformer/babel-transformer.native.js +65 -6
  20. package/dist/cjs/transformer/babel-transformer.native.js.map +1 -1
  21. package/dist/cjs/transformer/expoVirtualEnv.cjs +92 -0
  22. package/dist/cjs/transformer/expoVirtualEnv.native.cjs +113 -0
  23. package/dist/cjs/transformer/expoVirtualEnv.native.js +115 -0
  24. package/dist/cjs/transformer/expoVirtualEnv.native.js.map +1 -0
  25. package/dist/cjs/transformer/loadBabelConfig.cjs +1 -1
  26. package/dist/cjs/transformer/loadBabelConfig.native.cjs +1 -1
  27. package/dist/cjs/transformer/loadBabelConfig.native.js +1 -1
  28. package/dist/cjs/transformer/loadBabelConfig.native.js.map +1 -1
  29. package/dist/cjs/transformer/metroNativeWorker.cjs +20 -29
  30. package/dist/cjs/transformer/metroNativeWorker.native.cjs +24 -30
  31. package/dist/cjs/transformer/metroNativeWorker.native.js +24 -30
  32. package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
  33. package/dist/cjs/transformer/transformSync.cjs +3 -3
  34. package/dist/cjs/transformer/transformSync.native.cjs +3 -3
  35. package/dist/cjs/transformer/transformSync.native.js +3 -3
  36. package/dist/cjs/transformer/transformSync.native.js.map +1 -1
  37. package/dist/cjs/utils/exit.cjs +1 -1
  38. package/dist/cjs/utils/exit.native.cjs +1 -1
  39. package/dist/cjs/utils/exit.native.js +1 -1
  40. package/dist/cjs/utils/exit.native.js.map +1 -1
  41. package/dist/esm/env/platformEnv.mjs +2 -0
  42. package/dist/esm/env/platformEnv.mjs.map +1 -1
  43. package/dist/esm/env/platformEnv.native.js +2 -0
  44. package/dist/esm/env/platformEnv.native.js.map +1 -1
  45. package/dist/esm/index.js +1 -2
  46. package/dist/esm/index.mjs +1 -2
  47. package/dist/esm/index.native.js +1 -2
  48. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs +11 -15
  49. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs.map +1 -1
  50. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js +28 -48
  51. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
  52. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +71 -38
  53. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
  54. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +86 -42
  55. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  56. package/dist/esm/transformer/babel-transformer.mjs +133 -96
  57. package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
  58. package/dist/esm/transformer/babel-transformer.native.js +147 -103
  59. package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
  60. package/dist/esm/transformer/expoVirtualEnv.mjs +67 -0
  61. package/dist/esm/transformer/expoVirtualEnv.mjs.map +1 -0
  62. package/dist/esm/transformer/expoVirtualEnv.native.js +86 -0
  63. package/dist/esm/transformer/expoVirtualEnv.native.js.map +1 -0
  64. package/dist/esm/transformer/loadBabelConfig.mjs +1 -1
  65. package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -1
  66. package/dist/esm/transformer/loadBabelConfig.native.js +1 -1
  67. package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -1
  68. package/dist/esm/transformer/metroNativeWorker.mjs +20 -29
  69. package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
  70. package/dist/esm/transformer/metroNativeWorker.native.js +24 -30
  71. package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
  72. package/dist/esm/transformer/transformSync.mjs +3 -3
  73. package/dist/esm/transformer/transformSync.mjs.map +1 -1
  74. package/dist/esm/transformer/transformSync.native.js +3 -3
  75. package/dist/esm/transformer/transformSync.native.js.map +1 -1
  76. package/dist/esm/utils/exit.mjs +1 -1
  77. package/dist/esm/utils/exit.mjs.map +1 -1
  78. package/dist/esm/utils/exit.native.js +1 -1
  79. package/dist/esm/utils/exit.native.js.map +1 -1
  80. package/package.json +7 -9
  81. package/src/babel-plugins/import-meta-env-plugin.ts +1 -1
  82. package/src/env/platformEnv.test.ts +12 -2
  83. package/src/env/platformEnv.ts +3 -0
  84. package/src/index.ts +0 -2
  85. package/src/metro-config/getMetroBabelConfigFromViteConfig.test.ts +19 -25
  86. package/src/metro-config/getMetroBabelConfigFromViteConfig.ts +8 -27
  87. package/src/metro-config/getMetroConfigFromViteConfig.test.ts +60 -0
  88. package/src/metro-config/getMetroConfigFromViteConfig.ts +119 -96
  89. package/src/plugins/metroPlugin.ts +3 -6
  90. package/src/transformer/babel-transformer.test.ts +118 -0
  91. package/src/transformer/babel-transformer.ts +82 -15
  92. package/src/transformer/expoVirtualEnv.integration.test.ts +106 -0
  93. package/src/transformer/expoVirtualEnv.test.ts +72 -0
  94. package/src/transformer/expoVirtualEnv.ts +115 -0
  95. package/src/transformer/loadBabelConfig.ts +1 -1
  96. package/src/transformer/metroNativeWorker.test.ts +134 -17
  97. package/src/transformer/metroNativeWorker.ts +43 -51
  98. package/src/transformer/transformSync.test.ts +22 -0
  99. package/src/transformer/transformSync.ts +4 -4
  100. package/src/utils/exit.ts +2 -2
  101. package/src/utils/getTerminalReporter.ts +1 -1
  102. package/src/utils/projectImport.ts +2 -2
  103. package/types/babel-plugins/import-meta-env-plugin.d.ts +1 -1
  104. package/types/env/platformEnv.d.ts +1 -0
  105. package/types/env/platformEnv.d.ts.map +1 -1
  106. package/types/index.d.ts +0 -2
  107. package/types/index.d.ts.map +1 -1
  108. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts +1 -1
  109. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts.map +1 -1
  110. package/types/metro-config/getMetroConfigFromViteConfig.d.ts +2 -2
  111. package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
  112. package/types/plugins/metroPlugin.d.ts +2 -4
  113. package/types/plugins/metroPlugin.d.ts.map +1 -1
  114. package/types/transformer/babel-transformer.d.ts +10 -1
  115. package/types/transformer/babel-transformer.d.ts.map +1 -1
  116. package/types/transformer/expoVirtualEnv.d.ts +8 -0
  117. package/types/transformer/expoVirtualEnv.d.ts.map +1 -0
  118. package/types/transformer/metroNativeWorker.d.ts +3 -5
  119. package/types/transformer/metroNativeWorker.d.ts.map +1 -1
  120. package/types/utils/projectImport.d.ts +2 -2
  121. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +0 -59
  122. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.cjs +0 -62
  123. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +0 -64
  124. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  125. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +0 -35
  126. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.cjs +0 -37
  127. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -39
  128. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  129. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +0 -40
  130. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +0 -1
  131. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +0 -41
  132. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  133. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +0 -15
  134. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +0 -1
  135. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -15
  136. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  137. package/src/plugins/expoManifestRequestHandlerPlugin.ts +0 -88
  138. package/src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts +0 -28
  139. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +0 -14
  140. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +0 -1
  141. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts +0 -5
  142. 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,11 +84,32 @@ 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
  }
89
+ function isBareSpecifier(name) {
90
+ return name !== "" && !name.startsWith(".") && !name.startsWith("/");
91
+ }
92
+ function bareMainModuleForRequest(moduleName, mainModuleName) {
93
+ if (!mainModuleName || !isBareSpecifier(mainModuleName)) return void 0;
94
+ if (moduleName === `./${mainModuleName}`) return mainModuleName;
95
+ return void 0;
96
+ }
97
+ function enforceBareMainModuleEntry(config, mainModuleName) {
98
+ var _config_resolver;
99
+ if (!mainModuleName || !isBareSpecifier(mainModuleName)) return config;
100
+ var innerResolveRequest = config === null || config === void 0 ? void 0 : (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _config_resolver.resolveRequest;
101
+ return {
102
+ ...config,
103
+ resolver: {
104
+ ...config === null || config === void 0 ? void 0 : config.resolver,
105
+ resolveRequest: function(context, moduleName, platform) {
106
+ var bareMain = bareMainModuleForRequest(moduleName, mainModuleName);
107
+ var resolveRequest = innerResolveRequest || context.resolveRequest;
108
+ return resolveRequest(context, bareMain !== null && bareMain !== void 0 ? bareMain : moduleName, platform);
109
+ }
110
+ }
111
+ };
112
+ }
65
113
  async function isWatchmanResponsive(projectRoot) {
66
114
  var probe = watchmanResponsivePromises.get(projectRoot);
67
115
  if (probe) {
@@ -103,8 +151,8 @@ function resolveNativeTransforms(projectRoot, metroPluginOptions) {
103
151
  };
104
152
  }
105
153
  async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
106
- var _ref;
107
- var _metroPluginOptions_argv, _defaultConfig_resolver;
154
+ var _ref, _ref1;
155
+ var _metroPluginOptions_argv, _defaultConfig_resolver, _defaultConfig_watcher;
108
156
  var extraConfig = {};
109
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);
110
158
  var { mainModuleName, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
@@ -113,27 +161,20 @@ async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
113
161
  didWarnAboutWatchmanFallback = true;
114
162
  console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
115
163
  }
116
- var { getDefaultConfig } = await (0, import_projectImport.projectImport)(projectRoot, "@expo/metro-config");
117
- var _defaultConfig = getDefaultConfig(projectRoot);
164
+ var _defaultConfig = getReactNativeDefaultConfig(projectRoot);
118
165
  if (mainModuleName) {
119
- var origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
120
- var resolveMainModuleName = await (async function() {
121
- var ExpoGoManifestHandlerMiddleware = (await (0, import_projectImport.projectImport)(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
122
- var manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
123
- (0, import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName)(manifestHandlerMiddleware, mainModuleName);
124
- return function(p) {
125
- return manifestHandlerMiddleware.resolveMainModuleName({
126
- pkg: { main: mainModuleName },
127
- platform: p.platform
128
- });
129
- };
130
- })();
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
+ };
131
171
  extraConfig.getResolveMainModuleName = resolveMainModuleName;
132
172
  _defaultConfig.server.rewriteRequestUrl = function(url) {
133
- if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
173
+ var _ref2;
174
+ if (rootIndexBundleRequestPattern.test(url)) {
134
175
  return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
135
176
  }
136
- return origRewriteRequestUrl(url);
177
+ return (_ref2 = origRewriteRequestUrl === null || origRewriteRequestUrl === void 0 ? void 0 : origRewriteRequestUrl(url)) !== null && _ref2 !== void 0 ? _ref2 : url;
137
178
  };
138
179
  }
139
180
  var existingBlockList = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = _defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.blockList;
@@ -145,6 +186,10 @@ async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
145
186
  }
146
187
  var defaultConfig = {
147
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
+ },
148
193
  resolver: {
149
194
  ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.resolver,
150
195
  useWatchman,
@@ -180,6 +225,7 @@ async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
180
225
  },
181
226
  transformer: {
182
227
  ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.transformer,
228
+ unstable_allowRequireContext: true,
183
229
  babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
184
230
  },
185
231
  ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
@@ -190,14 +236,14 @@ async function buildMetroConfigInputFromViteConfig(config, metroPluginOptions) {
190
236
  ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
191
237
  };
192
238
  return {
193
- defaultConfig: merged,
239
+ defaultConfig: enforceBareMainModuleEntry(enforceWorkspaceVisibility(merged, projectRoot), mainModuleName),
194
240
  projectRoot,
195
241
  extraConfig
196
242
  };
197
243
  }
198
244
  async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
199
- var _ref;
200
- var _metroPluginOptions_argv, _defaultConfig_resolver;
245
+ var _ref, _ref1;
246
+ var _metroPluginOptions_argv, _defaultConfig_resolver, _defaultConfig_watcher;
201
247
  var extraConfig = {};
202
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);
203
249
  var { mainModuleName, argv, defaultConfigOverrides, watchman, excludeModules } = metroPluginOptions;
@@ -207,27 +253,20 @@ async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
207
253
  console.warn("[vxrn/metro] Watchman is unavailable or unresponsive; falling back to Node file watching.");
208
254
  }
209
255
  var { loadConfig } = await (0, import_projectImport.projectImport)(projectRoot, "metro");
210
- var { getDefaultConfig } = await (0, import_projectImport.projectImport)(projectRoot, "@expo/metro-config");
211
- var _defaultConfig = getDefaultConfig(projectRoot);
256
+ var _defaultConfig = getReactNativeDefaultConfig(projectRoot);
212
257
  if (mainModuleName) {
213
- var origRewriteRequestUrl = _defaultConfig.server.rewriteRequestUrl;
214
- var resolveMainModuleName = await (async function() {
215
- var ExpoGoManifestHandlerMiddleware = (await (0, import_projectImport.projectImport)(projectRoot, "@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js")).default.ExpoGoManifestHandlerMiddleware;
216
- var manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {});
217
- (0, import_patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName)(manifestHandlerMiddleware, mainModuleName);
218
- return function(p) {
219
- return manifestHandlerMiddleware.resolveMainModuleName({
220
- pkg: { main: mainModuleName },
221
- platform: p.platform
222
- });
223
- };
224
- })();
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
+ };
225
263
  extraConfig.getResolveMainModuleName = resolveMainModuleName;
226
264
  _defaultConfig.server.rewriteRequestUrl = function(url) {
227
- if (url.includes("/.expo/.virtual-metro-entry.bundle?") || rootIndexBundleRequestPattern.test(url)) {
265
+ var _ref2;
266
+ if (rootIndexBundleRequestPattern.test(url)) {
228
267
  return rewriteMainModuleBundleUrl(url, resolveMainModuleName);
229
268
  }
230
- return origRewriteRequestUrl(url);
269
+ return (_ref2 = origRewriteRequestUrl === null || origRewriteRequestUrl === void 0 ? void 0 : origRewriteRequestUrl(url)) !== null && _ref2 !== void 0 ? _ref2 : url;
231
270
  };
232
271
  }
233
272
  var existingBlockList = _defaultConfig === null || _defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = _defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.blockList;
@@ -239,6 +278,10 @@ async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
239
278
  }
240
279
  var defaultConfig = {
241
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
+ },
242
285
  resolver: {
243
286
  ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.resolver,
244
287
  useWatchman,
@@ -274,6 +317,7 @@ async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
274
317
  },
275
318
  transformer: {
276
319
  ..._defaultConfig === null || _defaultConfig === void 0 ? void 0 : _defaultConfig.transformer,
320
+ unstable_allowRequireContext: true,
277
321
  babelTransformerPath: (0, import_projectImport.projectResolve)(projectRoot, "@vxrn/vite-plugin-metro/babel-transformer")
278
322
  },
279
323
  ...nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {},
@@ -289,7 +333,7 @@ async function getMetroConfigFromViteConfig(config, metroPluginOptions) {
289
333
  ...typeof defaultConfigOverrides === "function" ? defaultConfigOverrides(defaultConfig) : defaultConfigOverrides
290
334
  });
291
335
  return {
292
- ...metroConfig,
336
+ ...enforceBareMainModuleEntry(enforceWorkspaceVisibility(metroConfig, projectRoot), mainModuleName),
293
337
  ...extraConfig
294
338
  };
295
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}\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: merged,\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 ...metroConfig,\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;