@expo/cli 1.0.0-canary-20250131-5c4e588 → 1.0.0-canary-20250219-4a5dade

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 (34) hide show
  1. package/build/bin/cli +1 -1
  2. package/build/src/api/getNativeModuleVersions.js +1 -1
  3. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  4. package/build/src/api/graphql/types/App.js +1 -0
  5. package/build/src/api/graphql/types/App.js.map +1 -1
  6. package/build/src/api/rest/cache/FileSystemResponseCache.js +129 -50
  7. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  8. package/build/src/graphql/generated.js +494 -23
  9. package/build/src/graphql/generated.js.map +1 -1
  10. package/build/src/prebuild/configureProjectAsync.js +2 -2
  11. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  12. package/build/src/prebuild/ensureConfigAsync.js +2 -2
  13. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  14. package/build/src/start/resolveOptions.js +5 -0
  15. package/build/src/start/resolveOptions.js.map +1 -1
  16. package/build/src/start/server/AsyncWsTunnel.js +159 -0
  17. package/build/src/start/server/AsyncWsTunnel.js.map +1 -0
  18. package/build/src/start/server/BundlerDevServer.js +17 -10
  19. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  20. package/build/src/start/server/metro/withMetroMultiPlatform.js +1 -1
  21. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  22. package/build/src/start/server/middleware/DomComponentsMiddleware.js +1 -1
  23. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  24. package/build/src/start/server/middleware/metroOptions.js +1 -1
  25. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  26. package/build/src/utils/env.js +30 -5
  27. package/build/src/utils/env.js.map +1 -1
  28. package/build/src/utils/getOrPromptApplicationId.js +53 -20
  29. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  30. package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
  31. package/build/src/utils/telemetry/utils/context.js +1 -1
  32. package/package.json +16 -16
  33. package/build/src/utils/getAccountUsername.js +0 -22
  34. package/build/src/utils/getAccountUsername.js.map +0 -1
@@ -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 /** 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\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","isWebContainer","versions","webcontainer"],"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 /** 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 // 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\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_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","isWebContainer","versions","webcontainer","EXPO_FORCE_WEBCONTAINER_ENV","SHELL"],"mappings":"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"}
@@ -9,9 +9,16 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- getOrPromptForBundleIdentifier: ()=>getOrPromptForBundleIdentifier,
13
- getOrPromptForPackage: ()=>getOrPromptForPackage
12
+ getOrPromptForBundleIdentifierAsync: ()=>getOrPromptForBundleIdentifierAsync,
13
+ getOrPromptForPackageAsync: ()=>getOrPromptForPackageAsync
14
14
  });
15
+ function _graphqlWeb() {
16
+ const data = require("@0no-co/graphql.web");
17
+ _graphqlWeb = function() {
18
+ return data;
19
+ };
20
+ return data;
21
+ }
15
22
  function _config() {
16
23
  const data = require("@expo/config");
17
24
  _config = function() {
@@ -19,6 +26,13 @@ function _config() {
19
26
  };
20
27
  return data;
21
28
  }
29
+ function _core() {
30
+ const data = require("@urql/core");
31
+ _core = function() {
32
+ return data;
33
+ };
34
+ return data;
35
+ }
22
36
  function _chalk() {
23
37
  const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
24
38
  _chalk = function() {
@@ -31,8 +45,9 @@ const _link = require("./link");
31
45
  const _modifyConfigAsync = require("./modifyConfigAsync");
32
46
  const _prompts = /*#__PURE__*/ _interopRequireWildcard(require("./prompts"));
33
47
  const _validateApplicationId = require("./validateApplicationId");
48
+ const _appQuery = require("../api/graphql/queries/AppQuery");
49
+ const _userSettings = require("../api/user/UserSettings");
34
50
  const _log = /*#__PURE__*/ _interopRequireWildcard(require("../log"));
35
- const _getAccountUsername = require("./getAccountUsername");
36
51
  function _interopRequireDefault(obj) {
37
52
  return obj && obj.__esModule ? obj : {
38
53
  default: obj
@@ -78,20 +93,38 @@ function _interopRequireWildcard(obj, nodeInterop) {
78
93
  return newObj;
79
94
  }
80
95
  const debug = require("debug")("expo:app-id");
81
- function getExpoUsername(exp) {
82
- // Account for if the environment variable was an empty string.
83
- return (0, _getAccountUsername.getAccountUsername)(exp) || "anonymous";
96
+ const ANONYMOUS_USERNAME = "anonymous";
97
+ async function getRecommendedReverseDomainNameSecondPartAsync(exp) {
98
+ var ref, ref1, ref2;
99
+ // Get the cached username.
100
+ const cachedUsername = (ref = (0, _userSettings.getSettings)().read().auth) == null ? void 0 : ref.username;
101
+ if (cachedUsername) {
102
+ return cachedUsername;
103
+ }
104
+ const easProjectId = (ref1 = exp.extra) == null ? void 0 : (ref2 = ref1.eas) == null ? void 0 : ref2.projectId;
105
+ if (!easProjectId) {
106
+ return null;
107
+ }
108
+ try {
109
+ const app = await _appQuery.AppQuery.byIdAsync(easProjectId);
110
+ return app.ownerAccount.name;
111
+ } catch (e) {
112
+ if (e instanceof _graphqlWeb().GraphQLError || e instanceof _core().CombinedError) {
113
+ return null;
114
+ }
115
+ throw e;
116
+ }
84
117
  }
85
118
  const NO_BUNDLE_ID_MESSAGE = `Project must have a \`ios.bundleIdentifier\` set in the Expo config (app.json or app.config.js).`;
86
119
  const NO_PACKAGE_MESSAGE = `Project must have a \`android.package\` set in the Expo config (app.json or app.config.js).`;
87
- async function getOrPromptForBundleIdentifier(projectRoot, exp = (0, _config().getConfig)(projectRoot).exp) {
120
+ async function getOrPromptForBundleIdentifierAsync(projectRoot, exp = (0, _config().getConfig)(projectRoot).exp) {
88
121
  var ref;
89
122
  const current = (ref = exp.ios) == null ? void 0 : ref.bundleIdentifier;
90
123
  if (current) {
91
124
  (0, _validateApplicationId.assertValidBundleId)(current);
92
125
  return current;
93
126
  }
94
- return promptForBundleIdWithInitialAsync(projectRoot, exp, getRecommendedBundleId(exp));
127
+ return promptForBundleIdWithInitialAsync(projectRoot, exp, await getRecommendedBundleIdAsync(exp));
95
128
  }
96
129
  const memoLog = (0, _fn.memoize)(_log.log);
97
130
  async function promptForBundleIdWithInitialAsync(projectRoot, exp, bundleIdentifier) {
@@ -145,41 +178,41 @@ async function warnAndConfirmAsync(warning) {
145
178
  }
146
179
  return true;
147
180
  }
148
- // Recommend a bundle identifier based on the username and project slug.
149
- function getRecommendedBundleId(exp) {
181
+ // Recommend a bundle identifier based on the account name of the owner of the project and project slug.
182
+ async function getRecommendedBundleIdAsync(exp) {
150
183
  var ref;
151
184
  const possibleIdFromAndroid = ((ref = exp.android) == null ? void 0 : ref.package) ? (0, _validateApplicationId.getSanitizedBundleIdentifier)(exp.android.package) : undefined;
152
185
  // Attempt to use the android package name first since it's convenient to have them aligned.
153
186
  if (possibleIdFromAndroid && (0, _validateApplicationId.validateBundleId)(possibleIdFromAndroid)) {
154
187
  return possibleIdFromAndroid;
155
188
  } else {
156
- const username = getExpoUsername(exp);
157
- const possibleId = (0, _validateApplicationId.getSanitizedBundleIdentifier)(`com.${username}.${exp.slug}`);
189
+ const recommendedReverseDomainNameSecondPart = await getRecommendedReverseDomainNameSecondPartAsync(exp) ?? ANONYMOUS_USERNAME;
190
+ const possibleId = (0, _validateApplicationId.getSanitizedBundleIdentifier)(`com.${recommendedReverseDomainNameSecondPart}.${exp.slug}`);
158
191
  if ((0, _validateApplicationId.validateBundleId)(possibleId)) {
159
192
  return possibleId;
160
193
  }
161
194
  }
162
195
  return undefined;
163
196
  }
164
- // Recommend a package name based on the username and project slug.
165
- function getRecommendedPackageName(exp) {
197
+ // Recommend a package name based on the account name of the owner of the project and project slug.
198
+ async function getRecommendedPackageNameAsync(exp) {
166
199
  var ref;
167
200
  const possibleIdFromApple = ((ref = exp.ios) == null ? void 0 : ref.bundleIdentifier) ? (0, _validateApplicationId.getSanitizedPackage)(exp.ios.bundleIdentifier) : undefined;
168
201
  // Attempt to use the ios bundle id first since it's convenient to have them aligned.
169
202
  if (possibleIdFromApple && (0, _validateApplicationId.validatePackage)(possibleIdFromApple)) {
170
203
  return possibleIdFromApple;
171
204
  } else {
172
- const username = getExpoUsername(exp);
173
- const possibleId = (0, _validateApplicationId.getSanitizedPackage)(`com.${username}.${exp.slug}`);
205
+ const recommendedReverseDomainNameSecondPart = await getRecommendedReverseDomainNameSecondPartAsync(exp) ?? ANONYMOUS_USERNAME;
206
+ const possibleId = (0, _validateApplicationId.getSanitizedPackage)(`com.${recommendedReverseDomainNameSecondPart}.${exp.slug}`);
174
207
  if ((0, _validateApplicationId.validatePackage)(possibleId)) {
175
208
  return possibleId;
176
209
  } else {
177
- debug(`Recommended package name is invalid: "${possibleId}" (username: ${username}, slug: ${exp.slug})`);
210
+ debug(`Recommended package name is invalid: "${possibleId}" (owner: ${recommendedReverseDomainNameSecondPart}, slug: ${exp.slug})`);
178
211
  }
179
212
  }
180
213
  return undefined;
181
214
  }
182
- async function getOrPromptForPackage(projectRoot, exp = (0, _config().getConfig)(projectRoot).exp) {
215
+ async function getOrPromptForPackageAsync(projectRoot, exp = (0, _config().getConfig)(projectRoot).exp) {
183
216
  var ref;
184
217
  const current = (ref = exp.android) == null ? void 0 : ref.package;
185
218
  if (current) {
@@ -188,8 +221,8 @@ async function getOrPromptForPackage(projectRoot, exp = (0, _config().getConfig)
188
221
  }
189
222
  return await promptForPackageAsync(projectRoot, exp);
190
223
  }
191
- function promptForPackageAsync(projectRoot, exp) {
192
- return promptForPackageWithInitialAsync(projectRoot, exp, getRecommendedPackageName(exp));
224
+ async function promptForPackageAsync(projectRoot, exp) {
225
+ return promptForPackageWithInitialAsync(projectRoot, exp, await getRecommendedPackageNameAsync(exp));
193
226
  }
194
227
  async function promptForPackageWithInitialAsync(projectRoot, exp, packageName) {
195
228
  if (!packageName) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/getOrPromptApplicationId.ts"],"sourcesContent":["import { ExpoConfig, getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { memoize } from './fn';\nimport { learnMore } from './link';\nimport { attemptModification } from './modifyConfigAsync';\nimport prompt, { confirmAsync } from './prompts';\nimport {\n assertValidBundleId,\n assertValidPackage,\n getBundleIdWarningAsync,\n getPackageNameWarningAsync,\n getSanitizedBundleIdentifier,\n getSanitizedPackage,\n validateBundleId,\n validatePackage,\n validatePackageWithWarning,\n} from './validateApplicationId';\nimport * as Log from '../log';\nimport { getAccountUsername } from './getAccountUsername';\n\nconst debug = require('debug')('expo:app-id') as typeof console.log;\n\nfunction getExpoUsername(exp: ExpoConfig) {\n // Account for if the environment variable was an empty string.\n return getAccountUsername(exp) || 'anonymous';\n}\n\nconst NO_BUNDLE_ID_MESSAGE = `Project must have a \\`ios.bundleIdentifier\\` set in the Expo config (app.json or app.config.js).`;\n\nconst NO_PACKAGE_MESSAGE = `Project must have a \\`android.package\\` set in the Expo config (app.json or app.config.js).`;\n\n/**\n * Get the bundle identifier from the Expo config or prompt the user to choose a new bundle identifier.\n * Prompted value will be validated against the App Store and a local regex.\n * If the project Expo config is a static JSON file, the bundle identifier will be updated in the config automatically.\n */\nexport async function getOrPromptForBundleIdentifier(\n projectRoot: string,\n exp: ExpoConfig = getConfig(projectRoot).exp\n): Promise<string> {\n const current = exp.ios?.bundleIdentifier;\n if (current) {\n assertValidBundleId(current);\n return current;\n }\n\n return promptForBundleIdWithInitialAsync(projectRoot, exp, getRecommendedBundleId(exp));\n}\n\nconst memoLog = memoize(Log.log);\n\nasync function promptForBundleIdWithInitialAsync(\n projectRoot: string,\n exp: ExpoConfig,\n bundleIdentifier?: string\n): Promise<string> {\n if (!bundleIdentifier) {\n memoLog(\n chalk`\\n{bold 📝 iOS Bundle Identifier} {dim ${learnMore(\n 'https://expo.fyi/bundle-identifier'\n )}}\\n`\n );\n\n // Prompt the user for the bundle ID.\n // Even if the project is using a dynamic config we can still\n // prompt a better error message, recommend a default value, and help the user\n // validate their custom bundle ID upfront.\n const { input } = await prompt(\n {\n type: 'text',\n name: 'input',\n // The Apple helps people know this isn't an EAS feature.\n message: `What would you like your iOS bundle identifier to be?`,\n validate: validateBundleId,\n },\n {\n nonInteractiveHelp: NO_BUNDLE_ID_MESSAGE,\n }\n );\n bundleIdentifier = input as string;\n }\n\n // Warn the user if the bundle ID is already in use.\n const warning = await getBundleIdWarningAsync(bundleIdentifier);\n\n if (warning && !(await warnAndConfirmAsync(warning))) {\n // Cycle the Bundle ID prompt to try again.\n return await promptForBundleIdWithInitialAsync(projectRoot, exp);\n }\n\n // Apply the changes to the config.\n if (\n await attemptModification(\n projectRoot,\n {\n ios: { ...(exp.ios || {}), bundleIdentifier },\n },\n { ios: { bundleIdentifier } }\n )\n ) {\n Log.log(chalk.gray`\\u203A Apple bundle identifier: ${bundleIdentifier}`);\n }\n\n return bundleIdentifier;\n}\n\nasync function warnAndConfirmAsync(warning: string): Promise<boolean> {\n Log.log();\n Log.warn(warning);\n Log.log();\n if (\n !(await confirmAsync({\n message: `Continue?`,\n initial: true,\n }))\n ) {\n return false;\n }\n return true;\n}\n\n// Recommend a bundle identifier based on the username and project slug.\nfunction getRecommendedBundleId(exp: ExpoConfig): string | undefined {\n const possibleIdFromAndroid = exp.android?.package\n ? getSanitizedBundleIdentifier(exp.android.package)\n : undefined;\n // Attempt to use the android package name first since it's convenient to have them aligned.\n if (possibleIdFromAndroid && validateBundleId(possibleIdFromAndroid)) {\n return possibleIdFromAndroid;\n } else {\n const username = getExpoUsername(exp);\n const possibleId = getSanitizedBundleIdentifier(`com.${username}.${exp.slug}`);\n if (validateBundleId(possibleId)) {\n return possibleId;\n }\n }\n\n return undefined;\n}\n\n// Recommend a package name based on the username and project slug.\nfunction getRecommendedPackageName(exp: ExpoConfig): string | undefined {\n const possibleIdFromApple = exp.ios?.bundleIdentifier\n ? getSanitizedPackage(exp.ios.bundleIdentifier)\n : undefined;\n\n // Attempt to use the ios bundle id first since it's convenient to have them aligned.\n if (possibleIdFromApple && validatePackage(possibleIdFromApple)) {\n return possibleIdFromApple;\n } else {\n const username = getExpoUsername(exp);\n const possibleId = getSanitizedPackage(`com.${username}.${exp.slug}`);\n if (validatePackage(possibleId)) {\n return possibleId;\n } else {\n debug(\n `Recommended package name is invalid: \"${possibleId}\" (username: ${username}, slug: ${exp.slug})`\n );\n }\n }\n return undefined;\n}\n\n/**\n * Get the package name from the Expo config or prompt the user to choose a new package name.\n * Prompted value will be validated against the Play Store and a local regex.\n * If the project Expo config is a static JSON file, the package name will be updated in the config automatically.\n */\nexport async function getOrPromptForPackage(\n projectRoot: string,\n exp: ExpoConfig = getConfig(projectRoot).exp\n): Promise<string> {\n const current = exp.android?.package;\n if (current) {\n assertValidPackage(current);\n return current;\n }\n\n return await promptForPackageAsync(projectRoot, exp);\n}\n\nfunction promptForPackageAsync(projectRoot: string, exp: ExpoConfig): Promise<string> {\n return promptForPackageWithInitialAsync(projectRoot, exp, getRecommendedPackageName(exp));\n}\n\nasync function promptForPackageWithInitialAsync(\n projectRoot: string,\n exp: ExpoConfig,\n packageName?: string\n): Promise<string> {\n if (!packageName) {\n memoLog(\n chalk`\\n{bold 📝 Android package} {dim ${learnMore('https://expo.fyi/android-package')}}\\n`\n );\n\n // Prompt the user for the android package.\n // Even if the project is using a dynamic config we can still\n // prompt a better error message, recommend a default value, and help the user\n // validate their custom android package upfront.\n const { input } = await prompt(\n {\n type: 'text',\n name: 'input',\n message: `What would you like your Android package name to be?`,\n validate: validatePackageWithWarning,\n },\n {\n nonInteractiveHelp: NO_PACKAGE_MESSAGE,\n }\n );\n packageName = input as string;\n }\n\n // Warn the user if the package name is already in use.\n const warning = await getPackageNameWarningAsync(packageName);\n if (warning && !(await warnAndConfirmAsync(warning))) {\n // Cycle the Package name prompt to try again.\n return promptForPackageWithInitialAsync(projectRoot, exp);\n }\n\n // Apply the changes to the config.\n if (\n await attemptModification(\n projectRoot,\n {\n android: { ...(exp.android || {}), package: packageName },\n },\n {\n android: { package: packageName },\n }\n )\n ) {\n Log.log(chalk.gray`\\u203A Android package name: ${packageName}`);\n }\n\n return packageName;\n}\n"],"names":["getOrPromptForBundleIdentifier","getOrPromptForPackage","debug","require","getExpoUsername","exp","getAccountUsername","NO_BUNDLE_ID_MESSAGE","NO_PACKAGE_MESSAGE","projectRoot","getConfig","current","ios","bundleIdentifier","assertValidBundleId","promptForBundleIdWithInitialAsync","getRecommendedBundleId","memoLog","memoize","Log","log","chalk","learnMore","input","prompt","type","name","message","validate","validateBundleId","nonInteractiveHelp","warning","getBundleIdWarningAsync","warnAndConfirmAsync","attemptModification","gray","warn","confirmAsync","initial","possibleIdFromAndroid","android","package","getSanitizedBundleIdentifier","undefined","username","possibleId","slug","getRecommendedPackageName","possibleIdFromApple","getSanitizedPackage","validatePackage","assertValidPackage","promptForPackageAsync","promptForPackageWithInitialAsync","packageName","validatePackageWithWarning","getPackageNameWarningAsync"],"mappings":"AAAA;;;;;;;;;;;IAqCsBA,8BAA8B,MAA9BA,8BAA8B;IAoI9BC,qBAAqB,MAArBA,qBAAqB;;;yBAzKL,cAAc;;;;;;;8DAClC,OAAO;;;;;;oBAED,MAAM;sBACJ,QAAQ;mCACE,qBAAqB;+DACpB,WAAW;uCAWzC,yBAAyB;2DACX,QAAQ;oCACM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzD,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,AAAsB,AAAC;AAEpE,SAASC,eAAe,CAACC,GAAe,EAAE;IACxC,+DAA+D;IAC/D,OAAOC,IAAAA,mBAAkB,mBAAA,EAACD,GAAG,CAAC,IAAI,WAAW,CAAC;AAChD,CAAC;AAED,MAAME,oBAAoB,GAAG,CAAC,gGAAgG,CAAC,AAAC;AAEhI,MAAMC,kBAAkB,GAAG,CAAC,2FAA2F,CAAC,AAAC;AAOlH,eAAeR,8BAA8B,CAClDS,WAAmB,EACnBJ,GAAe,GAAGK,IAAAA,OAAS,EAAA,UAAA,EAACD,WAAW,CAAC,CAACJ,GAAG,EAC3B;QACDA,GAAO;IAAvB,MAAMM,OAAO,GAAGN,CAAAA,GAAO,GAAPA,GAAG,CAACO,GAAG,SAAkB,GAAzBP,KAAAA,CAAyB,GAAzBA,GAAO,CAAEQ,gBAAgB,AAAC;IAC1C,IAAIF,OAAO,EAAE;QACXG,IAAAA,sBAAmB,oBAAA,EAACH,OAAO,CAAC,CAAC;QAC7B,OAAOA,OAAO,CAAC;IACjB,CAAC;IAED,OAAOI,iCAAiC,CAACN,WAAW,EAAEJ,GAAG,EAAEW,sBAAsB,CAACX,GAAG,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAMY,OAAO,GAAGC,IAAAA,GAAO,QAAA,EAACC,IAAG,CAACC,GAAG,CAAC,AAAC;AAEjC,eAAeL,iCAAiC,CAC9CN,WAAmB,EACnBJ,GAAe,EACfQ,gBAAyB,EACR;IACjB,IAAI,CAACA,gBAAgB,EAAE;QACrBI,OAAO,CACLI,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,uCAAuC,EAAEC,IAAAA,KAAS,UAAA,EACtD,oCAAoC,CACrC,CAAC,GAAG,CAAC,CACP,CAAC;QAEF,qCAAqC;QACrC,6DAA6D;QAC7D,8EAA8E;QAC9E,2CAA2C;QAC3C,MAAM,EAAEC,KAAK,CAAA,EAAE,GAAG,MAAMC,IAAAA,QAAM,QAAA,EAC5B;YACEC,IAAI,EAAE,MAAM;YACZC,IAAI,EAAE,OAAO;YACb,yDAAyD;YACzDC,OAAO,EAAE,CAAC,qDAAqD,CAAC;YAChEC,QAAQ,EAAEC,sBAAgB,iBAAA;SAC3B,EACD;YACEC,kBAAkB,EAAEvB,oBAAoB;SACzC,CACF,AAAC;QACFM,gBAAgB,GAAGU,KAAK,AAAU,CAAC;IACrC,CAAC;IAED,oDAAoD;IACpD,MAAMQ,OAAO,GAAG,MAAMC,IAAAA,sBAAuB,wBAAA,EAACnB,gBAAgB,CAAC,AAAC;IAEhE,IAAIkB,OAAO,IAAI,CAAE,MAAME,mBAAmB,CAACF,OAAO,CAAC,AAAC,EAAE;QACpD,2CAA2C;QAC3C,OAAO,MAAMhB,iCAAiC,CAACN,WAAW,EAAEJ,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,mCAAmC;IACnC,IACE,MAAM6B,IAAAA,kBAAmB,oBAAA,EACvBzB,WAAW,EACX;QACEG,GAAG,EAAE;YAAE,GAAIP,GAAG,CAACO,GAAG,IAAI,EAAE;YAAGC,gBAAgB;SAAE;KAC9C,EACD;QAAED,GAAG,EAAE;YAAEC,gBAAgB;SAAE;KAAE,CAC9B,EACD;QACAM,IAAG,CAACC,GAAG,CAACC,MAAK,EAAA,QAAA,CAACc,IAAI,CAAC,gCAAgC,EAAEtB,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAOA,gBAAgB,CAAC;AAC1B,CAAC;AAED,eAAeoB,mBAAmB,CAACF,OAAe,EAAoB;IACpEZ,IAAG,CAACC,GAAG,EAAE,CAAC;IACVD,IAAG,CAACiB,IAAI,CAACL,OAAO,CAAC,CAAC;IAClBZ,IAAG,CAACC,GAAG,EAAE,CAAC;IACV,IACE,CAAE,MAAMiB,IAAAA,QAAY,aAAA,EAAC;QACnBV,OAAO,EAAE,CAAC,SAAS,CAAC;QACpBW,OAAO,EAAE,IAAI;KACd,CAAC,AAAC,EACH;QACA,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AACxE,SAAStB,sBAAsB,CAACX,GAAe,EAAsB;QACrCA,GAAW;IAAzC,MAAMkC,qBAAqB,GAAGlC,CAAAA,CAAAA,GAAW,GAAXA,GAAG,CAACmC,OAAO,SAAS,GAApBnC,KAAAA,CAAoB,GAApBA,GAAW,CAAEoC,OAAO,CAAA,GAC9CC,IAAAA,sBAA4B,6BAAA,EAACrC,GAAG,CAACmC,OAAO,CAACC,OAAO,CAAC,GACjDE,SAAS,AAAC;IACd,4FAA4F;IAC5F,IAAIJ,qBAAqB,IAAIV,IAAAA,sBAAgB,iBAAA,EAACU,qBAAqB,CAAC,EAAE;QACpE,OAAOA,qBAAqB,CAAC;IAC/B,OAAO;QACL,MAAMK,QAAQ,GAAGxC,eAAe,CAACC,GAAG,CAAC,AAAC;QACtC,MAAMwC,UAAU,GAAGH,IAAAA,sBAA4B,6BAAA,EAAC,CAAC,IAAI,EAAEE,QAAQ,CAAC,CAAC,EAAEvC,GAAG,CAACyC,IAAI,CAAC,CAAC,CAAC,AAAC;QAC/E,IAAIjB,IAAAA,sBAAgB,iBAAA,EAACgB,UAAU,CAAC,EAAE;YAChC,OAAOA,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAOF,SAAS,CAAC;AACnB,CAAC;AAED,mEAAmE;AACnE,SAASI,yBAAyB,CAAC1C,GAAe,EAAsB;QAC1CA,GAAO;IAAnC,MAAM2C,mBAAmB,GAAG3C,CAAAA,CAAAA,GAAO,GAAPA,GAAG,CAACO,GAAG,SAAkB,GAAzBP,KAAAA,CAAyB,GAAzBA,GAAO,CAAEQ,gBAAgB,CAAA,GACjDoC,IAAAA,sBAAmB,oBAAA,EAAC5C,GAAG,CAACO,GAAG,CAACC,gBAAgB,CAAC,GAC7C8B,SAAS,AAAC;IAEd,qFAAqF;IACrF,IAAIK,mBAAmB,IAAIE,IAAAA,sBAAe,gBAAA,EAACF,mBAAmB,CAAC,EAAE;QAC/D,OAAOA,mBAAmB,CAAC;IAC7B,OAAO;QACL,MAAMJ,QAAQ,GAAGxC,eAAe,CAACC,GAAG,CAAC,AAAC;QACtC,MAAMwC,UAAU,GAAGI,IAAAA,sBAAmB,oBAAA,EAAC,CAAC,IAAI,EAAEL,QAAQ,CAAC,CAAC,EAAEvC,GAAG,CAACyC,IAAI,CAAC,CAAC,CAAC,AAAC;QACtE,IAAII,IAAAA,sBAAe,gBAAA,EAACL,UAAU,CAAC,EAAE;YAC/B,OAAOA,UAAU,CAAC;QACpB,OAAO;YACL3C,KAAK,CACH,CAAC,sCAAsC,EAAE2C,UAAU,CAAC,aAAa,EAAED,QAAQ,CAAC,QAAQ,EAAEvC,GAAG,CAACyC,IAAI,CAAC,CAAC,CAAC,CAClG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAOH,SAAS,CAAC;AACnB,CAAC;AAOM,eAAe1C,qBAAqB,CACzCQ,WAAmB,EACnBJ,GAAe,GAAGK,IAAAA,OAAS,EAAA,UAAA,EAACD,WAAW,CAAC,CAACJ,GAAG,EAC3B;QACDA,GAAW;IAA3B,MAAMM,OAAO,GAAGN,CAAAA,GAAW,GAAXA,GAAG,CAACmC,OAAO,SAAS,GAApBnC,KAAAA,CAAoB,GAApBA,GAAW,CAAEoC,OAAO,AAAC;IACrC,IAAI9B,OAAO,EAAE;QACXwC,IAAAA,sBAAkB,mBAAA,EAACxC,OAAO,CAAC,CAAC;QAC5B,OAAOA,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,MAAMyC,qBAAqB,CAAC3C,WAAW,EAAEJ,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,SAAS+C,qBAAqB,CAAC3C,WAAmB,EAAEJ,GAAe,EAAmB;IACpF,OAAOgD,gCAAgC,CAAC5C,WAAW,EAAEJ,GAAG,EAAE0C,yBAAyB,CAAC1C,GAAG,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,eAAegD,gCAAgC,CAC7C5C,WAAmB,EACnBJ,GAAe,EACfiD,WAAoB,EACH;IACjB,IAAI,CAACA,WAAW,EAAE;QAChBrC,OAAO,CACLI,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,iCAAiC,EAAEC,IAAAA,KAAS,UAAA,EAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,CAC5F,CAAC;QAEF,2CAA2C;QAC3C,6DAA6D;QAC7D,8EAA8E;QAC9E,iDAAiD;QACjD,MAAM,EAAEC,KAAK,CAAA,EAAE,GAAG,MAAMC,IAAAA,QAAM,QAAA,EAC5B;YACEC,IAAI,EAAE,MAAM;YACZC,IAAI,EAAE,OAAO;YACbC,OAAO,EAAE,CAAC,oDAAoD,CAAC;YAC/DC,QAAQ,EAAE2B,sBAA0B,2BAAA;SACrC,EACD;YACEzB,kBAAkB,EAAEtB,kBAAkB;SACvC,CACF,AAAC;QACF8C,WAAW,GAAG/B,KAAK,AAAU,CAAC;IAChC,CAAC;IAED,uDAAuD;IACvD,MAAMQ,OAAO,GAAG,MAAMyB,IAAAA,sBAA0B,2BAAA,EAACF,WAAW,CAAC,AAAC;IAC9D,IAAIvB,OAAO,IAAI,CAAE,MAAME,mBAAmB,CAACF,OAAO,CAAC,AAAC,EAAE;QACpD,8CAA8C;QAC9C,OAAOsB,gCAAgC,CAAC5C,WAAW,EAAEJ,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,mCAAmC;IACnC,IACE,MAAM6B,IAAAA,kBAAmB,oBAAA,EACvBzB,WAAW,EACX;QACE+B,OAAO,EAAE;YAAE,GAAInC,GAAG,CAACmC,OAAO,IAAI,EAAE;YAAGC,OAAO,EAAEa,WAAW;SAAE;KAC1D,EACD;QACEd,OAAO,EAAE;YAAEC,OAAO,EAAEa,WAAW;SAAE;KAClC,CACF,EACD;QACAnC,IAAG,CAACC,GAAG,CAACC,MAAK,EAAA,QAAA,CAACc,IAAI,CAAC,6BAA6B,EAAEmB,WAAW,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAOA,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"sources":["../../../src/utils/getOrPromptApplicationId.ts"],"sourcesContent":["import { GraphQLError } from '@0no-co/graphql.web';\nimport { ExpoConfig, getConfig } from '@expo/config';\nimport { CombinedError } from '@urql/core';\nimport chalk from 'chalk';\n\nimport { memoize } from './fn';\nimport { learnMore } from './link';\nimport { attemptModification } from './modifyConfigAsync';\nimport prompt, { confirmAsync } from './prompts';\nimport {\n assertValidBundleId,\n assertValidPackage,\n getBundleIdWarningAsync,\n getPackageNameWarningAsync,\n getSanitizedBundleIdentifier,\n getSanitizedPackage,\n validateBundleId,\n validatePackage,\n validatePackageWithWarning,\n} from './validateApplicationId';\nimport { AppQuery } from '../api/graphql/queries/AppQuery';\nimport { getSettings } from '../api/user/UserSettings';\nimport * as Log from '../log';\n\nconst debug = require('debug')('expo:app-id') as typeof console.log;\n\nconst ANONYMOUS_USERNAME = 'anonymous';\n\nasync function getRecommendedReverseDomainNameSecondPartAsync(\n exp: ExpoConfig\n): Promise<string | null> {\n // Get the cached username.\n const cachedUsername = getSettings().read().auth?.username;\n if (cachedUsername) {\n return cachedUsername;\n }\n const easProjectId = exp.extra?.eas?.projectId;\n if (!easProjectId) {\n return null;\n }\n\n try {\n const app = await AppQuery.byIdAsync(easProjectId);\n return app.ownerAccount.name;\n } catch (e) {\n if (e instanceof GraphQLError || e instanceof CombinedError) {\n return null;\n }\n throw e;\n }\n}\n\nconst NO_BUNDLE_ID_MESSAGE = `Project must have a \\`ios.bundleIdentifier\\` set in the Expo config (app.json or app.config.js).`;\n\nconst NO_PACKAGE_MESSAGE = `Project must have a \\`android.package\\` set in the Expo config (app.json or app.config.js).`;\n\n/**\n * Get the bundle identifier from the Expo config or prompt the user to choose a new bundle identifier.\n * Prompted value will be validated against the App Store and a local regex.\n * If the project Expo config is a static JSON file, the bundle identifier will be updated in the config automatically.\n */\nexport async function getOrPromptForBundleIdentifierAsync(\n projectRoot: string,\n exp: ExpoConfig = getConfig(projectRoot).exp\n): Promise<string> {\n const current = exp.ios?.bundleIdentifier;\n if (current) {\n assertValidBundleId(current);\n return current;\n }\n\n return promptForBundleIdWithInitialAsync(\n projectRoot,\n exp,\n await getRecommendedBundleIdAsync(exp)\n );\n}\n\nconst memoLog = memoize(Log.log);\n\nasync function promptForBundleIdWithInitialAsync(\n projectRoot: string,\n exp: ExpoConfig,\n bundleIdentifier?: string\n): Promise<string> {\n if (!bundleIdentifier) {\n memoLog(\n chalk`\\n{bold 📝 iOS Bundle Identifier} {dim ${learnMore(\n 'https://expo.fyi/bundle-identifier'\n )}}\\n`\n );\n\n // Prompt the user for the bundle ID.\n // Even if the project is using a dynamic config we can still\n // prompt a better error message, recommend a default value, and help the user\n // validate their custom bundle ID upfront.\n const { input } = await prompt(\n {\n type: 'text',\n name: 'input',\n // The Apple helps people know this isn't an EAS feature.\n message: `What would you like your iOS bundle identifier to be?`,\n validate: validateBundleId,\n },\n {\n nonInteractiveHelp: NO_BUNDLE_ID_MESSAGE,\n }\n );\n bundleIdentifier = input as string;\n }\n\n // Warn the user if the bundle ID is already in use.\n const warning = await getBundleIdWarningAsync(bundleIdentifier);\n\n if (warning && !(await warnAndConfirmAsync(warning))) {\n // Cycle the Bundle ID prompt to try again.\n return await promptForBundleIdWithInitialAsync(projectRoot, exp);\n }\n\n // Apply the changes to the config.\n if (\n await attemptModification(\n projectRoot,\n {\n ios: { ...(exp.ios || {}), bundleIdentifier },\n },\n { ios: { bundleIdentifier } }\n )\n ) {\n Log.log(chalk.gray`\\u203A Apple bundle identifier: ${bundleIdentifier}`);\n }\n\n return bundleIdentifier;\n}\n\nasync function warnAndConfirmAsync(warning: string): Promise<boolean> {\n Log.log();\n Log.warn(warning);\n Log.log();\n if (\n !(await confirmAsync({\n message: `Continue?`,\n initial: true,\n }))\n ) {\n return false;\n }\n return true;\n}\n\n// Recommend a bundle identifier based on the account name of the owner of the project and project slug.\nasync function getRecommendedBundleIdAsync(exp: ExpoConfig): Promise<string | undefined> {\n const possibleIdFromAndroid = exp.android?.package\n ? getSanitizedBundleIdentifier(exp.android.package)\n : undefined;\n // Attempt to use the android package name first since it's convenient to have them aligned.\n if (possibleIdFromAndroid && validateBundleId(possibleIdFromAndroid)) {\n return possibleIdFromAndroid;\n } else {\n const recommendedReverseDomainNameSecondPart =\n (await getRecommendedReverseDomainNameSecondPartAsync(exp)) ?? ANONYMOUS_USERNAME;\n const possibleId = getSanitizedBundleIdentifier(\n `com.${recommendedReverseDomainNameSecondPart}.${exp.slug}`\n );\n if (validateBundleId(possibleId)) {\n return possibleId;\n }\n }\n\n return undefined;\n}\n\n// Recommend a package name based on the account name of the owner of the project and project slug.\nasync function getRecommendedPackageNameAsync(exp: ExpoConfig): Promise<string | undefined> {\n const possibleIdFromApple = exp.ios?.bundleIdentifier\n ? getSanitizedPackage(exp.ios.bundleIdentifier)\n : undefined;\n\n // Attempt to use the ios bundle id first since it's convenient to have them aligned.\n if (possibleIdFromApple && validatePackage(possibleIdFromApple)) {\n return possibleIdFromApple;\n } else {\n const recommendedReverseDomainNameSecondPart =\n (await getRecommendedReverseDomainNameSecondPartAsync(exp)) ?? ANONYMOUS_USERNAME;\n\n const possibleId = getSanitizedPackage(\n `com.${recommendedReverseDomainNameSecondPart}.${exp.slug}`\n );\n if (validatePackage(possibleId)) {\n return possibleId;\n } else {\n debug(\n `Recommended package name is invalid: \"${possibleId}\" (owner: ${recommendedReverseDomainNameSecondPart}, slug: ${exp.slug})`\n );\n }\n }\n return undefined;\n}\n\n/**\n * Get the package name from the Expo config or prompt the user to choose a new package name.\n * Prompted value will be validated against the Play Store and a local regex.\n * If the project Expo config is a static JSON file, the package name will be updated in the config automatically.\n */\nexport async function getOrPromptForPackageAsync(\n projectRoot: string,\n exp: ExpoConfig = getConfig(projectRoot).exp\n): Promise<string> {\n const current = exp.android?.package;\n if (current) {\n assertValidPackage(current);\n return current;\n }\n\n return await promptForPackageAsync(projectRoot, exp);\n}\n\nasync function promptForPackageAsync(projectRoot: string, exp: ExpoConfig): Promise<string> {\n return promptForPackageWithInitialAsync(\n projectRoot,\n exp,\n await getRecommendedPackageNameAsync(exp)\n );\n}\n\nasync function promptForPackageWithInitialAsync(\n projectRoot: string,\n exp: ExpoConfig,\n packageName?: string\n): Promise<string> {\n if (!packageName) {\n memoLog(\n chalk`\\n{bold 📝 Android package} {dim ${learnMore('https://expo.fyi/android-package')}}\\n`\n );\n\n // Prompt the user for the android package.\n // Even if the project is using a dynamic config we can still\n // prompt a better error message, recommend a default value, and help the user\n // validate their custom android package upfront.\n const { input } = await prompt(\n {\n type: 'text',\n name: 'input',\n message: `What would you like your Android package name to be?`,\n validate: validatePackageWithWarning,\n },\n {\n nonInteractiveHelp: NO_PACKAGE_MESSAGE,\n }\n );\n packageName = input as string;\n }\n\n // Warn the user if the package name is already in use.\n const warning = await getPackageNameWarningAsync(packageName);\n if (warning && !(await warnAndConfirmAsync(warning))) {\n // Cycle the Package name prompt to try again.\n return promptForPackageWithInitialAsync(projectRoot, exp);\n }\n\n // Apply the changes to the config.\n if (\n await attemptModification(\n projectRoot,\n {\n android: { ...(exp.android || {}), package: packageName },\n },\n {\n android: { package: packageName },\n }\n )\n ) {\n Log.log(chalk.gray`\\u203A Android package name: ${packageName}`);\n }\n\n return packageName;\n}\n"],"names":["getOrPromptForBundleIdentifierAsync","getOrPromptForPackageAsync","debug","require","ANONYMOUS_USERNAME","getRecommendedReverseDomainNameSecondPartAsync","exp","getSettings","cachedUsername","read","auth","username","easProjectId","extra","eas","projectId","app","AppQuery","byIdAsync","ownerAccount","name","e","GraphQLError","CombinedError","NO_BUNDLE_ID_MESSAGE","NO_PACKAGE_MESSAGE","projectRoot","getConfig","current","ios","bundleIdentifier","assertValidBundleId","promptForBundleIdWithInitialAsync","getRecommendedBundleIdAsync","memoLog","memoize","Log","log","chalk","learnMore","input","prompt","type","message","validate","validateBundleId","nonInteractiveHelp","warning","getBundleIdWarningAsync","warnAndConfirmAsync","attemptModification","gray","warn","confirmAsync","initial","possibleIdFromAndroid","android","package","getSanitizedBundleIdentifier","undefined","recommendedReverseDomainNameSecondPart","possibleId","slug","getRecommendedPackageNameAsync","possibleIdFromApple","getSanitizedPackage","validatePackage","assertValidPackage","promptForPackageAsync","promptForPackageWithInitialAsync","packageName","validatePackageWithWarning","getPackageNameWarningAsync"],"mappings":"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"}
@@ -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/${"1.0.0-canary-20250131-5c4e588"}`,
34
+ "user-agent": `expo-cli/${"1.0.0-canary-20250219-4a5dade"}`,
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: "1.0.0-canary-20250131-5c4e588"
82
+ version: "1.0.0-canary-20250219-4a5dade"
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": "1.0.0-canary-20250131-5c4e588",
3
+ "version": "1.0.0-canary-20250219-4a5dade",
4
4
  "description": "The Expo CLI",
5
5
  "main": "build/bin/cli",
6
6
  "bin": {
@@ -42,19 +42,20 @@
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": "11.0.0-canary-20250131-5c4e588",
46
- "@expo/config-plugins": "9.0.15-canary-20250131-5c4e588",
45
+ "@expo/config": "11.0.0-canary-20250219-4a5dade",
46
+ "@expo/config-plugins": "9.0.16-canary-20250219-4a5dade",
47
47
  "@expo/devcert": "^1.1.2",
48
- "@expo/env": "1.0.1-canary-20250131-5c4e588",
49
- "@expo/image-utils": "0.6.5-canary-20250131-5c4e588",
50
- "@expo/json-file": "9.0.2-canary-20250131-5c4e588",
51
- "@expo/metro-config": "0.20.0-canary-20250131-5c4e588",
52
- "@expo/osascript": "2.1.6-canary-20250131-5c4e588",
53
- "@expo/package-manager": "1.8.0-canary-20250131-5c4e588",
54
- "@expo/plist": "0.2.2-canary-20250131-5c4e588",
55
- "@expo/prebuild-config": "8.0.26-canary-20250131-5c4e588",
48
+ "@expo/env": "1.0.1-canary-20250219-4a5dade",
49
+ "@expo/image-utils": "0.6.6-canary-20250219-4a5dade",
50
+ "@expo/json-file": "9.0.3-canary-20250219-4a5dade",
51
+ "@expo/metro-config": "0.20.0-canary-20250219-4a5dade",
52
+ "@expo/osascript": "2.1.7-canary-20250219-4a5dade",
53
+ "@expo/package-manager": "1.8.0-canary-20250219-4a5dade",
54
+ "@expo/plist": "0.2.3-canary-20250219-4a5dade",
55
+ "@expo/prebuild-config": "8.0.28-canary-20250219-4a5dade",
56
56
  "@expo/rudder-sdk-node": "^1.1.1",
57
57
  "@expo/spawn-async": "^1.7.2",
58
+ "@expo/ws-tunnel": "^1.0.1",
58
59
  "@expo/xcpretty": "^4.3.0",
59
60
  "@react-native/dev-middleware": "0.76.5",
60
61
  "@urql/core": "^5.0.6",
@@ -64,7 +65,6 @@
64
65
  "better-opn": "~3.0.2",
65
66
  "bplist-creator": "0.0.7",
66
67
  "bplist-parser": "^0.3.1",
67
- "cacache": "^18.0.2",
68
68
  "chalk": "^4.0.0",
69
69
  "ci-info": "^3.3.0",
70
70
  "compression": "^1.7.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.2-canary-20250131-5c4e588",
122
+ "@expo/server": "0.5.2-canary-20250219-4a5dade",
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",
@@ -129,7 +129,6 @@
129
129
  "@taskr/esnext": "^1.1.0",
130
130
  "@taskr/watch": "^1.1.0",
131
131
  "@types/accepts": "^1.3.5",
132
- "@types/cacache": "^17.0.2",
133
132
  "@types/connect": "^3.4.33",
134
133
  "@types/cross-spawn": "^6.0.6",
135
134
  "@types/debug": "^4.1.7",
@@ -154,7 +153,7 @@
154
153
  "@types/ws": "^8.5.4",
155
154
  "devtools-protocol": "^0.0.1113120",
156
155
  "expo-atlas": "^0.4.0",
157
- "expo-module-scripts": "4.0.4-canary-20250131-5c4e588",
156
+ "expo-module-scripts": "4.0.5-canary-20250219-4a5dade",
158
157
  "find-process": "^1.4.7",
159
158
  "jest-runner-tsd": "^6.0.0",
160
159
  "klaw-sync": "^6.0.0",
@@ -166,5 +165,6 @@
166
165
  "taskr": "^1.1.0",
167
166
  "tree-kill": "^1.2.2",
168
167
  "tsd": "^0.28.1"
169
- }
168
+ },
169
+ "gitHead": "4a5daded61d3d8b9d501059039ac74c09c25675b"
170
170
  }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "getAccountUsername", {
6
- enumerable: true,
7
- get: ()=>getAccountUsername
8
- });
9
- const _userSettings = require("../api/user/UserSettings");
10
- const ANONYMOUS_USERNAME = "anonymous";
11
- function getAccountUsername(manifest = {}) {
12
- var ref;
13
- // TODO: Must match what's generated in Expo Go.
14
- const username = manifest.owner || process.env.EXPO_CLI_USERNAME || process.env.EAS_BUILD_USERNAME;
15
- if (username) {
16
- return username;
17
- }
18
- // Statically get the username from the global user state.
19
- return ((ref = (0, _userSettings.getSettings)().read().auth) == null ? void 0 : ref.username) || ANONYMOUS_USERNAME;
20
- }
21
-
22
- //# sourceMappingURL=getAccountUsername.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/getAccountUsername.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\n\nimport { getSettings } from '../api/user/UserSettings';\n\nconst ANONYMOUS_USERNAME = 'anonymous';\n\n/**\n * Get the owner of the project from the manifest if specified, falling back to a bunch of different things\n * which may or may not be the owner of the project.\n *\n * @deprecated This may not actually be the owner of the project. Prefer to fetch the project owner using\n * the EAS project ID, falling back to the `owner` field.\n */\nexport function getAccountUsername(manifest: Pick<ExpoConfig, 'owner'> = {}): string {\n // TODO: Must match what's generated in Expo Go.\n const username =\n manifest.owner || process.env.EXPO_CLI_USERNAME || process.env.EAS_BUILD_USERNAME;\n if (username) {\n return username;\n }\n // Statically get the username from the global user state.\n return getSettings().read().auth?.username || ANONYMOUS_USERNAME;\n}\n"],"names":["getAccountUsername","ANONYMOUS_USERNAME","manifest","getSettings","username","owner","process","env","EXPO_CLI_USERNAME","EAS_BUILD_USERNAME","read","auth"],"mappings":"AAAA;;;;+BAagBA,oBAAkB;;aAAlBA,kBAAkB;;8BAXN,0BAA0B;AAEtD,MAAMC,kBAAkB,GAAG,WAAW,AAAC;AAShC,SAASD,kBAAkB,CAACE,QAAmC,GAAG,EAAE,EAAU;QAQ5EC,GAAyB;IAPhC,gDAAgD;IAChD,MAAMC,QAAQ,GACZF,QAAQ,CAACG,KAAK,IAAIC,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAIF,OAAO,CAACC,GAAG,CAACE,kBAAkB,AAAC;IACpF,IAAIL,QAAQ,EAAE;QACZ,OAAOA,QAAQ,CAAC;IAClB,CAAC;IACD,0DAA0D;IAC1D,OAAOD,CAAAA,CAAAA,GAAyB,GAAzBA,IAAAA,aAAW,YAAA,GAAE,CAACO,IAAI,EAAE,CAACC,IAAI,SAAU,GAAnCR,KAAAA,CAAmC,GAAnCA,GAAyB,CAAEC,QAAQ,CAAA,IAAIH,kBAAkB,CAAC;AACnE,CAAC"}