@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,18 +9,10 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
ManifestMiddleware:
|
|
16
|
-
return ManifestMiddleware;
|
|
17
|
-
},
|
|
18
|
-
getEntryWithServerRoot: function() {
|
|
19
|
-
return getEntryWithServerRoot;
|
|
20
|
-
},
|
|
21
|
-
resolveMainModuleName: function() {
|
|
22
|
-
return resolveMainModuleName;
|
|
23
|
-
}
|
|
12
|
+
getEntryWithServerRoot: ()=>getEntryWithServerRoot,
|
|
13
|
+
resolveMainModuleName: ()=>resolveMainModuleName,
|
|
14
|
+
DEVELOPER_TOOL: ()=>DEVELOPER_TOOL,
|
|
15
|
+
ManifestMiddleware: ()=>ManifestMiddleware
|
|
24
16
|
});
|
|
25
17
|
function _config() {
|
|
26
18
|
const data = require("@expo/config");
|
|
@@ -37,7 +29,7 @@ function _paths() {
|
|
|
37
29
|
return data;
|
|
38
30
|
}
|
|
39
31
|
function _path() {
|
|
40
|
-
const data = /*#__PURE__*/
|
|
32
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
41
33
|
_path = function() {
|
|
42
34
|
return data;
|
|
43
35
|
};
|
|
@@ -50,19 +42,19 @@ function _url() {
|
|
|
50
42
|
};
|
|
51
43
|
return data;
|
|
52
44
|
}
|
|
53
|
-
const
|
|
45
|
+
const _expoMiddleware = require("./ExpoMiddleware");
|
|
54
46
|
const _metroOptions = require("./metroOptions");
|
|
55
47
|
const _resolveAssets = require("./resolveAssets");
|
|
56
48
|
const _resolvePlatform = require("./resolvePlatform");
|
|
57
49
|
const _exportHermes = require("../../../export/exportHermes");
|
|
58
|
-
const _log = /*#__PURE__*/
|
|
50
|
+
const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
|
|
59
51
|
const _errors = require("../../../utils/errors");
|
|
60
52
|
const _url1 = require("../../../utils/url");
|
|
61
|
-
const _devices = /*#__PURE__*/
|
|
53
|
+
const _devices = /*#__PURE__*/ _interopRequireWildcard(require("../../project/devices"));
|
|
62
54
|
const _router = require("../metro/router");
|
|
63
55
|
const _platformBundlers = require("../platformBundlers");
|
|
64
56
|
const _webTemplate = require("../webTemplate");
|
|
65
|
-
function
|
|
57
|
+
function _interopRequireDefault(obj) {
|
|
66
58
|
return obj && obj.__esModule ? obj : {
|
|
67
59
|
default: obj
|
|
68
60
|
};
|
|
@@ -75,7 +67,7 @@ function _getRequireWildcardCache(nodeInterop) {
|
|
|
75
67
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
76
68
|
})(nodeInterop);
|
|
77
69
|
}
|
|
78
|
-
function
|
|
70
|
+
function _interopRequireWildcard(obj, nodeInterop) {
|
|
79
71
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
80
72
|
return obj;
|
|
81
73
|
}
|
|
@@ -88,9 +80,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
88
80
|
if (cache && cache.has(obj)) {
|
|
89
81
|
return cache.get(obj);
|
|
90
82
|
}
|
|
91
|
-
var newObj = {
|
|
92
|
-
__proto__: null
|
|
93
|
-
};
|
|
83
|
+
var newObj = {};
|
|
94
84
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
95
85
|
for(var key in obj){
|
|
96
86
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -108,12 +98,12 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
108
98
|
}
|
|
109
99
|
return newObj;
|
|
110
100
|
}
|
|
111
|
-
const debug = require(
|
|
101
|
+
const debug = require("debug")("expo:start:server:middleware:manifest");
|
|
112
102
|
const supportedPlatforms = [
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
103
|
+
"ios",
|
|
104
|
+
"android",
|
|
105
|
+
"web",
|
|
106
|
+
"none"
|
|
117
107
|
];
|
|
118
108
|
function getEntryWithServerRoot(projectRoot, props) {
|
|
119
109
|
if (!supportedPlatforms.includes(props.platform)) {
|
|
@@ -124,23 +114,25 @@ function getEntryWithServerRoot(projectRoot, props) {
|
|
|
124
114
|
function resolveMainModuleName(projectRoot, props) {
|
|
125
115
|
const entryPoint = getEntryWithServerRoot(projectRoot, props);
|
|
126
116
|
debug(`Resolved entry point: ${entryPoint} (project root: ${projectRoot})`);
|
|
127
|
-
return (0, _metroOptions.convertPathToModuleSpecifier)((0, _url1.stripExtension)(entryPoint,
|
|
117
|
+
return (0, _metroOptions.convertPathToModuleSpecifier)((0, _url1.stripExtension)(entryPoint, "js"));
|
|
128
118
|
}
|
|
129
|
-
const DEVELOPER_TOOL =
|
|
130
|
-
class ManifestMiddleware extends
|
|
119
|
+
const DEVELOPER_TOOL = "expo-cli";
|
|
120
|
+
class ManifestMiddleware extends _expoMiddleware.ExpoMiddleware {
|
|
131
121
|
constructor(projectRoot, options){
|
|
132
122
|
super(projectRoot, /**
|
|
133
123
|
* Only support `/`, `/manifest`, `/index.exp` for the manifest middleware.
|
|
134
124
|
*/ [
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
])
|
|
125
|
+
"/",
|
|
126
|
+
"/manifest",
|
|
127
|
+
"/index.exp"
|
|
128
|
+
]);
|
|
129
|
+
this.projectRoot = projectRoot;
|
|
130
|
+
this.options = options;
|
|
139
131
|
this.initialProjectConfig = (0, _config().getConfig)(projectRoot);
|
|
140
132
|
this.platformBundlers = (0, _platformBundlers.getPlatformBundlers)(projectRoot, this.initialProjectConfig.exp);
|
|
141
133
|
}
|
|
142
|
-
/** Exposed for testing. */ async _resolveProjectSettingsAsync({ platform, hostname, protocol
|
|
143
|
-
var
|
|
134
|
+
/** Exposed for testing. */ async _resolveProjectSettingsAsync({ platform , hostname , protocol }) {
|
|
135
|
+
var ref;
|
|
144
136
|
// Read the config
|
|
145
137
|
const projectConfig = (0, _config().getConfig)(this.projectRoot);
|
|
146
138
|
// Read from headers
|
|
@@ -155,19 +147,19 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
155
147
|
hostname
|
|
156
148
|
});
|
|
157
149
|
const hostUri = this.options.constructUrl({
|
|
158
|
-
scheme:
|
|
150
|
+
scheme: "",
|
|
159
151
|
hostname
|
|
160
152
|
});
|
|
161
153
|
const bundleUrl = this._getBundleUrl({
|
|
162
154
|
platform,
|
|
163
155
|
mainModuleName,
|
|
164
156
|
hostname,
|
|
165
|
-
engine: isHermesEnabled ?
|
|
157
|
+
engine: isHermesEnabled ? "hermes" : undefined,
|
|
166
158
|
baseUrl: (0, _metroOptions.getBaseUrlFromExpoConfig)(projectConfig.exp),
|
|
167
|
-
asyncRoutes: (0, _metroOptions.getAsyncRoutesFromExpoConfig)(projectConfig.exp, this.options.mode ??
|
|
159
|
+
asyncRoutes: (0, _metroOptions.getAsyncRoutesFromExpoConfig)(projectConfig.exp, this.options.mode ?? "development", platform),
|
|
168
160
|
routerRoot: (0, _router.getRouterDirectoryModuleIdWithManifest)(this.projectRoot, projectConfig.exp),
|
|
169
161
|
protocol,
|
|
170
|
-
reactCompiler: !!((
|
|
162
|
+
reactCompiler: !!((ref = projectConfig.exp.experiments) == null ? void 0 : ref.reactCompiler)
|
|
171
163
|
});
|
|
172
164
|
// Resolve all assets and set them on the manifest as URLs
|
|
173
165
|
await this.mutateManifestWithAssetsAsync(projectConfig.exp, bundleUrl);
|
|
@@ -188,26 +180,26 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
188
180
|
// // TODO: Move this into BundlerDevServer and read this info from self.
|
|
189
181
|
// const isNativeWebpack = server instanceof WebpackBundlerDevServer && server.isTargetingNative();
|
|
190
182
|
if (this.options.isNativeWebpack) {
|
|
191
|
-
entryPoint =
|
|
183
|
+
entryPoint = "index.js";
|
|
192
184
|
}
|
|
193
|
-
return (0, _url1.stripExtension)(entryPoint,
|
|
185
|
+
return (0, _url1.stripExtension)(entryPoint, "js");
|
|
194
186
|
}
|
|
195
187
|
/** Store device IDs that were sent in the request headers. */ async saveDevicesAsync(req) {
|
|
196
|
-
var
|
|
197
|
-
const deviceIds = (
|
|
188
|
+
var ref;
|
|
189
|
+
const deviceIds = (ref = req.headers) == null ? void 0 : ref["expo-dev-client-id"];
|
|
198
190
|
if (deviceIds) {
|
|
199
191
|
await _devices.saveDevicesAsync(this.projectRoot, deviceIds).catch((e)=>_log.exception(e));
|
|
200
192
|
}
|
|
201
193
|
}
|
|
202
|
-
/** Create the bundle URL (points to the single JS entry file). Exposed for testing. */ _getBundleUrl({ platform, mainModuleName, hostname, engine, baseUrl, isExporting, asyncRoutes, routerRoot, protocol, reactCompiler
|
|
194
|
+
/** Create the bundle URL (points to the single JS entry file). Exposed for testing. */ _getBundleUrl({ platform , mainModuleName , hostname , engine , baseUrl , isExporting , asyncRoutes , routerRoot , protocol , reactCompiler }) {
|
|
203
195
|
const path = (0, _metroOptions.createBundleUrlPath)({
|
|
204
|
-
mode: this.options.mode ??
|
|
196
|
+
mode: this.options.mode ?? "development",
|
|
205
197
|
minify: this.options.minify,
|
|
206
198
|
platform,
|
|
207
199
|
mainModuleName,
|
|
208
200
|
lazy: (0, _metroOptions.shouldEnableAsyncImports)(this.projectRoot),
|
|
209
201
|
engine,
|
|
210
|
-
bytecode: engine ===
|
|
202
|
+
bytecode: engine === "hermes",
|
|
211
203
|
baseUrl,
|
|
212
204
|
isExporting: !!isExporting,
|
|
213
205
|
asyncRoutes,
|
|
@@ -215,16 +207,16 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
215
207
|
reactCompiler
|
|
216
208
|
});
|
|
217
209
|
return this.options.constructUrl({
|
|
218
|
-
scheme: protocol ??
|
|
210
|
+
scheme: protocol ?? "http",
|
|
219
211
|
// hostType: this.options.location.hostType,
|
|
220
212
|
hostname
|
|
221
213
|
}) + path;
|
|
222
214
|
}
|
|
223
|
-
getExpoGoConfig({ mainModuleName, hostname
|
|
215
|
+
getExpoGoConfig({ mainModuleName , hostname }) {
|
|
224
216
|
return {
|
|
225
217
|
// localhost:8081
|
|
226
218
|
debuggerHost: this.options.constructUrl({
|
|
227
|
-
scheme:
|
|
219
|
+
scheme: "",
|
|
228
220
|
hostname
|
|
229
221
|
}),
|
|
230
222
|
// Required for Expo Go to function.
|
|
@@ -234,7 +226,7 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
234
226
|
},
|
|
235
227
|
packagerOpts: {
|
|
236
228
|
// Required for dev client.
|
|
237
|
-
dev: this.options.mode !==
|
|
229
|
+
dev: this.options.mode !== "production"
|
|
238
230
|
},
|
|
239
231
|
// Indicates the name of the main bundle.
|
|
240
232
|
mainModuleName,
|
|
@@ -242,7 +234,7 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
242
234
|
// Can be tested by running:
|
|
243
235
|
// `METRO_SERVER_PORT=8081 open -a flipper.app`
|
|
244
236
|
// Where 8081 is the port where the Expo project is being hosted.
|
|
245
|
-
__flipperHack:
|
|
237
|
+
__flipperHack: "React Native packager is running"
|
|
246
238
|
};
|
|
247
239
|
}
|
|
248
240
|
/** Resolve all assets and set them on the manifest as URLs */ async mutateManifestWithAssetsAsync(manifest, bundleUrl) {
|
|
@@ -254,14 +246,14 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
254
246
|
// without the `assets/` subpath redirect.
|
|
255
247
|
return (0, _url().resolve)(bundleUrl.match(/^https?:\/\/.*?\//)[0], path);
|
|
256
248
|
}
|
|
257
|
-
return bundleUrl.match(/^https?:\/\/.*?\//)[0] +
|
|
249
|
+
return bundleUrl.match(/^https?:\/\/.*?\//)[0] + "assets/" + path;
|
|
258
250
|
}
|
|
259
251
|
});
|
|
260
252
|
// The server normally inserts this but if we're offline we'll do it here
|
|
261
253
|
await (0, _resolveAssets.resolveGoogleServicesFile)(this.projectRoot, manifest);
|
|
262
254
|
}
|
|
263
255
|
getWebBundleUrl() {
|
|
264
|
-
const platform =
|
|
256
|
+
const platform = "web";
|
|
265
257
|
// Read from headers
|
|
266
258
|
const mainModuleName = this.resolveMainModuleName({
|
|
267
259
|
pkg: this.initialProjectConfig.pkg,
|
|
@@ -272,9 +264,9 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
272
264
|
mainModuleName,
|
|
273
265
|
minify: this.options.minify,
|
|
274
266
|
lazy: (0, _metroOptions.shouldEnableAsyncImports)(this.projectRoot),
|
|
275
|
-
mode: this.options.mode ??
|
|
267
|
+
mode: this.options.mode ?? "development",
|
|
276
268
|
// Hermes doesn't support more modern JS features than most, if not all, modern browser.
|
|
277
|
-
engine:
|
|
269
|
+
engine: "hermes",
|
|
278
270
|
isExporting: false,
|
|
279
271
|
bytecode: false
|
|
280
272
|
});
|
|
@@ -285,7 +277,7 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
285
277
|
* Instead of adding a `bundleUrl` to a `manifest.json` (native) we'll add a `<script src="">`
|
|
286
278
|
* to an `index.html`, this enables the web platform to load JavaScript from the server.
|
|
287
279
|
*/ async handleWebRequestAsync(req, res) {
|
|
288
|
-
res.setHeader(
|
|
280
|
+
res.setHeader("Content-Type", "text/html");
|
|
289
281
|
res.end(await this.getSingleHtmlTemplateAsync());
|
|
290
282
|
}
|
|
291
283
|
getSingleHtmlTemplateAsync() {
|
|
@@ -299,19 +291,19 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
299
291
|
});
|
|
300
292
|
}
|
|
301
293
|
/** Exposed for testing. */ async checkBrowserRequestAsync(req, res, next) {
|
|
302
|
-
var
|
|
303
|
-
if (this.platformBundlers.web ===
|
|
294
|
+
var ref;
|
|
295
|
+
if (this.platformBundlers.web === "metro" && ((ref = this.initialProjectConfig.exp.platforms) == null ? void 0 : ref.includes("web"))) {
|
|
304
296
|
// NOTE(EvanBacon): This effectively disables the safety check we do on custom runtimes to ensure
|
|
305
297
|
// the `expo-platform` header is included. When `web.bundler=web`, if the user has non-standard Expo
|
|
306
298
|
// code loading then they'll get a web bundle without a clear assertion of platform support.
|
|
307
299
|
const platform = (0, _resolvePlatform.parsePlatformHeader)(req);
|
|
308
300
|
// On web, serve the public folder
|
|
309
|
-
if (!platform || platform ===
|
|
310
|
-
var
|
|
301
|
+
if (!platform || platform === "web") {
|
|
302
|
+
var ref1;
|
|
311
303
|
if ([
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
].includes(((
|
|
304
|
+
"static",
|
|
305
|
+
"server"
|
|
306
|
+
].includes(((ref1 = this.initialProjectConfig.exp.web) == null ? void 0 : ref1.output) ?? "")) {
|
|
315
307
|
// Skip the spa-styled index.html when static generation is enabled.
|
|
316
308
|
next();
|
|
317
309
|
return true;
|
|
@@ -332,7 +324,7 @@ class ManifestMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
332
324
|
await this.saveDevicesAsync(req);
|
|
333
325
|
// Read from headers
|
|
334
326
|
const options = this.getParsedHeaders(req);
|
|
335
|
-
const { body, headers
|
|
327
|
+
const { body , headers } = await this._getManifestResponseAsync(options);
|
|
336
328
|
for (const [headerName, headerValue] of headers){
|
|
337
329
|
res.setHeader(headerName, headerValue);
|
|
338
330
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/middleware/ManifestMiddleware.ts"],"sourcesContent":["import {\n ExpoConfig,\n ExpoGoConfig,\n getConfig,\n PackageJSONConfig,\n ProjectConfig,\n} from '@expo/config';\nimport { resolveEntryPoint, getMetroServerRoot } from '@expo/config/paths';\nimport path from 'path';\nimport { resolve } from 'url';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport {\n shouldEnableAsyncImports,\n createBundleUrlPath,\n getBaseUrlFromExpoConfig,\n getAsyncRoutesFromExpoConfig,\n createBundleUrlPathFromExpoConfig,\n convertPathToModuleSpecifier,\n} from './metroOptions';\nimport { resolveGoogleServicesFile, resolveManifestAssets } from './resolveAssets';\nimport { parsePlatformHeader, RuntimePlatform } from './resolvePlatform';\nimport { ServerHeaders, ServerNext, ServerRequest, ServerResponse } from './server.types';\nimport { isEnableHermesManaged } from '../../../export/exportHermes';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\nimport { stripExtension } from '../../../utils/url';\nimport * as ProjectDevices from '../../project/devices';\nimport { UrlCreator } from '../UrlCreator';\nimport { getRouterDirectoryModuleIdWithManifest } from '../metro/router';\nimport { getPlatformBundlers, PlatformBundlers } from '../platformBundlers';\nimport { createTemplateHtmlFromExpoConfigAsync } from '../webTemplate';\n\nconst debug = require('debug')('expo:start:server:middleware:manifest') as typeof console.log;\n\nconst supportedPlatforms = ['ios', 'android', 'web', 'none'];\n\nexport function getEntryWithServerRoot(\n projectRoot: string,\n props: { platform: string; pkg?: PackageJSONConfig }\n) {\n if (!supportedPlatforms.includes(props.platform)) {\n throw new CommandError(\n `Failed to resolve the project's entry file: The platform \"${props.platform}\" is not supported.`\n );\n }\n return convertPathToModuleSpecifier(\n path.relative(getMetroServerRoot(projectRoot), resolveEntryPoint(projectRoot, props))\n );\n}\n\n/** Get the main entry module ID (file) relative to the project root. */\nexport function resolveMainModuleName(\n projectRoot: string,\n props: { platform: string; pkg?: PackageJSONConfig }\n): string {\n const entryPoint = getEntryWithServerRoot(projectRoot, props);\n\n debug(`Resolved entry point: ${entryPoint} (project root: ${projectRoot})`);\n\n return convertPathToModuleSpecifier(stripExtension(entryPoint, 'js'));\n}\n\n/** Info about the computer hosting the dev server. */\nexport interface HostInfo {\n host: string;\n server: 'expo';\n serverVersion: string;\n serverDriver: string | null;\n serverOS: NodeJS.Platform;\n serverOSVersion: string;\n}\n\n/** Parsed values from the supported request headers. */\nexport interface ManifestRequestInfo {\n /** Platform to serve. */\n platform: RuntimePlatform;\n /** Requested host name. */\n hostname?: string | null;\n /** The protocol used to request the manifest */\n protocol?: 'http' | 'https';\n}\n\n/** Project related info. */\nexport type ResponseProjectSettings = {\n expoGoConfig: ExpoGoConfig;\n hostUri: string;\n bundleUrl: string;\n exp: ExpoConfig;\n};\n\nexport const DEVELOPER_TOOL = 'expo-cli';\n\nexport type ManifestMiddlewareOptions = {\n /** Should start the dev servers in development mode (minify). */\n mode?: 'development' | 'production';\n /** Should instruct the bundler to create minified bundles. */\n minify?: boolean;\n constructUrl: UrlCreator['constructUrl'];\n isNativeWebpack?: boolean;\n privateKeyPath?: string;\n};\n\n/** Base middleware creator for serving the Expo manifest (like the index.html but for native runtimes). */\nexport abstract class ManifestMiddleware<\n TManifestRequestInfo extends ManifestRequestInfo,\n> extends ExpoMiddleware {\n private initialProjectConfig: ProjectConfig;\n private platformBundlers: PlatformBundlers;\n\n constructor(\n protected projectRoot: string,\n protected options: ManifestMiddlewareOptions\n ) {\n super(\n projectRoot,\n /**\n * Only support `/`, `/manifest`, `/index.exp` for the manifest middleware.\n */\n ['/', '/manifest', '/index.exp']\n );\n this.initialProjectConfig = getConfig(projectRoot);\n this.platformBundlers = getPlatformBundlers(projectRoot, this.initialProjectConfig.exp);\n }\n\n /** Exposed for testing. */\n public async _resolveProjectSettingsAsync({\n platform,\n hostname,\n protocol,\n }: Pick<\n TManifestRequestInfo,\n 'hostname' | 'platform' | 'protocol'\n >): Promise<ResponseProjectSettings> {\n // Read the config\n const projectConfig = getConfig(this.projectRoot);\n\n // Read from headers\n const mainModuleName = this.resolveMainModuleName({\n pkg: projectConfig.pkg,\n platform,\n });\n\n const isHermesEnabled = isEnableHermesManaged(projectConfig.exp, platform);\n\n // Create the manifest and set fields within it\n const expoGoConfig = this.getExpoGoConfig({\n mainModuleName,\n hostname,\n });\n\n const hostUri = this.options.constructUrl({ scheme: '', hostname });\n\n const bundleUrl = this._getBundleUrl({\n platform,\n mainModuleName,\n hostname,\n engine: isHermesEnabled ? 'hermes' : undefined,\n baseUrl: getBaseUrlFromExpoConfig(projectConfig.exp),\n asyncRoutes: getAsyncRoutesFromExpoConfig(\n projectConfig.exp,\n this.options.mode ?? 'development',\n platform\n ),\n routerRoot: getRouterDirectoryModuleIdWithManifest(this.projectRoot, projectConfig.exp),\n protocol,\n reactCompiler: !!projectConfig.exp.experiments?.reactCompiler,\n });\n\n // Resolve all assets and set them on the manifest as URLs\n await this.mutateManifestWithAssetsAsync(projectConfig.exp, bundleUrl);\n\n return {\n expoGoConfig,\n hostUri,\n bundleUrl,\n exp: projectConfig.exp,\n };\n }\n\n /** Get the main entry module ID (file) relative to the project root. */\n private resolveMainModuleName(props: { pkg: PackageJSONConfig; platform: string }): string {\n let entryPoint = getEntryWithServerRoot(this.projectRoot, props);\n\n debug(`Resolved entry point: ${entryPoint} (project root: ${this.projectRoot})`);\n\n // NOTE(Bacon): Webpack is currently hardcoded to index.bundle on native\n // in the future (TODO) we should move this logic into a Webpack plugin and use\n // a generated file name like we do on web.\n // const server = getDefaultDevServer();\n // // TODO: Move this into BundlerDevServer and read this info from self.\n // const isNativeWebpack = server instanceof WebpackBundlerDevServer && server.isTargetingNative();\n if (this.options.isNativeWebpack) {\n entryPoint = 'index.js';\n }\n\n return stripExtension(entryPoint, 'js');\n }\n\n /** Parse request headers into options. */\n public abstract getParsedHeaders(req: ServerRequest): TManifestRequestInfo;\n\n /** Store device IDs that were sent in the request headers. */\n private async saveDevicesAsync(req: ServerRequest) {\n const deviceIds = req.headers?.['expo-dev-client-id'];\n if (deviceIds) {\n await ProjectDevices.saveDevicesAsync(this.projectRoot, deviceIds).catch((e) =>\n Log.exception(e)\n );\n }\n }\n\n /** Create the bundle URL (points to the single JS entry file). Exposed for testing. */\n public _getBundleUrl({\n platform,\n mainModuleName,\n hostname,\n engine,\n baseUrl,\n isExporting,\n asyncRoutes,\n routerRoot,\n protocol,\n reactCompiler,\n }: {\n platform: string;\n hostname?: string | null;\n mainModuleName: string;\n engine?: 'hermes';\n baseUrl?: string;\n asyncRoutes: boolean;\n isExporting?: boolean;\n routerRoot: string;\n protocol?: 'http' | 'https';\n reactCompiler: boolean;\n }): string {\n const path = createBundleUrlPath({\n mode: this.options.mode ?? 'development',\n minify: this.options.minify,\n platform,\n mainModuleName,\n lazy: shouldEnableAsyncImports(this.projectRoot),\n engine,\n bytecode: engine === 'hermes',\n baseUrl,\n isExporting: !!isExporting,\n asyncRoutes,\n routerRoot,\n reactCompiler,\n });\n\n return (\n this.options.constructUrl({\n scheme: protocol ?? 'http',\n // hostType: this.options.location.hostType,\n hostname,\n }) + path\n );\n }\n\n /** Get the manifest response to return to the runtime. This file contains info regarding where the assets can be loaded from. Exposed for testing. */\n public abstract _getManifestResponseAsync(options: TManifestRequestInfo): Promise<{\n body: string;\n version: string;\n headers: ServerHeaders;\n }>;\n\n private getExpoGoConfig({\n mainModuleName,\n hostname,\n }: {\n mainModuleName: string;\n hostname?: string | null;\n }): ExpoGoConfig {\n return {\n // localhost:8081\n debuggerHost: this.options.constructUrl({ scheme: '', hostname }),\n // Required for Expo Go to function.\n developer: {\n tool: DEVELOPER_TOOL,\n projectRoot: this.projectRoot,\n },\n packagerOpts: {\n // Required for dev client.\n dev: this.options.mode !== 'production',\n },\n // Indicates the name of the main bundle.\n mainModuleName,\n // Add this string to make Flipper register React Native / Metro as \"running\".\n // Can be tested by running:\n // `METRO_SERVER_PORT=8081 open -a flipper.app`\n // Where 8081 is the port where the Expo project is being hosted.\n __flipperHack: 'React Native packager is running',\n };\n }\n\n /** Resolve all assets and set them on the manifest as URLs */\n private async mutateManifestWithAssetsAsync(manifest: ExpoConfig, bundleUrl: string) {\n await resolveManifestAssets(this.projectRoot, {\n manifest,\n resolver: async (path) => {\n if (this.options.isNativeWebpack) {\n // When using our custom dev server, just do assets normally\n // without the `assets/` subpath redirect.\n return resolve(bundleUrl!.match(/^https?:\\/\\/.*?\\//)![0], path);\n }\n return bundleUrl!.match(/^https?:\\/\\/.*?\\//)![0] + 'assets/' + path;\n },\n });\n // The server normally inserts this but if we're offline we'll do it here\n await resolveGoogleServicesFile(this.projectRoot, manifest);\n }\n\n public getWebBundleUrl() {\n const platform = 'web';\n // Read from headers\n const mainModuleName = this.resolveMainModuleName({\n pkg: this.initialProjectConfig.pkg,\n platform,\n });\n\n return createBundleUrlPathFromExpoConfig(this.projectRoot, this.initialProjectConfig.exp, {\n platform,\n mainModuleName,\n minify: this.options.minify,\n lazy: shouldEnableAsyncImports(this.projectRoot),\n mode: this.options.mode ?? 'development',\n // Hermes doesn't support more modern JS features than most, if not all, modern browser.\n engine: 'hermes',\n isExporting: false,\n bytecode: false,\n });\n }\n\n /**\n * Web platforms should create an index.html response using the same script resolution as native.\n *\n * Instead of adding a `bundleUrl` to a `manifest.json` (native) we'll add a `<script src=\"\">`\n * to an `index.html`, this enables the web platform to load JavaScript from the server.\n */\n private async handleWebRequestAsync(req: ServerRequest, res: ServerResponse) {\n res.setHeader('Content-Type', 'text/html');\n\n res.end(await this.getSingleHtmlTemplateAsync());\n }\n\n getSingleHtmlTemplateAsync() {\n // Read from headers\n const bundleUrl = this.getWebBundleUrl();\n\n return createTemplateHtmlFromExpoConfigAsync(this.projectRoot, {\n exp: this.initialProjectConfig.exp,\n scripts: [bundleUrl],\n });\n }\n\n /** Exposed for testing. */\n async checkBrowserRequestAsync(req: ServerRequest, res: ServerResponse, next: ServerNext) {\n if (\n this.platformBundlers.web === 'metro' &&\n this.initialProjectConfig.exp.platforms?.includes('web')\n ) {\n // NOTE(EvanBacon): This effectively disables the safety check we do on custom runtimes to ensure\n // the `expo-platform` header is included. When `web.bundler=web`, if the user has non-standard Expo\n // code loading then they'll get a web bundle without a clear assertion of platform support.\n const platform = parsePlatformHeader(req);\n // On web, serve the public folder\n if (!platform || platform === 'web') {\n if (['static', 'server'].includes(this.initialProjectConfig.exp.web?.output ?? '')) {\n // Skip the spa-styled index.html when static generation is enabled.\n next();\n return true;\n } else {\n await this.handleWebRequestAsync(req, res);\n return true;\n }\n }\n }\n return false;\n }\n\n async handleRequestAsync(\n req: ServerRequest,\n res: ServerResponse,\n next: ServerNext\n ): Promise<void> {\n // First check for standard JavaScript runtimes (aka legacy browsers like Chrome).\n if (await this.checkBrowserRequestAsync(req, res, next)) {\n return;\n }\n\n // Save device IDs for dev client.\n await this.saveDevicesAsync(req);\n\n // Read from headers\n const options = this.getParsedHeaders(req);\n const { body, headers } = await this._getManifestResponseAsync(options);\n for (const [headerName, headerValue] of headers) {\n res.setHeader(headerName, headerValue);\n }\n res.end(body);\n }\n}\n"],"names":["DEVELOPER_TOOL","ManifestMiddleware","getEntryWithServerRoot","resolveMainModuleName","debug","require","supportedPlatforms","projectRoot","props","includes","platform","CommandError","convertPathToModuleSpecifier","path","relative","getMetroServerRoot","resolveEntryPoint","entryPoint","stripExtension","ExpoMiddleware","constructor","options","initialProjectConfig","getConfig","platformBundlers","getPlatformBundlers","exp","_resolveProjectSettingsAsync","hostname","protocol","projectConfig","mainModuleName","pkg","isHermesEnabled","isEnableHermesManaged","expoGoConfig","getExpoGoConfig","hostUri","constructUrl","scheme","bundleUrl","_getBundleUrl","engine","undefined","baseUrl","getBaseUrlFromExpoConfig","asyncRoutes","getAsyncRoutesFromExpoConfig","mode","routerRoot","getRouterDirectoryModuleIdWithManifest","reactCompiler","experiments","mutateManifestWithAssetsAsync","isNativeWebpack","saveDevicesAsync","req","deviceIds","headers","ProjectDevices","catch","e","Log","exception","isExporting","createBundleUrlPath","minify","lazy","shouldEnableAsyncImports","bytecode","debuggerHost","developer","tool","packagerOpts","dev","__flipperHack","manifest","resolveManifestAssets","resolver","resolve","match","resolveGoogleServicesFile","getWebBundleUrl","createBundleUrlPathFromExpoConfig","handleWebRequestAsync","res","setHeader","end","getSingleHtmlTemplateAsync","createTemplateHtmlFromExpoConfigAsync","scripts","checkBrowserRequestAsync","next","web","platforms","parsePlatformHeader","output","handleRequestAsync","getParsedHeaders","body","_getManifestResponseAsync","headerName","headerValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/middleware/ManifestMiddleware.ts"],"sourcesContent":["import {\n ExpoConfig,\n ExpoGoConfig,\n getConfig,\n PackageJSONConfig,\n ProjectConfig,\n} from '@expo/config';\nimport { resolveEntryPoint, getMetroServerRoot } from '@expo/config/paths';\nimport path from 'path';\nimport { resolve } from 'url';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport {\n shouldEnableAsyncImports,\n createBundleUrlPath,\n getBaseUrlFromExpoConfig,\n getAsyncRoutesFromExpoConfig,\n createBundleUrlPathFromExpoConfig,\n convertPathToModuleSpecifier,\n} from './metroOptions';\nimport { resolveGoogleServicesFile, resolveManifestAssets } from './resolveAssets';\nimport { parsePlatformHeader, RuntimePlatform } from './resolvePlatform';\nimport { ServerHeaders, ServerNext, ServerRequest, ServerResponse } from './server.types';\nimport { isEnableHermesManaged } from '../../../export/exportHermes';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\nimport { stripExtension } from '../../../utils/url';\nimport * as ProjectDevices from '../../project/devices';\nimport { UrlCreator } from '../UrlCreator';\nimport { getRouterDirectoryModuleIdWithManifest } from '../metro/router';\nimport { getPlatformBundlers, PlatformBundlers } from '../platformBundlers';\nimport { createTemplateHtmlFromExpoConfigAsync } from '../webTemplate';\n\nconst debug = require('debug')('expo:start:server:middleware:manifest') as typeof console.log;\n\nconst supportedPlatforms = ['ios', 'android', 'web', 'none'];\n\nexport function getEntryWithServerRoot(\n projectRoot: string,\n props: { platform: string; pkg?: PackageJSONConfig }\n) {\n if (!supportedPlatforms.includes(props.platform)) {\n throw new CommandError(\n `Failed to resolve the project's entry file: The platform \"${props.platform}\" is not supported.`\n );\n }\n return convertPathToModuleSpecifier(\n path.relative(getMetroServerRoot(projectRoot), resolveEntryPoint(projectRoot, props))\n );\n}\n\n/** Get the main entry module ID (file) relative to the project root. */\nexport function resolveMainModuleName(\n projectRoot: string,\n props: { platform: string; pkg?: PackageJSONConfig }\n): string {\n const entryPoint = getEntryWithServerRoot(projectRoot, props);\n\n debug(`Resolved entry point: ${entryPoint} (project root: ${projectRoot})`);\n\n return convertPathToModuleSpecifier(stripExtension(entryPoint, 'js'));\n}\n\n/** Info about the computer hosting the dev server. */\nexport interface HostInfo {\n host: string;\n server: 'expo';\n serverVersion: string;\n serverDriver: string | null;\n serverOS: NodeJS.Platform;\n serverOSVersion: string;\n}\n\n/** Parsed values from the supported request headers. */\nexport interface ManifestRequestInfo {\n /** Platform to serve. */\n platform: RuntimePlatform;\n /** Requested host name. */\n hostname?: string | null;\n /** The protocol used to request the manifest */\n protocol?: 'http' | 'https';\n}\n\n/** Project related info. */\nexport type ResponseProjectSettings = {\n expoGoConfig: ExpoGoConfig;\n hostUri: string;\n bundleUrl: string;\n exp: ExpoConfig;\n};\n\nexport const DEVELOPER_TOOL = 'expo-cli';\n\nexport type ManifestMiddlewareOptions = {\n /** Should start the dev servers in development mode (minify). */\n mode?: 'development' | 'production';\n /** Should instruct the bundler to create minified bundles. */\n minify?: boolean;\n constructUrl: UrlCreator['constructUrl'];\n isNativeWebpack?: boolean;\n privateKeyPath?: string;\n};\n\n/** Base middleware creator for serving the Expo manifest (like the index.html but for native runtimes). */\nexport abstract class ManifestMiddleware<\n TManifestRequestInfo extends ManifestRequestInfo,\n> extends ExpoMiddleware {\n private initialProjectConfig: ProjectConfig;\n private platformBundlers: PlatformBundlers;\n\n constructor(\n protected projectRoot: string,\n protected options: ManifestMiddlewareOptions\n ) {\n super(\n projectRoot,\n /**\n * Only support `/`, `/manifest`, `/index.exp` for the manifest middleware.\n */\n ['/', '/manifest', '/index.exp']\n );\n this.initialProjectConfig = getConfig(projectRoot);\n this.platformBundlers = getPlatformBundlers(projectRoot, this.initialProjectConfig.exp);\n }\n\n /** Exposed for testing. */\n public async _resolveProjectSettingsAsync({\n platform,\n hostname,\n protocol,\n }: Pick<\n TManifestRequestInfo,\n 'hostname' | 'platform' | 'protocol'\n >): Promise<ResponseProjectSettings> {\n // Read the config\n const projectConfig = getConfig(this.projectRoot);\n\n // Read from headers\n const mainModuleName = this.resolveMainModuleName({\n pkg: projectConfig.pkg,\n platform,\n });\n\n const isHermesEnabled = isEnableHermesManaged(projectConfig.exp, platform);\n\n // Create the manifest and set fields within it\n const expoGoConfig = this.getExpoGoConfig({\n mainModuleName,\n hostname,\n });\n\n const hostUri = this.options.constructUrl({ scheme: '', hostname });\n\n const bundleUrl = this._getBundleUrl({\n platform,\n mainModuleName,\n hostname,\n engine: isHermesEnabled ? 'hermes' : undefined,\n baseUrl: getBaseUrlFromExpoConfig(projectConfig.exp),\n asyncRoutes: getAsyncRoutesFromExpoConfig(\n projectConfig.exp,\n this.options.mode ?? 'development',\n platform\n ),\n routerRoot: getRouterDirectoryModuleIdWithManifest(this.projectRoot, projectConfig.exp),\n protocol,\n reactCompiler: !!projectConfig.exp.experiments?.reactCompiler,\n });\n\n // Resolve all assets and set them on the manifest as URLs\n await this.mutateManifestWithAssetsAsync(projectConfig.exp, bundleUrl);\n\n return {\n expoGoConfig,\n hostUri,\n bundleUrl,\n exp: projectConfig.exp,\n };\n }\n\n /** Get the main entry module ID (file) relative to the project root. */\n private resolveMainModuleName(props: { pkg: PackageJSONConfig; platform: string }): string {\n let entryPoint = getEntryWithServerRoot(this.projectRoot, props);\n\n debug(`Resolved entry point: ${entryPoint} (project root: ${this.projectRoot})`);\n\n // NOTE(Bacon): Webpack is currently hardcoded to index.bundle on native\n // in the future (TODO) we should move this logic into a Webpack plugin and use\n // a generated file name like we do on web.\n // const server = getDefaultDevServer();\n // // TODO: Move this into BundlerDevServer and read this info from self.\n // const isNativeWebpack = server instanceof WebpackBundlerDevServer && server.isTargetingNative();\n if (this.options.isNativeWebpack) {\n entryPoint = 'index.js';\n }\n\n return stripExtension(entryPoint, 'js');\n }\n\n /** Parse request headers into options. */\n public abstract getParsedHeaders(req: ServerRequest): TManifestRequestInfo;\n\n /** Store device IDs that were sent in the request headers. */\n private async saveDevicesAsync(req: ServerRequest) {\n const deviceIds = req.headers?.['expo-dev-client-id'];\n if (deviceIds) {\n await ProjectDevices.saveDevicesAsync(this.projectRoot, deviceIds).catch((e) =>\n Log.exception(e)\n );\n }\n }\n\n /** Create the bundle URL (points to the single JS entry file). Exposed for testing. */\n public _getBundleUrl({\n platform,\n mainModuleName,\n hostname,\n engine,\n baseUrl,\n isExporting,\n asyncRoutes,\n routerRoot,\n protocol,\n reactCompiler,\n }: {\n platform: string;\n hostname?: string | null;\n mainModuleName: string;\n engine?: 'hermes';\n baseUrl?: string;\n asyncRoutes: boolean;\n isExporting?: boolean;\n routerRoot: string;\n protocol?: 'http' | 'https';\n reactCompiler: boolean;\n }): string {\n const path = createBundleUrlPath({\n mode: this.options.mode ?? 'development',\n minify: this.options.minify,\n platform,\n mainModuleName,\n lazy: shouldEnableAsyncImports(this.projectRoot),\n engine,\n bytecode: engine === 'hermes',\n baseUrl,\n isExporting: !!isExporting,\n asyncRoutes,\n routerRoot,\n reactCompiler,\n });\n\n return (\n this.options.constructUrl({\n scheme: protocol ?? 'http',\n // hostType: this.options.location.hostType,\n hostname,\n }) + path\n );\n }\n\n /** Get the manifest response to return to the runtime. This file contains info regarding where the assets can be loaded from. Exposed for testing. */\n public abstract _getManifestResponseAsync(options: TManifestRequestInfo): Promise<{\n body: string;\n version: string;\n headers: ServerHeaders;\n }>;\n\n private getExpoGoConfig({\n mainModuleName,\n hostname,\n }: {\n mainModuleName: string;\n hostname?: string | null;\n }): ExpoGoConfig {\n return {\n // localhost:8081\n debuggerHost: this.options.constructUrl({ scheme: '', hostname }),\n // Required for Expo Go to function.\n developer: {\n tool: DEVELOPER_TOOL,\n projectRoot: this.projectRoot,\n },\n packagerOpts: {\n // Required for dev client.\n dev: this.options.mode !== 'production',\n },\n // Indicates the name of the main bundle.\n mainModuleName,\n // Add this string to make Flipper register React Native / Metro as \"running\".\n // Can be tested by running:\n // `METRO_SERVER_PORT=8081 open -a flipper.app`\n // Where 8081 is the port where the Expo project is being hosted.\n __flipperHack: 'React Native packager is running',\n };\n }\n\n /** Resolve all assets and set them on the manifest as URLs */\n private async mutateManifestWithAssetsAsync(manifest: ExpoConfig, bundleUrl: string) {\n await resolveManifestAssets(this.projectRoot, {\n manifest,\n resolver: async (path) => {\n if (this.options.isNativeWebpack) {\n // When using our custom dev server, just do assets normally\n // without the `assets/` subpath redirect.\n return resolve(bundleUrl!.match(/^https?:\\/\\/.*?\\//)![0], path);\n }\n return bundleUrl!.match(/^https?:\\/\\/.*?\\//)![0] + 'assets/' + path;\n },\n });\n // The server normally inserts this but if we're offline we'll do it here\n await resolveGoogleServicesFile(this.projectRoot, manifest);\n }\n\n public getWebBundleUrl() {\n const platform = 'web';\n // Read from headers\n const mainModuleName = this.resolveMainModuleName({\n pkg: this.initialProjectConfig.pkg,\n platform,\n });\n\n return createBundleUrlPathFromExpoConfig(this.projectRoot, this.initialProjectConfig.exp, {\n platform,\n mainModuleName,\n minify: this.options.minify,\n lazy: shouldEnableAsyncImports(this.projectRoot),\n mode: this.options.mode ?? 'development',\n // Hermes doesn't support more modern JS features than most, if not all, modern browser.\n engine: 'hermes',\n isExporting: false,\n bytecode: false,\n });\n }\n\n /**\n * Web platforms should create an index.html response using the same script resolution as native.\n *\n * Instead of adding a `bundleUrl` to a `manifest.json` (native) we'll add a `<script src=\"\">`\n * to an `index.html`, this enables the web platform to load JavaScript from the server.\n */\n private async handleWebRequestAsync(req: ServerRequest, res: ServerResponse) {\n res.setHeader('Content-Type', 'text/html');\n\n res.end(await this.getSingleHtmlTemplateAsync());\n }\n\n getSingleHtmlTemplateAsync() {\n // Read from headers\n const bundleUrl = this.getWebBundleUrl();\n\n return createTemplateHtmlFromExpoConfigAsync(this.projectRoot, {\n exp: this.initialProjectConfig.exp,\n scripts: [bundleUrl],\n });\n }\n\n /** Exposed for testing. */\n async checkBrowserRequestAsync(req: ServerRequest, res: ServerResponse, next: ServerNext) {\n if (\n this.platformBundlers.web === 'metro' &&\n this.initialProjectConfig.exp.platforms?.includes('web')\n ) {\n // NOTE(EvanBacon): This effectively disables the safety check we do on custom runtimes to ensure\n // the `expo-platform` header is included. When `web.bundler=web`, if the user has non-standard Expo\n // code loading then they'll get a web bundle without a clear assertion of platform support.\n const platform = parsePlatformHeader(req);\n // On web, serve the public folder\n if (!platform || platform === 'web') {\n if (['static', 'server'].includes(this.initialProjectConfig.exp.web?.output ?? '')) {\n // Skip the spa-styled index.html when static generation is enabled.\n next();\n return true;\n } else {\n await this.handleWebRequestAsync(req, res);\n return true;\n }\n }\n }\n return false;\n }\n\n async handleRequestAsync(\n req: ServerRequest,\n res: ServerResponse,\n next: ServerNext\n ): Promise<void> {\n // First check for standard JavaScript runtimes (aka legacy browsers like Chrome).\n if (await this.checkBrowserRequestAsync(req, res, next)) {\n return;\n }\n\n // Save device IDs for dev client.\n await this.saveDevicesAsync(req);\n\n // Read from headers\n const options = this.getParsedHeaders(req);\n const { body, headers } = await this._getManifestResponseAsync(options);\n for (const [headerName, headerValue] of headers) {\n res.setHeader(headerName, headerValue);\n }\n res.end(body);\n }\n}\n"],"names":["getEntryWithServerRoot","resolveMainModuleName","DEVELOPER_TOOL","ManifestMiddleware","debug","require","supportedPlatforms","projectRoot","props","includes","platform","CommandError","convertPathToModuleSpecifier","path","relative","getMetroServerRoot","resolveEntryPoint","entryPoint","stripExtension","ExpoMiddleware","constructor","options","initialProjectConfig","getConfig","platformBundlers","getPlatformBundlers","exp","_resolveProjectSettingsAsync","hostname","protocol","projectConfig","mainModuleName","pkg","isHermesEnabled","isEnableHermesManaged","expoGoConfig","getExpoGoConfig","hostUri","constructUrl","scheme","bundleUrl","_getBundleUrl","engine","undefined","baseUrl","getBaseUrlFromExpoConfig","asyncRoutes","getAsyncRoutesFromExpoConfig","mode","routerRoot","getRouterDirectoryModuleIdWithManifest","reactCompiler","experiments","mutateManifestWithAssetsAsync","isNativeWebpack","saveDevicesAsync","req","deviceIds","headers","ProjectDevices","catch","e","Log","exception","isExporting","createBundleUrlPath","minify","lazy","shouldEnableAsyncImports","bytecode","debuggerHost","developer","tool","packagerOpts","dev","__flipperHack","manifest","resolveManifestAssets","resolver","resolve","match","resolveGoogleServicesFile","getWebBundleUrl","createBundleUrlPathFromExpoConfig","handleWebRequestAsync","res","setHeader","end","getSingleHtmlTemplateAsync","createTemplateHtmlFromExpoConfigAsync","scripts","checkBrowserRequestAsync","next","web","platforms","parsePlatformHeader","output","handleRequestAsync","getParsedHeaders","body","_getManifestResponseAsync","headerName","headerValue"],"mappings":"AAAA;;;;;;;;;;;IAqCgBA,sBAAsB,MAAtBA,sBAAsB;IAetBC,qBAAqB,MAArBA,qBAAqB;IAuCxBC,cAAc,MAAdA,cAAc;IAaLC,kBAAkB,MAAlBA,kBAAkB;;;yBAlGjC,cAAc;;;;;;;yBACiC,oBAAoB;;;;;;;8DACzD,MAAM;;;;;;;yBACC,KAAK;;;;;;gCAEE,kBAAkB;8BAQ1C,gBAAgB;+BAC0C,iBAAiB;iCAC7B,mBAAmB;8BAElC,8BAA8B;2DAC/C,cAAc;wBACN,uBAAuB;sBACrB,oBAAoB;+DACnB,uBAAuB;wBAEA,iBAAiB;kCAClB,qBAAqB;6BACrB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtE,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,uCAAuC,CAAC,AAAsB,AAAC;AAE9F,MAAMC,kBAAkB,GAAG;IAAC,KAAK;IAAE,SAAS;IAAE,KAAK;IAAE,MAAM;CAAC,AAAC;AAEtD,SAASN,sBAAsB,CACpCO,WAAmB,EACnBC,KAAoD,EACpD;IACA,IAAI,CAACF,kBAAkB,CAACG,QAAQ,CAACD,KAAK,CAACE,QAAQ,CAAC,EAAE;QAChD,MAAM,IAAIC,OAAY,aAAA,CACpB,CAAC,0DAA0D,EAAEH,KAAK,CAACE,QAAQ,CAAC,mBAAmB,CAAC,CACjG,CAAC;IACJ,CAAC;IACD,OAAOE,IAAAA,aAA4B,6BAAA,EACjCC,KAAI,EAAA,QAAA,CAACC,QAAQ,CAACC,IAAAA,MAAkB,EAAA,mBAAA,EAACR,WAAW,CAAC,EAAES,IAAAA,MAAiB,EAAA,kBAAA,EAACT,WAAW,EAAEC,KAAK,CAAC,CAAC,CACtF,CAAC;AACJ,CAAC;AAGM,SAASP,qBAAqB,CACnCM,WAAmB,EACnBC,KAAoD,EAC5C;IACR,MAAMS,UAAU,GAAGjB,sBAAsB,CAACO,WAAW,EAAEC,KAAK,CAAC,AAAC;IAE9DJ,KAAK,CAAC,CAAC,sBAAsB,EAAEa,UAAU,CAAC,gBAAgB,EAAEV,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5E,OAAOK,IAAAA,aAA4B,6BAAA,EAACM,IAAAA,KAAc,eAAA,EAACD,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AA8BM,MAAMf,cAAc,GAAG,UAAU,AAAC;AAalC,MAAeC,kBAAkB,SAE9BgB,eAAc,eAAA;IAItBC,YACYb,WAAmB,EACnBc,OAAkC,CAC5C;QACA,KAAK,CACHd,WAAW,EACX;;OAEC,GACD;YAAC,GAAG;YAAE,WAAW;YAAE,YAAY;SAAC,CACjC,CAAC;QATQA,mBAAAA,WAAmB,CAAA;QACnBc,eAAAA,OAAkC,CAAA;QAS5C,IAAI,CAACC,oBAAoB,GAAGC,IAAAA,OAAS,EAAA,UAAA,EAAChB,WAAW,CAAC,CAAC;QACnD,IAAI,CAACiB,gBAAgB,GAAGC,IAAAA,iBAAmB,oBAAA,EAAClB,WAAW,EAAE,IAAI,CAACe,oBAAoB,CAACI,GAAG,CAAC,CAAC;IAC1F;IAEA,yBAAyB,SACZC,4BAA4B,CAAC,EACxCjB,QAAQ,CAAA,EACRkB,QAAQ,CAAA,EACRC,QAAQ,CAAA,EAIT,EAAoC;YAiChBC,GAA6B;QAhChD,kBAAkB;QAClB,MAAMA,aAAa,GAAGP,IAAAA,OAAS,EAAA,UAAA,EAAC,IAAI,CAAChB,WAAW,CAAC,AAAC;QAElD,oBAAoB;QACpB,MAAMwB,cAAc,GAAG,IAAI,CAAC9B,qBAAqB,CAAC;YAChD+B,GAAG,EAAEF,aAAa,CAACE,GAAG;YACtBtB,QAAQ;SACT,CAAC,AAAC;QAEH,MAAMuB,eAAe,GAAGC,IAAAA,aAAqB,sBAAA,EAACJ,aAAa,CAACJ,GAAG,EAAEhB,QAAQ,CAAC,AAAC;QAE3E,+CAA+C;QAC/C,MAAMyB,YAAY,GAAG,IAAI,CAACC,eAAe,CAAC;YACxCL,cAAc;YACdH,QAAQ;SACT,CAAC,AAAC;QAEH,MAAMS,OAAO,GAAG,IAAI,CAAChB,OAAO,CAACiB,YAAY,CAAC;YAAEC,MAAM,EAAE,EAAE;YAAEX,QAAQ;SAAE,CAAC,AAAC;QAEpE,MAAMY,SAAS,GAAG,IAAI,CAACC,aAAa,CAAC;YACnC/B,QAAQ;YACRqB,cAAc;YACdH,QAAQ;YACRc,MAAM,EAAET,eAAe,GAAG,QAAQ,GAAGU,SAAS;YAC9CC,OAAO,EAAEC,IAAAA,aAAwB,yBAAA,EAACf,aAAa,CAACJ,GAAG,CAAC;YACpDoB,WAAW,EAAEC,IAAAA,aAA4B,6BAAA,EACvCjB,aAAa,CAACJ,GAAG,EACjB,IAAI,CAACL,OAAO,CAAC2B,IAAI,IAAI,aAAa,EAClCtC,QAAQ,CACT;YACDuC,UAAU,EAAEC,IAAAA,OAAsC,uCAAA,EAAC,IAAI,CAAC3C,WAAW,EAAEuB,aAAa,CAACJ,GAAG,CAAC;YACvFG,QAAQ;YACRsB,aAAa,EAAE,CAAC,CAACrB,CAAAA,CAAAA,GAA6B,GAA7BA,aAAa,CAACJ,GAAG,CAAC0B,WAAW,SAAe,GAA5CtB,KAAAA,CAA4C,GAA5CA,GAA6B,CAAEqB,aAAa,CAAA;SAC9D,CAAC,AAAC;QAEH,0DAA0D;QAC1D,MAAM,IAAI,CAACE,6BAA6B,CAACvB,aAAa,CAACJ,GAAG,EAAEc,SAAS,CAAC,CAAC;QAEvE,OAAO;YACLL,YAAY;YACZE,OAAO;YACPG,SAAS;YACTd,GAAG,EAAEI,aAAa,CAACJ,GAAG;SACvB,CAAC;IACJ;IAEA,sEAAsE,GAC9DzB,qBAAqB,CAACO,KAAmD,EAAU;QACzF,IAAIS,UAAU,GAAGjB,sBAAsB,CAAC,IAAI,CAACO,WAAW,EAAEC,KAAK,CAAC,AAAC;QAEjEJ,KAAK,CAAC,CAAC,sBAAsB,EAAEa,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAACV,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjF,wEAAwE;QACxE,+EAA+E;QAC/E,2CAA2C;QAC3C,wCAAwC;QACxC,yEAAyE;QACzE,mGAAmG;QACnG,IAAI,IAAI,CAACc,OAAO,CAACiC,eAAe,EAAE;YAChCrC,UAAU,GAAG,UAAU,CAAC;QAC1B,CAAC;QAED,OAAOC,IAAAA,KAAc,eAAA,EAACD,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C;IAKA,4DAA4D,SAC9CsC,gBAAgB,CAACC,GAAkB,EAAE;YAC/BA,GAAW;QAA7B,MAAMC,SAAS,GAAGD,CAAAA,GAAW,GAAXA,GAAG,CAACE,OAAO,SAAwB,GAAnCF,KAAAA,CAAmC,GAAnCA,GAAW,AAAE,CAAC,oBAAoB,CAAC,AAAC;QACtD,IAAIC,SAAS,EAAE;YACb,MAAME,QAAc,CAACJ,gBAAgB,CAAC,IAAI,CAAChD,WAAW,EAAEkD,SAAS,CAAC,CAACG,KAAK,CAAC,CAACC,CAAC,GACzEC,IAAG,CAACC,SAAS,CAACF,CAAC,CAAC,CACjB,CAAC;QACJ,CAAC;IACH;IAEA,qFAAqF,GAC9EpB,aAAa,CAAC,EACnB/B,QAAQ,CAAA,EACRqB,cAAc,CAAA,EACdH,QAAQ,CAAA,EACRc,MAAM,CAAA,EACNE,OAAO,CAAA,EACPoB,WAAW,CAAA,EACXlB,WAAW,CAAA,EACXG,UAAU,CAAA,EACVpB,QAAQ,CAAA,EACRsB,aAAa,CAAA,EAYd,EAAU;QACT,MAAMtC,IAAI,GAAGoD,IAAAA,aAAmB,oBAAA,EAAC;YAC/BjB,IAAI,EAAE,IAAI,CAAC3B,OAAO,CAAC2B,IAAI,IAAI,aAAa;YACxCkB,MAAM,EAAE,IAAI,CAAC7C,OAAO,CAAC6C,MAAM;YAC3BxD,QAAQ;YACRqB,cAAc;YACdoC,IAAI,EAAEC,IAAAA,aAAwB,yBAAA,EAAC,IAAI,CAAC7D,WAAW,CAAC;YAChDmC,MAAM;YACN2B,QAAQ,EAAE3B,MAAM,KAAK,QAAQ;YAC7BE,OAAO;YACPoB,WAAW,EAAE,CAAC,CAACA,WAAW;YAC1BlB,WAAW;YACXG,UAAU;YACVE,aAAa;SACd,CAAC,AAAC;QAEH,OACE,IAAI,CAAC9B,OAAO,CAACiB,YAAY,CAAC;YACxBC,MAAM,EAAEV,QAAQ,IAAI,MAAM;YAC1B,4CAA4C;YAC5CD,QAAQ;SACT,CAAC,GAAGf,IAAI,CACT;IACJ;IASQuB,eAAe,CAAC,EACtBL,cAAc,CAAA,EACdH,QAAQ,CAAA,EAIT,EAAgB;QACf,OAAO;YACL,iBAAiB;YACjB0C,YAAY,EAAE,IAAI,CAACjD,OAAO,CAACiB,YAAY,CAAC;gBAAEC,MAAM,EAAE,EAAE;gBAAEX,QAAQ;aAAE,CAAC;YACjE,oCAAoC;YACpC2C,SAAS,EAAE;gBACTC,IAAI,EAAEtE,cAAc;gBACpBK,WAAW,EAAE,IAAI,CAACA,WAAW;aAC9B;YACDkE,YAAY,EAAE;gBACZ,2BAA2B;gBAC3BC,GAAG,EAAE,IAAI,CAACrD,OAAO,CAAC2B,IAAI,KAAK,YAAY;aACxC;YACD,yCAAyC;YACzCjB,cAAc;YACd,8EAA8E;YAC9E,4BAA4B;YAC5B,+CAA+C;YAC/C,iEAAiE;YACjE4C,aAAa,EAAE,kCAAkC;SAClD,CAAC;IACJ;IAEA,4DAA4D,SAC9CtB,6BAA6B,CAACuB,QAAoB,EAAEpC,SAAiB,EAAE;QACnF,MAAMqC,IAAAA,cAAqB,sBAAA,EAAC,IAAI,CAACtE,WAAW,EAAE;YAC5CqE,QAAQ;YACRE,QAAQ,EAAE,OAAOjE,IAAI,GAAK;gBACxB,IAAI,IAAI,CAACQ,OAAO,CAACiC,eAAe,EAAE;oBAChC,4DAA4D;oBAC5D,0CAA0C;oBAC1C,OAAOyB,IAAAA,IAAO,EAAA,QAAA,EAACvC,SAAS,CAAEwC,KAAK,qBAAqB,AAAC,CAAC,CAAC,CAAC,EAAEnE,IAAI,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO2B,SAAS,CAAEwC,KAAK,qBAAqB,AAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAGnE,IAAI,CAAC;YACtE,CAAC;SACF,CAAC,CAAC;QACH,yEAAyE;QACzE,MAAMoE,IAAAA,cAAyB,0BAAA,EAAC,IAAI,CAAC1E,WAAW,EAAEqE,QAAQ,CAAC,CAAC;IAC9D;IAEOM,eAAe,GAAG;QACvB,MAAMxE,QAAQ,GAAG,KAAK,AAAC;QACvB,oBAAoB;QACpB,MAAMqB,cAAc,GAAG,IAAI,CAAC9B,qBAAqB,CAAC;YAChD+B,GAAG,EAAE,IAAI,CAACV,oBAAoB,CAACU,GAAG;YAClCtB,QAAQ;SACT,CAAC,AAAC;QAEH,OAAOyE,IAAAA,aAAiC,kCAAA,EAAC,IAAI,CAAC5E,WAAW,EAAE,IAAI,CAACe,oBAAoB,CAACI,GAAG,EAAE;YACxFhB,QAAQ;YACRqB,cAAc;YACdmC,MAAM,EAAE,IAAI,CAAC7C,OAAO,CAAC6C,MAAM;YAC3BC,IAAI,EAAEC,IAAAA,aAAwB,yBAAA,EAAC,IAAI,CAAC7D,WAAW,CAAC;YAChDyC,IAAI,EAAE,IAAI,CAAC3B,OAAO,CAAC2B,IAAI,IAAI,aAAa;YACxC,wFAAwF;YACxFN,MAAM,EAAE,QAAQ;YAChBsB,WAAW,EAAE,KAAK;YAClBK,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL;IAEA;;;;;GAKC,SACae,qBAAqB,CAAC5B,GAAkB,EAAE6B,GAAmB,EAAE;QAC3EA,GAAG,CAACC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAE3CD,GAAG,CAACE,GAAG,CAAC,MAAM,IAAI,CAACC,0BAA0B,EAAE,CAAC,CAAC;IACnD;IAEAA,0BAA0B,GAAG;QAC3B,oBAAoB;QACpB,MAAMhD,SAAS,GAAG,IAAI,CAAC0C,eAAe,EAAE,AAAC;QAEzC,OAAOO,IAAAA,YAAqC,sCAAA,EAAC,IAAI,CAAClF,WAAW,EAAE;YAC7DmB,GAAG,EAAE,IAAI,CAACJ,oBAAoB,CAACI,GAAG;YAClCgE,OAAO,EAAE;gBAAClD,SAAS;aAAC;SACrB,CAAC,CAAC;IACL;IAEA,yBAAyB,SACnBmD,wBAAwB,CAACnC,GAAkB,EAAE6B,GAAmB,EAAEO,IAAgB,EAAE;YAGtF,GAAuC;QAFzC,IACE,IAAI,CAACpE,gBAAgB,CAACqE,GAAG,KAAK,OAAO,KACrC,CAAA,GAAuC,GAAvC,IAAI,CAACvE,oBAAoB,CAACI,GAAG,CAACoE,SAAS,SAAU,GAAjD,KAAA,CAAiD,GAAjD,GAAuC,CAAErF,QAAQ,CAAC,KAAK,CAAC,CAAA,EACxD;YACA,iGAAiG;YACjG,oGAAoG;YACpG,4FAA4F;YAC5F,MAAMC,QAAQ,GAAGqF,IAAAA,gBAAmB,oBAAA,EAACvC,GAAG,CAAC,AAAC;YAC1C,kCAAkC;YAClC,IAAI,CAAC9C,QAAQ,IAAIA,QAAQ,KAAK,KAAK,EAAE;oBACD,IAAiC;gBAAnE,IAAI;oBAAC,QAAQ;oBAAE,QAAQ;iBAAC,CAACD,QAAQ,CAAC,CAAA,CAAA,IAAiC,GAAjC,IAAI,CAACa,oBAAoB,CAACI,GAAG,CAACmE,GAAG,SAAQ,GAAzC,KAAA,CAAyC,GAAzC,IAAiC,CAAEG,MAAM,CAAA,IAAI,EAAE,CAAC,EAAE;oBAClF,oEAAoE;oBACpEJ,IAAI,EAAE,CAAC;oBACP,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,MAAM,IAAI,CAACR,qBAAqB,CAAC5B,GAAG,EAAE6B,GAAG,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf;UAEMY,kBAAkB,CACtBzC,GAAkB,EAClB6B,GAAmB,EACnBO,IAAgB,EACD;QACf,kFAAkF;QAClF,IAAI,MAAM,IAAI,CAACD,wBAAwB,CAACnC,GAAG,EAAE6B,GAAG,EAAEO,IAAI,CAAC,EAAE;YACvD,OAAO;QACT,CAAC;QAED,kCAAkC;QAClC,MAAM,IAAI,CAACrC,gBAAgB,CAACC,GAAG,CAAC,CAAC;QAEjC,oBAAoB;QACpB,MAAMnC,OAAO,GAAG,IAAI,CAAC6E,gBAAgB,CAAC1C,GAAG,CAAC,AAAC;QAC3C,MAAM,EAAE2C,IAAI,CAAA,EAAEzC,OAAO,CAAA,EAAE,GAAG,MAAM,IAAI,CAAC0C,yBAAyB,CAAC/E,OAAO,CAAC,AAAC;QACxE,KAAK,MAAM,CAACgF,UAAU,EAAEC,WAAW,CAAC,IAAI5C,OAAO,CAAE;YAC/C2B,GAAG,CAACC,SAAS,CAACe,UAAU,EAAEC,WAAW,CAAC,CAAC;QACzC,CAAC;QACDjB,GAAG,CAACE,GAAG,CAACY,IAAI,CAAC,CAAC;IAChB;CACD"}
|
|
@@ -9,68 +9,64 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
ReactDevToolsEndpoint:
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
ReactDevToolsPageMiddleware: function() {
|
|
16
|
-
return ReactDevToolsPageMiddleware;
|
|
17
|
-
}
|
|
12
|
+
ReactDevToolsEndpoint: ()=>ReactDevToolsEndpoint,
|
|
13
|
+
ReactDevToolsPageMiddleware: ()=>ReactDevToolsPageMiddleware
|
|
18
14
|
});
|
|
19
15
|
function _assert() {
|
|
20
|
-
const data = /*#__PURE__*/
|
|
16
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
|
|
21
17
|
_assert = function() {
|
|
22
18
|
return data;
|
|
23
19
|
};
|
|
24
20
|
return data;
|
|
25
21
|
}
|
|
26
22
|
function _path() {
|
|
27
|
-
const data = /*#__PURE__*/
|
|
23
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
28
24
|
_path = function() {
|
|
29
25
|
return data;
|
|
30
26
|
};
|
|
31
27
|
return data;
|
|
32
28
|
}
|
|
33
|
-
function
|
|
34
|
-
const data = /*#__PURE__*/
|
|
35
|
-
|
|
29
|
+
function _resolveFrom() {
|
|
30
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("resolve-from"));
|
|
31
|
+
_resolveFrom = function() {
|
|
36
32
|
return data;
|
|
37
33
|
};
|
|
38
34
|
return data;
|
|
39
35
|
}
|
|
40
36
|
function _send() {
|
|
41
|
-
const data = /*#__PURE__*/
|
|
37
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("send"));
|
|
42
38
|
_send = function() {
|
|
43
39
|
return data;
|
|
44
40
|
};
|
|
45
41
|
return data;
|
|
46
42
|
}
|
|
47
|
-
const
|
|
48
|
-
function
|
|
43
|
+
const _expoMiddleware = require("./ExpoMiddleware");
|
|
44
|
+
function _interopRequireDefault(obj) {
|
|
49
45
|
return obj && obj.__esModule ? obj : {
|
|
50
46
|
default: obj
|
|
51
47
|
};
|
|
52
48
|
}
|
|
53
|
-
const ReactDevToolsEndpoint =
|
|
54
|
-
class ReactDevToolsPageMiddleware extends
|
|
49
|
+
const ReactDevToolsEndpoint = "/_expo/react-devtools";
|
|
50
|
+
class ReactDevToolsPageMiddleware extends _expoMiddleware.ExpoMiddleware {
|
|
55
51
|
constructor(projectRoot){
|
|
56
52
|
super(projectRoot, [
|
|
57
53
|
ReactDevToolsEndpoint
|
|
58
54
|
]);
|
|
59
55
|
}
|
|
60
56
|
shouldHandleRequest(req) {
|
|
61
|
-
var
|
|
62
|
-
if (!((
|
|
57
|
+
var ref;
|
|
58
|
+
if (!((ref = req.url) == null ? void 0 : ref.startsWith(ReactDevToolsEndpoint))) {
|
|
63
59
|
return false;
|
|
64
60
|
}
|
|
65
61
|
return true;
|
|
66
62
|
}
|
|
67
63
|
async handleRequestAsync(req, res) {
|
|
68
|
-
(0, _assert().default)(req.headers.host,
|
|
69
|
-
const { pathname
|
|
70
|
-
const requestPath = pathname.substring(ReactDevToolsEndpoint.length) ||
|
|
64
|
+
(0, _assert().default)(req.headers.host, "Request headers must include host");
|
|
65
|
+
const { pathname } = new URL(req.url ?? "/", `http://${req.headers.host}`);
|
|
66
|
+
const requestPath = pathname.substring(ReactDevToolsEndpoint.length) || "/";
|
|
71
67
|
const entryPath = // Production: This will resolve when installed in the project.
|
|
72
|
-
|
|
73
|
-
_path().default.resolve(__dirname,
|
|
68
|
+
_resolveFrom().default.silent(this.projectRoot, "expo/static/react-devtools-page/index.html") ?? // Development: This will resolve when testing locally.
|
|
69
|
+
_path().default.resolve(__dirname, "../../../../../static/react-devtools-page/index.html");
|
|
74
70
|
const staticRoot = _path().default.dirname(entryPath);
|
|
75
71
|
(0, _send().default)(req, requestPath, {
|
|
76
72
|
root: staticRoot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/middleware/ReactDevToolsPageMiddleware.ts"],"sourcesContent":["import assert from 'assert';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport send from 'send';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\n\nexport const ReactDevToolsEndpoint = '/_expo/react-devtools';\n\nexport class ReactDevToolsPageMiddleware extends ExpoMiddleware {\n constructor(projectRoot: string) {\n super(projectRoot, [ReactDevToolsEndpoint]);\n }\n\n override shouldHandleRequest(req: ServerRequest): boolean {\n if (!req.url?.startsWith(ReactDevToolsEndpoint)) {\n return false;\n }\n return true;\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n assert(req.headers.host, 'Request headers must include host');\n const { pathname } = new URL(req.url ?? '/', `http://${req.headers.host}`);\n const requestPath = pathname.substring(ReactDevToolsEndpoint.length) || '/';\n\n const entryPath =\n // Production: This will resolve when installed in the project.\n resolveFrom.silent(this.projectRoot, 'expo/static/react-devtools-page/index.html') ??\n // Development: This will resolve when testing locally.\n path.resolve(__dirname, '../../../../../static/react-devtools-page/index.html');\n\n const staticRoot = path.dirname(entryPath);\n send(req, requestPath, { root: staticRoot }).pipe(res);\n }\n}\n"],"names":["ReactDevToolsEndpoint","ReactDevToolsPageMiddleware","ExpoMiddleware","constructor","projectRoot","shouldHandleRequest","req","url","startsWith","handleRequestAsync","res","assert","headers","host","pathname","URL","requestPath","substring","length","entryPath","resolveFrom","silent","path","resolve","__dirname","staticRoot","dirname","send","root","pipe"],"mappings":";;;;;;;;;;;IAQaA,qBAAqB;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/middleware/ReactDevToolsPageMiddleware.ts"],"sourcesContent":["import assert from 'assert';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport send from 'send';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\n\nexport const ReactDevToolsEndpoint = '/_expo/react-devtools';\n\nexport class ReactDevToolsPageMiddleware extends ExpoMiddleware {\n constructor(projectRoot: string) {\n super(projectRoot, [ReactDevToolsEndpoint]);\n }\n\n override shouldHandleRequest(req: ServerRequest): boolean {\n if (!req.url?.startsWith(ReactDevToolsEndpoint)) {\n return false;\n }\n return true;\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n assert(req.headers.host, 'Request headers must include host');\n const { pathname } = new URL(req.url ?? '/', `http://${req.headers.host}`);\n const requestPath = pathname.substring(ReactDevToolsEndpoint.length) || '/';\n\n const entryPath =\n // Production: This will resolve when installed in the project.\n resolveFrom.silent(this.projectRoot, 'expo/static/react-devtools-page/index.html') ??\n // Development: This will resolve when testing locally.\n path.resolve(__dirname, '../../../../../static/react-devtools-page/index.html');\n\n const staticRoot = path.dirname(entryPath);\n send(req, requestPath, { root: staticRoot }).pipe(res);\n }\n}\n"],"names":["ReactDevToolsEndpoint","ReactDevToolsPageMiddleware","ExpoMiddleware","constructor","projectRoot","shouldHandleRequest","req","url","startsWith","handleRequestAsync","res","assert","headers","host","pathname","URL","requestPath","substring","length","entryPath","resolveFrom","silent","path","resolve","__dirname","staticRoot","dirname","send","root","pipe"],"mappings":"AAAA;;;;;;;;;;;IAQaA,qBAAqB,MAArBA,qBAAqB;IAErBC,2BAA2B,MAA3BA,2BAA2B;;;8DAVrB,QAAQ;;;;;;;8DACV,MAAM;;;;;;;8DACC,cAAc;;;;;;;8DACrB,MAAM;;;;;;gCAEQ,kBAAkB;;;;;;AAG1C,MAAMD,qBAAqB,GAAG,uBAAuB,AAAC;AAEtD,MAAMC,2BAA2B,SAASC,eAAc,eAAA;IAC7DC,YAAYC,WAAmB,CAAE;QAC/B,KAAK,CAACA,WAAW,EAAE;YAACJ,qBAAqB;SAAC,CAAC,CAAC;IAC9C;IAESK,mBAAmB,CAACC,GAAkB,EAAW;YACnDA,GAAO;QAAZ,IAAI,EAACA,CAAAA,GAAO,GAAPA,GAAG,CAACC,GAAG,SAAY,GAAnBD,KAAAA,CAAmB,GAAnBA,GAAO,CAAEE,UAAU,CAACR,qBAAqB,CAAC,CAAA,EAAE;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd;UAEMS,kBAAkB,CAACH,GAAkB,EAAEI,GAAmB,EAAiB;QAC/EC,IAAAA,OAAM,EAAA,QAAA,EAACL,GAAG,CAACM,OAAO,CAACC,IAAI,EAAE,mCAAmC,CAAC,CAAC;QAC9D,MAAM,EAAEC,QAAQ,CAAA,EAAE,GAAG,IAAIC,GAAG,CAACT,GAAG,CAACC,GAAG,IAAI,GAAG,EAAE,CAAC,OAAO,EAAED,GAAG,CAACM,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,AAAC;QAC3E,MAAMG,WAAW,GAAGF,QAAQ,CAACG,SAAS,CAACjB,qBAAqB,CAACkB,MAAM,CAAC,IAAI,GAAG,AAAC;QAE5E,MAAMC,SAAS,GACb,+DAA+D;QAC/DC,YAAW,EAAA,QAAA,CAACC,MAAM,CAAC,IAAI,CAACjB,WAAW,EAAE,4CAA4C,CAAC,IAClF,uDAAuD;QACvDkB,KAAI,EAAA,QAAA,CAACC,OAAO,CAACC,SAAS,EAAE,sDAAsD,CAAC,AAAC;QAElF,MAAMC,UAAU,GAAGH,KAAI,EAAA,QAAA,CAACI,OAAO,CAACP,SAAS,CAAC,AAAC;QAC3CQ,IAAAA,KAAI,EAAA,QAAA,EAACrB,GAAG,EAAEU,WAAW,EAAE;YAAEY,IAAI,EAAEH,UAAU;SAAE,CAAC,CAACI,IAAI,CAACnB,GAAG,CAAC,CAAC;IACzD;CACD"}
|
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "RuntimeRedirectMiddleware", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get:
|
|
8
|
-
return RuntimeRedirectMiddleware;
|
|
9
|
-
}
|
|
7
|
+
get: ()=>RuntimeRedirectMiddleware
|
|
10
8
|
});
|
|
11
9
|
function _url() {
|
|
12
10
|
const data = require("url");
|
|
@@ -15,9 +13,9 @@ function _url() {
|
|
|
15
13
|
};
|
|
16
14
|
return data;
|
|
17
15
|
}
|
|
18
|
-
const
|
|
16
|
+
const _expoMiddleware = require("./ExpoMiddleware");
|
|
19
17
|
const _resolvePlatform = require("./resolvePlatform");
|
|
20
|
-
const _log = /*#__PURE__*/
|
|
18
|
+
const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
|
|
21
19
|
function _getRequireWildcardCache(nodeInterop) {
|
|
22
20
|
if (typeof WeakMap !== "function") return null;
|
|
23
21
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -26,7 +24,7 @@ function _getRequireWildcardCache(nodeInterop) {
|
|
|
26
24
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
27
25
|
})(nodeInterop);
|
|
28
26
|
}
|
|
29
|
-
function
|
|
27
|
+
function _interopRequireWildcard(obj, nodeInterop) {
|
|
30
28
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
31
29
|
return obj;
|
|
32
30
|
}
|
|
@@ -39,9 +37,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
39
37
|
if (cache && cache.has(obj)) {
|
|
40
38
|
return cache.get(obj);
|
|
41
39
|
}
|
|
42
|
-
var newObj = {
|
|
43
|
-
__proto__: null
|
|
44
|
-
};
|
|
40
|
+
var newObj = {};
|
|
45
41
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
46
42
|
for(var key in obj){
|
|
47
43
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -59,25 +55,28 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
59
55
|
}
|
|
60
56
|
return newObj;
|
|
61
57
|
}
|
|
62
|
-
const debug = require(
|
|
63
|
-
class RuntimeRedirectMiddleware extends
|
|
58
|
+
const debug = require("debug")("expo:start:server:middleware:runtimeRedirect");
|
|
59
|
+
class RuntimeRedirectMiddleware extends _expoMiddleware.ExpoMiddleware {
|
|
64
60
|
constructor(projectRoot, options){
|
|
65
61
|
super(projectRoot, [
|
|
66
|
-
|
|
67
|
-
])
|
|
62
|
+
"/_expo/link"
|
|
63
|
+
]);
|
|
64
|
+
this.projectRoot = projectRoot;
|
|
65
|
+
this.options = options;
|
|
68
66
|
}
|
|
69
67
|
async handleRequestAsync(req, res) {
|
|
70
|
-
|
|
71
|
-
const
|
|
68
|
+
var _options, ref;
|
|
69
|
+
const { query } = (0, _url().parse)(req.url, true);
|
|
70
|
+
const isDevClient = query["choice"] === "expo-dev-client";
|
|
72
71
|
const platform = (0, _resolvePlatform.parsePlatformHeader)(req) ?? (0, _resolvePlatform.resolvePlatformFromUserAgentHeader)(req);
|
|
73
72
|
(0, _resolvePlatform.assertMissingRuntimePlatform)(platform);
|
|
74
73
|
(0, _resolvePlatform.assertRuntimePlatform)(platform);
|
|
75
|
-
const runtime = isDevClient ?
|
|
74
|
+
const runtime = isDevClient ? "custom" : "expo";
|
|
76
75
|
debug(`props:`, {
|
|
77
76
|
platform,
|
|
78
77
|
runtime
|
|
79
78
|
});
|
|
80
|
-
this.options.onDeepLink == null ? void 0 :
|
|
79
|
+
(ref = (_options = this.options).onDeepLink) == null ? void 0 : ref.call(_options, {
|
|
81
80
|
runtime,
|
|
82
81
|
platform
|
|
83
82
|
});
|
|
@@ -90,10 +89,10 @@ class RuntimeRedirectMiddleware extends _ExpoMiddleware.ExpoMiddleware {
|
|
|
90
89
|
res.end();
|
|
91
90
|
return;
|
|
92
91
|
}
|
|
93
|
-
debug(
|
|
94
|
-
res.setHeader(
|
|
92
|
+
debug("Redirect ->", redirect);
|
|
93
|
+
res.setHeader("Location", redirect);
|
|
95
94
|
// Disable caching
|
|
96
|
-
(0,
|
|
95
|
+
(0, _expoMiddleware.disableResponseCache)(res);
|
|
97
96
|
// 'Temporary Redirect'
|
|
98
97
|
res.statusCode = 307;
|
|
99
98
|
res.end();
|