@expo/cli 0.22.25 → 0.22.27
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 +91 -93
- package/build/bin/cli.map +1 -1
- package/build/metro-require/require.js +52 -53
- package/build/src/api/endpoint.js +2 -6
- package/build/src/api/endpoint.js.map +1 -1
- package/build/src/api/getExpoGoIntermediateCertificate.js +3 -5
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
- package/build/src/api/getExpoSchema.js +12 -16
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/getNativeModuleVersions.js +4 -6
- package/build/src/api/getNativeModuleVersions.js.map +1 -1
- package/build/src/api/getProjectDevelopmentCertificate.js +3 -5
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
- package/build/src/api/getVersions.js +5 -7
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/graphql/client.js +26 -32
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +4 -6
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +3 -5
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +1 -3
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemResponseCache.js +8 -10
- package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/ResponseCache.js +12 -20
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +11 -13
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +35 -53
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/client.types.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +3 -5
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js +3 -5
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProgress.js +7 -11
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +3 -5
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithUserAgent.js +6 -8
- package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
- package/build/src/api/settings.js +5 -7
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +17 -23
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +21 -39
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +21 -27
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +26 -30
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +29 -35
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +30 -44
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +23 -29
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +21 -25
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +6 -8
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +16 -20
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +12 -14
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/resolveOptions.js +2 -4
- package/build/src/customize/resolveOptions.js.map +1 -1
- package/build/src/customize/templates.js +54 -58
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +7 -11
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +9 -11
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEager.js +6 -8
- package/build/src/export/embed/exportEager.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +61 -71
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/exportServer.js +55 -57
- package/build/src/export/embed/exportServer.js.map +1 -1
- package/build/src/export/embed/index.js +40 -44
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +36 -44
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +27 -39
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +63 -67
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +27 -35
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +9 -13
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportDomComponents.js +45 -53
- package/build/src/export/exportDomComponents.js.map +1 -1
- package/build/src/export/exportHermes.js +63 -85
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +62 -72
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +27 -33
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +5 -7
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +9 -11
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/html.js +6 -10
- package/build/src/export/html.js.map +1 -1
- package/build/src/export/index.js +28 -32
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +30 -36
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +34 -42
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +6 -10
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +24 -28
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +46 -50
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +11 -13
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +15 -19
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/export/web/resolveOptions.js +3 -5
- package/build/src/export/web/resolveOptions.js.map +1 -1
- package/build/src/export/writeContents.js +2 -4
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/graphql/generated.js +274 -400
- package/build/src/graphql/generated.js.map +1 -1
- package/build/src/install/applyPlugins.js +8 -11
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +22 -26
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +13 -17
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +16 -18
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +26 -32
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +18 -22
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/resolveOptions.js +19 -21
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +14 -18
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/install/utils/checkPackagesCompatibility.js +11 -13
- package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
- package/build/src/install/utils/parsePackageSpecifier.js +22 -0
- package/build/src/install/utils/parsePackageSpecifier.js.map +1 -0
- package/build/src/lint/ESlintPrerequisite.js +44 -50
- package/build/src/lint/ESlintPrerequisite.js.map +1 -1
- package/build/src/lint/index.js +8 -12
- package/build/src/lint/index.js.map +1 -1
- package/build/src/lint/lintAsync.js +8 -10
- package/build/src/lint/lintAsync.js.map +1 -1
- package/build/src/log.js +16 -36
- package/build/src/log.js.map +1 -1
- package/build/src/login/index.js +20 -24
- package/build/src/login/index.js.map +1 -1
- package/build/src/logout/index.js +7 -11
- package/build/src/logout/index.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +26 -38
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +14 -18
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +13 -17
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +4 -6
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +32 -36
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +25 -29
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +40 -46
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +52 -66
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +32 -36
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +13 -19
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +39 -53
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +8 -12
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/register/index.js +7 -11
- package/build/src/register/index.js.map +1 -1
- package/build/src/register/registerAsync.js +3 -5
- package/build/src/register/registerAsync.js.map +1 -1
- package/build/src/run/android/index.js +32 -36
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveDevice.js +8 -10
- package/build/src/run/android/resolveDevice.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +16 -18
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
- package/build/src/run/android/resolveInstallApkName.js +15 -17
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +10 -12
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +2 -4
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +21 -23
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +5 -7
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +7 -13
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +23 -27
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +56 -74
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +63 -69
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +26 -29
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +25 -28
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +26 -29
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -22
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +29 -32
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +24 -28
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +4 -7
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +27 -28
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +17 -23
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +132 -146
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +21 -29
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +21 -29
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +22 -34
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +17 -27
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +39 -53
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +9 -13
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +19 -27
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/settings.js +5 -9
- package/build/src/run/ios/codeSigning/settings.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +12 -14
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +21 -27
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +36 -40
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +17 -23
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/appleDestinations.js +36 -38
- package/build/src/run/ios/options/appleDestinations.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +16 -20
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +24 -30
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +23 -31
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveOptions.js +5 -7
- package/build/src/run/ios/options/resolveOptions.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +5 -7
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +44 -48
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/ios/validateExternalBinary.js +22 -24
- package/build/src/run/ios/validateExternalBinary.js.map +1 -1
- package/build/src/run/resolveBundlerProps.js +2 -4
- package/build/src/run/resolveBundlerProps.js.map +1 -1
- package/build/src/run/startBundler.js +12 -16
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/serve/index.js +16 -20
- package/build/src/serve/index.js.map +1 -1
- package/build/src/serve/serveAsync.js +32 -36
- package/build/src/serve/serveAsync.js.map +1 -1
- package/build/src/start/detectDevClient.js +9 -13
- package/build/src/start/detectDevClient.js.map +1 -1
- package/build/src/start/doctor/Prerequisite.js +7 -12
- package/build/src/start/doctor/Prerequisite.js.map +1 -1
- package/build/src/start/doctor/SecurityBinPrerequisite.js +11 -13
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +19 -23
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +19 -23
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +45 -51
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +16 -18
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +19 -23
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +25 -31
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -25
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +32 -40
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +26 -32
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +31 -41
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +29 -34
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/ngrok/NgrokResolver.js +8 -12
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +28 -32
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +17 -23
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +27 -33
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +42 -46
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js +14 -18
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +80 -94
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +40 -44
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +61 -65
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +4 -6
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +6 -10
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +20 -25
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +15 -17
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +35 -39
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +16 -18
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +20 -24
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +9 -11
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +22 -26
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +83 -121
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +12 -20
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +26 -36
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/getDevices.js +5 -7
- package/build/src/start/platforms/android/getDevices.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +28 -36
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +15 -19
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +19 -21
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +31 -37
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
- package/build/src/start/platforms/ios/assertSystemRequirements.js +7 -9
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/devicectl.js +73 -87
- package/build/src/start/platforms/ios/devicectl.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +18 -22
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +19 -29
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +10 -14
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +74 -102
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +52 -57
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +18 -22
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +9 -19
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/project/dotExpo.js +11 -15
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/project/settings.js +2 -4
- package/build/src/start/project/settings.js.map +1 -1
- package/build/src/start/resolveOptions.js +40 -48
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +51 -55
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/AsyncWsTunnel.js +36 -40
- package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +79 -81
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +38 -42
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +14 -18
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +14 -18
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +10 -16
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +33 -36
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +21 -29
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +4 -6
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +275 -269
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +56 -63
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +33 -39
- 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 +40 -46
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +28 -32
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +92 -96
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +30 -32
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +11 -13
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +1 -3
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
- package/build/src/start/server/metro/debugging/attachAtlas.js +22 -26
- package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +17 -19
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +31 -25
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
- package/build/src/start/server/metro/debugging/getDebuggerType.js +4 -6
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +8 -14
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +5 -7
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +6 -8
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +5 -7
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +12 -14
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +10 -14
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
- package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -6
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
- package/build/src/start/server/metro/debugging/types.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createEventSocket.js +16 -18
- package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMessageSocket.js +21 -23
- package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +21 -23
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +2 -4
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +2 -4
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js +4 -8
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
- package/build/src/start/server/metro/externals.js +25 -33
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +12 -16
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +9 -11
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +18 -22
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +79 -85
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxLog.js +36 -40
- package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +14 -20
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js +6 -10
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +78 -88
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroErrors.js +4 -8
- package/build/src/start/server/metro/metroErrors.js.map +1 -1
- package/build/src/start/server/metro/metroPrivateServer.js +7 -9
- package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +8 -10
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +22 -24
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +32 -48
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +22 -24
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +22 -24
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/symbolicate.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +29 -35
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +139 -149
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +39 -49
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +6 -8
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CorsMiddleware.js +15 -17
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +90 -52
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +19 -22
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DomComponentsMiddleware.js +27 -33
- package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +60 -64
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +9 -15
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/FaviconMiddleware.js +14 -15
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +2 -4
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +31 -34
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +56 -64
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +19 -23
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +19 -20
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +9 -11
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +11 -17
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
- package/build/src/start/server/middleware/inspector/CdpClient.js +10 -12
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +27 -35
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +19 -21
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +2 -6
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +96 -120
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/mutations.js +3 -7
- package/build/src/start/server/middleware/mutations.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +18 -26
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +15 -23
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +9 -11
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
- package/build/src/start/server/middleware/server.types.js.map +1 -1
- package/build/src/start/server/openPlatforms.js +8 -10
- package/build/src/start/server/openPlatforms.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +11 -13
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +50 -58
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +7 -11
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +54 -76
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +19 -21
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +28 -36
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +24 -28
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +46 -52
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +11 -15
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/formatWebpackMessages.js +26 -28
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +12 -18
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +12 -18
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +27 -31
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +17 -20
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/ansi.js +5 -7
- package/build/src/utils/ansi.js.map +1 -1
- package/build/src/utils/args.js +14 -24
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/array.js +6 -18
- package/build/src/utils/array.js.map +1 -1
- package/build/src/utils/cocoapods.js +46 -54
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +68 -78
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +12 -16
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/createTempPath.js +13 -17
- package/build/src/utils/createTempPath.js.map +1 -1
- package/build/src/utils/delay.js +6 -12
- package/build/src/utils/delay.js.map +1 -1
- package/build/src/utils/dir.js +28 -46
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +8 -10
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +21 -25
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +35 -41
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +59 -63
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +30 -37
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/exit.js +31 -35
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/expoUpdatesCli.js +22 -32
- package/build/src/utils/expoUpdatesCli.js.map +1 -1
- package/build/src/utils/fetch.js +4 -8
- package/build/src/utils/fetch.js.map +1 -1
- package/build/src/utils/filePath.js +6 -10
- package/build/src/utils/filePath.js.map +1 -1
- package/build/src/utils/findUp.js +9 -13
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/fn.js +2 -6
- package/build/src/utils/fn.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +26 -32
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +21 -29
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +20 -26
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +4 -8
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/interactive.js +1 -3
- package/build/src/utils/interactive.js.map +1 -1
- package/build/src/utils/ip.js +19 -21
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +9 -11
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/jsonSchemaDeref.js +18 -20
- package/build/src/utils/jsonSchemaDeref.js.map +1 -1
- package/build/src/utils/link.js +13 -17
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +28 -46
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +10 -16
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +6 -10
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/nodeEnv.js +6 -12
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +8 -10
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +36 -50
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/obj.js +5 -11
- package/build/src/utils/obj.js.map +1 -1
- package/build/src/utils/open.js +8 -10
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +7 -13
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +15 -21
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +33 -43
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +7 -11
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +5 -11
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +29 -47
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/resolveArgs.js +24 -36
- package/build/src/utils/resolveArgs.js.map +1 -1
- package/build/src/utils/scheme.js +32 -40
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/stream.js +3 -5
- package/build/src/utils/stream.js.map +1 -1
- package/build/src/utils/strings.js +4 -6
- package/build/src/utils/strings.js.map +1 -1
- package/build/src/utils/tar.js +15 -19
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/Telemetry.js +27 -29
- package/build/src/utils/telemetry/Telemetry.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +13 -15
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js +22 -26
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/RudderClient.js +8 -10
- package/build/src/utils/telemetry/clients/RudderClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/RudderDetachedClient.js +22 -26
- package/build/src/utils/telemetry/clients/RudderDetachedClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
- package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
- package/build/src/utils/telemetry/clients/flushRudderDetached.js +10 -10
- package/build/src/utils/telemetry/clients/flushRudderDetached.js.map +1 -1
- package/build/src/utils/telemetry/events.js +2 -4
- package/build/src/utils/telemetry/events.js.map +1 -1
- package/build/src/utils/telemetry/flushDetached.js.map +1 -1
- package/build/src/utils/telemetry/index.js +29 -25
- package/build/src/utils/telemetry/index.js.map +1 -1
- package/build/src/utils/telemetry/types.js.map +1 -1
- package/build/src/utils/telemetry/utils/constants.js +4 -8
- package/build/src/utils/telemetry/utils/constants.js.map +1 -1
- package/build/src/utils/telemetry/utils/context.js +14 -18
- package/build/src/utils/telemetry/utils/context.js.map +1 -1
- package/build/src/utils/template.js +4 -6
- package/build/src/utils/template.js.map +1 -1
- package/build/src/utils/terminal.js +2 -4
- package/build/src/utils/terminal.js.map +1 -1
- package/build/src/utils/tsconfig/evaluateTsConfig.js +17 -21
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +14 -18
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +5 -7
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -14
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +13 -23
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +86 -108
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +16 -22
- package/build/src/utils/variadic.js.map +1 -1
- package/build/src/whoami/index.js +7 -11
- package/build/src/whoami/index.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +7 -11
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +3 -3
|
@@ -9,47 +9,40 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
MetroTerminalReporter:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return formatUsingNodeStandardLibraryError;
|
|
17
|
-
},
|
|
18
|
-
isNodeStdLibraryModule: function() {
|
|
19
|
-
return isNodeStdLibraryModule;
|
|
20
|
-
},
|
|
21
|
-
stripMetroInfo: function() {
|
|
22
|
-
return stripMetroInfo;
|
|
23
|
-
}
|
|
12
|
+
MetroTerminalReporter: ()=>MetroTerminalReporter,
|
|
13
|
+
formatUsingNodeStandardLibraryError: ()=>formatUsingNodeStandardLibraryError,
|
|
14
|
+
isNodeStdLibraryModule: ()=>isNodeStdLibraryModule,
|
|
15
|
+
stripMetroInfo: ()=>stripMetroInfo
|
|
24
16
|
});
|
|
25
17
|
function _chalk() {
|
|
26
|
-
const data = /*#__PURE__*/
|
|
18
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
|
|
27
19
|
_chalk = function() {
|
|
28
20
|
return data;
|
|
29
21
|
};
|
|
30
22
|
return data;
|
|
31
23
|
}
|
|
32
24
|
function _path() {
|
|
33
|
-
const data = /*#__PURE__*/
|
|
25
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
34
26
|
_path = function() {
|
|
35
27
|
return data;
|
|
36
28
|
};
|
|
37
29
|
return data;
|
|
38
30
|
}
|
|
39
|
-
const
|
|
31
|
+
const _terminalReporter = require("./TerminalReporter");
|
|
40
32
|
const _externals = require("./externals");
|
|
41
33
|
const _link = require("../../../utils/link");
|
|
42
|
-
function
|
|
34
|
+
function _interopRequireDefault(obj) {
|
|
43
35
|
return obj && obj.__esModule ? obj : {
|
|
44
36
|
default: obj
|
|
45
37
|
};
|
|
46
38
|
}
|
|
47
39
|
const MAX_PROGRESS_BAR_CHAR_WIDTH = 16;
|
|
48
|
-
const DARK_BLOCK_CHAR =
|
|
49
|
-
const LIGHT_BLOCK_CHAR =
|
|
50
|
-
class MetroTerminalReporter extends
|
|
40
|
+
const DARK_BLOCK_CHAR = "▓";
|
|
41
|
+
const LIGHT_BLOCK_CHAR = "░";
|
|
42
|
+
class MetroTerminalReporter extends _terminalReporter.TerminalReporter {
|
|
51
43
|
constructor(projectRoot, terminal){
|
|
52
|
-
super(terminal)
|
|
44
|
+
super(terminal);
|
|
45
|
+
this.projectRoot = projectRoot;
|
|
53
46
|
}
|
|
54
47
|
// Used for testing
|
|
55
48
|
_getElapsedTime(startTime) {
|
|
@@ -60,25 +53,25 @@ class MetroTerminalReporter extends _TerminalReporter.TerminalReporter {
|
|
|
60
53
|
*
|
|
61
54
|
* @returns `iOS path/to/bundle.js ▓▓▓▓▓░░░░░░░░░░░ 36.6% (4790/7922)`
|
|
62
55
|
*/ _getBundleStatusMessage(progress, phase) {
|
|
63
|
-
var
|
|
56
|
+
var ref, ref1;
|
|
64
57
|
const env = getEnvironmentForBuildDetails(progress.bundleDetails);
|
|
65
58
|
const platform = env || getPlatformTagForBuildDetails(progress.bundleDetails);
|
|
66
|
-
const inProgress = phase ===
|
|
59
|
+
const inProgress = phase === "in_progress";
|
|
67
60
|
let localPath;
|
|
68
|
-
if (typeof ((
|
|
61
|
+
if (typeof ((ref = progress.bundleDetails) == null ? void 0 : (ref1 = ref.customTransformOptions) == null ? void 0 : ref1.dom) === "string" && progress.bundleDetails.customTransformOptions.dom.includes(_path().default.sep)) {
|
|
69
62
|
// Because we use a generated entry file for DOM components, we need to adjust the logging path so it
|
|
70
63
|
// shows a unique path for each component.
|
|
71
64
|
// Here, we take the relative import path and remove all the starting slashes.
|
|
72
|
-
localPath = progress.bundleDetails.customTransformOptions.dom.replace(/^(\.?\.[\\/])+/,
|
|
65
|
+
localPath = progress.bundleDetails.customTransformOptions.dom.replace(/^(\.?\.[\\/])+/, "");
|
|
73
66
|
} else {
|
|
74
67
|
const inputFile = progress.bundleDetails.entryFile;
|
|
75
68
|
localPath = _path().default.isAbsolute(inputFile) ? _path().default.relative(this.projectRoot, inputFile) : inputFile;
|
|
76
69
|
}
|
|
77
70
|
if (!inProgress) {
|
|
78
|
-
const status = phase ===
|
|
79
|
-
const color = phase ===
|
|
71
|
+
const status = phase === "done" ? `Bundled ` : `Bundling failed `;
|
|
72
|
+
const color = phase === "done" ? _chalk().default.green : _chalk().default.red;
|
|
80
73
|
const startTime = this._bundleTimers.get(progress.bundleDetails.buildID);
|
|
81
|
-
let time =
|
|
74
|
+
let time = "";
|
|
82
75
|
if (startTime != null) {
|
|
83
76
|
const elapsed = this._getElapsedTime(startTime);
|
|
84
77
|
const micro = Number(elapsed) / 1000;
|
|
@@ -89,39 +82,39 @@ class MetroTerminalReporter extends _TerminalReporter.TerminalReporter {
|
|
|
89
82
|
// Format as microseconds to nearest tenth
|
|
90
83
|
time = _chalk().default.cyan.bold(`0.${tenthFractionOfMicro}ms`);
|
|
91
84
|
} else {
|
|
92
|
-
time = _chalk().default.dim(converted.toFixed(0) +
|
|
85
|
+
time = _chalk().default.dim(converted.toFixed(0) + "ms");
|
|
93
86
|
}
|
|
94
87
|
}
|
|
95
88
|
// iOS Bundled 150ms
|
|
96
|
-
const plural = progress.totalFileCount === 1 ?
|
|
89
|
+
const plural = progress.totalFileCount === 1 ? "" : "s";
|
|
97
90
|
return color(platform + status) + time + _chalk().default.reset.dim(` ${localPath} (${progress.totalFileCount} module${plural})`);
|
|
98
91
|
}
|
|
99
92
|
const filledBar = Math.floor(progress.ratio * MAX_PROGRESS_BAR_CHAR_WIDTH);
|
|
100
|
-
const _progress = inProgress ? _chalk().default.green.bgGreen(DARK_BLOCK_CHAR.repeat(filledBar)) + _chalk().default.bgWhite.white(LIGHT_BLOCK_CHAR.repeat(MAX_PROGRESS_BAR_CHAR_WIDTH - filledBar)) + _chalk().default.bold(` ${(100 * progress.ratio).toFixed(1).padStart(4)}% `) + _chalk().default.dim(`(${progress.transformedFileCount.toString().padStart(progress.totalFileCount.toString().length)}/${progress.totalFileCount})`) :
|
|
101
|
-
return platform + _chalk().default.reset.dim(`${_path().default.dirname(localPath)}${_path().default.sep}`) + _chalk().default.bold(_path().default.basename(localPath)) +
|
|
93
|
+
const _progress = inProgress ? _chalk().default.green.bgGreen(DARK_BLOCK_CHAR.repeat(filledBar)) + _chalk().default.bgWhite.white(LIGHT_BLOCK_CHAR.repeat(MAX_PROGRESS_BAR_CHAR_WIDTH - filledBar)) + _chalk().default.bold(` ${(100 * progress.ratio).toFixed(1).padStart(4)}% `) + _chalk().default.dim(`(${progress.transformedFileCount.toString().padStart(progress.totalFileCount.toString().length)}/${progress.totalFileCount})`) : "";
|
|
94
|
+
return platform + _chalk().default.reset.dim(`${_path().default.dirname(localPath)}${_path().default.sep}`) + _chalk().default.bold(_path().default.basename(localPath)) + " " + _progress;
|
|
102
95
|
}
|
|
103
96
|
_logInitializing(port, hasReducedPerformance) {
|
|
104
97
|
// Don't print a giant logo...
|
|
105
|
-
this.terminal.log(_chalk().default.dim(
|
|
98
|
+
this.terminal.log(_chalk().default.dim("Starting Metro Bundler"));
|
|
106
99
|
}
|
|
107
100
|
shouldFilterClientLog(event) {
|
|
108
101
|
return isAppRegistryStartupMessage(event.data);
|
|
109
102
|
}
|
|
110
103
|
shouldFilterBundleEvent(event) {
|
|
111
|
-
var
|
|
112
|
-
return
|
|
104
|
+
var ref;
|
|
105
|
+
return "bundleDetails" in event && ((ref = event.bundleDetails) == null ? void 0 : ref.bundleType) === "map";
|
|
113
106
|
}
|
|
114
107
|
/** Print the cache clear message. */ transformCacheReset() {
|
|
115
|
-
(0,
|
|
108
|
+
(0, _terminalReporter.logWarning)(this.terminal, (0, _chalk().default)`Bundler cache is empty, rebuilding {dim (this may take a minute)}`);
|
|
116
109
|
}
|
|
117
110
|
/** One of the first logs that will be printed */ dependencyGraphLoading(hasReducedPerformance) {
|
|
118
111
|
// this.terminal.log('Dependency graph is loading...');
|
|
119
112
|
if (hasReducedPerformance) {
|
|
120
113
|
// Extends https://github.com/facebook/metro/blob/347b1d7ed87995d7951aaa9fd597c04b06013dac/packages/metro/src/lib/TerminalReporter.js#L283-L290
|
|
121
114
|
this.terminal.log(_chalk().default.red([
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
].join(
|
|
115
|
+
"Metro is operating with reduced performance.",
|
|
116
|
+
"Please fix the problem above and restart Metro.",
|
|
117
|
+
].join("\n")));
|
|
125
118
|
}
|
|
126
119
|
}
|
|
127
120
|
_logBundlingError(error) {
|
|
@@ -144,25 +137,25 @@ function formatUsingNodeStandardLibraryError(projectRoot, error) {
|
|
|
144
137
|
if (!error.message) {
|
|
145
138
|
return null;
|
|
146
139
|
}
|
|
147
|
-
const { targetModuleName, originModulePath
|
|
140
|
+
const { targetModuleName , originModulePath } = error;
|
|
148
141
|
if (!targetModuleName || !originModulePath) {
|
|
149
142
|
return null;
|
|
150
143
|
}
|
|
151
144
|
const relativePath = _path().default.relative(projectRoot, originModulePath);
|
|
152
|
-
const DOCS_PAGE_URL =
|
|
145
|
+
const DOCS_PAGE_URL = "https://docs.expo.dev/workflow/using-libraries/#using-third-party-libraries";
|
|
153
146
|
if (isNodeStdLibraryModule(targetModuleName)) {
|
|
154
|
-
if (originModulePath.includes(
|
|
147
|
+
if (originModulePath.includes("node_modules")) {
|
|
155
148
|
return [
|
|
156
149
|
`The package at "${_chalk().default.bold(relativePath)}" attempted to import the Node standard library module "${_chalk().default.bold(targetModuleName)}".`,
|
|
157
150
|
`It failed because the native React runtime does not include the Node standard library.`,
|
|
158
|
-
(0, _link.learnMore)(DOCS_PAGE_URL)
|
|
159
|
-
].join(
|
|
151
|
+
(0, _link.learnMore)(DOCS_PAGE_URL),
|
|
152
|
+
].join("\n");
|
|
160
153
|
} else {
|
|
161
154
|
return [
|
|
162
155
|
`You attempted to import the Node standard library module "${_chalk().default.bold(targetModuleName)}" from "${_chalk().default.bold(relativePath)}".`,
|
|
163
156
|
`It failed because the native React runtime does not include the Node standard library.`,
|
|
164
|
-
(0, _link.learnMore)(DOCS_PAGE_URL)
|
|
165
|
-
].join(
|
|
157
|
+
(0, _link.learnMore)(DOCS_PAGE_URL),
|
|
158
|
+
].join("\n");
|
|
166
159
|
}
|
|
167
160
|
}
|
|
168
161
|
return `Unable to resolve "${targetModuleName}" from "${relativePath}"`;
|
|
@@ -173,21 +166,21 @@ function isNodeStdLibraryModule(moduleName) {
|
|
|
173
166
|
/** If the code frame can be found then append it to the existing message. */ function maybeAppendCodeFrame(message, rawMessage) {
|
|
174
167
|
const codeFrame = stripMetroInfo(rawMessage);
|
|
175
168
|
if (codeFrame) {
|
|
176
|
-
message +=
|
|
169
|
+
message += "\n" + codeFrame;
|
|
177
170
|
}
|
|
178
171
|
return message;
|
|
179
172
|
}
|
|
180
173
|
function stripMetroInfo(errorMessage) {
|
|
181
174
|
// Newer versions of Metro don't include the list.
|
|
182
|
-
if (!errorMessage.includes(
|
|
175
|
+
if (!errorMessage.includes("4. Remove the cache")) {
|
|
183
176
|
return null;
|
|
184
177
|
}
|
|
185
|
-
const lines = errorMessage.split(
|
|
186
|
-
const index = lines.findIndex((line)=>line.includes(
|
|
178
|
+
const lines = errorMessage.split("\n");
|
|
179
|
+
const index = lines.findIndex((line)=>line.includes("4. Remove the cache"));
|
|
187
180
|
if (index === -1) {
|
|
188
181
|
return null;
|
|
189
182
|
}
|
|
190
|
-
return lines.slice(index + 1).join(
|
|
183
|
+
return lines.slice(index + 1).join("\n");
|
|
191
184
|
}
|
|
192
185
|
/** @returns if the message matches the initial startup log */ function isAppRegistryStartupMessage(body) {
|
|
193
186
|
return body.length === 1 && (/^Running application "main" with appParams:/.test(body[0]) || /^Running "main" with \{/.test(body[0]));
|
|
@@ -196,27 +189,27 @@ function stripMetroInfo(errorMessage) {
|
|
|
196
189
|
const platform = (bundleDetails == null ? void 0 : bundleDetails.platform) ?? null;
|
|
197
190
|
if (platform) {
|
|
198
191
|
const formatted = {
|
|
199
|
-
ios:
|
|
200
|
-
android:
|
|
201
|
-
web:
|
|
192
|
+
ios: "iOS",
|
|
193
|
+
android: "Android",
|
|
194
|
+
web: "Web"
|
|
202
195
|
}[platform] || platform;
|
|
203
196
|
return `${_chalk().default.bold(formatted)} `;
|
|
204
197
|
}
|
|
205
|
-
return
|
|
198
|
+
return "";
|
|
206
199
|
}
|
|
207
200
|
/** @returns platform specific tag for a `BundleDetails` object */ function getEnvironmentForBuildDetails(bundleDetails) {
|
|
208
|
-
var
|
|
201
|
+
var ref, ref1, ref2;
|
|
209
202
|
// Expo CLI will pass `customTransformOptions.environment = 'node'` when bundling for the server.
|
|
210
|
-
const env = (bundleDetails == null ? void 0 : (
|
|
211
|
-
if (env ===
|
|
212
|
-
return _chalk().default.bold(
|
|
213
|
-
} else if (env ===
|
|
214
|
-
return _chalk().default.bold(`RSC(${getPlatformTagForBuildDetails(bundleDetails).trim()})`) +
|
|
203
|
+
const env = (bundleDetails == null ? void 0 : (ref = bundleDetails.customTransformOptions) == null ? void 0 : ref.environment) ?? null;
|
|
204
|
+
if (env === "node") {
|
|
205
|
+
return _chalk().default.bold("λ") + " ";
|
|
206
|
+
} else if (env === "react-server") {
|
|
207
|
+
return _chalk().default.bold(`RSC(${getPlatformTagForBuildDetails(bundleDetails).trim()})`) + " ";
|
|
215
208
|
}
|
|
216
|
-
if ((bundleDetails == null ? void 0 : (
|
|
217
|
-
return _chalk().default.bold(`DOM`) +
|
|
209
|
+
if ((bundleDetails == null ? void 0 : (ref1 = bundleDetails.customTransformOptions) == null ? void 0 : ref1.dom) && typeof (bundleDetails == null ? void 0 : (ref2 = bundleDetails.customTransformOptions) == null ? void 0 : ref2.dom) === "string") {
|
|
210
|
+
return _chalk().default.bold(`DOM`) + " ";
|
|
218
211
|
}
|
|
219
|
-
return
|
|
212
|
+
return "";
|
|
220
213
|
}
|
|
221
214
|
|
|
222
215
|
//# sourceMappingURL=MetroTerminalReporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/metro/MetroTerminalReporter.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Terminal } from 'metro-core';\nimport path from 'path';\n\nimport { logWarning, TerminalReporter } from './TerminalReporter';\nimport {\n BuildPhase,\n BundleDetails,\n BundleProgress,\n SnippetError,\n TerminalReportableEvent,\n} from './TerminalReporter.types';\nimport { NODE_STDLIB_MODULES } from './externals';\nimport { learnMore } from '../../../utils/link';\n\nconst MAX_PROGRESS_BAR_CHAR_WIDTH = 16;\nconst DARK_BLOCK_CHAR = '\\u2593';\nconst LIGHT_BLOCK_CHAR = '\\u2591';\n/**\n * Extends the default Metro logger and adds some additional features.\n * Also removes the giant Metro logo from the output.\n */\nexport class MetroTerminalReporter extends TerminalReporter {\n constructor(\n public projectRoot: string,\n terminal: Terminal\n ) {\n super(terminal);\n }\n\n // Used for testing\n _getElapsedTime(startTime: bigint): bigint {\n return process.hrtime.bigint() - startTime;\n }\n /**\n * Extends the bundle progress to include the current platform that we're bundling.\n *\n * @returns `iOS path/to/bundle.js ▓▓▓▓▓░░░░░░░░░░░ 36.6% (4790/7922)`\n */\n _getBundleStatusMessage(progress: BundleProgress, phase: BuildPhase): string {\n const env = getEnvironmentForBuildDetails(progress.bundleDetails);\n const platform = env || getPlatformTagForBuildDetails(progress.bundleDetails);\n const inProgress = phase === 'in_progress';\n\n let localPath: string;\n\n if (\n typeof progress.bundleDetails?.customTransformOptions?.dom === 'string' &&\n progress.bundleDetails.customTransformOptions.dom.includes(path.sep)\n ) {\n // Because we use a generated entry file for DOM components, we need to adjust the logging path so it\n // shows a unique path for each component.\n // Here, we take the relative import path and remove all the starting slashes.\n localPath = progress.bundleDetails.customTransformOptions.dom.replace(/^(\\.?\\.[\\\\/])+/, '');\n } else {\n const inputFile = progress.bundleDetails.entryFile;\n\n localPath = path.isAbsolute(inputFile)\n ? path.relative(this.projectRoot, inputFile)\n : inputFile;\n }\n\n if (!inProgress) {\n const status = phase === 'done' ? `Bundled ` : `Bundling failed `;\n const color = phase === 'done' ? chalk.green : chalk.red;\n\n const startTime = this._bundleTimers.get(progress.bundleDetails.buildID!);\n\n let time: string = '';\n\n if (startTime != null) {\n const elapsed: bigint = this._getElapsedTime(startTime);\n const micro = Number(elapsed) / 1000;\n const converted = Number(elapsed) / 1e6;\n // If the milliseconds are < 0.5 then it will display as 0, so we display in microseconds.\n if (converted <= 0.5) {\n const tenthFractionOfMicro = ((micro * 10) / 1000).toFixed(0);\n // Format as microseconds to nearest tenth\n time = chalk.cyan.bold(`0.${tenthFractionOfMicro}ms`);\n } else {\n time = chalk.dim(converted.toFixed(0) + 'ms');\n }\n }\n\n // iOS Bundled 150ms\n const plural = progress.totalFileCount === 1 ? '' : 's';\n return (\n color(platform + status) +\n time +\n chalk.reset.dim(` ${localPath} (${progress.totalFileCount} module${plural})`)\n );\n }\n\n const filledBar = Math.floor(progress.ratio * MAX_PROGRESS_BAR_CHAR_WIDTH);\n\n const _progress = inProgress\n ? chalk.green.bgGreen(DARK_BLOCK_CHAR.repeat(filledBar)) +\n chalk.bgWhite.white(LIGHT_BLOCK_CHAR.repeat(MAX_PROGRESS_BAR_CHAR_WIDTH - filledBar)) +\n chalk.bold(` ${(100 * progress.ratio).toFixed(1).padStart(4)}% `) +\n chalk.dim(\n `(${progress.transformedFileCount\n .toString()\n .padStart(progress.totalFileCount.toString().length)}/${progress.totalFileCount})`\n )\n : '';\n\n return (\n platform +\n chalk.reset.dim(`${path.dirname(localPath)}${path.sep}`) +\n chalk.bold(path.basename(localPath)) +\n ' ' +\n _progress\n );\n }\n\n _logInitializing(port: number, hasReducedPerformance: boolean): void {\n // Don't print a giant logo...\n this.terminal.log(chalk.dim('Starting Metro Bundler'));\n }\n\n shouldFilterClientLog(event: {\n type: 'client_log';\n level: 'trace' | 'info' | 'warn' | 'log' | 'group' | 'groupCollapsed' | 'groupEnd' | 'debug';\n data: unknown[];\n }): boolean {\n return isAppRegistryStartupMessage(event.data);\n }\n\n shouldFilterBundleEvent(event: TerminalReportableEvent): boolean {\n return 'bundleDetails' in event && event.bundleDetails?.bundleType === 'map';\n }\n\n /** Print the cache clear message. */\n transformCacheReset(): void {\n logWarning(\n this.terminal,\n chalk`Bundler cache is empty, rebuilding {dim (this may take a minute)}`\n );\n }\n\n /** One of the first logs that will be printed */\n dependencyGraphLoading(hasReducedPerformance: boolean): void {\n // this.terminal.log('Dependency graph is loading...');\n if (hasReducedPerformance) {\n // Extends https://github.com/facebook/metro/blob/347b1d7ed87995d7951aaa9fd597c04b06013dac/packages/metro/src/lib/TerminalReporter.js#L283-L290\n this.terminal.log(\n chalk.red(\n [\n 'Metro is operating with reduced performance.',\n 'Please fix the problem above and restart Metro.',\n ].join('\\n')\n )\n );\n }\n }\n\n _logBundlingError(error: SnippetError): void {\n const moduleResolutionError = formatUsingNodeStandardLibraryError(this.projectRoot, error);\n const cause = error.cause as undefined | { _expoImportStack?: string };\n if (moduleResolutionError) {\n let message = maybeAppendCodeFrame(moduleResolutionError, error.message);\n if (cause?._expoImportStack) {\n message += `\\n\\n${cause?._expoImportStack}`;\n }\n return this.terminal.log(message);\n }\n if (cause?._expoImportStack) {\n error.message += `\\n\\n${cause._expoImportStack}`;\n }\n return super._logBundlingError(error);\n }\n}\n\n/**\n * Formats an error where the user is attempting to import a module from the Node.js standard library.\n * Exposed for testing.\n *\n * @param error\n * @returns error message or null if not a module resolution error\n */\nexport function formatUsingNodeStandardLibraryError(\n projectRoot: string,\n error: SnippetError\n): string | null {\n if (!error.message) {\n return null;\n }\n const { targetModuleName, originModulePath } = error;\n if (!targetModuleName || !originModulePath) {\n return null;\n }\n const relativePath = path.relative(projectRoot, originModulePath);\n\n const DOCS_PAGE_URL =\n 'https://docs.expo.dev/workflow/using-libraries/#using-third-party-libraries';\n\n if (isNodeStdLibraryModule(targetModuleName)) {\n if (originModulePath.includes('node_modules')) {\n return [\n `The package at \"${chalk.bold(\n relativePath\n )}\" attempted to import the Node standard library module \"${chalk.bold(\n targetModuleName\n )}\".`,\n `It failed because the native React runtime does not include the Node standard library.`,\n learnMore(DOCS_PAGE_URL),\n ].join('\\n');\n } else {\n return [\n `You attempted to import the Node standard library module \"${chalk.bold(\n targetModuleName\n )}\" from \"${chalk.bold(relativePath)}\".`,\n `It failed because the native React runtime does not include the Node standard library.`,\n learnMore(DOCS_PAGE_URL),\n ].join('\\n');\n }\n }\n return `Unable to resolve \"${targetModuleName}\" from \"${relativePath}\"`;\n}\n\nexport function isNodeStdLibraryModule(moduleName: string): boolean {\n return /^node:/.test(moduleName) || NODE_STDLIB_MODULES.includes(moduleName);\n}\n\n/** If the code frame can be found then append it to the existing message. */\nfunction maybeAppendCodeFrame(message: string, rawMessage: string): string {\n const codeFrame = stripMetroInfo(rawMessage);\n if (codeFrame) {\n message += '\\n' + codeFrame;\n }\n return message;\n}\n\n/**\n * Remove the Metro cache clearing steps if they exist.\n * In future versions we won't need this.\n * Returns the remaining code frame logs.\n */\nexport function stripMetroInfo(errorMessage: string): string | null {\n // Newer versions of Metro don't include the list.\n if (!errorMessage.includes('4. Remove the cache')) {\n return null;\n }\n const lines = errorMessage.split('\\n');\n const index = lines.findIndex((line) => line.includes('4. Remove the cache'));\n if (index === -1) {\n return null;\n }\n return lines.slice(index + 1).join('\\n');\n}\n\n/** @returns if the message matches the initial startup log */\nfunction isAppRegistryStartupMessage(body: any[]): boolean {\n return (\n body.length === 1 &&\n (/^Running application \"main\" with appParams:/.test(body[0]) ||\n /^Running \"main\" with \\{/.test(body[0]))\n );\n}\n\n/** @returns platform specific tag for a `BundleDetails` object */\nfunction getPlatformTagForBuildDetails(bundleDetails?: BundleDetails | null): string {\n const platform = bundleDetails?.platform ?? null;\n if (platform) {\n const formatted = { ios: 'iOS', android: 'Android', web: 'Web' }[platform] || platform;\n return `${chalk.bold(formatted)} `;\n }\n\n return '';\n}\n/** @returns platform specific tag for a `BundleDetails` object */\nfunction getEnvironmentForBuildDetails(bundleDetails?: BundleDetails | null): string {\n // Expo CLI will pass `customTransformOptions.environment = 'node'` when bundling for the server.\n const env = bundleDetails?.customTransformOptions?.environment ?? null;\n if (env === 'node') {\n return chalk.bold('λ') + ' ';\n } else if (env === 'react-server') {\n return chalk.bold(`RSC(${getPlatformTagForBuildDetails(bundleDetails).trim()})`) + ' ';\n }\n\n if (\n bundleDetails?.customTransformOptions?.dom &&\n typeof bundleDetails?.customTransformOptions?.dom === 'string'\n ) {\n return chalk.bold(`DOM`) + ' ';\n }\n\n return '';\n}\n"],"names":["MetroTerminalReporter","formatUsingNodeStandardLibraryError","isNodeStdLibraryModule","stripMetroInfo","MAX_PROGRESS_BAR_CHAR_WIDTH","DARK_BLOCK_CHAR","LIGHT_BLOCK_CHAR","TerminalReporter","constructor","projectRoot","terminal","_getElapsedTime","startTime","process","hrtime","bigint","_getBundleStatusMessage","progress","phase","env","getEnvironmentForBuildDetails","bundleDetails","platform","getPlatformTagForBuildDetails","inProgress","localPath","customTransformOptions","dom","includes","path","sep","replace","inputFile","entryFile","isAbsolute","relative","status","color","chalk","green","red","_bundleTimers","get","buildID","time","elapsed","micro","Number","converted","tenthFractionOfMicro","toFixed","cyan","bold","dim","plural","totalFileCount","reset","filledBar","Math","floor","ratio","_progress","bgGreen","repeat","bgWhite","white","padStart","transformedFileCount","toString","length","dirname","basename","_logInitializing","port","hasReducedPerformance","log","shouldFilterClientLog","event","isAppRegistryStartupMessage","data","shouldFilterBundleEvent","bundleType","transformCacheReset","logWarning","dependencyGraphLoading","join","_logBundlingError","error","moduleResolutionError","cause","message","maybeAppendCodeFrame","_expoImportStack","targetModuleName","originModulePath","relativePath","DOCS_PAGE_URL","learnMore","moduleName","test","NODE_STDLIB_MODULES","rawMessage","codeFrame","errorMessage","lines","split","index","findIndex","line","slice","body","formatted","ios","android","web","environment","trim"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/MetroTerminalReporter.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Terminal } from 'metro-core';\nimport path from 'path';\n\nimport { logWarning, TerminalReporter } from './TerminalReporter';\nimport {\n BuildPhase,\n BundleDetails,\n BundleProgress,\n SnippetError,\n TerminalReportableEvent,\n} from './TerminalReporter.types';\nimport { NODE_STDLIB_MODULES } from './externals';\nimport { learnMore } from '../../../utils/link';\n\nconst MAX_PROGRESS_BAR_CHAR_WIDTH = 16;\nconst DARK_BLOCK_CHAR = '\\u2593';\nconst LIGHT_BLOCK_CHAR = '\\u2591';\n/**\n * Extends the default Metro logger and adds some additional features.\n * Also removes the giant Metro logo from the output.\n */\nexport class MetroTerminalReporter extends TerminalReporter {\n constructor(\n public projectRoot: string,\n terminal: Terminal\n ) {\n super(terminal);\n }\n\n // Used for testing\n _getElapsedTime(startTime: bigint): bigint {\n return process.hrtime.bigint() - startTime;\n }\n /**\n * Extends the bundle progress to include the current platform that we're bundling.\n *\n * @returns `iOS path/to/bundle.js ▓▓▓▓▓░░░░░░░░░░░ 36.6% (4790/7922)`\n */\n _getBundleStatusMessage(progress: BundleProgress, phase: BuildPhase): string {\n const env = getEnvironmentForBuildDetails(progress.bundleDetails);\n const platform = env || getPlatformTagForBuildDetails(progress.bundleDetails);\n const inProgress = phase === 'in_progress';\n\n let localPath: string;\n\n if (\n typeof progress.bundleDetails?.customTransformOptions?.dom === 'string' &&\n progress.bundleDetails.customTransformOptions.dom.includes(path.sep)\n ) {\n // Because we use a generated entry file for DOM components, we need to adjust the logging path so it\n // shows a unique path for each component.\n // Here, we take the relative import path and remove all the starting slashes.\n localPath = progress.bundleDetails.customTransformOptions.dom.replace(/^(\\.?\\.[\\\\/])+/, '');\n } else {\n const inputFile = progress.bundleDetails.entryFile;\n\n localPath = path.isAbsolute(inputFile)\n ? path.relative(this.projectRoot, inputFile)\n : inputFile;\n }\n\n if (!inProgress) {\n const status = phase === 'done' ? `Bundled ` : `Bundling failed `;\n const color = phase === 'done' ? chalk.green : chalk.red;\n\n const startTime = this._bundleTimers.get(progress.bundleDetails.buildID!);\n\n let time: string = '';\n\n if (startTime != null) {\n const elapsed: bigint = this._getElapsedTime(startTime);\n const micro = Number(elapsed) / 1000;\n const converted = Number(elapsed) / 1e6;\n // If the milliseconds are < 0.5 then it will display as 0, so we display in microseconds.\n if (converted <= 0.5) {\n const tenthFractionOfMicro = ((micro * 10) / 1000).toFixed(0);\n // Format as microseconds to nearest tenth\n time = chalk.cyan.bold(`0.${tenthFractionOfMicro}ms`);\n } else {\n time = chalk.dim(converted.toFixed(0) + 'ms');\n }\n }\n\n // iOS Bundled 150ms\n const plural = progress.totalFileCount === 1 ? '' : 's';\n return (\n color(platform + status) +\n time +\n chalk.reset.dim(` ${localPath} (${progress.totalFileCount} module${plural})`)\n );\n }\n\n const filledBar = Math.floor(progress.ratio * MAX_PROGRESS_BAR_CHAR_WIDTH);\n\n const _progress = inProgress\n ? chalk.green.bgGreen(DARK_BLOCK_CHAR.repeat(filledBar)) +\n chalk.bgWhite.white(LIGHT_BLOCK_CHAR.repeat(MAX_PROGRESS_BAR_CHAR_WIDTH - filledBar)) +\n chalk.bold(` ${(100 * progress.ratio).toFixed(1).padStart(4)}% `) +\n chalk.dim(\n `(${progress.transformedFileCount\n .toString()\n .padStart(progress.totalFileCount.toString().length)}/${progress.totalFileCount})`\n )\n : '';\n\n return (\n platform +\n chalk.reset.dim(`${path.dirname(localPath)}${path.sep}`) +\n chalk.bold(path.basename(localPath)) +\n ' ' +\n _progress\n );\n }\n\n _logInitializing(port: number, hasReducedPerformance: boolean): void {\n // Don't print a giant logo...\n this.terminal.log(chalk.dim('Starting Metro Bundler'));\n }\n\n shouldFilterClientLog(event: {\n type: 'client_log';\n level: 'trace' | 'info' | 'warn' | 'log' | 'group' | 'groupCollapsed' | 'groupEnd' | 'debug';\n data: unknown[];\n }): boolean {\n return isAppRegistryStartupMessage(event.data);\n }\n\n shouldFilterBundleEvent(event: TerminalReportableEvent): boolean {\n return 'bundleDetails' in event && event.bundleDetails?.bundleType === 'map';\n }\n\n /** Print the cache clear message. */\n transformCacheReset(): void {\n logWarning(\n this.terminal,\n chalk`Bundler cache is empty, rebuilding {dim (this may take a minute)}`\n );\n }\n\n /** One of the first logs that will be printed */\n dependencyGraphLoading(hasReducedPerformance: boolean): void {\n // this.terminal.log('Dependency graph is loading...');\n if (hasReducedPerformance) {\n // Extends https://github.com/facebook/metro/blob/347b1d7ed87995d7951aaa9fd597c04b06013dac/packages/metro/src/lib/TerminalReporter.js#L283-L290\n this.terminal.log(\n chalk.red(\n [\n 'Metro is operating with reduced performance.',\n 'Please fix the problem above and restart Metro.',\n ].join('\\n')\n )\n );\n }\n }\n\n _logBundlingError(error: SnippetError): void {\n const moduleResolutionError = formatUsingNodeStandardLibraryError(this.projectRoot, error);\n const cause = error.cause as undefined | { _expoImportStack?: string };\n if (moduleResolutionError) {\n let message = maybeAppendCodeFrame(moduleResolutionError, error.message);\n if (cause?._expoImportStack) {\n message += `\\n\\n${cause?._expoImportStack}`;\n }\n return this.terminal.log(message);\n }\n if (cause?._expoImportStack) {\n error.message += `\\n\\n${cause._expoImportStack}`;\n }\n return super._logBundlingError(error);\n }\n}\n\n/**\n * Formats an error where the user is attempting to import a module from the Node.js standard library.\n * Exposed for testing.\n *\n * @param error\n * @returns error message or null if not a module resolution error\n */\nexport function formatUsingNodeStandardLibraryError(\n projectRoot: string,\n error: SnippetError\n): string | null {\n if (!error.message) {\n return null;\n }\n const { targetModuleName, originModulePath } = error;\n if (!targetModuleName || !originModulePath) {\n return null;\n }\n const relativePath = path.relative(projectRoot, originModulePath);\n\n const DOCS_PAGE_URL =\n 'https://docs.expo.dev/workflow/using-libraries/#using-third-party-libraries';\n\n if (isNodeStdLibraryModule(targetModuleName)) {\n if (originModulePath.includes('node_modules')) {\n return [\n `The package at \"${chalk.bold(\n relativePath\n )}\" attempted to import the Node standard library module \"${chalk.bold(\n targetModuleName\n )}\".`,\n `It failed because the native React runtime does not include the Node standard library.`,\n learnMore(DOCS_PAGE_URL),\n ].join('\\n');\n } else {\n return [\n `You attempted to import the Node standard library module \"${chalk.bold(\n targetModuleName\n )}\" from \"${chalk.bold(relativePath)}\".`,\n `It failed because the native React runtime does not include the Node standard library.`,\n learnMore(DOCS_PAGE_URL),\n ].join('\\n');\n }\n }\n return `Unable to resolve \"${targetModuleName}\" from \"${relativePath}\"`;\n}\n\nexport function isNodeStdLibraryModule(moduleName: string): boolean {\n return /^node:/.test(moduleName) || NODE_STDLIB_MODULES.includes(moduleName);\n}\n\n/** If the code frame can be found then append it to the existing message. */\nfunction maybeAppendCodeFrame(message: string, rawMessage: string): string {\n const codeFrame = stripMetroInfo(rawMessage);\n if (codeFrame) {\n message += '\\n' + codeFrame;\n }\n return message;\n}\n\n/**\n * Remove the Metro cache clearing steps if they exist.\n * In future versions we won't need this.\n * Returns the remaining code frame logs.\n */\nexport function stripMetroInfo(errorMessage: string): string | null {\n // Newer versions of Metro don't include the list.\n if (!errorMessage.includes('4. Remove the cache')) {\n return null;\n }\n const lines = errorMessage.split('\\n');\n const index = lines.findIndex((line) => line.includes('4. Remove the cache'));\n if (index === -1) {\n return null;\n }\n return lines.slice(index + 1).join('\\n');\n}\n\n/** @returns if the message matches the initial startup log */\nfunction isAppRegistryStartupMessage(body: any[]): boolean {\n return (\n body.length === 1 &&\n (/^Running application \"main\" with appParams:/.test(body[0]) ||\n /^Running \"main\" with \\{/.test(body[0]))\n );\n}\n\n/** @returns platform specific tag for a `BundleDetails` object */\nfunction getPlatformTagForBuildDetails(bundleDetails?: BundleDetails | null): string {\n const platform = bundleDetails?.platform ?? null;\n if (platform) {\n const formatted = { ios: 'iOS', android: 'Android', web: 'Web' }[platform] || platform;\n return `${chalk.bold(formatted)} `;\n }\n\n return '';\n}\n/** @returns platform specific tag for a `BundleDetails` object */\nfunction getEnvironmentForBuildDetails(bundleDetails?: BundleDetails | null): string {\n // Expo CLI will pass `customTransformOptions.environment = 'node'` when bundling for the server.\n const env = bundleDetails?.customTransformOptions?.environment ?? null;\n if (env === 'node') {\n return chalk.bold('λ') + ' ';\n } else if (env === 'react-server') {\n return chalk.bold(`RSC(${getPlatformTagForBuildDetails(bundleDetails).trim()})`) + ' ';\n }\n\n if (\n bundleDetails?.customTransformOptions?.dom &&\n typeof bundleDetails?.customTransformOptions?.dom === 'string'\n ) {\n return chalk.bold(`DOM`) + ' ';\n }\n\n return '';\n}\n"],"names":["MetroTerminalReporter","formatUsingNodeStandardLibraryError","isNodeStdLibraryModule","stripMetroInfo","MAX_PROGRESS_BAR_CHAR_WIDTH","DARK_BLOCK_CHAR","LIGHT_BLOCK_CHAR","TerminalReporter","constructor","projectRoot","terminal","_getElapsedTime","startTime","process","hrtime","bigint","_getBundleStatusMessage","progress","phase","env","getEnvironmentForBuildDetails","bundleDetails","platform","getPlatformTagForBuildDetails","inProgress","localPath","customTransformOptions","dom","includes","path","sep","replace","inputFile","entryFile","isAbsolute","relative","status","color","chalk","green","red","_bundleTimers","get","buildID","time","elapsed","micro","Number","converted","tenthFractionOfMicro","toFixed","cyan","bold","dim","plural","totalFileCount","reset","filledBar","Math","floor","ratio","_progress","bgGreen","repeat","bgWhite","white","padStart","transformedFileCount","toString","length","dirname","basename","_logInitializing","port","hasReducedPerformance","log","shouldFilterClientLog","event","isAppRegistryStartupMessage","data","shouldFilterBundleEvent","bundleType","transformCacheReset","logWarning","dependencyGraphLoading","join","_logBundlingError","error","moduleResolutionError","cause","message","maybeAppendCodeFrame","_expoImportStack","targetModuleName","originModulePath","relativePath","DOCS_PAGE_URL","learnMore","moduleName","test","NODE_STDLIB_MODULES","rawMessage","codeFrame","errorMessage","lines","split","index","findIndex","line","slice","body","formatted","ios","android","web","environment","trim"],"mappings":"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"}
|
|
@@ -11,64 +11,65 @@ function _export(target, all) {
|
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
13
|
_export(exports, {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
logError: function() {
|
|
18
|
-
return logError;
|
|
19
|
-
},
|
|
20
|
-
logWarning: function() {
|
|
21
|
-
return logWarning;
|
|
22
|
-
}
|
|
14
|
+
logWarning: ()=>logWarning,
|
|
15
|
+
logError: ()=>logError,
|
|
16
|
+
TerminalReporter: ()=>TerminalReporter
|
|
23
17
|
});
|
|
24
18
|
function _chalk() {
|
|
25
|
-
const data = /*#__PURE__*/
|
|
19
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
|
|
26
20
|
_chalk = function() {
|
|
27
21
|
return data;
|
|
28
22
|
};
|
|
29
23
|
return data;
|
|
30
24
|
}
|
|
31
|
-
function
|
|
32
|
-
const data = /*#__PURE__*/
|
|
33
|
-
|
|
25
|
+
function _terminalReporter() {
|
|
26
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("metro/src/lib/TerminalReporter"));
|
|
27
|
+
_terminalReporter = function() {
|
|
34
28
|
return data;
|
|
35
29
|
};
|
|
36
30
|
return data;
|
|
37
31
|
}
|
|
38
32
|
function _util() {
|
|
39
|
-
const data = /*#__PURE__*/
|
|
33
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("util"));
|
|
40
34
|
_util = function() {
|
|
41
35
|
return data;
|
|
42
36
|
};
|
|
43
37
|
return data;
|
|
44
38
|
}
|
|
45
39
|
const _ansi = require("../../../utils/ansi");
|
|
46
|
-
function
|
|
40
|
+
function _interopRequireDefault(obj) {
|
|
47
41
|
return obj && obj.__esModule ? obj : {
|
|
48
42
|
default: obj
|
|
49
43
|
};
|
|
50
44
|
}
|
|
51
|
-
const debug = require(
|
|
45
|
+
const debug = require("debug")("expo:metro:logger");
|
|
52
46
|
function logWarning(terminal, format, ...args) {
|
|
53
47
|
const str = _util().default.format(format, ...args);
|
|
54
|
-
terminal.log(
|
|
48
|
+
terminal.log("%s: %s", _chalk().default.yellow("warning"), str);
|
|
55
49
|
}
|
|
56
50
|
function logError(terminal, format, ...args) {
|
|
57
|
-
terminal.log(
|
|
51
|
+
terminal.log("%s: %s", _chalk().default.red("error"), // Syntax errors may have colors applied for displaying code frames
|
|
58
52
|
// in various places outside of where Metro is currently running.
|
|
59
53
|
// If the current terminal does not support color, we'll strip the colors
|
|
60
54
|
// here.
|
|
61
55
|
_util().default.format(_chalk().default.supportsColor ? format : (0, _ansi.stripAnsi)(format), ...args));
|
|
62
56
|
}
|
|
63
|
-
const XTerminalReporter =
|
|
57
|
+
const XTerminalReporter = _terminalReporter().default;
|
|
64
58
|
class TerminalReporter extends XTerminalReporter {
|
|
59
|
+
/**
|
|
60
|
+
* A cache of { [buildID]: BundleDetails } which can be used to
|
|
61
|
+
* add more contextual logs. BundleDetails is currently only sent with `bundle_build_started`
|
|
62
|
+
* so we need to cache the details in order to print the platform info with other event types.
|
|
63
|
+
*/ _bundleDetails = new Map();
|
|
64
|
+
/** Keep track of how long a bundle takes to complete */ _bundleTimers = new Map();
|
|
65
|
+
/** Keep track of bundle processes that should not be logged. */ _hiddenBundleEvents = new Set();
|
|
65
66
|
_log(event) {
|
|
66
67
|
switch(event.type){
|
|
67
|
-
case
|
|
68
|
+
case "transform_cache_reset":
|
|
68
69
|
return this.transformCacheReset();
|
|
69
|
-
case
|
|
70
|
+
case "dep_graph_loading":
|
|
70
71
|
return this.dependencyGraphLoading(event.hasReducedPerformance);
|
|
71
|
-
case
|
|
72
|
+
case "client_log":
|
|
72
73
|
if (this.shouldFilterClientLog(event)) {
|
|
73
74
|
return;
|
|
74
75
|
}
|
|
@@ -93,18 +94,18 @@ class TerminalReporter extends XTerminalReporter {
|
|
|
93
94
|
// Add a custom format to logs that come from the worker threads.
|
|
94
95
|
// `| <contents>`
|
|
95
96
|
_logWorkerChunk(origin, chunk) {
|
|
96
|
-
const lines = chunk.split(
|
|
97
|
-
if (lines.length >= 1 && lines[lines.length - 1] ===
|
|
97
|
+
const lines = chunk.split("\n");
|
|
98
|
+
if (lines.length >= 1 && lines[lines.length - 1] === "") {
|
|
98
99
|
lines.splice(lines.length - 1, 1);
|
|
99
100
|
}
|
|
100
|
-
const originTag = origin ===
|
|
101
|
+
const originTag = origin === "stdout" ? _chalk().default.dim("|") : _chalk().default.yellow("|");
|
|
101
102
|
lines.forEach((line)=>{
|
|
102
103
|
this.terminal.log(originTag, line);
|
|
103
104
|
});
|
|
104
105
|
}
|
|
105
106
|
_logWatcherStatus(status) {
|
|
106
107
|
// Metro logs this warning twice. This helps reduce the noise.
|
|
107
|
-
if (status.type ===
|
|
108
|
+
if (status.type === "watchman_warning") {
|
|
108
109
|
return;
|
|
109
110
|
}
|
|
110
111
|
return super._logWatcherStatus(status);
|
|
@@ -113,15 +114,15 @@ class TerminalReporter extends XTerminalReporter {
|
|
|
113
114
|
* This function is exclusively concerned with updating the internal state.
|
|
114
115
|
* No logging or status updates should be done at this point.
|
|
115
116
|
*/ _updateState(event) {
|
|
116
|
-
var
|
|
117
|
+
var ref;
|
|
117
118
|
// Append the buildID to the bundleDetails.
|
|
118
119
|
if (event.bundleDetails) {
|
|
119
120
|
event.bundleDetails.buildID = event.buildID;
|
|
120
121
|
}
|
|
121
|
-
const buildID = ((
|
|
122
|
+
const buildID = ((ref = event.bundleDetails) == null ? void 0 : ref.buildID) ?? event.buildID;
|
|
122
123
|
if (buildID && !this._hiddenBundleEvents.has(buildID)) {
|
|
123
124
|
if (this.shouldFilterBundleEvent(event)) {
|
|
124
|
-
debug(
|
|
125
|
+
debug("skipping bundle events for", buildID, event);
|
|
125
126
|
this._hiddenBundleEvents.add(buildID);
|
|
126
127
|
} else {
|
|
127
128
|
super._updateState(event);
|
|
@@ -130,8 +131,8 @@ class TerminalReporter extends XTerminalReporter {
|
|
|
130
131
|
super._updateState(event);
|
|
131
132
|
}
|
|
132
133
|
switch(event.type){
|
|
133
|
-
case
|
|
134
|
-
case
|
|
134
|
+
case "bundle_build_done":
|
|
135
|
+
case "bundle_build_failed":
|
|
135
136
|
{
|
|
136
137
|
const startTime = this._bundleTimers.get(event.buildID);
|
|
137
138
|
// Observed a bug in Metro where the `bundle_build_done` is invoked twice during a static bundle
|
|
@@ -143,7 +144,7 @@ class TerminalReporter extends XTerminalReporter {
|
|
|
143
144
|
this._bundleTimers.delete(event.buildID);
|
|
144
145
|
break;
|
|
145
146
|
}
|
|
146
|
-
case
|
|
147
|
+
case "bundle_build_started":
|
|
147
148
|
this._bundleDetails.set(event.buildID, event.bundleDetails);
|
|
148
149
|
this._bundleTimers.set(event.buildID, process.hrtime.bigint());
|
|
149
150
|
break;
|
|
@@ -168,13 +169,6 @@ class TerminalReporter extends XTerminalReporter {
|
|
|
168
169
|
});
|
|
169
170
|
}
|
|
170
171
|
}
|
|
171
|
-
constructor(...args){
|
|
172
|
-
super(...args), /**
|
|
173
|
-
* A cache of { [buildID]: BundleDetails } which can be used to
|
|
174
|
-
* add more contextual logs. BundleDetails is currently only sent with `bundle_build_started`
|
|
175
|
-
* so we need to cache the details in order to print the platform info with other event types.
|
|
176
|
-
*/ this._bundleDetails = new Map(), /** Keep track of how long a bundle takes to complete */ this._bundleTimers = new Map(), /** Keep track of bundle processes that should not be logged. */ this._hiddenBundleEvents = new Set();
|
|
177
|
-
}
|
|
178
172
|
}
|
|
179
173
|
|
|
180
174
|
//# sourceMappingURL=TerminalReporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/metro/TerminalReporter.ts"],"sourcesContent":["// This file represents an abstraction on the metro TerminalReporter.\n// We use this abstraction to safely extend the TerminalReporter for our own custom logging.\nimport chalk from 'chalk';\nimport UpstreamTerminalReporter from 'metro/src/lib/TerminalReporter';\nimport { Terminal } from 'metro-core';\nimport type { WatcherStatus } from 'metro-file-map';\nimport util from 'util';\n\nimport {\n BundleDetails,\n BundleProgressUpdate,\n TerminalReportableEvent,\n TerminalReporterInterface,\n} from './TerminalReporter.types';\nimport { stripAnsi } from '../../../utils/ansi';\n\nconst debug = require('debug')('expo:metro:logger') as typeof console.log;\n\n/**\n * A standard way to log a warning to the terminal. This should not be called\n * from some arbitrary Metro logic, only from the reporters. Instead of\n * calling this, add a new type of ReportableEvent instead, and implement a\n * proper handler in the reporter(s).\n */\nexport function logWarning(terminal: Terminal, format: string, ...args: any[]): void {\n const str = util.format(format, ...args);\n terminal.log('%s: %s', chalk.yellow('warning'), str);\n}\n\n/**\n * Similar to `logWarning`, but for messages that require the user to act.\n */\nexport function logError(terminal: Terminal, format: string, ...args: any[]): void {\n terminal.log(\n '%s: %s',\n chalk.red('error'),\n // Syntax errors may have colors applied for displaying code frames\n // in various places outside of where Metro is currently running.\n // If the current terminal does not support color, we'll strip the colors\n // here.\n util.format(chalk.supportsColor ? format : stripAnsi(format), ...args)\n );\n}\n\nconst XTerminalReporter = UpstreamTerminalReporter as unknown as TerminalReporterInterface;\n\n/** Extended TerminalReporter class but with proper types and extra functionality to avoid using the `_log` method directly in subclasses. */\nexport class TerminalReporter extends XTerminalReporter implements TerminalReporterInterface {\n /**\n * A cache of { [buildID]: BundleDetails } which can be used to\n * add more contextual logs. BundleDetails is currently only sent with `bundle_build_started`\n * so we need to cache the details in order to print the platform info with other event types.\n */\n _bundleDetails: Map<string, BundleDetails> = new Map();\n\n /** Keep track of how long a bundle takes to complete */\n _bundleTimers: Map<string, bigint> = new Map();\n\n /** Keep track of bundle processes that should not be logged. */\n _hiddenBundleEvents: Set<string> = new Set();\n\n _log(event: TerminalReportableEvent): void {\n switch (event.type) {\n case 'transform_cache_reset':\n return this.transformCacheReset();\n case 'dep_graph_loading':\n return this.dependencyGraphLoading(event.hasReducedPerformance);\n case 'client_log':\n if (this.shouldFilterClientLog(event)) {\n return;\n }\n break;\n }\n return super._log(event);\n }\n\n /** Gives subclasses an easy interface for filtering out logs. Return `true` to skip. */\n shouldFilterClientLog(event: TerminalReportableEvent): boolean {\n return false;\n }\n\n /** Gives subclasses an easy interface for filtering out bundle events, specifically for source maps. Return `true` to skip. */\n shouldFilterBundleEvent(event: TerminalReportableEvent): boolean {\n return false;\n }\n\n /** Cache has been reset. */\n transformCacheReset(): void {}\n\n /** One of the first logs that will be printed. */\n dependencyGraphLoading(hasReducedPerformance: boolean): void {}\n\n /**\n * Custom log event representing the end of the bundling.\n *\n * @param event event object.\n * @param duration duration of the build in milliseconds.\n */\n bundleBuildEnded(event: TerminalReportableEvent, duration: bigint | number): void {}\n\n // Add a custom format to logs that come from the worker threads.\n // `| <contents>`\n _logWorkerChunk(origin: 'stdout' | 'stderr', chunk: string): void {\n const lines = chunk.split('\\n');\n if (lines.length >= 1 && lines[lines.length - 1] === '') {\n lines.splice(lines.length - 1, 1);\n }\n\n const originTag = origin === 'stdout' ? chalk.dim('|') : chalk.yellow('|');\n lines.forEach((line: string) => {\n this.terminal.log(originTag, line);\n });\n }\n\n _logWatcherStatus(status: WatcherStatus) {\n // Metro logs this warning twice. This helps reduce the noise.\n\n if (status.type === 'watchman_warning') {\n return;\n }\n return super._logWatcherStatus(status);\n }\n\n /**\n * This function is exclusively concerned with updating the internal state.\n * No logging or status updates should be done at this point.\n */\n _updateState(\n event: TerminalReportableEvent & { bundleDetails?: BundleDetails; buildID?: string }\n ) {\n // Append the buildID to the bundleDetails.\n if (event.bundleDetails) {\n event.bundleDetails.buildID = event.buildID;\n }\n\n const buildID = event.bundleDetails?.buildID ?? event.buildID;\n\n if (buildID && !this._hiddenBundleEvents.has(buildID)) {\n if (this.shouldFilterBundleEvent(event)) {\n debug('skipping bundle events for', buildID, event);\n this._hiddenBundleEvents.add(buildID);\n } else {\n super._updateState(event);\n }\n } else {\n super._updateState(event);\n }\n\n switch (event.type) {\n case 'bundle_build_done':\n case 'bundle_build_failed': {\n const startTime = this._bundleTimers.get(event.buildID);\n // Observed a bug in Metro where the `bundle_build_done` is invoked twice during a static bundle\n // i.e. `expo export`.\n if (startTime == null) {\n break;\n }\n\n this.bundleBuildEnded(event, startTime ? process.hrtime.bigint() - startTime : 0);\n this._bundleTimers.delete(event.buildID);\n break;\n }\n case 'bundle_build_started':\n this._bundleDetails.set(event.buildID, event.bundleDetails);\n this._bundleTimers.set(event.buildID, process.hrtime.bigint());\n break;\n }\n }\n\n /**\n * We use Math.pow(ratio, 2) to as a conservative measure of progress because\n * we know the `totalCount` is going to progressively increase as well. We\n * also prevent the ratio from going backwards.\n */\n _updateBundleProgress(options: BundleProgressUpdate) {\n super._updateBundleProgress(options);\n\n const currentProgress = this._activeBundles.get(options.buildID);\n if (!currentProgress) {\n return;\n }\n\n // Fix an issue where the transformer is faster than the resolver,\n // locking the progress bar at 100% after transforming the first and only resolved file (1/1).\n if (currentProgress.ratio === 1 && options.totalFileCount === 1) {\n Object.assign(currentProgress, { ...currentProgress, ratio: 0 });\n }\n }\n}\n"],"names":["TerminalReporter","logError","logWarning","debug","require","terminal","format","args","str","util","log","chalk","yellow","red","supportsColor","stripAnsi","XTerminalReporter","UpstreamTerminalReporter","_log","event","type","transformCacheReset","dependencyGraphLoading","hasReducedPerformance","shouldFilterClientLog","shouldFilterBundleEvent","bundleBuildEnded","duration","_logWorkerChunk","origin","chunk","lines","split","length","splice","originTag","dim","forEach","line","_logWatcherStatus","status","_updateState","bundleDetails","buildID","_hiddenBundleEvents","has","add","startTime","_bundleTimers","get","process","hrtime","bigint","delete","_bundleDetails","set","_updateBundleProgress","options","currentProgress","_activeBundles","ratio","totalFileCount","Object","assign","Map","Set"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/TerminalReporter.ts"],"sourcesContent":["// This file represents an abstraction on the metro TerminalReporter.\n// We use this abstraction to safely extend the TerminalReporter for our own custom logging.\nimport chalk from 'chalk';\nimport UpstreamTerminalReporter from 'metro/src/lib/TerminalReporter';\nimport { Terminal } from 'metro-core';\nimport type { WatcherStatus } from 'metro-file-map';\nimport util from 'util';\n\nimport {\n BundleDetails,\n BundleProgressUpdate,\n TerminalReportableEvent,\n TerminalReporterInterface,\n} from './TerminalReporter.types';\nimport { stripAnsi } from '../../../utils/ansi';\n\nconst debug = require('debug')('expo:metro:logger') as typeof console.log;\n\n/**\n * A standard way to log a warning to the terminal. This should not be called\n * from some arbitrary Metro logic, only from the reporters. Instead of\n * calling this, add a new type of ReportableEvent instead, and implement a\n * proper handler in the reporter(s).\n */\nexport function logWarning(terminal: Terminal, format: string, ...args: any[]): void {\n const str = util.format(format, ...args);\n terminal.log('%s: %s', chalk.yellow('warning'), str);\n}\n\n/**\n * Similar to `logWarning`, but for messages that require the user to act.\n */\nexport function logError(terminal: Terminal, format: string, ...args: any[]): void {\n terminal.log(\n '%s: %s',\n chalk.red('error'),\n // Syntax errors may have colors applied for displaying code frames\n // in various places outside of where Metro is currently running.\n // If the current terminal does not support color, we'll strip the colors\n // here.\n util.format(chalk.supportsColor ? format : stripAnsi(format), ...args)\n );\n}\n\nconst XTerminalReporter = UpstreamTerminalReporter as unknown as TerminalReporterInterface;\n\n/** Extended TerminalReporter class but with proper types and extra functionality to avoid using the `_log` method directly in subclasses. */\nexport class TerminalReporter extends XTerminalReporter implements TerminalReporterInterface {\n /**\n * A cache of { [buildID]: BundleDetails } which can be used to\n * add more contextual logs. BundleDetails is currently only sent with `bundle_build_started`\n * so we need to cache the details in order to print the platform info with other event types.\n */\n _bundleDetails: Map<string, BundleDetails> = new Map();\n\n /** Keep track of how long a bundle takes to complete */\n _bundleTimers: Map<string, bigint> = new Map();\n\n /** Keep track of bundle processes that should not be logged. */\n _hiddenBundleEvents: Set<string> = new Set();\n\n _log(event: TerminalReportableEvent): void {\n switch (event.type) {\n case 'transform_cache_reset':\n return this.transformCacheReset();\n case 'dep_graph_loading':\n return this.dependencyGraphLoading(event.hasReducedPerformance);\n case 'client_log':\n if (this.shouldFilterClientLog(event)) {\n return;\n }\n break;\n }\n return super._log(event);\n }\n\n /** Gives subclasses an easy interface for filtering out logs. Return `true` to skip. */\n shouldFilterClientLog(event: TerminalReportableEvent): boolean {\n return false;\n }\n\n /** Gives subclasses an easy interface for filtering out bundle events, specifically for source maps. Return `true` to skip. */\n shouldFilterBundleEvent(event: TerminalReportableEvent): boolean {\n return false;\n }\n\n /** Cache has been reset. */\n transformCacheReset(): void {}\n\n /** One of the first logs that will be printed. */\n dependencyGraphLoading(hasReducedPerformance: boolean): void {}\n\n /**\n * Custom log event representing the end of the bundling.\n *\n * @param event event object.\n * @param duration duration of the build in milliseconds.\n */\n bundleBuildEnded(event: TerminalReportableEvent, duration: bigint | number): void {}\n\n // Add a custom format to logs that come from the worker threads.\n // `| <contents>`\n _logWorkerChunk(origin: 'stdout' | 'stderr', chunk: string): void {\n const lines = chunk.split('\\n');\n if (lines.length >= 1 && lines[lines.length - 1] === '') {\n lines.splice(lines.length - 1, 1);\n }\n\n const originTag = origin === 'stdout' ? chalk.dim('|') : chalk.yellow('|');\n lines.forEach((line: string) => {\n this.terminal.log(originTag, line);\n });\n }\n\n _logWatcherStatus(status: WatcherStatus) {\n // Metro logs this warning twice. This helps reduce the noise.\n\n if (status.type === 'watchman_warning') {\n return;\n }\n return super._logWatcherStatus(status);\n }\n\n /**\n * This function is exclusively concerned with updating the internal state.\n * No logging or status updates should be done at this point.\n */\n _updateState(\n event: TerminalReportableEvent & { bundleDetails?: BundleDetails; buildID?: string }\n ) {\n // Append the buildID to the bundleDetails.\n if (event.bundleDetails) {\n event.bundleDetails.buildID = event.buildID;\n }\n\n const buildID = event.bundleDetails?.buildID ?? event.buildID;\n\n if (buildID && !this._hiddenBundleEvents.has(buildID)) {\n if (this.shouldFilterBundleEvent(event)) {\n debug('skipping bundle events for', buildID, event);\n this._hiddenBundleEvents.add(buildID);\n } else {\n super._updateState(event);\n }\n } else {\n super._updateState(event);\n }\n\n switch (event.type) {\n case 'bundle_build_done':\n case 'bundle_build_failed': {\n const startTime = this._bundleTimers.get(event.buildID);\n // Observed a bug in Metro where the `bundle_build_done` is invoked twice during a static bundle\n // i.e. `expo export`.\n if (startTime == null) {\n break;\n }\n\n this.bundleBuildEnded(event, startTime ? process.hrtime.bigint() - startTime : 0);\n this._bundleTimers.delete(event.buildID);\n break;\n }\n case 'bundle_build_started':\n this._bundleDetails.set(event.buildID, event.bundleDetails);\n this._bundleTimers.set(event.buildID, process.hrtime.bigint());\n break;\n }\n }\n\n /**\n * We use Math.pow(ratio, 2) to as a conservative measure of progress because\n * we know the `totalCount` is going to progressively increase as well. We\n * also prevent the ratio from going backwards.\n */\n _updateBundleProgress(options: BundleProgressUpdate) {\n super._updateBundleProgress(options);\n\n const currentProgress = this._activeBundles.get(options.buildID);\n if (!currentProgress) {\n return;\n }\n\n // Fix an issue where the transformer is faster than the resolver,\n // locking the progress bar at 100% after transforming the first and only resolved file (1/1).\n if (currentProgress.ratio === 1 && options.totalFileCount === 1) {\n Object.assign(currentProgress, { ...currentProgress, ratio: 0 });\n }\n }\n}\n"],"names":["logWarning","logError","TerminalReporter","debug","require","terminal","format","args","str","util","log","chalk","yellow","red","supportsColor","stripAnsi","XTerminalReporter","UpstreamTerminalReporter","_bundleDetails","Map","_bundleTimers","_hiddenBundleEvents","Set","_log","event","type","transformCacheReset","dependencyGraphLoading","hasReducedPerformance","shouldFilterClientLog","shouldFilterBundleEvent","bundleBuildEnded","duration","_logWorkerChunk","origin","chunk","lines","split","length","splice","originTag","dim","forEach","line","_logWatcherStatus","status","_updateState","bundleDetails","buildID","has","add","startTime","get","process","hrtime","bigint","delete","set","_updateBundleProgress","options","currentProgress","_activeBundles","ratio","totalFileCount","Object","assign"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/TerminalReporter.types.ts"],"sourcesContent":["import type { ReportableEvent } from 'metro';\nimport type { TerminalReportableEvent } from 'metro/src/lib/TerminalReporter';\nimport type { Terminal } from 'metro-core';\nimport type { WatcherStatus } from 'metro-file-map';\n\nimport { MetroEnvironment } from '../middleware/metroOptions';\n\nexport type GlobalCacheDisabledReason = 'too_many_errors' | 'too_many_misses';\n\nexport type BundleDetails = {\n buildID?: string;\n bundleType: string;\n dev: boolean;\n entryFile: string;\n minify: boolean;\n platform: string | null | undefined;\n customTransformOptions?: { environment?: MetroEnvironment; dom?: string };\n runtimeBytecodeVersion: number | null | undefined;\n};\n\nexport type BundleProgress = {\n bundleDetails: BundleDetails;\n transformedFileCount: number;\n totalFileCount: number;\n ratio: number;\n};\n\nexport type BundleProgressUpdate = {\n buildID: string;\n transformedFileCount: number;\n totalFileCount: number;\n};\n\nexport { TerminalReportableEvent };\n\nexport type BuildPhase = 'in_progress' | 'done' | 'failed';\n\n/**\n * Code across the application takes a reporter as an option and calls the\n * update whenever one of the ReportableEvent happens. Code does not directly\n * write to the standard output, because a build would be:\n *\n * 1. ad-hoc, embedded into another tool, in which case we do not want to\n * pollute that tool's own output. The tool is free to present the\n * warnings/progress we generate any way they want, by specifying a custom\n * reporter.\n * 2. run as a background process from another tool, in which case we want\n * to expose updates in a way that is easily machine-readable, for example\n * a JSON-stream. We don't want to pollute it with textual messages.\n *\n * We centralize terminal reporting into a single place because we want the\n * output to be robust and consistent. The most common reporter is\n * TerminalReporter, that should be the only place in the application should\n * access the `terminal` module (nor the `console`).\n */\nexport type Reporter = { update(event: ReportableEvent): void };\n\nexport interface SnippetError extends Error {\n code?: string;\n filename?: string;\n snippet?: string;\n\n /** Module that failed to load ex 'fs' */\n targetModuleName?: string;\n originModulePath?: string;\n\n errors?: any[];\n}\n\nexport interface TerminalReporterInterface {\n new (terminal: Terminal): TerminalReporterInterface;\n\n /**\n * The bundle builds for which we are actively maintaining the status on the\n * terminal, ie. showing a progress bar. There can be several bundles being\n * built at the same time.\n */\n _activeBundles: Map<string, BundleProgress>;\n\n _scheduleUpdateBundleProgress: {\n (data: { buildID: string; transformedFileCount: number; totalFileCount: number }): void;\n cancel(): void;\n };\n\n /** Set in super type */\n terminal: Terminal;\n\n /**\n * Construct a message that represents the progress of a\n * single bundle build, for example:\n *\n * BUNDLE path/to/bundle.js ▓▓▓▓▓░░░░░░░░░░░ 36.6% (4790/7922)\n */\n _getBundleStatusMessage(\n {\n bundleDetails: { entryFile, bundleType, runtimeBytecodeVersion },\n transformedFileCount,\n totalFileCount,\n ratio,\n }: BundleProgress,\n phase: BuildPhase\n ): string;\n\n _logWatcherStatus(event: WatcherStatus): void;\n\n /**\n * This function is only concerned with logging and should not do state\n * or terminal status updates.\n */\n _log(event: TerminalReportableEvent): void;\n\n _logCacheDisabled(reason: GlobalCacheDisabledReason): void;\n\n _logBundleBuildDone(buildID: string): void;\n\n _logBundleBuildFailed(buildID: string): void;\n\n _logInitializing(port: number, hasReducedPerformance: boolean): void;\n\n _logInitializingFailed(port: number, error: SnippetError): void;\n\n /**\n * We do not want to log the whole stacktrace for bundling error, because\n * these are operational errors, not programming errors, and the stacktrace\n * is not actionable to end users.\n */\n _logBundlingError(error: SnippetError): void;\n\n /**\n * We use Math.pow(ratio, 2) to as a conservative measure of progress because\n * we know the `totalCount` is going to progressively increase as well. We\n * also prevent the ratio from going backwards.\n */\n _updateBundleProgress({\n buildID,\n transformedFileCount,\n totalFileCount,\n }: BundleProgressUpdate): void;\n\n /**\n * This function is exclusively concerned with updating the internal state.\n * No logging or status updates should be done at this point.\n */\n _updateState(event: TerminalReportableEvent): void;\n /**\n * Return a status message that is always consistent with the current state\n * of the application. Having this single function ensures we don't have\n * different call sites overriding each other status messages.\n */\n _getStatusMessage(): string;\n\n _logHmrClientError(e: Error): void;\n\n /**\n * Single entry point for reporting events. That allows us to implement the\n * corresponding JSON reporter easily and have a consistent reporting.\n */\n update(event: TerminalReportableEvent): void;\n}\n"],"names":[],"mappings":"AAAA"}
|