@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
|
@@ -14,24 +14,14 @@ function _export(target, all) {
|
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
_export(exports, {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
getFilesToExportFromServerAsync: function() {
|
|
24
|
-
return getFilesToExportFromServerAsync;
|
|
25
|
-
},
|
|
26
|
-
getHtmlFiles: function() {
|
|
27
|
-
return getHtmlFiles;
|
|
28
|
-
},
|
|
29
|
-
getPathVariations: function() {
|
|
30
|
-
return getPathVariations;
|
|
31
|
-
}
|
|
17
|
+
getFilesToExportFromServerAsync: ()=>getFilesToExportFromServerAsync,
|
|
18
|
+
exportFromServerAsync: ()=>exportFromServerAsync,
|
|
19
|
+
getHtmlFiles: ()=>getHtmlFiles,
|
|
20
|
+
getPathVariations: ()=>getPathVariations,
|
|
21
|
+
exportApiRoutesStandaloneAsync: ()=>exportApiRoutesStandaloneAsync
|
|
32
22
|
});
|
|
33
23
|
function _chalk() {
|
|
34
|
-
const data = /*#__PURE__*/
|
|
24
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
|
|
35
25
|
_chalk = function() {
|
|
36
26
|
return data;
|
|
37
27
|
};
|
|
@@ -45,15 +35,15 @@ function _matchers() {
|
|
|
45
35
|
return data;
|
|
46
36
|
}
|
|
47
37
|
function _path() {
|
|
48
|
-
const data = /*#__PURE__*/
|
|
38
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
49
39
|
_path = function() {
|
|
50
40
|
return data;
|
|
51
41
|
};
|
|
52
42
|
return data;
|
|
53
43
|
}
|
|
54
|
-
function
|
|
55
|
-
const data = /*#__PURE__*/
|
|
56
|
-
|
|
44
|
+
function _resolveFrom() {
|
|
45
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("resolve-from"));
|
|
46
|
+
_resolveFrom = function() {
|
|
57
47
|
return data;
|
|
58
48
|
};
|
|
59
49
|
return data;
|
|
@@ -73,29 +63,29 @@ const _metroErrorInterface = require("../start/server/metro/metroErrorInterface"
|
|
|
73
63
|
const _router = require("../start/server/metro/router");
|
|
74
64
|
const _serializeHtml = require("../start/server/metro/serializeHtml");
|
|
75
65
|
const _link = require("../utils/link");
|
|
76
|
-
function
|
|
66
|
+
function _interopRequireDefault(obj) {
|
|
77
67
|
return obj && obj.__esModule ? obj : {
|
|
78
68
|
default: obj
|
|
79
69
|
};
|
|
80
70
|
}
|
|
81
|
-
const debug = require(
|
|
71
|
+
const debug = require("debug")("expo:export:generateStaticRoutes");
|
|
82
72
|
/** Match `(page)` -> `page` */ function matchGroupName(name) {
|
|
83
|
-
var
|
|
84
|
-
return (
|
|
73
|
+
var ref;
|
|
74
|
+
return (ref = name.match(/^\(([^/]+?)\)$/)) == null ? void 0 : ref[1];
|
|
85
75
|
}
|
|
86
|
-
async function getFilesToExportFromServerAsync(projectRoot, { manifest, renderAsync, // Servers can handle group routes automatically and therefore
|
|
76
|
+
async function getFilesToExportFromServerAsync(projectRoot, { manifest , renderAsync , // Servers can handle group routes automatically and therefore
|
|
87
77
|
// don't require the build-time generation of every possible group
|
|
88
78
|
// variation.
|
|
89
|
-
exportServer, // name : contents
|
|
90
|
-
files =
|
|
79
|
+
exportServer , // name : contents
|
|
80
|
+
files =new Map() }) {
|
|
91
81
|
await Promise.all(getHtmlFiles({
|
|
92
82
|
manifest,
|
|
93
83
|
includeGroupVariations: !exportServer
|
|
94
|
-
}).map(async ({ route, filePath, pathname
|
|
84
|
+
}).map(async ({ route , filePath , pathname })=>{
|
|
95
85
|
try {
|
|
96
|
-
const targetDomain = exportServer ?
|
|
86
|
+
const targetDomain = exportServer ? "server" : "client";
|
|
97
87
|
files.set(filePath, {
|
|
98
|
-
contents:
|
|
88
|
+
contents: "",
|
|
99
89
|
targetDomain
|
|
100
90
|
});
|
|
101
91
|
const data = await renderAsync({
|
|
@@ -113,7 +103,7 @@ files = new Map() }) {
|
|
|
113
103
|
error: e,
|
|
114
104
|
projectRoot
|
|
115
105
|
});
|
|
116
|
-
throw new Error(
|
|
106
|
+
throw new Error("Failed to statically export route: " + pathname);
|
|
117
107
|
}
|
|
118
108
|
}));
|
|
119
109
|
return files;
|
|
@@ -121,7 +111,7 @@ files = new Map() }) {
|
|
|
121
111
|
function modifyRouteNodeInRuntimeManifest(manifest, callback) {
|
|
122
112
|
const iterateScreens = (screens)=>{
|
|
123
113
|
Object.values(screens).map((value)=>{
|
|
124
|
-
if (typeof value !==
|
|
114
|
+
if (typeof value !== "string") {
|
|
125
115
|
if (value._route) callback(value._route);
|
|
126
116
|
iterateScreens(value.screens);
|
|
127
117
|
}
|
|
@@ -134,19 +124,19 @@ function makeRuntimeEntryPointsAbsolute(manifest, appDir) {
|
|
|
134
124
|
modifyRouteNodeInRuntimeManifest(manifest, (route)=>{
|
|
135
125
|
if (Array.isArray(route.entryPoints)) {
|
|
136
126
|
route.entryPoints = route.entryPoints.map((entryPoint)=>{
|
|
137
|
-
if (entryPoint.startsWith(
|
|
127
|
+
if (entryPoint.startsWith(".")) {
|
|
138
128
|
return _path().default.resolve(appDir, entryPoint);
|
|
139
129
|
} else if (!_path().default.isAbsolute(entryPoint)) {
|
|
140
|
-
return (0,
|
|
130
|
+
return (0, _resolveFrom().default)(appDir, entryPoint);
|
|
141
131
|
}
|
|
142
132
|
return entryPoint;
|
|
143
133
|
});
|
|
144
134
|
}
|
|
145
135
|
});
|
|
146
136
|
}
|
|
147
|
-
async function exportFromServerAsync(projectRoot, devServer, { outputDir, baseUrl, exportServer, includeSourceMaps, routerRoot, files =
|
|
148
|
-
_log.Log.log(`Static rendering is enabled. ` + (0, _link.learnMore)(
|
|
149
|
-
const platform =
|
|
137
|
+
async function exportFromServerAsync(projectRoot, devServer, { outputDir , baseUrl , exportServer , includeSourceMaps , routerRoot , files =new Map() , exp }) {
|
|
138
|
+
_log.Log.log(`Static rendering is enabled. ` + (0, _link.learnMore)("https://docs.expo.dev/router/reference/static-rendering/"));
|
|
139
|
+
const platform = "web";
|
|
150
140
|
const isExporting = true;
|
|
151
141
|
const appDir = _path().default.join(projectRoot, routerRoot);
|
|
152
142
|
const injectFaviconTag = await (0, _favicon.getVirtualFaviconAssetsAsync)(projectRoot, {
|
|
@@ -155,14 +145,14 @@ async function exportFromServerAsync(projectRoot, devServer, { outputDir, baseUr
|
|
|
155
145
|
files,
|
|
156
146
|
exp
|
|
157
147
|
});
|
|
158
|
-
const [resources, { manifest, serverManifest, renderAsync
|
|
148
|
+
const [resources, { manifest , serverManifest , renderAsync }] = await Promise.all([
|
|
159
149
|
devServer.getStaticResourcesAsync({
|
|
160
150
|
includeSourceMaps
|
|
161
151
|
}),
|
|
162
|
-
devServer.getStaticRenderFunctionAsync()
|
|
152
|
+
devServer.getStaticRenderFunctionAsync(),
|
|
163
153
|
]);
|
|
164
154
|
makeRuntimeEntryPointsAbsolute(manifest, appDir);
|
|
165
|
-
debug(
|
|
155
|
+
debug("Routes:\n", (0, _util().inspect)(manifest, {
|
|
166
156
|
colors: true,
|
|
167
157
|
depth: null
|
|
168
158
|
}));
|
|
@@ -170,7 +160,7 @@ async function exportFromServerAsync(projectRoot, devServer, { outputDir, baseUr
|
|
|
170
160
|
files,
|
|
171
161
|
manifest,
|
|
172
162
|
exportServer,
|
|
173
|
-
async renderAsync ({ pathname, route
|
|
163
|
+
async renderAsync ({ pathname , route }) {
|
|
174
164
|
const template = await renderAsync(pathname);
|
|
175
165
|
let html = await (0, _serializeHtml.serializeHtmlWithAssets)({
|
|
176
166
|
isExporting,
|
|
@@ -204,7 +194,7 @@ async function exportFromServerAsync(projectRoot, devServer, { outputDir, baseUr
|
|
|
204
194
|
}
|
|
205
195
|
if (exportServer) {
|
|
206
196
|
const apiRoutes = await exportApiRoutesAsync({
|
|
207
|
-
platform:
|
|
197
|
+
platform: "web",
|
|
208
198
|
server: devServer,
|
|
209
199
|
manifest: serverManifest,
|
|
210
200
|
// NOTE(kitten): For now, we always output source maps for API route exports
|
|
@@ -219,16 +209,16 @@ async function exportFromServerAsync(projectRoot, devServer, { outputDir, baseUr
|
|
|
219
209
|
}
|
|
220
210
|
return files;
|
|
221
211
|
}
|
|
222
|
-
function getHtmlFiles({ manifest, includeGroupVariations
|
|
212
|
+
function getHtmlFiles({ manifest , includeGroupVariations }) {
|
|
223
213
|
const htmlFiles = new Set();
|
|
224
|
-
function traverseScreens(screens, route, baseUrl =
|
|
214
|
+
function traverseScreens(screens, route, baseUrl = "") {
|
|
225
215
|
for (const [key, value] of Object.entries(screens)){
|
|
226
216
|
let leaf = null;
|
|
227
|
-
if (typeof value ===
|
|
217
|
+
if (typeof value === "string") {
|
|
228
218
|
leaf = value;
|
|
229
219
|
} else if (Object.keys(value.screens).length === 0) {
|
|
230
220
|
// Ensure the trailing index is accounted for.
|
|
231
|
-
if (key === value.path +
|
|
221
|
+
if (key === value.path + "/index") {
|
|
232
222
|
leaf = key;
|
|
233
223
|
} else {
|
|
234
224
|
leaf = value.path;
|
|
@@ -237,11 +227,11 @@ function getHtmlFiles({ manifest, includeGroupVariations }) {
|
|
|
237
227
|
}
|
|
238
228
|
if (leaf != null) {
|
|
239
229
|
let filePath = baseUrl + leaf;
|
|
240
|
-
if (leaf ===
|
|
241
|
-
filePath = baseUrl ===
|
|
230
|
+
if (leaf === "") {
|
|
231
|
+
filePath = baseUrl === "" ? "index" : baseUrl.endsWith("/") ? baseUrl + "index" : baseUrl.slice(0, -1);
|
|
242
232
|
} else if (// If the path is a collection of group segments leading to an index route, append `/index`.
|
|
243
|
-
(0, _matchers().stripGroupSegmentsFromPath)(filePath) ===
|
|
244
|
-
filePath +=
|
|
233
|
+
(0, _matchers().stripGroupSegmentsFromPath)(filePath) === "") {
|
|
234
|
+
filePath += "/index";
|
|
245
235
|
}
|
|
246
236
|
// This should never happen, the type of `string | object` originally comes from React Navigation.
|
|
247
237
|
if (!route) {
|
|
@@ -256,8 +246,8 @@ function getHtmlFiles({ manifest, includeGroupVariations }) {
|
|
|
256
246
|
route
|
|
257
247
|
});
|
|
258
248
|
}
|
|
259
|
-
} else if (typeof value ===
|
|
260
|
-
const newPath = baseUrl + value.path +
|
|
249
|
+
} else if (typeof value === "object" && (value == null ? void 0 : value.screens)) {
|
|
250
|
+
const newPath = baseUrl + value.path + "/";
|
|
261
251
|
traverseScreens(value.screens, value._route ?? null, newPath);
|
|
262
252
|
}
|
|
263
253
|
}
|
|
@@ -273,24 +263,24 @@ function getHtmlFiles({ manifest, includeGroupVariations }) {
|
|
|
273
263
|
}
|
|
274
264
|
traverseScreens(manifest.screens, null);
|
|
275
265
|
return uniqueBy(Array.from(htmlFiles), (value)=>value.filePath).map((value)=>{
|
|
276
|
-
const parts = value.filePath.split(
|
|
266
|
+
const parts = value.filePath.split("/");
|
|
277
267
|
// Replace `:foo` with `[foo]` and `*foo` with `[...foo]`
|
|
278
268
|
const partsWithGroups = parts.map((part)=>{
|
|
279
|
-
if (part ===
|
|
269
|
+
if (part === "*not-found") {
|
|
280
270
|
return `+not-found`;
|
|
281
|
-
} else if (part.startsWith(
|
|
271
|
+
} else if (part.startsWith(":")) {
|
|
282
272
|
return `[${part.slice(1)}]`;
|
|
283
|
-
} else if (part.startsWith(
|
|
273
|
+
} else if (part.startsWith("*")) {
|
|
284
274
|
return `[...${part.slice(1)}]`;
|
|
285
275
|
}
|
|
286
276
|
return part;
|
|
287
277
|
});
|
|
288
|
-
const filePathLocation = partsWithGroups.join(
|
|
289
|
-
const filePath = filePathLocation +
|
|
278
|
+
const filePathLocation = partsWithGroups.join("/");
|
|
279
|
+
const filePath = filePathLocation + ".html";
|
|
290
280
|
return {
|
|
291
281
|
...value,
|
|
292
282
|
filePath,
|
|
293
|
-
pathname: filePathLocation.replace(/(\/?index)?$/,
|
|
283
|
+
pathname: filePathLocation.replace(/(\/?index)?$/, "")
|
|
294
284
|
};
|
|
295
285
|
});
|
|
296
286
|
}
|
|
@@ -308,15 +298,15 @@ function uniqueBy(array, key) {
|
|
|
308
298
|
}
|
|
309
299
|
function getPathVariations(routePath) {
|
|
310
300
|
const variations = new Set();
|
|
311
|
-
const segments = routePath.split(
|
|
312
|
-
function generateVariations(segments, current =
|
|
301
|
+
const segments = routePath.split("/");
|
|
302
|
+
function generateVariations(segments, current = "") {
|
|
313
303
|
if (segments.length === 0) {
|
|
314
304
|
if (current) variations.add(current);
|
|
315
305
|
return;
|
|
316
306
|
}
|
|
317
307
|
const [head, ...rest] = segments;
|
|
318
308
|
if (matchGroupName(head)) {
|
|
319
|
-
const groups = head.slice(1, -1).split(
|
|
309
|
+
const groups = head.slice(1, -1).split(",");
|
|
320
310
|
if (groups.length > 1) {
|
|
321
311
|
for (const group of groups){
|
|
322
312
|
// If there are multiple groups, recurse on each group.
|
|
@@ -341,8 +331,8 @@ function getPathVariations(routePath) {
|
|
|
341
331
|
generateVariations(segments);
|
|
342
332
|
return Array.from(variations);
|
|
343
333
|
}
|
|
344
|
-
async function exportApiRoutesStandaloneAsync(devServer, { files =
|
|
345
|
-
const { serverManifest, htmlManifest
|
|
334
|
+
async function exportApiRoutesStandaloneAsync(devServer, { files =new Map() , platform , apiRoutesOnly , templateHtml }) {
|
|
335
|
+
const { serverManifest , htmlManifest } = await devServer.getServerManifestAsync();
|
|
346
336
|
const apiRoutes = await exportApiRoutesAsync({
|
|
347
337
|
server: devServer,
|
|
348
338
|
manifest: serverManifest,
|
|
@@ -361,11 +351,11 @@ async function exportApiRoutesStandaloneAsync(devServer, { files = new Map(), pl
|
|
|
361
351
|
manifest: htmlManifest,
|
|
362
352
|
exportServer: true,
|
|
363
353
|
files,
|
|
364
|
-
renderAsync: async ({ pathname, filePath
|
|
354
|
+
renderAsync: async ({ pathname , filePath })=>{
|
|
365
355
|
files.set(filePath, {
|
|
366
356
|
contents: templateHtml,
|
|
367
357
|
routeId: pathname,
|
|
368
|
-
targetDomain:
|
|
358
|
+
targetDomain: "server"
|
|
369
359
|
});
|
|
370
360
|
return templateHtml;
|
|
371
361
|
}
|
|
@@ -373,9 +363,9 @@ async function exportApiRoutesStandaloneAsync(devServer, { files = new Map(), pl
|
|
|
373
363
|
}
|
|
374
364
|
return files;
|
|
375
365
|
}
|
|
376
|
-
async function exportApiRoutesAsync({ includeSourceMaps, server, platform, apiRoutesOnly, ...props }) {
|
|
377
|
-
const { manifest, files
|
|
378
|
-
outputDir:
|
|
366
|
+
async function exportApiRoutesAsync({ includeSourceMaps , server , platform , apiRoutesOnly , ...props }) {
|
|
367
|
+
const { manifest , files } = await server.exportExpoRouterApiRoutesAsync({
|
|
368
|
+
outputDir: "_expo/functions",
|
|
379
369
|
prerenderManifest: props.manifest,
|
|
380
370
|
includeSourceMaps,
|
|
381
371
|
platform
|
|
@@ -385,9 +375,9 @@ async function exportApiRoutesAsync({ includeSourceMaps, server, platform, apiRo
|
|
|
385
375
|
manifest.htmlRoutes = [];
|
|
386
376
|
manifest.notFoundRoutes = [];
|
|
387
377
|
}
|
|
388
|
-
files.set(
|
|
378
|
+
files.set("_expo/routes.json", {
|
|
389
379
|
contents: JSON.stringify(manifest, null, 2),
|
|
390
|
-
targetDomain:
|
|
380
|
+
targetDomain: "server"
|
|
391
381
|
});
|
|
392
382
|
return files;
|
|
393
383
|
}
|
|
@@ -395,7 +385,7 @@ function warnPossibleInvalidExportType(appDir) {
|
|
|
395
385
|
const apiRoutes = (0, _router.getApiRoutesForDirectory)(appDir);
|
|
396
386
|
if (apiRoutes.length) {
|
|
397
387
|
// TODO: Allow API Routes for native-only.
|
|
398
|
-
_log.Log.warn(_chalk().default.yellow`Skipping export for API routes because \`web.output\` is not "server". You may want to remove the routes: ${apiRoutes.map((v)=>_path().default.relative(appDir, v)).join(
|
|
388
|
+
_log.Log.warn(_chalk().default.yellow`Skipping export for API routes because \`web.output\` is not "server". You may want to remove the routes: ${apiRoutes.map((v)=>_path().default.relative(appDir, v)).join(", ")}`);
|
|
399
389
|
}
|
|
400
390
|
}
|
|
401
391
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/export/exportStaticAsync.ts"],"sourcesContent":["/**\n * Copyright © 2022 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { ExpoConfig } from '@expo/config';\nimport chalk from 'chalk';\nimport { RouteNode } from 'expo-router/build/Route';\nimport { stripGroupSegmentsFromPath } from 'expo-router/build/matchers';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport { inspect } from 'util';\n\nimport { getVirtualFaviconAssetsAsync } from './favicon';\nimport { persistMetroAssetsAsync } from './persistMetroAssets';\nimport { ExportAssetMap, getFilesFromSerialAssets } from './saveAssets';\nimport { Log } from '../log';\nimport {\n ExpoRouterRuntimeManifest,\n MetroBundlerDevServer,\n} from '../start/server/metro/MetroBundlerDevServer';\nimport { ExpoRouterServerManifestV1 } from '../start/server/metro/fetchRouterManifest';\nimport { logMetroErrorAsync } from '../start/server/metro/metroErrorInterface';\nimport { getApiRoutesForDirectory } from '../start/server/metro/router';\nimport { serializeHtmlWithAssets } from '../start/server/metro/serializeHtml';\nimport { learnMore } from '../utils/link';\n\nconst debug = require('debug')('expo:export:generateStaticRoutes') as typeof console.log;\n\ntype Options = {\n mode: 'production' | 'development';\n files?: ExportAssetMap;\n outputDir: string;\n minify: boolean;\n exportServer: boolean;\n baseUrl: string;\n includeSourceMaps: boolean;\n entryPoint?: string;\n clear: boolean;\n routerRoot: string;\n reactCompiler: boolean;\n maxWorkers?: number;\n isExporting: boolean;\n exp?: ExpoConfig;\n};\n\ntype HtmlRequestLocation = {\n /** The output file path name to use relative to the static folder. */\n filePath: string;\n /** The pathname to make requests to in order to fetch the HTML. */\n pathname: string;\n /** The runtime route node object, used to associate async modules with the static HTML. */\n route: RouteNode;\n};\n\n/** Match `(page)` -> `page` */\nfunction matchGroupName(name: string): string | undefined {\n return name.match(/^\\(([^/]+?)\\)$/)?.[1];\n}\n\nexport async function getFilesToExportFromServerAsync(\n projectRoot: string,\n {\n manifest,\n renderAsync,\n // Servers can handle group routes automatically and therefore\n // don't require the build-time generation of every possible group\n // variation.\n exportServer,\n // name : contents\n files = new Map(),\n }: {\n manifest: ExpoRouterRuntimeManifest;\n renderAsync: (requestLocation: HtmlRequestLocation) => Promise<string>;\n exportServer?: boolean;\n files?: ExportAssetMap;\n }\n): Promise<ExportAssetMap> {\n await Promise.all(\n getHtmlFiles({ manifest, includeGroupVariations: !exportServer }).map(\n async ({ route, filePath, pathname }) => {\n try {\n const targetDomain = exportServer ? 'server' : 'client';\n files.set(filePath, { contents: '', targetDomain });\n const data = await renderAsync({ route, filePath, pathname });\n files.set(filePath, {\n contents: data,\n routeId: pathname,\n targetDomain,\n });\n } catch (e: any) {\n await logMetroErrorAsync({ error: e, projectRoot });\n throw new Error('Failed to statically export route: ' + pathname);\n }\n }\n )\n );\n\n return files;\n}\n\nfunction modifyRouteNodeInRuntimeManifest(\n manifest: ExpoRouterRuntimeManifest,\n callback: (route: RouteNode) => any\n) {\n const iterateScreens = (screens: ExpoRouterRuntimeManifest['screens']) => {\n Object.values(screens).map((value) => {\n if (typeof value !== 'string') {\n if (value._route) callback(value._route);\n iterateScreens(value.screens);\n }\n });\n };\n\n iterateScreens(manifest.screens);\n}\n\n// TODO: Do this earlier in the process.\nfunction makeRuntimeEntryPointsAbsolute(manifest: ExpoRouterRuntimeManifest, appDir: string) {\n modifyRouteNodeInRuntimeManifest(manifest, (route) => {\n if (Array.isArray(route.entryPoints)) {\n route.entryPoints = route.entryPoints.map((entryPoint) => {\n if (entryPoint.startsWith('.')) {\n return path.resolve(appDir, entryPoint);\n } else if (!path.isAbsolute(entryPoint)) {\n return resolveFrom(appDir, entryPoint);\n }\n return entryPoint;\n });\n }\n });\n}\n\n/** Perform all fs commits */\nexport async function exportFromServerAsync(\n projectRoot: string,\n devServer: MetroBundlerDevServer,\n {\n outputDir,\n baseUrl,\n exportServer,\n includeSourceMaps,\n routerRoot,\n files = new Map(),\n exp,\n }: Options\n): Promise<ExportAssetMap> {\n Log.log(\n `Static rendering is enabled. ` +\n learnMore('https://docs.expo.dev/router/reference/static-rendering/')\n );\n\n const platform = 'web';\n const isExporting = true;\n const appDir = path.join(projectRoot, routerRoot);\n const injectFaviconTag = await getVirtualFaviconAssetsAsync(projectRoot, {\n outputDir,\n baseUrl,\n files,\n exp,\n });\n\n const [resources, { manifest, serverManifest, renderAsync }] = await Promise.all([\n devServer.getStaticResourcesAsync({\n includeSourceMaps,\n }),\n devServer.getStaticRenderFunctionAsync(),\n ]);\n\n makeRuntimeEntryPointsAbsolute(manifest, appDir);\n\n debug('Routes:\\n', inspect(manifest, { colors: true, depth: null }));\n\n await getFilesToExportFromServerAsync(projectRoot, {\n files,\n manifest,\n exportServer,\n async renderAsync({ pathname, route }) {\n const template = await renderAsync(pathname);\n let html = await serializeHtmlWithAssets({\n isExporting,\n resources: resources.artifacts,\n template,\n baseUrl,\n route,\n hydrate: true,\n });\n\n if (injectFaviconTag) {\n html = injectFaviconTag(html);\n }\n\n return html;\n },\n });\n\n getFilesFromSerialAssets(resources.artifacts, {\n platform,\n includeSourceMaps,\n files,\n isServerHosted: true,\n });\n\n if (resources.assets) {\n // TODO: Collect files without writing to disk.\n // NOTE(kitten): Re. above, this is now using `files` except for iOS catalog output, which isn't used here\n await persistMetroAssetsAsync(projectRoot, resources.assets, {\n files,\n platform,\n outputDirectory: outputDir,\n baseUrl,\n });\n }\n\n if (exportServer) {\n const apiRoutes = await exportApiRoutesAsync({\n platform: 'web',\n server: devServer,\n manifest: serverManifest,\n // NOTE(kitten): For now, we always output source maps for API route exports\n includeSourceMaps: true,\n });\n\n // Add the api routes to the files to export.\n for (const [route, contents] of apiRoutes) {\n files.set(route, contents);\n }\n } else {\n warnPossibleInvalidExportType(appDir);\n }\n\n return files;\n}\n\nexport function getHtmlFiles({\n manifest,\n includeGroupVariations,\n}: {\n manifest: ExpoRouterRuntimeManifest;\n includeGroupVariations?: boolean;\n}): HtmlRequestLocation[] {\n const htmlFiles = new Set<Omit<HtmlRequestLocation, 'pathname'>>();\n\n function traverseScreens(\n screens: ExpoRouterRuntimeManifest['screens'],\n route: RouteNode | null,\n baseUrl = ''\n ) {\n for (const [key, value] of Object.entries(screens)) {\n let leaf: string | null = null;\n if (typeof value === 'string') {\n leaf = value;\n } else if (Object.keys(value.screens).length === 0) {\n // Ensure the trailing index is accounted for.\n if (key === value.path + '/index') {\n leaf = key;\n } else {\n leaf = value.path;\n }\n\n route = value._route ?? null;\n }\n\n if (leaf != null) {\n let filePath = baseUrl + leaf;\n\n if (leaf === '') {\n filePath =\n baseUrl === ''\n ? 'index'\n : baseUrl.endsWith('/')\n ? baseUrl + 'index'\n : baseUrl.slice(0, -1);\n } else if (\n // If the path is a collection of group segments leading to an index route, append `/index`.\n stripGroupSegmentsFromPath(filePath) === ''\n ) {\n filePath += '/index';\n }\n\n // This should never happen, the type of `string | object` originally comes from React Navigation.\n if (!route) {\n throw new Error(\n `Internal error: Route not found for \"${filePath}\" while collecting static export paths.`\n );\n }\n\n if (includeGroupVariations) {\n // TODO: Dedupe requests for alias routes.\n addOptionalGroups(filePath, route);\n } else {\n htmlFiles.add({\n filePath,\n route,\n });\n }\n } else if (typeof value === 'object' && value?.screens) {\n const newPath = baseUrl + value.path + '/';\n traverseScreens(value.screens, value._route ?? null, newPath);\n }\n }\n }\n\n function addOptionalGroups(path: string, route: RouteNode) {\n const variations = getPathVariations(path);\n for (const variation of variations) {\n htmlFiles.add({ filePath: variation, route });\n }\n }\n\n traverseScreens(manifest.screens, null);\n\n return uniqueBy(Array.from(htmlFiles), (value) => value.filePath).map((value) => {\n const parts = value.filePath.split('/');\n // Replace `:foo` with `[foo]` and `*foo` with `[...foo]`\n const partsWithGroups = parts.map((part) => {\n if (part === '*not-found') {\n return `+not-found`;\n } else if (part.startsWith(':')) {\n return `[${part.slice(1)}]`;\n } else if (part.startsWith('*')) {\n return `[...${part.slice(1)}]`;\n }\n return part;\n });\n const filePathLocation = partsWithGroups.join('/');\n const filePath = filePathLocation + '.html';\n return {\n ...value,\n filePath,\n pathname: filePathLocation.replace(/(\\/?index)?$/, ''),\n };\n });\n}\n\nfunction uniqueBy<T>(array: T[], key: (value: T) => string): T[] {\n const seen = new Set<string>();\n const result: T[] = [];\n for (const value of array) {\n const id = key(value);\n if (!seen.has(id)) {\n seen.add(id);\n result.push(value);\n }\n }\n return result;\n}\n\n// Given a route like `(foo)/bar/(baz)`, return all possible variations of the route.\n// e.g. `(foo)/bar/(baz)`, `(foo)/bar/baz`, `foo/bar/(baz)`, `foo/bar/baz`,\nexport function getPathVariations(routePath: string): string[] {\n const variations = new Set<string>();\n const segments = routePath.split('/');\n\n function generateVariations(segments: string[], current = ''): void {\n if (segments.length === 0) {\n if (current) variations.add(current);\n return;\n }\n\n const [head, ...rest] = segments;\n\n if (matchGroupName(head)) {\n const groups = head.slice(1, -1).split(',');\n\n if (groups.length > 1) {\n for (const group of groups) {\n // If there are multiple groups, recurse on each group.\n generateVariations([`(${group.trim()})`, ...rest], current);\n }\n return;\n } else {\n // Start a fork where this group is included\n generateVariations(rest, current ? `${current}/(${groups[0]})` : `(${groups[0]})`);\n // This code will continue and add paths without this group included`\n }\n } else if (current) {\n current = `${current}/${head}`;\n } else {\n current = head;\n }\n\n generateVariations(rest, current);\n }\n\n generateVariations(segments);\n\n return Array.from(variations);\n}\n\nexport async function exportApiRoutesStandaloneAsync(\n devServer: MetroBundlerDevServer,\n {\n files = new Map(),\n platform,\n apiRoutesOnly,\n templateHtml,\n }: {\n files?: ExportAssetMap;\n platform: string;\n apiRoutesOnly: boolean;\n templateHtml?: string;\n }\n) {\n const { serverManifest, htmlManifest } = await devServer.getServerManifestAsync();\n\n const apiRoutes = await exportApiRoutesAsync({\n server: devServer,\n manifest: serverManifest,\n // NOTE(kitten): For now, we always output source maps for API route exports\n includeSourceMaps: true,\n platform,\n apiRoutesOnly,\n });\n\n // Add the api routes to the files to export.\n for (const [route, contents] of apiRoutes) {\n files.set(route, contents);\n }\n\n if (templateHtml && devServer.isReactServerComponentsEnabled) {\n // TODO: Export an HTML entry for each file. This is a temporary solution until we have SSR/SSG for RSC.\n await getFilesToExportFromServerAsync(devServer.projectRoot, {\n manifest: htmlManifest,\n exportServer: true,\n files,\n renderAsync: async ({ pathname, filePath }) => {\n files.set(filePath, {\n contents: templateHtml!,\n routeId: pathname,\n targetDomain: 'server',\n });\n return templateHtml!;\n },\n });\n }\n\n return files;\n}\n\nasync function exportApiRoutesAsync({\n includeSourceMaps,\n server,\n platform,\n apiRoutesOnly,\n ...props\n}: Pick<Options, 'includeSourceMaps'> & {\n server: MetroBundlerDevServer;\n manifest: ExpoRouterServerManifestV1;\n platform: string;\n apiRoutesOnly?: boolean;\n}): Promise<ExportAssetMap> {\n const { manifest, files } = await server.exportExpoRouterApiRoutesAsync({\n outputDir: '_expo/functions',\n prerenderManifest: props.manifest,\n includeSourceMaps,\n platform,\n });\n\n // HACK: Clear out the HTML and 404 routes if we're only exporting API routes. This is used for native apps that are using API routes but haven't implemented web support yet.\n if (apiRoutesOnly) {\n manifest.htmlRoutes = [];\n manifest.notFoundRoutes = [];\n }\n\n files.set('_expo/routes.json', {\n contents: JSON.stringify(manifest, null, 2),\n targetDomain: 'server',\n });\n\n return files;\n}\n\nfunction warnPossibleInvalidExportType(appDir: string) {\n const apiRoutes = getApiRoutesForDirectory(appDir);\n if (apiRoutes.length) {\n // TODO: Allow API Routes for native-only.\n Log.warn(\n chalk.yellow`Skipping export for API routes because \\`web.output\\` is not \"server\". You may want to remove the routes: ${apiRoutes\n .map((v) => path.relative(appDir, v))\n .join(', ')}`\n );\n }\n}\n"],"names":["exportApiRoutesStandaloneAsync","exportFromServerAsync","getFilesToExportFromServerAsync","getHtmlFiles","getPathVariations","debug","require","matchGroupName","name","match","projectRoot","manifest","renderAsync","exportServer","files","Map","Promise","all","includeGroupVariations","map","route","filePath","pathname","targetDomain","set","contents","data","routeId","e","logMetroErrorAsync","error","Error","modifyRouteNodeInRuntimeManifest","callback","iterateScreens","screens","Object","values","value","_route","makeRuntimeEntryPointsAbsolute","appDir","Array","isArray","entryPoints","entryPoint","startsWith","path","resolve","isAbsolute","resolveFrom","devServer","outputDir","baseUrl","includeSourceMaps","routerRoot","exp","Log","log","learnMore","platform","isExporting","join","injectFaviconTag","getVirtualFaviconAssetsAsync","resources","serverManifest","getStaticResourcesAsync","getStaticRenderFunctionAsync","inspect","colors","depth","template","html","serializeHtmlWithAssets","artifacts","hydrate","getFilesFromSerialAssets","isServerHosted","assets","persistMetroAssetsAsync","outputDirectory","apiRoutes","exportApiRoutesAsync","server","warnPossibleInvalidExportType","htmlFiles","Set","traverseScreens","key","entries","leaf","keys","length","endsWith","slice","stripGroupSegmentsFromPath","addOptionalGroups","add","newPath","variations","variation","uniqueBy","from","parts","split","partsWithGroups","part","filePathLocation","replace","array","seen","result","id","has","push","routePath","segments","generateVariations","current","head","rest","groups","group","trim","apiRoutesOnly","templateHtml","htmlManifest","getServerManifestAsync","isReactServerComponentsEnabled","props","exportExpoRouterApiRoutesAsync","prerenderManifest","htmlRoutes","notFoundRoutes","JSON","stringify","getApiRoutesForDirectory","warn","chalk","yellow","v","relative"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/export/exportStaticAsync.ts"],"sourcesContent":["/**\n * Copyright © 2022 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { ExpoConfig } from '@expo/config';\nimport chalk from 'chalk';\nimport { RouteNode } from 'expo-router/build/Route';\nimport { stripGroupSegmentsFromPath } from 'expo-router/build/matchers';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport { inspect } from 'util';\n\nimport { getVirtualFaviconAssetsAsync } from './favicon';\nimport { persistMetroAssetsAsync } from './persistMetroAssets';\nimport { ExportAssetMap, getFilesFromSerialAssets } from './saveAssets';\nimport { Log } from '../log';\nimport {\n ExpoRouterRuntimeManifest,\n MetroBundlerDevServer,\n} from '../start/server/metro/MetroBundlerDevServer';\nimport { ExpoRouterServerManifestV1 } from '../start/server/metro/fetchRouterManifest';\nimport { logMetroErrorAsync } from '../start/server/metro/metroErrorInterface';\nimport { getApiRoutesForDirectory } from '../start/server/metro/router';\nimport { serializeHtmlWithAssets } from '../start/server/metro/serializeHtml';\nimport { learnMore } from '../utils/link';\n\nconst debug = require('debug')('expo:export:generateStaticRoutes') as typeof console.log;\n\ntype Options = {\n mode: 'production' | 'development';\n files?: ExportAssetMap;\n outputDir: string;\n minify: boolean;\n exportServer: boolean;\n baseUrl: string;\n includeSourceMaps: boolean;\n entryPoint?: string;\n clear: boolean;\n routerRoot: string;\n reactCompiler: boolean;\n maxWorkers?: number;\n isExporting: boolean;\n exp?: ExpoConfig;\n};\n\ntype HtmlRequestLocation = {\n /** The output file path name to use relative to the static folder. */\n filePath: string;\n /** The pathname to make requests to in order to fetch the HTML. */\n pathname: string;\n /** The runtime route node object, used to associate async modules with the static HTML. */\n route: RouteNode;\n};\n\n/** Match `(page)` -> `page` */\nfunction matchGroupName(name: string): string | undefined {\n return name.match(/^\\(([^/]+?)\\)$/)?.[1];\n}\n\nexport async function getFilesToExportFromServerAsync(\n projectRoot: string,\n {\n manifest,\n renderAsync,\n // Servers can handle group routes automatically and therefore\n // don't require the build-time generation of every possible group\n // variation.\n exportServer,\n // name : contents\n files = new Map(),\n }: {\n manifest: ExpoRouterRuntimeManifest;\n renderAsync: (requestLocation: HtmlRequestLocation) => Promise<string>;\n exportServer?: boolean;\n files?: ExportAssetMap;\n }\n): Promise<ExportAssetMap> {\n await Promise.all(\n getHtmlFiles({ manifest, includeGroupVariations: !exportServer }).map(\n async ({ route, filePath, pathname }) => {\n try {\n const targetDomain = exportServer ? 'server' : 'client';\n files.set(filePath, { contents: '', targetDomain });\n const data = await renderAsync({ route, filePath, pathname });\n files.set(filePath, {\n contents: data,\n routeId: pathname,\n targetDomain,\n });\n } catch (e: any) {\n await logMetroErrorAsync({ error: e, projectRoot });\n throw new Error('Failed to statically export route: ' + pathname);\n }\n }\n )\n );\n\n return files;\n}\n\nfunction modifyRouteNodeInRuntimeManifest(\n manifest: ExpoRouterRuntimeManifest,\n callback: (route: RouteNode) => any\n) {\n const iterateScreens = (screens: ExpoRouterRuntimeManifest['screens']) => {\n Object.values(screens).map((value) => {\n if (typeof value !== 'string') {\n if (value._route) callback(value._route);\n iterateScreens(value.screens);\n }\n });\n };\n\n iterateScreens(manifest.screens);\n}\n\n// TODO: Do this earlier in the process.\nfunction makeRuntimeEntryPointsAbsolute(manifest: ExpoRouterRuntimeManifest, appDir: string) {\n modifyRouteNodeInRuntimeManifest(manifest, (route) => {\n if (Array.isArray(route.entryPoints)) {\n route.entryPoints = route.entryPoints.map((entryPoint) => {\n if (entryPoint.startsWith('.')) {\n return path.resolve(appDir, entryPoint);\n } else if (!path.isAbsolute(entryPoint)) {\n return resolveFrom(appDir, entryPoint);\n }\n return entryPoint;\n });\n }\n });\n}\n\n/** Perform all fs commits */\nexport async function exportFromServerAsync(\n projectRoot: string,\n devServer: MetroBundlerDevServer,\n {\n outputDir,\n baseUrl,\n exportServer,\n includeSourceMaps,\n routerRoot,\n files = new Map(),\n exp,\n }: Options\n): Promise<ExportAssetMap> {\n Log.log(\n `Static rendering is enabled. ` +\n learnMore('https://docs.expo.dev/router/reference/static-rendering/')\n );\n\n const platform = 'web';\n const isExporting = true;\n const appDir = path.join(projectRoot, routerRoot);\n const injectFaviconTag = await getVirtualFaviconAssetsAsync(projectRoot, {\n outputDir,\n baseUrl,\n files,\n exp,\n });\n\n const [resources, { manifest, serverManifest, renderAsync }] = await Promise.all([\n devServer.getStaticResourcesAsync({\n includeSourceMaps,\n }),\n devServer.getStaticRenderFunctionAsync(),\n ]);\n\n makeRuntimeEntryPointsAbsolute(manifest, appDir);\n\n debug('Routes:\\n', inspect(manifest, { colors: true, depth: null }));\n\n await getFilesToExportFromServerAsync(projectRoot, {\n files,\n manifest,\n exportServer,\n async renderAsync({ pathname, route }) {\n const template = await renderAsync(pathname);\n let html = await serializeHtmlWithAssets({\n isExporting,\n resources: resources.artifacts,\n template,\n baseUrl,\n route,\n hydrate: true,\n });\n\n if (injectFaviconTag) {\n html = injectFaviconTag(html);\n }\n\n return html;\n },\n });\n\n getFilesFromSerialAssets(resources.artifacts, {\n platform,\n includeSourceMaps,\n files,\n isServerHosted: true,\n });\n\n if (resources.assets) {\n // TODO: Collect files without writing to disk.\n // NOTE(kitten): Re. above, this is now using `files` except for iOS catalog output, which isn't used here\n await persistMetroAssetsAsync(projectRoot, resources.assets, {\n files,\n platform,\n outputDirectory: outputDir,\n baseUrl,\n });\n }\n\n if (exportServer) {\n const apiRoutes = await exportApiRoutesAsync({\n platform: 'web',\n server: devServer,\n manifest: serverManifest,\n // NOTE(kitten): For now, we always output source maps for API route exports\n includeSourceMaps: true,\n });\n\n // Add the api routes to the files to export.\n for (const [route, contents] of apiRoutes) {\n files.set(route, contents);\n }\n } else {\n warnPossibleInvalidExportType(appDir);\n }\n\n return files;\n}\n\nexport function getHtmlFiles({\n manifest,\n includeGroupVariations,\n}: {\n manifest: ExpoRouterRuntimeManifest;\n includeGroupVariations?: boolean;\n}): HtmlRequestLocation[] {\n const htmlFiles = new Set<Omit<HtmlRequestLocation, 'pathname'>>();\n\n function traverseScreens(\n screens: ExpoRouterRuntimeManifest['screens'],\n route: RouteNode | null,\n baseUrl = ''\n ) {\n for (const [key, value] of Object.entries(screens)) {\n let leaf: string | null = null;\n if (typeof value === 'string') {\n leaf = value;\n } else if (Object.keys(value.screens).length === 0) {\n // Ensure the trailing index is accounted for.\n if (key === value.path + '/index') {\n leaf = key;\n } else {\n leaf = value.path;\n }\n\n route = value._route ?? null;\n }\n\n if (leaf != null) {\n let filePath = baseUrl + leaf;\n\n if (leaf === '') {\n filePath =\n baseUrl === ''\n ? 'index'\n : baseUrl.endsWith('/')\n ? baseUrl + 'index'\n : baseUrl.slice(0, -1);\n } else if (\n // If the path is a collection of group segments leading to an index route, append `/index`.\n stripGroupSegmentsFromPath(filePath) === ''\n ) {\n filePath += '/index';\n }\n\n // This should never happen, the type of `string | object` originally comes from React Navigation.\n if (!route) {\n throw new Error(\n `Internal error: Route not found for \"${filePath}\" while collecting static export paths.`\n );\n }\n\n if (includeGroupVariations) {\n // TODO: Dedupe requests for alias routes.\n addOptionalGroups(filePath, route);\n } else {\n htmlFiles.add({\n filePath,\n route,\n });\n }\n } else if (typeof value === 'object' && value?.screens) {\n const newPath = baseUrl + value.path + '/';\n traverseScreens(value.screens, value._route ?? null, newPath);\n }\n }\n }\n\n function addOptionalGroups(path: string, route: RouteNode) {\n const variations = getPathVariations(path);\n for (const variation of variations) {\n htmlFiles.add({ filePath: variation, route });\n }\n }\n\n traverseScreens(manifest.screens, null);\n\n return uniqueBy(Array.from(htmlFiles), (value) => value.filePath).map((value) => {\n const parts = value.filePath.split('/');\n // Replace `:foo` with `[foo]` and `*foo` with `[...foo]`\n const partsWithGroups = parts.map((part) => {\n if (part === '*not-found') {\n return `+not-found`;\n } else if (part.startsWith(':')) {\n return `[${part.slice(1)}]`;\n } else if (part.startsWith('*')) {\n return `[...${part.slice(1)}]`;\n }\n return part;\n });\n const filePathLocation = partsWithGroups.join('/');\n const filePath = filePathLocation + '.html';\n return {\n ...value,\n filePath,\n pathname: filePathLocation.replace(/(\\/?index)?$/, ''),\n };\n });\n}\n\nfunction uniqueBy<T>(array: T[], key: (value: T) => string): T[] {\n const seen = new Set<string>();\n const result: T[] = [];\n for (const value of array) {\n const id = key(value);\n if (!seen.has(id)) {\n seen.add(id);\n result.push(value);\n }\n }\n return result;\n}\n\n// Given a route like `(foo)/bar/(baz)`, return all possible variations of the route.\n// e.g. `(foo)/bar/(baz)`, `(foo)/bar/baz`, `foo/bar/(baz)`, `foo/bar/baz`,\nexport function getPathVariations(routePath: string): string[] {\n const variations = new Set<string>();\n const segments = routePath.split('/');\n\n function generateVariations(segments: string[], current = ''): void {\n if (segments.length === 0) {\n if (current) variations.add(current);\n return;\n }\n\n const [head, ...rest] = segments;\n\n if (matchGroupName(head)) {\n const groups = head.slice(1, -1).split(',');\n\n if (groups.length > 1) {\n for (const group of groups) {\n // If there are multiple groups, recurse on each group.\n generateVariations([`(${group.trim()})`, ...rest], current);\n }\n return;\n } else {\n // Start a fork where this group is included\n generateVariations(rest, current ? `${current}/(${groups[0]})` : `(${groups[0]})`);\n // This code will continue and add paths without this group included`\n }\n } else if (current) {\n current = `${current}/${head}`;\n } else {\n current = head;\n }\n\n generateVariations(rest, current);\n }\n\n generateVariations(segments);\n\n return Array.from(variations);\n}\n\nexport async function exportApiRoutesStandaloneAsync(\n devServer: MetroBundlerDevServer,\n {\n files = new Map(),\n platform,\n apiRoutesOnly,\n templateHtml,\n }: {\n files?: ExportAssetMap;\n platform: string;\n apiRoutesOnly: boolean;\n templateHtml?: string;\n }\n) {\n const { serverManifest, htmlManifest } = await devServer.getServerManifestAsync();\n\n const apiRoutes = await exportApiRoutesAsync({\n server: devServer,\n manifest: serverManifest,\n // NOTE(kitten): For now, we always output source maps for API route exports\n includeSourceMaps: true,\n platform,\n apiRoutesOnly,\n });\n\n // Add the api routes to the files to export.\n for (const [route, contents] of apiRoutes) {\n files.set(route, contents);\n }\n\n if (templateHtml && devServer.isReactServerComponentsEnabled) {\n // TODO: Export an HTML entry for each file. This is a temporary solution until we have SSR/SSG for RSC.\n await getFilesToExportFromServerAsync(devServer.projectRoot, {\n manifest: htmlManifest,\n exportServer: true,\n files,\n renderAsync: async ({ pathname, filePath }) => {\n files.set(filePath, {\n contents: templateHtml!,\n routeId: pathname,\n targetDomain: 'server',\n });\n return templateHtml!;\n },\n });\n }\n\n return files;\n}\n\nasync function exportApiRoutesAsync({\n includeSourceMaps,\n server,\n platform,\n apiRoutesOnly,\n ...props\n}: Pick<Options, 'includeSourceMaps'> & {\n server: MetroBundlerDevServer;\n manifest: ExpoRouterServerManifestV1;\n platform: string;\n apiRoutesOnly?: boolean;\n}): Promise<ExportAssetMap> {\n const { manifest, files } = await server.exportExpoRouterApiRoutesAsync({\n outputDir: '_expo/functions',\n prerenderManifest: props.manifest,\n includeSourceMaps,\n platform,\n });\n\n // HACK: Clear out the HTML and 404 routes if we're only exporting API routes. This is used for native apps that are using API routes but haven't implemented web support yet.\n if (apiRoutesOnly) {\n manifest.htmlRoutes = [];\n manifest.notFoundRoutes = [];\n }\n\n files.set('_expo/routes.json', {\n contents: JSON.stringify(manifest, null, 2),\n targetDomain: 'server',\n });\n\n return files;\n}\n\nfunction warnPossibleInvalidExportType(appDir: string) {\n const apiRoutes = getApiRoutesForDirectory(appDir);\n if (apiRoutes.length) {\n // TODO: Allow API Routes for native-only.\n Log.warn(\n chalk.yellow`Skipping export for API routes because \\`web.output\\` is not \"server\". You may want to remove the routes: ${apiRoutes\n .map((v) => path.relative(appDir, v))\n .join(', ')}`\n );\n }\n}\n"],"names":["getFilesToExportFromServerAsync","exportFromServerAsync","getHtmlFiles","getPathVariations","exportApiRoutesStandaloneAsync","debug","require","matchGroupName","name","match","projectRoot","manifest","renderAsync","exportServer","files","Map","Promise","all","includeGroupVariations","map","route","filePath","pathname","targetDomain","set","contents","data","routeId","e","logMetroErrorAsync","error","Error","modifyRouteNodeInRuntimeManifest","callback","iterateScreens","screens","Object","values","value","_route","makeRuntimeEntryPointsAbsolute","appDir","Array","isArray","entryPoints","entryPoint","startsWith","path","resolve","isAbsolute","resolveFrom","devServer","outputDir","baseUrl","includeSourceMaps","routerRoot","exp","Log","log","learnMore","platform","isExporting","join","injectFaviconTag","getVirtualFaviconAssetsAsync","resources","serverManifest","getStaticResourcesAsync","getStaticRenderFunctionAsync","inspect","colors","depth","template","html","serializeHtmlWithAssets","artifacts","hydrate","getFilesFromSerialAssets","isServerHosted","assets","persistMetroAssetsAsync","outputDirectory","apiRoutes","exportApiRoutesAsync","server","warnPossibleInvalidExportType","htmlFiles","Set","traverseScreens","key","entries","leaf","keys","length","endsWith","slice","stripGroupSegmentsFromPath","addOptionalGroups","add","newPath","variations","variation","uniqueBy","from","parts","split","partsWithGroups","part","filePathLocation","replace","array","seen","result","id","has","push","routePath","segments","generateVariations","current","head","rest","groups","group","trim","apiRoutesOnly","templateHtml","htmlManifest","getServerManifestAsync","isReactServerComponentsEnabled","props","exportExpoRouterApiRoutesAsync","prerenderManifest","htmlRoutes","notFoundRoutes","JSON","stringify","getApiRoutesForDirectory","warn","chalk","yellow","v","relative"],"mappings":"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"}
|
|
@@ -9,15 +9,9 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
getUserDefinedFaviconFile: function() {
|
|
16
|
-
return getUserDefinedFaviconFile;
|
|
17
|
-
},
|
|
18
|
-
getVirtualFaviconAssetsAsync: function() {
|
|
19
|
-
return getVirtualFaviconAssetsAsync;
|
|
20
|
-
}
|
|
12
|
+
getUserDefinedFaviconFile: ()=>getUserDefinedFaviconFile,
|
|
13
|
+
getVirtualFaviconAssetsAsync: ()=>getVirtualFaviconAssetsAsync,
|
|
14
|
+
getFaviconFromExpoConfigAsync: ()=>getFaviconFromExpoConfigAsync
|
|
21
15
|
});
|
|
22
16
|
function _config() {
|
|
23
17
|
const data = require("@expo/config");
|
|
@@ -26,22 +20,22 @@ function _config() {
|
|
|
26
20
|
};
|
|
27
21
|
return data;
|
|
28
22
|
}
|
|
29
|
-
function
|
|
23
|
+
function _imageUtils() {
|
|
30
24
|
const data = require("@expo/image-utils");
|
|
31
|
-
|
|
25
|
+
_imageUtils = function() {
|
|
32
26
|
return data;
|
|
33
27
|
};
|
|
34
28
|
return data;
|
|
35
29
|
}
|
|
36
30
|
function _fs() {
|
|
37
|
-
const data = /*#__PURE__*/
|
|
31
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("fs"));
|
|
38
32
|
_fs = function() {
|
|
39
33
|
return data;
|
|
40
34
|
};
|
|
41
35
|
return data;
|
|
42
36
|
}
|
|
43
37
|
function _path() {
|
|
44
|
-
const data = /*#__PURE__*/
|
|
38
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
45
39
|
_path = function() {
|
|
46
40
|
return data;
|
|
47
41
|
};
|
|
@@ -49,21 +43,21 @@ function _path() {
|
|
|
49
43
|
}
|
|
50
44
|
const _publicFolder = require("./publicFolder");
|
|
51
45
|
const _log = require("../log");
|
|
52
|
-
function
|
|
46
|
+
function _interopRequireDefault(obj) {
|
|
53
47
|
return obj && obj.__esModule ? obj : {
|
|
54
48
|
default: obj
|
|
55
49
|
};
|
|
56
50
|
}
|
|
57
|
-
const debug = require(
|
|
51
|
+
const debug = require("debug")("expo:favicon");
|
|
58
52
|
function getUserDefinedFaviconFile(projectRoot) {
|
|
59
53
|
return (0, _publicFolder.getUserDefinedFile)(projectRoot, [
|
|
60
|
-
|
|
54
|
+
"./favicon.ico"
|
|
61
55
|
]);
|
|
62
56
|
}
|
|
63
|
-
async function getVirtualFaviconAssetsAsync(projectRoot, { baseUrl, outputDir, files, exp
|
|
57
|
+
async function getVirtualFaviconAssetsAsync(projectRoot, { baseUrl , outputDir , files , exp }) {
|
|
64
58
|
const existing = getUserDefinedFaviconFile(projectRoot);
|
|
65
59
|
if (existing) {
|
|
66
|
-
debug(
|
|
60
|
+
debug("Using user-defined favicon.ico file.");
|
|
67
61
|
return null;
|
|
68
62
|
}
|
|
69
63
|
const data = await getFaviconFromExpoConfigAsync(projectRoot, {
|
|
@@ -77,27 +71,27 @@ async function getVirtualFaviconAssetsAsync(projectRoot, { baseUrl, outputDir, f
|
|
|
77
71
|
].map(async (asset)=>{
|
|
78
72
|
const assetPath = _path().default.join(outputDir, asset.path);
|
|
79
73
|
if (files) {
|
|
80
|
-
debug(
|
|
74
|
+
debug("Storing asset for persisting: " + assetPath);
|
|
81
75
|
files == null ? void 0 : files.set(asset.path, {
|
|
82
76
|
contents: asset.source,
|
|
83
|
-
targetDomain:
|
|
77
|
+
targetDomain: "client"
|
|
84
78
|
});
|
|
85
79
|
} else {
|
|
86
|
-
debug(
|
|
80
|
+
debug("Writing asset to disk: " + assetPath);
|
|
87
81
|
await _fs().default.promises.writeFile(assetPath, asset.source);
|
|
88
82
|
}
|
|
89
83
|
}));
|
|
90
84
|
function injectFaviconTag(html) {
|
|
91
|
-
if (!html.includes(
|
|
85
|
+
if (!html.includes("</head>")) {
|
|
92
86
|
return html;
|
|
93
87
|
}
|
|
94
|
-
return html.replace(
|
|
88
|
+
return html.replace("</head>", `<link rel="shortcut icon" href="${baseUrl}/favicon.ico" /></head>`);
|
|
95
89
|
}
|
|
96
90
|
return injectFaviconTag;
|
|
97
91
|
}
|
|
98
|
-
async function getFaviconFromExpoConfigAsync(projectRoot, { force =
|
|
99
|
-
var
|
|
100
|
-
const src = ((
|
|
92
|
+
async function getFaviconFromExpoConfigAsync(projectRoot, { force =false , exp =(0, _config().getConfig)(projectRoot).exp } = {}) {
|
|
93
|
+
var ref;
|
|
94
|
+
const src = ((ref = exp.web) == null ? void 0 : ref.favicon) ?? null;
|
|
101
95
|
if (!src) {
|
|
102
96
|
return null;
|
|
103
97
|
}
|
|
@@ -106,28 +100,28 @@ async function getFaviconFromExpoConfigAsync(projectRoot, { force = false, exp =
|
|
|
106
100
|
32,
|
|
107
101
|
48
|
|
108
102
|
];
|
|
109
|
-
const cacheType =
|
|
103
|
+
const cacheType = "favicon";
|
|
110
104
|
const size = dims[dims.length - 1];
|
|
111
105
|
try {
|
|
112
|
-
const { source
|
|
106
|
+
const { source } = await (0, _imageUtils().generateImageAsync)({
|
|
113
107
|
projectRoot,
|
|
114
108
|
cacheType
|
|
115
109
|
}, {
|
|
116
|
-
resizeMode:
|
|
110
|
+
resizeMode: "contain",
|
|
117
111
|
src,
|
|
118
|
-
backgroundColor:
|
|
112
|
+
backgroundColor: "transparent",
|
|
119
113
|
width: size,
|
|
120
114
|
height: size,
|
|
121
115
|
name: `favicon-${size}.png`
|
|
122
116
|
});
|
|
123
|
-
const faviconBuffer = await (0,
|
|
117
|
+
const faviconBuffer = await (0, _imageUtils().generateFaviconAsync)(source, dims);
|
|
124
118
|
return {
|
|
125
119
|
source: faviconBuffer,
|
|
126
|
-
path:
|
|
120
|
+
path: "favicon.ico"
|
|
127
121
|
};
|
|
128
122
|
} catch (error) {
|
|
129
123
|
// Check for ENOENT
|
|
130
|
-
if (!force && error.code ===
|
|
124
|
+
if (!force && error.code === "ENOENT") {
|
|
131
125
|
_log.Log.warn(`Favicon source file in Expo config (web.favicon) does not exist: ${src}`);
|
|
132
126
|
return null;
|
|
133
127
|
}
|