@expo/cli 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bin/cli +5 -4
- package/build/bin/cli.map +1 -1
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/rest/cache/response.js.map +1 -1
- package/build/src/api/rest/client.js +2 -2
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/customize/typescript.js +3 -1
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +3 -2
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +44 -17
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +3 -3
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/exportApp.js +69 -80
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +81 -21
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportHermes.js +4 -4
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +55 -20
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +2 -2
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/fork-bundleAsync.js +12 -10
- package/build/src/export/fork-bundleAsync.js.map +1 -1
- package/build/src/export/index.js +9 -7
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +101 -0
- package/build/src/export/metroAssetLocalPath.js.map +1 -0
- package/build/src/export/persistMetroAssets.js +94 -21
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/resolveOptions.js +1 -1
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +9 -48
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +1 -1
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/writeContents.js +3 -2
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/install/applyPlugins.js +52 -0
- package/build/src/install/applyPlugins.js.map +1 -0
- package/build/src/install/checkPackages.js +2 -2
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +84 -0
- package/build/src/install/fixPackages.js.map +1 -0
- package/build/src/install/installAsync.js +32 -61
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +79 -0
- package/build/src/install/installExpoPackage.js.map +1 -0
- package/build/src/prebuild/clearNativeFolder.js +1 -1
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +3 -3
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +21 -30
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +37 -15
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +2 -2
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +6 -6
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +49 -36
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +2 -2
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +12 -4
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +20 -3
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +30 -11
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +14 -10
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +6 -1
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +63 -0
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -0
- package/build/src/start/server/getStaticRenderFunctions.js +21 -23
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +48 -64
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/bundleApiRoutes.js +4 -3
- package/build/src/start/server/metro/bundleApiRoutes.js.map +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +62 -45
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +149 -0
- package/build/src/start/server/metro/createJResolver.js.map +1 -0
- package/build/src/start/server/metro/createServerRouteMiddleware.js +13 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/externals.js +25 -3
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/inspector-proxy/device.js +3 -1
- package/build/src/start/server/metro/inspector-proxy/device.js.map +1 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerGetPossibleBreakpoints.js +3 -4
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeRuntimeCallFunctionOn.js +24 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/utils.js +11 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/utils.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/index.js +10 -7
- package/build/src/start/server/metro/inspector-proxy/index.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +32 -10
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/router.js +4 -1
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +19 -10
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +43 -0
- package/build/src/start/server/metro/serializeHtml.js.map +1 -0
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +1 -2
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +261 -201
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +114 -40
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +61 -0
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js +2 -2
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +15 -66
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js +30 -26
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +7 -7
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +5 -2
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +3 -2
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +8 -7
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +123 -0
- package/build/src/start/server/middleware/metroOptions.js.map +1 -0
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +1 -1
- package/build/src/utils/analytics/getMetroDebugProperties.js +1 -2
- package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
- package/build/src/utils/analytics/getMetroProperties.js +1 -2
- package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
- package/build/src/utils/analytics/rudderstackClient.js +2 -2
- package/build/src/utils/args.js +4 -2
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/cocoapods.js +1 -1
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/dir.js +18 -8
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/env.js +3 -0
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +2 -4
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/prompts.js +1 -28
- package/build/src/utils/prompts.js.map +1 -1
- package/package.json +15 -14
- package/static/shims/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js +13 -0
- package/static/shims/react-native-web/dist/exports/AppRegistry/AppContainer.js +12 -0
- package/build/src/start/server/metro/resolveFromProject.js +0 -90
- package/build/src/start/server/metro/resolveFromProject.js.map +0 -1
|
@@ -44,9 +44,8 @@ function getUsernameAsync(exp) {
|
|
|
44
44
|
}
|
|
45
45
|
const NO_BUNDLE_ID_MESSAGE = `Project must have a \`ios.bundleIdentifier\` set in the Expo config (app.json or app.config.js).`;
|
|
46
46
|
const NO_PACKAGE_MESSAGE = `Project must have a \`android.package\` set in the Expo config (app.json or app.config.js).`;
|
|
47
|
-
async function getOrPromptForBundleIdentifier(projectRoot) {
|
|
47
|
+
async function getOrPromptForBundleIdentifier(projectRoot, exp = (0, _config).getConfig(projectRoot).exp) {
|
|
48
48
|
var ref;
|
|
49
|
-
const { exp } = (0, _config).getConfig(projectRoot);
|
|
50
49
|
const current = (ref = exp.ios) == null ? void 0 : ref.bundleIdentifier;
|
|
51
50
|
if (current) {
|
|
52
51
|
(0, _validateApplicationId).assertValidBundleId(current);
|
|
@@ -134,9 +133,8 @@ async function getRecommendedPackageNameAsync(exp) {
|
|
|
134
133
|
}
|
|
135
134
|
return null;
|
|
136
135
|
}
|
|
137
|
-
async function getOrPromptForPackage(projectRoot) {
|
|
136
|
+
async function getOrPromptForPackage(projectRoot, exp = (0, _config).getConfig(projectRoot).exp) {
|
|
138
137
|
var ref;
|
|
139
|
-
const { exp } = (0, _config).getConfig(projectRoot);
|
|
140
138
|
const current = (ref = exp.android) == null ? void 0 : ref.package;
|
|
141
139
|
if (current) {
|
|
142
140
|
(0, _validateApplicationId).assertValidPackage(current);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/getOrPromptApplicationId.ts"],"sourcesContent":["import { ExpoConfig, getAccountUsername, getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { learnMore } from './link';\nimport { attemptModification } from './modifyConfigAsync';\nimport prompt, { confirmAsync } from './prompts';\nimport {\n assertValidBundleId,\n assertValidPackage,\n getBundleIdWarningAsync,\n getPackageNameWarningAsync,\n validateBundleId,\n validatePackage,\n validatePackageWithWarning,\n} from './validateApplicationId';\nimport * as Log from '../log';\n\nfunction getUsernameAsync(exp: ExpoConfig) {\n // TODO: Use XDL's UserManager\n // import { UserManager } from 'xdl';\n return getAccountUsername(exp);\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(projectRoot: string): Promise<string> {\n const { exp } = getConfig(projectRoot);\n\n const current = exp.ios?.bundleIdentifier;\n if (current) {\n assertValidBundleId(current);\n return current;\n }\n\n Log.log(\n chalk`\\n{bold 📝 iOS Bundle Identifier} {dim ${learnMore(\n 'https://expo.fyi/bundle-identifier'\n )}}\\n`\n );\n\n return await promptForBundleIdAsync(projectRoot, exp);\n}\n\nasync function promptForBundleIdAsync(projectRoot: string, exp: ExpoConfig): Promise<string> {\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 { bundleIdentifier } = await prompt(\n {\n type: 'text',\n name: 'bundleIdentifier',\n initial: (await getRecommendedBundleIdAsync(exp)) ?? undefined,\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\n // Warn the user if the bundle ID is already in use.\n const warning = await getBundleIdWarningAsync(bundleIdentifier);\n if (warning && !(await warnAndConfirmAsync(warning))) {\n // Cycle the Bundle ID prompt to try again.\n return await promptForBundleIdAsync(projectRoot, exp);\n }\n\n // Apply the changes to the config.\n await attemptModification(\n projectRoot,\n {\n ios: { ...(exp.ios || {}), bundleIdentifier },\n },\n { ios: { 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.\nasync function getRecommendedBundleIdAsync(exp: ExpoConfig): Promise<string | null> {\n // Attempt to use the android package name first since it's convenient to have them aligned.\n if (exp.android?.package && validateBundleId(exp.android?.package)) {\n return exp.android?.package;\n } else {\n const username = await getUsernameAsync(exp);\n const possibleId = `com.${username}.${exp.slug}`;\n if (username && validateBundleId(possibleId)) {\n return possibleId;\n }\n }\n\n return null;\n}\n\n// Recommend a package name based on the username and project slug.\nasync function getRecommendedPackageNameAsync(exp: ExpoConfig): Promise<string | null> {\n // Attempt to use the ios bundle id first since it's convenient to have them aligned.\n if (exp.ios?.bundleIdentifier && validatePackage(exp.ios.bundleIdentifier)) {\n return exp.ios.bundleIdentifier;\n } else {\n const username = await getUsernameAsync(exp);\n // It's common to use dashes in your node project name, strip them from the suggested package name.\n const possibleId = `com.${username}.${exp.slug}`.split('-').join('');\n if (username && validatePackage(possibleId)) {\n return possibleId;\n }\n }\n return null;\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(projectRoot: string): Promise<string> {\n const { exp } = getConfig(projectRoot);\n\n const current = exp.android?.package;\n if (current) {\n assertValidPackage(current);\n return current;\n }\n\n Log.log(\n chalk`\\n{bold 📝 Android package} {dim ${learnMore('https://expo.fyi/android-package')}}\\n`\n );\n\n return await promptForPackageAsync(projectRoot, exp);\n}\n\nasync function promptForPackageAsync(projectRoot: string, exp: ExpoConfig): Promise<string> {\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 { packageName } = await prompt(\n {\n type: 'text',\n name: 'packageName',\n initial: (await getRecommendedPackageNameAsync(exp)) ?? undefined,\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\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 await promptForPackageAsync(projectRoot, exp);\n }\n\n // Apply the changes to the config.\n await attemptModification(\n projectRoot,\n {\n android: { ...(exp.android || {}), package: packageName },\n },\n {\n android: { package: packageName },\n }\n );\n\n return packageName;\n}\n"],"names":["getOrPromptForBundleIdentifier","getOrPromptForPackage","Log","getUsernameAsync","exp","getAccountUsername","NO_BUNDLE_ID_MESSAGE","NO_PACKAGE_MESSAGE","projectRoot","getConfig","current","ios","bundleIdentifier","assertValidBundleId","log","chalk","learnMore","promptForBundleIdAsync","prompt","type","name","initial","getRecommendedBundleIdAsync","undefined","message","validate","validateBundleId","nonInteractiveHelp","warning","getBundleIdWarningAsync","warnAndConfirmAsync","attemptModification","warn","confirmAsync","android","package","username","possibleId","slug","getRecommendedPackageNameAsync","validatePackage","split","join","assertValidPackage","promptForPackageAsync","packageName","validatePackageWithWarning","getPackageNameWarningAsync"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/getOrPromptApplicationId.ts"],"sourcesContent":["import { ExpoConfig, getAccountUsername, getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { learnMore } from './link';\nimport { attemptModification } from './modifyConfigAsync';\nimport prompt, { confirmAsync } from './prompts';\nimport {\n assertValidBundleId,\n assertValidPackage,\n getBundleIdWarningAsync,\n getPackageNameWarningAsync,\n validateBundleId,\n validatePackage,\n validatePackageWithWarning,\n} from './validateApplicationId';\nimport * as Log from '../log';\n\nfunction getUsernameAsync(exp: ExpoConfig) {\n // TODO: Use XDL's UserManager\n // import { UserManager } from 'xdl';\n return getAccountUsername(exp);\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 Log.log(\n chalk`\\n{bold 📝 iOS Bundle Identifier} {dim ${learnMore(\n 'https://expo.fyi/bundle-identifier'\n )}}\\n`\n );\n\n return await promptForBundleIdAsync(projectRoot, exp);\n}\n\nasync function promptForBundleIdAsync(projectRoot: string, exp: ExpoConfig): Promise<string> {\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 { bundleIdentifier } = await prompt(\n {\n type: 'text',\n name: 'bundleIdentifier',\n initial: (await getRecommendedBundleIdAsync(exp)) ?? undefined,\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\n // Warn the user if the bundle ID is already in use.\n const warning = await getBundleIdWarningAsync(bundleIdentifier);\n if (warning && !(await warnAndConfirmAsync(warning))) {\n // Cycle the Bundle ID prompt to try again.\n return await promptForBundleIdAsync(projectRoot, exp);\n }\n\n // Apply the changes to the config.\n await attemptModification(\n projectRoot,\n {\n ios: { ...(exp.ios || {}), bundleIdentifier },\n },\n { ios: { 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.\nasync function getRecommendedBundleIdAsync(exp: ExpoConfig): Promise<string | null> {\n // Attempt to use the android package name first since it's convenient to have them aligned.\n if (exp.android?.package && validateBundleId(exp.android?.package)) {\n return exp.android?.package;\n } else {\n const username = await getUsernameAsync(exp);\n const possibleId = `com.${username}.${exp.slug}`;\n if (username && validateBundleId(possibleId)) {\n return possibleId;\n }\n }\n\n return null;\n}\n\n// Recommend a package name based on the username and project slug.\nasync function getRecommendedPackageNameAsync(exp: ExpoConfig): Promise<string | null> {\n // Attempt to use the ios bundle id first since it's convenient to have them aligned.\n if (exp.ios?.bundleIdentifier && validatePackage(exp.ios.bundleIdentifier)) {\n return exp.ios.bundleIdentifier;\n } else {\n const username = await getUsernameAsync(exp);\n // It's common to use dashes in your node project name, strip them from the suggested package name.\n const possibleId = `com.${username}.${exp.slug}`.split('-').join('');\n if (username && validatePackage(possibleId)) {\n return possibleId;\n }\n }\n return null;\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 Log.log(\n chalk`\\n{bold 📝 Android package} {dim ${learnMore('https://expo.fyi/android-package')}}\\n`\n );\n\n return await promptForPackageAsync(projectRoot, exp);\n}\n\nasync function promptForPackageAsync(projectRoot: string, exp: ExpoConfig): Promise<string> {\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 { packageName } = await prompt(\n {\n type: 'text',\n name: 'packageName',\n initial: (await getRecommendedPackageNameAsync(exp)) ?? undefined,\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\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 await promptForPackageAsync(projectRoot, exp);\n }\n\n // Apply the changes to the config.\n await attemptModification(\n projectRoot,\n {\n android: { ...(exp.android || {}), package: packageName },\n },\n {\n android: { package: packageName },\n }\n );\n\n return packageName;\n}\n"],"names":["getOrPromptForBundleIdentifier","getOrPromptForPackage","Log","getUsernameAsync","exp","getAccountUsername","NO_BUNDLE_ID_MESSAGE","NO_PACKAGE_MESSAGE","projectRoot","getConfig","current","ios","bundleIdentifier","assertValidBundleId","log","chalk","learnMore","promptForBundleIdAsync","prompt","type","name","initial","getRecommendedBundleIdAsync","undefined","message","validate","validateBundleId","nonInteractiveHelp","warning","getBundleIdWarningAsync","warnAndConfirmAsync","attemptModification","warn","confirmAsync","android","package","username","possibleId","slug","getRecommendedPackageNameAsync","validatePackage","split","join","assertValidPackage","promptForPackageAsync","packageName","validatePackageWithWarning","getPackageNameWarningAsync"],"mappings":"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"}
|
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, "PromptType", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _prompts.PromptType;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
5
|
exports.default = prompt;
|
|
12
6
|
exports.confirmAsync = confirmAsync;
|
|
13
7
|
exports.selectAsync = selectAsync;
|
|
@@ -18,7 +12,7 @@ exports.resumeInteractions = resumeInteractions;
|
|
|
18
12
|
exports.createSelectionFilter = createSelectionFilter;
|
|
19
13
|
exports.promptAsync = void 0;
|
|
20
14
|
var _assert = _interopRequireDefault(require("assert"));
|
|
21
|
-
var _prompts =
|
|
15
|
+
var _prompts = _interopRequireDefault(require("prompts"));
|
|
22
16
|
var _errors = require("./errors");
|
|
23
17
|
var _interactive = require("./interactive");
|
|
24
18
|
async function prompt(questions, { nonInteractiveHelp , ...options } = {}) {
|
|
@@ -54,27 +48,6 @@ function _interopRequireDefault(obj) {
|
|
|
54
48
|
default: obj
|
|
55
49
|
};
|
|
56
50
|
}
|
|
57
|
-
function _interopRequireWildcard(obj) {
|
|
58
|
-
if (obj && obj.__esModule) {
|
|
59
|
-
return obj;
|
|
60
|
-
} else {
|
|
61
|
-
var newObj = {};
|
|
62
|
-
if (obj != null) {
|
|
63
|
-
for(var key in obj){
|
|
64
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
65
|
-
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
66
|
-
if (desc.get || desc.set) {
|
|
67
|
-
Object.defineProperty(newObj, key, desc);
|
|
68
|
-
} else {
|
|
69
|
-
newObj[key] = obj[key];
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
newObj.default = obj;
|
|
75
|
-
return newObj;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
51
|
const debug = require("debug")("expo:utils:prompts");
|
|
79
52
|
/** Interaction observers for detecting when keystroke tracking should pause/resume. */ const listeners = [];
|
|
80
53
|
async function confirmAsync(questions, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/prompts.ts"],"sourcesContent":["import assert from 'assert';\nimport prompts, { Choice, Options, PromptObject
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/prompts.ts"],"sourcesContent":["import assert from 'assert';\nimport prompts, { Choice, Options, PromptObject } from 'prompts';\n\nimport { AbortCommandError, CommandError } from './errors';\nimport { isInteractive } from './interactive';\n\nconst debug = require('debug')('expo:utils:prompts') as typeof console.log;\n\nexport type Question<V extends string = string> = PromptObject<V> & {\n optionsPerPage?: number;\n};\n\nexport interface ExpoChoice<T> extends Choice {\n value: T;\n}\n\ntype PromptOptions = { nonInteractiveHelp?: string } & Options;\n\nexport type NamelessQuestion = Omit<Question<'value'>, 'name' | 'type'>;\n\ntype InteractionOptions = { pause: boolean; canEscape?: boolean };\n\ntype InteractionCallback = (options: InteractionOptions) => void;\n\n/** Interaction observers for detecting when keystroke tracking should pause/resume. */\nconst listeners: InteractionCallback[] = [];\n\nexport default async function prompt(\n questions: Question | Question[],\n { nonInteractiveHelp, ...options }: PromptOptions = {}\n) {\n questions = Array.isArray(questions) ? questions : [questions];\n if (!isInteractive() && questions.length !== 0) {\n let message = `Input is required, but 'npx expo' is in non-interactive mode.\\n`;\n if (nonInteractiveHelp) {\n message += nonInteractiveHelp;\n } else {\n const question = questions[0];\n const questionMessage =\n typeof question.message === 'function'\n ? question.message(undefined, {}, question)\n : question.message;\n\n message += `Required input:\\n${(questionMessage || '').trim().replace(/^/gm, '> ')}`;\n }\n throw new CommandError('NON_INTERACTIVE', message);\n }\n\n pauseInteractions();\n try {\n const results = await prompts(questions, {\n onCancel() {\n throw new AbortCommandError();\n },\n ...options,\n });\n\n return results;\n } finally {\n resumeInteractions();\n }\n}\n\n/**\n * Create a standard yes/no confirmation that can be cancelled.\n *\n * @param questions\n * @param options\n */\nexport async function confirmAsync(\n questions: NamelessQuestion,\n options?: PromptOptions\n): Promise<boolean> {\n const { value } = await prompt(\n {\n initial: true,\n ...questions,\n name: 'value',\n type: 'confirm',\n },\n options\n );\n return value ?? null;\n}\n\n/** Select an option from a list of options. */\nexport async function selectAsync<T>(\n message: string,\n choices: ExpoChoice<T>[],\n options?: PromptOptions\n): Promise<T> {\n const { value } = await prompt(\n {\n message,\n choices,\n name: 'value',\n type: 'select',\n },\n options\n );\n return value ?? null;\n}\n\nexport const promptAsync = prompt;\n\n/** Used to pause/resume interaction observers while prompting (made for TerminalUI). */\nexport function addInteractionListener(callback: InteractionCallback) {\n listeners.push(callback);\n}\n\nexport function removeInteractionListener(callback: InteractionCallback) {\n const listenerIndex = listeners.findIndex((_callback) => _callback === callback);\n assert(\n listenerIndex >= 0,\n 'removeInteractionListener(): cannot remove an unregistered event listener.'\n );\n listeners.splice(listenerIndex, 1);\n}\n\n/** Notify all listeners that keypress observations must pause. */\nexport function pauseInteractions(options: Omit<InteractionOptions, 'pause'> = {}) {\n debug('Interaction observers paused');\n for (const listener of listeners) {\n listener({ pause: true, ...options });\n }\n}\n\n/** Notify all listeners that keypress observations can start.. */\nexport function resumeInteractions(options: Omit<InteractionOptions, 'pause'> = {}) {\n debug('Interaction observers resumed');\n for (const listener of listeners) {\n listener({ pause: false, ...options });\n }\n}\n\nexport function createSelectionFilter(): (input: any, choices: Choice[]) => Promise<any> {\n function escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n return async (input: any, choices: Choice[]) => {\n try {\n const regex = new RegExp(escapeRegex(input), 'i');\n return choices.filter((choice: any) => regex.test(choice.title));\n } catch (error: any) {\n debug('Error filtering choices', error);\n return [];\n }\n };\n}\n"],"names":["prompt","confirmAsync","selectAsync","addInteractionListener","removeInteractionListener","pauseInteractions","resumeInteractions","createSelectionFilter","questions","nonInteractiveHelp","options","Array","isArray","isInteractive","length","message","question","questionMessage","undefined","trim","replace","CommandError","results","prompts","onCancel","AbortCommandError","debug","require","listeners","value","initial","name","type","choices","promptAsync","callback","push","listenerIndex","findIndex","_callback","assert","splice","listener","pause","escapeRegex","string","input","regex","RegExp","filter","choice","test","title","error"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "The Expo CLI",
|
|
5
5
|
"main": "build/bin/cli",
|
|
6
6
|
"bin": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"lint": "expo-module lint",
|
|
18
18
|
"typecheck": "expo-module typecheck",
|
|
19
19
|
"test": "expo-module test",
|
|
20
|
-
"test:e2e": "jest --config e2e/jest.config.js",
|
|
20
|
+
"test:e2e": "jest --config e2e/jest.config.js --runInBand",
|
|
21
21
|
"prepublishOnly": "expo-module prepublishOnly",
|
|
22
22
|
"expo-module": "expo-module",
|
|
23
23
|
"generate-graphql-code": "graphql-codegen --config graphql-codegen.yml"
|
|
@@ -39,29 +39,30 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@babel/runtime": "^7.20.0",
|
|
41
41
|
"@expo/code-signing-certificates": "0.0.5",
|
|
42
|
-
"@expo/server": "^0.2.0",
|
|
43
42
|
"@expo/config": "~8.4.0",
|
|
44
|
-
"@expo/config-plugins": "~7.
|
|
43
|
+
"@expo/config-plugins": "~7.7.0",
|
|
45
44
|
"@expo/devcert": "^1.0.0",
|
|
46
45
|
"@expo/env": "~0.1.0",
|
|
47
46
|
"@expo/json-file": "^8.2.37",
|
|
48
|
-
"@expo/metro-config": "~0.
|
|
47
|
+
"@expo/metro-config": "~0.15.0",
|
|
49
48
|
"@expo/osascript": "^2.0.31",
|
|
50
49
|
"@expo/package-manager": "^1.1.1",
|
|
51
50
|
"@expo/plist": "^0.0.20",
|
|
52
|
-
"@expo/prebuild-config": "6.
|
|
51
|
+
"@expo/prebuild-config": "6.6.0",
|
|
53
52
|
"@expo/rudder-sdk-node": "1.1.1",
|
|
53
|
+
"@expo/server": "^0.2.0",
|
|
54
54
|
"@expo/spawn-async": "1.5.0",
|
|
55
55
|
"@expo/xcpretty": "^4.2.1",
|
|
56
56
|
"@urql/core": "2.3.6",
|
|
57
57
|
"@urql/exchange-retry": "0.3.0",
|
|
58
58
|
"accepts": "^1.3.8",
|
|
59
|
-
"arg": "
|
|
59
|
+
"arg": "5.0.2",
|
|
60
60
|
"better-opn": "~3.0.2",
|
|
61
61
|
"bplist-parser": "^0.3.1",
|
|
62
62
|
"cacache": "^15.3.0",
|
|
63
63
|
"chalk": "^4.0.0",
|
|
64
64
|
"ci-info": "^3.3.0",
|
|
65
|
+
"connect": "^3.7.0",
|
|
65
66
|
"debug": "^4.3.4",
|
|
66
67
|
"env-editor": "^0.4.1",
|
|
67
68
|
"form-data": "^3.0.1",
|
|
@@ -73,6 +74,8 @@
|
|
|
73
74
|
"graphql-tag": "^2.10.1",
|
|
74
75
|
"https-proxy-agent": "^5.0.1",
|
|
75
76
|
"internal-ip": "4.3.0",
|
|
77
|
+
"is-docker": "^2.0.0",
|
|
78
|
+
"is-wsl": "^2.1.1",
|
|
76
79
|
"js-yaml": "^3.13.1",
|
|
77
80
|
"json-schema-deref-sync": "^0.13.0",
|
|
78
81
|
"md5hex": "^1.0.0",
|
|
@@ -81,6 +84,7 @@
|
|
|
81
84
|
"node-fetch": "^2.6.7",
|
|
82
85
|
"node-forge": "^1.3.1",
|
|
83
86
|
"npm-package-arg": "^7.0.0",
|
|
87
|
+
"open": "^8.3.0",
|
|
84
88
|
"ora": "3.4.0",
|
|
85
89
|
"pretty-bytes": "5.6.0",
|
|
86
90
|
"progress": "2.0.3",
|
|
@@ -90,22 +94,19 @@
|
|
|
90
94
|
"requireg": "^0.2.2",
|
|
91
95
|
"resolve": "^1.22.2",
|
|
92
96
|
"resolve-from": "^5.0.0",
|
|
97
|
+
"resolve.exports": "^2.0.2",
|
|
93
98
|
"semver": "^7.5.3",
|
|
94
99
|
"send": "^0.18.0",
|
|
95
100
|
"slugify": "^1.3.4",
|
|
96
101
|
"structured-headers": "^0.4.1",
|
|
97
102
|
"tar": "^6.0.5",
|
|
103
|
+
"temp-dir": "^2.0.0",
|
|
98
104
|
"tempy": "^0.7.1",
|
|
99
105
|
"terminal-link": "^2.1.1",
|
|
100
106
|
"text-table": "^0.2.0",
|
|
101
107
|
"url-join": "4.0.0",
|
|
102
108
|
"wrap-ansi": "^7.0.0",
|
|
103
|
-
"ws": "^8.12.1"
|
|
104
|
-
"connect": "^3.7.0",
|
|
105
|
-
"is-docker": "^2.0.0",
|
|
106
|
-
"is-wsl": "^2.1.1",
|
|
107
|
-
"open": "^8.3.0",
|
|
108
|
-
"temp-dir": "^2.0.0"
|
|
109
|
+
"ws": "^8.12.1"
|
|
109
110
|
},
|
|
110
111
|
"taskr": {
|
|
111
112
|
"requires": [
|
|
@@ -158,5 +159,5 @@
|
|
|
158
159
|
"tree-kill": "^1.2.2",
|
|
159
160
|
"tsd": "^0.28.1"
|
|
160
161
|
},
|
|
161
|
-
"gitHead": "
|
|
162
|
+
"gitHead": "3142a086578deffd8704a8f1b6f0f661527d836c"
|
|
162
163
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// NOTE(EvanBacon): `react-native-web` adds a extra `div`s around the root HTML, these
|
|
2
|
+
// make static rendering much harder as we expect the root element to be `<html>`.
|
|
3
|
+
// This resolution will alias to a simple in-out component to avoid the extra HTML.
|
|
4
|
+
function AppContainer({ children }) {
|
|
5
|
+
return children;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
9
|
+
AppContainer.displayName = 'AppContainer';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
module.exports = AppContainer;
|
|
13
|
+
module.exports.default = AppContainer;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// NOTE(EvanBacon): `react-native-web` adds a extra `div`s around the root HTML, these
|
|
2
|
+
// make static rendering much harder as we expect the root element to be `<html>`.
|
|
3
|
+
// This resolution will alias to a simple in-out component to avoid the extra HTML.
|
|
4
|
+
function AppContainer({ children }) {
|
|
5
|
+
return children;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
9
|
+
AppContainer.displayName = 'AppContainer';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default AppContainer;
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
exports.importCliServerApiFromProject = importCliServerApiFromProject;
|
|
6
|
-
exports.importMetroSourceMapComposeSourceMapsFromProject = importMetroSourceMapComposeSourceMapsFromProject;
|
|
7
|
-
exports.resolveFromProject = resolveFromProject;
|
|
8
|
-
exports.importMetroFromProject = importMetroFromProject;
|
|
9
|
-
exports.importMetroServerFromProject = importMetroServerFromProject;
|
|
10
|
-
exports.importMetroCreateWebsocketServerFromProject = importMetroCreateWebsocketServerFromProject;
|
|
11
|
-
exports.importMetroHmrServerFromProject = importMetroHmrServerFromProject;
|
|
12
|
-
exports.importExpoMetroConfig = importExpoMetroConfig;
|
|
13
|
-
exports.importFromProjectOrFallback = importFromProjectOrFallback;
|
|
14
|
-
exports.importMetroResolverFromProject = importMetroResolverFromProject;
|
|
15
|
-
exports.importMetroInspectorProxyFromProject = importMetroInspectorProxyFromProject;
|
|
16
|
-
exports.importMetroInspectorDeviceFromProject = importMetroInspectorDeviceFromProject;
|
|
17
|
-
exports.importCliSaveAssetsFromProject = importCliSaveAssetsFromProject;
|
|
18
|
-
exports.resolveMetroVersionFromProject = resolveMetroVersionFromProject;
|
|
19
|
-
var _resolveFrom = _interopRequireDefault(require("resolve-from"));
|
|
20
|
-
function _interopRequireDefault(obj) {
|
|
21
|
-
return obj && obj.__esModule ? obj : {
|
|
22
|
-
default: obj
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
const debug = require("debug")("expo:metro:import");
|
|
26
|
-
// These resolvers enable us to test the CLI in older projects.
|
|
27
|
-
// We may be able to get rid of this in the future.
|
|
28
|
-
// TODO: Maybe combine with AsyncResolver?
|
|
29
|
-
class MetroImportError extends Error {
|
|
30
|
-
constructor(projectRoot, moduleId){
|
|
31
|
-
super(`Missing package "${moduleId}" in the project at: ${projectRoot}\n` + 'This usually means "react-native" is not installed. ' + 'Please verify that dependencies in package.json include "react-native" ' + "and run `yarn` or `npm install`.");
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function importCliServerApiFromProject(projectRoot) {
|
|
35
|
-
return importFromProject(projectRoot, "@react-native-community/cli-server-api");
|
|
36
|
-
}
|
|
37
|
-
function importMetroSourceMapComposeSourceMapsFromProject(projectRoot) {
|
|
38
|
-
return importFromProject(projectRoot, "metro-source-map/src/composeSourceMaps");
|
|
39
|
-
}
|
|
40
|
-
function resolveFromProject(projectRoot, moduleId) {
|
|
41
|
-
const resolvedPath = _resolveFrom.default.silent(projectRoot, moduleId);
|
|
42
|
-
if (!resolvedPath) {
|
|
43
|
-
throw new MetroImportError(projectRoot, moduleId);
|
|
44
|
-
}
|
|
45
|
-
return resolvedPath;
|
|
46
|
-
}
|
|
47
|
-
function importFromProject(projectRoot, moduleId) {
|
|
48
|
-
return require(resolveFromProject(projectRoot, moduleId));
|
|
49
|
-
}
|
|
50
|
-
function importMetroFromProject(projectRoot) {
|
|
51
|
-
return importFromProject(projectRoot, "metro");
|
|
52
|
-
}
|
|
53
|
-
function importMetroServerFromProject(projectRoot) {
|
|
54
|
-
return importFromProject(projectRoot, "metro/src/Server");
|
|
55
|
-
}
|
|
56
|
-
function importMetroCreateWebsocketServerFromProject(projectRoot) {
|
|
57
|
-
return importFromProject(projectRoot, "metro/src/lib/createWebsocketServer");
|
|
58
|
-
}
|
|
59
|
-
function importMetroHmrServerFromProject(projectRoot) {
|
|
60
|
-
return importFromProject(projectRoot, "metro/src/HmrServer");
|
|
61
|
-
}
|
|
62
|
-
function importExpoMetroConfig(projectRoot) {
|
|
63
|
-
return importFromProjectOrFallback(projectRoot, "@expo/metro-config");
|
|
64
|
-
}
|
|
65
|
-
function importFromProjectOrFallback(projectRoot, moduleId) {
|
|
66
|
-
const resolvedPath = _resolveFrom.default.silent(projectRoot, moduleId);
|
|
67
|
-
if (!resolvedPath) {
|
|
68
|
-
debug(`requiring "${moduleId}" relative to the CLI`);
|
|
69
|
-
return require(require.resolve(moduleId));
|
|
70
|
-
}
|
|
71
|
-
debug(`requiring "${moduleId}" from the project:`, resolvedPath);
|
|
72
|
-
return require(resolvedPath);
|
|
73
|
-
}
|
|
74
|
-
function importMetroResolverFromProject(projectRoot) {
|
|
75
|
-
return importFromProject(projectRoot, "metro-resolver");
|
|
76
|
-
}
|
|
77
|
-
function importMetroInspectorProxyFromProject(projectRoot) {
|
|
78
|
-
return importFromProject(projectRoot, "metro-inspector-proxy");
|
|
79
|
-
}
|
|
80
|
-
function importMetroInspectorDeviceFromProject(projectRoot) {
|
|
81
|
-
return importFromProject(projectRoot, "metro-inspector-proxy/src/Device");
|
|
82
|
-
}
|
|
83
|
-
function importCliSaveAssetsFromProject(projectRoot) {
|
|
84
|
-
return importFromProject(projectRoot, "@react-native-community/cli-plugin-metro/build/commands/bundle/saveAssets").default;
|
|
85
|
-
}
|
|
86
|
-
function resolveMetroVersionFromProject(projectRoot) {
|
|
87
|
-
return importFromProject(projectRoot, "metro/package.json").version;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
//# sourceMappingURL=resolveFromProject.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/metro/resolveFromProject.ts"],"sourcesContent":["import resolveFrom from 'resolve-from';\n\nconst debug = require('debug')('expo:metro:import');\n\n// These resolvers enable us to test the CLI in older projects.\n// We may be able to get rid of this in the future.\n// TODO: Maybe combine with AsyncResolver?\nclass MetroImportError extends Error {\n constructor(projectRoot: string, moduleId: string) {\n super(\n `Missing package \"${moduleId}\" in the project at: ${projectRoot}\\n` +\n 'This usually means \"react-native\" is not installed. ' +\n 'Please verify that dependencies in package.json include \"react-native\" ' +\n 'and run `yarn` or `npm install`.'\n );\n }\n}\n\nexport function importCliServerApiFromProject(\n projectRoot: string\n): typeof import('@react-native-community/cli-server-api') {\n return importFromProject(projectRoot, '@react-native-community/cli-server-api');\n}\n\nexport function importMetroSourceMapComposeSourceMapsFromProject(\n projectRoot: string\n): typeof import('metro-source-map').composeSourceMaps {\n return importFromProject(projectRoot, 'metro-source-map/src/composeSourceMaps');\n}\n\nexport function resolveFromProject(projectRoot: string, moduleId: string) {\n const resolvedPath = resolveFrom.silent(projectRoot, moduleId);\n if (!resolvedPath) {\n throw new MetroImportError(projectRoot, moduleId);\n }\n return resolvedPath;\n}\n\nfunction importFromProject(projectRoot: string, moduleId: string) {\n return require(resolveFromProject(projectRoot, moduleId));\n}\n\n/** Import `metro` from the project. */\nexport function importMetroFromProject(projectRoot: string): typeof import('metro') {\n return importFromProject(projectRoot, 'metro');\n}\nexport function importMetroServerFromProject(projectRoot: string): typeof import('metro').Server {\n return importFromProject(projectRoot, 'metro/src/Server');\n}\nexport function importMetroCreateWebsocketServerFromProject(\n projectRoot: string\n): typeof import('metro/src/lib/createWebsocketServer').createWebsocketServer {\n return importFromProject(projectRoot, 'metro/src/lib/createWebsocketServer');\n}\nexport function importMetroHmrServerFromProject(\n projectRoot: string\n): typeof import('metro/src/HmrServer').MetroHmrServer {\n return importFromProject(projectRoot, 'metro/src/HmrServer');\n}\n\nexport function importExpoMetroConfig(projectRoot: string) {\n return importFromProjectOrFallback<typeof import('@expo/metro-config')>(\n projectRoot,\n '@expo/metro-config'\n );\n}\n\n/**\n * Attempt to use the local version of a module or fallback on the CLI version.\n * This should only ever happen when testing Expo CLI in development.\n */\nexport function importFromProjectOrFallback<TModule>(\n projectRoot: string,\n moduleId: string\n): TModule {\n const resolvedPath = resolveFrom.silent(projectRoot, moduleId);\n if (!resolvedPath) {\n debug(`requiring \"${moduleId}\" relative to the CLI`);\n return require(require.resolve(moduleId));\n }\n debug(`requiring \"${moduleId}\" from the project:`, resolvedPath);\n return require(resolvedPath);\n}\n\n/** Import `metro-resolver` from the project. */\nexport function importMetroResolverFromProject(\n projectRoot: string\n): typeof import('metro-resolver') {\n return importFromProject(projectRoot, 'metro-resolver');\n}\n\n/** Import `metro-inspector-proxy` from the project. */\nexport function importMetroInspectorProxyFromProject(\n projectRoot: string\n): typeof import('metro-inspector-proxy') {\n return importFromProject(projectRoot, 'metro-inspector-proxy');\n}\n\n/** Import `metro-inspector-proxy/src/Device` from the project. */\nexport function importMetroInspectorDeviceFromProject(\n projectRoot: string\n): typeof import('metro-inspector-proxy/src/Device') {\n return importFromProject(projectRoot, 'metro-inspector-proxy/src/Device');\n}\n\n/**\n * Import the internal `saveAssets()` function from `react-native` for the purpose\n * of saving production assets as-is instead of converting them to a hash.\n */\nexport function importCliSaveAssetsFromProject(\n projectRoot: string\n): typeof import('@react-native-community/cli-plugin-metro/build/commands/bundle/saveAssets').default {\n return importFromProject(\n projectRoot,\n '@react-native-community/cli-plugin-metro/build/commands/bundle/saveAssets'\n ).default;\n}\n\n/** Resolve the installed Metro version from project */\nexport function resolveMetroVersionFromProject(projectRoot: string): string {\n return importFromProject(projectRoot, 'metro/package.json').version;\n}\n"],"names":["importCliServerApiFromProject","importMetroSourceMapComposeSourceMapsFromProject","resolveFromProject","importMetroFromProject","importMetroServerFromProject","importMetroCreateWebsocketServerFromProject","importMetroHmrServerFromProject","importExpoMetroConfig","importFromProjectOrFallback","importMetroResolverFromProject","importMetroInspectorProxyFromProject","importMetroInspectorDeviceFromProject","importCliSaveAssetsFromProject","resolveMetroVersionFromProject","debug","require","MetroImportError","Error","constructor","projectRoot","moduleId","importFromProject","resolvedPath","resolveFrom","silent","resolve","default","version"],"mappings":"AAAA;;;;QAkBgBA,6BAA6B,GAA7BA,6BAA6B;QAM7BC,gDAAgD,GAAhDA,gDAAgD;QAMhDC,kBAAkB,GAAlBA,kBAAkB;QAalBC,sBAAsB,GAAtBA,sBAAsB;QAGtBC,4BAA4B,GAA5BA,4BAA4B;QAG5BC,2CAA2C,GAA3CA,2CAA2C;QAK3CC,+BAA+B,GAA/BA,+BAA+B;QAM/BC,qBAAqB,GAArBA,qBAAqB;QAWrBC,2BAA2B,GAA3BA,2BAA2B;QAc3BC,8BAA8B,GAA9BA,8BAA8B;QAO9BC,oCAAoC,GAApCA,oCAAoC;QAOpCC,qCAAqC,GAArCA,qCAAqC;QAUrCC,8BAA8B,GAA9BA,8BAA8B;QAU9BC,8BAA8B,GAA9BA,8BAA8B;AAvHtB,IAAA,YAAc,kCAAd,cAAc,EAAA;;;;;;AAEtC,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,AAAC;AAEpD,+DAA+D;AAC/D,mDAAmD;AACnD,0CAA0C;AAC1C,MAAMC,gBAAgB,SAASC,KAAK;IAClCC,YAAYC,WAAmB,EAAEC,QAAgB,CAAE;QACjD,KAAK,CACH,CAAC,iBAAiB,EAAEA,QAAQ,CAAC,qBAAqB,EAAED,WAAW,CAAC,EAAE,CAAC,GACjE,sDAAsD,GACtD,yEAAyE,GACzE,kCAAkC,CACrC,CAAC;KACH;CACF;AAEM,SAASnB,6BAA6B,CAC3CmB,WAAmB,EACsC;IACzD,OAAOE,iBAAiB,CAACF,WAAW,EAAE,wCAAwC,CAAC,CAAC;CACjF;AAEM,SAASlB,gDAAgD,CAC9DkB,WAAmB,EACkC;IACrD,OAAOE,iBAAiB,CAACF,WAAW,EAAE,wCAAwC,CAAC,CAAC;CACjF;AAEM,SAASjB,kBAAkB,CAACiB,WAAmB,EAAEC,QAAgB,EAAE;IACxE,MAAME,YAAY,GAAGC,YAAW,QAAA,CAACC,MAAM,CAACL,WAAW,EAAEC,QAAQ,CAAC,AAAC;IAC/D,IAAI,CAACE,YAAY,EAAE;QACjB,MAAM,IAAIN,gBAAgB,CAACG,WAAW,EAAEC,QAAQ,CAAC,CAAC;KACnD;IACD,OAAOE,YAAY,CAAC;CACrB;AAED,SAASD,iBAAiB,CAACF,WAAmB,EAAEC,QAAgB,EAAE;IAChE,OAAOL,OAAO,CAACb,kBAAkB,CAACiB,WAAW,EAAEC,QAAQ,CAAC,CAAC,CAAC;CAC3D;AAGM,SAASjB,sBAAsB,CAACgB,WAAmB,EAA0B;IAClF,OAAOE,iBAAiB,CAACF,WAAW,EAAE,OAAO,CAAC,CAAC;CAChD;AACM,SAASf,4BAA4B,CAACe,WAAmB,EAAiC;IAC/F,OAAOE,iBAAiB,CAACF,WAAW,EAAE,kBAAkB,CAAC,CAAC;CAC3D;AACM,SAASd,2CAA2C,CACzDc,WAAmB,EACyD;IAC5E,OAAOE,iBAAiB,CAACF,WAAW,EAAE,qCAAqC,CAAC,CAAC;CAC9E;AACM,SAASb,+BAA+B,CAC7Ca,WAAmB,EACkC;IACrD,OAAOE,iBAAiB,CAACF,WAAW,EAAE,qBAAqB,CAAC,CAAC;CAC9D;AAEM,SAASZ,qBAAqB,CAACY,WAAmB,EAAE;IACzD,OAAOX,2BAA2B,CAChCW,WAAW,EACX,oBAAoB,CACrB,CAAC;CACH;AAMM,SAASX,2BAA2B,CACzCW,WAAmB,EACnBC,QAAgB,EACP;IACT,MAAME,YAAY,GAAGC,YAAW,QAAA,CAACC,MAAM,CAACL,WAAW,EAAEC,QAAQ,CAAC,AAAC;IAC/D,IAAI,CAACE,YAAY,EAAE;QACjBR,KAAK,CAAC,CAAC,WAAW,EAAEM,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACrD,OAAOL,OAAO,CAACA,OAAO,CAACU,OAAO,CAACL,QAAQ,CAAC,CAAC,CAAC;KAC3C;IACDN,KAAK,CAAC,CAAC,WAAW,EAAEM,QAAQ,CAAC,mBAAmB,CAAC,EAAEE,YAAY,CAAC,CAAC;IACjE,OAAOP,OAAO,CAACO,YAAY,CAAC,CAAC;CAC9B;AAGM,SAASb,8BAA8B,CAC5CU,WAAmB,EACc;IACjC,OAAOE,iBAAiB,CAACF,WAAW,EAAE,gBAAgB,CAAC,CAAC;CACzD;AAGM,SAAST,oCAAoC,CAClDS,WAAmB,EACqB;IACxC,OAAOE,iBAAiB,CAACF,WAAW,EAAE,uBAAuB,CAAC,CAAC;CAChE;AAGM,SAASR,qCAAqC,CACnDQ,WAAmB,EACgC;IACnD,OAAOE,iBAAiB,CAACF,WAAW,EAAE,kCAAkC,CAAC,CAAC;CAC3E;AAMM,SAASP,8BAA8B,CAC5CO,WAAmB,EACiF;IACpG,OAAOE,iBAAiB,CACtBF,WAAW,EACX,2EAA2E,CAC5E,CAACO,OAAO,CAAC;CACX;AAGM,SAASb,8BAA8B,CAACM,WAAmB,EAAU;IAC1E,OAAOE,iBAAiB,CAACF,WAAW,EAAE,oBAAoB,CAAC,CAACQ,OAAO,CAAC;CACrE"}
|