@expo/cli 0.22.24 → 0.22.25
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 +93 -91
- package/build/bin/cli.map +1 -1
- package/build/metro-require/require.js +53 -52
- package/build/src/api/endpoint.js +6 -2
- package/build/src/api/endpoint.js.map +1 -1
- package/build/src/api/getExpoGoIntermediateCertificate.js +5 -3
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
- package/build/src/api/getExpoSchema.js +16 -12
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/getNativeModuleVersions.js +6 -4
- package/build/src/api/getNativeModuleVersions.js.map +1 -1
- package/build/src/api/getProjectDevelopmentCertificate.js +5 -3
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
- package/build/src/api/getVersions.js +7 -5
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/graphql/client.js +32 -26
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +6 -4
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +5 -3
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +3 -1
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemResponseCache.js +10 -8
- package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/ResponseCache.js +20 -12
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +13 -11
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +53 -35
- 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 +5 -3
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js +5 -3
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProgress.js +11 -7
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +5 -3
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithUserAgent.js +8 -6
- package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
- package/build/src/api/settings.js +7 -5
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +23 -17
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +39 -21
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +27 -21
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +30 -26
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +35 -29
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +44 -30
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +29 -23
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +25 -21
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +8 -6
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +20 -16
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +14 -12
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/resolveOptions.js +4 -2
- package/build/src/customize/resolveOptions.js.map +1 -1
- package/build/src/customize/templates.js +58 -54
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +11 -7
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +11 -9
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEager.js +8 -6
- package/build/src/export/embed/exportEager.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +71 -61
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/exportServer.js +57 -55
- package/build/src/export/embed/exportServer.js.map +1 -1
- package/build/src/export/embed/index.js +44 -40
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +44 -36
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +39 -27
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +67 -63
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +35 -27
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +13 -9
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportDomComponents.js +53 -45
- package/build/src/export/exportDomComponents.js.map +1 -1
- package/build/src/export/exportHermes.js +85 -63
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +72 -62
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +33 -27
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +7 -5
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +11 -9
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/html.js +10 -6
- package/build/src/export/html.js.map +1 -1
- package/build/src/export/index.js +32 -28
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +36 -30
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +42 -34
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +10 -6
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +28 -24
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +50 -46
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +13 -11
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +19 -15
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/export/web/resolveOptions.js +5 -3
- package/build/src/export/web/resolveOptions.js.map +1 -1
- package/build/src/export/writeContents.js +4 -2
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/graphql/generated.js +400 -274
- package/build/src/graphql/generated.js.map +1 -1
- package/build/src/install/applyPlugins.js +11 -7
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +26 -22
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +16 -12
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +18 -16
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +32 -26
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +22 -18
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/resolveOptions.js +21 -19
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +18 -14
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/install/utils/checkPackagesCompatibility.js +13 -11
- package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
- package/build/src/lint/ESlintPrerequisite.js +50 -44
- package/build/src/lint/ESlintPrerequisite.js.map +1 -1
- package/build/src/lint/index.js +12 -8
- package/build/src/lint/index.js.map +1 -1
- package/build/src/lint/lintAsync.js +10 -8
- package/build/src/lint/lintAsync.js.map +1 -1
- package/build/src/log.js +36 -16
- package/build/src/log.js.map +1 -1
- package/build/src/login/index.js +24 -20
- package/build/src/login/index.js.map +1 -1
- package/build/src/logout/index.js +11 -7
- package/build/src/logout/index.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +38 -26
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +18 -14
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +17 -13
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +6 -4
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +36 -32
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +29 -25
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +46 -40
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +66 -52
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +36 -32
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +19 -13
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +53 -39
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +12 -8
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/register/index.js +11 -7
- package/build/src/register/index.js.map +1 -1
- package/build/src/register/registerAsync.js +5 -3
- package/build/src/register/registerAsync.js.map +1 -1
- package/build/src/run/android/index.js +36 -32
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveDevice.js +10 -8
- package/build/src/run/android/resolveDevice.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +18 -16
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
- package/build/src/run/android/resolveInstallApkName.js +17 -15
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +12 -10
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +4 -2
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +23 -21
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +7 -5
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +13 -7
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +27 -23
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +74 -56
- 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 +69 -63
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +29 -26
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +28 -25
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +29 -26
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +22 -21
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +32 -29
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +28 -24
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +7 -4
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +28 -27
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +23 -17
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +146 -132
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +29 -21
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +29 -21
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +34 -22
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +27 -17
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +53 -39
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +13 -9
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +27 -19
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/settings.js +9 -5
- package/build/src/run/ios/codeSigning/settings.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +14 -12
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +27 -21
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +40 -36
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +23 -17
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/appleDestinations.js +38 -36
- package/build/src/run/ios/options/appleDestinations.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +20 -16
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +30 -24
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +31 -23
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveOptions.js +7 -5
- package/build/src/run/ios/options/resolveOptions.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +7 -5
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +48 -44
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/ios/validateExternalBinary.js +24 -22
- package/build/src/run/ios/validateExternalBinary.js.map +1 -1
- package/build/src/run/resolveBundlerProps.js +4 -2
- package/build/src/run/resolveBundlerProps.js.map +1 -1
- package/build/src/run/startBundler.js +16 -12
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/serve/index.js +20 -16
- package/build/src/serve/index.js.map +1 -1
- package/build/src/serve/serveAsync.js +36 -32
- package/build/src/serve/serveAsync.js.map +1 -1
- package/build/src/start/detectDevClient.js +13 -9
- package/build/src/start/detectDevClient.js.map +1 -1
- package/build/src/start/doctor/Prerequisite.js +12 -7
- package/build/src/start/doctor/Prerequisite.js.map +1 -1
- package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -11
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +23 -19
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +23 -19
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +51 -45
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +18 -16
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +23 -19
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +31 -25
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +25 -17
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +40 -32
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +32 -26
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +41 -31
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +34 -29
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -8
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +32 -28
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +23 -17
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +33 -27
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +46 -42
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js +18 -14
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +94 -80
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +44 -40
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +65 -61
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +6 -4
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +10 -6
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +25 -20
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +17 -15
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +39 -35
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -16
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +24 -20
- 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 +11 -9
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +26 -22
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +121 -83
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +20 -12
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +36 -26
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/getDevices.js +7 -5
- package/build/src/start/platforms/android/getDevices.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +36 -28
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +19 -15
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +21 -19
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +37 -31
- 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 +9 -7
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/devicectl.js +87 -73
- package/build/src/start/platforms/ios/devicectl.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +22 -18
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +29 -19
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +14 -10
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +102 -74
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +57 -52
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +22 -18
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +19 -9
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/project/dotExpo.js +15 -11
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/project/settings.js +4 -2
- package/build/src/start/project/settings.js.map +1 -1
- package/build/src/start/resolveOptions.js +48 -40
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +55 -51
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/AsyncWsTunnel.js +40 -36
- package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +81 -79
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +42 -38
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +18 -14
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +18 -14
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +16 -10
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +36 -33
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +29 -21
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +6 -4
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +269 -271
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +63 -56
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +39 -33
- 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 +46 -40
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +32 -28
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +96 -92
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +32 -30
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +13 -11
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +3 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
- package/build/src/start/server/metro/debugging/attachAtlas.js +26 -22
- package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +19 -17
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +25 -31
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
- package/build/src/start/server/metro/debugging/getDebuggerType.js +6 -4
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +14 -8
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -5
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +8 -6
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -5
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +14 -12
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +14 -10
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
- package/build/src/start/server/metro/debugging/pageIsSupported.js +6 -4
- 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 +18 -16
- package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMessageSocket.js +23 -21
- package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +23 -21
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +4 -2
- 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 +4 -2
- 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 +8 -4
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
- package/build/src/start/server/metro/externals.js +33 -25
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +16 -12
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +11 -9
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +22 -18
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +85 -79
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxLog.js +40 -36
- package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +20 -14
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js +10 -6
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +88 -78
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroErrors.js +8 -4
- package/build/src/start/server/metro/metroErrors.js.map +1 -1
- package/build/src/start/server/metro/metroPrivateServer.js +9 -7
- package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +10 -8
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +24 -22
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +48 -32
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +24 -22
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +24 -22
- 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 +35 -29
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +149 -139
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +49 -39
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +8 -6
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CorsMiddleware.js +17 -15
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +32 -31
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +22 -19
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DomComponentsMiddleware.js +33 -27
- package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +64 -60
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +15 -9
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/FaviconMiddleware.js +15 -14
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +4 -2
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +34 -31
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +64 -56
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +23 -19
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +20 -19
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -9
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +17 -11
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
- package/build/src/start/server/middleware/inspector/CdpClient.js +12 -10
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +35 -27
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +21 -19
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +6 -2
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +120 -96
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/mutations.js +7 -3
- package/build/src/start/server/middleware/mutations.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +26 -18
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +23 -15
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +11 -9
- 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 +10 -8
- package/build/src/start/server/openPlatforms.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +13 -11
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +58 -50
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +11 -7
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +76 -54
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +21 -19
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +36 -28
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +28 -24
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +52 -46
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +15 -11
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/formatWebpackMessages.js +28 -26
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +18 -12
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +18 -12
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +31 -27
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +20 -17
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/ansi.js +7 -5
- package/build/src/utils/ansi.js.map +1 -1
- package/build/src/utils/args.js +24 -14
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/array.js +18 -6
- package/build/src/utils/array.js.map +1 -1
- package/build/src/utils/cocoapods.js +54 -46
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +78 -68
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +16 -12
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/createTempPath.js +17 -13
- package/build/src/utils/createTempPath.js.map +1 -1
- package/build/src/utils/delay.js +12 -6
- package/build/src/utils/delay.js.map +1 -1
- package/build/src/utils/dir.js +46 -28
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +10 -8
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +25 -21
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +41 -35
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +63 -59
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +37 -30
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/exit.js +35 -31
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/expoUpdatesCli.js +32 -22
- package/build/src/utils/expoUpdatesCli.js.map +1 -1
- package/build/src/utils/fetch.js +8 -4
- package/build/src/utils/fetch.js.map +1 -1
- package/build/src/utils/filePath.js +10 -6
- package/build/src/utils/filePath.js.map +1 -1
- package/build/src/utils/findUp.js +13 -9
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/fn.js +6 -2
- package/build/src/utils/fn.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +32 -26
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +29 -21
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +26 -20
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +8 -4
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/interactive.js +3 -1
- package/build/src/utils/interactive.js.map +1 -1
- package/build/src/utils/ip.js +21 -19
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +11 -9
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/jsonSchemaDeref.js +20 -18
- package/build/src/utils/jsonSchemaDeref.js.map +1 -1
- package/build/src/utils/link.js +17 -13
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +46 -28
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +16 -10
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +10 -6
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/nodeEnv.js +12 -6
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +10 -8
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +50 -36
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/obj.js +11 -5
- package/build/src/utils/obj.js.map +1 -1
- package/build/src/utils/open.js +10 -8
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +13 -7
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +21 -15
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +43 -33
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +11 -7
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +11 -5
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +47 -29
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/resolveArgs.js +36 -24
- package/build/src/utils/resolveArgs.js.map +1 -1
- package/build/src/utils/scheme.js +40 -32
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/stream.js +5 -3
- package/build/src/utils/stream.js.map +1 -1
- package/build/src/utils/strings.js +6 -4
- package/build/src/utils/strings.js.map +1 -1
- package/build/src/utils/tar.js +19 -15
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/Telemetry.js +29 -27
- package/build/src/utils/telemetry/Telemetry.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +15 -13
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js +26 -22
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/RudderClient.js +10 -8
- package/build/src/utils/telemetry/clients/RudderClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/RudderDetachedClient.js +26 -22
- 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 +4 -2
- 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 +25 -29
- 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 +8 -4
- package/build/src/utils/telemetry/utils/constants.js.map +1 -1
- package/build/src/utils/telemetry/utils/context.js +18 -14
- package/build/src/utils/telemetry/utils/context.js.map +1 -1
- package/build/src/utils/template.js +6 -4
- package/build/src/utils/template.js.map +1 -1
- package/build/src/utils/terminal.js +4 -2
- package/build/src/utils/terminal.js.map +1 -1
- package/build/src/utils/tsconfig/evaluateTsConfig.js +21 -17
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -14
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +7 -5
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +14 -12
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +23 -13
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +108 -86
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +22 -16
- package/build/src/utils/variadic.js.map +1 -1
- package/build/src/whoami/index.js +11 -7
- package/build/src/whoami/index.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +11 -7
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "exportAppAsync", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return exportAppAsync;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
11
|
function _config() {
|
|
10
12
|
const data = require("@expo/config");
|
|
@@ -14,28 +16,28 @@ function _config() {
|
|
|
14
16
|
return data;
|
|
15
17
|
}
|
|
16
18
|
function _assert() {
|
|
17
|
-
const data = /*#__PURE__*/
|
|
19
|
+
const data = /*#__PURE__*/ _interop_require_default(require("assert"));
|
|
18
20
|
_assert = function() {
|
|
19
21
|
return data;
|
|
20
22
|
};
|
|
21
23
|
return data;
|
|
22
24
|
}
|
|
23
25
|
function _chalk() {
|
|
24
|
-
const data = /*#__PURE__*/
|
|
26
|
+
const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
|
|
25
27
|
_chalk = function() {
|
|
26
28
|
return data;
|
|
27
29
|
};
|
|
28
30
|
return data;
|
|
29
31
|
}
|
|
30
32
|
function _fs() {
|
|
31
|
-
const data = /*#__PURE__*/
|
|
33
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
32
34
|
_fs = function() {
|
|
33
35
|
return data;
|
|
34
36
|
};
|
|
35
37
|
return data;
|
|
36
38
|
}
|
|
37
39
|
function _path() {
|
|
38
|
-
const data = /*#__PURE__*/
|
|
40
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
39
41
|
_path = function() {
|
|
40
42
|
return data;
|
|
41
43
|
};
|
|
@@ -51,19 +53,19 @@ const _getPublicExpoManifest = require("./getPublicExpoManifest");
|
|
|
51
53
|
const _publicFolder = require("./publicFolder");
|
|
52
54
|
const _saveAssets = require("./saveAssets");
|
|
53
55
|
const _writeContents = require("./writeContents");
|
|
54
|
-
const _log = /*#__PURE__*/
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const
|
|
56
|
+
const _log = /*#__PURE__*/ _interop_require_wildcard(require("../log"));
|
|
57
|
+
const _WebSupportProjectPrerequisite = require("../start/doctor/web/WebSupportProjectPrerequisite");
|
|
58
|
+
const _DevServerManager = require("../start/server/DevServerManager");
|
|
59
|
+
const _MetroBundlerDevServer = require("../start/server/metro/MetroBundlerDevServer");
|
|
58
60
|
const _router = require("../start/server/metro/router");
|
|
59
61
|
const _serializeHtml = require("../start/server/metro/serializeHtml");
|
|
60
|
-
const
|
|
62
|
+
const _ManifestMiddleware = require("../start/server/middleware/ManifestMiddleware");
|
|
61
63
|
const _metroOptions = require("../start/server/middleware/metroOptions");
|
|
62
64
|
const _webTemplate = require("../start/server/webTemplate");
|
|
63
65
|
const _env = require("../utils/env");
|
|
64
66
|
const _errors = require("../utils/errors");
|
|
65
67
|
const _nodeEnv = require("../utils/nodeEnv");
|
|
66
|
-
function
|
|
68
|
+
function _interop_require_default(obj) {
|
|
67
69
|
return obj && obj.__esModule ? obj : {
|
|
68
70
|
default: obj
|
|
69
71
|
};
|
|
@@ -76,7 +78,7 @@ function _getRequireWildcardCache(nodeInterop) {
|
|
|
76
78
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
77
79
|
})(nodeInterop);
|
|
78
80
|
}
|
|
79
|
-
function
|
|
81
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
80
82
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
81
83
|
return obj;
|
|
82
84
|
}
|
|
@@ -89,7 +91,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
89
91
|
if (cache && cache.has(obj)) {
|
|
90
92
|
return cache.get(obj);
|
|
91
93
|
}
|
|
92
|
-
var newObj = {
|
|
94
|
+
var newObj = {
|
|
95
|
+
__proto__: null
|
|
96
|
+
};
|
|
93
97
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
94
98
|
for(var key in obj){
|
|
95
99
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -107,27 +111,27 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
107
111
|
}
|
|
108
112
|
return newObj;
|
|
109
113
|
}
|
|
110
|
-
async function exportAppAsync(projectRoot, { platforms
|
|
111
|
-
var
|
|
112
|
-
(0, _nodeEnv.setNodeEnv)(dev ?
|
|
113
|
-
require(
|
|
114
|
+
async function exportAppAsync(projectRoot, { platforms, outputDir, clear, dev, dumpAssetmap, sourceMaps, minify, bytecode, maxWorkers, skipSSG }) {
|
|
115
|
+
var _exp_web, _exp_web1;
|
|
116
|
+
(0, _nodeEnv.setNodeEnv)(dev ? 'development' : 'production');
|
|
117
|
+
require('@expo/env').load(projectRoot);
|
|
114
118
|
const projectConfig = (0, _config().getConfig)(projectRoot);
|
|
115
119
|
const exp = await (0, _getPublicExpoManifest.getPublicExpoManifestAsync)(projectRoot, {
|
|
116
120
|
// Web doesn't require validation.
|
|
117
|
-
skipValidation: platforms.length === 1 && platforms[0] ===
|
|
121
|
+
skipValidation: platforms.length === 1 && platforms[0] === 'web'
|
|
118
122
|
});
|
|
119
|
-
if (platforms.includes(
|
|
120
|
-
await new
|
|
123
|
+
if (platforms.includes('web')) {
|
|
124
|
+
await new _WebSupportProjectPrerequisite.WebSupportProjectPrerequisite(projectRoot).assertAsync();
|
|
121
125
|
}
|
|
122
126
|
const useServerRendering = [
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
].includes(((
|
|
126
|
-
if (skipSSG && ((
|
|
127
|
-
throw new _errors.CommandError(
|
|
127
|
+
'static',
|
|
128
|
+
'server'
|
|
129
|
+
].includes(((_exp_web = exp.web) == null ? void 0 : _exp_web.output) ?? '');
|
|
130
|
+
if (skipSSG && ((_exp_web1 = exp.web) == null ? void 0 : _exp_web1.output) !== 'server') {
|
|
131
|
+
throw new _errors.CommandError('--no-ssg can only be used with `web.output: server`');
|
|
128
132
|
}
|
|
129
133
|
const baseUrl = (0, _metroOptions.getBaseUrlFromExpoConfig)(exp);
|
|
130
|
-
if (!bytecode && (platforms.includes(
|
|
134
|
+
if (!bytecode && (platforms.includes('ios') || platforms.includes('android'))) {
|
|
131
135
|
_log.warn(`Bytecode makes the app startup faster, disabling bytecode is highly discouraged and should only be used for debugging purposes.`);
|
|
132
136
|
}
|
|
133
137
|
// Print out logs
|
|
@@ -135,16 +139,16 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
135
139
|
_log.log();
|
|
136
140
|
_log.log(_chalk().default.gray`Using (experimental) base path: ${baseUrl}`);
|
|
137
141
|
// Warn if not using an absolute path.
|
|
138
|
-
if (!baseUrl.startsWith(
|
|
142
|
+
if (!baseUrl.startsWith('/')) {
|
|
139
143
|
_log.log(_chalk().default.yellow` Base path does not start with a slash. Requests will not be absolute.`);
|
|
140
144
|
}
|
|
141
145
|
}
|
|
142
|
-
const mode = dev ?
|
|
146
|
+
const mode = dev ? 'development' : 'production';
|
|
143
147
|
const publicPath = _path().default.resolve(projectRoot, _env.env.EXPO_PUBLIC_FOLDER);
|
|
144
148
|
const outputPath = _path().default.resolve(projectRoot, outputDir);
|
|
145
149
|
// Write the JS bundles to disk, and get the bundle file names (this could change with async chunk loading support).
|
|
146
150
|
const files = new Map();
|
|
147
|
-
const devServerManager = await
|
|
151
|
+
const devServerManager = await _DevServerManager.DevServerManager.startMetroAsync(projectRoot, {
|
|
148
152
|
minify,
|
|
149
153
|
mode,
|
|
150
154
|
port: 8081,
|
|
@@ -154,19 +158,19 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
154
158
|
maxWorkers
|
|
155
159
|
});
|
|
156
160
|
const devServer = devServerManager.getDefaultDevServer();
|
|
157
|
-
(0, _assert().default)(devServer instanceof
|
|
161
|
+
(0, _assert().default)(devServer instanceof _MetroBundlerDevServer.MetroBundlerDevServer);
|
|
158
162
|
const bundles = {};
|
|
159
163
|
const domComponentAssetsMetadata = {};
|
|
160
164
|
const spaPlatforms = // TODO: Support server and static rendering for server component exports.
|
|
161
|
-
useServerRendering && !devServer.isReactServerComponentsEnabled ? platforms.filter((platform)=>platform !==
|
|
165
|
+
useServerRendering && !devServer.isReactServerComponentsEnabled ? platforms.filter((platform)=>platform !== 'web') : platforms;
|
|
162
166
|
try {
|
|
163
167
|
if (devServer.isReactServerComponentsEnabled) {
|
|
164
168
|
// In RSC mode, we only need these to be in the client dir.
|
|
165
169
|
// TODO: Merge back with other copy after we add SSR.
|
|
166
170
|
try {
|
|
167
|
-
await (0, _publicFolder.copyPublicFolderAsync)(publicPath, _path().default.join(outputPath,
|
|
171
|
+
await (0, _publicFolder.copyPublicFolderAsync)(publicPath, _path().default.join(outputPath, 'client'));
|
|
168
172
|
} catch (error) {
|
|
169
|
-
_log.error(
|
|
173
|
+
_log.error('Failed to copy public directory to dist directory');
|
|
170
174
|
throw error;
|
|
171
175
|
}
|
|
172
176
|
} else {
|
|
@@ -178,7 +182,7 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
178
182
|
// Can be empty during web-only SSG.
|
|
179
183
|
if (spaPlatforms.length) {
|
|
180
184
|
await Promise.all(spaPlatforms.map(async (platform)=>{
|
|
181
|
-
var
|
|
185
|
+
var _exp_experiments;
|
|
182
186
|
// Assert early so the user doesn't have to wait until bundling is complete to find out that
|
|
183
187
|
// Hermes won't be available.
|
|
184
188
|
const isHermes = (0, _exportHermes.isEnableHermesManaged)(exp, platform);
|
|
@@ -188,16 +192,16 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
188
192
|
// Run metro bundler and create the JS bundles/source maps.
|
|
189
193
|
const bundle = await devServer.nativeExportBundleAsync({
|
|
190
194
|
platform,
|
|
191
|
-
splitChunks: !_env.env.EXPO_NO_BUNDLE_SPLITTING && (devServer.isReactServerComponentsEnabled && !bytecode || platform ===
|
|
192
|
-
mainModuleName: (0,
|
|
195
|
+
splitChunks: !_env.env.EXPO_NO_BUNDLE_SPLITTING && (devServer.isReactServerComponentsEnabled && !bytecode || platform === 'web'),
|
|
196
|
+
mainModuleName: (0, _ManifestMiddleware.getEntryWithServerRoot)(projectRoot, {
|
|
193
197
|
platform,
|
|
194
198
|
pkg: projectConfig.pkg
|
|
195
199
|
}),
|
|
196
|
-
mode: dev ?
|
|
197
|
-
engine: isHermes ?
|
|
200
|
+
mode: dev ? 'development' : 'production',
|
|
201
|
+
engine: isHermes ? 'hermes' : undefined,
|
|
198
202
|
serializerIncludeMaps: sourceMaps,
|
|
199
203
|
bytecode: bytecode && isHermes,
|
|
200
|
-
reactCompiler: !!((
|
|
204
|
+
reactCompiler: !!((_exp_experiments = exp.experiments) == null ? void 0 : _exp_experiments.reactCompiler)
|
|
201
205
|
}, files);
|
|
202
206
|
bundles[platform] = bundle;
|
|
203
207
|
(0, _saveAssets.getFilesFromSerialAssets)(bundle.artifacts, {
|
|
@@ -209,7 +213,7 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
209
213
|
const expoDomComponentReferences = bundle.artifacts.map((artifact)=>Array.isArray(artifact.metadata.expoDomComponentReferences) ? artifact.metadata.expoDomComponentReferences : []).flat();
|
|
210
214
|
await Promise.all(// TODO: Make a version of this which uses `this.metro.getBundler().buildGraphForEntries([])` to bundle all the DOM components at once.
|
|
211
215
|
expoDomComponentReferences.map(async (filePath)=>{
|
|
212
|
-
const { bundle: platformDomComponentsBundle
|
|
216
|
+
const { bundle: platformDomComponentsBundle, htmlOutputName } = await (0, _exportDomComponents.exportDomComponentAsync)({
|
|
213
217
|
filePath,
|
|
214
218
|
projectRoot,
|
|
215
219
|
dev,
|
|
@@ -234,10 +238,10 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
234
238
|
...(0, _exportDomComponents.transformDomEntryForMd5Filename)({
|
|
235
239
|
files,
|
|
236
240
|
htmlOutputName
|
|
237
|
-
})
|
|
241
|
+
})
|
|
238
242
|
];
|
|
239
243
|
}));
|
|
240
|
-
if (platform ===
|
|
244
|
+
if (platform === 'web') {
|
|
241
245
|
// TODO: Unify with exportStaticAsync
|
|
242
246
|
// TODO: Maybe move to the serializer.
|
|
243
247
|
let html = await (0, _serializeHtml.serializeHtmlWithAssets)({
|
|
@@ -264,23 +268,23 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
264
268
|
templateHtml = html;
|
|
265
269
|
// Generate SPA-styled HTML file.
|
|
266
270
|
// If web exists, then write the template HTML file.
|
|
267
|
-
files.set(
|
|
271
|
+
files.set('index.html', {
|
|
268
272
|
contents: html,
|
|
269
|
-
targetDomain: devServer.isReactServerComponentsEnabled ?
|
|
273
|
+
targetDomain: devServer.isReactServerComponentsEnabled ? 'server' : 'client'
|
|
270
274
|
});
|
|
271
275
|
}
|
|
272
276
|
}));
|
|
273
277
|
if (devServer.isReactServerComponentsEnabled) {
|
|
274
|
-
const isWeb = platforms.includes(
|
|
278
|
+
const isWeb = platforms.includes('web');
|
|
275
279
|
await (0, _exportStaticAsync.exportApiRoutesStandaloneAsync)(devServer, {
|
|
276
280
|
files,
|
|
277
|
-
platform:
|
|
281
|
+
platform: 'web',
|
|
278
282
|
apiRoutesOnly: !isWeb,
|
|
279
283
|
templateHtml
|
|
280
284
|
});
|
|
281
285
|
}
|
|
282
286
|
// TODO: Use same asset system across platforms again.
|
|
283
|
-
const { assets
|
|
287
|
+
const { assets, embeddedHashSet } = await (0, _exportAssets.exportAssetsAsync)(projectRoot, {
|
|
284
288
|
files,
|
|
285
289
|
exp,
|
|
286
290
|
outputDir: outputPath,
|
|
@@ -288,17 +292,17 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
288
292
|
baseUrl
|
|
289
293
|
});
|
|
290
294
|
if (dumpAssetmap) {
|
|
291
|
-
_log.log(
|
|
292
|
-
files.set(
|
|
295
|
+
_log.log('Creating asset map');
|
|
296
|
+
files.set('assetmap.json', {
|
|
293
297
|
contents: JSON.stringify((0, _writeContents.createAssetMap)({
|
|
294
298
|
assets
|
|
295
299
|
}))
|
|
296
300
|
});
|
|
297
301
|
}
|
|
298
|
-
const targetDomain = devServer.isReactServerComponentsEnabled ?
|
|
302
|
+
const targetDomain = devServer.isReactServerComponentsEnabled ? 'client/' : '';
|
|
299
303
|
const fileNames = Object.fromEntries(Object.entries(bundles).map(([platform, bundle])=>[
|
|
300
304
|
platform,
|
|
301
|
-
bundle.artifacts.filter((asset)=>asset.type ===
|
|
305
|
+
bundle.artifacts.filter((asset)=>asset.type === 'js').map((asset)=>targetDomain + asset.filename)
|
|
302
306
|
]));
|
|
303
307
|
// Generate a `metadata.json` for EAS Update.
|
|
304
308
|
const contents = (0, _createMetadataJson.createMetadataJson)({
|
|
@@ -307,37 +311,37 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
307
311
|
embeddedHashSet,
|
|
308
312
|
domComponentAssetsMetadata
|
|
309
313
|
});
|
|
310
|
-
files.set(
|
|
314
|
+
files.set('metadata.json', {
|
|
311
315
|
contents: JSON.stringify(contents)
|
|
312
316
|
});
|
|
313
317
|
}
|
|
314
318
|
// Additional web-only steps...
|
|
315
|
-
if (platforms.includes(
|
|
316
|
-
var
|
|
317
|
-
const exportServer = ((
|
|
319
|
+
if (platforms.includes('web') && useServerRendering) {
|
|
320
|
+
var _exp_web2;
|
|
321
|
+
const exportServer = ((_exp_web2 = exp.web) == null ? void 0 : _exp_web2.output) === 'server';
|
|
318
322
|
if (exportServer) {
|
|
319
323
|
// TODO: Remove when this is abstracted into the files map
|
|
320
|
-
await (0, _publicFolder.copyPublicFolderAsync)(publicPath, _path().default.resolve(outputPath,
|
|
324
|
+
await (0, _publicFolder.copyPublicFolderAsync)(publicPath, _path().default.resolve(outputPath, 'client'));
|
|
321
325
|
}
|
|
322
326
|
if (skipSSG) {
|
|
323
|
-
_log.log(
|
|
327
|
+
_log.log('Skipping static site generation');
|
|
324
328
|
await (0, _exportStaticAsync.exportApiRoutesStandaloneAsync)(devServer, {
|
|
325
329
|
files,
|
|
326
|
-
platform:
|
|
330
|
+
platform: 'web',
|
|
327
331
|
apiRoutesOnly: true
|
|
328
332
|
});
|
|
329
333
|
// Output a placeholder index.html if one doesn't exist in the public directory.
|
|
330
334
|
// This ensures native + API routes have some content at the root URL.
|
|
331
|
-
const placeholderIndex = _path().default.resolve(outputPath,
|
|
335
|
+
const placeholderIndex = _path().default.resolve(outputPath, 'client/index.html');
|
|
332
336
|
if (!_fs().default.existsSync(placeholderIndex)) {
|
|
333
|
-
files.set(
|
|
337
|
+
files.set('index.html', {
|
|
334
338
|
contents: `<html><body></body></html>`,
|
|
335
|
-
targetDomain:
|
|
339
|
+
targetDomain: 'client'
|
|
336
340
|
});
|
|
337
341
|
}
|
|
338
342
|
} else if (// TODO: Support static export with RSC.
|
|
339
343
|
!devServer.isReactServerComponentsEnabled) {
|
|
340
|
-
var
|
|
344
|
+
var _exp_experiments;
|
|
341
345
|
await (0, _exportStaticAsync.exportFromServerAsync)(projectRoot, devServer, {
|
|
342
346
|
mode,
|
|
343
347
|
files,
|
|
@@ -347,7 +351,7 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
347
351
|
baseUrl,
|
|
348
352
|
includeSourceMaps: sourceMaps,
|
|
349
353
|
routerRoot: (0, _router.getRouterDirectoryModuleIdWithManifest)(projectRoot, exp),
|
|
350
|
-
reactCompiler: !!((
|
|
354
|
+
reactCompiler: !!((_exp_experiments = exp.experiments) == null ? void 0 : _exp_experiments.reactCompiler),
|
|
351
355
|
exportServer,
|
|
352
356
|
maxWorkers,
|
|
353
357
|
isExporting: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/export/exportApp.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport type { Platform } from '@expo/config';\nimport assert from 'assert';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { type PlatformMetadata, createMetadataJson } from './createMetadataJson';\nimport { exportAssetsAsync } from './exportAssets';\nimport {\n addDomBundleToMetadataAsync,\n exportDomComponentAsync,\n transformNativeBundleForMd5Filename,\n transformDomEntryForMd5Filename,\n} from './exportDomComponents';\nimport { assertEngineMismatchAsync, isEnableHermesManaged } from './exportHermes';\nimport { exportApiRoutesStandaloneAsync, exportFromServerAsync } from './exportStaticAsync';\nimport { getVirtualFaviconAssetsAsync } from './favicon';\nimport { getPublicExpoManifestAsync } from './getPublicExpoManifest';\nimport { copyPublicFolderAsync } from './publicFolder';\nimport { Options } from './resolveOptions';\nimport {\n ExportAssetMap,\n BundleOutput,\n getFilesFromSerialAssets,\n persistMetroFilesAsync,\n} from './saveAssets';\nimport { createAssetMap } from './writeContents';\nimport * as Log from '../log';\nimport { WebSupportProjectPrerequisite } from '../start/doctor/web/WebSupportProjectPrerequisite';\nimport { DevServerManager } from '../start/server/DevServerManager';\nimport { MetroBundlerDevServer } from '../start/server/metro/MetroBundlerDevServer';\nimport { getRouterDirectoryModuleIdWithManifest } from '../start/server/metro/router';\nimport { serializeHtmlWithAssets } from '../start/server/metro/serializeHtml';\nimport { getEntryWithServerRoot } from '../start/server/middleware/ManifestMiddleware';\nimport { getBaseUrlFromExpoConfig } from '../start/server/middleware/metroOptions';\nimport { createTemplateHtmlFromExpoConfigAsync } from '../start/server/webTemplate';\nimport { env } from '../utils/env';\nimport { CommandError } from '../utils/errors';\nimport { setNodeEnv } from '../utils/nodeEnv';\n\nexport async function exportAppAsync(\n projectRoot: string,\n {\n platforms,\n outputDir,\n clear,\n dev,\n dumpAssetmap,\n sourceMaps,\n minify,\n bytecode,\n maxWorkers,\n skipSSG,\n }: Pick<\n Options,\n | 'dumpAssetmap'\n | 'sourceMaps'\n | 'dev'\n | 'clear'\n | 'outputDir'\n | 'platforms'\n | 'minify'\n | 'bytecode'\n | 'maxWorkers'\n | 'skipSSG'\n >\n): Promise<void> {\n setNodeEnv(dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n\n const projectConfig = getConfig(projectRoot);\n const exp = await getPublicExpoManifestAsync(projectRoot, {\n // Web doesn't require validation.\n skipValidation: platforms.length === 1 && platforms[0] === 'web',\n });\n\n if (platforms.includes('web')) {\n await new WebSupportProjectPrerequisite(projectRoot).assertAsync();\n }\n\n const useServerRendering = ['static', 'server'].includes(exp.web?.output ?? '');\n\n if (skipSSG && exp.web?.output !== 'server') {\n throw new CommandError('--no-ssg can only be used with `web.output: server`');\n }\n\n const baseUrl = getBaseUrlFromExpoConfig(exp);\n\n if (!bytecode && (platforms.includes('ios') || platforms.includes('android'))) {\n Log.warn(\n `Bytecode makes the app startup faster, disabling bytecode is highly discouraged and should only be used for debugging purposes.`\n );\n }\n\n // Print out logs\n if (baseUrl) {\n Log.log();\n Log.log(chalk.gray`Using (experimental) base path: ${baseUrl}`);\n // Warn if not using an absolute path.\n if (!baseUrl.startsWith('/')) {\n Log.log(\n chalk.yellow` Base path does not start with a slash. Requests will not be absolute.`\n );\n }\n }\n\n const mode = dev ? 'development' : 'production';\n const publicPath = path.resolve(projectRoot, env.EXPO_PUBLIC_FOLDER);\n const outputPath = path.resolve(projectRoot, outputDir);\n\n // Write the JS bundles to disk, and get the bundle file names (this could change with async chunk loading support).\n\n const files: ExportAssetMap = new Map();\n\n const devServerManager = await DevServerManager.startMetroAsync(projectRoot, {\n minify,\n mode,\n port: 8081,\n isExporting: true,\n location: {},\n resetDevServer: clear,\n maxWorkers,\n });\n\n const devServer = devServerManager.getDefaultDevServer();\n assert(devServer instanceof MetroBundlerDevServer);\n\n const bundles: Partial<Record<Platform, BundleOutput>> = {};\n const domComponentAssetsMetadata: Partial<Record<Platform, PlatformMetadata['assets']>> = {};\n\n const spaPlatforms =\n // TODO: Support server and static rendering for server component exports.\n useServerRendering && !devServer.isReactServerComponentsEnabled\n ? platforms.filter((platform) => platform !== 'web')\n : platforms;\n\n try {\n if (devServer.isReactServerComponentsEnabled) {\n // In RSC mode, we only need these to be in the client dir.\n // TODO: Merge back with other copy after we add SSR.\n try {\n await copyPublicFolderAsync(publicPath, path.join(outputPath, 'client'));\n } catch (error) {\n Log.error('Failed to copy public directory to dist directory');\n throw error;\n }\n } else {\n // NOTE(kitten): The public folder is currently always copied, regardless of targetDomain\n // split. Hence, there's another separate `copyPublicFolderAsync` call below for `web`\n await copyPublicFolderAsync(publicPath, outputPath);\n }\n\n let templateHtml: string | undefined;\n // Can be empty during web-only SSG.\n if (spaPlatforms.length) {\n await Promise.all(\n spaPlatforms.map(async (platform) => {\n // Assert early so the user doesn't have to wait until bundling is complete to find out that\n // Hermes won't be available.\n const isHermes = isEnableHermesManaged(exp, platform);\n if (isHermes) {\n await assertEngineMismatchAsync(projectRoot, exp, platform);\n }\n\n // Run metro bundler and create the JS bundles/source maps.\n const bundle = await devServer.nativeExportBundleAsync(\n {\n platform,\n splitChunks:\n !env.EXPO_NO_BUNDLE_SPLITTING &&\n ((devServer.isReactServerComponentsEnabled && !bytecode) || platform === 'web'),\n mainModuleName: getEntryWithServerRoot(projectRoot, {\n platform,\n pkg: projectConfig.pkg,\n }),\n mode: dev ? 'development' : 'production',\n engine: isHermes ? 'hermes' : undefined,\n serializerIncludeMaps: sourceMaps,\n bytecode: bytecode && isHermes,\n reactCompiler: !!exp.experiments?.reactCompiler,\n },\n files\n );\n\n bundles[platform] = bundle;\n\n getFilesFromSerialAssets(bundle.artifacts, {\n includeSourceMaps: sourceMaps,\n files,\n isServerHosted: devServer.isReactServerComponentsEnabled,\n });\n\n // TODO: Remove duplicates...\n const expoDomComponentReferences = bundle.artifacts\n .map((artifact) =>\n Array.isArray(artifact.metadata.expoDomComponentReferences)\n ? artifact.metadata.expoDomComponentReferences\n : []\n )\n .flat();\n await Promise.all(\n // TODO: Make a version of this which uses `this.metro.getBundler().buildGraphForEntries([])` to bundle all the DOM components at once.\n expoDomComponentReferences.map(async (filePath) => {\n const { bundle: platformDomComponentsBundle, htmlOutputName } =\n await exportDomComponentAsync({\n filePath,\n projectRoot,\n dev,\n devServer,\n isHermes,\n includeSourceMaps: sourceMaps,\n exp,\n files,\n useMd5Filename: true,\n });\n\n // Merge the assets from the DOM component into the output assets.\n // @ts-expect-error: mutate assets\n bundle.assets.push(...platformDomComponentsBundle.assets);\n\n transformNativeBundleForMd5Filename({\n domComponentReference: filePath,\n nativeBundle: bundle,\n files,\n htmlOutputName,\n });\n domComponentAssetsMetadata[platform] = [\n ...(await addDomBundleToMetadataAsync(platformDomComponentsBundle)),\n ...transformDomEntryForMd5Filename({\n files,\n htmlOutputName,\n }),\n ];\n })\n );\n\n if (platform === 'web') {\n // TODO: Unify with exportStaticAsync\n // TODO: Maybe move to the serializer.\n let html = await serializeHtmlWithAssets({\n isExporting: true,\n resources: bundle.artifacts,\n template: await createTemplateHtmlFromExpoConfigAsync(projectRoot, {\n scripts: [],\n cssLinks: [],\n exp: projectConfig.exp,\n }),\n baseUrl,\n });\n\n // Add the favicon assets to the HTML.\n const modifyHtml = await getVirtualFaviconAssetsAsync(projectRoot, {\n outputDir,\n baseUrl,\n files,\n exp: projectConfig.exp,\n });\n if (modifyHtml) {\n html = modifyHtml(html);\n }\n\n // HACK: This is used for adding SSR shims in React Server Components.\n templateHtml = html;\n\n // Generate SPA-styled HTML file.\n // If web exists, then write the template HTML file.\n files.set('index.html', {\n contents: html,\n targetDomain: devServer.isReactServerComponentsEnabled ? 'server' : 'client',\n });\n }\n })\n );\n\n if (devServer.isReactServerComponentsEnabled) {\n const isWeb = platforms.includes('web');\n\n await exportApiRoutesStandaloneAsync(devServer, {\n files,\n platform: 'web',\n apiRoutesOnly: !isWeb,\n templateHtml,\n });\n }\n\n // TODO: Use same asset system across platforms again.\n const { assets, embeddedHashSet } = await exportAssetsAsync(projectRoot, {\n files,\n exp,\n outputDir: outputPath,\n bundles,\n baseUrl,\n });\n\n if (dumpAssetmap) {\n Log.log('Creating asset map');\n files.set('assetmap.json', { contents: JSON.stringify(createAssetMap({ assets })) });\n }\n\n const targetDomain = devServer.isReactServerComponentsEnabled ? 'client/' : '';\n const fileNames = Object.fromEntries(\n Object.entries(bundles).map(([platform, bundle]) => [\n platform,\n bundle.artifacts\n .filter((asset) => asset.type === 'js')\n .map((asset) => targetDomain + asset.filename),\n ])\n );\n\n // Generate a `metadata.json` for EAS Update.\n const contents = createMetadataJson({\n bundles,\n fileNames,\n embeddedHashSet,\n domComponentAssetsMetadata,\n });\n files.set('metadata.json', { contents: JSON.stringify(contents) });\n }\n\n // Additional web-only steps...\n\n if (platforms.includes('web') && useServerRendering) {\n const exportServer = exp.web?.output === 'server';\n\n if (exportServer) {\n // TODO: Remove when this is abstracted into the files map\n await copyPublicFolderAsync(publicPath, path.resolve(outputPath, 'client'));\n }\n\n if (skipSSG) {\n Log.log('Skipping static site generation');\n await exportApiRoutesStandaloneAsync(devServer, {\n files,\n platform: 'web',\n apiRoutesOnly: true,\n });\n\n // Output a placeholder index.html if one doesn't exist in the public directory.\n // This ensures native + API routes have some content at the root URL.\n const placeholderIndex = path.resolve(outputPath, 'client/index.html');\n if (!fs.existsSync(placeholderIndex)) {\n files.set('index.html', {\n contents: `<html><body></body></html>`,\n targetDomain: 'client',\n });\n }\n } else if (\n // TODO: Support static export with RSC.\n !devServer.isReactServerComponentsEnabled\n ) {\n await exportFromServerAsync(projectRoot, devServer, {\n mode,\n files,\n clear: !!clear,\n outputDir: outputPath,\n minify,\n baseUrl,\n includeSourceMaps: sourceMaps,\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n reactCompiler: !!exp.experiments?.reactCompiler,\n exportServer,\n maxWorkers,\n isExporting: true,\n exp: projectConfig.exp,\n });\n }\n }\n } finally {\n await devServerManager.stopAsync();\n }\n\n // Write all files at the end for unified logging.\n await persistMetroFilesAsync(files, outputPath);\n}\n"],"names":["exportAppAsync","projectRoot","platforms","outputDir","clear","dev","dumpAssetmap","sourceMaps","minify","bytecode","maxWorkers","skipSSG","exp","setNodeEnv","require","load","projectConfig","getConfig","getPublicExpoManifestAsync","skipValidation","length","includes","WebSupportProjectPrerequisite","assertAsync","useServerRendering","web","output","CommandError","baseUrl","getBaseUrlFromExpoConfig","Log","warn","log","chalk","gray","startsWith","yellow","mode","publicPath","path","resolve","env","EXPO_PUBLIC_FOLDER","outputPath","files","Map","devServerManager","DevServerManager","startMetroAsync","port","isExporting","location","resetDevServer","devServer","getDefaultDevServer","assert","MetroBundlerDevServer","bundles","domComponentAssetsMetadata","spaPlatforms","isReactServerComponentsEnabled","filter","platform","copyPublicFolderAsync","join","error","templateHtml","Promise","all","map","isHermes","isEnableHermesManaged","assertEngineMismatchAsync","bundle","nativeExportBundleAsync","splitChunks","EXPO_NO_BUNDLE_SPLITTING","mainModuleName","getEntryWithServerRoot","pkg","engine","undefined","serializerIncludeMaps","reactCompiler","experiments","getFilesFromSerialAssets","artifacts","includeSourceMaps","isServerHosted","expoDomComponentReferences","artifact","Array","isArray","metadata","flat","filePath","platformDomComponentsBundle","htmlOutputName","exportDomComponentAsync","useMd5Filename","assets","push","transformNativeBundleForMd5Filename","domComponentReference","nativeBundle","addDomBundleToMetadataAsync","transformDomEntryForMd5Filename","html","serializeHtmlWithAssets","resources","template","createTemplateHtmlFromExpoConfigAsync","scripts","cssLinks","modifyHtml","getVirtualFaviconAssetsAsync","set","contents","targetDomain","isWeb","exportApiRoutesStandaloneAsync","apiRoutesOnly","embeddedHashSet","exportAssetsAsync","JSON","stringify","createAssetMap","fileNames","Object","fromEntries","entries","asset","type","filename","createMetadataJson","exportServer","placeholderIndex","fs","existsSync","exportFromServerAsync","routerRoot","getRouterDirectoryModuleIdWithManifest","stopAsync","persistMetroFilesAsync"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/export/exportApp.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport type { Platform } from '@expo/config';\nimport assert from 'assert';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { type PlatformMetadata, createMetadataJson } from './createMetadataJson';\nimport { exportAssetsAsync } from './exportAssets';\nimport {\n addDomBundleToMetadataAsync,\n exportDomComponentAsync,\n transformNativeBundleForMd5Filename,\n transformDomEntryForMd5Filename,\n} from './exportDomComponents';\nimport { assertEngineMismatchAsync, isEnableHermesManaged } from './exportHermes';\nimport { exportApiRoutesStandaloneAsync, exportFromServerAsync } from './exportStaticAsync';\nimport { getVirtualFaviconAssetsAsync } from './favicon';\nimport { getPublicExpoManifestAsync } from './getPublicExpoManifest';\nimport { copyPublicFolderAsync } from './publicFolder';\nimport { Options } from './resolveOptions';\nimport {\n ExportAssetMap,\n BundleOutput,\n getFilesFromSerialAssets,\n persistMetroFilesAsync,\n} from './saveAssets';\nimport { createAssetMap } from './writeContents';\nimport * as Log from '../log';\nimport { WebSupportProjectPrerequisite } from '../start/doctor/web/WebSupportProjectPrerequisite';\nimport { DevServerManager } from '../start/server/DevServerManager';\nimport { MetroBundlerDevServer } from '../start/server/metro/MetroBundlerDevServer';\nimport { getRouterDirectoryModuleIdWithManifest } from '../start/server/metro/router';\nimport { serializeHtmlWithAssets } from '../start/server/metro/serializeHtml';\nimport { getEntryWithServerRoot } from '../start/server/middleware/ManifestMiddleware';\nimport { getBaseUrlFromExpoConfig } from '../start/server/middleware/metroOptions';\nimport { createTemplateHtmlFromExpoConfigAsync } from '../start/server/webTemplate';\nimport { env } from '../utils/env';\nimport { CommandError } from '../utils/errors';\nimport { setNodeEnv } from '../utils/nodeEnv';\n\nexport async function exportAppAsync(\n projectRoot: string,\n {\n platforms,\n outputDir,\n clear,\n dev,\n dumpAssetmap,\n sourceMaps,\n minify,\n bytecode,\n maxWorkers,\n skipSSG,\n }: Pick<\n Options,\n | 'dumpAssetmap'\n | 'sourceMaps'\n | 'dev'\n | 'clear'\n | 'outputDir'\n | 'platforms'\n | 'minify'\n | 'bytecode'\n | 'maxWorkers'\n | 'skipSSG'\n >\n): Promise<void> {\n setNodeEnv(dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n\n const projectConfig = getConfig(projectRoot);\n const exp = await getPublicExpoManifestAsync(projectRoot, {\n // Web doesn't require validation.\n skipValidation: platforms.length === 1 && platforms[0] === 'web',\n });\n\n if (platforms.includes('web')) {\n await new WebSupportProjectPrerequisite(projectRoot).assertAsync();\n }\n\n const useServerRendering = ['static', 'server'].includes(exp.web?.output ?? '');\n\n if (skipSSG && exp.web?.output !== 'server') {\n throw new CommandError('--no-ssg can only be used with `web.output: server`');\n }\n\n const baseUrl = getBaseUrlFromExpoConfig(exp);\n\n if (!bytecode && (platforms.includes('ios') || platforms.includes('android'))) {\n Log.warn(\n `Bytecode makes the app startup faster, disabling bytecode is highly discouraged and should only be used for debugging purposes.`\n );\n }\n\n // Print out logs\n if (baseUrl) {\n Log.log();\n Log.log(chalk.gray`Using (experimental) base path: ${baseUrl}`);\n // Warn if not using an absolute path.\n if (!baseUrl.startsWith('/')) {\n Log.log(\n chalk.yellow` Base path does not start with a slash. Requests will not be absolute.`\n );\n }\n }\n\n const mode = dev ? 'development' : 'production';\n const publicPath = path.resolve(projectRoot, env.EXPO_PUBLIC_FOLDER);\n const outputPath = path.resolve(projectRoot, outputDir);\n\n // Write the JS bundles to disk, and get the bundle file names (this could change with async chunk loading support).\n\n const files: ExportAssetMap = new Map();\n\n const devServerManager = await DevServerManager.startMetroAsync(projectRoot, {\n minify,\n mode,\n port: 8081,\n isExporting: true,\n location: {},\n resetDevServer: clear,\n maxWorkers,\n });\n\n const devServer = devServerManager.getDefaultDevServer();\n assert(devServer instanceof MetroBundlerDevServer);\n\n const bundles: Partial<Record<Platform, BundleOutput>> = {};\n const domComponentAssetsMetadata: Partial<Record<Platform, PlatformMetadata['assets']>> = {};\n\n const spaPlatforms =\n // TODO: Support server and static rendering for server component exports.\n useServerRendering && !devServer.isReactServerComponentsEnabled\n ? platforms.filter((platform) => platform !== 'web')\n : platforms;\n\n try {\n if (devServer.isReactServerComponentsEnabled) {\n // In RSC mode, we only need these to be in the client dir.\n // TODO: Merge back with other copy after we add SSR.\n try {\n await copyPublicFolderAsync(publicPath, path.join(outputPath, 'client'));\n } catch (error) {\n Log.error('Failed to copy public directory to dist directory');\n throw error;\n }\n } else {\n // NOTE(kitten): The public folder is currently always copied, regardless of targetDomain\n // split. Hence, there's another separate `copyPublicFolderAsync` call below for `web`\n await copyPublicFolderAsync(publicPath, outputPath);\n }\n\n let templateHtml: string | undefined;\n // Can be empty during web-only SSG.\n if (spaPlatforms.length) {\n await Promise.all(\n spaPlatforms.map(async (platform) => {\n // Assert early so the user doesn't have to wait until bundling is complete to find out that\n // Hermes won't be available.\n const isHermes = isEnableHermesManaged(exp, platform);\n if (isHermes) {\n await assertEngineMismatchAsync(projectRoot, exp, platform);\n }\n\n // Run metro bundler and create the JS bundles/source maps.\n const bundle = await devServer.nativeExportBundleAsync(\n {\n platform,\n splitChunks:\n !env.EXPO_NO_BUNDLE_SPLITTING &&\n ((devServer.isReactServerComponentsEnabled && !bytecode) || platform === 'web'),\n mainModuleName: getEntryWithServerRoot(projectRoot, {\n platform,\n pkg: projectConfig.pkg,\n }),\n mode: dev ? 'development' : 'production',\n engine: isHermes ? 'hermes' : undefined,\n serializerIncludeMaps: sourceMaps,\n bytecode: bytecode && isHermes,\n reactCompiler: !!exp.experiments?.reactCompiler,\n },\n files\n );\n\n bundles[platform] = bundle;\n\n getFilesFromSerialAssets(bundle.artifacts, {\n includeSourceMaps: sourceMaps,\n files,\n isServerHosted: devServer.isReactServerComponentsEnabled,\n });\n\n // TODO: Remove duplicates...\n const expoDomComponentReferences = bundle.artifacts\n .map((artifact) =>\n Array.isArray(artifact.metadata.expoDomComponentReferences)\n ? artifact.metadata.expoDomComponentReferences\n : []\n )\n .flat();\n await Promise.all(\n // TODO: Make a version of this which uses `this.metro.getBundler().buildGraphForEntries([])` to bundle all the DOM components at once.\n expoDomComponentReferences.map(async (filePath) => {\n const { bundle: platformDomComponentsBundle, htmlOutputName } =\n await exportDomComponentAsync({\n filePath,\n projectRoot,\n dev,\n devServer,\n isHermes,\n includeSourceMaps: sourceMaps,\n exp,\n files,\n useMd5Filename: true,\n });\n\n // Merge the assets from the DOM component into the output assets.\n // @ts-expect-error: mutate assets\n bundle.assets.push(...platformDomComponentsBundle.assets);\n\n transformNativeBundleForMd5Filename({\n domComponentReference: filePath,\n nativeBundle: bundle,\n files,\n htmlOutputName,\n });\n domComponentAssetsMetadata[platform] = [\n ...(await addDomBundleToMetadataAsync(platformDomComponentsBundle)),\n ...transformDomEntryForMd5Filename({\n files,\n htmlOutputName,\n }),\n ];\n })\n );\n\n if (platform === 'web') {\n // TODO: Unify with exportStaticAsync\n // TODO: Maybe move to the serializer.\n let html = await serializeHtmlWithAssets({\n isExporting: true,\n resources: bundle.artifacts,\n template: await createTemplateHtmlFromExpoConfigAsync(projectRoot, {\n scripts: [],\n cssLinks: [],\n exp: projectConfig.exp,\n }),\n baseUrl,\n });\n\n // Add the favicon assets to the HTML.\n const modifyHtml = await getVirtualFaviconAssetsAsync(projectRoot, {\n outputDir,\n baseUrl,\n files,\n exp: projectConfig.exp,\n });\n if (modifyHtml) {\n html = modifyHtml(html);\n }\n\n // HACK: This is used for adding SSR shims in React Server Components.\n templateHtml = html;\n\n // Generate SPA-styled HTML file.\n // If web exists, then write the template HTML file.\n files.set('index.html', {\n contents: html,\n targetDomain: devServer.isReactServerComponentsEnabled ? 'server' : 'client',\n });\n }\n })\n );\n\n if (devServer.isReactServerComponentsEnabled) {\n const isWeb = platforms.includes('web');\n\n await exportApiRoutesStandaloneAsync(devServer, {\n files,\n platform: 'web',\n apiRoutesOnly: !isWeb,\n templateHtml,\n });\n }\n\n // TODO: Use same asset system across platforms again.\n const { assets, embeddedHashSet } = await exportAssetsAsync(projectRoot, {\n files,\n exp,\n outputDir: outputPath,\n bundles,\n baseUrl,\n });\n\n if (dumpAssetmap) {\n Log.log('Creating asset map');\n files.set('assetmap.json', { contents: JSON.stringify(createAssetMap({ assets })) });\n }\n\n const targetDomain = devServer.isReactServerComponentsEnabled ? 'client/' : '';\n const fileNames = Object.fromEntries(\n Object.entries(bundles).map(([platform, bundle]) => [\n platform,\n bundle.artifacts\n .filter((asset) => asset.type === 'js')\n .map((asset) => targetDomain + asset.filename),\n ])\n );\n\n // Generate a `metadata.json` for EAS Update.\n const contents = createMetadataJson({\n bundles,\n fileNames,\n embeddedHashSet,\n domComponentAssetsMetadata,\n });\n files.set('metadata.json', { contents: JSON.stringify(contents) });\n }\n\n // Additional web-only steps...\n\n if (platforms.includes('web') && useServerRendering) {\n const exportServer = exp.web?.output === 'server';\n\n if (exportServer) {\n // TODO: Remove when this is abstracted into the files map\n await copyPublicFolderAsync(publicPath, path.resolve(outputPath, 'client'));\n }\n\n if (skipSSG) {\n Log.log('Skipping static site generation');\n await exportApiRoutesStandaloneAsync(devServer, {\n files,\n platform: 'web',\n apiRoutesOnly: true,\n });\n\n // Output a placeholder index.html if one doesn't exist in the public directory.\n // This ensures native + API routes have some content at the root URL.\n const placeholderIndex = path.resolve(outputPath, 'client/index.html');\n if (!fs.existsSync(placeholderIndex)) {\n files.set('index.html', {\n contents: `<html><body></body></html>`,\n targetDomain: 'client',\n });\n }\n } else if (\n // TODO: Support static export with RSC.\n !devServer.isReactServerComponentsEnabled\n ) {\n await exportFromServerAsync(projectRoot, devServer, {\n mode,\n files,\n clear: !!clear,\n outputDir: outputPath,\n minify,\n baseUrl,\n includeSourceMaps: sourceMaps,\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n reactCompiler: !!exp.experiments?.reactCompiler,\n exportServer,\n maxWorkers,\n isExporting: true,\n exp: projectConfig.exp,\n });\n }\n }\n } finally {\n await devServerManager.stopAsync();\n }\n\n // Write all files at the end for unified logging.\n await persistMetroFilesAsync(files, outputPath);\n}\n"],"names":["exportAppAsync","projectRoot","platforms","outputDir","clear","dev","dumpAssetmap","sourceMaps","minify","bytecode","maxWorkers","skipSSG","exp","setNodeEnv","require","load","projectConfig","getConfig","getPublicExpoManifestAsync","skipValidation","length","includes","WebSupportProjectPrerequisite","assertAsync","useServerRendering","web","output","CommandError","baseUrl","getBaseUrlFromExpoConfig","Log","warn","log","chalk","gray","startsWith","yellow","mode","publicPath","path","resolve","env","EXPO_PUBLIC_FOLDER","outputPath","files","Map","devServerManager","DevServerManager","startMetroAsync","port","isExporting","location","resetDevServer","devServer","getDefaultDevServer","assert","MetroBundlerDevServer","bundles","domComponentAssetsMetadata","spaPlatforms","isReactServerComponentsEnabled","filter","platform","copyPublicFolderAsync","join","error","templateHtml","Promise","all","map","isHermes","isEnableHermesManaged","assertEngineMismatchAsync","bundle","nativeExportBundleAsync","splitChunks","EXPO_NO_BUNDLE_SPLITTING","mainModuleName","getEntryWithServerRoot","pkg","engine","undefined","serializerIncludeMaps","reactCompiler","experiments","getFilesFromSerialAssets","artifacts","includeSourceMaps","isServerHosted","expoDomComponentReferences","artifact","Array","isArray","metadata","flat","filePath","platformDomComponentsBundle","htmlOutputName","exportDomComponentAsync","useMd5Filename","assets","push","transformNativeBundleForMd5Filename","domComponentReference","nativeBundle","addDomBundleToMetadataAsync","transformDomEntryForMd5Filename","html","serializeHtmlWithAssets","resources","template","createTemplateHtmlFromExpoConfigAsync","scripts","cssLinks","modifyHtml","getVirtualFaviconAssetsAsync","set","contents","targetDomain","isWeb","exportApiRoutesStandaloneAsync","apiRoutesOnly","embeddedHashSet","exportAssetsAsync","JSON","stringify","createAssetMap","fileNames","Object","fromEntries","entries","asset","type","filename","createMetadataJson","exportServer","placeholderIndex","fs","existsSync","exportFromServerAsync","routerRoot","getRouterDirectoryModuleIdWithManifest","stopAsync","persistMetroFilesAsync"],"mappings":"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"}
|
|
@@ -9,36 +9,42 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
assetPatternsToBeBundled: ()
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
assetPatternsToBeBundled: function() {
|
|
13
|
+
return assetPatternsToBeBundled;
|
|
14
|
+
},
|
|
15
|
+
exportAssetsAsync: function() {
|
|
16
|
+
return exportAssetsAsync;
|
|
17
|
+
},
|
|
18
|
+
resolveAssetPatternsToBeBundled: function() {
|
|
19
|
+
return resolveAssetPatternsToBeBundled;
|
|
20
|
+
}
|
|
15
21
|
});
|
|
16
22
|
function _fs() {
|
|
17
|
-
const data = /*#__PURE__*/
|
|
23
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
18
24
|
_fs = function() {
|
|
19
25
|
return data;
|
|
20
26
|
};
|
|
21
27
|
return data;
|
|
22
28
|
}
|
|
23
29
|
function _minimatch() {
|
|
24
|
-
const data = /*#__PURE__*/
|
|
30
|
+
const data = /*#__PURE__*/ _interop_require_default(require("minimatch"));
|
|
25
31
|
_minimatch = function() {
|
|
26
32
|
return data;
|
|
27
33
|
};
|
|
28
34
|
return data;
|
|
29
35
|
}
|
|
30
36
|
function _path() {
|
|
31
|
-
const data = /*#__PURE__*/
|
|
37
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
32
38
|
_path = function() {
|
|
33
39
|
return data;
|
|
34
40
|
};
|
|
35
41
|
return data;
|
|
36
42
|
}
|
|
37
43
|
const _persistMetroAssets = require("./persistMetroAssets");
|
|
38
|
-
const _log = /*#__PURE__*/
|
|
44
|
+
const _log = /*#__PURE__*/ _interop_require_wildcard(require("../log"));
|
|
39
45
|
const _resolveAssets = require("../start/server/middleware/resolveAssets");
|
|
40
46
|
const _array = require("../utils/array");
|
|
41
|
-
function
|
|
47
|
+
function _interop_require_default(obj) {
|
|
42
48
|
return obj && obj.__esModule ? obj : {
|
|
43
49
|
default: obj
|
|
44
50
|
};
|
|
@@ -51,7 +57,7 @@ function _getRequireWildcardCache(nodeInterop) {
|
|
|
51
57
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
52
58
|
})(nodeInterop);
|
|
53
59
|
}
|
|
54
|
-
function
|
|
60
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
55
61
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
56
62
|
return obj;
|
|
57
63
|
}
|
|
@@ -64,7 +70,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
64
70
|
if (cache && cache.has(obj)) {
|
|
65
71
|
return cache.get(obj);
|
|
66
72
|
}
|
|
67
|
-
var newObj = {
|
|
73
|
+
var newObj = {
|
|
74
|
+
__proto__: null
|
|
75
|
+
};
|
|
68
76
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
69
77
|
for(var key in obj){
|
|
70
78
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -82,18 +90,18 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
82
90
|
}
|
|
83
91
|
return newObj;
|
|
84
92
|
}
|
|
85
|
-
const debug = require(
|
|
93
|
+
const debug = require('debug')('expo:export:exportAssets');
|
|
86
94
|
function mapAssetHashToAssetString(asset, hash) {
|
|
87
|
-
return
|
|
95
|
+
return 'asset_' + hash + ('type' in asset && asset.type ? '.' + asset.type : '');
|
|
88
96
|
}
|
|
89
97
|
function assetPatternsToBeBundled(exp) {
|
|
90
|
-
var
|
|
98
|
+
var _exp_updates_assetPatternsToBeBundled, _exp_updates, _exp_extra_updates_assetPatternsToBeBundled, _exp_extra_updates, _exp_extra;
|
|
91
99
|
// new location for this key
|
|
92
|
-
if ((
|
|
100
|
+
if ((_exp_updates = exp.updates) == null ? void 0 : (_exp_updates_assetPatternsToBeBundled = _exp_updates.assetPatternsToBeBundled) == null ? void 0 : _exp_updates_assetPatternsToBeBundled.length) {
|
|
93
101
|
return exp.updates.assetPatternsToBeBundled;
|
|
94
102
|
}
|
|
95
103
|
// old, untyped location for this key. we may want to change this to throw in a few SDK versions (deprecated as of SDK 52).
|
|
96
|
-
if ((
|
|
104
|
+
if ((_exp_extra = exp.extra) == null ? void 0 : (_exp_extra_updates = _exp_extra.updates) == null ? void 0 : (_exp_extra_updates_assetPatternsToBeBundled = _exp_extra_updates.assetPatternsToBeBundled) == null ? void 0 : _exp_extra_updates_assetPatternsToBeBundled.length) {
|
|
97
105
|
return exp.extra.updates.assetPatternsToBeBundled;
|
|
98
106
|
}
|
|
99
107
|
return undefined;
|
|
@@ -127,8 +135,8 @@ function assetPatternsToBeBundled(exp) {
|
|
|
127
135
|
const allBundledAssets = assets.map((asset)=>{
|
|
128
136
|
const shouldBundle = shouldBundleAsset(asset, fullPatterns);
|
|
129
137
|
if (shouldBundle) {
|
|
130
|
-
var
|
|
131
|
-
debug(`${shouldBundle ?
|
|
138
|
+
var _asset_files;
|
|
139
|
+
debug(`${shouldBundle ? 'Include' : 'Exclude'} asset ${(_asset_files = asset.files) == null ? void 0 : _asset_files[0]}`);
|
|
132
140
|
return asset.fileHashes.map((hash)=>mapAssetHashToAssetString(asset, hash));
|
|
133
141
|
}
|
|
134
142
|
return [];
|
|
@@ -147,23 +155,23 @@ function resolveAssetPatternsToBeBundled(projectRoot, exp, assets) {
|
|
|
147
155
|
}
|
|
148
156
|
function logPatterns(patterns) {
|
|
149
157
|
// Only log the patterns in debug mode, if they aren't already defined in the app.json, then all files will be targeted.
|
|
150
|
-
_log.log(
|
|
151
|
-
patterns.forEach((p)=>_log.log(
|
|
158
|
+
_log.log('\nProcessing asset bundle patterns:');
|
|
159
|
+
patterns.forEach((p)=>_log.log('- ' + p));
|
|
152
160
|
}
|
|
153
161
|
function shouldBundleAsset(asset, patterns) {
|
|
154
|
-
var
|
|
155
|
-
const file = (
|
|
156
|
-
return !!(
|
|
162
|
+
var _asset_files;
|
|
163
|
+
const file = (_asset_files = asset.files) == null ? void 0 : _asset_files[0];
|
|
164
|
+
return !!('__packager_asset' in asset && asset.__packager_asset && file && patterns.some((pattern)=>(0, _minimatch().default)(file, pattern)));
|
|
157
165
|
}
|
|
158
|
-
async function exportAssetsAsync(projectRoot, { exp
|
|
159
|
-
var
|
|
166
|
+
async function exportAssetsAsync(projectRoot, { exp, outputDir, bundles: { web, ...bundles }, baseUrl, files = new Map() }) {
|
|
167
|
+
var _assets_;
|
|
160
168
|
// NOTE: We use a different system for static web
|
|
161
169
|
if (web) {
|
|
162
170
|
// Save assets like a typical bundler, preserving the file paths on web.
|
|
163
171
|
// TODO: Update React Native Web to support loading files from asset hashes.
|
|
164
172
|
await (0, _persistMetroAssets.persistMetroAssetsAsync)(projectRoot, web.assets, {
|
|
165
173
|
files,
|
|
166
|
-
platform:
|
|
174
|
+
platform: 'web',
|
|
167
175
|
outputDirectory: outputDir,
|
|
168
176
|
baseUrl
|
|
169
177
|
});
|
|
@@ -172,7 +180,7 @@ async function exportAssetsAsync(projectRoot, { exp , outputDir , bundles: { web
|
|
|
172
180
|
let bundledAssetsSet = undefined;
|
|
173
181
|
let filteredAssets = assets;
|
|
174
182
|
const embeddedHashSet = new Set();
|
|
175
|
-
if ((
|
|
183
|
+
if ((_assets_ = assets[0]) == null ? void 0 : _assets_.fileHashes) {
|
|
176
184
|
debug(`Assets = ${JSON.stringify(assets, null, 2)}`);
|
|
177
185
|
// Updates the manifest to reflect additional asset bundling + configs
|
|
178
186
|
// Get only asset strings for assets we will save
|
|
@@ -199,7 +207,7 @@ async function exportAssetsAsync(projectRoot, { exp , outputDir , bundles: { web
|
|
|
199
207
|
const hash = asset.fileHashes[index];
|
|
200
208
|
if (hashes.has(hash)) return;
|
|
201
209
|
hashes.add(hash);
|
|
202
|
-
files.set(_path().default.join(
|
|
210
|
+
files.set(_path().default.join('assets', hash), {
|
|
203
211
|
originFilename: _path().default.relative(projectRoot, fp),
|
|
204
212
|
contents: _fs().default.readFileSync(fp),
|
|
205
213
|
assetId
|