@expo/cli 54.1.0-canary-20251023-4c86f95 → 55.0.0-canary-20251118-8f7ee64
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.
- package/build/bin/cli +1 -1
- package/build/src/api/rest/cache/ResponseCache.js +3 -1
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +30 -2
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/saveAssets.js +10 -0
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/startInterface.js +3 -0
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +2 -7
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +0 -6
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/server/MCP.js +15 -4
- package/build/src/start/server/MCP.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +41 -36
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +16 -16
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +7 -29
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +3 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js +17 -0
- package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js.map +1 -0
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +14 -10
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/resolveLoader.js +65 -0
- package/build/src/start/server/metro/resolveLoader.js.map +1 -0
- package/build/src/start/server/metro/withMetroMultiPlatform.js +25 -26
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/middleware/DataLoaderModuleMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/CdpClient.js +2 -0
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +3 -1
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/startAsync.js +11 -8
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/env.js +0 -3
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
- package/build/src/utils/telemetry/utils/context.js +1 -1
- package/package.json +21 -23
- package/static/template/[...rsc]+api.ts +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +0 -265
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +0 -1
- package/build/src/start/server/metro/createJResolver.js +0 -201
- package/build/src/start/server/metro/createJResolver.js.map +0 -1
- package/build/src/start/server/metro/formatFileCandidates.js +0 -84
- package/build/src/start/server/metro/formatFileCandidates.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/start/startAsync.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { SimulatorAppPrerequisite } from './doctor/apple/SimulatorAppPrerequisite';\nimport { getXcodeVersionAsync } from './doctor/apple/XcodePrerequisite';\nimport { validateDependenciesVersionsAsync } from './doctor/dependencies/validateDependenciesVersions';\nimport { WebSupportProjectPrerequisite } from './doctor/web/WebSupportProjectPrerequisite';\nimport { startInterfaceAsync } from './interface/startInterface';\nimport { Options, resolvePortsAsync } from './resolveOptions';\nimport * as Log from '../log';\nimport { BundlerStartOptions } from './server/BundlerDevServer';\nimport { DevServerManager, MultiBundlerStartOptions } from './server/DevServerManager';\nimport { openPlatformsAsync } from './server/openPlatforms';\nimport { getPlatformBundlers, PlatformBundlers } from './server/platformBundlers';\nimport { env } from '../utils/env';\nimport { isInteractive } from '../utils/interactive';\nimport { profile } from '../utils/profile';\nimport { maybeCreateMCPServerAsync } from './server/MCP';\n\nasync function getMultiBundlerStartOptions(\n projectRoot: string,\n options: Options,\n settings: { webOnly?: boolean },\n platformBundlers: PlatformBundlers\n): Promise<[BundlerStartOptions, MultiBundlerStartOptions]> {\n const commonOptions: BundlerStartOptions = {\n mode: options.dev ? 'development' : 'production',\n devClient: options.devClient,\n privateKeyPath: options.privateKeyPath ?? undefined,\n https: options.https,\n maxWorkers: options.maxWorkers,\n resetDevServer: options.clear,\n minify: options.minify,\n location: {\n hostType: options.host,\n scheme: options.scheme,\n },\n };\n const multiBundlerSettings = await resolvePortsAsync(projectRoot, options, settings);\n\n const optionalBundlers: Partial<PlatformBundlers> = { ...platformBundlers };\n // In the default case, we don't want to start multiple bundlers since this is\n // a bit slower. Our priority (for legacy) is native platforms.\n if (!options.web) {\n delete optionalBundlers['web'];\n }\n\n const bundlers = [...new Set(Object.values(optionalBundlers))];\n const multiBundlerStartOptions = bundlers.map((bundler) => {\n const port =\n bundler === 'webpack' ? multiBundlerSettings.webpackPort : multiBundlerSettings.metroPort;\n return {\n type: bundler,\n options: {\n ...commonOptions,\n port,\n },\n };\n });\n\n return [commonOptions, multiBundlerStartOptions];\n}\n\nexport async function startAsync(\n projectRoot: string,\n options: Options,\n settings: { webOnly?: boolean }\n) {\n Log.log(chalk.gray(`Starting project at ${projectRoot}`));\n\n const { exp, pkg } = profile(getConfig)(projectRoot);\n\n if (exp.platforms?.includes('ios') && process.platform !== 'win32') {\n // If Xcode could potentially be used, then we should eagerly perform the\n // assertions since they can take a while on cold boots.\n getXcodeVersionAsync({ silent: true });\n SimulatorAppPrerequisite.instance.assertAsync().catch(() => {\n // noop -- this will be thrown again when the user attempts to open the project.\n });\n }\n\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n\n const [defaultOptions, startOptions] = await getMultiBundlerStartOptions(\n projectRoot,\n options,\n settings,\n platformBundlers\n );\n\n const devServerManager = new DevServerManager(projectRoot, defaultOptions);\n\n // Validations\n\n if (options.web || settings.webOnly) {\n await devServerManager.ensureProjectPrerequisiteAsync(WebSupportProjectPrerequisite);\n }\n\n // Start the server as soon as possible.\n await profile(devServerManager.startAsync.bind(devServerManager))(startOptions);\n\n if (!settings.webOnly) {\n await devServerManager.watchEnvironmentVariables();\n\n // After the server starts, we can start attempting to bootstrap TypeScript.\n await devServerManager.bootstrapTypeScriptAsync();\n }\n\n if (!env.EXPO_NO_DEPENDENCY_VALIDATION && !settings.webOnly && !options.devClient) {\n await profile(validateDependenciesVersionsAsync)(projectRoot, exp, pkg);\n }\n\n // Open project on devices.\n await profile(openPlatformsAsync)(devServerManager, options);\n\n // Present the Terminal UI.\n if (isInteractive()) {\n const mcpServer
|
|
1
|
+
{"version":3,"sources":["../../../src/start/startAsync.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { SimulatorAppPrerequisite } from './doctor/apple/SimulatorAppPrerequisite';\nimport { getXcodeVersionAsync } from './doctor/apple/XcodePrerequisite';\nimport { validateDependenciesVersionsAsync } from './doctor/dependencies/validateDependenciesVersions';\nimport { WebSupportProjectPrerequisite } from './doctor/web/WebSupportProjectPrerequisite';\nimport { startInterfaceAsync } from './interface/startInterface';\nimport { Options, resolvePortsAsync } from './resolveOptions';\nimport * as Log from '../log';\nimport { BundlerStartOptions } from './server/BundlerDevServer';\nimport { DevServerManager, MultiBundlerStartOptions } from './server/DevServerManager';\nimport { openPlatformsAsync } from './server/openPlatforms';\nimport { getPlatformBundlers, PlatformBundlers } from './server/platformBundlers';\nimport { env } from '../utils/env';\nimport { isInteractive } from '../utils/interactive';\nimport { profile } from '../utils/profile';\nimport { maybeCreateMCPServerAsync } from './server/MCP';\n\nasync function getMultiBundlerStartOptions(\n projectRoot: string,\n options: Options,\n settings: { webOnly?: boolean },\n platformBundlers: PlatformBundlers\n): Promise<[BundlerStartOptions, MultiBundlerStartOptions]> {\n const commonOptions: BundlerStartOptions = {\n mode: options.dev ? 'development' : 'production',\n devClient: options.devClient,\n privateKeyPath: options.privateKeyPath ?? undefined,\n https: options.https,\n maxWorkers: options.maxWorkers,\n resetDevServer: options.clear,\n minify: options.minify,\n location: {\n hostType: options.host,\n scheme: options.scheme,\n },\n };\n const multiBundlerSettings = await resolvePortsAsync(projectRoot, options, settings);\n\n const optionalBundlers: Partial<PlatformBundlers> = { ...platformBundlers };\n // In the default case, we don't want to start multiple bundlers since this is\n // a bit slower. Our priority (for legacy) is native platforms.\n if (!options.web) {\n delete optionalBundlers['web'];\n }\n\n const bundlers = [...new Set(Object.values(optionalBundlers))];\n const multiBundlerStartOptions = bundlers.map((bundler) => {\n const port =\n bundler === 'webpack' ? multiBundlerSettings.webpackPort : multiBundlerSettings.metroPort;\n return {\n type: bundler,\n options: {\n ...commonOptions,\n port,\n },\n };\n });\n\n return [commonOptions, multiBundlerStartOptions];\n}\n\nexport async function startAsync(\n projectRoot: string,\n options: Options,\n settings: { webOnly?: boolean }\n) {\n Log.log(chalk.gray(`Starting project at ${projectRoot}`));\n\n const { exp, pkg } = profile(getConfig)(projectRoot);\n\n if (exp.platforms?.includes('ios') && process.platform !== 'win32') {\n // If Xcode could potentially be used, then we should eagerly perform the\n // assertions since they can take a while on cold boots.\n getXcodeVersionAsync({ silent: true });\n SimulatorAppPrerequisite.instance.assertAsync().catch(() => {\n // noop -- this will be thrown again when the user attempts to open the project.\n });\n }\n\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n\n const [defaultOptions, startOptions] = await getMultiBundlerStartOptions(\n projectRoot,\n options,\n settings,\n platformBundlers\n );\n\n const devServerManager = new DevServerManager(projectRoot, defaultOptions);\n\n // Validations\n\n if (options.web || settings.webOnly) {\n await devServerManager.ensureProjectPrerequisiteAsync(WebSupportProjectPrerequisite);\n }\n\n // Start the server as soon as possible.\n await profile(devServerManager.startAsync.bind(devServerManager))(startOptions);\n\n if (!settings.webOnly) {\n await devServerManager.watchEnvironmentVariables();\n\n // After the server starts, we can start attempting to bootstrap TypeScript.\n await devServerManager.bootstrapTypeScriptAsync();\n }\n\n if (!env.EXPO_NO_DEPENDENCY_VALIDATION && !settings.webOnly && !options.devClient) {\n await profile(validateDependenciesVersionsAsync)(projectRoot, exp, pkg);\n }\n\n // Open project on devices.\n await profile(openPlatformsAsync)(devServerManager, options);\n\n const defaultServerUrl = devServerManager.getDefaultDevServer()?.getDevServerUrl() ?? '';\n // Present the Terminal UI.\n if (isInteractive()) {\n const mcpServer =\n (await profile(maybeCreateMCPServerAsync)({\n projectRoot,\n devServerUrl: defaultServerUrl,\n })) ?? undefined;\n\n await profile(startInterfaceAsync)(devServerManager, {\n platforms: exp.platforms ?? ['ios', 'android', 'web'],\n mcpServer,\n });\n\n mcpServer?.start();\n } else {\n // Display the server location in CI...\n if (defaultServerUrl) {\n if (env.__EXPO_E2E_TEST) {\n // Print the URL to stdout for tests\n console.info(`[__EXPO_E2E_TEST:server] ${JSON.stringify({ url: defaultServerUrl })}`);\n }\n Log.log(chalk`Waiting on {underline ${defaultServerUrl}}`);\n }\n }\n\n // Final note about closing the server.\n const logLocation = settings.webOnly ? 'in the browser console' : 'below';\n Log.log(\n chalk`Logs for your project will appear ${logLocation}.${\n isInteractive() ? chalk.dim(` Press Ctrl+C to exit.`) : ''\n }`\n );\n}\n"],"names":["startAsync","getMultiBundlerStartOptions","projectRoot","options","settings","platformBundlers","commonOptions","mode","dev","devClient","privateKeyPath","undefined","https","maxWorkers","resetDevServer","clear","minify","location","hostType","host","scheme","multiBundlerSettings","resolvePortsAsync","optionalBundlers","web","bundlers","Set","Object","values","multiBundlerStartOptions","map","bundler","port","webpackPort","metroPort","type","exp","devServerManager","Log","log","chalk","gray","pkg","profile","getConfig","platforms","includes","process","platform","getXcodeVersionAsync","silent","SimulatorAppPrerequisite","instance","assertAsync","catch","getPlatformBundlers","defaultOptions","startOptions","DevServerManager","webOnly","ensureProjectPrerequisiteAsync","WebSupportProjectPrerequisite","bind","watchEnvironmentVariables","bootstrapTypeScriptAsync","env","EXPO_NO_DEPENDENCY_VALIDATION","validateDependenciesVersionsAsync","openPlatformsAsync","defaultServerUrl","getDefaultDevServer","getDevServerUrl","isInteractive","mcpServer","maybeCreateMCPServerAsync","devServerUrl","startInterfaceAsync","start","__EXPO_E2E_TEST","console","info","JSON","stringify","url","logLocation","dim"],"mappings":"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"}
|
package/build/src/utils/env.js
CHANGED
|
@@ -160,9 +160,6 @@ class Env {
|
|
|
160
160
|
*/ get EXPO_USE_STICKY_RESOLVER() {
|
|
161
161
|
return (0, _getenv().boolish)('EXPO_USE_STICKY_RESOLVER', false);
|
|
162
162
|
}
|
|
163
|
-
/** Enable the unstable fast resolver for Metro. */ get EXPO_USE_FAST_RESOLVER() {
|
|
164
|
-
return (0, _getenv().boolish)('EXPO_USE_FAST_RESOLVER', false);
|
|
165
|
-
}
|
|
166
163
|
/** Disable Environment Variable injection in client bundles. */ get EXPO_NO_CLIENT_ENV_VARS() {
|
|
167
164
|
return (0, _getenv().boolish)('EXPO_NO_CLIENT_ENV_VARS', false);
|
|
168
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/env.ts"],"sourcesContent":["import { boolish, int, string } from 'getenv';\nimport process from 'node:process';\n\n// @expo/webpack-config -> expo-pwa -> @expo/image-utils: EXPO_IMAGE_UTILS_NO_SHARP\n\n// TODO: EXPO_CLI_USERNAME, EXPO_CLI_PASSWORD\n\nclass Env {\n /** Enable profiling metrics */\n get EXPO_PROFILE() {\n return boolish('EXPO_PROFILE', false);\n }\n\n /** Enable debug logging */\n get EXPO_DEBUG() {\n return boolish('EXPO_DEBUG', false);\n }\n\n /** Disable all network requests */\n get EXPO_OFFLINE() {\n return boolish('EXPO_OFFLINE', false);\n }\n\n /** Enable the beta version of Expo (TODO: Should this just be in the beta version of expo releases?) */\n get EXPO_BETA() {\n return boolish('EXPO_BETA', false);\n }\n\n /** Enable staging API environment */\n get EXPO_STAGING() {\n return boolish('EXPO_STAGING', false);\n }\n\n /** Enable local API environment */\n get EXPO_LOCAL() {\n return boolish('EXPO_LOCAL', false);\n }\n\n /** Is running in non-interactive CI mode */\n get CI() {\n return boolish('CI', false);\n }\n\n /** Disable telemetry (analytics) */\n get EXPO_NO_TELEMETRY() {\n return boolish('EXPO_NO_TELEMETRY', false);\n }\n\n /** Disable detaching telemetry to separate process */\n get EXPO_NO_TELEMETRY_DETACH() {\n return boolish('EXPO_NO_TELEMETRY_DETACH', false);\n }\n\n /** local directory to the universe repo for testing locally */\n get EXPO_UNIVERSE_DIR() {\n return string('EXPO_UNIVERSE_DIR', '');\n }\n\n /** @deprecated Default Webpack host string */\n get WEB_HOST() {\n return string('WEB_HOST', '0.0.0.0');\n }\n\n /** Skip warning users about a dirty git status */\n get EXPO_NO_GIT_STATUS() {\n return boolish('EXPO_NO_GIT_STATUS', false);\n }\n /** Disable auto web setup */\n get EXPO_NO_WEB_SETUP() {\n return boolish('EXPO_NO_WEB_SETUP', false);\n }\n /** Disable auto TypeScript setup */\n get EXPO_NO_TYPESCRIPT_SETUP() {\n return boolish('EXPO_NO_TYPESCRIPT_SETUP', false);\n }\n /** Disable all API caches. Does not disable bundler caches. */\n get EXPO_NO_CACHE() {\n return boolish('EXPO_NO_CACHE', false);\n }\n /** Disable the app select redirect page. */\n get EXPO_NO_REDIRECT_PAGE() {\n return boolish('EXPO_NO_REDIRECT_PAGE', false);\n }\n /** The React Metro port that's baked into react-native scripts and tools. */\n get RCT_METRO_PORT() {\n return int('RCT_METRO_PORT', 0);\n }\n /** Skip validating the manifest during `export`. */\n get EXPO_SKIP_MANIFEST_VALIDATION_TOKEN(): boolean {\n return !!string('EXPO_SKIP_MANIFEST_VALIDATION_TOKEN', '');\n }\n\n /** Public folder path relative to the project root. Default to `public` */\n get EXPO_PUBLIC_FOLDER(): string {\n return string('EXPO_PUBLIC_FOLDER', 'public');\n }\n\n /** Higher priority `$EDIOTR` variable for indicating which editor to use when pressing `o` in the Terminal UI. */\n get EXPO_EDITOR(): string {\n return string('EXPO_EDITOR', '');\n }\n\n /**\n * Overwrite the dev server URL, disregarding the `--port`, `--host`, `--tunnel`, `--lan`, `--localhost` arguments.\n * This is useful for browser editors that require custom proxy URLs.\n */\n get EXPO_PACKAGER_PROXY_URL(): string {\n return string('EXPO_PACKAGER_PROXY_URL', '');\n }\n\n /**\n * **Experimental** - Disable using `exp.direct` as the hostname for\n * `--tunnel` connections. This enables **https://** forwarding which\n * can be used to test universal links on iOS.\n *\n * This may cause issues with `expo-linking` and Expo Go.\n *\n * Select the exact subdomain by passing a string value that is not one of: `true`, `false`, `1`, `0`.\n */\n get EXPO_TUNNEL_SUBDOMAIN(): string | boolean {\n const subdomain = string('EXPO_TUNNEL_SUBDOMAIN', '');\n if (['0', 'false', ''].includes(subdomain)) {\n return false;\n } else if (['1', 'true'].includes(subdomain)) {\n return true;\n }\n return subdomain;\n }\n\n /**\n * Force Expo CLI to use the [`resolver.resolverMainFields`](https://facebook.github.io/metro/docs/configuration/#resolvermainfields) from the project `metro.config.js` for all platforms.\n *\n * By default, Expo CLI will use `['browser', 'module', 'main']` (default for Webpack) for web and the user-defined main fields for other platforms.\n */\n get EXPO_METRO_NO_MAIN_FIELD_OVERRIDE(): boolean {\n return boolish('EXPO_METRO_NO_MAIN_FIELD_OVERRIDE', false);\n }\n\n /**\n * HTTP/HTTPS proxy to connect to for network requests. Configures [https-proxy-agent](https://www.npmjs.com/package/https-proxy-agent).\n */\n get HTTP_PROXY(): string {\n return process.env.HTTP_PROXY || process.env.http_proxy || '';\n }\n\n /**\n * Use the network inspector by overriding the metro inspector proxy with a custom version.\n * @deprecated This has been replaced by `@react-native/dev-middleware` and is now unused.\n */\n get EXPO_NO_INSPECTOR_PROXY(): boolean {\n return boolish('EXPO_NO_INSPECTOR_PROXY', false);\n }\n\n /** Disable lazy bundling in Metro bundler. */\n get EXPO_NO_METRO_LAZY() {\n return boolish('EXPO_NO_METRO_LAZY', false);\n }\n\n /**\n * Enable the unstable inverse dependency stack trace for Metro bundling errors.\n * @deprecated This will be removed in the future.\n */\n get EXPO_METRO_UNSTABLE_ERRORS() {\n return boolish('EXPO_METRO_UNSTABLE_ERRORS', true);\n }\n\n /** Enable the experimental sticky resolver for Metro (Uses Expo Autolinking results and applies them to Metro's resolution)\n * @deprecated Replaced by `exp.experiments.autolinkingModuleResolution`\n */\n get EXPO_USE_STICKY_RESOLVER() {\n return boolish('EXPO_USE_STICKY_RESOLVER', false);\n }\n\n /** Enable the unstable fast resolver for Metro. */\n get EXPO_USE_FAST_RESOLVER() {\n return boolish('EXPO_USE_FAST_RESOLVER', false);\n }\n\n /** Disable Environment Variable injection in client bundles. */\n get EXPO_NO_CLIENT_ENV_VARS(): boolean {\n return boolish('EXPO_NO_CLIENT_ENV_VARS', false);\n }\n\n /** Set the default `user` that should be passed to `--user` with ADB commands. Used for installing APKs on Android devices with multiple profiles. Defaults to `0`. */\n get EXPO_ADB_USER(): string {\n return string('EXPO_ADB_USER', '0');\n }\n\n /** Used internally to enable E2E utilities. This behavior is not stable to external users. */\n get __EXPO_E2E_TEST(): boolean {\n return boolish('__EXPO_E2E_TEST', false);\n }\n\n /** Unstable: Force single-bundle exports in production. */\n get EXPO_NO_BUNDLE_SPLITTING(): boolean {\n return boolish('EXPO_NO_BUNDLE_SPLITTING', false);\n }\n\n /**\n * Enable Atlas to gather bundle information during development or export.\n * Note, because this used to be an experimental feature, both `EXPO_ATLAS` and `EXPO_UNSTABLE_ATLAS` are supported.\n */\n get EXPO_ATLAS() {\n return boolish('EXPO_ATLAS', boolish('EXPO_UNSTABLE_ATLAS', false));\n }\n\n /** Unstable: Enable tree shaking for Metro. */\n get EXPO_UNSTABLE_TREE_SHAKING() {\n return boolish('EXPO_UNSTABLE_TREE_SHAKING', false);\n }\n\n /** Unstable: Enable eager bundling where transformation runs uncached after the entire bundle has been created. This is required for production tree shaking and less optimized for development bundling. */\n get EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH() {\n return boolish('EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH', false);\n }\n\n /** Enable the use of Expo's custom metro require implementation. The custom require supports better debugging, tree shaking, and React Server Components. */\n get EXPO_USE_METRO_REQUIRE() {\n return boolish('EXPO_USE_METRO_REQUIRE', false);\n }\n\n /** Internal key used to pass eager bundle data from the CLI to the native run scripts during `npx expo run` commands. */\n get __EXPO_EAGER_BUNDLE_OPTIONS() {\n return string('__EXPO_EAGER_BUNDLE_OPTIONS', '');\n }\n\n /** Disable server deployment during production builds (during `expo export:embed`). This is useful for testing API routes and server components against a local server. */\n get EXPO_NO_DEPLOY(): boolean {\n return boolish('EXPO_NO_DEPLOY', false);\n }\n\n /** Enable hydration during development when rendering Expo Web */\n get EXPO_WEB_DEV_HYDRATE(): boolean {\n return boolish('EXPO_WEB_DEV_HYDRATE', false);\n }\n\n /** Enable experimental React Server Functions support. */\n get EXPO_UNSTABLE_SERVER_FUNCTIONS(): boolean {\n return boolish('EXPO_UNSTABLE_SERVER_FUNCTIONS', false);\n }\n\n /** Enable unstable/experimental mode where React Native Web isn't required to run Expo apps on web. */\n get EXPO_NO_REACT_NATIVE_WEB(): boolean {\n return boolish('EXPO_NO_REACT_NATIVE_WEB', false);\n }\n\n /** Enable unstable/experimental support for deploying the native server in `npx expo run` commands. */\n get EXPO_UNSTABLE_DEPLOY_SERVER(): boolean {\n return boolish('EXPO_UNSTABLE_DEPLOY_SERVER', false);\n }\n\n /** Is running in EAS Build. This is set by EAS: https://docs.expo.dev/eas/environment-variables/ */\n get EAS_BUILD(): boolean {\n return boolish('EAS_BUILD', false);\n }\n\n /** Disable the React Native Directory compatibility check for new architecture when installing packages */\n get EXPO_NO_NEW_ARCH_COMPAT_CHECK(): boolean {\n return boolish('EXPO_NO_NEW_ARCH_COMPAT_CHECK', false);\n }\n\n /** Disable the dependency validation when installing other dependencies and starting the project */\n get EXPO_NO_DEPENDENCY_VALIDATION(): boolean {\n // Default to disabling when running in a web container (stackblitz, bolt, etc).\n const isWebContainer = process.versions.webcontainer != null;\n return boolish('EXPO_NO_DEPENDENCY_VALIDATION', isWebContainer);\n }\n\n /** Force Expo CLI to run in webcontainer mode, this has impact on which URL Expo is using by default */\n get EXPO_FORCE_WEBCONTAINER_ENV(): boolean {\n return boolish('EXPO_FORCE_WEBCONTAINER_ENV', false);\n }\n\n /** Force Expo CLI to run in webcontainer mode, this has impact on which URL Expo is using by default */\n get EXPO_UNSTABLE_WEB_MODAL(): boolean {\n return boolish('EXPO_UNSTABLE_WEB_MODAL', false);\n }\n\n /** Disable by falsy value live binding in experimental import export support. Enabled by default. */\n get EXPO_UNSTABLE_LIVE_BINDINGS(): boolean {\n return boolish('EXPO_UNSTABLE_LIVE_BINDINGS', true);\n }\n\n /**\n * Enable the experimental MCP integration or further specify the MCP server URL.\n */\n get EXPO_UNSTABLE_MCP_SERVER(): string {\n const value = string('EXPO_UNSTABLE_MCP_SERVER', '');\n if (value === '1' || value.toLowerCase() === 'true') {\n return this.EXPO_STAGING ? 'staging-mcp.expo.dev' : 'mcp.expo.dev';\n }\n return value;\n }\n\n /** Enable Expo Log Box for iOS and Android (Web is enabled by default) */\n get EXPO_UNSTABLE_LOG_BOX(): boolean {\n return boolish('EXPO_UNSTABLE_LOG_BOX', false);\n }\n}\n\nexport const env = new Env();\n\nexport function envIsWebcontainer() {\n // See: https://github.com/unjs/std-env/blob/4b1e03c4efce58249858efc2cc5f5eac727d0adb/src/providers.ts#L134-L143\n return (\n env.EXPO_FORCE_WEBCONTAINER_ENV ||\n (process.env.SHELL === '/bin/jsh' && !!process.versions.webcontainer)\n );\n}\n"],"names":["env","envIsWebcontainer","Env","EXPO_PROFILE","boolish","EXPO_DEBUG","EXPO_OFFLINE","EXPO_BETA","EXPO_STAGING","EXPO_LOCAL","CI","EXPO_NO_TELEMETRY","EXPO_NO_TELEMETRY_DETACH","EXPO_UNIVERSE_DIR","string","WEB_HOST","EXPO_NO_GIT_STATUS","EXPO_NO_WEB_SETUP","EXPO_NO_TYPESCRIPT_SETUP","EXPO_NO_CACHE","EXPO_NO_REDIRECT_PAGE","RCT_METRO_PORT","int","EXPO_SKIP_MANIFEST_VALIDATION_TOKEN","EXPO_PUBLIC_FOLDER","EXPO_EDITOR","EXPO_PACKAGER_PROXY_URL","EXPO_TUNNEL_SUBDOMAIN","subdomain","includes","EXPO_METRO_NO_MAIN_FIELD_OVERRIDE","HTTP_PROXY","process","http_proxy","EXPO_NO_INSPECTOR_PROXY","EXPO_NO_METRO_LAZY","EXPO_METRO_UNSTABLE_ERRORS","EXPO_USE_STICKY_RESOLVER","EXPO_USE_FAST_RESOLVER","EXPO_NO_CLIENT_ENV_VARS","EXPO_ADB_USER","__EXPO_E2E_TEST","EXPO_NO_BUNDLE_SPLITTING","EXPO_ATLAS","EXPO_UNSTABLE_TREE_SHAKING","EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH","EXPO_USE_METRO_REQUIRE","__EXPO_EAGER_BUNDLE_OPTIONS","EXPO_NO_DEPLOY","EXPO_WEB_DEV_HYDRATE","EXPO_UNSTABLE_SERVER_FUNCTIONS","EXPO_NO_REACT_NATIVE_WEB","EXPO_UNSTABLE_DEPLOY_SERVER","EAS_BUILD","EXPO_NO_NEW_ARCH_COMPAT_CHECK","EXPO_NO_DEPENDENCY_VALIDATION","isWebContainer","versions","webcontainer","EXPO_FORCE_WEBCONTAINER_ENV","EXPO_UNSTABLE_WEB_MODAL","EXPO_UNSTABLE_LIVE_BINDINGS","EXPO_UNSTABLE_MCP_SERVER","value","toLowerCase","EXPO_UNSTABLE_LOG_BOX","SHELL"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/env.ts"],"sourcesContent":["import { boolish, int, string } from 'getenv';\nimport process from 'node:process';\n\n// @expo/webpack-config -> expo-pwa -> @expo/image-utils: EXPO_IMAGE_UTILS_NO_SHARP\n\n// TODO: EXPO_CLI_USERNAME, EXPO_CLI_PASSWORD\n\nclass Env {\n /** Enable profiling metrics */\n get EXPO_PROFILE() {\n return boolish('EXPO_PROFILE', false);\n }\n\n /** Enable debug logging */\n get EXPO_DEBUG() {\n return boolish('EXPO_DEBUG', false);\n }\n\n /** Disable all network requests */\n get EXPO_OFFLINE() {\n return boolish('EXPO_OFFLINE', false);\n }\n\n /** Enable the beta version of Expo (TODO: Should this just be in the beta version of expo releases?) */\n get EXPO_BETA() {\n return boolish('EXPO_BETA', false);\n }\n\n /** Enable staging API environment */\n get EXPO_STAGING() {\n return boolish('EXPO_STAGING', false);\n }\n\n /** Enable local API environment */\n get EXPO_LOCAL() {\n return boolish('EXPO_LOCAL', false);\n }\n\n /** Is running in non-interactive CI mode */\n get CI() {\n return boolish('CI', false);\n }\n\n /** Disable telemetry (analytics) */\n get EXPO_NO_TELEMETRY() {\n return boolish('EXPO_NO_TELEMETRY', false);\n }\n\n /** Disable detaching telemetry to separate process */\n get EXPO_NO_TELEMETRY_DETACH() {\n return boolish('EXPO_NO_TELEMETRY_DETACH', false);\n }\n\n /** local directory to the universe repo for testing locally */\n get EXPO_UNIVERSE_DIR() {\n return string('EXPO_UNIVERSE_DIR', '');\n }\n\n /** @deprecated Default Webpack host string */\n get WEB_HOST() {\n return string('WEB_HOST', '0.0.0.0');\n }\n\n /** Skip warning users about a dirty git status */\n get EXPO_NO_GIT_STATUS() {\n return boolish('EXPO_NO_GIT_STATUS', false);\n }\n /** Disable auto web setup */\n get EXPO_NO_WEB_SETUP() {\n return boolish('EXPO_NO_WEB_SETUP', false);\n }\n /** Disable auto TypeScript setup */\n get EXPO_NO_TYPESCRIPT_SETUP() {\n return boolish('EXPO_NO_TYPESCRIPT_SETUP', false);\n }\n /** Disable all API caches. Does not disable bundler caches. */\n get EXPO_NO_CACHE() {\n return boolish('EXPO_NO_CACHE', false);\n }\n /** Disable the app select redirect page. */\n get EXPO_NO_REDIRECT_PAGE() {\n return boolish('EXPO_NO_REDIRECT_PAGE', false);\n }\n /** The React Metro port that's baked into react-native scripts and tools. */\n get RCT_METRO_PORT() {\n return int('RCT_METRO_PORT', 0);\n }\n /** Skip validating the manifest during `export`. */\n get EXPO_SKIP_MANIFEST_VALIDATION_TOKEN(): boolean {\n return !!string('EXPO_SKIP_MANIFEST_VALIDATION_TOKEN', '');\n }\n\n /** Public folder path relative to the project root. Default to `public` */\n get EXPO_PUBLIC_FOLDER(): string {\n return string('EXPO_PUBLIC_FOLDER', 'public');\n }\n\n /** Higher priority `$EDIOTR` variable for indicating which editor to use when pressing `o` in the Terminal UI. */\n get EXPO_EDITOR(): string {\n return string('EXPO_EDITOR', '');\n }\n\n /**\n * Overwrite the dev server URL, disregarding the `--port`, `--host`, `--tunnel`, `--lan`, `--localhost` arguments.\n * This is useful for browser editors that require custom proxy URLs.\n */\n get EXPO_PACKAGER_PROXY_URL(): string {\n return string('EXPO_PACKAGER_PROXY_URL', '');\n }\n\n /**\n * **Experimental** - Disable using `exp.direct` as the hostname for\n * `--tunnel` connections. This enables **https://** forwarding which\n * can be used to test universal links on iOS.\n *\n * This may cause issues with `expo-linking` and Expo Go.\n *\n * Select the exact subdomain by passing a string value that is not one of: `true`, `false`, `1`, `0`.\n */\n get EXPO_TUNNEL_SUBDOMAIN(): string | boolean {\n const subdomain = string('EXPO_TUNNEL_SUBDOMAIN', '');\n if (['0', 'false', ''].includes(subdomain)) {\n return false;\n } else if (['1', 'true'].includes(subdomain)) {\n return true;\n }\n return subdomain;\n }\n\n /**\n * Force Expo CLI to use the [`resolver.resolverMainFields`](https://facebook.github.io/metro/docs/configuration/#resolvermainfields) from the project `metro.config.js` for all platforms.\n *\n * By default, Expo CLI will use `['browser', 'module', 'main']` (default for Webpack) for web and the user-defined main fields for other platforms.\n */\n get EXPO_METRO_NO_MAIN_FIELD_OVERRIDE(): boolean {\n return boolish('EXPO_METRO_NO_MAIN_FIELD_OVERRIDE', false);\n }\n\n /**\n * HTTP/HTTPS proxy to connect to for network requests. Configures [https-proxy-agent](https://www.npmjs.com/package/https-proxy-agent).\n */\n get HTTP_PROXY(): string {\n return process.env.HTTP_PROXY || process.env.http_proxy || '';\n }\n\n /**\n * Use the network inspector by overriding the metro inspector proxy with a custom version.\n * @deprecated This has been replaced by `@react-native/dev-middleware` and is now unused.\n */\n get EXPO_NO_INSPECTOR_PROXY(): boolean {\n return boolish('EXPO_NO_INSPECTOR_PROXY', false);\n }\n\n /** Disable lazy bundling in Metro bundler. */\n get EXPO_NO_METRO_LAZY() {\n return boolish('EXPO_NO_METRO_LAZY', false);\n }\n\n /**\n * Enable the unstable inverse dependency stack trace for Metro bundling errors.\n * @deprecated This will be removed in the future.\n */\n get EXPO_METRO_UNSTABLE_ERRORS() {\n return boolish('EXPO_METRO_UNSTABLE_ERRORS', true);\n }\n\n /** Enable the experimental sticky resolver for Metro (Uses Expo Autolinking results and applies them to Metro's resolution)\n * @deprecated Replaced by `exp.experiments.autolinkingModuleResolution`\n */\n get EXPO_USE_STICKY_RESOLVER() {\n return boolish('EXPO_USE_STICKY_RESOLVER', false);\n }\n\n /** Disable Environment Variable injection in client bundles. */\n get EXPO_NO_CLIENT_ENV_VARS(): boolean {\n return boolish('EXPO_NO_CLIENT_ENV_VARS', false);\n }\n\n /** Set the default `user` that should be passed to `--user` with ADB commands. Used for installing APKs on Android devices with multiple profiles. Defaults to `0`. */\n get EXPO_ADB_USER(): string {\n return string('EXPO_ADB_USER', '0');\n }\n\n /** Used internally to enable E2E utilities. This behavior is not stable to external users. */\n get __EXPO_E2E_TEST(): boolean {\n return boolish('__EXPO_E2E_TEST', false);\n }\n\n /** Unstable: Force single-bundle exports in production. */\n get EXPO_NO_BUNDLE_SPLITTING(): boolean {\n return boolish('EXPO_NO_BUNDLE_SPLITTING', false);\n }\n\n /**\n * Enable Atlas to gather bundle information during development or export.\n * Note, because this used to be an experimental feature, both `EXPO_ATLAS` and `EXPO_UNSTABLE_ATLAS` are supported.\n */\n get EXPO_ATLAS() {\n return boolish('EXPO_ATLAS', boolish('EXPO_UNSTABLE_ATLAS', false));\n }\n\n /** Unstable: Enable tree shaking for Metro. */\n get EXPO_UNSTABLE_TREE_SHAKING() {\n return boolish('EXPO_UNSTABLE_TREE_SHAKING', false);\n }\n\n /** Unstable: Enable eager bundling where transformation runs uncached after the entire bundle has been created. This is required for production tree shaking and less optimized for development bundling. */\n get EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH() {\n return boolish('EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH', false);\n }\n\n /** Enable the use of Expo's custom metro require implementation. The custom require supports better debugging, tree shaking, and React Server Components. */\n get EXPO_USE_METRO_REQUIRE() {\n return boolish('EXPO_USE_METRO_REQUIRE', false);\n }\n\n /** Internal key used to pass eager bundle data from the CLI to the native run scripts during `npx expo run` commands. */\n get __EXPO_EAGER_BUNDLE_OPTIONS() {\n return string('__EXPO_EAGER_BUNDLE_OPTIONS', '');\n }\n\n /** Disable server deployment during production builds (during `expo export:embed`). This is useful for testing API routes and server components against a local server. */\n get EXPO_NO_DEPLOY(): boolean {\n return boolish('EXPO_NO_DEPLOY', false);\n }\n\n /** Enable hydration during development when rendering Expo Web */\n get EXPO_WEB_DEV_HYDRATE(): boolean {\n return boolish('EXPO_WEB_DEV_HYDRATE', false);\n }\n\n /** Enable experimental React Server Functions support. */\n get EXPO_UNSTABLE_SERVER_FUNCTIONS(): boolean {\n return boolish('EXPO_UNSTABLE_SERVER_FUNCTIONS', false);\n }\n\n /** Enable unstable/experimental mode where React Native Web isn't required to run Expo apps on web. */\n get EXPO_NO_REACT_NATIVE_WEB(): boolean {\n return boolish('EXPO_NO_REACT_NATIVE_WEB', false);\n }\n\n /** Enable unstable/experimental support for deploying the native server in `npx expo run` commands. */\n get EXPO_UNSTABLE_DEPLOY_SERVER(): boolean {\n return boolish('EXPO_UNSTABLE_DEPLOY_SERVER', false);\n }\n\n /** Is running in EAS Build. This is set by EAS: https://docs.expo.dev/eas/environment-variables/ */\n get EAS_BUILD(): boolean {\n return boolish('EAS_BUILD', false);\n }\n\n /** Disable the React Native Directory compatibility check for new architecture when installing packages */\n get EXPO_NO_NEW_ARCH_COMPAT_CHECK(): boolean {\n return boolish('EXPO_NO_NEW_ARCH_COMPAT_CHECK', false);\n }\n\n /** Disable the dependency validation when installing other dependencies and starting the project */\n get EXPO_NO_DEPENDENCY_VALIDATION(): boolean {\n // Default to disabling when running in a web container (stackblitz, bolt, etc).\n const isWebContainer = process.versions.webcontainer != null;\n return boolish('EXPO_NO_DEPENDENCY_VALIDATION', isWebContainer);\n }\n\n /** Force Expo CLI to run in webcontainer mode, this has impact on which URL Expo is using by default */\n get EXPO_FORCE_WEBCONTAINER_ENV(): boolean {\n return boolish('EXPO_FORCE_WEBCONTAINER_ENV', false);\n }\n\n /** Force Expo CLI to run in webcontainer mode, this has impact on which URL Expo is using by default */\n get EXPO_UNSTABLE_WEB_MODAL(): boolean {\n return boolish('EXPO_UNSTABLE_WEB_MODAL', false);\n }\n\n /** Disable by falsy value live binding in experimental import export support. Enabled by default. */\n get EXPO_UNSTABLE_LIVE_BINDINGS(): boolean {\n return boolish('EXPO_UNSTABLE_LIVE_BINDINGS', true);\n }\n\n /**\n * Enable the experimental MCP integration or further specify the MCP server URL.\n */\n get EXPO_UNSTABLE_MCP_SERVER(): string {\n const value = string('EXPO_UNSTABLE_MCP_SERVER', '');\n if (value === '1' || value.toLowerCase() === 'true') {\n return this.EXPO_STAGING ? 'staging-mcp.expo.dev' : 'mcp.expo.dev';\n }\n return value;\n }\n\n /** Enable Expo Log Box for iOS and Android (Web is enabled by default) */\n get EXPO_UNSTABLE_LOG_BOX(): boolean {\n return boolish('EXPO_UNSTABLE_LOG_BOX', false);\n }\n}\n\nexport const env = new Env();\n\nexport function envIsWebcontainer() {\n // See: https://github.com/unjs/std-env/blob/4b1e03c4efce58249858efc2cc5f5eac727d0adb/src/providers.ts#L134-L143\n return (\n env.EXPO_FORCE_WEBCONTAINER_ENV ||\n (process.env.SHELL === '/bin/jsh' && !!process.versions.webcontainer)\n );\n}\n"],"names":["env","envIsWebcontainer","Env","EXPO_PROFILE","boolish","EXPO_DEBUG","EXPO_OFFLINE","EXPO_BETA","EXPO_STAGING","EXPO_LOCAL","CI","EXPO_NO_TELEMETRY","EXPO_NO_TELEMETRY_DETACH","EXPO_UNIVERSE_DIR","string","WEB_HOST","EXPO_NO_GIT_STATUS","EXPO_NO_WEB_SETUP","EXPO_NO_TYPESCRIPT_SETUP","EXPO_NO_CACHE","EXPO_NO_REDIRECT_PAGE","RCT_METRO_PORT","int","EXPO_SKIP_MANIFEST_VALIDATION_TOKEN","EXPO_PUBLIC_FOLDER","EXPO_EDITOR","EXPO_PACKAGER_PROXY_URL","EXPO_TUNNEL_SUBDOMAIN","subdomain","includes","EXPO_METRO_NO_MAIN_FIELD_OVERRIDE","HTTP_PROXY","process","http_proxy","EXPO_NO_INSPECTOR_PROXY","EXPO_NO_METRO_LAZY","EXPO_METRO_UNSTABLE_ERRORS","EXPO_USE_STICKY_RESOLVER","EXPO_NO_CLIENT_ENV_VARS","EXPO_ADB_USER","__EXPO_E2E_TEST","EXPO_NO_BUNDLE_SPLITTING","EXPO_ATLAS","EXPO_UNSTABLE_TREE_SHAKING","EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH","EXPO_USE_METRO_REQUIRE","__EXPO_EAGER_BUNDLE_OPTIONS","EXPO_NO_DEPLOY","EXPO_WEB_DEV_HYDRATE","EXPO_UNSTABLE_SERVER_FUNCTIONS","EXPO_NO_REACT_NATIVE_WEB","EXPO_UNSTABLE_DEPLOY_SERVER","EAS_BUILD","EXPO_NO_NEW_ARCH_COMPAT_CHECK","EXPO_NO_DEPENDENCY_VALIDATION","isWebContainer","versions","webcontainer","EXPO_FORCE_WEBCONTAINER_ENV","EXPO_UNSTABLE_WEB_MODAL","EXPO_UNSTABLE_LIVE_BINDINGS","EXPO_UNSTABLE_MCP_SERVER","value","toLowerCase","EXPO_UNSTABLE_LOG_BOX","SHELL"],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ class FetchClient {
|
|
|
33
33
|
this.headers = {
|
|
34
34
|
accept: 'application/json',
|
|
35
35
|
'content-type': 'application/json',
|
|
36
|
-
'user-agent': `expo-cli/${"
|
|
36
|
+
'user-agent': `expo-cli/${"55.0.0-canary-20251118-8f7ee64"}`,
|
|
37
37
|
authorization: 'Basic ' + _nodebuffer().Buffer.from(`${target}:`).toString('base64')
|
|
38
38
|
};
|
|
39
39
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "55.0.0-canary-20251118-8f7ee64",
|
|
4
4
|
"description": "The Expo CLI",
|
|
5
5
|
"main": "build/bin/cli",
|
|
6
6
|
"bin": {
|
|
@@ -43,26 +43,26 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@0no-co/graphql.web": "^1.0.8",
|
|
45
45
|
"@expo/code-signing-certificates": "^0.0.5",
|
|
46
|
-
"@expo/config": "12.0.11-canary-
|
|
47
|
-
"@expo/config-plugins": "54.0.3-canary-
|
|
46
|
+
"@expo/config": "12.0.11-canary-20251118-8f7ee64",
|
|
47
|
+
"@expo/config-plugins": "54.0.3-canary-20251118-8f7ee64",
|
|
48
48
|
"@expo/devcert": "^1.1.2",
|
|
49
|
-
"@expo/env": "2.0.8-canary-
|
|
50
|
-
"@expo/image-utils": "0.8.8-canary-
|
|
51
|
-
"@expo/json-file": "10.0.8-canary-
|
|
52
|
-
"@expo/mcp-tunnel": "~0.0
|
|
49
|
+
"@expo/env": "2.0.8-canary-20251118-8f7ee64",
|
|
50
|
+
"@expo/image-utils": "0.8.8-canary-20251118-8f7ee64",
|
|
51
|
+
"@expo/json-file": "10.0.8-canary-20251118-8f7ee64",
|
|
52
|
+
"@expo/mcp-tunnel": "~0.1.0",
|
|
53
53
|
"@expo/metro": "~54.1.0",
|
|
54
|
-
"@expo/metro-config": "54.0
|
|
55
|
-
"@expo/osascript": "2.3.8-canary-
|
|
56
|
-
"@expo/package-manager": "1.9.9-canary-
|
|
57
|
-
"@expo/plist": "0.4.8-canary-
|
|
58
|
-
"@expo/prebuild-config": "54.0.7-canary-
|
|
59
|
-
"@expo/router-server": "0.
|
|
60
|
-
"@expo/log-box": "0.0.13-canary-
|
|
61
|
-
"@expo/schema-utils": "0.1.8-canary-
|
|
54
|
+
"@expo/metro-config": "54.1.0-canary-20251118-8f7ee64",
|
|
55
|
+
"@expo/osascript": "2.3.8-canary-20251118-8f7ee64",
|
|
56
|
+
"@expo/package-manager": "1.9.9-canary-20251118-8f7ee64",
|
|
57
|
+
"@expo/plist": "0.4.8-canary-20251118-8f7ee64",
|
|
58
|
+
"@expo/prebuild-config": "54.0.7-canary-20251118-8f7ee64",
|
|
59
|
+
"@expo/router-server": "0.2.0-canary-20251118-8f7ee64",
|
|
60
|
+
"@expo/log-box": "0.0.13-canary-20251118-8f7ee64",
|
|
61
|
+
"@expo/schema-utils": "0.1.8-canary-20251118-8f7ee64",
|
|
62
62
|
"@expo/spawn-async": "^1.7.2",
|
|
63
63
|
"@expo/ws-tunnel": "^1.0.1",
|
|
64
64
|
"@expo/xcpretty": "^4.3.0",
|
|
65
|
-
"@react-native/dev-middleware": "0.
|
|
65
|
+
"@react-native/dev-middleware": "0.83.0-nightly-20251104-502efe1cc",
|
|
66
66
|
"@urql/core": "^5.0.6",
|
|
67
67
|
"@urql/exchange-retry": "^1.3.0",
|
|
68
68
|
"accepts": "^1.3.8",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"connect": "^3.7.0",
|
|
77
77
|
"debug": "^4.3.4",
|
|
78
78
|
"env-editor": "^0.4.1",
|
|
79
|
-
"expo-server": "1.
|
|
79
|
+
"expo-server": "1.0.5-canary-20251118-8f7ee64",
|
|
80
80
|
"freeport-async": "^2.0.0",
|
|
81
81
|
"getenv": "^2.0.0",
|
|
82
82
|
"glob": "^10.4.2",
|
|
@@ -93,9 +93,7 @@
|
|
|
93
93
|
"qrcode-terminal": "0.11.0",
|
|
94
94
|
"require-from-string": "^2.0.2",
|
|
95
95
|
"requireg": "^0.2.2",
|
|
96
|
-
"resolve": "^1.22.2",
|
|
97
96
|
"resolve-from": "^5.0.0",
|
|
98
|
-
"resolve.exports": "^2.0.3",
|
|
99
97
|
"semver": "^7.6.0",
|
|
100
98
|
"send": "^0.19.0",
|
|
101
99
|
"slugify": "^1.3.4",
|
|
@@ -115,8 +113,8 @@
|
|
|
115
113
|
]
|
|
116
114
|
},
|
|
117
115
|
"peerDependencies": {
|
|
118
|
-
"expo": "55.0.0-canary-
|
|
119
|
-
"expo-router": "7.0.0-canary-
|
|
116
|
+
"expo": "55.0.0-canary-20251118-8f7ee64",
|
|
117
|
+
"expo-router": "7.0.0-canary-20251118-8f7ee64",
|
|
120
118
|
"react-native": "*"
|
|
121
119
|
},
|
|
122
120
|
"peerDependenciesMeta": {
|
|
@@ -159,12 +157,12 @@
|
|
|
159
157
|
"@types/ws": "^8.5.4",
|
|
160
158
|
"devtools-protocol": "^0.0.1113120",
|
|
161
159
|
"expo-atlas": "^0.4.1",
|
|
162
|
-
"expo-module-scripts": "5.0
|
|
160
|
+
"expo-module-scripts": "5.1.0-canary-20251118-8f7ee64",
|
|
163
161
|
"find-process": "^1.4.7",
|
|
164
162
|
"jest-runner-tsd": "^6.0.0",
|
|
165
163
|
"klaw-sync": "^6.0.0",
|
|
166
164
|
"memfs": "^3.2.0",
|
|
167
|
-
"nock": "14.0.
|
|
165
|
+
"nock": "^14.0.10",
|
|
168
166
|
"node-html-parser": "^6.1.5",
|
|
169
167
|
"nullthrows": "^1.1.1",
|
|
170
168
|
"playwright": "^1.53.1",
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright © 2023 650 Industries.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/ "use strict";
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
function _export(target, all) {
|
|
11
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: all[name]
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
_export(exports, {
|
|
17
|
-
FailedToResolvePathError: function() {
|
|
18
|
-
return FailedToResolvePathError;
|
|
19
|
-
},
|
|
20
|
-
createFastResolver: function() {
|
|
21
|
-
return createFastResolver;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
function _fs() {
|
|
25
|
-
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
26
|
-
_fs = function() {
|
|
27
|
-
return data;
|
|
28
|
-
};
|
|
29
|
-
return data;
|
|
30
|
-
}
|
|
31
|
-
function _path() {
|
|
32
|
-
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
33
|
-
_path = function() {
|
|
34
|
-
return data;
|
|
35
|
-
};
|
|
36
|
-
return data;
|
|
37
|
-
}
|
|
38
|
-
const _createJResolver = /*#__PURE__*/ _interop_require_default(require("./createJResolver"));
|
|
39
|
-
const _externals = require("./externals");
|
|
40
|
-
const _formatFileCandidates = require("./formatFileCandidates");
|
|
41
|
-
const _metroOptions = require("../middleware/metroOptions");
|
|
42
|
-
function _interop_require_default(obj) {
|
|
43
|
-
return obj && obj.__esModule ? obj : {
|
|
44
|
-
default: obj
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
class FailedToResolvePathError extends Error {
|
|
48
|
-
constructor(...args){
|
|
49
|
-
super(...args), // Added to ensure the error is matched by our tooling.
|
|
50
|
-
// TODO: Test that this matches `isFailedToResolvePathError`
|
|
51
|
-
this.candidates = {};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
class ShimModuleError extends Error {
|
|
55
|
-
}
|
|
56
|
-
const debug = require('debug')('expo:metro:resolve');
|
|
57
|
-
const realpathFS = process.platform !== 'win32' && _fs().default.realpathSync && typeof _fs().default.realpathSync.native === 'function' ? _fs().default.realpathSync.native : _fs().default.realpathSync;
|
|
58
|
-
function realpathSync(x) {
|
|
59
|
-
try {
|
|
60
|
-
return realpathFS(x);
|
|
61
|
-
} catch (realpathErr) {
|
|
62
|
-
if (realpathErr.code !== 'ENOENT') {
|
|
63
|
-
throw realpathErr;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return x;
|
|
67
|
-
}
|
|
68
|
-
function createFastResolver({ preserveSymlinks, blockList }) {
|
|
69
|
-
debug('Creating with settings:', {
|
|
70
|
-
preserveSymlinks,
|
|
71
|
-
blockList
|
|
72
|
-
});
|
|
73
|
-
const cachedExtensions = new Map();
|
|
74
|
-
function getAdjustedExtensions({ metroSourceExtensions, platform, isNative }) {
|
|
75
|
-
const key = JSON.stringify({
|
|
76
|
-
metroSourceExtensions,
|
|
77
|
-
platform,
|
|
78
|
-
isNative
|
|
79
|
-
});
|
|
80
|
-
if (cachedExtensions.has(key)) {
|
|
81
|
-
return cachedExtensions.get(key);
|
|
82
|
-
}
|
|
83
|
-
let output = metroSourceExtensions;
|
|
84
|
-
if (platform) {
|
|
85
|
-
const nextOutput = [];
|
|
86
|
-
output.forEach((ext)=>{
|
|
87
|
-
nextOutput.push(`${platform}.${ext}`);
|
|
88
|
-
if (isNative) {
|
|
89
|
-
nextOutput.push(`native.${ext}`);
|
|
90
|
-
}
|
|
91
|
-
nextOutput.push(ext);
|
|
92
|
-
});
|
|
93
|
-
output = nextOutput;
|
|
94
|
-
}
|
|
95
|
-
output = Array.from(new Set(output));
|
|
96
|
-
// resolve expects these to start with a dot.
|
|
97
|
-
output = output.map((ext)=>`.${ext}`);
|
|
98
|
-
cachedExtensions.set(key, output);
|
|
99
|
-
return output;
|
|
100
|
-
}
|
|
101
|
-
function fastResolve(context, moduleName, platform) {
|
|
102
|
-
var _context_customResolverOptions;
|
|
103
|
-
const environment = (_context_customResolverOptions = context.customResolverOptions) == null ? void 0 : _context_customResolverOptions.environment;
|
|
104
|
-
const isServer = (0, _metroOptions.isServerEnvironment)(environment);
|
|
105
|
-
const extensions = getAdjustedExtensions({
|
|
106
|
-
metroSourceExtensions: context.sourceExts,
|
|
107
|
-
platform,
|
|
108
|
-
isNative: context.preferNativePlatform
|
|
109
|
-
});
|
|
110
|
-
let fp;
|
|
111
|
-
const conditions = context.unstable_enablePackageExports ? [
|
|
112
|
-
...new Set([
|
|
113
|
-
'default',
|
|
114
|
-
context.isESMImport === true ? 'import' : 'require',
|
|
115
|
-
...context.unstable_conditionNames,
|
|
116
|
-
...platform != null ? context.unstable_conditionsByPlatform[platform] ?? [] : []
|
|
117
|
-
])
|
|
118
|
-
] : [];
|
|
119
|
-
// NOTE(cedric): metro@0.81.0 ships with `fileSystemLookup`, while `metro@0.80.12` ships as unstable
|
|
120
|
-
const fileSystemLookup = 'unstable_fileSystemLookup' in context ? context.unstable_fileSystemLookup : context.fileSystemLookup;
|
|
121
|
-
if (!fileSystemLookup) {
|
|
122
|
-
throw new Error('Metro API fileSystemLookup is required for fast resolver');
|
|
123
|
-
}
|
|
124
|
-
try {
|
|
125
|
-
fp = (0, _createJResolver.default)(moduleName, {
|
|
126
|
-
blockList,
|
|
127
|
-
enablePackageExports: context.unstable_enablePackageExports,
|
|
128
|
-
basedir: _path().default.dirname(context.originModulePath),
|
|
129
|
-
paths: context.nodeModulesPaths.length ? context.nodeModulesPaths : undefined,
|
|
130
|
-
extensions,
|
|
131
|
-
conditions,
|
|
132
|
-
realpathSync (file) {
|
|
133
|
-
let metroRealPath = null;
|
|
134
|
-
const res = fileSystemLookup(file);
|
|
135
|
-
if (res == null ? void 0 : res.exists) {
|
|
136
|
-
metroRealPath = res.realPath;
|
|
137
|
-
}
|
|
138
|
-
if (metroRealPath == null && preserveSymlinks) {
|
|
139
|
-
return realpathSync(file);
|
|
140
|
-
}
|
|
141
|
-
return metroRealPath ?? file;
|
|
142
|
-
},
|
|
143
|
-
isDirectory (file) {
|
|
144
|
-
const res = fileSystemLookup(file);
|
|
145
|
-
return res.exists && res.type === 'd';
|
|
146
|
-
},
|
|
147
|
-
isFile (file) {
|
|
148
|
-
const res = fileSystemLookup(file);
|
|
149
|
-
return res.exists && res.type === 'f';
|
|
150
|
-
},
|
|
151
|
-
pathExists (file) {
|
|
152
|
-
return fileSystemLookup(file).exists;
|
|
153
|
-
},
|
|
154
|
-
packageFilter (pkg) {
|
|
155
|
-
// set the pkg.main to the first available field in context.mainFields
|
|
156
|
-
for (const field of context.mainFields){
|
|
157
|
-
if (pkg[field] && // object-inspect uses browser: {} in package.json
|
|
158
|
-
typeof pkg[field] === 'string') {
|
|
159
|
-
return {
|
|
160
|
-
...pkg,
|
|
161
|
-
main: pkg[field]
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return pkg;
|
|
166
|
-
},
|
|
167
|
-
// Used to ensure files trace to packages instead of node_modules in expo/expo. This is how Metro works and
|
|
168
|
-
// the app doesn't finish without it.
|
|
169
|
-
preserveSymlinks,
|
|
170
|
-
readPackageSync (readFileSync, pkgFile) {
|
|
171
|
-
return context.getPackage(pkgFile) ?? JSON.parse(_fs().default.readFileSync(pkgFile, 'utf8'));
|
|
172
|
-
},
|
|
173
|
-
includeCoreModules: isServer,
|
|
174
|
-
pathFilter: // Disable `browser` field for server environments.
|
|
175
|
-
isServer ? undefined : (pkg, _resolvedPath, relativePathIn)=>{
|
|
176
|
-
let relativePath = relativePathIn;
|
|
177
|
-
if (relativePath[0] !== '.') {
|
|
178
|
-
relativePath = `./${relativePath}`;
|
|
179
|
-
}
|
|
180
|
-
const replacements = pkg.browser;
|
|
181
|
-
if (replacements === undefined) {
|
|
182
|
-
return '';
|
|
183
|
-
}
|
|
184
|
-
// TODO: Probably use a better extension matching system here.
|
|
185
|
-
// This was added for `uuid/v4` -> `./lib/rng` -> `./lib/rng-browser.js`
|
|
186
|
-
const mappedPath = replacements[relativePath] ?? replacements[relativePath + '.js'];
|
|
187
|
-
if (mappedPath === false) {
|
|
188
|
-
throw new ShimModuleError();
|
|
189
|
-
}
|
|
190
|
-
return mappedPath;
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
} catch (error) {
|
|
194
|
-
if (error instanceof ShimModuleError) {
|
|
195
|
-
return {
|
|
196
|
-
type: 'empty'
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
if ('code' in error && error.code === 'MODULE_NOT_FOUND') {
|
|
200
|
-
if ((0, _externals.isNodeExternal)(moduleName)) {
|
|
201
|
-
// In this case, mock the file to use an empty module.
|
|
202
|
-
return {
|
|
203
|
-
type: 'empty'
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
debug({
|
|
207
|
-
moduleName,
|
|
208
|
-
platform,
|
|
209
|
-
conditions,
|
|
210
|
-
isServer,
|
|
211
|
-
preserveSymlinks
|
|
212
|
-
}, context);
|
|
213
|
-
throw new FailedToResolvePathError('The module could not be resolved because no file or module matched the pattern:\n' + ` ${(0, _formatFileCandidates.formatFileCandidates)({
|
|
214
|
-
type: 'sourceFile',
|
|
215
|
-
filePathPrefix: moduleName,
|
|
216
|
-
candidateExts: extensions
|
|
217
|
-
}, true)}\n\nFrom:\n ${context.originModulePath}\n`);
|
|
218
|
-
}
|
|
219
|
-
throw error;
|
|
220
|
-
}
|
|
221
|
-
if (context.sourceExts.some((ext)=>fp.endsWith(ext))) {
|
|
222
|
-
return {
|
|
223
|
-
type: 'sourceFile',
|
|
224
|
-
filePath: fp
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
if ((0, _externals.isNodeExternal)(fp)) {
|
|
228
|
-
if (isServer) {
|
|
229
|
-
return {
|
|
230
|
-
type: 'sourceFile',
|
|
231
|
-
filePath: fp
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
// NOTE: This shouldn't happen, the module should throw.
|
|
235
|
-
// Mock non-server built-in modules to empty.
|
|
236
|
-
return {
|
|
237
|
-
type: 'empty'
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
// NOTE: platform extensions may not be supported on assets.
|
|
241
|
-
if (platform === 'web') {
|
|
242
|
-
// Skip multi-resolution on web/server bundles. Only consideration here is that
|
|
243
|
-
// we may still need it in case the only image is a multi-resolution image.
|
|
244
|
-
return {
|
|
245
|
-
type: 'assetFiles',
|
|
246
|
-
filePaths: [
|
|
247
|
-
fp
|
|
248
|
-
]
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
const dirPath = _path().default.dirname(fp);
|
|
252
|
-
const extension = _path().default.extname(fp);
|
|
253
|
-
const basename = _path().default.basename(fp, extension);
|
|
254
|
-
return {
|
|
255
|
-
type: 'assetFiles',
|
|
256
|
-
// Support multi-resolution asset extensions...
|
|
257
|
-
filePaths: context.resolveAsset(dirPath, basename, extension) ?? [
|
|
258
|
-
fp
|
|
259
|
-
]
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
return fastResolve;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
//# sourceMappingURL=createExpoMetroResolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/metro/createExpoMetroResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport type { Resolution, ResolutionContext } from '@expo/metro/metro-resolver';\nimport fs from 'fs';\nimport path from 'path';\n\nimport jestResolver from './createJResolver';\nimport { isNodeExternal } from './externals';\nimport { formatFileCandidates } from './formatFileCandidates';\nimport { isServerEnvironment } from '../middleware/metroOptions';\n\nexport class FailedToResolvePathError extends Error {\n // Added to ensure the error is matched by our tooling.\n // TODO: Test that this matches `isFailedToResolvePathError`\n candidates = {};\n}\n\nclass ShimModuleError extends Error {}\n\nconst debug = require('debug')('expo:metro:resolve') as typeof console.log;\n\nconst realpathFS =\n process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function'\n ? fs.realpathSync.native\n : fs.realpathSync;\n\nfunction realpathSync(x: string) {\n try {\n return realpathFS(x);\n } catch (realpathErr: any) {\n if (realpathErr.code !== 'ENOENT') {\n throw realpathErr;\n }\n }\n return x;\n}\n\nexport function createFastResolver({\n preserveSymlinks,\n blockList,\n}: {\n preserveSymlinks: boolean;\n blockList: RegExp[];\n}) {\n debug('Creating with settings:', { preserveSymlinks, blockList });\n const cachedExtensions: Map<string, readonly string[]> = new Map();\n\n function getAdjustedExtensions({\n metroSourceExtensions,\n platform,\n isNative,\n }: {\n metroSourceExtensions: readonly string[];\n platform: string | null;\n isNative: boolean;\n }): readonly string[] {\n const key = JSON.stringify({ metroSourceExtensions, platform, isNative });\n if (cachedExtensions.has(key)) {\n return cachedExtensions.get(key)!;\n }\n\n let output = metroSourceExtensions;\n if (platform) {\n const nextOutput: string[] = [];\n\n output.forEach((ext) => {\n nextOutput.push(`${platform}.${ext}`);\n if (isNative) {\n nextOutput.push(`native.${ext}`);\n }\n nextOutput.push(ext);\n });\n\n output = nextOutput;\n }\n\n output = Array.from(new Set<string>(output));\n\n // resolve expects these to start with a dot.\n output = output.map((ext) => `.${ext}`);\n\n cachedExtensions.set(key, output);\n\n return output;\n }\n\n function fastResolve(\n context: Pick<\n ResolutionContext,\n | 'unstable_enablePackageExports'\n | 'customResolverOptions'\n | 'sourceExts'\n | 'preferNativePlatform'\n | 'originModulePath'\n | 'getPackage'\n | 'nodeModulesPaths'\n | 'mainFields'\n | 'resolveAsset'\n | 'unstable_conditionNames'\n | 'unstable_conditionsByPlatform'\n | 'fileSystemLookup'\n | 'isESMImport'\n >,\n moduleName: string,\n platform: string | null\n ): Resolution {\n const environment = context.customResolverOptions?.environment;\n const isServer = isServerEnvironment(environment);\n\n const extensions = getAdjustedExtensions({\n metroSourceExtensions: context.sourceExts,\n platform,\n isNative: context.preferNativePlatform,\n }) as string[];\n\n let fp: string;\n\n const conditions = context.unstable_enablePackageExports\n ? [\n ...new Set([\n 'default',\n context.isESMImport === true ? 'import' : 'require',\n ...context.unstable_conditionNames,\n ...(platform != null ? (context.unstable_conditionsByPlatform[platform] ?? []) : []),\n ]),\n ]\n : [];\n\n // NOTE(cedric): metro@0.81.0 ships with `fileSystemLookup`, while `metro@0.80.12` ships as unstable\n const fileSystemLookup = (\n 'unstable_fileSystemLookup' in context\n ? context.unstable_fileSystemLookup\n : context.fileSystemLookup\n ) as ResolutionContext['fileSystemLookup'] | undefined;\n\n if (!fileSystemLookup) {\n throw new Error('Metro API fileSystemLookup is required for fast resolver');\n }\n\n try {\n fp = jestResolver(moduleName, {\n blockList,\n enablePackageExports: context.unstable_enablePackageExports,\n basedir: path.dirname(context.originModulePath),\n paths: context.nodeModulesPaths.length ? (context.nodeModulesPaths as string[]) : undefined,\n extensions,\n conditions,\n realpathSync(file: string): string {\n let metroRealPath: string | null = null;\n\n const res = fileSystemLookup(file);\n if (res?.exists) {\n metroRealPath = res.realPath;\n }\n\n if (metroRealPath == null && preserveSymlinks) {\n return realpathSync(file);\n }\n return metroRealPath ?? file;\n },\n isDirectory(file: string): boolean {\n const res = fileSystemLookup(file);\n return res.exists && res.type === 'd';\n },\n isFile(file: string): boolean {\n const res = fileSystemLookup(file);\n return res.exists && res.type === 'f';\n },\n pathExists(file: string): boolean {\n return fileSystemLookup(file).exists;\n },\n packageFilter(pkg) {\n // set the pkg.main to the first available field in context.mainFields\n for (const field of context.mainFields) {\n if (\n pkg[field] &&\n // object-inspect uses browser: {} in package.json\n typeof pkg[field] === 'string'\n ) {\n return {\n ...pkg,\n main: pkg[field],\n };\n }\n }\n return pkg;\n },\n // Used to ensure files trace to packages instead of node_modules in expo/expo. This is how Metro works and\n // the app doesn't finish without it.\n preserveSymlinks,\n readPackageSync(readFileSync, pkgFile) {\n return context.getPackage(pkgFile) ?? JSON.parse(fs.readFileSync(pkgFile, 'utf8'));\n },\n includeCoreModules: isServer,\n\n pathFilter:\n // Disable `browser` field for server environments.\n isServer\n ? undefined\n : // Enable `browser` field support\n (pkg: any, _resolvedPath: string, relativePathIn: string): string => {\n let relativePath = relativePathIn;\n if (relativePath[0] !== '.') {\n relativePath = `./${relativePath}`;\n }\n\n const replacements = pkg.browser;\n if (replacements === undefined) {\n return '';\n }\n\n // TODO: Probably use a better extension matching system here.\n // This was added for `uuid/v4` -> `./lib/rng` -> `./lib/rng-browser.js`\n const mappedPath = replacements[relativePath] ?? replacements[relativePath + '.js'];\n if (mappedPath === false) {\n throw new ShimModuleError();\n }\n return mappedPath;\n },\n });\n } catch (error: any) {\n if (error instanceof ShimModuleError) {\n return {\n type: 'empty',\n };\n }\n\n if ('code' in error && error.code === 'MODULE_NOT_FOUND') {\n if (isNodeExternal(moduleName)) {\n // In this case, mock the file to use an empty module.\n return {\n type: 'empty',\n };\n }\n\n debug({ moduleName, platform, conditions, isServer, preserveSymlinks }, context);\n\n throw new FailedToResolvePathError(\n 'The module could not be resolved because no file or module matched the pattern:\\n' +\n ` ${formatFileCandidates(\n {\n type: 'sourceFile',\n filePathPrefix: moduleName,\n candidateExts: extensions,\n },\n true\n )}\\n\\nFrom:\\n ${context.originModulePath}\\n`\n );\n }\n throw error;\n }\n\n if (context.sourceExts.some((ext) => fp.endsWith(ext))) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n\n if (isNodeExternal(fp)) {\n if (isServer) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n // NOTE: This shouldn't happen, the module should throw.\n // Mock non-server built-in modules to empty.\n return {\n type: 'empty',\n };\n }\n\n // NOTE: platform extensions may not be supported on assets.\n\n if (platform === 'web') {\n // Skip multi-resolution on web/server bundles. Only consideration here is that\n // we may still need it in case the only image is a multi-resolution image.\n return {\n type: 'assetFiles',\n filePaths: [fp],\n };\n }\n\n const dirPath = path.dirname(fp);\n const extension = path.extname(fp);\n const basename = path.basename(fp, extension);\n return {\n type: 'assetFiles',\n // Support multi-resolution asset extensions...\n filePaths: context.resolveAsset(dirPath, basename, extension) ?? [fp],\n };\n }\n\n return fastResolve;\n}\n"],"names":["FailedToResolvePathError","createFastResolver","Error","candidates","ShimModuleError","debug","require","realpathFS","process","platform","fs","realpathSync","native","x","realpathErr","code","preserveSymlinks","blockList","cachedExtensions","Map","getAdjustedExtensions","metroSourceExtensions","isNative","key","JSON","stringify","has","get","output","nextOutput","forEach","ext","push","Array","from","Set","map","set","fastResolve","context","moduleName","environment","customResolverOptions","isServer","isServerEnvironment","extensions","sourceExts","preferNativePlatform","fp","conditions","unstable_enablePackageExports","isESMImport","unstable_conditionNames","unstable_conditionsByPlatform","fileSystemLookup","unstable_fileSystemLookup","jestResolver","enablePackageExports","basedir","path","dirname","originModulePath","paths","nodeModulesPaths","length","undefined","file","metroRealPath","res","exists","realPath","isDirectory","type","isFile","pathExists","packageFilter","pkg","field","mainFields","main","readPackageSync","readFileSync","pkgFile","getPackage","parse","includeCoreModules","pathFilter","_resolvedPath","relativePathIn","relativePath","replacements","browser","mappedPath","error","isNodeExternal","formatFileCandidates","filePathPrefix","candidateExts","some","endsWith","filePath","filePaths","dirPath","extension","extname","basename","resolveAsset"],"mappings":"AAAA;;;;;CAKC;;;;;;;;;;;IAUYA,wBAAwB;eAAxBA;;IA0BGC,kBAAkB;eAAlBA;;;;gEAlCD;;;;;;;gEACE;;;;;;wEAEQ;2BACM;sCACM;8BACD;;;;;;AAE7B,MAAMD,iCAAiCE;;QAAvC,gBACL,uDAAuD;QACvD,4DAA4D;aAC5DC,aAAa,CAAC;;AAChB;AAEA,MAAMC,wBAAwBF;AAAO;AAErC,MAAMG,QAAQC,QAAQ,SAAS;AAE/B,MAAMC,aACJC,QAAQC,QAAQ,KAAK,WAAWC,aAAE,CAACC,YAAY,IAAI,OAAOD,aAAE,CAACC,YAAY,CAACC,MAAM,KAAK,aACjFF,aAAE,CAACC,YAAY,CAACC,MAAM,GACtBF,aAAE,CAACC,YAAY;AAErB,SAASA,aAAaE,CAAS;IAC7B,IAAI;QACF,OAAON,WAAWM;IACpB,EAAE,OAAOC,aAAkB;QACzB,IAAIA,YAAYC,IAAI,KAAK,UAAU;YACjC,MAAMD;QACR;IACF;IACA,OAAOD;AACT;AAEO,SAASZ,mBAAmB,EACjCe,gBAAgB,EAChBC,SAAS,EAIV;IACCZ,MAAM,2BAA2B;QAAEW;QAAkBC;IAAU;IAC/D,MAAMC,mBAAmD,IAAIC;IAE7D,SAASC,sBAAsB,EAC7BC,qBAAqB,EACrBZ,QAAQ,EACRa,QAAQ,EAKT;QACC,MAAMC,MAAMC,KAAKC,SAAS,CAAC;YAAEJ;YAAuBZ;YAAUa;QAAS;QACvE,IAAIJ,iBAAiBQ,GAAG,CAACH,MAAM;YAC7B,OAAOL,iBAAiBS,GAAG,CAACJ;QAC9B;QAEA,IAAIK,SAASP;QACb,IAAIZ,UAAU;YACZ,MAAMoB,aAAuB,EAAE;YAE/BD,OAAOE,OAAO,CAAC,CAACC;gBACdF,WAAWG,IAAI,CAAC,GAAGvB,SAAS,CAAC,EAAEsB,KAAK;gBACpC,IAAIT,UAAU;oBACZO,WAAWG,IAAI,CAAC,CAAC,OAAO,EAAED,KAAK;gBACjC;gBACAF,WAAWG,IAAI,CAACD;YAClB;YAEAH,SAASC;QACX;QAEAD,SAASK,MAAMC,IAAI,CAAC,IAAIC,IAAYP;QAEpC,6CAA6C;QAC7CA,SAASA,OAAOQ,GAAG,CAAC,CAACL,MAAQ,CAAC,CAAC,EAAEA,KAAK;QAEtCb,iBAAiBmB,GAAG,CAACd,KAAKK;QAE1B,OAAOA;IACT;IAEA,SAASU,YACPC,OAeC,EACDC,UAAkB,EAClB/B,QAAuB;YAEH8B;QAApB,MAAME,eAAcF,iCAAAA,QAAQG,qBAAqB,qBAA7BH,+BAA+BE,WAAW;QAC9D,MAAME,WAAWC,IAAAA,iCAAmB,EAACH;QAErC,MAAMI,aAAazB,sBAAsB;YACvCC,uBAAuBkB,QAAQO,UAAU;YACzCrC;YACAa,UAAUiB,QAAQQ,oBAAoB;QACxC;QAEA,IAAIC;QAEJ,MAAMC,aAAaV,QAAQW,6BAA6B,GACpD;eACK,IAAIf,IAAI;gBACT;gBACAI,QAAQY,WAAW,KAAK,OAAO,WAAW;mBACvCZ,QAAQa,uBAAuB;mBAC9B3C,YAAY,OAAQ8B,QAAQc,6BAA6B,CAAC5C,SAAS,IAAI,EAAE,GAAI,EAAE;aACpF;SACF,GACD,EAAE;QAEN,oGAAoG;QACpG,MAAM6C,mBACJ,+BAA+Bf,UAC3BA,QAAQgB,yBAAyB,GACjChB,QAAQe,gBAAgB;QAG9B,IAAI,CAACA,kBAAkB;YACrB,MAAM,IAAIpD,MAAM;QAClB;QAEA,IAAI;YACF8C,KAAKQ,IAAAA,wBAAY,EAAChB,YAAY;gBAC5BvB;gBACAwC,sBAAsBlB,QAAQW,6BAA6B;gBAC3DQ,SAASC,eAAI,CAACC,OAAO,CAACrB,QAAQsB,gBAAgB;gBAC9CC,OAAOvB,QAAQwB,gBAAgB,CAACC,MAAM,GAAIzB,QAAQwB,gBAAgB,GAAgBE;gBAClFpB;gBACAI;gBACAtC,cAAauD,IAAY;oBACvB,IAAIC,gBAA+B;oBAEnC,MAAMC,MAAMd,iBAAiBY;oBAC7B,IAAIE,uBAAAA,IAAKC,MAAM,EAAE;wBACfF,gBAAgBC,IAAIE,QAAQ;oBAC9B;oBAEA,IAAIH,iBAAiB,QAAQnD,kBAAkB;wBAC7C,OAAOL,aAAauD;oBACtB;oBACA,OAAOC,iBAAiBD;gBAC1B;gBACAK,aAAYL,IAAY;oBACtB,MAAME,MAAMd,iBAAiBY;oBAC7B,OAAOE,IAAIC,MAAM,IAAID,IAAII,IAAI,KAAK;gBACpC;gBACAC,QAAOP,IAAY;oBACjB,MAAME,MAAMd,iBAAiBY;oBAC7B,OAAOE,IAAIC,MAAM,IAAID,IAAII,IAAI,KAAK;gBACpC;gBACAE,YAAWR,IAAY;oBACrB,OAAOZ,iBAAiBY,MAAMG,MAAM;gBACtC;gBACAM,eAAcC,GAAG;oBACf,sEAAsE;oBACtE,KAAK,MAAMC,SAAStC,QAAQuC,UAAU,CAAE;wBACtC,IACEF,GAAG,CAACC,MAAM,IACV,kDAAkD;wBAClD,OAAOD,GAAG,CAACC,MAAM,KAAK,UACtB;4BACA,OAAO;gCACL,GAAGD,GAAG;gCACNG,MAAMH,GAAG,CAACC,MAAM;4BAClB;wBACF;oBACF;oBACA,OAAOD;gBACT;gBACA,2GAA2G;gBAC3G,qCAAqC;gBACrC5D;gBACAgE,iBAAgBC,YAAY,EAAEC,OAAO;oBACnC,OAAO3C,QAAQ4C,UAAU,CAACD,YAAY1D,KAAK4D,KAAK,CAAC1E,aAAE,CAACuE,YAAY,CAACC,SAAS;gBAC5E;gBACAG,oBAAoB1C;gBAEpB2C,YACE,mDAAmD;gBACnD3C,WACIsB,YAEA,CAACW,KAAUW,eAAuBC;oBAChC,IAAIC,eAAeD;oBACnB,IAAIC,YAAY,CAAC,EAAE,KAAK,KAAK;wBAC3BA,eAAe,CAAC,EAAE,EAAEA,cAAc;oBACpC;oBAEA,MAAMC,eAAed,IAAIe,OAAO;oBAChC,IAAID,iBAAiBzB,WAAW;wBAC9B,OAAO;oBACT;oBAEA,8DAA8D;oBAC9D,wEAAwE;oBACxE,MAAM2B,aAAaF,YAAY,CAACD,aAAa,IAAIC,YAAY,CAACD,eAAe,MAAM;oBACnF,IAAIG,eAAe,OAAO;wBACxB,MAAM,IAAIxF;oBACZ;oBACA,OAAOwF;gBACT;YACR;QACF,EAAE,OAAOC,OAAY;YACnB,IAAIA,iBAAiBzF,iBAAiB;gBACpC,OAAO;oBACLoE,MAAM;gBACR;YACF;YAEA,IAAI,UAAUqB,SAASA,MAAM9E,IAAI,KAAK,oBAAoB;gBACxD,IAAI+E,IAAAA,yBAAc,EAACtD,aAAa;oBAC9B,sDAAsD;oBACtD,OAAO;wBACLgC,MAAM;oBACR;gBACF;gBAEAnE,MAAM;oBAAEmC;oBAAY/B;oBAAUwC;oBAAYN;oBAAU3B;gBAAiB,GAAGuB;gBAExE,MAAM,IAAIvC,yBACR,sFACE,CAAC,EAAE,EAAE+F,IAAAA,0CAAoB,EACvB;oBACEvB,MAAM;oBACNwB,gBAAgBxD;oBAChByD,eAAepD;gBACjB,GACA,MACA,aAAa,EAAEN,QAAQsB,gBAAgB,CAAC,EAAE,CAAC;YAEnD;YACA,MAAMgC;QACR;QAEA,IAAItD,QAAQO,UAAU,CAACoD,IAAI,CAAC,CAACnE,MAAQiB,GAAGmD,QAAQ,CAACpE,OAAO;YACtD,OAAO;gBACLyC,MAAM;gBACN4B,UAAUpD;YACZ;QACF;QAEA,IAAI8C,IAAAA,yBAAc,EAAC9C,KAAK;YACtB,IAAIL,UAAU;gBACZ,OAAO;oBACL6B,MAAM;oBACN4B,UAAUpD;gBACZ;YACF;YACA,wDAAwD;YACxD,6CAA6C;YAC7C,OAAO;gBACLwB,MAAM;YACR;QACF;QAEA,4DAA4D;QAE5D,IAAI/D,aAAa,OAAO;YACtB,+EAA+E;YAC/E,2EAA2E;YAC3E,OAAO;gBACL+D,MAAM;gBACN6B,WAAW;oBAACrD;iBAAG;YACjB;QACF;QAEA,MAAMsD,UAAU3C,eAAI,CAACC,OAAO,CAACZ;QAC7B,MAAMuD,YAAY5C,eAAI,CAAC6C,OAAO,CAACxD;QAC/B,MAAMyD,WAAW9C,eAAI,CAAC8C,QAAQ,CAACzD,IAAIuD;QACnC,OAAO;YACL/B,MAAM;YACN,+CAA+C;YAC/C6B,WAAW9D,QAAQmE,YAAY,CAACJ,SAASG,UAAUF,cAAc;gBAACvD;aAAG;QACvE;IACF;IAEA,OAAOV;AACT"}
|