@expo/cli 0.0.0-canary-20231122-1af9191
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/README.md +144 -0
- package/build/bin/cli +272 -0
- package/build/bin/cli.map +1 -0
- package/build/src/api/endpoint.js +27 -0
- package/build/src/api/endpoint.js.map +1 -0
- package/build/src/api/getExpoGoIntermediateCertificate.js +19 -0
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -0
- package/build/src/api/getExpoSchema.js +69 -0
- package/build/src/api/getExpoSchema.js.map +1 -0
- package/build/src/api/getNativeModuleVersions.js +31 -0
- package/build/src/api/getNativeModuleVersions.js.map +1 -0
- package/build/src/api/getProjectDevelopmentCertificate.js +22 -0
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -0
- package/build/src/api/getVersions.js +24 -0
- package/build/src/api/getVersions.js.map +1 -0
- package/build/src/api/graphql/client.js +106 -0
- package/build/src/api/graphql/client.js.map +1 -0
- package/build/src/api/graphql/queries/AppQuery.js +39 -0
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -0
- package/build/src/api/graphql/queries/UserQuery.js +51 -0
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -0
- package/build/src/api/graphql/types/App.js +23 -0
- package/build/src/api/graphql/types/App.js.map +1 -0
- package/build/src/api/rest/cache/FileSystemCache.js +79 -0
- package/build/src/api/rest/cache/FileSystemCache.js.map +1 -0
- package/build/src/api/rest/cache/response.js +31 -0
- package/build/src/api/rest/cache/response.js.map +1 -0
- package/build/src/api/rest/cache/wrapFetchWithCache.js +156 -0
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -0
- package/build/src/api/rest/client.js +109 -0
- package/build/src/api/rest/client.js.map +1 -0
- package/build/src/api/rest/client.types.js +6 -0
- package/build/src/api/rest/client.types.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +23 -0
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithOffline.js +19 -0
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithProgress.js +64 -0
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithProxy.js +26 -0
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -0
- package/build/src/api/settings.js +20 -0
- package/build/src/api/settings.js.map +1 -0
- package/build/src/api/updateDevelopmentSession.js +74 -0
- package/build/src/api/updateDevelopmentSession.js.map +1 -0
- package/build/src/api/user/UserSettings.js +71 -0
- package/build/src/api/user/UserSettings.js.map +1 -0
- package/build/src/api/user/actions.js +107 -0
- package/build/src/api/user/actions.js.map +1 -0
- package/build/src/api/user/expoSsoLauncher.js +127 -0
- package/build/src/api/user/expoSsoLauncher.js.map +1 -0
- package/build/src/api/user/otp.js +139 -0
- package/build/src/api/user/otp.js.map +1 -0
- package/build/src/api/user/user.js +144 -0
- package/build/src/api/user/user.js.map +1 -0
- package/build/src/config/configAsync.js +137 -0
- package/build/src/config/configAsync.js.map +1 -0
- package/build/src/config/index.js +75 -0
- package/build/src/config/index.js.map +1 -0
- package/build/src/customize/customizeAsync.js +43 -0
- package/build/src/customize/customizeAsync.js.map +1 -0
- package/build/src/customize/generate.js +104 -0
- package/build/src/customize/generate.js.map +1 -0
- package/build/src/customize/index.js +41 -0
- package/build/src/customize/index.js.map +1 -0
- package/build/src/customize/resolveOptions.js +18 -0
- package/build/src/customize/resolveOptions.js.map +1 -0
- package/build/src/customize/templates.js +126 -0
- package/build/src/customize/templates.js.map +1 -0
- package/build/src/customize/typescript.js +56 -0
- package/build/src/customize/typescript.js.map +1 -0
- package/build/src/export/createMetadataJson.js +42 -0
- package/build/src/export/createMetadataJson.js.map +1 -0
- package/build/src/export/embed/exportEmbedAsync.js +146 -0
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -0
- package/build/src/export/embed/index.js +115 -0
- package/build/src/export/embed/index.js.map +1 -0
- package/build/src/export/embed/resolveOptions.js +59 -0
- package/build/src/export/embed/resolveOptions.js.map +1 -0
- package/build/src/export/embed/xcodeCompilerLogger.js +97 -0
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -0
- package/build/src/export/exportApp.js +192 -0
- package/build/src/export/exportApp.js.map +1 -0
- package/build/src/export/exportAssets.js +176 -0
- package/build/src/export/exportAssets.js.map +1 -0
- package/build/src/export/exportAsync.js +52 -0
- package/build/src/export/exportAsync.js.map +1 -0
- package/build/src/export/exportHermes.js +124 -0
- package/build/src/export/exportHermes.js.map +1 -0
- package/build/src/export/exportStaticAsync.js +278 -0
- package/build/src/export/exportStaticAsync.js.map +1 -0
- package/build/src/export/favicon.js +89 -0
- package/build/src/export/favicon.js.map +1 -0
- package/build/src/export/fork-bundleAsync.js +215 -0
- package/build/src/export/fork-bundleAsync.js.map +1 -0
- package/build/src/export/getPublicExpoManifest.js +28 -0
- package/build/src/export/getPublicExpoManifest.js.map +1 -0
- package/build/src/export/getResolvedLocales.js +35 -0
- package/build/src/export/getResolvedLocales.js.map +1 -0
- package/build/src/export/html.js +21 -0
- package/build/src/export/html.js.map +1 -0
- package/build/src/export/index.js +91 -0
- package/build/src/export/index.js.map +1 -0
- package/build/src/export/metroAssetLocalPath.js +101 -0
- package/build/src/export/metroAssetLocalPath.js.map +1 -0
- package/build/src/export/persistMetroAssets.js +190 -0
- package/build/src/export/persistMetroAssets.js.map +1 -0
- package/build/src/export/publicFolder.js +34 -0
- package/build/src/export/publicFolder.js.map +1 -0
- package/build/src/export/resolveOptions.js +63 -0
- package/build/src/export/resolveOptions.js.map +1 -0
- package/build/src/export/saveAssets.js +189 -0
- package/build/src/export/saveAssets.js.map +1 -0
- package/build/src/export/web/exportWebAsync.js +40 -0
- package/build/src/export/web/exportWebAsync.js.map +1 -0
- package/build/src/export/web/index.js +66 -0
- package/build/src/export/web/index.js.map +1 -0
- package/build/src/export/web/resolveOptions.js +13 -0
- package/build/src/export/web/resolveOptions.js.map +1 -0
- package/build/src/export/writeContents.js +26 -0
- package/build/src/export/writeContents.js.map +1 -0
- package/build/src/graphql/generated.js +486 -0
- package/build/src/graphql/generated.js.map +1 -0
- package/build/src/install/applyPlugins.js +52 -0
- package/build/src/install/applyPlugins.js.map +1 -0
- package/build/src/install/checkPackages.js +78 -0
- package/build/src/install/checkPackages.js.map +1 -0
- package/build/src/install/fixPackages.js +84 -0
- package/build/src/install/fixPackages.js.map +1 -0
- package/build/src/install/index.js +51 -0
- package/build/src/install/index.js.map +1 -0
- package/build/src/install/installAsync.js +134 -0
- package/build/src/install/installAsync.js.map +1 -0
- package/build/src/install/installExpoPackage.js +79 -0
- package/build/src/install/installExpoPackage.js.map +1 -0
- package/build/src/install/resolveOptions.js +53 -0
- package/build/src/install/resolveOptions.js.map +1 -0
- package/build/src/install/utils/autoAddConfigPlugins.js +66 -0
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -0
- package/build/src/log.js +74 -0
- package/build/src/log.js.map +1 -0
- package/build/src/login/index.js +67 -0
- package/build/src/login/index.js.map +1 -0
- package/build/src/logout/index.js +48 -0
- package/build/src/logout/index.js.map +1 -0
- package/build/src/prebuild/clearNativeFolder.js +143 -0
- package/build/src/prebuild/clearNativeFolder.js.map +1 -0
- package/build/src/prebuild/configureProjectAsync.js +64 -0
- package/build/src/prebuild/configureProjectAsync.js.map +1 -0
- package/build/src/prebuild/copyTemplateFiles.js +67 -0
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -0
- package/build/src/prebuild/ensureConfigAsync.js +75 -0
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -0
- package/build/src/prebuild/index.js +98 -0
- package/build/src/prebuild/index.js.map +1 -0
- package/build/src/prebuild/prebuildAsync.js +146 -0
- package/build/src/prebuild/prebuildAsync.js.map +1 -0
- package/build/src/prebuild/resolveOptions.js +115 -0
- package/build/src/prebuild/resolveOptions.js.map +1 -0
- package/build/src/prebuild/resolveTemplate.js +163 -0
- package/build/src/prebuild/resolveTemplate.js.map +1 -0
- package/build/src/prebuild/updateFromTemplate.js +103 -0
- package/build/src/prebuild/updateFromTemplate.js.map +1 -0
- package/build/src/prebuild/updatePackageJson.js +227 -0
- package/build/src/prebuild/updatePackageJson.js.map +1 -0
- package/build/src/prebuild/validateTemplatePlatforms.js +48 -0
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -0
- package/build/src/register/index.js +48 -0
- package/build/src/register/index.js.map +1 -0
- package/build/src/register/registerAsync.js +34 -0
- package/build/src/register/registerAsync.js.map +1 -0
- package/build/src/run/android/index.js +97 -0
- package/build/src/run/android/index.js.map +1 -0
- package/build/src/run/android/resolveDevice.js +23 -0
- package/build/src/run/android/resolveDevice.js.map +1 -0
- package/build/src/run/android/resolveGradleProps.js +37 -0
- package/build/src/run/android/resolveGradleProps.js.map +1 -0
- package/build/src/run/android/resolveInstallApkName.js +51 -0
- package/build/src/run/android/resolveInstallApkName.js.map +1 -0
- package/build/src/run/android/resolveLaunchProps.js +32 -0
- package/build/src/run/android/resolveLaunchProps.js.map +1 -0
- package/build/src/run/android/resolveOptions.js +25 -0
- package/build/src/run/android/resolveOptions.js.map +1 -0
- package/build/src/run/android/runAndroidAsync.js +83 -0
- package/build/src/run/android/runAndroidAsync.js.map +1 -0
- package/build/src/run/ensureNativeProject.js +36 -0
- package/build/src/run/ensureNativeProject.js.map +1 -0
- package/build/src/run/hints.js +22 -0
- package/build/src/run/hints.js.map +1 -0
- package/build/src/run/ios/XcodeBuild.js +276 -0
- package/build/src/run/ios/XcodeBuild.js.map +1 -0
- package/build/src/run/ios/XcodeBuild.types.js +6 -0
- package/build/src/run/ios/XcodeBuild.types.js.map +1 -0
- package/build/src/run/ios/appleDevice/AppleDevice.js +195 -0
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -0
- package/build/src/run/ios/appleDevice/ClientManager.js +165 -0
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/AFCClient.js +195 -0
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +107 -0
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +97 -0
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +144 -0
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +91 -0
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +21 -0
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +117 -0
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +90 -0
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +332 -0
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +133 -0
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +126 -0
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +74 -0
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +65 -0
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -0
- package/build/src/run/ios/codeSigning/Security.js +85 -0
- package/build/src/run/ios/codeSigning/Security.js.map +1 -0
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +77 -0
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -0
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +102 -0
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -0
- package/build/src/run/ios/codeSigning/settings.js +21 -0
- package/build/src/run/ios/codeSigning/settings.js.map +1 -0
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +45 -0
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -0
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +79 -0
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -0
- package/build/src/run/ios/index.js +98 -0
- package/build/src/run/ios/index.js.map +1 -0
- package/build/src/run/ios/launchApp.js +75 -0
- package/build/src/run/ios/launchApp.js.map +1 -0
- package/build/src/run/ios/options/promptDevice.js +50 -0
- package/build/src/run/ios/options/promptDevice.js.map +1 -0
- package/build/src/run/ios/options/resolveDevice.js +92 -0
- package/build/src/run/ios/options/resolveDevice.js.map +1 -0
- package/build/src/run/ios/options/resolveNativeScheme.js +101 -0
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -0
- package/build/src/run/ios/options/resolveOptions.js +44 -0
- package/build/src/run/ios/options/resolveOptions.js.map +1 -0
- package/build/src/run/ios/options/resolveXcodeProject.js +39 -0
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -0
- package/build/src/run/ios/runIosAsync.js +93 -0
- package/build/src/run/ios/runIosAsync.js.map +1 -0
- package/build/src/run/resolveBundlerProps.js +34 -0
- package/build/src/run/resolveBundlerProps.js.map +1 -0
- package/build/src/run/startBundler.js +82 -0
- package/build/src/run/startBundler.js.map +1 -0
- package/build/src/start/doctor/Prerequisite.js +47 -0
- package/build/src/start/doctor/Prerequisite.js.map +1 -0
- package/build/src/start/doctor/SecurityBinPrerequisite.js +27 -0
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +70 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +69 -0
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js +158 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +65 -0
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +69 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -0
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +131 -0
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -0
- package/build/src/start/doctor/dependencies/getMissingPackages.js +74 -0
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +136 -0
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +195 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -0
- package/build/src/start/doctor/ngrok/ExternalModule.js +169 -0
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -0
- package/build/src/start/doctor/ngrok/NgrokResolver.js +22 -0
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -0
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +165 -0
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -0
- package/build/src/start/doctor/typescript/updateTSConfig.js +99 -0
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -0
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +111 -0
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -0
- package/build/src/start/index.js +123 -0
- package/build/src/start/index.js.map +1 -0
- package/build/src/start/interface/KeyPressHandler.js +101 -0
- package/build/src/start/interface/KeyPressHandler.js.map +1 -0
- package/build/src/start/interface/commandsTable.js +195 -0
- package/build/src/start/interface/commandsTable.js.map +1 -0
- package/build/src/start/interface/interactiveActions.js +194 -0
- package/build/src/start/interface/interactiveActions.js.map +1 -0
- package/build/src/start/interface/startInterface.js +227 -0
- package/build/src/start/interface/startInterface.js.map +1 -0
- package/build/src/start/platforms/AppIdResolver.js +44 -0
- package/build/src/start/platforms/AppIdResolver.js.map +1 -0
- package/build/src/start/platforms/DeviceManager.js +43 -0
- package/build/src/start/platforms/DeviceManager.js.map +1 -0
- package/build/src/start/platforms/ExpoGoInstaller.js +127 -0
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
- package/build/src/start/platforms/PlatformManager.js +131 -0
- package/build/src/start/platforms/PlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/ADBServer.js +114 -0
- package/build/src/start/platforms/android/ADBServer.js.map +1 -0
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +44 -0
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -0
- package/build/src/start/platforms/android/AndroidDeviceManager.js +183 -0
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -0
- package/build/src/start/platforms/android/AndroidPlatformManager.js +35 -0
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/AndroidSdk.js +41 -0
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -0
- package/build/src/start/platforms/android/activateWindow.js +80 -0
- package/build/src/start/platforms/android/activateWindow.js.map +1 -0
- package/build/src/start/platforms/android/adb.js +269 -0
- package/build/src/start/platforms/android/adb.js.map +1 -0
- package/build/src/start/platforms/android/adbReverse.js +95 -0
- package/build/src/start/platforms/android/adbReverse.js.map +1 -0
- package/build/src/start/platforms/android/emulator.js +126 -0
- package/build/src/start/platforms/android/emulator.js.map +1 -0
- package/build/src/start/platforms/android/getDevices.js +36 -0
- package/build/src/start/platforms/android/getDevices.js.map +1 -0
- package/build/src/start/platforms/android/gradle.js +86 -0
- package/build/src/start/platforms/android/gradle.js.map +1 -0
- package/build/src/start/platforms/android/promptAndroidDevice.js +56 -0
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -0
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +53 -0
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -0
- package/build/src/start/platforms/ios/AppleDeviceManager.js +216 -0
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js +31 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -0
- package/build/src/start/platforms/ios/assertSystemRequirements.js +16 -0
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -0
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +85 -0
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -0
- package/build/src/start/platforms/ios/getBestSimulator.js +101 -0
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -0
- package/build/src/start/platforms/ios/promptAppleDevice.js +56 -0
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -0
- package/build/src/start/platforms/ios/simctl.js +243 -0
- package/build/src/start/platforms/ios/simctl.js.map +1 -0
- package/build/src/start/platforms/ios/simctlLogging.js +220 -0
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -0
- package/build/src/start/platforms/ios/xcrun.js +46 -0
- package/build/src/start/platforms/ios/xcrun.js.map +1 -0
- package/build/src/start/project/devices.js +79 -0
- package/build/src/start/project/devices.js.map +1 -0
- package/build/src/start/project/dotExpo.js +74 -0
- package/build/src/start/project/dotExpo.js.map +1 -0
- package/build/src/start/project/settings.js +13 -0
- package/build/src/start/project/settings.js.map +1 -0
- package/build/src/start/resolveOptions.js +135 -0
- package/build/src/start/resolveOptions.js.map +1 -0
- package/build/src/start/server/AsyncNgrok.js +220 -0
- package/build/src/start/server/AsyncNgrok.js.map +1 -0
- package/build/src/start/server/BundlerDevServer.js +356 -0
- package/build/src/start/server/BundlerDevServer.js.map +1 -0
- package/build/src/start/server/DevServerManager.js +214 -0
- package/build/src/start/server/DevServerManager.js.map +1 -0
- package/build/src/start/server/DevToolsPluginManager.js +63 -0
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -0
- package/build/src/start/server/DevelopmentSession.js +114 -0
- package/build/src/start/server/DevelopmentSession.js.map +1 -0
- package/build/src/start/server/ReactDevToolsProxy.js +73 -0
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -0
- package/build/src/start/server/UrlCreator.js +175 -0
- package/build/src/start/server/UrlCreator.js.map +1 -0
- package/build/src/start/server/getStaticRenderFunctions.js +164 -0
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js +485 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -0
- package/build/src/start/server/metro/MetroTerminalReporter.js +165 -0
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -0
- package/build/src/start/server/metro/TerminalReporter.js +92 -0
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -0
- package/build/src/start/server/metro/TerminalReporter.types.js +6 -0
- package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -0
- package/build/src/start/server/metro/bundleApiRoutes.js +52 -0
- package/build/src/start/server/metro/bundleApiRoutes.js.map +1 -0
- package/build/src/start/server/metro/createExpoMetroResolver.js +187 -0
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -0
- package/build/src/start/server/metro/createJResolver.js +149 -0
- package/build/src/start/server/metro/createJResolver.js.map +1 -0
- package/build/src/start/server/metro/createServerRouteMiddleware.js +124 -0
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -0
- package/build/src/start/server/metro/externals.js +94 -0
- package/build/src/start/server/metro/externals.js.map +1 -0
- package/build/src/start/server/metro/fetchRouterManifest.js +60 -0
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -0
- package/build/src/start/server/metro/formatFileCandidates.js +72 -0
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -0
- package/build/src/start/server/metro/getCssModulesFromBundler.js +77 -0
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/device.js +110 -0
- package/build/src/start/server/metro/inspector-proxy/device.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/NetworkResponse.js +29 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/NetworkResponse.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/PageReload.js +22 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/PageReload.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerGetPossibleBreakpoints.js +21 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerScriptParsed.js +55 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerScriptParsed.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerSetBreakpointByUrl.js +17 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeRuntimeCallFunctionOn.js +24 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeRuntimeGetProperties.js +39 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeRuntimeGetProperties.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/types.js +6 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/types.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/utils.js +11 -0
- package/build/src/start/server/metro/inspector-proxy/handlers/utils.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/index.js +24 -0
- package/build/src/start/server/metro/inspector-proxy/index.js.map +1 -0
- package/build/src/start/server/metro/inspector-proxy/proxy.js +169 -0
- package/build/src/start/server/metro/inspector-proxy/proxy.js.map +1 -0
- package/build/src/start/server/metro/instantiateMetro.js +194 -0
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -0
- package/build/src/start/server/metro/metroErrorInterface.js +198 -0
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -0
- package/build/src/start/server/metro/metroErrors.js +14 -0
- package/build/src/start/server/metro/metroErrors.js.map +1 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +51 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -0
- package/build/src/start/server/metro/router.js +83 -0
- package/build/src/start/server/metro/router.js.map +1 -0
- package/build/src/start/server/metro/runServer-fork.js +96 -0
- package/build/src/start/server/metro/runServer-fork.js.map +1 -0
- package/build/src/start/server/metro/serializeHtml.js +43 -0
- package/build/src/start/server/metro/serializeHtml.js.map +1 -0
- package/build/src/start/server/metro/symbolicate.js +6 -0
- package/build/src/start/server/metro/symbolicate.js.map +1 -0
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +91 -0
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -0
- package/build/src/start/server/metro/withMetroMultiPlatform.js +402 -0
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -0
- package/build/src/start/server/metro/withMetroResolvers.js +272 -0
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -0
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +27 -0
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/CreateFileMiddleware.js +106 -0
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +61 -0
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +236 -0
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js +83 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/FaviconMiddleware.js +42 -0
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +24 -0
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +81 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ManifestMiddleware.js +300 -0
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +35 -0
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +75 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +62 -0
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/inspector/JsInspector.js +69 -0
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js +61 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +13 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +82 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +79 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +124 -0
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -0
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +64 -0
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +19 -0
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -0
- package/build/src/start/server/middleware/metroOptions.js +128 -0
- package/build/src/start/server/middleware/metroOptions.js.map +1 -0
- package/build/src/start/server/middleware/mutations.js +19 -0
- package/build/src/start/server/middleware/mutations.js.map +1 -0
- package/build/src/start/server/middleware/remoteDevtoolsCorsMiddleware.js +31 -0
- package/build/src/start/server/middleware/remoteDevtoolsCorsMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/remoteDevtoolsSecurityHeadersMiddleware.js +17 -0
- package/build/src/start/server/middleware/remoteDevtoolsSecurityHeadersMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/resolveAssets.js +110 -0
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -0
- package/build/src/start/server/middleware/resolvePlatform.js +47 -0
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -0
- package/build/src/start/server/middleware/server.types.js +6 -0
- package/build/src/start/server/middleware/server.types.js.map +1 -0
- package/build/src/start/server/middleware/suppressErrorMiddleware.js +16 -0
- package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -0
- package/build/src/start/server/openPlatforms.js +30 -0
- package/build/src/start/server/openPlatforms.js.map +1 -0
- package/build/src/start/server/platformBundlers.js +18 -0
- package/build/src/start/server/platformBundlers.js.map +1 -0
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +38 -0
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +1 -0
- package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +38 -0
- package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +1 -0
- package/build/src/start/server/type-generation/__typetests__/route.test.js +176 -0
- package/build/src/start/server/type-generation/__typetests__/route.test.js.map +1 -0
- package/build/src/start/server/type-generation/expo-env.js +27 -0
- package/build/src/start/server/type-generation/expo-env.js.map +1 -0
- package/build/src/start/server/type-generation/routes.js +474 -0
- package/build/src/start/server/type-generation/routes.js.map +1 -0
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +56 -0
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -0
- package/build/src/start/server/type-generation/tsconfig.js +89 -0
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -0
- package/build/src/start/server/webTemplate.js +84 -0
- package/build/src/start/server/webTemplate.js.map +1 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +266 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -0
- package/build/src/start/server/webpack/compile.js +64 -0
- package/build/src/start/server/webpack/compile.js.map +1 -0
- package/build/src/start/server/webpack/formatWebpackMessages.js +94 -0
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -0
- package/build/src/start/server/webpack/resolveFromProject.js +43 -0
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -0
- package/build/src/start/server/webpack/tls.js +72 -0
- package/build/src/start/server/webpack/tls.js.map +1 -0
- package/build/src/start/startAsync.js +154 -0
- package/build/src/start/startAsync.js.map +1 -0
- package/build/src/utils/FileNotifier.js +90 -0
- package/build/src/utils/FileNotifier.js.map +1 -0
- package/build/src/utils/analytics/getDevClientProperties.js +47 -0
- package/build/src/utils/analytics/getDevClientProperties.js.map +1 -0
- package/build/src/utils/analytics/getMetroDebugProperties.js +15 -0
- package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -0
- package/build/src/utils/analytics/getMetroProperties.js +28 -0
- package/build/src/utils/analytics/getMetroProperties.js.map +1 -0
- package/build/src/utils/analytics/metroDebuggerMiddleware.js +55 -0
- package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -0
- package/build/src/utils/analytics/rudderstackClient.js +147 -0
- package/build/src/utils/analytics/rudderstackClient.js.map +1 -0
- package/build/src/utils/ansi.js +17 -0
- package/build/src/utils/ansi.js.map +1 -0
- package/build/src/utils/args.js +79 -0
- package/build/src/utils/args.js.map +1 -0
- package/build/src/utils/array.js +67 -0
- package/build/src/utils/array.js.map +1 -0
- package/build/src/utils/cocoapods.js +191 -0
- package/build/src/utils/cocoapods.js.map +1 -0
- package/build/src/utils/codesigning.js +311 -0
- package/build/src/utils/codesigning.js.map +1 -0
- package/build/src/utils/createFileTransform.js +89 -0
- package/build/src/utils/createFileTransform.js.map +1 -0
- package/build/src/utils/delay.js +39 -0
- package/build/src/utils/delay.js.map +1 -0
- package/build/src/utils/dir.js +63 -0
- package/build/src/utils/dir.js.map +1 -0
- package/build/src/utils/downloadAppAsync.js +73 -0
- package/build/src/utils/downloadAppAsync.js.map +1 -0
- package/build/src/utils/downloadExpoGoAsync.js +116 -0
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -0
- package/build/src/utils/editor.js +69 -0
- package/build/src/utils/editor.js.map +1 -0
- package/build/src/utils/env.js +131 -0
- package/build/src/utils/env.js.map +1 -0
- package/build/src/utils/errors.js +70 -0
- package/build/src/utils/errors.js.map +1 -0
- package/build/src/utils/exit.js +69 -0
- package/build/src/utils/exit.js.map +1 -0
- package/build/src/utils/findUp.js +33 -0
- package/build/src/utils/findUp.js.map +1 -0
- package/build/src/utils/fn.js +32 -0
- package/build/src/utils/fn.js.map +1 -0
- package/build/src/utils/getOrPromptApplicationId.js +181 -0
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -0
- package/build/src/utils/getRunningProcess.js +96 -0
- package/build/src/utils/getRunningProcess.js.map +1 -0
- package/build/src/utils/git.js +89 -0
- package/build/src/utils/git.js.map +1 -0
- package/build/src/utils/glob.js +65 -0
- package/build/src/utils/glob.js.map +1 -0
- package/build/src/utils/interactive.js +11 -0
- package/build/src/utils/interactive.js.map +1 -0
- package/build/src/utils/ip.js +16 -0
- package/build/src/utils/ip.js.map +1 -0
- package/build/src/utils/isModuleSymlinked.js +37 -0
- package/build/src/utils/isModuleSymlinked.js.map +1 -0
- package/build/src/utils/link.js +31 -0
- package/build/src/utils/link.js.map +1 -0
- package/build/src/utils/mergeGitIgnorePaths.js +154 -0
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -0
- package/build/src/utils/modifyConfigAsync.js +68 -0
- package/build/src/utils/modifyConfigAsync.js.map +1 -0
- package/build/src/utils/modifyConfigPlugins.js +51 -0
- package/build/src/utils/modifyConfigPlugins.js.map +1 -0
- package/build/src/utils/nodeEnv.js +11 -0
- package/build/src/utils/nodeEnv.js.map +1 -0
- package/build/src/utils/nodeModules.js +29 -0
- package/build/src/utils/nodeModules.js.map +1 -0
- package/build/src/utils/npm.js +116 -0
- package/build/src/utils/npm.js.map +1 -0
- package/build/src/utils/obj.js +45 -0
- package/build/src/utils/obj.js.map +1 -0
- package/build/src/utils/open.js +26 -0
- package/build/src/utils/open.js.map +1 -0
- package/build/src/utils/ora.js +91 -0
- package/build/src/utils/ora.js.map +1 -0
- package/build/src/utils/plist.js +59 -0
- package/build/src/utils/plist.js.map +1 -0
- package/build/src/utils/port.js +160 -0
- package/build/src/utils/port.js.map +1 -0
- package/build/src/utils/profile.js +63 -0
- package/build/src/utils/profile.js.map +1 -0
- package/build/src/utils/progress.js +61 -0
- package/build/src/utils/progress.js.map +1 -0
- package/build/src/utils/prompts.js +116 -0
- package/build/src/utils/prompts.js.map +1 -0
- package/build/src/utils/resolveArgs.js +140 -0
- package/build/src/utils/resolveArgs.js.map +1 -0
- package/build/src/utils/scheme.js +128 -0
- package/build/src/utils/scheme.js.map +1 -0
- package/build/src/utils/strings.js +24 -0
- package/build/src/utils/strings.js.map +1 -0
- package/build/src/utils/tar.js +62 -0
- package/build/src/utils/tar.js.map +1 -0
- package/build/src/utils/template.js +21 -0
- package/build/src/utils/template.js.map +1 -0
- package/build/src/utils/terminal.js +10 -0
- package/build/src/utils/terminal.js.map +1 -0
- package/build/src/utils/tsconfig/evaluateTsConfig.js +61 -0
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -0
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +61 -0
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -0
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +88 -0
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -0
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +51 -0
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -0
- package/build/src/utils/url.js +67 -0
- package/build/src/utils/url.js.map +1 -0
- package/build/src/utils/validateApplicationId.js +179 -0
- package/build/src/utils/validateApplicationId.js.map +1 -0
- package/build/src/utils/variadic.js +65 -0
- package/build/src/utils/variadic.js.map +1 -0
- package/build/src/whoami/index.js +47 -0
- package/build/src/whoami/index.js.map +1 -0
- package/build/src/whoami/whoamiAsync.js +44 -0
- package/build/src/whoami/whoamiAsync.js.map +1 -0
- package/package.json +163 -0
- package/static/loading-page/index.html +363 -0
- package/static/react-devtools-page/index.html +144 -0
- package/static/shims/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js +13 -0
- package/static/shims/react-native-web/dist/cjs/exports/BackHandler/index.js +10 -0
- package/static/shims/react-native-web/dist/exports/AppRegistry/AppContainer.js +12 -0
- package/static/shims/react-native-web/dist/exports/BackHandler/index.js +7 -0
- package/static/template/babel.config.js +6 -0
- package/static/template/index.html +36 -0
- package/static/template/metro.config.js +7 -0
- package/static/template/serve.json +13 -0
- package/static/template/webpack.config.js +7 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.unstable_exportStaticAsync = unstable_exportStaticAsync;
|
|
6
|
+
exports.getFilesToExportFromServerAsync = getFilesToExportFromServerAsync;
|
|
7
|
+
exports.getHtmlFiles = getHtmlFiles;
|
|
8
|
+
exports.getPathVariations = getPathVariations;
|
|
9
|
+
var _config = require("@expo/config");
|
|
10
|
+
var _assert = _interopRequireDefault(require("assert"));
|
|
11
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
12
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
13
|
+
var _path = _interopRequireDefault(require("path"));
|
|
14
|
+
var _util = require("util");
|
|
15
|
+
var _favicon = require("./favicon");
|
|
16
|
+
var _persistMetroAssets = require("./persistMetroAssets");
|
|
17
|
+
var _saveAssets = require("./saveAssets");
|
|
18
|
+
var _log = require("../log");
|
|
19
|
+
var _devServerManager = require("../start/server/DevServerManager");
|
|
20
|
+
var _metroBundlerDevServer = require("../start/server/metro/MetroBundlerDevServer");
|
|
21
|
+
var _metroErrorInterface = require("../start/server/metro/metroErrorInterface");
|
|
22
|
+
var _router = require("../start/server/metro/router");
|
|
23
|
+
var _serializeHtml = require("../start/server/metro/serializeHtml");
|
|
24
|
+
var _link = require("../utils/link");
|
|
25
|
+
var _port = require("../utils/port");
|
|
26
|
+
function _interopRequireDefault(obj) {
|
|
27
|
+
return obj && obj.__esModule ? obj : {
|
|
28
|
+
default: obj
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const debug = require("debug")("expo:export:generateStaticRoutes");
|
|
32
|
+
async function unstable_exportStaticAsync(projectRoot, options) {
|
|
33
|
+
_log.Log.warn(`Experimental static rendering is enabled. ` + (0, _link).learnMore("https://docs.expo.dev/router/reference/static-rendering/"));
|
|
34
|
+
// Useful for running parallel e2e tests in CI.
|
|
35
|
+
const port = await (0, _port).getFreePortAsync(8082);
|
|
36
|
+
// TODO: Prevent starting the watcher.
|
|
37
|
+
const devServerManager = new _devServerManager.DevServerManager(projectRoot, {
|
|
38
|
+
minify: options.minify,
|
|
39
|
+
mode: "production",
|
|
40
|
+
port,
|
|
41
|
+
location: {},
|
|
42
|
+
resetDevServer: options.clear
|
|
43
|
+
});
|
|
44
|
+
await devServerManager.startAsync([
|
|
45
|
+
{
|
|
46
|
+
type: "metro",
|
|
47
|
+
options: {
|
|
48
|
+
port,
|
|
49
|
+
location: {},
|
|
50
|
+
isExporting: true,
|
|
51
|
+
resetDevServer: options.clear
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
]);
|
|
55
|
+
try {
|
|
56
|
+
return await exportFromServerAsync(projectRoot, devServerManager, options);
|
|
57
|
+
} finally{
|
|
58
|
+
await devServerManager.stopAsync();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** Match `(page)` -> `page` */ function matchGroupName(name) {
|
|
62
|
+
var ref;
|
|
63
|
+
return (ref = name.match(/^\(([^/]+?)\)$/)) == null ? void 0 : ref[1];
|
|
64
|
+
}
|
|
65
|
+
async function getFilesToExportFromServerAsync(projectRoot, { manifest , renderAsync , includeGroupVariations , // name : contents
|
|
66
|
+
files =new Map() }) {
|
|
67
|
+
await Promise.all(getHtmlFiles({
|
|
68
|
+
manifest,
|
|
69
|
+
includeGroupVariations
|
|
70
|
+
}).map(async (outputPath)=>{
|
|
71
|
+
const pathname = outputPath.replace(/(?:index)?\.html$/, "");
|
|
72
|
+
try {
|
|
73
|
+
files.set(outputPath, {
|
|
74
|
+
contents: ""
|
|
75
|
+
});
|
|
76
|
+
const data = await renderAsync(pathname);
|
|
77
|
+
files.set(outputPath, {
|
|
78
|
+
contents: data,
|
|
79
|
+
routeId: pathname
|
|
80
|
+
});
|
|
81
|
+
} catch (e) {
|
|
82
|
+
await (0, _metroErrorInterface).logMetroErrorAsync({
|
|
83
|
+
error: e,
|
|
84
|
+
projectRoot
|
|
85
|
+
});
|
|
86
|
+
throw new Error("Failed to statically export route: " + pathname);
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
89
|
+
return files;
|
|
90
|
+
}
|
|
91
|
+
/** Perform all fs commits */ async function exportFromServerAsync(projectRoot, devServerManager, { outputDir , baseUrl , exportServer , minify , includeSourceMaps , files =new Map() }) {
|
|
92
|
+
const { exp } = (0, _config).getConfig(projectRoot, {
|
|
93
|
+
skipSDKVersionRequirement: true
|
|
94
|
+
});
|
|
95
|
+
const appDir = (0, _router).getRouterDirectoryWithManifest(projectRoot, exp);
|
|
96
|
+
const injectFaviconTag = await (0, _favicon).getVirtualFaviconAssetsAsync(projectRoot, {
|
|
97
|
+
outputDir,
|
|
98
|
+
baseUrl,
|
|
99
|
+
files
|
|
100
|
+
});
|
|
101
|
+
const devServer = devServerManager.getDefaultDevServer();
|
|
102
|
+
(0, _assert).default(devServer instanceof _metroBundlerDevServer.MetroBundlerDevServer);
|
|
103
|
+
const [resources, { manifest , serverManifest , renderAsync }] = await Promise.all([
|
|
104
|
+
devServer.getStaticResourcesAsync({
|
|
105
|
+
isExporting: true,
|
|
106
|
+
mode: "production",
|
|
107
|
+
minify,
|
|
108
|
+
includeSourceMaps,
|
|
109
|
+
baseUrl
|
|
110
|
+
}),
|
|
111
|
+
devServer.getStaticRenderFunctionAsync({
|
|
112
|
+
mode: "production",
|
|
113
|
+
minify,
|
|
114
|
+
baseUrl
|
|
115
|
+
}),
|
|
116
|
+
]);
|
|
117
|
+
debug("Routes:\n", (0, _util).inspect(manifest, {
|
|
118
|
+
colors: true,
|
|
119
|
+
depth: null
|
|
120
|
+
}));
|
|
121
|
+
await getFilesToExportFromServerAsync(projectRoot, {
|
|
122
|
+
files,
|
|
123
|
+
manifest,
|
|
124
|
+
// Servers can handle group routes automatically and therefore
|
|
125
|
+
// don't require the build-time generation of every possible group
|
|
126
|
+
// variation.
|
|
127
|
+
includeGroupVariations: !exportServer,
|
|
128
|
+
async renderAsync (pathname) {
|
|
129
|
+
const template = await renderAsync(pathname);
|
|
130
|
+
let html = await (0, _serializeHtml).serializeHtmlWithAssets({
|
|
131
|
+
mode: "production",
|
|
132
|
+
resources: resources.artifacts,
|
|
133
|
+
template,
|
|
134
|
+
baseUrl
|
|
135
|
+
});
|
|
136
|
+
if (injectFaviconTag) {
|
|
137
|
+
html = injectFaviconTag(html);
|
|
138
|
+
}
|
|
139
|
+
return html;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
(0, _saveAssets).getFilesFromSerialAssets(resources.artifacts, {
|
|
143
|
+
includeSourceMaps,
|
|
144
|
+
files
|
|
145
|
+
});
|
|
146
|
+
if (resources.assets) {
|
|
147
|
+
// TODO: Collect files without writing to disk.
|
|
148
|
+
await (0, _persistMetroAssets).persistMetroAssetsAsync(resources.assets, {
|
|
149
|
+
platform: "web",
|
|
150
|
+
outputDirectory: outputDir,
|
|
151
|
+
baseUrl
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (exportServer) {
|
|
155
|
+
const apiRoutes = await exportApiRoutesAsync({
|
|
156
|
+
outputDir,
|
|
157
|
+
server: devServer,
|
|
158
|
+
appDir,
|
|
159
|
+
manifest: serverManifest,
|
|
160
|
+
baseUrl
|
|
161
|
+
});
|
|
162
|
+
// Add the api routes to the files to export.
|
|
163
|
+
for (const [route, contents] of apiRoutes){
|
|
164
|
+
files.set(route, contents);
|
|
165
|
+
}
|
|
166
|
+
} else {
|
|
167
|
+
warnPossibleInvalidExportType(appDir);
|
|
168
|
+
}
|
|
169
|
+
return files;
|
|
170
|
+
}
|
|
171
|
+
function getHtmlFiles({ manifest , includeGroupVariations }) {
|
|
172
|
+
const htmlFiles = new Set();
|
|
173
|
+
function traverseScreens(screens, baseUrl = "") {
|
|
174
|
+
for (const value of Object.values(screens)){
|
|
175
|
+
if (typeof value === "string") {
|
|
176
|
+
let filePath = baseUrl + value;
|
|
177
|
+
if (value === "") {
|
|
178
|
+
filePath = baseUrl === "" ? "index" : baseUrl.endsWith("/") ? baseUrl + "index" : baseUrl.slice(0, -1);
|
|
179
|
+
}
|
|
180
|
+
if (includeGroupVariations) {
|
|
181
|
+
// TODO: Dedupe requests for alias routes.
|
|
182
|
+
addOptionalGroups(filePath);
|
|
183
|
+
} else {
|
|
184
|
+
htmlFiles.add(filePath);
|
|
185
|
+
}
|
|
186
|
+
} else if (typeof value === "object" && (value == null ? void 0 : value.screens)) {
|
|
187
|
+
const newPath = baseUrl + value.path + "/";
|
|
188
|
+
traverseScreens(value.screens, newPath);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function addOptionalGroups(path) {
|
|
193
|
+
const variations = getPathVariations(path);
|
|
194
|
+
for (const variation of variations){
|
|
195
|
+
htmlFiles.add(variation);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
traverseScreens(manifest.screens);
|
|
199
|
+
return Array.from(htmlFiles).map((value)=>{
|
|
200
|
+
const parts = value.split("/");
|
|
201
|
+
// Replace `:foo` with `[foo]` and `*foo` with `[...foo]`
|
|
202
|
+
const partsWithGroups = parts.map((part)=>{
|
|
203
|
+
if (part === "*not-found") {
|
|
204
|
+
return `+not-found`;
|
|
205
|
+
} else if (part.startsWith(":")) {
|
|
206
|
+
return `[${part.slice(1)}]`;
|
|
207
|
+
} else if (part.startsWith("*")) {
|
|
208
|
+
return `[...${part.slice(1)}]`;
|
|
209
|
+
}
|
|
210
|
+
return part;
|
|
211
|
+
});
|
|
212
|
+
return partsWithGroups.join("/") + ".html";
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
function getPathVariations(routePath) {
|
|
216
|
+
const variations = new Set();
|
|
217
|
+
const segments1 = routePath.split("/");
|
|
218
|
+
function generateVariations(segments, current = "") {
|
|
219
|
+
if (segments.length === 0) {
|
|
220
|
+
if (current) variations.add(current);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const [head, ...rest] = segments;
|
|
224
|
+
if (matchGroupName(head)) {
|
|
225
|
+
const groups = head.slice(1, -1).split(",");
|
|
226
|
+
if (groups.length > 1) {
|
|
227
|
+
for (const group of groups){
|
|
228
|
+
// If there are multiple groups, recurse on each group.
|
|
229
|
+
generateVariations([
|
|
230
|
+
`(${group.trim()})`,
|
|
231
|
+
...rest
|
|
232
|
+
], current);
|
|
233
|
+
}
|
|
234
|
+
return;
|
|
235
|
+
} else {
|
|
236
|
+
// Start a fork where this group is included
|
|
237
|
+
generateVariations(rest, current ? `${current}/(${groups[0]})` : `(${groups[0]})`);
|
|
238
|
+
// This code will continue and add paths without this group included`
|
|
239
|
+
}
|
|
240
|
+
} else if (current) {
|
|
241
|
+
current = `${current}/${head}`;
|
|
242
|
+
} else {
|
|
243
|
+
current = head;
|
|
244
|
+
}
|
|
245
|
+
generateVariations(rest, current);
|
|
246
|
+
}
|
|
247
|
+
generateVariations(segments1);
|
|
248
|
+
return Array.from(variations);
|
|
249
|
+
}
|
|
250
|
+
async function exportApiRoutesAsync({ outputDir , server , appDir , baseUrl , ...props }) {
|
|
251
|
+
const functionsDir = "_expo/functions";
|
|
252
|
+
const funcDir = _path.default.join(outputDir, functionsDir);
|
|
253
|
+
_fs.default.mkdirSync(_path.default.join(funcDir), {
|
|
254
|
+
recursive: true
|
|
255
|
+
});
|
|
256
|
+
const { manifest , files } = await server.exportExpoRouterApiRoutesAsync({
|
|
257
|
+
mode: "production",
|
|
258
|
+
appDir,
|
|
259
|
+
outputDir: functionsDir,
|
|
260
|
+
prerenderManifest: props.manifest,
|
|
261
|
+
baseUrl
|
|
262
|
+
});
|
|
263
|
+
_log.Log.log(_chalk.default.bold`Exporting ${files.size} API Routes.`);
|
|
264
|
+
files.set("_expo/routes.json", {
|
|
265
|
+
contents: JSON.stringify(manifest, null, 2)
|
|
266
|
+
});
|
|
267
|
+
return files;
|
|
268
|
+
}
|
|
269
|
+
function warnPossibleInvalidExportType(appDir) {
|
|
270
|
+
const apiRoutes = (0, _router).getApiRoutesForDirectory(appDir);
|
|
271
|
+
if (apiRoutes.length) {
|
|
272
|
+
// TODO: Allow API Routes for native-only.
|
|
273
|
+
_log.Log.warn(_chalk.default.yellow`Skipping export for API routes because \`web.output\` is not "server". You may want to remove the routes: ${apiRoutes.map((v)=>_path.default.relative(appDir, v)
|
|
274
|
+
).join(", ")}`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
//# sourceMappingURL=exportStaticAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/export/exportStaticAsync.ts"],"sourcesContent":["/**\n * Copyright © 2022 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getConfig } from '@expo/config';\nimport assert from 'assert';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\nimport { inspect } from 'util';\n\nimport { getVirtualFaviconAssetsAsync } from './favicon';\nimport { persistMetroAssetsAsync } from './persistMetroAssets';\nimport { ExportAssetMap, getFilesFromSerialAssets } from './saveAssets';\nimport { Log } from '../log';\nimport { DevServerManager } from '../start/server/DevServerManager';\nimport { MetroBundlerDevServer } from '../start/server/metro/MetroBundlerDevServer';\nimport { ExpoRouterServerManifestV1 } from '../start/server/metro/fetchRouterManifest';\nimport { logMetroErrorAsync } from '../start/server/metro/metroErrorInterface';\nimport {\n getApiRoutesForDirectory,\n getRouterDirectoryWithManifest,\n} from '../start/server/metro/router';\nimport { serializeHtmlWithAssets } from '../start/server/metro/serializeHtml';\nimport { learnMore } from '../utils/link';\nimport { getFreePortAsync } from '../utils/port';\n\nconst debug = require('debug')('expo:export:generateStaticRoutes') as typeof console.log;\n\ntype Options = {\n files?: ExportAssetMap;\n outputDir: string;\n minify: boolean;\n exportServer: boolean;\n baseUrl: string;\n includeSourceMaps: boolean;\n entryPoint?: string;\n clear: boolean;\n};\n\n/** @private */\nexport async function unstable_exportStaticAsync(projectRoot: string, options: Options) {\n Log.warn(\n `Experimental static rendering is enabled. ` +\n learnMore('https://docs.expo.dev/router/reference/static-rendering/')\n );\n\n // Useful for running parallel e2e tests in CI.\n const port = await getFreePortAsync(8082);\n\n // TODO: Prevent starting the watcher.\n const devServerManager = new DevServerManager(projectRoot, {\n minify: options.minify,\n mode: 'production',\n port,\n location: {},\n resetDevServer: options.clear,\n });\n await devServerManager.startAsync([\n {\n type: 'metro',\n options: {\n port,\n location: {},\n isExporting: true,\n resetDevServer: options.clear,\n },\n },\n ]);\n\n try {\n return await exportFromServerAsync(projectRoot, devServerManager, options);\n } finally {\n await devServerManager.stopAsync();\n }\n}\n\n/** Match `(page)` -> `page` */\nfunction matchGroupName(name: string): string | undefined {\n return name.match(/^\\(([^/]+?)\\)$/)?.[1];\n}\n\nexport async function getFilesToExportFromServerAsync(\n projectRoot: string,\n {\n manifest,\n renderAsync,\n includeGroupVariations,\n // name : contents\n files = new Map(),\n }: {\n manifest: any;\n renderAsync: (pathname: string) => Promise<string>;\n includeGroupVariations?: boolean;\n files?: ExportAssetMap;\n }\n): Promise<ExportAssetMap> {\n await Promise.all(\n getHtmlFiles({ manifest, includeGroupVariations }).map(async (outputPath) => {\n const pathname = outputPath.replace(/(?:index)?\\.html$/, '');\n try {\n files.set(outputPath, { contents: '' });\n const data = await renderAsync(pathname);\n files.set(outputPath, {\n contents: data,\n routeId: pathname,\n });\n } catch (e: any) {\n await logMetroErrorAsync({ error: e, projectRoot });\n throw new Error('Failed to statically export route: ' + pathname);\n }\n })\n );\n\n return files;\n}\n\n/** Perform all fs commits */\nasync function exportFromServerAsync(\n projectRoot: string,\n devServerManager: DevServerManager,\n { outputDir, baseUrl, exportServer, minify, includeSourceMaps, files = new Map() }: Options\n): Promise<ExportAssetMap> {\n const { exp } = getConfig(projectRoot, { skipSDKVersionRequirement: true });\n const appDir = getRouterDirectoryWithManifest(projectRoot, exp);\n const injectFaviconTag = await getVirtualFaviconAssetsAsync(projectRoot, {\n outputDir,\n baseUrl,\n files,\n });\n\n const devServer = devServerManager.getDefaultDevServer();\n assert(devServer instanceof MetroBundlerDevServer);\n\n const [resources, { manifest, serverManifest, renderAsync }] = await Promise.all([\n devServer.getStaticResourcesAsync({\n isExporting: true,\n mode: 'production',\n minify,\n includeSourceMaps,\n baseUrl,\n }),\n devServer.getStaticRenderFunctionAsync({\n mode: 'production',\n minify,\n baseUrl,\n }),\n ]);\n\n debug('Routes:\\n', inspect(manifest, { colors: true, depth: null }));\n\n await getFilesToExportFromServerAsync(projectRoot, {\n files,\n manifest,\n // Servers can handle group routes automatically and therefore\n // don't require the build-time generation of every possible group\n // variation.\n includeGroupVariations: !exportServer,\n async renderAsync(pathname: string) {\n const template = await renderAsync(pathname);\n let html = await serializeHtmlWithAssets({\n mode: 'production',\n resources: resources.artifacts,\n template,\n baseUrl,\n });\n\n if (injectFaviconTag) {\n html = injectFaviconTag(html);\n }\n\n return html;\n },\n });\n\n getFilesFromSerialAssets(resources.artifacts, {\n includeSourceMaps,\n files,\n });\n\n if (resources.assets) {\n // TODO: Collect files without writing to disk.\n await persistMetroAssetsAsync(resources.assets, {\n platform: 'web',\n outputDirectory: outputDir,\n baseUrl,\n });\n }\n\n if (exportServer) {\n const apiRoutes = await exportApiRoutesAsync({\n outputDir,\n server: devServer,\n appDir,\n manifest: serverManifest,\n baseUrl,\n });\n\n // Add the api routes to the files to export.\n for (const [route, contents] of apiRoutes) {\n files.set(route, contents);\n }\n } else {\n warnPossibleInvalidExportType(appDir);\n }\n\n return files;\n}\n\nexport function getHtmlFiles({\n manifest,\n includeGroupVariations,\n}: {\n manifest: any;\n includeGroupVariations?: boolean;\n}): string[] {\n const htmlFiles = new Set<string>();\n\n function traverseScreens(screens: string | { screens: any; path: string }, baseUrl = '') {\n for (const value of Object.values(screens)) {\n if (typeof value === 'string') {\n let filePath = baseUrl + value;\n if (value === '') {\n filePath =\n baseUrl === ''\n ? 'index'\n : baseUrl.endsWith('/')\n ? baseUrl + 'index'\n : baseUrl.slice(0, -1);\n }\n if (includeGroupVariations) {\n // TODO: Dedupe requests for alias routes.\n addOptionalGroups(filePath);\n } else {\n htmlFiles.add(filePath);\n }\n } else if (typeof value === 'object' && value?.screens) {\n const newPath = baseUrl + value.path + '/';\n traverseScreens(value.screens, newPath);\n }\n }\n }\n\n function addOptionalGroups(path: string) {\n const variations = getPathVariations(path);\n for (const variation of variations) {\n htmlFiles.add(variation);\n }\n }\n\n traverseScreens(manifest.screens);\n\n return Array.from(htmlFiles).map((value) => {\n const parts = value.split('/');\n // Replace `:foo` with `[foo]` and `*foo` with `[...foo]`\n const partsWithGroups = parts.map((part) => {\n if (part === '*not-found') {\n return `+not-found`;\n } else if (part.startsWith(':')) {\n return `[${part.slice(1)}]`;\n } else if (part.startsWith('*')) {\n return `[...${part.slice(1)}]`;\n }\n return part;\n });\n return partsWithGroups.join('/') + '.html';\n });\n}\n\n// Given a route like `(foo)/bar/(baz)`, return all possible variations of the route.\n// e.g. `(foo)/bar/(baz)`, `(foo)/bar/baz`, `foo/bar/(baz)`, `foo/bar/baz`,\nexport function getPathVariations(routePath: string): string[] {\n const variations = new Set<string>();\n const segments = routePath.split('/');\n\n function generateVariations(segments: string[], current = ''): void {\n if (segments.length === 0) {\n if (current) variations.add(current);\n return;\n }\n\n const [head, ...rest] = segments;\n\n if (matchGroupName(head)) {\n const groups = head.slice(1, -1).split(',');\n\n if (groups.length > 1) {\n for (const group of groups) {\n // If there are multiple groups, recurse on each group.\n generateVariations([`(${group.trim()})`, ...rest], current);\n }\n return;\n } else {\n // Start a fork where this group is included\n generateVariations(rest, current ? `${current}/(${groups[0]})` : `(${groups[0]})`);\n // This code will continue and add paths without this group included`\n }\n } else if (current) {\n current = `${current}/${head}`;\n } else {\n current = head;\n }\n\n generateVariations(rest, current);\n }\n\n generateVariations(segments);\n\n return Array.from(variations);\n}\n\nasync function exportApiRoutesAsync({\n outputDir,\n server,\n appDir,\n baseUrl,\n ...props\n}: {\n outputDir: string;\n server: MetroBundlerDevServer;\n appDir: string;\n manifest: ExpoRouterServerManifestV1;\n baseUrl: string;\n}): Promise<ExportAssetMap> {\n const functionsDir = '_expo/functions';\n const funcDir = path.join(outputDir, functionsDir);\n fs.mkdirSync(path.join(funcDir), { recursive: true });\n\n const { manifest, files } = await server.exportExpoRouterApiRoutesAsync({\n mode: 'production',\n appDir,\n outputDir: functionsDir,\n prerenderManifest: props.manifest,\n baseUrl,\n });\n\n Log.log(chalk.bold`Exporting ${files.size} API Routes.`);\n\n files.set('_expo/routes.json', { contents: JSON.stringify(manifest, null, 2) });\n\n return files;\n}\n\nfunction warnPossibleInvalidExportType(appDir: string) {\n const apiRoutes = getApiRoutesForDirectory(appDir);\n if (apiRoutes.length) {\n // TODO: Allow API Routes for native-only.\n Log.warn(\n chalk.yellow`Skipping export for API routes because \\`web.output\\` is not \"server\". You may want to remove the routes: ${apiRoutes\n .map((v) => path.relative(appDir, v))\n .join(', ')}`\n );\n }\n}\n"],"names":["unstable_exportStaticAsync","getFilesToExportFromServerAsync","getHtmlFiles","getPathVariations","debug","require","projectRoot","options","Log","warn","learnMore","port","getFreePortAsync","devServerManager","DevServerManager","minify","mode","location","resetDevServer","clear","startAsync","type","isExporting","exportFromServerAsync","stopAsync","matchGroupName","name","match","manifest","renderAsync","includeGroupVariations","files","Map","Promise","all","map","outputPath","pathname","replace","set","contents","data","routeId","e","logMetroErrorAsync","error","Error","outputDir","baseUrl","exportServer","includeSourceMaps","exp","getConfig","skipSDKVersionRequirement","appDir","getRouterDirectoryWithManifest","injectFaviconTag","getVirtualFaviconAssetsAsync","devServer","getDefaultDevServer","assert","MetroBundlerDevServer","resources","serverManifest","getStaticResourcesAsync","getStaticRenderFunctionAsync","inspect","colors","depth","template","html","serializeHtmlWithAssets","artifacts","getFilesFromSerialAssets","assets","persistMetroAssetsAsync","platform","outputDirectory","apiRoutes","exportApiRoutesAsync","server","route","warnPossibleInvalidExportType","htmlFiles","Set","traverseScreens","screens","value","Object","values","filePath","endsWith","slice","addOptionalGroups","add","newPath","path","variations","variation","Array","from","parts","split","partsWithGroups","part","startsWith","join","routePath","segments","generateVariations","current","length","head","rest","groups","group","trim","props","functionsDir","funcDir","fs","mkdirSync","recursive","exportExpoRouterApiRoutesAsync","prerenderManifest","log","chalk","bold","size","JSON","stringify","getApiRoutesForDirectory","yellow","v","relative"],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.getUserDefinedFaviconFile = getUserDefinedFaviconFile;
|
|
6
|
+
exports.getVirtualFaviconAssetsAsync = getVirtualFaviconAssetsAsync;
|
|
7
|
+
exports.getFaviconFromExpoConfigAsync = getFaviconFromExpoConfigAsync;
|
|
8
|
+
var _config = require("@expo/config");
|
|
9
|
+
var _imageUtils = require("@expo/image-utils");
|
|
10
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
11
|
+
var _path = _interopRequireDefault(require("path"));
|
|
12
|
+
var _publicFolder = require("./publicFolder");
|
|
13
|
+
function _interopRequireDefault(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const debug = require("debug")("expo:favicon");
|
|
19
|
+
function getUserDefinedFaviconFile(projectRoot) {
|
|
20
|
+
return (0, _publicFolder).getUserDefinedFile(projectRoot, [
|
|
21
|
+
"./favicon.ico"
|
|
22
|
+
]);
|
|
23
|
+
}
|
|
24
|
+
async function getVirtualFaviconAssetsAsync(projectRoot, { baseUrl , outputDir , files }) {
|
|
25
|
+
const existing = getUserDefinedFaviconFile(projectRoot);
|
|
26
|
+
if (existing) {
|
|
27
|
+
debug("Using user-defined favicon.ico file.");
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const data = await getFaviconFromExpoConfigAsync(projectRoot);
|
|
31
|
+
if (!data) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
await Promise.all([
|
|
35
|
+
data
|
|
36
|
+
].map(async (asset)=>{
|
|
37
|
+
const assetPath = _path.default.join(outputDir, asset.path);
|
|
38
|
+
if (files) {
|
|
39
|
+
debug("Storing asset for persisting: " + assetPath);
|
|
40
|
+
files == null ? void 0 : files.set(asset.path, {
|
|
41
|
+
contents: asset.source
|
|
42
|
+
});
|
|
43
|
+
} else {
|
|
44
|
+
debug("Writing asset to disk: " + assetPath);
|
|
45
|
+
await _fs.default.promises.writeFile(assetPath, asset.source);
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
function injectFaviconTag(html) {
|
|
49
|
+
if (!html.includes("</head>")) {
|
|
50
|
+
return html;
|
|
51
|
+
}
|
|
52
|
+
return html.replace("</head>", `<link rel="shortcut icon" href="${baseUrl}/favicon.ico" /></head>`);
|
|
53
|
+
}
|
|
54
|
+
return injectFaviconTag;
|
|
55
|
+
}
|
|
56
|
+
async function getFaviconFromExpoConfigAsync(projectRoot) {
|
|
57
|
+
var ref;
|
|
58
|
+
const { exp } = (0, _config).getConfig(projectRoot);
|
|
59
|
+
var ref1;
|
|
60
|
+
const src = (ref1 = (ref = exp.web) == null ? void 0 : ref.favicon) != null ? ref1 : null;
|
|
61
|
+
if (!src) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const dims = [
|
|
65
|
+
16,
|
|
66
|
+
32,
|
|
67
|
+
48
|
|
68
|
+
];
|
|
69
|
+
const cacheType = "favicon";
|
|
70
|
+
const size = dims[dims.length - 1];
|
|
71
|
+
const { source } = await (0, _imageUtils).generateImageAsync({
|
|
72
|
+
projectRoot,
|
|
73
|
+
cacheType
|
|
74
|
+
}, {
|
|
75
|
+
resizeMode: "contain",
|
|
76
|
+
src,
|
|
77
|
+
backgroundColor: "transparent",
|
|
78
|
+
width: size,
|
|
79
|
+
height: size,
|
|
80
|
+
name: `favicon-${size}.png`
|
|
81
|
+
});
|
|
82
|
+
const faviconBuffer = await (0, _imageUtils).generateFaviconAsync(source, dims);
|
|
83
|
+
return {
|
|
84
|
+
source: faviconBuffer,
|
|
85
|
+
path: "favicon.ico"
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=favicon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/export/favicon.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport { generateFaviconAsync, generateImageAsync } from '@expo/image-utils';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { getUserDefinedFile } from './publicFolder';\nimport { ExportAssetMap } from './saveAssets';\n\nconst debug = require('debug')('expo:favicon') as typeof console.log;\n\n/** @returns the file system path for a user-defined favicon.ico file in the public folder. */\nexport function getUserDefinedFaviconFile(projectRoot: string): string | null {\n return getUserDefinedFile(projectRoot, ['./favicon.ico']);\n}\n\nexport async function getVirtualFaviconAssetsAsync(\n projectRoot: string,\n { baseUrl, outputDir, files }: { outputDir: string; baseUrl: string; files?: ExportAssetMap }\n): Promise<((html: string) => string) | null> {\n const existing = getUserDefinedFaviconFile(projectRoot);\n if (existing) {\n debug('Using user-defined favicon.ico file.');\n return null;\n }\n\n const data = await getFaviconFromExpoConfigAsync(projectRoot);\n\n if (!data) {\n return null;\n }\n\n await Promise.all(\n [data].map(async (asset) => {\n const assetPath = path.join(outputDir, asset.path);\n if (files) {\n debug('Storing asset for persisting: ' + assetPath);\n files?.set(asset.path, { contents: asset.source });\n } else {\n debug('Writing asset to disk: ' + assetPath);\n await fs.promises.writeFile(assetPath, asset.source);\n }\n })\n );\n\n function injectFaviconTag(html: string): string {\n if (!html.includes('</head>')) {\n return html;\n }\n return html.replace(\n '</head>',\n `<link rel=\"shortcut icon\" href=\"${baseUrl}/favicon.ico\" /></head>`\n );\n }\n\n return injectFaviconTag;\n}\n\nexport async function getFaviconFromExpoConfigAsync(projectRoot: string) {\n const { exp } = getConfig(projectRoot);\n\n const src = exp.web?.favicon ?? null;\n if (!src) {\n return null;\n }\n\n const dims = [16, 32, 48];\n const cacheType = 'favicon';\n\n const size = dims[dims.length - 1];\n const { source } = await generateImageAsync(\n { projectRoot, cacheType },\n {\n resizeMode: 'contain',\n src,\n backgroundColor: 'transparent',\n width: size,\n height: size,\n name: `favicon-${size}.png`,\n }\n );\n\n const faviconBuffer = await generateFaviconAsync(source, dims);\n\n return { source: faviconBuffer, path: 'favicon.ico' };\n}\n"],"names":["getUserDefinedFaviconFile","getVirtualFaviconAssetsAsync","getFaviconFromExpoConfigAsync","debug","require","projectRoot","getUserDefinedFile","baseUrl","outputDir","files","existing","data","Promise","all","map","asset","assetPath","path","join","set","contents","source","fs","promises","writeFile","injectFaviconTag","html","includes","replace","exp","getConfig","src","web","favicon","dims","cacheType","size","length","generateImageAsync","resizeMode","backgroundColor","width","height","name","faviconBuffer","generateFaviconAsync"],"mappings":"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"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.createBundlesAsync = createBundlesAsync;
|
|
6
|
+
exports.getAssets = getAssets;
|
|
7
|
+
var _config = require("@expo/config");
|
|
8
|
+
var _assert = _interopRequireDefault(require("assert"));
|
|
9
|
+
var _metro = _interopRequireDefault(require("metro"));
|
|
10
|
+
var _getAssets = _interopRequireDefault(require("metro/src/DeltaBundler/Serializers/getAssets"));
|
|
11
|
+
var _server = _interopRequireDefault(require("metro/src/Server"));
|
|
12
|
+
var _splitBundleOptions = _interopRequireDefault(require("metro/src/lib/splitBundleOptions"));
|
|
13
|
+
var _path = _interopRequireDefault(require("path"));
|
|
14
|
+
var _exportHermes = require("./exportHermes");
|
|
15
|
+
var _instantiateMetro = require("../start/server/metro/instantiateMetro");
|
|
16
|
+
var _manifestMiddleware = require("../start/server/middleware/ManifestMiddleware");
|
|
17
|
+
var _metroOptions = require("../start/server/middleware/metroOptions");
|
|
18
|
+
function _interopRequireDefault(obj) {
|
|
19
|
+
return obj && obj.__esModule ? obj : {
|
|
20
|
+
default: obj
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
let nextBuildID = 0;
|
|
24
|
+
async function assertEngineMismatchAsync(projectRoot, exp, platform) {
|
|
25
|
+
const isHermesManaged = (0, _exportHermes).isEnableHermesManaged(exp, platform);
|
|
26
|
+
const paths = (0, _config).getConfigFilePaths(projectRoot);
|
|
27
|
+
var _dynamicConfigPath, ref;
|
|
28
|
+
const configFilePath = (ref = (_dynamicConfigPath = paths.dynamicConfigPath) != null ? _dynamicConfigPath : paths.staticConfigPath) != null ? ref : "app.json";
|
|
29
|
+
await (0, _exportHermes).maybeThrowFromInconsistentEngineAsync(projectRoot, configFilePath, platform, isHermesManaged);
|
|
30
|
+
}
|
|
31
|
+
async function createBundlesAsync(projectRoot, projectConfig, bundleOptions) {
|
|
32
|
+
if (!bundleOptions.platforms.length) {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
const { exp , pkg } = projectConfig;
|
|
36
|
+
var _entryPoint;
|
|
37
|
+
const bundles = await bundleProductionMetroClientAsync(projectRoot, exp, {
|
|
38
|
+
// If not legacy, ignore the target option to prevent warnings from being thrown.
|
|
39
|
+
resetCache: bundleOptions.clear,
|
|
40
|
+
maxWorkers: bundleOptions.maxWorkers
|
|
41
|
+
}, bundleOptions.platforms.map((platform)=>({
|
|
42
|
+
platform,
|
|
43
|
+
entryPoint: (_entryPoint = bundleOptions.entryPoint) != null ? _entryPoint : (0, _manifestMiddleware).getEntryWithServerRoot(projectRoot, {
|
|
44
|
+
platform,
|
|
45
|
+
pkg
|
|
46
|
+
}),
|
|
47
|
+
sourcemaps: bundleOptions.sourcemaps,
|
|
48
|
+
minify: bundleOptions.minify,
|
|
49
|
+
dev: bundleOptions.dev
|
|
50
|
+
})
|
|
51
|
+
));
|
|
52
|
+
// { ios: bundle, android: bundle }
|
|
53
|
+
return bundleOptions.platforms.reduce((prev, platform, index)=>({
|
|
54
|
+
...prev,
|
|
55
|
+
[platform]: bundles[index]
|
|
56
|
+
})
|
|
57
|
+
, {});
|
|
58
|
+
}
|
|
59
|
+
async function bundleProductionMetroClientAsync(projectRoot, expoConfig, metroOptions, bundles) {
|
|
60
|
+
// Assert early so the user doesn't have to wait until bundling is complete to find out that
|
|
61
|
+
// Hermes won't be available.
|
|
62
|
+
await Promise.all(bundles.map(({ platform })=>assertEngineMismatchAsync(projectRoot, expoConfig, platform)
|
|
63
|
+
));
|
|
64
|
+
const { config , reporter } = await (0, _instantiateMetro).loadMetroConfigAsync(projectRoot, metroOptions, {
|
|
65
|
+
exp: expoConfig,
|
|
66
|
+
isExporting: true
|
|
67
|
+
});
|
|
68
|
+
const metroServer = await _metro.default.runMetro(config, {
|
|
69
|
+
watch: false
|
|
70
|
+
});
|
|
71
|
+
const buildAsync = async (bundle)=>{
|
|
72
|
+
const buildID = `bundle_${nextBuildID++}_${bundle.platform}`;
|
|
73
|
+
const isHermes = (0, _exportHermes).isEnableHermesManaged(expoConfig, bundle.platform);
|
|
74
|
+
if (isHermes) {
|
|
75
|
+
await assertEngineMismatchAsync(projectRoot, expoConfig, bundle.platform);
|
|
76
|
+
}
|
|
77
|
+
const bundleOptions = {
|
|
78
|
+
..._server.default.DEFAULT_BUNDLE_OPTIONS,
|
|
79
|
+
sourceMapUrl: bundle.sourceMapUrl,
|
|
80
|
+
...(0, _metroOptions).getMetroDirectBundleOptions({
|
|
81
|
+
mainModuleName: bundle.entryPoint,
|
|
82
|
+
platform: bundle.platform,
|
|
83
|
+
mode: bundle.dev ? "development" : "production",
|
|
84
|
+
engine: isHermes ? "hermes" : undefined,
|
|
85
|
+
serializerIncludeMaps: bundle.sourcemaps,
|
|
86
|
+
// Bundle splitting on web-only for now.
|
|
87
|
+
// serializerOutput: bundle.platform === 'web' ? 'static' : undefined,
|
|
88
|
+
serializerOutput: "static",
|
|
89
|
+
serializerIncludeBytecode: isHermes,
|
|
90
|
+
baseUrl: (0, _metroOptions).getBaseUrlFromExpoConfig(expoConfig),
|
|
91
|
+
isExporting: true
|
|
92
|
+
}),
|
|
93
|
+
bundleType: "bundle",
|
|
94
|
+
inlineSourceMap: false,
|
|
95
|
+
createModuleIdFactory: config.serializer.createModuleIdFactory,
|
|
96
|
+
onProgress: (transformedFileCount, totalFileCount)=>{
|
|
97
|
+
reporter.update({
|
|
98
|
+
buildID,
|
|
99
|
+
type: "bundle_transform_progressed",
|
|
100
|
+
transformedFileCount,
|
|
101
|
+
totalFileCount
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const bundleDetails = {
|
|
106
|
+
...bundleOptions,
|
|
107
|
+
buildID
|
|
108
|
+
};
|
|
109
|
+
reporter.update({
|
|
110
|
+
buildID,
|
|
111
|
+
type: "bundle_build_started",
|
|
112
|
+
bundleDetails
|
|
113
|
+
});
|
|
114
|
+
try {
|
|
115
|
+
const artifacts = await forkMetroBuildAsync(metroServer, bundleOptions);
|
|
116
|
+
reporter.update({
|
|
117
|
+
buildID,
|
|
118
|
+
type: "bundle_build_done"
|
|
119
|
+
});
|
|
120
|
+
return artifacts;
|
|
121
|
+
} catch (error) {
|
|
122
|
+
reporter.update({
|
|
123
|
+
buildID,
|
|
124
|
+
type: "bundle_build_failed"
|
|
125
|
+
});
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
try {
|
|
130
|
+
return await Promise.all(bundles.map((bundle)=>buildAsync(bundle)
|
|
131
|
+
));
|
|
132
|
+
} catch (error) {
|
|
133
|
+
// New line so errors don't show up inline with the progress bar
|
|
134
|
+
console.log("");
|
|
135
|
+
throw error;
|
|
136
|
+
} finally{
|
|
137
|
+
metroServer.end();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async function getAssets(metro, options) {
|
|
141
|
+
const { entryFile , onProgress , resolverOptions , transformOptions } = (0, _splitBundleOptions).default(options);
|
|
142
|
+
// @ts-expect-error: _bundler isn't exposed on the type.
|
|
143
|
+
const dependencies = await metro._bundler.getDependencies([
|
|
144
|
+
entryFile
|
|
145
|
+
], transformOptions, resolverOptions, {
|
|
146
|
+
onProgress,
|
|
147
|
+
shallow: false,
|
|
148
|
+
lazy: false
|
|
149
|
+
});
|
|
150
|
+
// @ts-expect-error
|
|
151
|
+
const _config1 = metro._config;
|
|
152
|
+
return (0, _getAssets).default(dependencies, {
|
|
153
|
+
processModuleFilter: _config1.serializer.processModuleFilter,
|
|
154
|
+
assetPlugins: _config1.transformer.assetPlugins,
|
|
155
|
+
platform: transformOptions.platform,
|
|
156
|
+
projectRoot: _config1.projectRoot,
|
|
157
|
+
publicPath: _config1.transformer.publicPath
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function isMetroServerInstance(metro) {
|
|
161
|
+
return "_shouldAddModuleToIgnoreList" in metro;
|
|
162
|
+
}
|
|
163
|
+
async function forkMetroBuildAsync(metro, options) {
|
|
164
|
+
var ref;
|
|
165
|
+
if (!isMetroServerInstance(metro)) {
|
|
166
|
+
throw new Error("Expected Metro server instance to have private functions exposed.");
|
|
167
|
+
}
|
|
168
|
+
if (((ref = options.serializerOptions) == null ? void 0 : ref.output) !== "static") {
|
|
169
|
+
throw new Error("Only multi-serializer output is supported.");
|
|
170
|
+
}
|
|
171
|
+
const { entryFile , graphOptions , onProgress , resolverOptions , serializerOptions , transformOptions , } = (0, _splitBundleOptions).default(options);
|
|
172
|
+
const { prepend , graph } = await metro._bundler.buildGraph(entryFile, transformOptions, resolverOptions, {
|
|
173
|
+
onProgress,
|
|
174
|
+
shallow: graphOptions.shallow,
|
|
175
|
+
// @ts-expect-error
|
|
176
|
+
lazy: graphOptions.lazy
|
|
177
|
+
});
|
|
178
|
+
const entryPoint = metro._getEntryPointAbsolutePath(entryFile);
|
|
179
|
+
var _unstable_serverRoot;
|
|
180
|
+
const bundleOptions = {
|
|
181
|
+
asyncRequireModulePath: await metro._resolveRelativePath(metro._config.transformer.asyncRequireModulePath, {
|
|
182
|
+
relativeTo: "project",
|
|
183
|
+
resolverOptions,
|
|
184
|
+
transformOptions
|
|
185
|
+
}),
|
|
186
|
+
processModuleFilter: metro._config.serializer.processModuleFilter,
|
|
187
|
+
createModuleId: metro._createModuleId,
|
|
188
|
+
getRunModuleStatement: metro._config.serializer.getRunModuleStatement,
|
|
189
|
+
dev: transformOptions.dev,
|
|
190
|
+
includeAsyncPaths: graphOptions.lazy,
|
|
191
|
+
projectRoot: metro._config.projectRoot,
|
|
192
|
+
modulesOnly: serializerOptions.modulesOnly,
|
|
193
|
+
runBeforeMainModule: metro._config.serializer.getModulesRunBeforeMainModule(_path.default.relative(metro._config.projectRoot, entryPoint)),
|
|
194
|
+
runModule: serializerOptions.runModule,
|
|
195
|
+
sourceMapUrl: serializerOptions.sourceMapUrl,
|
|
196
|
+
sourceUrl: serializerOptions.sourceUrl,
|
|
197
|
+
inlineSourceMap: serializerOptions.inlineSourceMap,
|
|
198
|
+
serverRoot: (_unstable_serverRoot = metro._config.server.unstable_serverRoot) != null ? _unstable_serverRoot : metro._config.projectRoot,
|
|
199
|
+
shouldAddToIgnoreList: (module)=>metro._shouldAddModuleToIgnoreList(module)
|
|
200
|
+
,
|
|
201
|
+
// Custom options we pass to the serializer to emulate the URL query parameters.
|
|
202
|
+
serializerOptions: options.serializerOptions
|
|
203
|
+
};
|
|
204
|
+
const bundle = await metro._config.serializer.customSerializer(entryPoint, // @ts-expect-error: Metro is typed incorrectly
|
|
205
|
+
prepend, graph, bundleOptions);
|
|
206
|
+
try {
|
|
207
|
+
const parsed = typeof bundle === "string" ? JSON.parse(bundle) : bundle;
|
|
208
|
+
(0, _assert).default("artifacts" in parsed && Array.isArray(parsed.artifacts), "Expected serializer to return an object with key artifacts to contain an array of serial assets.");
|
|
209
|
+
return parsed;
|
|
210
|
+
} catch (error) {
|
|
211
|
+
throw new Error("Serializer did not return expected format. The project copy of `expo/metro-config` may be out of date. Error: " + error.message);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
//# sourceMappingURL=fork-bundleAsync.js.map
|