@expo/cli 0.22.8 → 0.22.10

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 (58) hide show
  1. package/build/bin/cli +1 -1
  2. package/build/src/api/rest/client.js +2 -0
  3. package/build/src/api/rest/client.js.map +1 -1
  4. package/build/src/export/embed/exportEmbedAsync.js +3 -3
  5. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  6. package/build/src/export/embed/exportServer.js +13 -9
  7. package/build/src/export/embed/exportServer.js.map +1 -1
  8. package/build/src/export/embed/index.js +4 -0
  9. package/build/src/export/embed/index.js.map +1 -1
  10. package/build/src/export/embed/resolveOptions.js +2 -1
  11. package/build/src/export/embed/resolveOptions.js.map +1 -1
  12. package/build/src/export/embed/xcodeCompilerLogger.js +1 -0
  13. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  14. package/build/src/export/exportApp.js +27 -12
  15. package/build/src/export/exportApp.js.map +1 -1
  16. package/build/src/export/exportStaticAsync.js +18 -2
  17. package/build/src/export/exportStaticAsync.js.map +1 -1
  18. package/build/src/export/publicFolder.js +6 -1
  19. package/build/src/export/publicFolder.js.map +1 -1
  20. package/build/src/export/saveAssets.js +1 -1
  21. package/build/src/export/saveAssets.js.map +1 -1
  22. package/build/src/install/index.js +1 -0
  23. package/build/src/install/index.js.map +1 -1
  24. package/build/src/install/installAsync.js +2 -1
  25. package/build/src/install/installAsync.js.map +1 -1
  26. package/build/src/install/installExpoPackage.js +14 -6
  27. package/build/src/install/installExpoPackage.js.map +1 -1
  28. package/build/src/install/resolveOptions.js +2 -0
  29. package/build/src/install/resolveOptions.js.map +1 -1
  30. package/build/src/serve/serveAsync.js +4 -2
  31. package/build/src/serve/serveAsync.js.map +1 -1
  32. package/build/src/start/doctor/dependencies/getVersionedPackages.js +4 -0
  33. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  34. package/build/src/start/server/getStaticRenderFunctions.js +2 -1
  35. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  36. package/build/src/start/server/metro/MetroBundlerDevServer.js +105 -55
  37. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  38. package/build/src/start/server/metro/createJResolver.js +15 -5
  39. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  40. package/build/src/start/server/metro/createServerComponentsMiddleware.js +28 -4
  41. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  42. package/build/src/start/server/metro/metroErrorInterface.js +5 -1
  43. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  44. package/build/src/start/server/metro/withMetroMultiPlatform.js +2 -1
  45. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  46. package/build/src/start/server/middleware/ManifestMiddleware.js +6 -3
  47. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  48. package/build/src/start/server/middleware/metroOptions.js +1 -1
  49. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  50. package/build/src/start/startAsync.js +1 -1
  51. package/build/src/start/startAsync.js.map +1 -1
  52. package/build/src/utils/env.js +9 -0
  53. package/build/src/utils/env.js.map +1 -1
  54. package/build/src/utils/ip.js +8 -1
  55. package/build/src/utils/ip.js.map +1 -1
  56. package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
  57. package/build/src/utils/telemetry/utils/context.js +1 -1
  58. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/metroOptions.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport type { BundleOptions as MetroBundleOptions } from 'metro/src/shared/types';\nimport resolveFrom from 'resolve-from';\n\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { toPosixPath } from '../../../utils/filePath';\nimport { getRouterDirectoryModuleIdWithManifest } from '../metro/router';\n\nconst debug = require('debug')('expo:metro:options') as typeof console.log;\n\nexport type MetroEnvironment = 'node' | 'react-server' | 'client';\n\nexport type ExpoMetroOptions = {\n platform: string;\n mainModuleName: string;\n mode: string;\n minify?: boolean;\n environment?: MetroEnvironment;\n serializerOutput?: 'static';\n serializerIncludeMaps?: boolean;\n lazy?: boolean;\n engine?: 'hermes';\n preserveEnvVars?: boolean;\n bytecode: boolean;\n /** Enable async routes (route-based bundle splitting) in Expo Router. */\n asyncRoutes?: boolean;\n /** Module ID relative to the projectRoot for the Expo Router app directory. */\n routerRoot: string;\n /** Enable React compiler support in Babel. */\n reactCompiler: boolean;\n baseUrl?: string;\n isExporting: boolean;\n /** Is bundling a DOM Component (\"use dom\"). Requires the entry dom component file path. */\n domRoot?: string;\n inlineSourceMap?: boolean;\n clientBoundaries?: string[];\n splitChunks?: boolean;\n usedExports?: boolean;\n /** Enable optimized bundling (required for tree shaking). */\n optimize?: boolean;\n\n modulesOnly?: boolean;\n runModule?: boolean;\n};\n\nexport type SerializerOptions = {\n includeSourceMaps?: boolean;\n output?: 'static';\n splitChunks?: boolean;\n usedExports?: boolean;\n};\n\nexport type ExpoMetroBundleOptions = MetroBundleOptions & {\n serializerOptions?: SerializerOptions;\n};\n\nexport function isServerEnvironment(environment?: any): boolean {\n return environment === 'node' || environment === 'react-server';\n}\n\nexport function shouldEnableAsyncImports(projectRoot: string): boolean {\n if (env.EXPO_NO_METRO_LAZY) {\n return false;\n }\n\n // `@expo/metro-runtime` includes support for the fetch + eval runtime code required\n // to support async imports. If it's not installed, we can't support async imports.\n // If it is installed, the user MUST import it somewhere in their project.\n // Expo Router automatically pulls this in, so we can check for it.\n return resolveFrom.silent(projectRoot, '@expo/metro-runtime') != null;\n}\n\nfunction withDefaults({\n mode = 'development',\n minify = mode === 'production',\n preserveEnvVars = mode !== 'development' && env.EXPO_NO_CLIENT_ENV_VARS,\n lazy,\n environment,\n ...props\n}: ExpoMetroOptions): ExpoMetroOptions {\n if (props.bytecode) {\n if (props.platform === 'web') {\n throw new CommandError('Cannot use bytecode with the web platform');\n }\n if (props.engine !== 'hermes') {\n throw new CommandError('Bytecode is only supported with the Hermes engine');\n }\n }\n\n const optimize =\n props.optimize ??\n (environment !== 'node' && mode === 'production' && env.EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH);\n\n return {\n mode,\n minify,\n preserveEnvVars,\n optimize,\n usedExports: optimize && env.EXPO_UNSTABLE_TREE_SHAKING,\n lazy: !props.isExporting && lazy,\n environment: environment === 'client' ? undefined : environment,\n ...props,\n };\n}\n\nexport function getBaseUrlFromExpoConfig(exp: ExpoConfig) {\n return exp.experiments?.baseUrl?.trim().replace(/\\/+$/, '') ?? '';\n}\n\nexport function getAsyncRoutesFromExpoConfig(exp: ExpoConfig, mode: string, platform: string) {\n let asyncRoutesSetting;\n\n if (exp.extra?.router?.asyncRoutes) {\n const asyncRoutes = exp.extra?.router?.asyncRoutes;\n if (['boolean', 'string'].includes(typeof asyncRoutes)) {\n asyncRoutesSetting = asyncRoutes;\n } else if (typeof asyncRoutes === 'object') {\n asyncRoutesSetting = asyncRoutes[platform] ?? asyncRoutes.default;\n }\n }\n\n return [mode, true].includes(asyncRoutesSetting);\n}\n\nexport function getMetroDirectBundleOptionsForExpoConfig(\n projectRoot: string,\n exp: ExpoConfig,\n options: Omit<ExpoMetroOptions, 'baseUrl' | 'reactCompiler' | 'routerRoot' | 'asyncRoutes'>\n): Partial<ExpoMetroBundleOptions> {\n return getMetroDirectBundleOptions({\n ...options,\n reactCompiler: !!exp.experiments?.reactCompiler,\n baseUrl: getBaseUrlFromExpoConfig(exp),\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n asyncRoutes: getAsyncRoutesFromExpoConfig(exp, options.mode, options.platform),\n });\n}\n\nexport function getMetroDirectBundleOptions(\n options: ExpoMetroOptions\n): Partial<ExpoMetroBundleOptions> {\n const {\n mainModuleName,\n platform,\n mode,\n minify,\n environment,\n serializerOutput,\n serializerIncludeMaps,\n bytecode,\n lazy,\n engine,\n preserveEnvVars,\n asyncRoutes,\n baseUrl,\n routerRoot,\n isExporting,\n inlineSourceMap,\n splitChunks,\n usedExports,\n reactCompiler,\n optimize,\n domRoot,\n clientBoundaries,\n runModule,\n modulesOnly,\n } = withDefaults(options);\n\n const dev = mode !== 'production';\n const isHermes = engine === 'hermes';\n\n if (isExporting) {\n debug('Disabling lazy bundling for export build');\n options.lazy = false;\n }\n\n let fakeSourceUrl: string | undefined;\n let fakeSourceMapUrl: string | undefined;\n\n // TODO: Upstream support to Metro for passing custom serializer options.\n if (serializerIncludeMaps != null || serializerOutput != null) {\n fakeSourceUrl = new URL(\n createBundleUrlPath(options).replace(/^\\//, ''),\n 'http://localhost:8081'\n ).toString();\n if (serializerIncludeMaps) {\n fakeSourceMapUrl = fakeSourceUrl.replace('.bundle?', '.map?');\n }\n }\n\n const customTransformOptions: ExpoMetroBundleOptions['customTransformOptions'] = {\n __proto__: null,\n optimize: optimize || undefined,\n engine,\n clientBoundaries,\n preserveEnvVars: preserveEnvVars || undefined,\n // Use string to match the query param behavior.\n asyncRoutes: asyncRoutes ? String(asyncRoutes) : undefined,\n environment,\n baseUrl: baseUrl || undefined,\n routerRoot,\n bytecode: bytecode ? '1' : undefined,\n reactCompiler: reactCompiler || undefined,\n dom: domRoot,\n };\n\n // Iterate and delete undefined values\n for (const key in customTransformOptions) {\n if (customTransformOptions[key] === undefined) {\n delete customTransformOptions[key];\n }\n }\n\n const bundleOptions: Partial<ExpoMetroBundleOptions> = {\n platform,\n entryFile: mainModuleName,\n dev,\n minify: minify ?? !dev,\n inlineSourceMap: inlineSourceMap ?? false,\n lazy: (!isExporting && lazy) || undefined,\n unstable_transformProfile: isHermes ? 'hermes-stable' : 'default',\n customTransformOptions,\n runModule,\n modulesOnly,\n customResolverOptions: {\n __proto__: null,\n environment,\n exporting: isExporting || undefined,\n },\n sourceMapUrl: fakeSourceMapUrl,\n sourceUrl: fakeSourceUrl,\n serializerOptions: {\n splitChunks,\n usedExports: usedExports || undefined,\n output: serializerOutput,\n includeSourceMaps: serializerIncludeMaps,\n },\n };\n\n return bundleOptions;\n}\n\nexport function createBundleUrlPathFromExpoConfig(\n projectRoot: string,\n exp: ExpoConfig,\n options: Omit<ExpoMetroOptions, 'reactCompiler' | 'baseUrl' | 'routerRoot'>\n): string {\n return createBundleUrlPath({\n ...options,\n reactCompiler: !!exp.experiments?.reactCompiler,\n baseUrl: getBaseUrlFromExpoConfig(exp),\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n });\n}\n\nexport function createBundleUrlPath(options: ExpoMetroOptions): string {\n const queryParams = createBundleUrlSearchParams(options);\n return `/${encodeURI(options.mainModuleName.replace(/^\\/+/, ''))}.bundle?${queryParams.toString()}`;\n}\n\n/**\n * Create a bundle URL, containing all required query parameters, using a valid \"os path\".\n * On POSIX systems, this would look something like `/Users/../project/file.js?dev=false&..`.\n * On UNIX systems, this would look something like `C:\\Users\\..\\project\\file.js?dev=false&..`.\n * This path can safely be used with `path.*` modifiers and resolved.\n */\nexport function createBundleUrlOsPath(options: ExpoMetroOptions): string {\n const queryParams = createBundleUrlSearchParams(options);\n const mainModuleName = encodeURI(toPosixPath(options.mainModuleName));\n return `${mainModuleName}.bundle?${queryParams.toString()}`;\n}\n\nexport function createBundleUrlSearchParams(options: ExpoMetroOptions): URLSearchParams {\n const {\n platform,\n mode,\n minify,\n environment,\n serializerOutput,\n serializerIncludeMaps,\n lazy,\n bytecode,\n engine,\n preserveEnvVars,\n asyncRoutes,\n baseUrl,\n routerRoot,\n reactCompiler,\n inlineSourceMap,\n isExporting,\n clientBoundaries,\n splitChunks,\n usedExports,\n optimize,\n domRoot,\n modulesOnly,\n runModule,\n } = withDefaults(options);\n\n const dev = String(mode !== 'production');\n const queryParams = new URLSearchParams({\n platform: encodeURIComponent(platform),\n dev,\n // TODO: Is this still needed?\n hot: String(false),\n });\n\n // Lazy bundling must be disabled for bundle splitting to work.\n if (!isExporting && lazy) {\n queryParams.append('lazy', String(lazy));\n }\n\n if (inlineSourceMap) {\n queryParams.append('inlineSourceMap', String(inlineSourceMap));\n }\n\n if (minify) {\n queryParams.append('minify', String(minify));\n }\n\n // We split bytecode from the engine since you could technically use Hermes without bytecode.\n // Hermes indicates the type of language features you want to transform out of the JS, whereas bytecode\n // indicates whether you want to use the Hermes bytecode format.\n if (engine) {\n queryParams.append('transform.engine', engine);\n }\n if (bytecode) {\n queryParams.append('transform.bytecode', '1');\n }\n if (asyncRoutes) {\n queryParams.append('transform.asyncRoutes', String(asyncRoutes));\n }\n if (preserveEnvVars) {\n queryParams.append('transform.preserveEnvVars', String(preserveEnvVars));\n }\n if (baseUrl) {\n queryParams.append('transform.baseUrl', baseUrl);\n }\n if (clientBoundaries?.length) {\n queryParams.append('transform.clientBoundaries', JSON.stringify(clientBoundaries));\n }\n if (routerRoot != null) {\n queryParams.append('transform.routerRoot', routerRoot);\n }\n if (reactCompiler) {\n queryParams.append('transform.reactCompiler', String(reactCompiler));\n }\n if (domRoot) {\n queryParams.append('transform.dom', domRoot);\n }\n\n if (environment) {\n queryParams.append('resolver.environment', environment);\n queryParams.append('transform.environment', environment);\n }\n\n if (isExporting) {\n queryParams.append('resolver.exporting', String(isExporting));\n }\n\n if (splitChunks) {\n queryParams.append('serializer.splitChunks', String(splitChunks));\n }\n if (usedExports) {\n queryParams.append('serializer.usedExports', String(usedExports));\n }\n if (optimize) {\n queryParams.append('transform.optimize', String(optimize));\n }\n if (serializerOutput) {\n queryParams.append('serializer.output', serializerOutput);\n }\n if (serializerIncludeMaps) {\n queryParams.append('serializer.map', String(serializerIncludeMaps));\n }\n if (engine === 'hermes') {\n queryParams.append('unstable_transformProfile', 'hermes-stable');\n }\n\n if (modulesOnly != null) {\n queryParams.set('modulesOnly', String(modulesOnly));\n }\n if (runModule != null) {\n queryParams.set('runModule', String(runModule));\n }\n\n return queryParams;\n}\n\n/**\n * Convert all path separators to `/`, including on Windows.\n * Metro asumes that all module specifiers are posix paths.\n * References to directories can still be Windows-style paths in Metro.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules#importing_features_into_your_script\n * @see https://github.com/facebook/metro/pull/1286\n */\nexport function convertPathToModuleSpecifier(pathLike: string) {\n return toPosixPath(pathLike);\n}\n\nexport function getMetroOptionsFromUrl(urlFragment: string) {\n const url = new URL(urlFragment, 'http://localhost:0');\n const getStringParam = (key: string) => {\n const param = url.searchParams.get(key);\n if (Array.isArray(param)) {\n throw new Error(`Expected single value for ${key}`);\n }\n return param;\n };\n\n let pathname = url.pathname;\n if (pathname.endsWith('.bundle')) {\n pathname = pathname.slice(0, -'.bundle'.length);\n }\n\n const options: ExpoMetroOptions = {\n mode: isTruthy(getStringParam('dev') ?? 'true') ? 'development' : 'production',\n minify: isTruthy(getStringParam('minify') ?? 'false'),\n lazy: isTruthy(getStringParam('lazy') ?? 'false'),\n routerRoot: getStringParam('transform.routerRoot') ?? 'app',\n isExporting: isTruthy(getStringParam('resolver.exporting') ?? 'false'),\n environment: assertEnvironment(getStringParam('transform.environment') ?? 'node'),\n platform: url.searchParams.get('platform') ?? 'web',\n bytecode: isTruthy(getStringParam('transform.bytecode') ?? 'false'),\n mainModuleName: convertPathToModuleSpecifier(pathname),\n reactCompiler: isTruthy(getStringParam('transform.reactCompiler') ?? 'false'),\n asyncRoutes: isTruthy(getStringParam('transform.asyncRoutes') ?? 'false'),\n baseUrl: getStringParam('transform.baseUrl') ?? undefined,\n // clientBoundaries: JSON.parse(getStringParam('transform.clientBoundaries') ?? '[]'),\n engine: assertEngine(getStringParam('transform.engine')),\n runModule: isTruthy(getStringParam('runModule') ?? 'true'),\n modulesOnly: isTruthy(getStringParam('modulesOnly') ?? 'false'),\n };\n\n return options;\n}\n\nfunction isTruthy(value: string | null): boolean {\n return value === 'true' || value === '1';\n}\n\nfunction assertEnvironment(environment: string | undefined): MetroEnvironment | undefined {\n if (!environment) {\n return undefined;\n }\n if (!['node', 'react-server', 'client'].includes(environment)) {\n throw new Error(`Expected transform.environment to be one of: node, react-server, client`);\n }\n return environment as MetroEnvironment;\n}\nfunction assertEngine(engine: string | undefined | null): 'hermes' | undefined {\n if (!engine) {\n return undefined;\n }\n if (!['hermes'].includes(engine)) {\n throw new Error(`Expected transform.engine to be one of: hermes`);\n }\n return engine as 'hermes';\n}\n"],"names":["isServerEnvironment","shouldEnableAsyncImports","getBaseUrlFromExpoConfig","getAsyncRoutesFromExpoConfig","getMetroDirectBundleOptionsForExpoConfig","getMetroDirectBundleOptions","createBundleUrlPathFromExpoConfig","createBundleUrlPath","createBundleUrlOsPath","createBundleUrlSearchParams","convertPathToModuleSpecifier","getMetroOptionsFromUrl","debug","require","environment","projectRoot","env","EXPO_NO_METRO_LAZY","resolveFrom","silent","withDefaults","mode","minify","preserveEnvVars","EXPO_NO_CLIENT_ENV_VARS","lazy","props","bytecode","platform","CommandError","engine","optimize","EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH","usedExports","EXPO_UNSTABLE_TREE_SHAKING","isExporting","undefined","exp","experiments","baseUrl","trim","replace","asyncRoutesSetting","extra","router","asyncRoutes","includes","default","options","reactCompiler","routerRoot","getRouterDirectoryModuleIdWithManifest","mainModuleName","serializerOutput","serializerIncludeMaps","inlineSourceMap","splitChunks","domRoot","clientBoundaries","runModule","modulesOnly","dev","isHermes","fakeSourceUrl","fakeSourceMapUrl","URL","toString","customTransformOptions","__proto__","String","dom","key","bundleOptions","entryFile","unstable_transformProfile","customResolverOptions","exporting","sourceMapUrl","sourceUrl","serializerOptions","output","includeSourceMaps","queryParams","encodeURI","toPosixPath","URLSearchParams","encodeURIComponent","hot","append","length","JSON","stringify","set","pathLike","urlFragment","url","getStringParam","param","searchParams","get","Array","isArray","Error","pathname","endsWith","slice","isTruthy","assertEnvironment","assertEngine","value"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/metroOptions.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport type { BundleOptions as MetroBundleOptions } from 'metro/src/shared/types';\nimport resolveFrom from 'resolve-from';\n\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { toPosixPath } from '../../../utils/filePath';\nimport { getRouterDirectoryModuleIdWithManifest } from '../metro/router';\n\nconst debug = require('debug')('expo:metro:options') as typeof console.log;\n\nexport type MetroEnvironment = 'node' | 'react-server' | 'client';\n\nexport type ExpoMetroOptions = {\n platform: string;\n mainModuleName: string;\n mode: string;\n minify?: boolean;\n environment?: MetroEnvironment;\n serializerOutput?: 'static';\n serializerIncludeMaps?: boolean;\n lazy?: boolean;\n engine?: 'hermes';\n preserveEnvVars?: boolean;\n bytecode: boolean;\n /** Enable async routes (route-based bundle splitting) in Expo Router. */\n asyncRoutes?: boolean;\n /** Module ID relative to the projectRoot for the Expo Router app directory. */\n routerRoot: string;\n /** Enable React compiler support in Babel. */\n reactCompiler: boolean;\n baseUrl?: string;\n isExporting: boolean;\n /** Is bundling a DOM Component (\"use dom\"). Requires the entry dom component file path. */\n domRoot?: string;\n inlineSourceMap?: boolean;\n clientBoundaries?: string[];\n splitChunks?: boolean;\n usedExports?: boolean;\n /** Enable optimized bundling (required for tree shaking). */\n optimize?: boolean;\n\n modulesOnly?: boolean;\n runModule?: boolean;\n};\n\nexport type SerializerOptions = {\n includeSourceMaps?: boolean;\n output?: 'static';\n splitChunks?: boolean;\n usedExports?: boolean;\n};\n\nexport type ExpoMetroBundleOptions = MetroBundleOptions & {\n serializerOptions?: SerializerOptions;\n};\n\nexport function isServerEnvironment(environment?: any): boolean {\n return environment === 'node' || environment === 'react-server';\n}\n\nexport function shouldEnableAsyncImports(projectRoot: string): boolean {\n if (env.EXPO_NO_METRO_LAZY) {\n return false;\n }\n\n // `@expo/metro-runtime` includes support for the fetch + eval runtime code required\n // to support async imports. If it's not installed, we can't support async imports.\n // If it is installed, the user MUST import it somewhere in their project.\n // Expo Router automatically pulls this in, so we can check for it.\n return resolveFrom.silent(projectRoot, '@expo/metro-runtime') != null;\n}\n\nfunction withDefaults({\n mode = 'development',\n minify = mode === 'production',\n preserveEnvVars = mode !== 'development' && env.EXPO_NO_CLIENT_ENV_VARS,\n lazy,\n environment,\n ...props\n}: ExpoMetroOptions): ExpoMetroOptions {\n if (props.bytecode) {\n if (props.platform === 'web') {\n throw new CommandError('Cannot use bytecode with the web platform');\n }\n if (props.engine !== 'hermes') {\n throw new CommandError('Bytecode is only supported with the Hermes engine');\n }\n }\n\n const optimize =\n props.optimize ??\n (environment !== 'node' && mode === 'production' && env.EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH);\n\n return {\n mode,\n minify,\n preserveEnvVars,\n optimize,\n usedExports: optimize && env.EXPO_UNSTABLE_TREE_SHAKING,\n lazy: !props.isExporting && lazy,\n environment: environment === 'client' ? undefined : environment,\n ...props,\n };\n}\n\nexport function getBaseUrlFromExpoConfig(exp: ExpoConfig) {\n return exp.experiments?.baseUrl?.trim().replace(/\\/+$/, '') ?? '';\n}\n\nexport function getAsyncRoutesFromExpoConfig(exp: ExpoConfig, mode: string, platform: string) {\n let asyncRoutesSetting;\n\n if (exp.extra?.router?.asyncRoutes) {\n const asyncRoutes = exp.extra?.router?.asyncRoutes;\n if (['boolean', 'string'].includes(typeof asyncRoutes)) {\n asyncRoutesSetting = asyncRoutes;\n } else if (typeof asyncRoutes === 'object') {\n asyncRoutesSetting = asyncRoutes[platform] ?? asyncRoutes.default;\n }\n }\n\n return [mode, true].includes(asyncRoutesSetting);\n}\n\nexport function getMetroDirectBundleOptionsForExpoConfig(\n projectRoot: string,\n exp: ExpoConfig,\n options: Omit<ExpoMetroOptions, 'baseUrl' | 'reactCompiler' | 'routerRoot' | 'asyncRoutes'>\n): Partial<ExpoMetroBundleOptions> {\n return getMetroDirectBundleOptions({\n ...options,\n reactCompiler: !!exp.experiments?.reactCompiler,\n baseUrl: getBaseUrlFromExpoConfig(exp),\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n asyncRoutes: getAsyncRoutesFromExpoConfig(exp, options.mode, options.platform),\n });\n}\n\nexport function getMetroDirectBundleOptions(\n options: ExpoMetroOptions\n): Partial<ExpoMetroBundleOptions> {\n const {\n mainModuleName,\n platform,\n mode,\n minify,\n environment,\n serializerOutput,\n serializerIncludeMaps,\n bytecode,\n lazy,\n engine,\n preserveEnvVars,\n asyncRoutes,\n baseUrl,\n routerRoot,\n isExporting,\n inlineSourceMap,\n splitChunks,\n usedExports,\n reactCompiler,\n optimize,\n domRoot,\n clientBoundaries,\n runModule,\n modulesOnly,\n } = withDefaults(options);\n\n const dev = mode !== 'production';\n const isHermes = engine === 'hermes';\n\n if (isExporting) {\n debug('Disabling lazy bundling for export build');\n options.lazy = false;\n }\n\n let fakeSourceUrl: string | undefined;\n let fakeSourceMapUrl: string | undefined;\n\n // TODO: Upstream support to Metro for passing custom serializer options.\n if (serializerIncludeMaps != null || serializerOutput != null) {\n fakeSourceUrl = new URL(\n createBundleUrlPath(options).replace(/^\\//, ''),\n 'http://localhost:8081'\n ).toString();\n if (serializerIncludeMaps) {\n fakeSourceMapUrl = fakeSourceUrl.replace('.bundle?', '.map?');\n }\n }\n\n const customTransformOptions: ExpoMetroBundleOptions['customTransformOptions'] = {\n __proto__: null,\n optimize: optimize || undefined,\n engine,\n clientBoundaries,\n preserveEnvVars: preserveEnvVars || undefined,\n // Use string to match the query param behavior.\n asyncRoutes: asyncRoutes ? String(asyncRoutes) : undefined,\n environment,\n baseUrl: baseUrl || undefined,\n routerRoot,\n bytecode: bytecode ? '1' : undefined,\n reactCompiler: reactCompiler ? String(reactCompiler) : undefined,\n dom: domRoot,\n };\n\n // Iterate and delete undefined values\n for (const key in customTransformOptions) {\n if (customTransformOptions[key] === undefined) {\n delete customTransformOptions[key];\n }\n }\n\n const bundleOptions: Partial<ExpoMetroBundleOptions> = {\n platform,\n entryFile: mainModuleName,\n dev,\n minify: minify ?? !dev,\n inlineSourceMap: inlineSourceMap ?? false,\n lazy: (!isExporting && lazy) || undefined,\n unstable_transformProfile: isHermes ? 'hermes-stable' : 'default',\n customTransformOptions,\n runModule,\n modulesOnly,\n customResolverOptions: {\n __proto__: null,\n environment,\n exporting: isExporting || undefined,\n },\n sourceMapUrl: fakeSourceMapUrl,\n sourceUrl: fakeSourceUrl,\n serializerOptions: {\n splitChunks,\n usedExports: usedExports || undefined,\n output: serializerOutput,\n includeSourceMaps: serializerIncludeMaps,\n },\n };\n\n return bundleOptions;\n}\n\nexport function createBundleUrlPathFromExpoConfig(\n projectRoot: string,\n exp: ExpoConfig,\n options: Omit<ExpoMetroOptions, 'reactCompiler' | 'baseUrl' | 'routerRoot'>\n): string {\n return createBundleUrlPath({\n ...options,\n reactCompiler: !!exp.experiments?.reactCompiler,\n baseUrl: getBaseUrlFromExpoConfig(exp),\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n });\n}\n\nexport function createBundleUrlPath(options: ExpoMetroOptions): string {\n const queryParams = createBundleUrlSearchParams(options);\n return `/${encodeURI(options.mainModuleName.replace(/^\\/+/, ''))}.bundle?${queryParams.toString()}`;\n}\n\n/**\n * Create a bundle URL, containing all required query parameters, using a valid \"os path\".\n * On POSIX systems, this would look something like `/Users/../project/file.js?dev=false&..`.\n * On UNIX systems, this would look something like `C:\\Users\\..\\project\\file.js?dev=false&..`.\n * This path can safely be used with `path.*` modifiers and resolved.\n */\nexport function createBundleUrlOsPath(options: ExpoMetroOptions): string {\n const queryParams = createBundleUrlSearchParams(options);\n const mainModuleName = encodeURI(toPosixPath(options.mainModuleName));\n return `${mainModuleName}.bundle?${queryParams.toString()}`;\n}\n\nexport function createBundleUrlSearchParams(options: ExpoMetroOptions): URLSearchParams {\n const {\n platform,\n mode,\n minify,\n environment,\n serializerOutput,\n serializerIncludeMaps,\n lazy,\n bytecode,\n engine,\n preserveEnvVars,\n asyncRoutes,\n baseUrl,\n routerRoot,\n reactCompiler,\n inlineSourceMap,\n isExporting,\n clientBoundaries,\n splitChunks,\n usedExports,\n optimize,\n domRoot,\n modulesOnly,\n runModule,\n } = withDefaults(options);\n\n const dev = String(mode !== 'production');\n const queryParams = new URLSearchParams({\n platform: encodeURIComponent(platform),\n dev,\n // TODO: Is this still needed?\n hot: String(false),\n });\n\n // Lazy bundling must be disabled for bundle splitting to work.\n if (!isExporting && lazy) {\n queryParams.append('lazy', String(lazy));\n }\n\n if (inlineSourceMap) {\n queryParams.append('inlineSourceMap', String(inlineSourceMap));\n }\n\n if (minify) {\n queryParams.append('minify', String(minify));\n }\n\n // We split bytecode from the engine since you could technically use Hermes without bytecode.\n // Hermes indicates the type of language features you want to transform out of the JS, whereas bytecode\n // indicates whether you want to use the Hermes bytecode format.\n if (engine) {\n queryParams.append('transform.engine', engine);\n }\n if (bytecode) {\n queryParams.append('transform.bytecode', '1');\n }\n if (asyncRoutes) {\n queryParams.append('transform.asyncRoutes', String(asyncRoutes));\n }\n if (preserveEnvVars) {\n queryParams.append('transform.preserveEnvVars', String(preserveEnvVars));\n }\n if (baseUrl) {\n queryParams.append('transform.baseUrl', baseUrl);\n }\n if (clientBoundaries?.length) {\n queryParams.append('transform.clientBoundaries', JSON.stringify(clientBoundaries));\n }\n if (routerRoot != null) {\n queryParams.append('transform.routerRoot', routerRoot);\n }\n if (reactCompiler) {\n queryParams.append('transform.reactCompiler', String(reactCompiler));\n }\n if (domRoot) {\n queryParams.append('transform.dom', domRoot);\n }\n\n if (environment) {\n queryParams.append('resolver.environment', environment);\n queryParams.append('transform.environment', environment);\n }\n\n if (isExporting) {\n queryParams.append('resolver.exporting', String(isExporting));\n }\n\n if (splitChunks) {\n queryParams.append('serializer.splitChunks', String(splitChunks));\n }\n if (usedExports) {\n queryParams.append('serializer.usedExports', String(usedExports));\n }\n if (optimize) {\n queryParams.append('transform.optimize', String(optimize));\n }\n if (serializerOutput) {\n queryParams.append('serializer.output', serializerOutput);\n }\n if (serializerIncludeMaps) {\n queryParams.append('serializer.map', String(serializerIncludeMaps));\n }\n if (engine === 'hermes') {\n queryParams.append('unstable_transformProfile', 'hermes-stable');\n }\n\n if (modulesOnly != null) {\n queryParams.set('modulesOnly', String(modulesOnly));\n }\n if (runModule != null) {\n queryParams.set('runModule', String(runModule));\n }\n\n return queryParams;\n}\n\n/**\n * Convert all path separators to `/`, including on Windows.\n * Metro asumes that all module specifiers are posix paths.\n * References to directories can still be Windows-style paths in Metro.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules#importing_features_into_your_script\n * @see https://github.com/facebook/metro/pull/1286\n */\nexport function convertPathToModuleSpecifier(pathLike: string) {\n return toPosixPath(pathLike);\n}\n\nexport function getMetroOptionsFromUrl(urlFragment: string) {\n const url = new URL(urlFragment, 'http://localhost:0');\n const getStringParam = (key: string) => {\n const param = url.searchParams.get(key);\n if (Array.isArray(param)) {\n throw new Error(`Expected single value for ${key}`);\n }\n return param;\n };\n\n let pathname = url.pathname;\n if (pathname.endsWith('.bundle')) {\n pathname = pathname.slice(0, -'.bundle'.length);\n }\n\n const options: ExpoMetroOptions = {\n mode: isTruthy(getStringParam('dev') ?? 'true') ? 'development' : 'production',\n minify: isTruthy(getStringParam('minify') ?? 'false'),\n lazy: isTruthy(getStringParam('lazy') ?? 'false'),\n routerRoot: getStringParam('transform.routerRoot') ?? 'app',\n isExporting: isTruthy(getStringParam('resolver.exporting') ?? 'false'),\n environment: assertEnvironment(getStringParam('transform.environment') ?? 'node'),\n platform: url.searchParams.get('platform') ?? 'web',\n bytecode: isTruthy(getStringParam('transform.bytecode') ?? 'false'),\n mainModuleName: convertPathToModuleSpecifier(pathname),\n reactCompiler: isTruthy(getStringParam('transform.reactCompiler') ?? 'false'),\n asyncRoutes: isTruthy(getStringParam('transform.asyncRoutes') ?? 'false'),\n baseUrl: getStringParam('transform.baseUrl') ?? undefined,\n // clientBoundaries: JSON.parse(getStringParam('transform.clientBoundaries') ?? '[]'),\n engine: assertEngine(getStringParam('transform.engine')),\n runModule: isTruthy(getStringParam('runModule') ?? 'true'),\n modulesOnly: isTruthy(getStringParam('modulesOnly') ?? 'false'),\n };\n\n return options;\n}\n\nfunction isTruthy(value: string | null): boolean {\n return value === 'true' || value === '1';\n}\n\nfunction assertEnvironment(environment: string | undefined): MetroEnvironment | undefined {\n if (!environment) {\n return undefined;\n }\n if (!['node', 'react-server', 'client'].includes(environment)) {\n throw new Error(`Expected transform.environment to be one of: node, react-server, client`);\n }\n return environment as MetroEnvironment;\n}\nfunction assertEngine(engine: string | undefined | null): 'hermes' | undefined {\n if (!engine) {\n return undefined;\n }\n if (!['hermes'].includes(engine)) {\n throw new Error(`Expected transform.engine to be one of: hermes`);\n }\n return engine as 'hermes';\n}\n"],"names":["isServerEnvironment","shouldEnableAsyncImports","getBaseUrlFromExpoConfig","getAsyncRoutesFromExpoConfig","getMetroDirectBundleOptionsForExpoConfig","getMetroDirectBundleOptions","createBundleUrlPathFromExpoConfig","createBundleUrlPath","createBundleUrlOsPath","createBundleUrlSearchParams","convertPathToModuleSpecifier","getMetroOptionsFromUrl","debug","require","environment","projectRoot","env","EXPO_NO_METRO_LAZY","resolveFrom","silent","withDefaults","mode","minify","preserveEnvVars","EXPO_NO_CLIENT_ENV_VARS","lazy","props","bytecode","platform","CommandError","engine","optimize","EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH","usedExports","EXPO_UNSTABLE_TREE_SHAKING","isExporting","undefined","exp","experiments","baseUrl","trim","replace","asyncRoutesSetting","extra","router","asyncRoutes","includes","default","options","reactCompiler","routerRoot","getRouterDirectoryModuleIdWithManifest","mainModuleName","serializerOutput","serializerIncludeMaps","inlineSourceMap","splitChunks","domRoot","clientBoundaries","runModule","modulesOnly","dev","isHermes","fakeSourceUrl","fakeSourceMapUrl","URL","toString","customTransformOptions","__proto__","String","dom","key","bundleOptions","entryFile","unstable_transformProfile","customResolverOptions","exporting","sourceMapUrl","sourceUrl","serializerOptions","output","includeSourceMaps","queryParams","encodeURI","toPosixPath","URLSearchParams","encodeURIComponent","hot","append","length","JSON","stringify","set","pathLike","urlFragment","url","getStringParam","param","searchParams","get","Array","isArray","Error","pathname","endsWith","slice","isTruthy","assertEnvironment","assertEngine","value"],"mappings":"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"}
@@ -146,7 +146,7 @@ async function startAsync(projectRoot, options, settings) {
146
146
  // After the server starts, we can start attempting to bootstrap TypeScript.
147
147
  await devServerManager.bootstrapTypeScriptAsync();
148
148
  }
149
- if (!settings.webOnly && !options.devClient) {
149
+ if (!_env.env.EXPO_NO_DEPENDENCY_VALIDATION && !settings.webOnly && !options.devClient) {
150
150
  await (0, _profile.profile)(_validateDependenciesVersions.validateDependenciesVersionsAsync)(projectRoot, exp, pkg);
151
151
  }
152
152
  // Open project on devices.
@@ -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';\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 (!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 await profile(startInterfaceAsync)(devServerManager, {\n platforms: exp.platforms ?? ['ios', 'android', 'web'],\n });\n } else {\n // Display the server location in CI...\n const url = devServerManager.getDefaultDevServer()?.getDevServerUrl();\n if (url) {\n if (env.__EXPO_E2E_TEST) {\n // Print the URL to stdout for tests\n console.info(`[__EXPO_E2E_TEST:server] ${JSON.stringify({ url })}`);\n }\n Log.log(chalk`Waiting on {underline ${url}}`);\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","Log","log","chalk","gray","pkg","profile","getConfig","platforms","includes","process","platform","getXcodeVersionAsync","silent","SimulatorAppPrerequisite","instance","assertAsync","catch","getPlatformBundlers","defaultOptions","startOptions","devServerManager","DevServerManager","webOnly","ensureProjectPrerequisiteAsync","WebSupportProjectPrerequisite","bind","watchEnvironmentVariables","bootstrapTypeScriptAsync","validateDependenciesVersionsAsync","openPlatformsAsync","isInteractive","startInterfaceAsync","url","getDefaultDevServer","getDevServerUrl","env","__EXPO_E2E_TEST","console","info","JSON","stringify","logLocation","dim"],"mappings":"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"}
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';\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 await profile(startInterfaceAsync)(devServerManager, {\n platforms: exp.platforms ?? ['ios', 'android', 'web'],\n });\n } else {\n // Display the server location in CI...\n const url = devServerManager.getDefaultDevServer()?.getDevServerUrl();\n if (url) {\n if (env.__EXPO_E2E_TEST) {\n // Print the URL to stdout for tests\n console.info(`[__EXPO_E2E_TEST:server] ${JSON.stringify({ url })}`);\n }\n Log.log(chalk`Waiting on {underline ${url}}`);\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","Log","log","chalk","gray","pkg","profile","getConfig","platforms","includes","process","platform","getXcodeVersionAsync","silent","SimulatorAppPrerequisite","instance","assertAsync","catch","getPlatformBundlers","defaultOptions","startOptions","devServerManager","DevServerManager","webOnly","ensureProjectPrerequisiteAsync","WebSupportProjectPrerequisite","bind","watchEnvironmentVariables","bootstrapTypeScriptAsync","env","EXPO_NO_DEPENDENCY_VALIDATION","validateDependenciesVersionsAsync","openPlatformsAsync","isInteractive","startInterfaceAsync","url","getDefaultDevServer","getDevServerUrl","__EXPO_E2E_TEST","console","info","JSON","stringify","logLocation","dim"],"mappings":"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"}
@@ -175,6 +175,15 @@ class Env {
175
175
  /** Enable unstable/experimental support for deploying the native server in `npx expo run` commands. */ get EXPO_UNSTABLE_DEPLOY_SERVER() {
176
176
  return (0, _getenv().boolish)("EXPO_UNSTABLE_DEPLOY_SERVER", false);
177
177
  }
178
+ /** Is running in EAS Build. This is set by EAS: https://docs.expo.dev/eas/environment-variables/ */ get EAS_BUILD() {
179
+ return (0, _getenv().boolish)("EAS_BUILD", false);
180
+ }
181
+ /** Disable the React Native Directory compatibility check for new architecture when installing packages */ get EXPO_NO_NEW_ARCH_COMPAT_CHECK() {
182
+ return (0, _getenv().boolish)("EXPO_NO_NEW_ARCH_COMPAT_CHECK", false);
183
+ }
184
+ /** Disable the dependency validation when installing other dependencies and starting the project */ get EXPO_NO_DEPENDENCY_VALIDATION() {
185
+ return (0, _getenv().boolish)("EXPO_NO_DEPENDENCY_VALIDATION", false);
186
+ }
178
187
  }
179
188
  const env = new Env();
180
189
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/env.ts"],"sourcesContent":["import { boolish, int, string } from 'getenv';\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 /** Enable the unstable inverse dependency stack trace for Metro bundling errors. */\n get EXPO_METRO_UNSTABLE_ERRORS() {\n return boolish('EXPO_METRO_UNSTABLE_ERRORS', 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 /** Enable unstable/experimental Atlas to gather bundle information during development or export */\n get EXPO_UNSTABLE_ATLAS() {\n return 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\nexport const env = new Env();\n"],"names":["env","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_FAST_RESOLVER","EXPO_NO_CLIENT_ENV_VARS","EXPO_ADB_USER","__EXPO_E2E_TEST","EXPO_NO_BUNDLE_SPLITTING","EXPO_UNSTABLE_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"],"mappings":"AAAA;;;;+BA8OaA,KAAG;;aAAHA,GAAG;;;yBA9OqB,QAAQ;;;;;;AAE7C,mFAAmF;AAEnF,6CAA6C;AAE7C,MAAMC,GAAG;IACP,6BAA6B,OACzBC,YAAY,GAAG;QACjB,OAAOC,IAAAA,OAAO,EAAA,QAAA,EAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxC;IAEA,yBAAyB,OACrBC,UAAU,GAAG;QACf,OAAOD,IAAAA,OAAO,EAAA,QAAA,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACtC;IAEA,iCAAiC,OAC7BE,YAAY,GAAG;QACjB,OAAOF,IAAAA,OAAO,EAAA,QAAA,EAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxC;IAEA,sGAAsG,OAClGG,SAAS,GAAG;QACd,OAAOH,IAAAA,OAAO,EAAA,QAAA,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrC;IAEA,mCAAmC,OAC/BI,YAAY,GAAG;QACjB,OAAOJ,IAAAA,OAAO,EAAA,QAAA,EAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxC;IAEA,iCAAiC,OAC7BK,UAAU,GAAG;QACf,OAAOL,IAAAA,OAAO,EAAA,QAAA,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACtC;IAEA,0CAA0C,OACtCM,EAAE,GAAG;QACP,OAAON,IAAAA,OAAO,EAAA,QAAA,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B;IAEA,kCAAkC,OAC9BO,iBAAiB,GAAG;QACtB,OAAOP,IAAAA,OAAO,EAAA,QAAA,EAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC7C;IAEA,oDAAoD,OAChDQ,wBAAwB,GAAG;QAC7B,OAAOR,IAAAA,OAAO,EAAA,QAAA,EAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACpD;IAEA,6DAA6D,OACzDS,iBAAiB,GAAG;QACtB,OAAOC,IAAAA,OAAM,EAAA,OAAA,EAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACzC;IAEA,4CAA4C,OACxCC,QAAQ,GAAG;QACb,OAAOD,IAAAA,OAAM,EAAA,OAAA,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvC;IAEA,gDAAgD,OAC5CE,kBAAkB,GAAG;QACvB,OAAOZ,IAAAA,OAAO,EAAA,QAAA,EAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9C;IACA,2BAA2B,OACvBa,iBAAiB,GAAG;QACtB,OAAOb,IAAAA,OAAO,EAAA,QAAA,EAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC7C;IACA,kCAAkC,OAC9Bc,wBAAwB,GAAG;QAC7B,OAAOd,IAAAA,OAAO,EAAA,QAAA,EAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACpD;IACA,6DAA6D,OACzDe,aAAa,GAAG;QAClB,OAAOf,IAAAA,OAAO,EAAA,QAAA,EAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACzC;IACA,0CAA0C,OACtCgB,qBAAqB,GAAG;QAC1B,OAAOhB,IAAAA,OAAO,EAAA,QAAA,EAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IACjD;IACA,2EAA2E,OACvEiB,cAAc,GAAG;QACnB,OAAOC,IAAAA,OAAG,EAAA,IAAA,EAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAClC;IACA,kDAAkD,OAC9CC,mCAAmC,GAAY;QACjD,OAAO,CAAC,CAACT,IAAAA,OAAM,EAAA,OAAA,EAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IAC7D;IAEA,yEAAyE,OACrEU,kBAAkB,GAAW;QAC/B,OAAOV,IAAAA,OAAM,EAAA,OAAA,EAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAChD;IAEA,gHAAgH,OAC5GW,WAAW,GAAW;QACxB,OAAOX,IAAAA,OAAM,EAAA,OAAA,EAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACnC;IAEA;;;GAGC,OACGY,uBAAuB,GAAW;QACpC,OAAOZ,IAAAA,OAAM,EAAA,OAAA,EAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAC/C;IAEA;;;;;;;;GAQC,OACGa,qBAAqB,GAAqB;QAC5C,MAAMC,SAAS,GAAGd,IAAAA,OAAM,EAAA,OAAA,EAAC,uBAAuB,EAAE,EAAE,CAAC,AAAC;QACtD,IAAI;YAAC,GAAG;YAAE,OAAO;YAAE,EAAE;SAAC,CAACe,QAAQ,CAACD,SAAS,CAAC,EAAE;YAC1C,OAAO,KAAK,CAAC;QACf,OAAO,IAAI;YAAC,GAAG;YAAE,MAAM;SAAC,CAACC,QAAQ,CAACD,SAAS,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAOA,SAAS,CAAC;IACnB;IAEA;;;;GAIC,OACGE,iCAAiC,GAAY;QAC/C,OAAO1B,IAAAA,OAAO,EAAA,QAAA,EAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAC7D;IAEA;;GAEC,OACG2B,UAAU,GAAW;QACvB,OAAOC,OAAO,CAAC/B,GAAG,CAAC8B,UAAU,IAAIC,OAAO,CAAC/B,GAAG,CAACgC,UAAU,IAAI,EAAE,CAAC;IAChE;IAEA;;;GAGC,OACGC,uBAAuB,GAAY;QACrC,OAAO9B,IAAAA,OAAO,EAAA,QAAA,EAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACnD;IAEA,4CAA4C,OACxC+B,kBAAkB,GAAG;QACvB,OAAO/B,IAAAA,OAAO,EAAA,QAAA,EAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9C;IAEA,kFAAkF,OAC9EgC,0BAA0B,GAAG;QAC/B,OAAOhC,IAAAA,OAAO,EAAA,QAAA,EAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACtD;IAEA,iDAAiD,OAC7CiC,sBAAsB,GAAG;QAC3B,OAAOjC,IAAAA,OAAO,EAAA,QAAA,EAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAClD;IAEA,8DAA8D,OAC1DkC,uBAAuB,GAAY;QACrC,OAAOlC,IAAAA,OAAO,EAAA,QAAA,EAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACnD;IAEA,qKAAqK,OACjKmC,aAAa,GAAW;QAC1B,OAAOzB,IAAAA,OAAM,EAAA,OAAA,EAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACtC;IAEA,4FAA4F,OACxF0B,eAAe,GAAY;QAC7B,OAAOpC,IAAAA,OAAO,EAAA,QAAA,EAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC3C;IAEA,yDAAyD,OACrDqC,wBAAwB,GAAY;QACtC,OAAOrC,IAAAA,OAAO,EAAA,QAAA,EAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACpD;IAEA,iGAAiG,OAC7FsC,mBAAmB,GAAG;QACxB,OAAOtC,IAAAA,OAAO,EAAA,QAAA,EAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAC/C;IAEA,6CAA6C,OACzCuC,0BAA0B,GAAG;QAC/B,OAAOvC,IAAAA,OAAO,EAAA,QAAA,EAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACtD;IAEA,2MAA2M,OACvMwC,kCAAkC,GAAG;QACvC,OAAOxC,IAAAA,OAAO,EAAA,QAAA,EAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;IAC9D;IAEA,2JAA2J,OACvJyC,sBAAsB,GAAG;QAC3B,OAAOzC,IAAAA,OAAO,EAAA,QAAA,EAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAClD;IAEA,uHAAuH,OACnH0C,2BAA2B,GAAG;QAChC,OAAOhC,IAAAA,OAAM,EAAA,OAAA,EAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IACnD;IAEA,yKAAyK,OACrKiC,cAAc,GAAY;QAC5B,OAAO3C,IAAAA,OAAO,EAAA,QAAA,EAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC1C;IAEA,gEAAgE,OAC5D4C,oBAAoB,GAAY;QAClC,OAAO5C,IAAAA,OAAO,EAAA,QAAA,EAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAChD;IAEA,wDAAwD,OACpD6C,8BAA8B,GAAY;QAC5C,OAAO7C,IAAAA,OAAO,EAAA,QAAA,EAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IAC1D;IAEA,qGAAqG,OACjG8C,wBAAwB,GAAY;QACtC,OAAO9C,IAAAA,OAAO,EAAA,QAAA,EAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACpD;IAEA,qGAAqG,OACjG+C,2BAA2B,GAAY;QACzC,OAAO/C,IAAAA,OAAO,EAAA,QAAA,EAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACvD;CACD;AAEM,MAAMH,GAAG,GAAG,IAAIC,GAAG,EAAE,AAAC"}
1
+ {"version":3,"sources":["../../../src/utils/env.ts"],"sourcesContent":["import { boolish, int, string } from 'getenv';\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 /** Enable the unstable inverse dependency stack trace for Metro bundling errors. */\n get EXPO_METRO_UNSTABLE_ERRORS() {\n return boolish('EXPO_METRO_UNSTABLE_ERRORS', 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 /** Enable unstable/experimental Atlas to gather bundle information during development or export */\n get EXPO_UNSTABLE_ATLAS() {\n return 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 return boolish('EXPO_NO_DEPENDENCY_VALIDATION', false);\n }\n}\n\nexport const env = new Env();\n"],"names":["env","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_FAST_RESOLVER","EXPO_NO_CLIENT_ENV_VARS","EXPO_ADB_USER","__EXPO_E2E_TEST","EXPO_NO_BUNDLE_SPLITTING","EXPO_UNSTABLE_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"],"mappings":"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"}
@@ -96,7 +96,14 @@ function _interopRequireDefault(obj) {
96
96
  if (!routeAddress) {
97
97
  return null;
98
98
  }
99
- const ifaces = (0, _nodeOs().networkInterfaces)();
99
+ let ifaces;
100
+ try {
101
+ ifaces = (0, _nodeOs().networkInterfaces)();
102
+ } catch {
103
+ // NOTE: This usually doesn't throw, but invalid builds or unknown targets in Node.js
104
+ // can cause this call to unexpectedly raise a system error
105
+ return null;
106
+ }
100
107
  for(const iface in ifaces){
101
108
  const assignments = ifaces[iface];
102
109
  for(let i = 0; assignments && i < assignments.length; i++){
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/ip.ts"],"sourcesContent":["import internalIp from 'internal-ip';\nimport { spawnSync } from 'node:child_process';\nimport { isIPv4 } from 'node:net';\nimport { networkInterfaces } from 'node:os';\n\n/** Gets a route address by opening a UDP socket to a publicly routed address.\n * @privateRemarks\n * This is wrapped in `spawnSync` since the original `getIpAddress` utility exported\n * in this module is used synchronosly. An appropriate timeout has been set and UDP\n * ports don't send a message when opened.\n * @throws if `spawnSync` fails\n */\nfunction getRouteAddress(): string | null {\n const { error, status, stdout } = spawnSync(process.execPath, ['-'], {\n // This should be the cheapest method to determine the default route\n // By opening a socket to a publicly routed IP address, we let the default\n // gateway handle this socket, which means the socket's address will be\n // the prioritised route for public IP addresses.\n // It might fall back to `\"0.0.0.0\"` when no network connection is established\n input: `\n var socket = require('dgram').createSocket({ type: 'udp4', reuseAddr: true });\n socket.unref();\n socket.connect(53, '1.1.1.1', function() {\n var address = socket.address();\n socket.close();\n if (address && 'address' in address) {\n process.stdout.write(address.address);\n process.exit(0);\n } else {\n process.exit(1);\n }\n });\n `,\n shell: false,\n timeout: 500,\n encoding: 'utf8',\n windowsVerbatimArguments: false,\n windowsHide: true,\n });\n // We only use the stdout as an IP, if it validates as an IP and we got a zero exit code\n if (status || error) {\n return null;\n } else if (!status && typeof stdout === 'string' && isIPv4(stdout.trim())) {\n return stdout.trim();\n } else {\n return null;\n }\n}\n\n/** By convention, a zero mac address means we have a virtual device, which we'd like to exclude */\nconst VIRTUAL_MAC_ADDRESS = '00:00:00:00:00:00';\n\n/** Determines the internal IP address by opening a socket, then checking the socket address against non-internal network interface assignments\n * @throws If no address can be determined.\n */\nfunction getRouteIPAddress(): string | null {\n // We check the IP address we get against the available network interfaces\n // It's only an internal IP address if we have a matching address on an interface's IP assignment\n let routeAddress: string | null = null;\n try {\n routeAddress = getRouteAddress();\n } catch {}\n if (!routeAddress) {\n return null;\n }\n const ifaces = networkInterfaces();\n for (const iface in ifaces) {\n const assignments = ifaces[iface];\n for (let i = 0; assignments && i < assignments.length; i++) {\n const assignment = assignments[i];\n // Only use IPv4 assigments that aren't internal\n // Only use IPv4 assignment if it's not a virtual device (e.g. a VPN network interface)\n if (\n assignment.family === 'IPv4' &&\n !assignment.internal &&\n assignment.address === routeAddress &&\n assignment.mac !== VIRTUAL_MAC_ADDRESS\n )\n return routeAddress;\n }\n }\n return null;\n}\n\nexport function getIpAddress(): string {\n return internalIp.v4.sync() || getRouteIPAddress() || '127.0.0.1';\n}\n"],"names":["getIpAddress","getRouteAddress","error","status","stdout","spawnSync","process","execPath","input","shell","timeout","encoding","windowsVerbatimArguments","windowsHide","isIPv4","trim","VIRTUAL_MAC_ADDRESS","getRouteIPAddress","routeAddress","ifaces","networkInterfaces","iface","assignments","i","length","assignment","family","internal","address","mac","internalIp","v4","sync"],"mappings":"AAAA;;;;+BAoFgBA,cAAY;;aAAZA,YAAY;;;8DApFL,aAAa;;;;;;;yBACV,oBAAoB;;;;;;;yBACvB,UAAU;;;;;;;yBACC,SAAS;;;;;;;;;;;AAE3C;;;;;;CAMC,GACD,SAASC,eAAe,GAAkB;IACxC,MAAM,EAAEC,KAAK,CAAA,EAAEC,MAAM,CAAA,EAAEC,MAAM,CAAA,EAAE,GAAGC,IAAAA,iBAAS,EAAA,UAAA,EAACC,OAAO,CAACC,QAAQ,EAAE;QAAC,GAAG;KAAC,EAAE;QACnE,oEAAoE;QACpE,0EAA0E;QAC1E,uEAAuE;QACvE,iDAAiD;QACjD,8EAA8E;QAC9EC,KAAK,EAAE,CAAC;;;;;;;;;;;;;IAaR,CAAC;QACDC,KAAK,EAAE,KAAK;QACZC,OAAO,EAAE,GAAG;QACZC,QAAQ,EAAE,MAAM;QAChBC,wBAAwB,EAAE,KAAK;QAC/BC,WAAW,EAAE,IAAI;KAClB,CAAC,AAAC;IACH,wFAAwF;IACxF,IAAIV,MAAM,IAAID,KAAK,EAAE;QACnB,OAAO,IAAI,CAAC;IACd,OAAO,IAAI,CAACC,MAAM,IAAI,OAAOC,MAAM,KAAK,QAAQ,IAAIU,IAAAA,QAAM,EAAA,OAAA,EAACV,MAAM,CAACW,IAAI,EAAE,CAAC,EAAE;QACzE,OAAOX,MAAM,CAACW,IAAI,EAAE,CAAC;IACvB,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,iGAAiG,GACjG,MAAMC,mBAAmB,GAAG,mBAAmB,AAAC;AAEhD;;CAEC,GACD,SAASC,iBAAiB,GAAkB;IAC1C,0EAA0E;IAC1E,iGAAiG;IACjG,IAAIC,YAAY,GAAkB,IAAI,AAAC;IACvC,IAAI;QACFA,YAAY,GAAGjB,eAAe,EAAE,CAAC;IACnC,EAAE,OAAM,CAAC,CAAC;IACV,IAAI,CAACiB,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAMC,MAAM,GAAGC,IAAAA,OAAiB,EAAA,kBAAA,GAAE,AAAC;IACnC,IAAK,MAAMC,KAAK,IAAIF,MAAM,CAAE;QAC1B,MAAMG,WAAW,GAAGH,MAAM,CAACE,KAAK,CAAC,AAAC;QAClC,IAAK,IAAIE,CAAC,GAAG,CAAC,EAAED,WAAW,IAAIC,CAAC,GAAGD,WAAW,CAACE,MAAM,EAAED,CAAC,EAAE,CAAE;YAC1D,MAAME,UAAU,GAAGH,WAAW,CAACC,CAAC,CAAC,AAAC;YAClC,gDAAgD;YAChD,uFAAuF;YACvF,IACEE,UAAU,CAACC,MAAM,KAAK,MAAM,IAC5B,CAACD,UAAU,CAACE,QAAQ,IACpBF,UAAU,CAACG,OAAO,KAAKV,YAAY,IACnCO,UAAU,CAACI,GAAG,KAAKb,mBAAmB,EAEtC,OAAOE,YAAY,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAASlB,YAAY,GAAW;IACrC,OAAO8B,WAAU,EAAA,QAAA,CAACC,EAAE,CAACC,IAAI,EAAE,IAAIf,iBAAiB,EAAE,IAAI,WAAW,CAAC;AACpE,CAAC"}
1
+ {"version":3,"sources":["../../../src/utils/ip.ts"],"sourcesContent":["import internalIp from 'internal-ip';\nimport { spawnSync } from 'node:child_process';\nimport { isIPv4 } from 'node:net';\nimport { networkInterfaces } from 'node:os';\n\n/** Gets a route address by opening a UDP socket to a publicly routed address.\n * @privateRemarks\n * This is wrapped in `spawnSync` since the original `getIpAddress` utility exported\n * in this module is used synchronosly. An appropriate timeout has been set and UDP\n * ports don't send a message when opened.\n * @throws if `spawnSync` fails\n */\nfunction getRouteAddress(): string | null {\n const { error, status, stdout } = spawnSync(process.execPath, ['-'], {\n // This should be the cheapest method to determine the default route\n // By opening a socket to a publicly routed IP address, we let the default\n // gateway handle this socket, which means the socket's address will be\n // the prioritised route for public IP addresses.\n // It might fall back to `\"0.0.0.0\"` when no network connection is established\n input: `\n var socket = require('dgram').createSocket({ type: 'udp4', reuseAddr: true });\n socket.unref();\n socket.connect(53, '1.1.1.1', function() {\n var address = socket.address();\n socket.close();\n if (address && 'address' in address) {\n process.stdout.write(address.address);\n process.exit(0);\n } else {\n process.exit(1);\n }\n });\n `,\n shell: false,\n timeout: 500,\n encoding: 'utf8',\n windowsVerbatimArguments: false,\n windowsHide: true,\n });\n // We only use the stdout as an IP, if it validates as an IP and we got a zero exit code\n if (status || error) {\n return null;\n } else if (!status && typeof stdout === 'string' && isIPv4(stdout.trim())) {\n return stdout.trim();\n } else {\n return null;\n }\n}\n\n/** By convention, a zero mac address means we have a virtual device, which we'd like to exclude */\nconst VIRTUAL_MAC_ADDRESS = '00:00:00:00:00:00';\n\n/** Determines the internal IP address by opening a socket, then checking the socket address against non-internal network interface assignments\n * @throws If no address can be determined.\n */\nfunction getRouteIPAddress(): string | null {\n // We check the IP address we get against the available network interfaces\n // It's only an internal IP address if we have a matching address on an interface's IP assignment\n let routeAddress: string | null = null;\n try {\n routeAddress = getRouteAddress();\n } catch {}\n if (!routeAddress) {\n return null;\n }\n let ifaces: ReturnType<typeof networkInterfaces>;\n try {\n ifaces = networkInterfaces();\n } catch {\n // NOTE: This usually doesn't throw, but invalid builds or unknown targets in Node.js\n // can cause this call to unexpectedly raise a system error\n return null;\n }\n for (const iface in ifaces) {\n const assignments = ifaces[iface];\n for (let i = 0; assignments && i < assignments.length; i++) {\n const assignment = assignments[i];\n // Only use IPv4 assigments that aren't internal\n // Only use IPv4 assignment if it's not a virtual device (e.g. a VPN network interface)\n if (\n assignment.family === 'IPv4' &&\n !assignment.internal &&\n assignment.address === routeAddress &&\n assignment.mac !== VIRTUAL_MAC_ADDRESS\n )\n return routeAddress;\n }\n }\n return null;\n}\n\nexport function getIpAddress(): string {\n return internalIp.v4.sync() || getRouteIPAddress() || '127.0.0.1';\n}\n"],"names":["getIpAddress","getRouteAddress","error","status","stdout","spawnSync","process","execPath","input","shell","timeout","encoding","windowsVerbatimArguments","windowsHide","isIPv4","trim","VIRTUAL_MAC_ADDRESS","getRouteIPAddress","routeAddress","ifaces","networkInterfaces","iface","assignments","i","length","assignment","family","internal","address","mac","internalIp","v4","sync"],"mappings":"AAAA;;;;+BA2FgBA,cAAY;;aAAZA,YAAY;;;8DA3FL,aAAa;;;;;;;yBACV,oBAAoB;;;;;;;yBACvB,UAAU;;;;;;;yBACC,SAAS;;;;;;;;;;;AAE3C;;;;;;CAMC,GACD,SAASC,eAAe,GAAkB;IACxC,MAAM,EAAEC,KAAK,CAAA,EAAEC,MAAM,CAAA,EAAEC,MAAM,CAAA,EAAE,GAAGC,IAAAA,iBAAS,EAAA,UAAA,EAACC,OAAO,CAACC,QAAQ,EAAE;QAAC,GAAG;KAAC,EAAE;QACnE,oEAAoE;QACpE,0EAA0E;QAC1E,uEAAuE;QACvE,iDAAiD;QACjD,8EAA8E;QAC9EC,KAAK,EAAE,CAAC;;;;;;;;;;;;;IAaR,CAAC;QACDC,KAAK,EAAE,KAAK;QACZC,OAAO,EAAE,GAAG;QACZC,QAAQ,EAAE,MAAM;QAChBC,wBAAwB,EAAE,KAAK;QAC/BC,WAAW,EAAE,IAAI;KAClB,CAAC,AAAC;IACH,wFAAwF;IACxF,IAAIV,MAAM,IAAID,KAAK,EAAE;QACnB,OAAO,IAAI,CAAC;IACd,OAAO,IAAI,CAACC,MAAM,IAAI,OAAOC,MAAM,KAAK,QAAQ,IAAIU,IAAAA,QAAM,EAAA,OAAA,EAACV,MAAM,CAACW,IAAI,EAAE,CAAC,EAAE;QACzE,OAAOX,MAAM,CAACW,IAAI,EAAE,CAAC;IACvB,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,iGAAiG,GACjG,MAAMC,mBAAmB,GAAG,mBAAmB,AAAC;AAEhD;;CAEC,GACD,SAASC,iBAAiB,GAAkB;IAC1C,0EAA0E;IAC1E,iGAAiG;IACjG,IAAIC,YAAY,GAAkB,IAAI,AAAC;IACvC,IAAI;QACFA,YAAY,GAAGjB,eAAe,EAAE,CAAC;IACnC,EAAE,OAAM,CAAC,CAAC;IACV,IAAI,CAACiB,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAIC,MAAM,AAAsC,AAAC;IACjD,IAAI;QACFA,MAAM,GAAGC,IAAAA,OAAiB,EAAA,kBAAA,GAAE,CAAC;IAC/B,EAAE,OAAM;QACN,qFAAqF;QACrF,2DAA2D;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAK,MAAMC,KAAK,IAAIF,MAAM,CAAE;QAC1B,MAAMG,WAAW,GAAGH,MAAM,CAACE,KAAK,CAAC,AAAC;QAClC,IAAK,IAAIE,CAAC,GAAG,CAAC,EAAED,WAAW,IAAIC,CAAC,GAAGD,WAAW,CAACE,MAAM,EAAED,CAAC,EAAE,CAAE;YAC1D,MAAME,UAAU,GAAGH,WAAW,CAACC,CAAC,CAAC,AAAC;YAClC,gDAAgD;YAChD,uFAAuF;YACvF,IACEE,UAAU,CAACC,MAAM,KAAK,MAAM,IAC5B,CAACD,UAAU,CAACE,QAAQ,IACpBF,UAAU,CAACG,OAAO,KAAKV,YAAY,IACnCO,UAAU,CAACI,GAAG,KAAKb,mBAAmB,EAEtC,OAAOE,YAAY,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAASlB,YAAY,GAAW;IACrC,OAAO8B,WAAU,EAAA,QAAA,CAACC,EAAE,CAACC,IAAI,EAAE,IAAIf,iBAAiB,EAAE,IAAI,WAAW,CAAC;AACpE,CAAC"}
@@ -31,7 +31,7 @@ class FetchClient {
31
31
  this.headers = {
32
32
  accept: "application/json",
33
33
  "content-type": "application/json",
34
- "user-agent": `expo-cli/${"0.22.8"}`,
34
+ "user-agent": `expo-cli/${"0.22.10"}`,
35
35
  authorization: "Basic " + _nodeBuffer().Buffer.from(`${target}:`).toString("base64")
36
36
  };
37
37
  }
@@ -79,7 +79,7 @@ function createContext() {
79
79
  cpu: summarizeCpuInfo(),
80
80
  app: {
81
81
  name: "expo/cli",
82
- version: "0.22.8"
82
+ version: "0.22.10"
83
83
  },
84
84
  ci: _ciInfo().isCI ? {
85
85
  name: _ciInfo().name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/cli",
3
- "version": "0.22.8",
3
+ "version": "0.22.10",
4
4
  "description": "The Expo CLI",
5
5
  "main": "build/bin/cli",
6
6
  "bin": {
@@ -42,21 +42,21 @@
42
42
  "@0no-co/graphql.web": "^1.0.8",
43
43
  "@babel/runtime": "^7.20.0",
44
44
  "@expo/code-signing-certificates": "^0.0.5",
45
- "@expo/config": "~10.0.7",
46
- "@expo/config-plugins": "~9.0.13",
45
+ "@expo/config": "~10.0.8",
46
+ "@expo/config-plugins": "~9.0.14",
47
47
  "@expo/devcert": "^1.1.2",
48
- "@expo/env": "~0.4.0",
49
- "@expo/image-utils": "^0.6.0",
50
- "@expo/json-file": "^9.0.0",
51
- "@expo/metro-config": "~0.19.8",
52
- "@expo/osascript": "^2.0.31",
53
- "@expo/package-manager": "^1.7.0",
54
- "@expo/plist": "^0.2.0",
55
- "@expo/prebuild-config": "^8.0.24",
48
+ "@expo/env": "~0.4.1",
49
+ "@expo/image-utils": "^0.6.4",
50
+ "@expo/json-file": "^9.0.1",
51
+ "@expo/metro-config": "~0.19.9",
52
+ "@expo/osascript": "^2.1.5",
53
+ "@expo/package-manager": "^1.7.1",
54
+ "@expo/plist": "^0.2.1",
55
+ "@expo/prebuild-config": "^8.0.25",
56
56
  "@expo/rudder-sdk-node": "^1.1.1",
57
57
  "@expo/spawn-async": "^1.7.2",
58
58
  "@expo/xcpretty": "^4.3.0",
59
- "@react-native/dev-middleware": "0.76.5",
59
+ "@react-native/dev-middleware": "0.76.6",
60
60
  "@urql/core": "^5.0.6",
61
61
  "@urql/exchange-retry": "^1.3.0",
62
62
  "accepts": "^1.3.8",
@@ -95,7 +95,7 @@
95
95
  "requireg": "^0.2.2",
96
96
  "resolve": "^1.22.2",
97
97
  "resolve-from": "^5.0.0",
98
- "resolve.exports": "^2.0.2",
98
+ "resolve.exports": "^2.0.3",
99
99
  "semver": "^7.6.0",
100
100
  "send": "^0.19.0",
101
101
  "slugify": "^1.3.4",
@@ -119,7 +119,7 @@
119
119
  "devDependencies": {
120
120
  "@expo/multipart-body-parser": "^1.0.0",
121
121
  "@expo/ngrok": "4.1.3",
122
- "@expo/server": "^0.5.0",
122
+ "@expo/server": "^0.5.1",
123
123
  "@graphql-codegen/cli": "^2.16.3",
124
124
  "@graphql-codegen/typescript": "^2.8.7",
125
125
  "@graphql-codegen/typescript-operations": "^2.5.12",
@@ -154,7 +154,7 @@
154
154
  "@types/ws": "^8.5.4",
155
155
  "devtools-protocol": "^0.0.1113120",
156
156
  "expo-atlas": "^0.4.0",
157
- "expo-module-scripts": "^4.0.0",
157
+ "expo-module-scripts": "^4.0.3",
158
158
  "find-process": "^1.4.7",
159
159
  "jest-runner-tsd": "^6.0.0",
160
160
  "klaw-sync": "^6.0.0",
@@ -167,5 +167,5 @@
167
167
  "tree-kill": "^1.2.2",
168
168
  "tsd": "^0.28.1"
169
169
  },
170
- "gitHead": "1955c7d38e69c0eb62df89d516a392ea64db6405"
170
+ "gitHead": "0a0c6d35a691fc59c0d94675d159ac9e3dfd6f26"
171
171
  }