@expo/cli 1.0.0-canary-20250320-7a205d3 → 1.0.0-canary-20250402-161f57b
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 +36 -32
- 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 +55 -37
- 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 +53 -31
- 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 +72 -62
- 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 +68 -64
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +34 -26
- 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 +75 -53
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +73 -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 +64 -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 +705 -479
- 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 +14 -12
- 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 +43 -37
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +70 -53
- 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 +80 -60
- 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 +88 -74
- 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 +37 -33
- 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 +30 -22
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +9 -5
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +293 -280
- 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/createExpoFallbackResolver.js +13 -11
- package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +47 -41
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +31 -27
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +110 -98
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +34 -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 +28 -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 +24 -20
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +87 -81
- 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 +150 -140
- 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 +61 -57
- 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 +16 -15
- 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 +72 -50
- 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 +79 -69
- 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 +12 -8
- 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 +40 -22
- 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 +27 -23
- 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 +41 -35
- 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/multipartMixed.js +13 -11
- package/build/src/utils/multipartMixed.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 +49 -35
- 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 +18 -14
- 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/flushFetchDetached.js +10 -10
- package/build/src/utils/telemetry/clients/flushFetchDetached.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/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 +17 -16
|
@@ -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,30 +111,30 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
107
111
|
}
|
|
108
112
|
return newObj;
|
|
109
113
|
}
|
|
110
|
-
async function exportAppAsync(projectRoot, { platforms
|
|
111
|
-
var
|
|
114
|
+
async function exportAppAsync(projectRoot, { platforms, outputDir, clear, dev, dumpAssetmap, sourceMaps, minify, bytecode, maxWorkers, skipSSG }) {
|
|
115
|
+
var _exp_web, _exp_web1;
|
|
112
116
|
// Force the environment during export and do not allow overriding it.
|
|
113
|
-
const environment = dev ?
|
|
117
|
+
const environment = dev ? 'development' : 'production';
|
|
114
118
|
process.env.NODE_ENV = environment;
|
|
115
119
|
(0, _nodeEnv.setNodeEnv)(environment);
|
|
116
|
-
require(
|
|
120
|
+
require('@expo/env').load(projectRoot);
|
|
117
121
|
const projectConfig = (0, _config().getConfig)(projectRoot);
|
|
118
122
|
const exp = await (0, _getPublicExpoManifest.getPublicExpoManifestAsync)(projectRoot, {
|
|
119
123
|
// Web doesn't require validation.
|
|
120
|
-
skipValidation: platforms.length === 1 && platforms[0] ===
|
|
124
|
+
skipValidation: platforms.length === 1 && platforms[0] === 'web'
|
|
121
125
|
});
|
|
122
|
-
if (platforms.includes(
|
|
123
|
-
await new
|
|
126
|
+
if (platforms.includes('web')) {
|
|
127
|
+
await new _WebSupportProjectPrerequisite.WebSupportProjectPrerequisite(projectRoot).assertAsync();
|
|
124
128
|
}
|
|
125
129
|
const useServerRendering = [
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
].includes(((
|
|
129
|
-
if (skipSSG && ((
|
|
130
|
-
throw new _errors.CommandError(
|
|
130
|
+
'static',
|
|
131
|
+
'server'
|
|
132
|
+
].includes(((_exp_web = exp.web) == null ? void 0 : _exp_web.output) ?? '');
|
|
133
|
+
if (skipSSG && ((_exp_web1 = exp.web) == null ? void 0 : _exp_web1.output) !== 'server') {
|
|
134
|
+
throw new _errors.CommandError('--no-ssg can only be used with `web.output: server`');
|
|
131
135
|
}
|
|
132
136
|
const baseUrl = (0, _metroOptions.getBaseUrlFromExpoConfig)(exp);
|
|
133
|
-
if (!bytecode && (platforms.includes(
|
|
137
|
+
if (!bytecode && (platforms.includes('ios') || platforms.includes('android'))) {
|
|
134
138
|
_log.warn(`Bytecode makes the app startup faster, disabling bytecode is highly discouraged and should only be used for debugging purposes.`);
|
|
135
139
|
}
|
|
136
140
|
// Print out logs
|
|
@@ -138,16 +142,16 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
138
142
|
_log.log();
|
|
139
143
|
_log.log(_chalk().default.gray`Using (experimental) base path: ${baseUrl}`);
|
|
140
144
|
// Warn if not using an absolute path.
|
|
141
|
-
if (!baseUrl.startsWith(
|
|
145
|
+
if (!baseUrl.startsWith('/')) {
|
|
142
146
|
_log.log(_chalk().default.yellow` Base path does not start with a slash. Requests will not be absolute.`);
|
|
143
147
|
}
|
|
144
148
|
}
|
|
145
|
-
const mode = dev ?
|
|
149
|
+
const mode = dev ? 'development' : 'production';
|
|
146
150
|
const publicPath = _path().default.resolve(projectRoot, _env.env.EXPO_PUBLIC_FOLDER);
|
|
147
151
|
const outputPath = _path().default.resolve(projectRoot, outputDir);
|
|
148
152
|
// Write the JS bundles to disk, and get the bundle file names (this could change with async chunk loading support).
|
|
149
153
|
const files = new Map();
|
|
150
|
-
const devServerManager = await
|
|
154
|
+
const devServerManager = await _DevServerManager.DevServerManager.startMetroAsync(projectRoot, {
|
|
151
155
|
minify,
|
|
152
156
|
mode,
|
|
153
157
|
port: 8081,
|
|
@@ -157,19 +161,19 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
157
161
|
maxWorkers
|
|
158
162
|
});
|
|
159
163
|
const devServer = devServerManager.getDefaultDevServer();
|
|
160
|
-
(0, _assert().default)(devServer instanceof
|
|
164
|
+
(0, _assert().default)(devServer instanceof _MetroBundlerDevServer.MetroBundlerDevServer);
|
|
161
165
|
const bundles = {};
|
|
162
166
|
const domComponentAssetsMetadata = {};
|
|
163
167
|
const spaPlatforms = // TODO: Support server and static rendering for server component exports.
|
|
164
|
-
useServerRendering && !devServer.isReactServerComponentsEnabled ? platforms.filter((platform)=>platform !==
|
|
168
|
+
useServerRendering && !devServer.isReactServerComponentsEnabled ? platforms.filter((platform)=>platform !== 'web') : platforms;
|
|
165
169
|
try {
|
|
166
170
|
if (devServer.isReactServerComponentsEnabled) {
|
|
167
171
|
// In RSC mode, we only need these to be in the client dir.
|
|
168
172
|
// TODO: Merge back with other copy after we add SSR.
|
|
169
173
|
try {
|
|
170
|
-
await (0, _publicFolder.copyPublicFolderAsync)(publicPath, _path().default.join(outputPath,
|
|
174
|
+
await (0, _publicFolder.copyPublicFolderAsync)(publicPath, _path().default.join(outputPath, 'client'));
|
|
171
175
|
} catch (error) {
|
|
172
|
-
_log.error(
|
|
176
|
+
_log.error('Failed to copy public directory to dist directory');
|
|
173
177
|
throw error;
|
|
174
178
|
}
|
|
175
179
|
} else {
|
|
@@ -181,7 +185,7 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
181
185
|
// Can be empty during web-only SSG.
|
|
182
186
|
if (spaPlatforms.length) {
|
|
183
187
|
await Promise.all(spaPlatforms.map(async (platform)=>{
|
|
184
|
-
var
|
|
188
|
+
var _exp_experiments;
|
|
185
189
|
// Assert early so the user doesn't have to wait until bundling is complete to find out that
|
|
186
190
|
// Hermes won't be available.
|
|
187
191
|
const isHermes = (0, _exportHermes.isEnableHermesManaged)(exp, platform);
|
|
@@ -189,18 +193,18 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
189
193
|
await (0, _exportHermes.assertEngineMismatchAsync)(projectRoot, exp, platform);
|
|
190
194
|
}
|
|
191
195
|
// Run metro bundler and create the JS bundles/source maps.
|
|
192
|
-
const bundle = await devServer.nativeExportBundleAsync({
|
|
196
|
+
const bundle = await devServer.nativeExportBundleAsync(exp, {
|
|
193
197
|
platform,
|
|
194
|
-
splitChunks: !_env.env.EXPO_NO_BUNDLE_SPLITTING && (devServer.isReactServerComponentsEnabled && !bytecode || platform ===
|
|
195
|
-
mainModuleName: (0,
|
|
198
|
+
splitChunks: !_env.env.EXPO_NO_BUNDLE_SPLITTING && (devServer.isReactServerComponentsEnabled && !bytecode || platform === 'web'),
|
|
199
|
+
mainModuleName: (0, _ManifestMiddleware.getEntryWithServerRoot)(projectRoot, {
|
|
196
200
|
platform,
|
|
197
201
|
pkg: projectConfig.pkg
|
|
198
202
|
}),
|
|
199
|
-
mode: dev ?
|
|
200
|
-
engine: isHermes ?
|
|
203
|
+
mode: dev ? 'development' : 'production',
|
|
204
|
+
engine: isHermes ? 'hermes' : undefined,
|
|
201
205
|
serializerIncludeMaps: sourceMaps,
|
|
202
206
|
bytecode: bytecode && isHermes,
|
|
203
|
-
reactCompiler: !!((
|
|
207
|
+
reactCompiler: !!((_exp_experiments = exp.experiments) == null ? void 0 : _exp_experiments.reactCompiler)
|
|
204
208
|
}, files);
|
|
205
209
|
bundles[platform] = bundle;
|
|
206
210
|
(0, _saveAssets.getFilesFromSerialAssets)(bundle.artifacts, {
|
|
@@ -212,7 +216,7 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
212
216
|
const expoDomComponentReferences = bundle.artifacts.map((artifact)=>Array.isArray(artifact.metadata.expoDomComponentReferences) ? artifact.metadata.expoDomComponentReferences : []).flat();
|
|
213
217
|
await Promise.all(// TODO: Make a version of this which uses `this.metro.getBundler().buildGraphForEntries([])` to bundle all the DOM components at once.
|
|
214
218
|
expoDomComponentReferences.map(async (filePath)=>{
|
|
215
|
-
const { bundle: platformDomComponentsBundle
|
|
219
|
+
const { bundle: platformDomComponentsBundle, htmlOutputName } = await (0, _exportDomComponents.exportDomComponentAsync)({
|
|
216
220
|
filePath,
|
|
217
221
|
projectRoot,
|
|
218
222
|
dev,
|
|
@@ -237,10 +241,10 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
237
241
|
...(0, _exportDomComponents.transformDomEntryForMd5Filename)({
|
|
238
242
|
files,
|
|
239
243
|
htmlOutputName
|
|
240
|
-
})
|
|
244
|
+
})
|
|
241
245
|
];
|
|
242
246
|
}));
|
|
243
|
-
if (platform ===
|
|
247
|
+
if (platform === 'web') {
|
|
244
248
|
// TODO: Unify with exportStaticAsync
|
|
245
249
|
// TODO: Maybe move to the serializer.
|
|
246
250
|
let html = await (0, _serializeHtml.serializeHtmlWithAssets)({
|
|
@@ -267,23 +271,23 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
267
271
|
templateHtml = html;
|
|
268
272
|
// Generate SPA-styled HTML file.
|
|
269
273
|
// If web exists, then write the template HTML file.
|
|
270
|
-
files.set(
|
|
274
|
+
files.set('index.html', {
|
|
271
275
|
contents: html,
|
|
272
|
-
targetDomain: devServer.isReactServerComponentsEnabled ?
|
|
276
|
+
targetDomain: devServer.isReactServerComponentsEnabled ? 'server' : 'client'
|
|
273
277
|
});
|
|
274
278
|
}
|
|
275
279
|
}));
|
|
276
280
|
if (devServer.isReactServerComponentsEnabled) {
|
|
277
|
-
const isWeb = platforms.includes(
|
|
281
|
+
const isWeb = platforms.includes('web');
|
|
278
282
|
await (0, _exportStaticAsync.exportApiRoutesStandaloneAsync)(devServer, {
|
|
279
283
|
files,
|
|
280
|
-
platform:
|
|
284
|
+
platform: 'web',
|
|
281
285
|
apiRoutesOnly: !isWeb,
|
|
282
286
|
templateHtml
|
|
283
287
|
});
|
|
284
288
|
}
|
|
285
289
|
// TODO: Use same asset system across platforms again.
|
|
286
|
-
const { assets
|
|
290
|
+
const { assets, embeddedHashSet } = await (0, _exportAssets.exportAssetsAsync)(projectRoot, {
|
|
287
291
|
files,
|
|
288
292
|
exp,
|
|
289
293
|
outputDir: outputPath,
|
|
@@ -291,17 +295,17 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
291
295
|
baseUrl
|
|
292
296
|
});
|
|
293
297
|
if (dumpAssetmap) {
|
|
294
|
-
_log.log(
|
|
295
|
-
files.set(
|
|
298
|
+
_log.log('Creating asset map');
|
|
299
|
+
files.set('assetmap.json', {
|
|
296
300
|
contents: JSON.stringify((0, _writeContents.createAssetMap)({
|
|
297
301
|
assets
|
|
298
302
|
}))
|
|
299
303
|
});
|
|
300
304
|
}
|
|
301
|
-
const targetDomain = devServer.isReactServerComponentsEnabled ?
|
|
305
|
+
const targetDomain = devServer.isReactServerComponentsEnabled ? 'client/' : '';
|
|
302
306
|
const fileNames = Object.fromEntries(Object.entries(bundles).map(([platform, bundle])=>[
|
|
303
307
|
platform,
|
|
304
|
-
bundle.artifacts.filter((asset)=>asset.type ===
|
|
308
|
+
bundle.artifacts.filter((asset)=>asset.type === 'js').map((asset)=>targetDomain + asset.filename)
|
|
305
309
|
]));
|
|
306
310
|
// Generate a `metadata.json` for EAS Update.
|
|
307
311
|
const contents = (0, _createMetadataJson.createMetadataJson)({
|
|
@@ -310,37 +314,37 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
310
314
|
embeddedHashSet,
|
|
311
315
|
domComponentAssetsMetadata
|
|
312
316
|
});
|
|
313
|
-
files.set(
|
|
317
|
+
files.set('metadata.json', {
|
|
314
318
|
contents: JSON.stringify(contents)
|
|
315
319
|
});
|
|
316
320
|
}
|
|
317
321
|
// Additional web-only steps...
|
|
318
|
-
if (platforms.includes(
|
|
319
|
-
var
|
|
320
|
-
const exportServer = ((
|
|
322
|
+
if (platforms.includes('web') && useServerRendering) {
|
|
323
|
+
var _exp_web2;
|
|
324
|
+
const exportServer = ((_exp_web2 = exp.web) == null ? void 0 : _exp_web2.output) === 'server';
|
|
321
325
|
if (exportServer) {
|
|
322
326
|
// TODO: Remove when this is abstracted into the files map
|
|
323
|
-
await (0, _publicFolder.copyPublicFolderAsync)(publicPath, _path().default.resolve(outputPath,
|
|
327
|
+
await (0, _publicFolder.copyPublicFolderAsync)(publicPath, _path().default.resolve(outputPath, 'client'));
|
|
324
328
|
}
|
|
325
329
|
if (skipSSG) {
|
|
326
|
-
_log.log(
|
|
330
|
+
_log.log('Skipping static site generation');
|
|
327
331
|
await (0, _exportStaticAsync.exportApiRoutesStandaloneAsync)(devServer, {
|
|
328
332
|
files,
|
|
329
|
-
platform:
|
|
333
|
+
platform: 'web',
|
|
330
334
|
apiRoutesOnly: true
|
|
331
335
|
});
|
|
332
336
|
// Output a placeholder index.html if one doesn't exist in the public directory.
|
|
333
337
|
// This ensures native + API routes have some content at the root URL.
|
|
334
|
-
const placeholderIndex = _path().default.resolve(outputPath,
|
|
338
|
+
const placeholderIndex = _path().default.resolve(outputPath, 'client/index.html');
|
|
335
339
|
if (!_fs().default.existsSync(placeholderIndex)) {
|
|
336
|
-
files.set(
|
|
340
|
+
files.set('index.html', {
|
|
337
341
|
contents: `<html><body></body></html>`,
|
|
338
|
-
targetDomain:
|
|
342
|
+
targetDomain: 'client'
|
|
339
343
|
});
|
|
340
344
|
}
|
|
341
345
|
} else if (// TODO: Support static export with RSC.
|
|
342
346
|
!devServer.isReactServerComponentsEnabled) {
|
|
343
|
-
var
|
|
347
|
+
var _exp_experiments;
|
|
344
348
|
await (0, _exportStaticAsync.exportFromServerAsync)(projectRoot, devServer, {
|
|
345
349
|
mode,
|
|
346
350
|
files,
|
|
@@ -350,7 +354,7 @@ async function exportAppAsync(projectRoot, { platforms , outputDir , clear , dev
|
|
|
350
354
|
baseUrl,
|
|
351
355
|
includeSourceMaps: sourceMaps,
|
|
352
356
|
routerRoot: (0, _router.getRouterDirectoryModuleIdWithManifest)(projectRoot, exp),
|
|
353
|
-
reactCompiler: !!((
|
|
357
|
+
reactCompiler: !!((_exp_experiments = exp.experiments) == null ? void 0 : _exp_experiments.reactCompiler),
|
|
354
358
|
exportServer,
|
|
355
359
|
maxWorkers,
|
|
356
360
|
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 // Force the environment during export and do not allow overriding it.\n const environment = dev ? 'development' : 'production';\n process.env.NODE_ENV = environment;\n setNodeEnv(environment);\n\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","environment","process","env","NODE_ENV","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","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 // Force the environment during export and do not allow overriding it.\n const environment = dev ? 'development' : 'production';\n process.env.NODE_ENV = environment;\n setNodeEnv(environment);\n\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 exp,\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","environment","process","env","NODE_ENV","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","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,12 +9,18 @@ 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
|
};
|
|
@@ -28,17 +34,17 @@ function _minimatch() {
|
|
|
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().minimatch)(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
|