@expo/cli 0.17.9 → 0.18.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 +11 -7
- package/build/bin/cli.map +1 -1
- package/build/src/api/getExpoSchema.js +23 -5
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/graphql/client.js +28 -10
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +16 -4
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +8 -2
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +8 -2
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemCache.js +21 -9
- package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
- package/build/src/api/rest/cache/response.js +9 -3
- package/build/src/api/rest/cache/response.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +32 -8
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +23 -5
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +9 -4
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +8 -2
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/settings.js +8 -2
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +18 -6
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +26 -8
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +17 -5
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +32 -8
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +17 -5
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +19 -12
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +25 -7
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +9 -3
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +8 -2
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +16 -4
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +10 -4
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/templates.js +33 -9
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +8 -2
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +8 -2
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +58 -18
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/index.js +17 -5
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +8 -2
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +16 -4
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +32 -12
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +27 -9
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +10 -2
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportHermes.js +29 -17
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +69 -37
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +33 -9
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/fork-bundleAsync.js +61 -16
- package/build/src/export/fork-bundleAsync.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +8 -2
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +15 -3
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/index.js +11 -5
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +9 -3
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +27 -15
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +18 -6
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +8 -2
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +43 -19
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +16 -4
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +9 -3
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/install/applyPlugins.js +8 -2
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +18 -6
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +8 -2
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +14 -8
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +27 -9
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +17 -5
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +17 -5
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/log.js +9 -3
- package/build/src/log.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +37 -13
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +16 -4
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +29 -11
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +24 -6
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +14 -8
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +9 -3
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +119 -0
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
- package/build/src/prebuild/resolveOptions.js +32 -8
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +44 -14
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +18 -2
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +49 -13
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +16 -4
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/run/android/index.js +20 -4
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +55 -0
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
- package/build/src/run/android/resolveInstallApkName.js +18 -6
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +10 -4
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +5 -3
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +13 -4
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +15 -3
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +10 -4
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +8 -2
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +57 -21
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +25 -7
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +10 -4
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +34 -10
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +16 -4
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +8 -2
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +17 -5
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +17 -5
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +25 -7
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +24 -6
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +8 -2
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +16 -4
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +8 -2
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +16 -4
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +16 -4
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +17 -5
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +8 -2
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +9 -3
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +25 -7
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +22 -10
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +19 -7
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +17 -5
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +9 -3
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +1 -2
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +27 -9
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +8 -2
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +10 -2
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/startBundler.js +16 -4
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/start/detectDevClient.js +29 -0
- package/build/src/start/detectDevClient.js.map +1 -0
- package/build/src/start/doctor/SecurityBinPrerequisite.js +8 -2
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +16 -4
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +16 -4
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +79 -29
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +24 -6
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +25 -7
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +27 -9
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +24 -6
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +8 -2
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +25 -7
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +32 -21
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +33 -9
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +18 -6
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +29 -11
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +18 -6
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +17 -11
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +27 -9
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +17 -11
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +8 -2
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +9 -3
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +8 -2
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +30 -14
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +33 -13
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +17 -5
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +13 -7
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +19 -7
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +34 -10
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +16 -4
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +21 -4
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +32 -8
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +23 -6
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +10 -4
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +26 -8
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +50 -18
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/assertSystemRequirements.js +4 -3
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +16 -4
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +8 -2
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +9 -3
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +12 -6
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +40 -10
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +16 -4
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/dotExpo.js +27 -9
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/resolveOptions.js +33 -15
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +34 -10
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +16 -4
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +28 -10
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +16 -4
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +9 -3
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +26 -8
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +19 -6
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +91 -55
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +231 -83
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +30 -15
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +26 -8
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +56 -20
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +90 -45
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +29 -28
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +27 -0
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +11 -8
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +63 -0
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +1 -6
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +8 -5
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/PageReload.js +7 -6
- package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +25 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +22 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +28 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +10 -6
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js +14 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
- package/build/src/start/server/metro/debugging/types.js.map +1 -0
- package/build/src/start/server/metro/externals.js +51 -64
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +8 -2
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +8 -2
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +34 -10
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +96 -30
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +40 -21
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +82 -0
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +8 -2
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +44 -17
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +56 -14
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +25 -12
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +8 -2
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +148 -46
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +31 -13
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +22 -10
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +16 -4
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +42 -12
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +8 -2
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +41 -11
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +40 -10
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +24 -6
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +8 -2
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +24 -6
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +25 -8
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js +10 -4
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +24 -6
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +33 -9
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +27 -11
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +33 -9
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +12 -2
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +17 -5
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +8 -2
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +8 -2
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +37 -13
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +16 -4
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +91 -37
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +27 -9
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +27 -9
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +26 -8
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +36 -12
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +17 -5
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +8 -2
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +35 -11
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +36 -11
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +32 -8
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/analytics/getDevClientProperties.js +26 -8
- package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
- package/build/src/utils/analytics/metroDebuggerMiddleware.js +2 -2
- package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
- package/build/src/utils/args.js +32 -8
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/cocoapods.js +64 -28
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +79 -29
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +24 -69
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/dir.js +33 -26
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +40 -10
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +26 -11
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +18 -6
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +40 -31
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +20 -5
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/findUp.js +18 -6
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +19 -7
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +18 -6
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +18 -6
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +9 -3
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/ip.js +8 -2
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +16 -4
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/link.js +18 -6
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +25 -13
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +18 -6
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +8 -2
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/nodeEnv.js +2 -0
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +23 -5
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +64 -17
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/open.js +9 -3
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +16 -4
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +24 -6
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +22 -10
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +8 -2
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +8 -2
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +16 -4
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/scheme.js +75 -23
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/tar.js +16 -4
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/DetachedClient.js +87 -0
- package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
- package/build/src/utils/telemetry/RudderClient.js +98 -0
- package/build/src/utils/telemetry/RudderClient.js.map +1 -0
- package/build/src/utils/telemetry/flushDetached.js +43 -0
- package/build/src/utils/telemetry/flushDetached.js.map +1 -0
- package/build/src/utils/telemetry/getContext.js +92 -0
- package/build/src/utils/telemetry/getContext.js.map +1 -0
- package/build/src/utils/telemetry/index.js +32 -0
- package/build/src/utils/telemetry/index.js.map +1 -0
- package/build/src/utils/telemetry/types.js +6 -0
- package/build/src/utils/telemetry/types.js.map +1 -0
- package/build/src/utils/tsconfig/evaluateTsConfig.js +16 -4
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -6
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +10 -4
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +19 -10
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +18 -6
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +8 -2
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +15 -16
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
- package/build/src/run/android/resolveGradleProps.js +0 -37
- package/build/src/run/android/resolveGradleProps.js.map +0 -1
- package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
- package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
- package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
- package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
- package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
- package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
- package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
- package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
- package/build/src/utils/analytics/rudderstackClient.js +0 -147
- package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
- /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/webpack/WebpackBundlerDevServer.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { Application } from 'express';\nimport fs from 'fs';\nimport http from 'http';\nimport * as path from 'path';\nimport resolveFrom from 'resolve-from';\nimport type webpack from 'webpack';\nimport type WebpackDevServer from 'webpack-dev-server';\n\nimport { compileAsync } from './compile';\nimport {\n importExpoWebpackConfigFromProject,\n importWebpackDevServerFromProject,\n importWebpackFromProject,\n} from './resolveFromProject';\nimport { ensureEnvironmentSupportsTLSAsync } from './tls';\nimport * as Log from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { getIpAddress } from '../../../utils/ip';\nimport { setNodeEnv } from '../../../utils/nodeEnv';\nimport { choosePortAsync } from '../../../utils/port';\nimport { createProgressBar } from '../../../utils/progress';\nimport { ensureDotExpoProjectDirectoryInitialized } from '../../project/dotExpo';\nimport { BundlerDevServer, BundlerStartOptions, DevServerInstance } from '../BundlerDevServer';\n\nconst debug = require('debug')('expo:start:server:webpack:devServer') as typeof console.log;\n\nexport type WebpackConfiguration = webpack.Configuration & {\n devServer?: {\n before?: (app: Application, server: WebpackDevServer, compiler: webpack.Compiler) => void;\n };\n};\n\nfunction assertIsWebpackDevServer(value: any): asserts value is WebpackDevServer {\n if (!value?.sockWrite && !value?.sendMessage) {\n throw new CommandError(\n 'WEBPACK',\n value\n ? 'Expected Webpack dev server, found: ' + (value.constructor?.name ?? value)\n : 'Webpack dev server not started yet.'\n );\n }\n}\n\nexport class WebpackBundlerDevServer extends BundlerDevServer {\n get name(): string {\n return 'webpack';\n }\n\n public async startTypeScriptServices(): Promise<void> {\n // noop -- this feature is Metro-only.\n }\n\n public broadcastMessage(\n method: string | 'reload' | 'devMenu' | 'sendDevCommand',\n params?: Record<string, any>\n ): void {\n if (!this.instance) {\n return;\n }\n\n assertIsWebpackDevServer(this.instance?.server);\n\n // TODO(EvanBacon): Custom Webpack overlay.\n // Default webpack-dev-server sockets use \"content-changed\" instead of \"reload\" (what we use on native).\n // For now, just manually convert the value so our CLI interface can be unified.\n const hackyConvertedMessage = method === 'reload' ? 'content-changed' : method;\n\n if ('sendMessage' in this.instance.server) {\n // @ts-expect-error: https://github.com/expo/expo/issues/21994#issuecomment-1517122501\n this.instance.server.sendMessage(this.instance.server.sockets, hackyConvertedMessage, params);\n } else {\n this.instance.server.sockWrite(this.instance.server.sockets, hackyConvertedMessage, params);\n }\n }\n\n isTargetingNative(): boolean {\n return false;\n }\n\n private async getAvailablePortAsync(options: { defaultPort?: number }): Promise<number> {\n try {\n const defaultPort = options?.defaultPort ?? 19006;\n const port = await choosePortAsync(this.projectRoot, {\n defaultPort,\n host: env.WEB_HOST,\n });\n if (!port) {\n throw new CommandError('NO_PORT_FOUND', `Port ${defaultPort} not available.`);\n }\n return port;\n } catch (error: any) {\n throw new CommandError('NO_PORT_FOUND', error.message);\n }\n }\n\n async bundleAsync({ mode, clear }: { mode: 'development' | 'production'; clear: boolean }) {\n // Do this first to fail faster.\n const webpack = importWebpackFromProject(this.projectRoot);\n\n if (clear) {\n await this.clearWebProjectCacheAsync(this.projectRoot, mode);\n }\n\n const config = await this.loadConfigAsync({\n isImageEditingEnabled: true,\n mode,\n });\n\n if (!config.plugins) {\n config.plugins = [];\n }\n\n const bar = createProgressBar(chalk`{bold Web} Bundling Javascript [:bar] :percent`, {\n width: 64,\n total: 100,\n clear: true,\n complete: '=',\n incomplete: ' ',\n });\n\n // NOTE(EvanBacon): Add a progress bar to the webpack logger if defined (e.g. not in CI).\n if (bar != null) {\n config.plugins.push(\n new webpack.ProgressPlugin((percent: number) => {\n bar?.update(percent);\n if (percent === 1) {\n bar?.terminate();\n }\n })\n );\n }\n\n // Create a webpack compiler that is configured with custom messages.\n const compiler = webpack(config);\n\n try {\n await compileAsync(compiler);\n } catch (error: any) {\n Log.error(chalk.red('Failed to compile'));\n throw error;\n } finally {\n bar?.terminate();\n }\n }\n\n protected async startImplementationAsync(\n options: BundlerStartOptions\n ): Promise<DevServerInstance> {\n // Do this first to fail faster.\n const webpack = importWebpackFromProject(this.projectRoot);\n const WebpackDevServer = importWebpackDevServerFromProject(this.projectRoot);\n\n await this.stopAsync();\n\n options.port = await this.getAvailablePortAsync({\n defaultPort: options.port,\n });\n const { resetDevServer, https, port, mode } = options;\n\n this.urlCreator = this.getUrlCreator({\n port,\n location: {\n scheme: https ? 'https' : 'http',\n },\n });\n\n debug('Starting webpack on port: ' + port);\n\n if (resetDevServer) {\n await this.clearWebProjectCacheAsync(this.projectRoot, mode);\n }\n\n if (https) {\n debug('Configuring TLS to enable HTTPS support');\n await ensureEnvironmentSupportsTLSAsync(this.projectRoot).catch((error) => {\n Log.error(`Error creating TLS certificates: ${error}`);\n });\n }\n\n const config = await this.loadConfigAsync(options);\n\n Log.log(chalk`Starting Webpack on port ${port} in {underline ${mode}} mode.`);\n\n // Create a webpack compiler that is configured with custom messages.\n const compiler = webpack(config);\n\n const server = new WebpackDevServer(\n // @ts-expect-error: type mismatch -- Webpack types aren't great.\n compiler,\n config.devServer\n );\n // Launch WebpackDevServer.\n server.listen(port, env.WEB_HOST, function (this: http.Server, error) {\n if (error) {\n Log.error(error.message);\n }\n });\n\n // Extend the close method to ensure that we clean up the local info.\n const originalClose = server.close.bind(server);\n\n server.close = (callback?: (err?: Error) => void) => {\n return originalClose((err?: Error) => {\n this.instance = null;\n callback?.(err);\n });\n };\n\n const _host = getIpAddress();\n const protocol = https ? 'https' : 'http';\n\n return {\n // Server instance\n server,\n // URL Info\n location: {\n url: `${protocol}://${_host}:${port}`,\n port,\n protocol,\n host: _host,\n },\n middleware: null,\n // Match the native protocol.\n messageSocket: {\n broadcast: this.broadcastMessage,\n },\n };\n }\n\n /** Load the Webpack config. Exposed for testing. */\n getProjectConfigFilePath(): string | null {\n // Check if the project has a webpack.config.js in the root.\n return (\n this.getConfigModuleIds().reduce<string | null | undefined>(\n (prev, moduleId) => prev || resolveFrom.silent(this.projectRoot, moduleId),\n null\n ) ?? null\n );\n }\n\n async loadConfigAsync(\n options: Pick<BundlerStartOptions, 'mode' | 'isImageEditingEnabled' | 'https'>,\n argv?: string[]\n ): Promise<WebpackConfiguration> {\n // let bar: ProgressBar | null = null;\n\n const env = {\n projectRoot: this.projectRoot,\n pwa: !!options.isImageEditingEnabled,\n // TODO: Use a new loader in Webpack config...\n logger: {\n info() {},\n },\n mode: options.mode,\n https: options.https,\n };\n setNodeEnv(env.mode ?? 'development');\n require('@expo/env').load(env.projectRoot);\n // Check if the project has a webpack.config.js in the root.\n const projectWebpackConfig = this.getProjectConfigFilePath();\n let config: WebpackConfiguration;\n if (projectWebpackConfig) {\n const webpackConfig = require(projectWebpackConfig);\n if (typeof webpackConfig === 'function') {\n config = await webpackConfig(env, argv);\n } else {\n config = webpackConfig;\n }\n } else {\n // Fallback to the default expo webpack config.\n const loadDefaultConfigAsync = importExpoWebpackConfigFromProject(this.projectRoot);\n // @ts-expect-error: types appear to be broken\n config = await loadDefaultConfigAsync(env, argv);\n }\n return config;\n }\n\n protected getConfigModuleIds(): string[] {\n return ['./webpack.config.js'];\n }\n\n protected async clearWebProjectCacheAsync(\n projectRoot: string,\n mode: string = 'development'\n ): Promise<void> {\n Log.log(chalk.dim(`Clearing Webpack ${mode} cache directory...`));\n\n const dir = await ensureDotExpoProjectDirectoryInitialized(projectRoot);\n const cacheFolder = path.join(dir, 'web/cache', mode);\n try {\n await fs.promises.rm(cacheFolder, { recursive: true, force: true });\n } catch (error: any) {\n Log.error(`Could not clear ${mode} web cache directory: ${error.message}`);\n }\n }\n}\n\nexport function getProjectWebpackConfigFilePath(projectRoot: string) {\n return resolveFrom.silent(projectRoot, './webpack.config.js');\n}\n"],"names":["getProjectWebpackConfigFilePath","path","Log","debug","require","assertIsWebpackDevServer","value","sockWrite","sendMessage","CommandError","constructor","name","WebpackBundlerDevServer","BundlerDevServer","startTypeScriptServices","broadcastMessage","method","params","instance","server","hackyConvertedMessage","sockets","isTargetingNative","getAvailablePortAsync","options","defaultPort","port","choosePortAsync","projectRoot","host","env","WEB_HOST","error","message","bundleAsync","mode","clear","webpack","importWebpackFromProject","clearWebProjectCacheAsync","config","loadConfigAsync","isImageEditingEnabled","plugins","bar","createProgressBar","chalk","width","total","complete","incomplete","push","ProgressPlugin","percent","update","terminate","compiler","compileAsync","red","startImplementationAsync","WebpackDevServer","importWebpackDevServerFromProject","stopAsync","resetDevServer","https","urlCreator","getUrlCreator","location","scheme","ensureEnvironmentSupportsTLSAsync","catch","log","devServer","listen","originalClose","close","bind","callback","err","_host","getIpAddress","protocol","url","middleware","messageSocket","broadcast","getProjectConfigFilePath","getConfigModuleIds","reduce","prev","moduleId","resolveFrom","silent","argv","pwa","logger","info","setNodeEnv","load","projectWebpackConfig","webpackConfig","loadDefaultConfigAsync","importExpoWebpackConfigFromProject","dim","dir","ensureDotExpoProjectDirectoryInitialized","cacheFolder","join","fs","promises","rm","recursive","force"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/webpack/WebpackBundlerDevServer.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { Application } from 'express';\nimport fs from 'fs';\nimport http from 'http';\nimport * as path from 'path';\nimport resolveFrom from 'resolve-from';\nimport type webpack from 'webpack';\nimport type WebpackDevServer from 'webpack-dev-server';\n\nimport { compileAsync } from './compile';\nimport {\n importExpoWebpackConfigFromProject,\n importWebpackDevServerFromProject,\n importWebpackFromProject,\n} from './resolveFromProject';\nimport { ensureEnvironmentSupportsTLSAsync } from './tls';\nimport * as Log from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { getIpAddress } from '../../../utils/ip';\nimport { setNodeEnv } from '../../../utils/nodeEnv';\nimport { choosePortAsync } from '../../../utils/port';\nimport { createProgressBar } from '../../../utils/progress';\nimport { ensureDotExpoProjectDirectoryInitialized } from '../../project/dotExpo';\nimport { BundlerDevServer, BundlerStartOptions, DevServerInstance } from '../BundlerDevServer';\n\nconst debug = require('debug')('expo:start:server:webpack:devServer') as typeof console.log;\n\nexport type WebpackConfiguration = webpack.Configuration & {\n devServer?: {\n before?: (app: Application, server: WebpackDevServer, compiler: webpack.Compiler) => void;\n };\n};\n\nfunction assertIsWebpackDevServer(value: any): asserts value is WebpackDevServer {\n if (!value?.sockWrite && !value?.sendMessage) {\n throw new CommandError(\n 'WEBPACK',\n value\n ? 'Expected Webpack dev server, found: ' + (value.constructor?.name ?? value)\n : 'Webpack dev server not started yet.'\n );\n }\n}\n\nexport class WebpackBundlerDevServer extends BundlerDevServer {\n get name(): string {\n return 'webpack';\n }\n\n public async startTypeScriptServices(): Promise<void> {\n // noop -- this feature is Metro-only.\n }\n\n public broadcastMessage(\n method: string | 'reload' | 'devMenu' | 'sendDevCommand',\n params?: Record<string, any>\n ): void {\n if (!this.instance) {\n return;\n }\n\n assertIsWebpackDevServer(this.instance?.server);\n\n // TODO(EvanBacon): Custom Webpack overlay.\n // Default webpack-dev-server sockets use \"content-changed\" instead of \"reload\" (what we use on native).\n // For now, just manually convert the value so our CLI interface can be unified.\n const hackyConvertedMessage = method === 'reload' ? 'content-changed' : method;\n\n if ('sendMessage' in this.instance.server) {\n // @ts-expect-error: https://github.com/expo/expo/issues/21994#issuecomment-1517122501\n this.instance.server.sendMessage(this.instance.server.sockets, hackyConvertedMessage, params);\n } else {\n this.instance.server.sockWrite(this.instance.server.sockets, hackyConvertedMessage, params);\n }\n }\n\n isTargetingNative(): boolean {\n return false;\n }\n\n private async getAvailablePortAsync(options: { defaultPort?: number }): Promise<number> {\n try {\n const defaultPort = options?.defaultPort ?? 19006;\n const port = await choosePortAsync(this.projectRoot, {\n defaultPort,\n host: env.WEB_HOST,\n });\n if (!port) {\n throw new CommandError('NO_PORT_FOUND', `Port ${defaultPort} not available.`);\n }\n return port;\n } catch (error: any) {\n throw new CommandError('NO_PORT_FOUND', error.message);\n }\n }\n\n async bundleAsync({ mode, clear }: { mode: 'development' | 'production'; clear: boolean }) {\n // Do this first to fail faster.\n const webpack = importWebpackFromProject(this.projectRoot);\n\n if (clear) {\n await this.clearWebProjectCacheAsync(this.projectRoot, mode);\n }\n\n const config = await this.loadConfigAsync({\n isImageEditingEnabled: true,\n mode,\n });\n\n if (!config.plugins) {\n config.plugins = [];\n }\n\n const bar = createProgressBar(chalk`{bold Web} Bundling Javascript [:bar] :percent`, {\n width: 64,\n total: 100,\n clear: true,\n complete: '=',\n incomplete: ' ',\n });\n\n // NOTE(EvanBacon): Add a progress bar to the webpack logger if defined (e.g. not in CI).\n if (bar != null) {\n config.plugins.push(\n new webpack.ProgressPlugin((percent: number) => {\n bar?.update(percent);\n if (percent === 1) {\n bar?.terminate();\n }\n })\n );\n }\n\n // Create a webpack compiler that is configured with custom messages.\n const compiler = webpack(config);\n\n try {\n await compileAsync(compiler);\n } catch (error: any) {\n Log.error(chalk.red('Failed to compile'));\n throw error;\n } finally {\n bar?.terminate();\n }\n }\n\n protected async startImplementationAsync(\n options: BundlerStartOptions\n ): Promise<DevServerInstance> {\n // Do this first to fail faster.\n const webpack = importWebpackFromProject(this.projectRoot);\n const WebpackDevServer = importWebpackDevServerFromProject(this.projectRoot);\n\n await this.stopAsync();\n\n options.port = await this.getAvailablePortAsync({\n defaultPort: options.port,\n });\n const { resetDevServer, https, port, mode } = options;\n\n this.urlCreator = this.getUrlCreator({\n port,\n location: {\n scheme: https ? 'https' : 'http',\n },\n });\n\n debug('Starting webpack on port: ' + port);\n\n if (resetDevServer) {\n await this.clearWebProjectCacheAsync(this.projectRoot, mode);\n }\n\n if (https) {\n debug('Configuring TLS to enable HTTPS support');\n await ensureEnvironmentSupportsTLSAsync(this.projectRoot).catch((error) => {\n Log.error(`Error creating TLS certificates: ${error}`);\n });\n }\n\n const config = await this.loadConfigAsync(options);\n\n Log.log(chalk`Starting Webpack on port ${port} in {underline ${mode}} mode.`);\n\n // Create a webpack compiler that is configured with custom messages.\n const compiler = webpack(config);\n\n const server = new WebpackDevServer(\n // @ts-expect-error: type mismatch -- Webpack types aren't great.\n compiler,\n config.devServer\n );\n // Launch WebpackDevServer.\n server.listen(port, env.WEB_HOST, function (this: http.Server, error) {\n if (error) {\n Log.error(error.message);\n }\n });\n\n // Extend the close method to ensure that we clean up the local info.\n const originalClose = server.close.bind(server);\n\n server.close = (callback?: (err?: Error) => void) => {\n return originalClose((err?: Error) => {\n this.instance = null;\n callback?.(err);\n });\n };\n\n const _host = getIpAddress();\n const protocol = https ? 'https' : 'http';\n\n return {\n // Server instance\n server,\n // URL Info\n location: {\n url: `${protocol}://${_host}:${port}`,\n port,\n protocol,\n host: _host,\n },\n middleware: null,\n // Match the native protocol.\n messageSocket: {\n broadcast: this.broadcastMessage,\n },\n };\n }\n\n /** Load the Webpack config. Exposed for testing. */\n getProjectConfigFilePath(): string | null {\n // Check if the project has a webpack.config.js in the root.\n return (\n this.getConfigModuleIds().reduce<string | null | undefined>(\n (prev, moduleId) => prev || resolveFrom.silent(this.projectRoot, moduleId),\n null\n ) ?? null\n );\n }\n\n async loadConfigAsync(\n options: Pick<BundlerStartOptions, 'mode' | 'isImageEditingEnabled' | 'https'>,\n argv?: string[]\n ): Promise<WebpackConfiguration> {\n // let bar: ProgressBar | null = null;\n\n const env = {\n projectRoot: this.projectRoot,\n pwa: !!options.isImageEditingEnabled,\n // TODO: Use a new loader in Webpack config...\n logger: {\n info() {},\n },\n mode: options.mode,\n https: options.https,\n };\n setNodeEnv(env.mode ?? 'development');\n require('@expo/env').load(env.projectRoot);\n // Check if the project has a webpack.config.js in the root.\n const projectWebpackConfig = this.getProjectConfigFilePath();\n let config: WebpackConfiguration;\n if (projectWebpackConfig) {\n const webpackConfig = require(projectWebpackConfig);\n if (typeof webpackConfig === 'function') {\n config = await webpackConfig(env, argv);\n } else {\n config = webpackConfig;\n }\n } else {\n // Fallback to the default expo webpack config.\n const loadDefaultConfigAsync = importExpoWebpackConfigFromProject(this.projectRoot);\n // @ts-expect-error: types appear to be broken\n config = await loadDefaultConfigAsync(env, argv);\n }\n return config;\n }\n\n protected getConfigModuleIds(): string[] {\n return ['./webpack.config.js'];\n }\n\n protected async clearWebProjectCacheAsync(\n projectRoot: string,\n mode: string = 'development'\n ): Promise<void> {\n Log.log(chalk.dim(`Clearing Webpack ${mode} cache directory...`));\n\n const dir = await ensureDotExpoProjectDirectoryInitialized(projectRoot);\n const cacheFolder = path.join(dir, 'web/cache', mode);\n try {\n await fs.promises.rm(cacheFolder, { recursive: true, force: true });\n } catch (error: any) {\n Log.error(`Could not clear ${mode} web cache directory: ${error.message}`);\n }\n }\n}\n\nexport function getProjectWebpackConfigFilePath(projectRoot: string) {\n return resolveFrom.silent(projectRoot, './webpack.config.js');\n}\n"],"names":["getProjectWebpackConfigFilePath","path","Log","debug","require","assertIsWebpackDevServer","value","sockWrite","sendMessage","CommandError","constructor","name","WebpackBundlerDevServer","BundlerDevServer","startTypeScriptServices","broadcastMessage","method","params","instance","server","hackyConvertedMessage","sockets","isTargetingNative","getAvailablePortAsync","options","defaultPort","port","choosePortAsync","projectRoot","host","env","WEB_HOST","error","message","bundleAsync","mode","clear","webpack","importWebpackFromProject","clearWebProjectCacheAsync","config","loadConfigAsync","isImageEditingEnabled","plugins","bar","createProgressBar","chalk","width","total","complete","incomplete","push","ProgressPlugin","percent","update","terminate","compiler","compileAsync","red","startImplementationAsync","WebpackDevServer","importWebpackDevServerFromProject","stopAsync","resetDevServer","https","urlCreator","getUrlCreator","location","scheme","ensureEnvironmentSupportsTLSAsync","catch","log","devServer","listen","originalClose","close","bind","callback","err","_host","getIpAddress","protocol","url","middleware","messageSocket","broadcast","getProjectConfigFilePath","getConfigModuleIds","reduce","prev","moduleId","resolveFrom","silent","argv","pwa","logger","info","setNodeEnv","load","projectWebpackConfig","webpackConfig","loadDefaultConfigAsync","importExpoWebpackConfigFromProject","dim","dir","ensureDotExpoProjectDirectoryInitialized","cacheFolder","join","fs","promises","rm","recursive","force"],"mappings":"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"}
|
|
@@ -3,8 +3,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
exports.compileAsync = compileAsync;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
function _chalk() {
|
|
7
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
8
|
+
_chalk = function() {
|
|
9
|
+
return data;
|
|
10
|
+
};
|
|
11
|
+
return data;
|
|
12
|
+
}
|
|
13
|
+
function _util() {
|
|
14
|
+
const data = require("util");
|
|
15
|
+
_util = function() {
|
|
16
|
+
return data;
|
|
17
|
+
};
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
8
20
|
var _formatWebpackMessages = require("./formatWebpackMessages");
|
|
9
21
|
var Log = _interopRequireWildcard(require("../../../log"));
|
|
10
22
|
var _errors = require("../../../utils/errors");
|
|
@@ -35,7 +47,7 @@ function _interopRequireWildcard(obj) {
|
|
|
35
47
|
}
|
|
36
48
|
}
|
|
37
49
|
async function compileAsync(compiler) {
|
|
38
|
-
const stats = await (
|
|
50
|
+
const stats = await _util().promisify(compiler.run.bind(compiler))();
|
|
39
51
|
const { errors , warnings } = (0, _formatWebpackMessages).formatWebpackMessages(stats.toJson({
|
|
40
52
|
all: false,
|
|
41
53
|
warnings: true,
|
|
@@ -50,10 +62,10 @@ async function compileAsync(compiler) {
|
|
|
50
62
|
throw new _errors.CommandError("WEBPACK_BUNDLE", errors.join("\n\n"));
|
|
51
63
|
}
|
|
52
64
|
if (warnings == null ? void 0 : warnings.length) {
|
|
53
|
-
Log.warn(_chalk.default.yellow("Compiled with warnings\n"));
|
|
65
|
+
Log.warn(_chalk().default.yellow("Compiled with warnings\n"));
|
|
54
66
|
Log.warn(warnings.join("\n\n"));
|
|
55
67
|
} else {
|
|
56
|
-
Log.log(_chalk.default.green("Compiled successfully"));
|
|
68
|
+
Log.log(_chalk().default.green("Compiled successfully"));
|
|
57
69
|
}
|
|
58
70
|
return {
|
|
59
71
|
errors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/webpack/compile.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { promisify } from 'util';\nimport type webpack from 'webpack';\n\nimport { formatWebpackMessages } from './formatWebpackMessages';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\n\n/** Run the `webpack` compiler and format errors/warnings. */\nexport async function compileAsync(compiler: webpack.Compiler) {\n const stats = await promisify(compiler.run.bind(compiler))();\n const { errors, warnings } = formatWebpackMessages(\n stats.toJson({ all: false, warnings: true, errors: true })\n );\n if (errors?.length) {\n // Only keep the first error. Others are often indicative\n // of the same problem, but confuse the reader with noise.\n if (errors.length > 1) {\n errors.length = 1;\n }\n throw new CommandError('WEBPACK_BUNDLE', errors.join('\\n\\n'));\n }\n if (warnings?.length) {\n Log.warn(chalk.yellow('Compiled with warnings\\n'));\n Log.warn(warnings.join('\\n\\n'));\n } else {\n Log.log(chalk.green('Compiled successfully'));\n }\n\n return { errors, warnings };\n}\n"],"names":["compileAsync","Log","compiler","stats","promisify","run","bind","errors","warnings","formatWebpackMessages","toJson","all","length","CommandError","join","warn","chalk","yellow","log","green"],"mappings":"AAAA;;;;QASsBA,YAAY,GAAZA,YAAY;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/webpack/compile.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { promisify } from 'util';\nimport type webpack from 'webpack';\n\nimport { formatWebpackMessages } from './formatWebpackMessages';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\n\n/** Run the `webpack` compiler and format errors/warnings. */\nexport async function compileAsync(compiler: webpack.Compiler) {\n const stats = await promisify(compiler.run.bind(compiler))();\n const { errors, warnings } = formatWebpackMessages(\n stats.toJson({ all: false, warnings: true, errors: true })\n );\n if (errors?.length) {\n // Only keep the first error. Others are often indicative\n // of the same problem, but confuse the reader with noise.\n if (errors.length > 1) {\n errors.length = 1;\n }\n throw new CommandError('WEBPACK_BUNDLE', errors.join('\\n\\n'));\n }\n if (warnings?.length) {\n Log.warn(chalk.yellow('Compiled with warnings\\n'));\n Log.warn(warnings.join('\\n\\n'));\n } else {\n Log.log(chalk.green('Compiled successfully'));\n }\n\n return { errors, warnings };\n}\n"],"names":["compileAsync","Log","compiler","stats","promisify","run","bind","errors","warnings","formatWebpackMessages","toJson","all","length","CommandError","join","warn","chalk","yellow","log","green"],"mappings":"AAAA;;;;QASsBA,YAAY,GAAZA,YAAY;SAThB,MAAO;gDAAP,OAAO;IAAP,MAAO;;;;;SACC,KAAM;yBAAN,MAAM;IAAN,KAAM;;;;;AAGM,IAAA,sBAAyB,WAAzB,yBAAyB,CAAA;AACnDC,IAAAA,GAAG,mCAAM,cAAc,EAApB;AACc,IAAA,OAAuB,WAAvB,uBAAuB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG7C,eAAeD,YAAY,CAACE,QAA0B,EAAE;IAC7D,MAAMC,KAAK,GAAG,MAAMC,KAAS,YAAA,CAACF,QAAQ,CAACG,GAAG,CAACC,IAAI,CAACJ,QAAQ,CAAC,CAAC,EAAE,AAAC;IAC7D,MAAM,EAAEK,MAAM,CAAA,EAAEC,QAAQ,CAAA,EAAE,GAAGC,CAAAA,GAAAA,sBAAqB,AAEjD,CAAA,sBAFiD,CAChDN,KAAK,CAACO,MAAM,CAAC;QAAEC,GAAG,EAAE,KAAK;QAAEH,QAAQ,EAAE,IAAI;QAAED,MAAM,EAAE,IAAI;KAAE,CAAC,CAC3D,AAAC;IACF,IAAIA,MAAM,QAAQ,GAAdA,KAAAA,CAAc,GAAdA,MAAM,CAAEK,MAAM,EAAE;QAClB,yDAAyD;QACzD,0DAA0D;QAC1D,IAAIL,MAAM,CAACK,MAAM,GAAG,CAAC,EAAE;YACrBL,MAAM,CAACK,MAAM,GAAG,CAAC,CAAC;SACnB;QACD,MAAM,IAAIC,OAAY,aAAA,CAAC,gBAAgB,EAAEN,MAAM,CAACO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/D;IACD,IAAIN,QAAQ,QAAQ,GAAhBA,KAAAA,CAAgB,GAAhBA,QAAQ,CAAEI,MAAM,EAAE;QACpBX,GAAG,CAACc,IAAI,CAACC,MAAK,UAAA,CAACC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACnDhB,GAAG,CAACc,IAAI,CAACP,QAAQ,CAACM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KACjC,MAAM;QACLb,GAAG,CAACiB,GAAG,CAACF,MAAK,UAAA,CAACG,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;KAC/C;IAED,OAAO;QAAEZ,MAAM;QAAEC,QAAQ;KAAE,CAAC;CAC7B"}
|
|
@@ -5,7 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.importWebpackFromProject = importWebpackFromProject;
|
|
6
6
|
exports.importExpoWebpackConfigFromProject = importExpoWebpackConfigFromProject;
|
|
7
7
|
exports.importWebpackDevServerFromProject = importWebpackDevServerFromProject;
|
|
8
|
-
|
|
8
|
+
function _resolveFrom() {
|
|
9
|
+
const data = _interopRequireDefault(require("resolve-from"));
|
|
10
|
+
_resolveFrom = function() {
|
|
11
|
+
return data;
|
|
12
|
+
};
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
9
15
|
var _errors = require("../../../utils/errors");
|
|
10
16
|
function _interopRequireDefault(obj) {
|
|
11
17
|
return obj && obj.__esModule ? obj : {
|
|
@@ -21,7 +27,7 @@ class WebpackImportError extends _errors.CommandError {
|
|
|
21
27
|
}
|
|
22
28
|
}
|
|
23
29
|
function resolveFromProject(projectRoot, moduleId) {
|
|
24
|
-
const resolvedPath = _resolveFrom.default.silent(projectRoot, moduleId);
|
|
30
|
+
const resolvedPath = _resolveFrom().default.silent(projectRoot, moduleId);
|
|
25
31
|
if (!resolvedPath) {
|
|
26
32
|
throw new WebpackImportError(projectRoot, moduleId);
|
|
27
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/webpack/resolveFromProject.ts"],"sourcesContent":["import resolveFrom from 'resolve-from';\n\nimport { CommandError } from '../../../utils/errors';\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 WebpackImportError extends CommandError {\n constructor(projectRoot: string, moduleId: string) {\n super(\n 'WEBPACK_IMPORT',\n `Missing package \"${moduleId}\" in the project. Try running the command again. (cwd: ${projectRoot})`\n );\n }\n}\n\nfunction resolveFromProject(projectRoot: string, moduleId: string) {\n const resolvedPath = resolveFrom.silent(projectRoot, moduleId);\n if (!resolvedPath) {\n throw new WebpackImportError(projectRoot, moduleId);\n }\n return resolvedPath;\n}\n\nfunction importFromProject(projectRoot: string, moduleId: string) {\n return require(resolveFromProject(projectRoot, moduleId));\n}\n\n/** Import `webpack` from the project. */\nexport function importWebpackFromProject(projectRoot: string): typeof import('webpack') {\n return importFromProject(projectRoot, 'webpack');\n}\n\n/** Import `@expo/webpack-config` from the project. */\nexport function importExpoWebpackConfigFromProject(\n projectRoot: string\n): typeof import('@expo/webpack-config') {\n return importFromProject(projectRoot, '@expo/webpack-config');\n}\n\n/** Import `webpack-dev-server` from the project. */\nexport function importWebpackDevServerFromProject(\n projectRoot: string\n): typeof import('webpack-dev-server') {\n return importFromProject(projectRoot, 'webpack-dev-server');\n}\n"],"names":["importWebpackFromProject","importExpoWebpackConfigFromProject","importWebpackDevServerFromProject","WebpackImportError","CommandError","constructor","projectRoot","moduleId","resolveFromProject","resolvedPath","resolveFrom","silent","importFromProject","require"],"mappings":"AAAA;;;;QA6BgBA,wBAAwB,GAAxBA,wBAAwB;QAKxBC,kCAAkC,GAAlCA,kCAAkC;QAOlCC,iCAAiC,GAAjCA,iCAAiC;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/webpack/resolveFromProject.ts"],"sourcesContent":["import resolveFrom from 'resolve-from';\n\nimport { CommandError } from '../../../utils/errors';\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 WebpackImportError extends CommandError {\n constructor(projectRoot: string, moduleId: string) {\n super(\n 'WEBPACK_IMPORT',\n `Missing package \"${moduleId}\" in the project. Try running the command again. (cwd: ${projectRoot})`\n );\n }\n}\n\nfunction resolveFromProject(projectRoot: string, moduleId: string) {\n const resolvedPath = resolveFrom.silent(projectRoot, moduleId);\n if (!resolvedPath) {\n throw new WebpackImportError(projectRoot, moduleId);\n }\n return resolvedPath;\n}\n\nfunction importFromProject(projectRoot: string, moduleId: string) {\n return require(resolveFromProject(projectRoot, moduleId));\n}\n\n/** Import `webpack` from the project. */\nexport function importWebpackFromProject(projectRoot: string): typeof import('webpack') {\n return importFromProject(projectRoot, 'webpack');\n}\n\n/** Import `@expo/webpack-config` from the project. */\nexport function importExpoWebpackConfigFromProject(\n projectRoot: string\n): typeof import('@expo/webpack-config') {\n return importFromProject(projectRoot, '@expo/webpack-config');\n}\n\n/** Import `webpack-dev-server` from the project. */\nexport function importWebpackDevServerFromProject(\n projectRoot: string\n): typeof import('webpack-dev-server') {\n return importFromProject(projectRoot, 'webpack-dev-server');\n}\n"],"names":["importWebpackFromProject","importExpoWebpackConfigFromProject","importWebpackDevServerFromProject","WebpackImportError","CommandError","constructor","projectRoot","moduleId","resolveFromProject","resolvedPath","resolveFrom","silent","importFromProject","require"],"mappings":"AAAA;;;;QA6BgBA,wBAAwB,GAAxBA,wBAAwB;QAKxBC,kCAAkC,GAAlCA,kCAAkC;QAOlCC,iCAAiC,GAAjCA,iCAAiC;SAzCzB,YAAc;gDAAd,cAAc;IAAd,YAAc;;;;;AAET,IAAA,OAAuB,WAAvB,uBAAuB,CAAA;;;;;;AAEpD,+DAA+D;AAC/D,mDAAmD;AACnD,0CAA0C;AAC1C,MAAMC,kBAAkB,SAASC,OAAY,aAAA;IAC3CC,YAAYC,WAAmB,EAAEC,QAAgB,CAAE;QACjD,KAAK,CACH,gBAAgB,EAChB,CAAC,iBAAiB,EAAEA,QAAQ,CAAC,uDAAuD,EAAED,WAAW,CAAC,CAAC,CAAC,CACrG,CAAC;KACH;CACF;AAED,SAASE,kBAAkB,CAACF,WAAmB,EAAEC,QAAgB,EAAE;IACjE,MAAME,YAAY,GAAGC,YAAW,UAAA,CAACC,MAAM,CAACL,WAAW,EAAEC,QAAQ,CAAC,AAAC;IAC/D,IAAI,CAACE,YAAY,EAAE;QACjB,MAAM,IAAIN,kBAAkB,CAACG,WAAW,EAAEC,QAAQ,CAAC,CAAC;KACrD;IACD,OAAOE,YAAY,CAAC;CACrB;AAED,SAASG,iBAAiB,CAACN,WAAmB,EAAEC,QAAgB,EAAE;IAChE,OAAOM,OAAO,CAACL,kBAAkB,CAACF,WAAW,EAAEC,QAAQ,CAAC,CAAC,CAAC;CAC3D;AAGM,SAASP,wBAAwB,CAACM,WAAmB,EAA4B;IACtF,OAAOM,iBAAiB,CAACN,WAAW,EAAE,SAAS,CAAC,CAAC;CAClD;AAGM,SAASL,kCAAkC,CAChDK,WAAmB,EACoB;IACvC,OAAOM,iBAAiB,CAACN,WAAW,EAAE,sBAAsB,CAAC,CAAC;CAC/D;AAGM,SAASJ,iCAAiC,CAC/CI,WAAmB,EACkB;IACrC,OAAOM,iBAAiB,CAACN,WAAW,EAAE,oBAAoB,CAAC,CAAC;CAC7D"}
|
|
@@ -4,10 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.ensureEnvironmentSupportsTLSAsync = ensureEnvironmentSupportsTLSAsync;
|
|
6
6
|
exports.getTLSCertAsync = getTLSCertAsync;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
function _devcert() {
|
|
8
|
+
const data = require("@expo/devcert");
|
|
9
|
+
_devcert = function() {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _chalk() {
|
|
15
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
16
|
+
_chalk = function() {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _promises() {
|
|
22
|
+
const data = _interopRequireDefault(require("fs/promises"));
|
|
23
|
+
_promises = function() {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _path() {
|
|
29
|
+
const data = _interopRequireDefault(require("path"));
|
|
30
|
+
_path = function() {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
11
35
|
var Log = _interopRequireWildcard(require("../../../log"));
|
|
12
36
|
var _dir = require("../../../utils/dir");
|
|
13
37
|
var _dotExpo = require("../../project/dotExpo");
|
|
@@ -47,19 +71,19 @@ async function ensureEnvironmentSupportsTLSAsync(projectRoot) {
|
|
|
47
71
|
}
|
|
48
72
|
}
|
|
49
73
|
async function getTLSCertAsync(projectRoot) {
|
|
50
|
-
Log.log(_chalk.default`Creating TLS certificate for localhost. {dim This functionality may not work on all computers.}`);
|
|
74
|
+
Log.log(_chalk().default`Creating TLS certificate for localhost. {dim This functionality may not work on all computers.}`);
|
|
51
75
|
const name = "localhost";
|
|
52
|
-
const result = await (
|
|
76
|
+
const result = await _devcert().certificateFor(name);
|
|
53
77
|
if (result) {
|
|
54
78
|
const dotExpoDir = (0, _dotExpo).ensureDotExpoProjectDirectoryInitialized(projectRoot);
|
|
55
79
|
const { key , cert } = result;
|
|
56
|
-
const folder = _path.default.join(dotExpoDir, "tls");
|
|
57
|
-
const keyPath = _path.default.join(folder, `key-${name}.pem`);
|
|
58
|
-
const certPath = _path.default.join(folder, `cert-${name}.pem`);
|
|
80
|
+
const folder = _path().default.join(dotExpoDir, "tls");
|
|
81
|
+
const keyPath = _path().default.join(folder, `key-${name}.pem`);
|
|
82
|
+
const certPath = _path().default.join(folder, `cert-${name}.pem`);
|
|
59
83
|
await (0, _dir).ensureDirectoryAsync(folder);
|
|
60
84
|
await Promise.allSettled([
|
|
61
|
-
_promises.default.writeFile(keyPath, key),
|
|
62
|
-
_promises.default.writeFile(certPath, cert)
|
|
85
|
+
_promises().default.writeFile(keyPath, key),
|
|
86
|
+
_promises().default.writeFile(certPath, cert)
|
|
63
87
|
]);
|
|
64
88
|
return {
|
|
65
89
|
keyPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/webpack/tls.ts"],"sourcesContent":["import { certificateFor } from '@expo/devcert';\nimport chalk from 'chalk';\nimport fs from 'fs/promises';\nimport path from 'path';\n\nimport * as Log from '../../../log';\nimport { ensureDirectoryAsync } from '../../../utils/dir';\nimport { ensureDotExpoProjectDirectoryInitialized } from '../../project/dotExpo';\n\n// TODO: Move to doctor as a prereq.\n\n/** Ensure TLS is setup and environment variables are set. */\nexport async function ensureEnvironmentSupportsTLSAsync(projectRoot: string) {\n if (!process.env.SSL_CRT_FILE || !process.env.SSL_KEY_FILE) {\n const tls = await getTLSCertAsync(projectRoot);\n if (tls) {\n process.env.SSL_CRT_FILE = tls.certPath;\n process.env.SSL_KEY_FILE = tls.keyPath;\n }\n }\n}\n\n/** Create TLS and write to files in the temporary directory. Exposed for testing. */\nexport async function getTLSCertAsync(\n projectRoot: string\n): Promise<{ keyPath: string; certPath: string } | false> {\n Log.log(\n chalk`Creating TLS certificate for localhost. {dim This functionality may not work on all computers.}`\n );\n\n const name = 'localhost';\n const result = await certificateFor(name);\n if (result) {\n const dotExpoDir = ensureDotExpoProjectDirectoryInitialized(projectRoot);\n\n const { key, cert } = result;\n const folder = path.join(dotExpoDir, 'tls');\n const keyPath = path.join(folder, `key-${name}.pem`);\n const certPath = path.join(folder, `cert-${name}.pem`);\n\n await ensureDirectoryAsync(folder);\n await Promise.allSettled([fs.writeFile(keyPath, key), fs.writeFile(certPath, cert)]);\n\n return {\n keyPath,\n certPath,\n };\n }\n return result;\n}\n"],"names":["ensureEnvironmentSupportsTLSAsync","getTLSCertAsync","Log","projectRoot","process","env","SSL_CRT_FILE","SSL_KEY_FILE","tls","certPath","keyPath","log","chalk","name","result","certificateFor","dotExpoDir","ensureDotExpoProjectDirectoryInitialized","key","cert","folder","path","join","ensureDirectoryAsync","Promise","allSettled","fs","writeFile"],"mappings":"AAAA;;;;QAYsBA,iCAAiC,GAAjCA,iCAAiC;QAWjCC,eAAe,GAAfA,eAAe;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/webpack/tls.ts"],"sourcesContent":["import { certificateFor } from '@expo/devcert';\nimport chalk from 'chalk';\nimport fs from 'fs/promises';\nimport path from 'path';\n\nimport * as Log from '../../../log';\nimport { ensureDirectoryAsync } from '../../../utils/dir';\nimport { ensureDotExpoProjectDirectoryInitialized } from '../../project/dotExpo';\n\n// TODO: Move to doctor as a prereq.\n\n/** Ensure TLS is setup and environment variables are set. */\nexport async function ensureEnvironmentSupportsTLSAsync(projectRoot: string) {\n if (!process.env.SSL_CRT_FILE || !process.env.SSL_KEY_FILE) {\n const tls = await getTLSCertAsync(projectRoot);\n if (tls) {\n process.env.SSL_CRT_FILE = tls.certPath;\n process.env.SSL_KEY_FILE = tls.keyPath;\n }\n }\n}\n\n/** Create TLS and write to files in the temporary directory. Exposed for testing. */\nexport async function getTLSCertAsync(\n projectRoot: string\n): Promise<{ keyPath: string; certPath: string } | false> {\n Log.log(\n chalk`Creating TLS certificate for localhost. {dim This functionality may not work on all computers.}`\n );\n\n const name = 'localhost';\n const result = await certificateFor(name);\n if (result) {\n const dotExpoDir = ensureDotExpoProjectDirectoryInitialized(projectRoot);\n\n const { key, cert } = result;\n const folder = path.join(dotExpoDir, 'tls');\n const keyPath = path.join(folder, `key-${name}.pem`);\n const certPath = path.join(folder, `cert-${name}.pem`);\n\n await ensureDirectoryAsync(folder);\n await Promise.allSettled([fs.writeFile(keyPath, key), fs.writeFile(certPath, cert)]);\n\n return {\n keyPath,\n certPath,\n };\n }\n return result;\n}\n"],"names":["ensureEnvironmentSupportsTLSAsync","getTLSCertAsync","Log","projectRoot","process","env","SSL_CRT_FILE","SSL_KEY_FILE","tls","certPath","keyPath","log","chalk","name","result","certificateFor","dotExpoDir","ensureDotExpoProjectDirectoryInitialized","key","cert","folder","path","join","ensureDirectoryAsync","Promise","allSettled","fs","writeFile"],"mappings":"AAAA;;;;QAYsBA,iCAAiC,GAAjCA,iCAAiC;QAWjCC,eAAe,GAAfA,eAAe;SAvBN,QAAe;yBAAf,eAAe;IAAf,QAAe;;;;;SAC5B,MAAO;gDAAP,OAAO;IAAP,MAAO;;;;;SACV,SAAa;gDAAb,aAAa;IAAb,SAAa;;;;;SACX,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;AAEXC,IAAAA,GAAG,mCAAM,cAAc,EAApB;AACsB,IAAA,IAAoB,WAApB,oBAAoB,CAAA;AACA,IAAA,QAAuB,WAAvB,uBAAuB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKzE,eAAeF,iCAAiC,CAACG,WAAmB,EAAE;IAC3E,IAAI,CAACC,OAAO,CAACC,GAAG,CAACC,YAAY,IAAI,CAACF,OAAO,CAACC,GAAG,CAACE,YAAY,EAAE;QAC1D,MAAMC,GAAG,GAAG,MAAMP,eAAe,CAACE,WAAW,CAAC,AAAC;QAC/C,IAAIK,GAAG,EAAE;YACPJ,OAAO,CAACC,GAAG,CAACC,YAAY,GAAGE,GAAG,CAACC,QAAQ,CAAC;YACxCL,OAAO,CAACC,GAAG,CAACE,YAAY,GAAGC,GAAG,CAACE,OAAO,CAAC;SACxC;KACF;CACF;AAGM,eAAeT,eAAe,CACnCE,WAAmB,EACqC;IACxDD,GAAG,CAACS,GAAG,CACLC,MAAK,UAAA,CAAC,+FAA+F,CAAC,CACvG,CAAC;IAEF,MAAMC,IAAI,GAAG,WAAW,AAAC;IACzB,MAAMC,MAAM,GAAG,MAAMC,QAAc,iBAAA,CAACF,IAAI,CAAC,AAAC;IAC1C,IAAIC,MAAM,EAAE;QACV,MAAME,UAAU,GAAGC,CAAAA,GAAAA,QAAwC,AAAa,CAAA,yCAAb,CAACd,WAAW,CAAC,AAAC;QAEzE,MAAM,EAAEe,GAAG,CAAA,EAAEC,IAAI,CAAA,EAAE,GAAGL,MAAM,AAAC;QAC7B,MAAMM,MAAM,GAAGC,KAAI,UAAA,CAACC,IAAI,CAACN,UAAU,EAAE,KAAK,CAAC,AAAC;QAC5C,MAAMN,OAAO,GAAGW,KAAI,UAAA,CAACC,IAAI,CAACF,MAAM,EAAE,CAAC,IAAI,EAAEP,IAAI,CAAC,IAAI,CAAC,CAAC,AAAC;QACrD,MAAMJ,QAAQ,GAAGY,KAAI,UAAA,CAACC,IAAI,CAACF,MAAM,EAAE,CAAC,KAAK,EAAEP,IAAI,CAAC,IAAI,CAAC,CAAC,AAAC;QAEvD,MAAMU,CAAAA,GAAAA,IAAoB,AAAQ,CAAA,qBAAR,CAACH,MAAM,CAAC,CAAC;QACnC,MAAMI,OAAO,CAACC,UAAU,CAAC;YAACC,SAAE,UAAA,CAACC,SAAS,CAACjB,OAAO,EAAEQ,GAAG,CAAC;YAAEQ,SAAE,UAAA,CAACC,SAAS,CAAClB,QAAQ,EAAEU,IAAI,CAAC;SAAC,CAAC,CAAC;QAErF,OAAO;YACLT,OAAO;YACPD,QAAQ;SACT,CAAC;KACH;IACD,OAAOK,MAAM,CAAC;CACf"}
|
|
@@ -3,8 +3,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
exports.startAsync = startAsync;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
function _config() {
|
|
7
|
+
const data = require("@expo/config");
|
|
8
|
+
_config = function() {
|
|
9
|
+
return data;
|
|
10
|
+
};
|
|
11
|
+
return data;
|
|
12
|
+
}
|
|
13
|
+
function _chalk() {
|
|
14
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
15
|
+
_chalk = function() {
|
|
16
|
+
return data;
|
|
17
|
+
};
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
var _simulatorAppPrerequisite = require("./doctor/apple/SimulatorAppPrerequisite");
|
|
21
|
+
var _xcodePrerequisite = require("./doctor/apple/XcodePrerequisite");
|
|
8
22
|
var _validateDependenciesVersions = require("./doctor/dependencies/validateDependenciesVersions");
|
|
9
23
|
var _webSupportProjectPrerequisite = require("./doctor/web/WebSupportProjectPrerequisite");
|
|
10
24
|
var _startInterface = require("./interface/startInterface");
|
|
@@ -14,11 +28,11 @@ var _openPlatforms = require("./server/openPlatforms");
|
|
|
14
28
|
var _platformBundlers = require("./server/platformBundlers");
|
|
15
29
|
var Log = _interopRequireWildcard(require("../log"));
|
|
16
30
|
var _getDevClientProperties = _interopRequireDefault(require("../utils/analytics/getDevClientProperties"));
|
|
17
|
-
var _rudderstackClient = require("../utils/analytics/rudderstackClient");
|
|
18
31
|
var _exit = require("../utils/exit");
|
|
19
32
|
var _interactive = require("../utils/interactive");
|
|
20
33
|
var _nodeEnv = require("../utils/nodeEnv");
|
|
21
34
|
var _profile = require("../utils/profile");
|
|
35
|
+
var _telemetry = require("../utils/telemetry");
|
|
22
36
|
function _interopRequireDefault(obj) {
|
|
23
37
|
return obj && obj.__esModule ? obj : {
|
|
24
38
|
default: obj
|
|
@@ -88,10 +102,21 @@ async function getMultiBundlerStartOptions(projectRoot, options, settings, platf
|
|
|
88
102
|
];
|
|
89
103
|
}
|
|
90
104
|
async function startAsync(projectRoot, options, settings) {
|
|
91
|
-
|
|
105
|
+
var ref;
|
|
106
|
+
Log.log(_chalk().default.gray(`Starting project at ${projectRoot}`));
|
|
92
107
|
(0, _nodeEnv).setNodeEnv(options.dev ? "development" : "production");
|
|
93
108
|
require("@expo/env").load(projectRoot);
|
|
94
|
-
const { exp , pkg } = (0, _profile).profile(_config.getConfig)(projectRoot);
|
|
109
|
+
const { exp , pkg } = (0, _profile).profile(_config().getConfig)(projectRoot);
|
|
110
|
+
if (((ref = exp.platforms) == null ? void 0 : ref.includes("ios")) && process.platform !== "win32") {
|
|
111
|
+
// If Xcode could potentially be used, then we should eagerly perform the
|
|
112
|
+
// assertions since they can take a while on cold boots.
|
|
113
|
+
(0, _xcodePrerequisite).getXcodeVersionAsync({
|
|
114
|
+
silent: true
|
|
115
|
+
});
|
|
116
|
+
_simulatorAppPrerequisite.SimulatorAppPrerequisite.instance.assertAsync().catch(()=>{
|
|
117
|
+
// noop -- this will be thrown again when the user attempts to open the project.
|
|
118
|
+
});
|
|
119
|
+
}
|
|
95
120
|
const platformBundlers = (0, _platformBundlers).getPlatformBundlers(projectRoot, exp);
|
|
96
121
|
const [defaultOptions, startOptions] = await getMultiBundlerStartOptions(projectRoot, options, settings, platformBundlers);
|
|
97
122
|
const devServerManager = new _devServerManager.DevServerManager(projectRoot, defaultOptions);
|
|
@@ -126,24 +151,24 @@ async function startAsync(projectRoot, options, settings) {
|
|
|
126
151
|
]
|
|
127
152
|
});
|
|
128
153
|
} else {
|
|
129
|
-
var
|
|
154
|
+
var ref1;
|
|
130
155
|
// Display the server location in CI...
|
|
131
|
-
const url = (
|
|
156
|
+
const url = (ref1 = devServerManager.getDefaultDevServer()) == null ? void 0 : ref1.getDevServerUrl();
|
|
132
157
|
if (url) {
|
|
133
|
-
Log.log(_chalk.default`Waiting on {underline ${url}}`);
|
|
158
|
+
Log.log(_chalk().default`Waiting on {underline ${url}}`);
|
|
134
159
|
}
|
|
135
160
|
}
|
|
136
161
|
// Final note about closing the server.
|
|
137
162
|
const logLocation = settings.webOnly ? "in the browser console" : "below";
|
|
138
|
-
Log.log(_chalk.default`Logs for your project will appear ${logLocation}.${(0, _interactive).isInteractive() ? _chalk.default.dim(` Press Ctrl+C to exit.`) : ""}`);
|
|
163
|
+
Log.log(_chalk().default`Logs for your project will appear ${logLocation}.${(0, _interactive).isInteractive() ? _chalk().default.dim(` Press Ctrl+C to exit.`) : ""}`);
|
|
139
164
|
}
|
|
140
165
|
async function trackAsync(projectRoot, exp) {
|
|
141
|
-
await (0,
|
|
166
|
+
await (0, _telemetry).logEventAsync("dev client start command", {
|
|
142
167
|
status: "started",
|
|
143
168
|
...(0, _getDevClientProperties).default(projectRoot, exp)
|
|
144
169
|
});
|
|
145
170
|
(0, _exit).installExitHooks(async ()=>{
|
|
146
|
-
await (0,
|
|
171
|
+
await (0, _telemetry).logEventAsync("dev client start command", {
|
|
147
172
|
status: "finished",
|
|
148
173
|
...(0, _getDevClientProperties).default(projectRoot, exp)
|
|
149
174
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/start/startAsync.ts"],"sourcesContent":["import { ExpoConfig, getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { validateDependenciesVersionsAsync } from './doctor/dependencies/validateDependenciesVersions';\nimport { WebSupportProjectPrerequisite } from './doctor/web/WebSupportProjectPrerequisite';\nimport { startInterfaceAsync } from './interface/startInterface';\nimport { Options, resolvePortsAsync } from './resolveOptions';\nimport { BundlerStartOptions } from './server/BundlerDevServer';\nimport { DevServerManager, MultiBundlerStartOptions } from './server/DevServerManager';\nimport { openPlatformsAsync } from './server/openPlatforms';\nimport { getPlatformBundlers, PlatformBundlers } from './server/platformBundlers';\nimport * as Log from '../log';\nimport getDevClientProperties from '../utils/analytics/getDevClientProperties';\nimport { logEventAsync } from '../utils/analytics/rudderstackClient';\nimport { installExitHooks } from '../utils/exit';\nimport { isInteractive } from '../utils/interactive';\nimport { setNodeEnv } from '../utils/nodeEnv';\nimport { profile } from '../utils/profile';\n\nasync function getMultiBundlerStartOptions(\n projectRoot: string,\n options: Options,\n settings: { webOnly?: boolean },\n platformBundlers: PlatformBundlers\n): Promise<[BundlerStartOptions, MultiBundlerStartOptions]> {\n const commonOptions: BundlerStartOptions = {\n mode: options.dev ? 'development' : 'production',\n devClient: options.devClient,\n privateKeyPath: options.privateKeyPath ?? undefined,\n https: options.https,\n maxWorkers: options.maxWorkers,\n resetDevServer: options.clear,\n minify: options.minify,\n location: {\n hostType: options.host,\n scheme: options.scheme,\n },\n };\n const multiBundlerSettings = await resolvePortsAsync(projectRoot, options, settings);\n\n const optionalBundlers: Partial<PlatformBundlers> = { ...platformBundlers };\n // In the default case, we don't want to start multiple bundlers since this is\n // a bit slower. Our priority (for legacy) is native platforms.\n if (!options.web) {\n delete optionalBundlers['web'];\n }\n\n const bundlers = [...new Set(Object.values(optionalBundlers))];\n const multiBundlerStartOptions = bundlers.map((bundler) => {\n const port =\n bundler === 'webpack' ? multiBundlerSettings.webpackPort : multiBundlerSettings.metroPort;\n return {\n type: bundler,\n options: {\n ...commonOptions,\n port,\n },\n };\n });\n\n return [commonOptions, multiBundlerStartOptions];\n}\n\nexport async function startAsync(\n projectRoot: string,\n options: Options,\n settings: { webOnly?: boolean }\n) {\n Log.log(chalk.gray(`Starting project at ${projectRoot}`));\n\n setNodeEnv(options.dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n const { exp, pkg } = profile(getConfig)(projectRoot);\n\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n\n const [defaultOptions, startOptions] = await getMultiBundlerStartOptions(\n projectRoot,\n options,\n settings,\n platformBundlers\n );\n\n const devServerManager = new DevServerManager(projectRoot, defaultOptions);\n\n // Validations\n\n if (options.web || settings.webOnly) {\n await devServerManager.ensureProjectPrerequisiteAsync(WebSupportProjectPrerequisite);\n }\n\n // Start the server as soon as possible.\n await profile(devServerManager.startAsync.bind(devServerManager))(startOptions);\n\n if (!settings.webOnly) {\n await devServerManager.watchEnvironmentVariables();\n\n // After the server starts, we can start attempting to bootstrap TypeScript.\n await devServerManager.bootstrapTypeScriptAsync();\n }\n\n if (!settings.webOnly && !options.devClient) {\n await profile(validateDependenciesVersionsAsync)(projectRoot, exp, pkg);\n }\n\n // Some tracking thing\n\n if (options.devClient) {\n await trackAsync(projectRoot, exp);\n }\n\n // Open project on devices.\n await profile(openPlatformsAsync)(devServerManager, options);\n\n // Present the Terminal UI.\n if (isInteractive()) {\n await profile(startInterfaceAsync)(devServerManager, {\n platforms: exp.platforms ?? ['ios', 'android', 'web'],\n });\n } else {\n // Display the server location in CI...\n const url = devServerManager.getDefaultDevServer()?.getDevServerUrl();\n if (url) {\n Log.log(chalk`Waiting on {underline ${url}}`);\n }\n }\n\n // Final note about closing the server.\n const logLocation = settings.webOnly ? 'in the browser console' : 'below';\n Log.log(\n chalk`Logs for your project will appear ${logLocation}.${\n isInteractive() ? chalk.dim(` Press Ctrl+C to exit.`) : ''\n }`\n );\n}\n\nasync function trackAsync(projectRoot: string, exp: ExpoConfig): Promise<void> {\n await logEventAsync('dev client start command', {\n status: 'started',\n ...getDevClientProperties(projectRoot, exp),\n });\n installExitHooks(async () => {\n await logEventAsync('dev client start command', {\n status: 'finished',\n ...getDevClientProperties(projectRoot, exp),\n });\n // UnifiedAnalytics.flush();\n });\n}\n"],"names":["startAsync","Log","getMultiBundlerStartOptions","projectRoot","options","settings","platformBundlers","commonOptions","mode","dev","devClient","privateKeyPath","undefined","https","maxWorkers","resetDevServer","clear","minify","location","hostType","host","scheme","multiBundlerSettings","resolvePortsAsync","optionalBundlers","web","bundlers","Set","Object","values","multiBundlerStartOptions","map","bundler","port","webpackPort","metroPort","type","log","chalk","gray","setNodeEnv","require","load","exp","pkg","profile","getConfig","getPlatformBundlers","defaultOptions","startOptions","devServerManager","DevServerManager","webOnly","ensureProjectPrerequisiteAsync","WebSupportProjectPrerequisite","bind","watchEnvironmentVariables","bootstrapTypeScriptAsync","validateDependenciesVersionsAsync","trackAsync","openPlatformsAsync","isInteractive","startInterfaceAsync","platforms","url","getDefaultDevServer","getDevServerUrl","logLocation","dim","logEventAsync","status","getDevClientProperties","installExitHooks"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/start/startAsync.ts"],"sourcesContent":["import { ExpoConfig, getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { SimulatorAppPrerequisite } from './doctor/apple/SimulatorAppPrerequisite';\nimport { getXcodeVersionAsync } from './doctor/apple/XcodePrerequisite';\nimport { validateDependenciesVersionsAsync } from './doctor/dependencies/validateDependenciesVersions';\nimport { WebSupportProjectPrerequisite } from './doctor/web/WebSupportProjectPrerequisite';\nimport { startInterfaceAsync } from './interface/startInterface';\nimport { Options, resolvePortsAsync } from './resolveOptions';\nimport { BundlerStartOptions } from './server/BundlerDevServer';\nimport { DevServerManager, MultiBundlerStartOptions } from './server/DevServerManager';\nimport { openPlatformsAsync } from './server/openPlatforms';\nimport { getPlatformBundlers, PlatformBundlers } from './server/platformBundlers';\nimport * as Log from '../log';\nimport getDevClientProperties from '../utils/analytics/getDevClientProperties';\nimport { installExitHooks } from '../utils/exit';\nimport { isInteractive } from '../utils/interactive';\nimport { setNodeEnv } from '../utils/nodeEnv';\nimport { profile } from '../utils/profile';\nimport { logEventAsync } from '../utils/telemetry';\n\nasync function getMultiBundlerStartOptions(\n projectRoot: string,\n options: Options,\n settings: { webOnly?: boolean },\n platformBundlers: PlatformBundlers\n): Promise<[BundlerStartOptions, MultiBundlerStartOptions]> {\n const commonOptions: BundlerStartOptions = {\n mode: options.dev ? 'development' : 'production',\n devClient: options.devClient,\n privateKeyPath: options.privateKeyPath ?? undefined,\n https: options.https,\n maxWorkers: options.maxWorkers,\n resetDevServer: options.clear,\n minify: options.minify,\n location: {\n hostType: options.host,\n scheme: options.scheme,\n },\n };\n const multiBundlerSettings = await resolvePortsAsync(projectRoot, options, settings);\n\n const optionalBundlers: Partial<PlatformBundlers> = { ...platformBundlers };\n // In the default case, we don't want to start multiple bundlers since this is\n // a bit slower. Our priority (for legacy) is native platforms.\n if (!options.web) {\n delete optionalBundlers['web'];\n }\n\n const bundlers = [...new Set(Object.values(optionalBundlers))];\n const multiBundlerStartOptions = bundlers.map((bundler) => {\n const port =\n bundler === 'webpack' ? multiBundlerSettings.webpackPort : multiBundlerSettings.metroPort;\n return {\n type: bundler,\n options: {\n ...commonOptions,\n port,\n },\n };\n });\n\n return [commonOptions, multiBundlerStartOptions];\n}\n\nexport async function startAsync(\n projectRoot: string,\n options: Options,\n settings: { webOnly?: boolean }\n) {\n Log.log(chalk.gray(`Starting project at ${projectRoot}`));\n\n setNodeEnv(options.dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n const { exp, pkg } = profile(getConfig)(projectRoot);\n\n if (exp.platforms?.includes('ios') && process.platform !== 'win32') {\n // If Xcode could potentially be used, then we should eagerly perform the\n // assertions since they can take a while on cold boots.\n getXcodeVersionAsync({ silent: true });\n SimulatorAppPrerequisite.instance.assertAsync().catch(() => {\n // noop -- this will be thrown again when the user attempts to open the project.\n });\n }\n\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n\n const [defaultOptions, startOptions] = await getMultiBundlerStartOptions(\n projectRoot,\n options,\n settings,\n platformBundlers\n );\n\n const devServerManager = new DevServerManager(projectRoot, defaultOptions);\n\n // Validations\n\n if (options.web || settings.webOnly) {\n await devServerManager.ensureProjectPrerequisiteAsync(WebSupportProjectPrerequisite);\n }\n\n // Start the server as soon as possible.\n await profile(devServerManager.startAsync.bind(devServerManager))(startOptions);\n\n if (!settings.webOnly) {\n await devServerManager.watchEnvironmentVariables();\n\n // After the server starts, we can start attempting to bootstrap TypeScript.\n await devServerManager.bootstrapTypeScriptAsync();\n }\n\n if (!settings.webOnly && !options.devClient) {\n await profile(validateDependenciesVersionsAsync)(projectRoot, exp, pkg);\n }\n\n // Some tracking thing\n\n if (options.devClient) {\n await trackAsync(projectRoot, exp);\n }\n\n // Open project on devices.\n await profile(openPlatformsAsync)(devServerManager, options);\n\n // Present the Terminal UI.\n if (isInteractive()) {\n await profile(startInterfaceAsync)(devServerManager, {\n platforms: exp.platforms ?? ['ios', 'android', 'web'],\n });\n } else {\n // Display the server location in CI...\n const url = devServerManager.getDefaultDevServer()?.getDevServerUrl();\n if (url) {\n Log.log(chalk`Waiting on {underline ${url}}`);\n }\n }\n\n // Final note about closing the server.\n const logLocation = settings.webOnly ? 'in the browser console' : 'below';\n Log.log(\n chalk`Logs for your project will appear ${logLocation}.${\n isInteractive() ? chalk.dim(` Press Ctrl+C to exit.`) : ''\n }`\n );\n}\n\nasync function trackAsync(projectRoot: string, exp: ExpoConfig): Promise<void> {\n await logEventAsync('dev client start command', {\n status: 'started',\n ...getDevClientProperties(projectRoot, exp),\n });\n installExitHooks(async () => {\n await logEventAsync('dev client start command', {\n status: 'finished',\n ...getDevClientProperties(projectRoot, exp),\n });\n // UnifiedAnalytics.flush();\n });\n}\n"],"names":["startAsync","Log","getMultiBundlerStartOptions","projectRoot","options","settings","platformBundlers","commonOptions","mode","dev","devClient","privateKeyPath","undefined","https","maxWorkers","resetDevServer","clear","minify","location","hostType","host","scheme","multiBundlerSettings","resolvePortsAsync","optionalBundlers","web","bundlers","Set","Object","values","multiBundlerStartOptions","map","bundler","port","webpackPort","metroPort","type","exp","log","chalk","gray","setNodeEnv","require","load","pkg","profile","getConfig","platforms","includes","process","platform","getXcodeVersionAsync","silent","SimulatorAppPrerequisite","instance","assertAsync","catch","getPlatformBundlers","defaultOptions","startOptions","devServerManager","DevServerManager","webOnly","ensureProjectPrerequisiteAsync","WebSupportProjectPrerequisite","bind","watchEnvironmentVariables","bootstrapTypeScriptAsync","validateDependenciesVersionsAsync","trackAsync","openPlatformsAsync","isInteractive","startInterfaceAsync","url","getDefaultDevServer","getDevServerUrl","logLocation","dim","logEventAsync","status","getDevClientProperties","installExitHooks"],"mappings":"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"}
|
|
@@ -2,10 +2,34 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
function _chalk() {
|
|
6
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
7
|
+
_chalk = function() {
|
|
8
|
+
return data;
|
|
9
|
+
};
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
function _fs() {
|
|
13
|
+
const data = require("fs");
|
|
14
|
+
_fs = function() {
|
|
15
|
+
return data;
|
|
16
|
+
};
|
|
17
|
+
return data;
|
|
18
|
+
}
|
|
19
|
+
function _path() {
|
|
20
|
+
const data = _interopRequireDefault(require("path"));
|
|
21
|
+
_path = function() {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
return data;
|
|
25
|
+
}
|
|
26
|
+
function _resolveFrom() {
|
|
27
|
+
const data = _interopRequireDefault(require("resolve-from"));
|
|
28
|
+
_resolveFrom = function() {
|
|
29
|
+
return data;
|
|
30
|
+
};
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
9
33
|
var _fn = require("./fn");
|
|
10
34
|
var Log = _interopRequireWildcard(require("../log"));
|
|
11
35
|
function _interopRequireDefault(obj) {
|
|
@@ -52,7 +76,7 @@ class FileNotifier {
|
|
|
52
76
|
}
|
|
53
77
|
/** Get the file in the project. */ resolveFilePath() {
|
|
54
78
|
for (const moduleId of this.moduleIds){
|
|
55
|
-
const filePath = _resolveFrom.default.silent(this.projectRoot, moduleId);
|
|
79
|
+
const filePath = _resolveFrom().default.silent(this.projectRoot, moduleId);
|
|
56
80
|
if (filePath) {
|
|
57
81
|
return filePath;
|
|
58
82
|
}
|
|
@@ -72,13 +96,13 @@ class FileNotifier {
|
|
|
72
96
|
(ref = (_obj = this).unsubscribe) == null ? void 0 : ref.call(_obj);
|
|
73
97
|
}
|
|
74
98
|
startWatchingFile(filePath, callback) {
|
|
75
|
-
const configName = _path.default.relative(this.projectRoot, filePath);
|
|
99
|
+
const configName = _path().default.relative(this.projectRoot, filePath);
|
|
76
100
|
const listener = (cur, prev)=>{
|
|
77
101
|
if (prev.size || cur.size) {
|
|
78
|
-
Log.log(`\u203A Detected a change in ${_chalk.default.bold(configName)}. Restart the server to see the new results.` + (this.settings.additionalWarning || ""));
|
|
102
|
+
Log.log(`\u203A Detected a change in ${_chalk().default.bold(configName)}. Restart the server to see the new results.` + (this.settings.additionalWarning || ""));
|
|
79
103
|
}
|
|
80
104
|
};
|
|
81
|
-
const watcher = (
|
|
105
|
+
const watcher = _fs().watchFile(filePath, callback != null ? callback : listener);
|
|
82
106
|
this.unsubscribe = ()=>{
|
|
83
107
|
watcher.unref();
|
|
84
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/FileNotifier.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { watchFile } from 'fs';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { memoize } from './fn';\nimport * as Log from '../log';\n\nconst debug = require('debug')('expo:utils:fileNotifier') as typeof console.log;\n\n/** Observes and reports file changes. */\nexport class FileNotifier {\n static instances: FileNotifier[] = [];\n\n static stopAll() {\n for (const instance of FileNotifier.instances) {\n instance.stopObserving();\n }\n }\n\n private unsubscribe: (() => void) | null = null;\n\n constructor(\n /** Project root to resolve the module IDs relative to. */\n private projectRoot: string,\n /** List of module IDs sorted by priority. Only the first file that exists will be observed. */\n private moduleIds: string[],\n private settings: {\n /** An additional warning message to add to the notice. */\n additionalWarning?: string;\n } = {}\n ) {\n FileNotifier.instances.push(this);\n }\n\n /** Get the file in the project. */\n private resolveFilePath(): string | null {\n for (const moduleId of this.moduleIds) {\n const filePath = resolveFrom.silent(this.projectRoot, moduleId);\n if (filePath) {\n return filePath;\n }\n }\n return null;\n }\n\n public startObserving(callback?: (cur: any, prev: any) => void) {\n const configPath = this.resolveFilePath();\n if (configPath) {\n debug(`Observing ${configPath}`);\n return this.watchFile(configPath, callback);\n }\n return configPath;\n }\n\n public stopObserving() {\n this.unsubscribe?.();\n }\n\n /** Watch the file and warn to reload the CLI if it changes. */\n public watchFile = memoize(this.startWatchingFile.bind(this));\n\n private startWatchingFile(filePath: string, callback?: (cur: any, prev: any) => void): string {\n const configName = path.relative(this.projectRoot, filePath);\n const listener = (cur: any, prev: any) => {\n if (prev.size || cur.size) {\n Log.log(\n `\\u203A Detected a change in ${chalk.bold(\n configName\n )}. Restart the server to see the new results.` + (this.settings.additionalWarning || '')\n );\n }\n };\n\n const watcher = watchFile(filePath, callback ?? listener);\n\n this.unsubscribe = () => {\n watcher.unref();\n };\n\n return filePath;\n }\n}\n"],"names":["Log","debug","require","FileNotifier","instances","stopAll","instance","stopObserving","constructor","projectRoot","moduleIds","settings","unsubscribe","watchFile","memoize","startWatchingFile","bind","push","resolveFilePath","moduleId","filePath","resolveFrom","silent","startObserving","callback","configPath","configName","path","relative","listener","cur","prev","size","log","chalk","bold","additionalWarning","watcher","unref"],"mappings":"AAAA;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/FileNotifier.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { watchFile } from 'fs';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { memoize } from './fn';\nimport * as Log from '../log';\n\nconst debug = require('debug')('expo:utils:fileNotifier') as typeof console.log;\n\n/** Observes and reports file changes. */\nexport class FileNotifier {\n static instances: FileNotifier[] = [];\n\n static stopAll() {\n for (const instance of FileNotifier.instances) {\n instance.stopObserving();\n }\n }\n\n private unsubscribe: (() => void) | null = null;\n\n constructor(\n /** Project root to resolve the module IDs relative to. */\n private projectRoot: string,\n /** List of module IDs sorted by priority. Only the first file that exists will be observed. */\n private moduleIds: string[],\n private settings: {\n /** An additional warning message to add to the notice. */\n additionalWarning?: string;\n } = {}\n ) {\n FileNotifier.instances.push(this);\n }\n\n /** Get the file in the project. */\n private resolveFilePath(): string | null {\n for (const moduleId of this.moduleIds) {\n const filePath = resolveFrom.silent(this.projectRoot, moduleId);\n if (filePath) {\n return filePath;\n }\n }\n return null;\n }\n\n public startObserving(callback?: (cur: any, prev: any) => void) {\n const configPath = this.resolveFilePath();\n if (configPath) {\n debug(`Observing ${configPath}`);\n return this.watchFile(configPath, callback);\n }\n return configPath;\n }\n\n public stopObserving() {\n this.unsubscribe?.();\n }\n\n /** Watch the file and warn to reload the CLI if it changes. */\n public watchFile = memoize(this.startWatchingFile.bind(this));\n\n private startWatchingFile(filePath: string, callback?: (cur: any, prev: any) => void): string {\n const configName = path.relative(this.projectRoot, filePath);\n const listener = (cur: any, prev: any) => {\n if (prev.size || cur.size) {\n Log.log(\n `\\u203A Detected a change in ${chalk.bold(\n configName\n )}. Restart the server to see the new results.` + (this.settings.additionalWarning || '')\n );\n }\n };\n\n const watcher = watchFile(filePath, callback ?? listener);\n\n this.unsubscribe = () => {\n watcher.unref();\n };\n\n return filePath;\n }\n}\n"],"names":["Log","debug","require","FileNotifier","instances","stopAll","instance","stopObserving","constructor","projectRoot","moduleIds","settings","unsubscribe","watchFile","memoize","startWatchingFile","bind","push","resolveFilePath","moduleId","filePath","resolveFrom","silent","startObserving","callback","configPath","configName","path","relative","listener","cur","prev","size","log","chalk","bold","additionalWarning","watcher","unref"],"mappings":"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"}
|
|
@@ -4,9 +4,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.default = getDevClientProperties;
|
|
6
6
|
exports.hasDirectDevClientDependency = hasDirectDevClientDependency;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
function _config() {
|
|
8
|
+
const data = require("@expo/config");
|
|
9
|
+
_config = function() {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _jsonFile() {
|
|
15
|
+
const data = _interopRequireDefault(require("@expo/json-file"));
|
|
16
|
+
_jsonFile = function() {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _resolveFrom() {
|
|
22
|
+
const data = _interopRequireDefault(require("resolve-from"));
|
|
23
|
+
_resolveFrom = function() {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
10
28
|
var _fn = require("../fn");
|
|
11
29
|
function getDevClientProperties(projectRoot, exp) {
|
|
12
30
|
return {
|
|
@@ -24,24 +42,24 @@ function _interopRequireDefault(obj) {
|
|
|
24
42
|
};
|
|
25
43
|
}
|
|
26
44
|
const getAccountName = (0, _fn).memoize((exp)=>{
|
|
27
|
-
return (
|
|
45
|
+
return _config().getAccountUsername(exp);
|
|
28
46
|
});
|
|
29
47
|
function hasDirectDevClientDependency(projectRoot) {
|
|
30
48
|
var ref, ref1;
|
|
31
|
-
const pkg = (
|
|
49
|
+
const pkg = _config().getPackageJson(projectRoot);
|
|
32
50
|
return !!((ref = pkg.dependencies) == null ? void 0 : ref["expo-dev-client"]) || !!((ref1 = pkg.devDependencies) == null ? void 0 : ref1["expo-dev-client"]);
|
|
33
51
|
}
|
|
34
52
|
const getDevClientVersion = (0, _fn).memoize((projectRoot)=>{
|
|
35
53
|
try {
|
|
36
|
-
const devClientPackage = _resolveFrom.default.silent(projectRoot, "expo-dev-client/package.json");
|
|
54
|
+
const devClientPackage = _resolveFrom().default.silent(projectRoot, "expo-dev-client/package.json");
|
|
37
55
|
if (devClientPackage) {
|
|
38
|
-
return _jsonFile.default.read(devClientPackage).version;
|
|
56
|
+
return _jsonFile().default.read(devClientPackage).version;
|
|
39
57
|
}
|
|
40
58
|
} catch {}
|
|
41
59
|
return undefined;
|
|
42
60
|
});
|
|
43
61
|
const getProjectType = (0, _fn).memoize((projectRoot)=>{
|
|
44
|
-
return (
|
|
62
|
+
return _config().getDefaultTarget(projectRoot) === "managed" ? "managed" : "generic";
|
|
45
63
|
});
|
|
46
64
|
|
|
47
65
|
//# sourceMappingURL=getDevClientProperties.js.map
|