@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
|
@@ -14,45 +14,49 @@ function _export(target, all) {
|
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
_export(exports, {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
getFilesFromSerialAssets: function() {
|
|
18
|
+
return getFilesFromSerialAssets;
|
|
19
|
+
},
|
|
20
|
+
persistMetroFilesAsync: function() {
|
|
21
|
+
return persistMetroFilesAsync;
|
|
22
|
+
}
|
|
19
23
|
});
|
|
20
24
|
function _chalk() {
|
|
21
|
-
const data = /*#__PURE__*/
|
|
25
|
+
const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
|
|
22
26
|
_chalk = function() {
|
|
23
27
|
return data;
|
|
24
28
|
};
|
|
25
29
|
return data;
|
|
26
30
|
}
|
|
27
31
|
function _fs() {
|
|
28
|
-
const data = /*#__PURE__*/
|
|
32
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
29
33
|
_fs = function() {
|
|
30
34
|
return data;
|
|
31
35
|
};
|
|
32
36
|
return data;
|
|
33
37
|
}
|
|
34
38
|
function _path() {
|
|
35
|
-
const data = /*#__PURE__*/
|
|
39
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
36
40
|
_path = function() {
|
|
37
41
|
return data;
|
|
38
42
|
};
|
|
39
43
|
return data;
|
|
40
44
|
}
|
|
41
|
-
function
|
|
42
|
-
const data = /*#__PURE__*/
|
|
43
|
-
|
|
45
|
+
function _prettybytes() {
|
|
46
|
+
const data = /*#__PURE__*/ _interop_require_default(require("pretty-bytes"));
|
|
47
|
+
_prettybytes = function() {
|
|
44
48
|
return data;
|
|
45
49
|
};
|
|
46
50
|
return data;
|
|
47
51
|
}
|
|
48
52
|
const _log = require("../log");
|
|
49
53
|
const _env = require("../utils/env");
|
|
50
|
-
function
|
|
54
|
+
function _interop_require_default(obj) {
|
|
51
55
|
return obj && obj.__esModule ? obj : {
|
|
52
56
|
default: obj
|
|
53
57
|
};
|
|
54
58
|
}
|
|
55
|
-
const BLT =
|
|
59
|
+
const BLT = '\u203A';
|
|
56
60
|
async function persistMetroFilesAsync(files, outputDir) {
|
|
57
61
|
if (!files.size) {
|
|
58
62
|
return;
|
|
@@ -73,21 +77,21 @@ async function persistMetroFilesAsync(files, outputDir) {
|
|
|
73
77
|
const remainingEntries = [];
|
|
74
78
|
let hasServerOutput = false;
|
|
75
79
|
for (const asset of files.entries()){
|
|
76
|
-
hasServerOutput = hasServerOutput || asset[1].targetDomain ===
|
|
80
|
+
hasServerOutput = hasServerOutput || asset[1].targetDomain === 'server';
|
|
77
81
|
if (asset[1].assetId) assetEntries.push(asset);
|
|
78
82
|
else if (asset[1].routeId != null) routeEntries.push(asset);
|
|
79
83
|
else if (asset[1].apiRouteId != null) apiRouteEntries.push(asset);
|
|
80
84
|
else if (asset[1].rscId != null) rscEntries.push(asset);
|
|
81
85
|
else remainingEntries.push(asset);
|
|
82
86
|
}
|
|
83
|
-
const groups = groupBy(assetEntries, ([, { assetId
|
|
87
|
+
const groups = groupBy(assetEntries, ([, { assetId }])=>assetId);
|
|
84
88
|
const contentSize = (contents)=>{
|
|
85
|
-
const length = typeof contents ===
|
|
89
|
+
const length = typeof contents === 'string' ? Buffer.byteLength(contents, 'utf8') : contents.length;
|
|
86
90
|
return length;
|
|
87
91
|
};
|
|
88
92
|
const sizeStr = (contents)=>{
|
|
89
93
|
const length = contentSize(contents);
|
|
90
|
-
const size = _chalk().default.gray`(${(0,
|
|
94
|
+
const size = _chalk().default.gray`(${(0, _prettybytes().default)(length)})`;
|
|
91
95
|
return size;
|
|
92
96
|
};
|
|
93
97
|
// TODO: If any Expo Router is used, then use a new style which is more simple:
|
|
@@ -104,14 +108,14 @@ async function persistMetroFilesAsync(files, outputDir) {
|
|
|
104
108
|
if (showAdditionalInfo) {
|
|
105
109
|
if (assetGroups.length) {
|
|
106
110
|
const totalAssets = assetGroups.reduce((sum, [, assets])=>sum + assets.length, 0);
|
|
107
|
-
_log.Log.log(
|
|
111
|
+
_log.Log.log('');
|
|
108
112
|
_log.Log.log(_chalk().default.bold`${BLT} Assets (${totalAssets}):`);
|
|
109
113
|
for (const [assetId, assets] of assetGroups){
|
|
110
|
-
const averageContentSize = assets.reduce((sum, [, { contents
|
|
114
|
+
const averageContentSize = assets.reduce((sum, [, { contents }])=>sum + contentSize(contents), 0) / assets.length;
|
|
111
115
|
_log.Log.log(assetId, _chalk().default.gray(`(${[
|
|
112
|
-
assets.length > 1 ? `${assets.length} variations` :
|
|
113
|
-
`${(0,
|
|
114
|
-
].filter(Boolean).join(
|
|
116
|
+
assets.length > 1 ? `${assets.length} variations` : '',
|
|
117
|
+
`${(0, _prettybytes().default)(averageContentSize)}`
|
|
118
|
+
].filter(Boolean).join(' | ')})`));
|
|
115
119
|
}
|
|
116
120
|
}
|
|
117
121
|
}
|
|
@@ -124,8 +128,8 @@ async function persistMetroFilesAsync(files, outputDir) {
|
|
|
124
128
|
asset
|
|
125
129
|
]);
|
|
126
130
|
} else {
|
|
127
|
-
var
|
|
128
|
-
const platform = ((
|
|
131
|
+
var _filepath_match;
|
|
132
|
+
const platform = ((_filepath_match = filepath.match(/_expo\/static\/js\/([^/]+)\//)) == null ? void 0 : _filepath_match[1]) ?? 'web';
|
|
129
133
|
if (!bundles.has(platform)) bundles.set(platform, []);
|
|
130
134
|
bundles.get(platform).push([
|
|
131
135
|
filepath,
|
|
@@ -136,7 +140,7 @@ async function persistMetroFilesAsync(files, outputDir) {
|
|
|
136
140
|
[
|
|
137
141
|
...bundles.entries()
|
|
138
142
|
].forEach(([platform, assets])=>{
|
|
139
|
-
_log.Log.log(
|
|
143
|
+
_log.Log.log('');
|
|
140
144
|
_log.Log.log(_chalk().default.bold`${BLT} ${platform} bundles (${assets.length}):`);
|
|
141
145
|
const allAssets = assets.sort((a, b)=>a[0].localeCompare(b[0]));
|
|
142
146
|
while(allAssets.length){
|
|
@@ -144,7 +148,7 @@ async function persistMetroFilesAsync(files, outputDir) {
|
|
|
144
148
|
_log.Log.log(filePath, sizeStr(asset.contents));
|
|
145
149
|
if (filePath.match(/\.(js|hbc)$/)) {
|
|
146
150
|
// Get source map
|
|
147
|
-
const sourceMapIndex = allAssets.findIndex(([fp])=>fp === filePath +
|
|
151
|
+
const sourceMapIndex = allAssets.findIndex(([fp])=>fp === filePath + '.map');
|
|
148
152
|
if (sourceMapIndex !== -1) {
|
|
149
153
|
const [sourceMapFilePath, sourceMapAsset] = allAssets.splice(sourceMapIndex, 1)[0];
|
|
150
154
|
_log.Log.log(_chalk().default.gray(sourceMapFilePath), sizeStr(sourceMapAsset.contents));
|
|
@@ -153,51 +157,51 @@ async function persistMetroFilesAsync(files, outputDir) {
|
|
|
153
157
|
}
|
|
154
158
|
});
|
|
155
159
|
if (showAdditionalInfo && other.length) {
|
|
156
|
-
_log.Log.log(
|
|
160
|
+
_log.Log.log('');
|
|
157
161
|
_log.Log.log(_chalk().default.bold`${BLT} Files (${other.length}):`);
|
|
158
|
-
for (const [filePath,
|
|
159
|
-
_log.Log.log(filePath, sizeStr(
|
|
162
|
+
for (const [filePath, asset] of other.sort((a, b)=>a[0].localeCompare(b[0]))){
|
|
163
|
+
_log.Log.log(filePath, sizeStr(asset.contents));
|
|
160
164
|
}
|
|
161
165
|
}
|
|
162
166
|
if (rscEntries.length) {
|
|
163
|
-
_log.Log.log(
|
|
167
|
+
_log.Log.log('');
|
|
164
168
|
_log.Log.log(_chalk().default.bold`${BLT} React Server Components (${rscEntries.length}):`);
|
|
165
|
-
for (const [
|
|
166
|
-
const id =
|
|
167
|
-
_log.Log.log(
|
|
169
|
+
for (const [filePath, assets] of rscEntries.sort((a, b)=>a[0].length - b[0].length)){
|
|
170
|
+
const id = assets.rscId;
|
|
171
|
+
_log.Log.log('/' + (id === '' ? _chalk().default.gray(' (index)') : id), sizeStr(assets.contents), _chalk().default.gray(filePath));
|
|
168
172
|
}
|
|
169
173
|
}
|
|
170
174
|
if (routeEntries.length) {
|
|
171
|
-
_log.Log.log(
|
|
175
|
+
_log.Log.log('');
|
|
172
176
|
_log.Log.log(_chalk().default.bold`${BLT} Static routes (${routeEntries.length}):`);
|
|
173
|
-
for (const [,
|
|
174
|
-
const
|
|
175
|
-
_log.Log.log(
|
|
177
|
+
for (const [, assets] of routeEntries.sort((a, b)=>a[0].length - b[0].length)){
|
|
178
|
+
const id = assets.routeId;
|
|
179
|
+
_log.Log.log('/' + (id === '' ? _chalk().default.gray(' (index)') : id), sizeStr(assets.contents));
|
|
176
180
|
}
|
|
177
181
|
}
|
|
178
182
|
if (apiRouteEntries.length) {
|
|
179
|
-
const apiRoutesWithoutSourcemaps = apiRouteEntries.filter((route)=>!route[0].endsWith(
|
|
180
|
-
_log.Log.log(
|
|
183
|
+
const apiRoutesWithoutSourcemaps = apiRouteEntries.filter((route)=>!route[0].endsWith('.map'));
|
|
184
|
+
_log.Log.log('');
|
|
181
185
|
_log.Log.log(_chalk().default.bold`${BLT} API routes (${apiRoutesWithoutSourcemaps.length}):`);
|
|
182
|
-
for (const [apiRouteFilename,
|
|
183
|
-
const
|
|
184
|
-
const hasSourceMap = apiRouteEntries.find(([filename, route])=>filename !== apiRouteFilename && route.apiRouteId ===
|
|
185
|
-
_log.Log.log(
|
|
186
|
+
for (const [apiRouteFilename, assets] of apiRoutesWithoutSourcemaps.sort((a, b)=>a[0].length - b[0].length)){
|
|
187
|
+
const id = assets.apiRouteId;
|
|
188
|
+
const hasSourceMap = apiRouteEntries.find(([filename, route])=>filename !== apiRouteFilename && route.apiRouteId === assets.apiRouteId && filename.endsWith('.map'));
|
|
189
|
+
_log.Log.log(id === '' ? _chalk().default.gray(' (index)') : id, sizeStr(assets.contents), hasSourceMap ? _chalk().default.gray(`(source map ${sizeStr(hasSourceMap[1].contents)})`) : '');
|
|
186
190
|
}
|
|
187
191
|
}
|
|
188
192
|
// Decouple logging from writing for better performance.
|
|
189
193
|
await Promise.all([
|
|
190
194
|
...files.entries()
|
|
191
|
-
].sort(([a], [b])=>a.localeCompare(b)).map(async ([file, { contents
|
|
195
|
+
].sort(([a], [b])=>a.localeCompare(b)).map(async ([file, { contents, targetDomain }])=>{
|
|
192
196
|
// NOTE: Only use `targetDomain` if we have at least one server asset
|
|
193
|
-
const domain = hasServerOutput && targetDomain ||
|
|
197
|
+
const domain = hasServerOutput && targetDomain || '';
|
|
194
198
|
const outputPath = _path().default.join(outputDir, domain, file);
|
|
195
199
|
await _fs().default.promises.mkdir(_path().default.dirname(outputPath), {
|
|
196
200
|
recursive: true
|
|
197
201
|
});
|
|
198
202
|
await _fs().default.promises.writeFile(outputPath, contents);
|
|
199
203
|
}));
|
|
200
|
-
_log.Log.log(
|
|
204
|
+
_log.Log.log('');
|
|
201
205
|
}
|
|
202
206
|
function groupBy(array, key) {
|
|
203
207
|
const map = new Map();
|
|
@@ -209,15 +213,15 @@ function groupBy(array, key) {
|
|
|
209
213
|
});
|
|
210
214
|
return map;
|
|
211
215
|
}
|
|
212
|
-
function getFilesFromSerialAssets(resources, { includeSourceMaps
|
|
216
|
+
function getFilesFromSerialAssets(resources, { includeSourceMaps, files = new Map(), platform, isServerHosted = platform === 'web' }) {
|
|
213
217
|
resources.forEach((resource)=>{
|
|
214
|
-
if (resource.type ===
|
|
218
|
+
if (resource.type === 'css-external') {
|
|
215
219
|
return;
|
|
216
220
|
}
|
|
217
221
|
files.set(resource.filename, {
|
|
218
222
|
contents: resource.source,
|
|
219
223
|
originFilename: resource.originFilename,
|
|
220
|
-
targetDomain: isServerHosted ?
|
|
224
|
+
targetDomain: isServerHosted ? 'client' : undefined
|
|
221
225
|
});
|
|
222
226
|
});
|
|
223
227
|
return files;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/export/saveAssets.ts"],"sourcesContent":["/**\n * Copyright © 2023 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 type { SerialAsset } from '@expo/metro-config/build/serializer/serializerAssets';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport Metro from 'metro';\nimport path from 'path';\nimport prettyBytes from 'pretty-bytes';\n\nimport { Log } from '../log';\nimport { env } from '../utils/env';\n\nconst BLT = '\\u203A';\n\nexport type BundleOptions = {\n entryPoint: string;\n platform: 'android' | 'ios' | 'web';\n dev?: boolean;\n minify?: boolean;\n bytecode: boolean;\n sourceMapUrl?: string;\n sourcemaps?: boolean;\n};\n\nexport type BundleAssetWithFileHashes = Metro.AssetData & {\n fileHashes: string[]; // added by the hashAssets asset plugin\n};\n\nexport type BundleOutput = {\n artifacts: SerialAsset[];\n assets: readonly BundleAssetWithFileHashes[];\n};\n\nexport type ManifestAsset = { fileHashes: string[]; files: string[]; hash: string };\n\nexport type Asset = ManifestAsset | BundleAssetWithFileHashes;\n\nexport type ExportAssetDescriptor = {\n contents: string | Buffer;\n originFilename?: string;\n /** An identifier for grouping together variations of the same asset. */\n assetId?: string;\n /** Expo Router route path for formatting the HTML output. */\n routeId?: string;\n /** Expo Router API route path for formatting the server function output. */\n apiRouteId?: string;\n /** Expo Router route path for formatting the RSC output. */\n rscId?: string;\n /** A key for grouping together output files by server- or client-side. */\n targetDomain?: 'server' | 'client';\n};\n\nexport type ExportAssetMap = Map<string, ExportAssetDescriptor>;\n\nexport async function persistMetroFilesAsync(files: ExportAssetMap, outputDir: string) {\n if (!files.size) {\n return;\n }\n await fs.promises.mkdir(path.join(outputDir), { recursive: true });\n\n // Test fixtures:\n // Log.log(\n // JSON.stringify(\n // Object.fromEntries([...files.entries()].map(([k, v]) => [k, { ...v, contents: '' }]))\n // )\n // );\n\n const assetEntries: [string, ExportAssetDescriptor][] = [];\n const apiRouteEntries: [string, ExportAssetDescriptor][] = [];\n const routeEntries: [string, ExportAssetDescriptor][] = [];\n const rscEntries: [string, ExportAssetDescriptor][] = [];\n const remainingEntries: [string, ExportAssetDescriptor][] = [];\n\n let hasServerOutput = false;\n for (const asset of files.entries()) {\n hasServerOutput = hasServerOutput || asset[1].targetDomain === 'server';\n if (asset[1].assetId) assetEntries.push(asset);\n else if (asset[1].routeId != null) routeEntries.push(asset);\n else if (asset[1].apiRouteId != null) apiRouteEntries.push(asset);\n else if (asset[1].rscId != null) rscEntries.push(asset);\n else remainingEntries.push(asset);\n }\n\n const groups = groupBy(assetEntries, ([, { assetId }]) => assetId!);\n\n const contentSize = (contents: string | Buffer) => {\n const length =\n typeof contents === 'string' ? Buffer.byteLength(contents, 'utf8') : contents.length;\n return length;\n };\n\n const sizeStr = (contents: string | Buffer) => {\n const length = contentSize(contents);\n const size = chalk.gray`(${prettyBytes(length)})`;\n return size;\n };\n\n // TODO: If any Expo Router is used, then use a new style which is more simple:\n // `chalk.gray(/path/to/) + chalk.cyan('route')`\n // | index.html (1.2kb)\n // | /path\n // | other.html (1.2kb)\n\n const isExpoRouter = routeEntries.length;\n\n // Phase out printing all the assets as users can simply check the file system for more info.\n const showAdditionalInfo = !isExpoRouter || env.EXPO_DEBUG;\n\n const assetGroups = [...groups.entries()].sort((a, b) => a[0].localeCompare(b[0])) as [\n string,\n [string, ExportAssetDescriptor][],\n ][];\n\n if (showAdditionalInfo) {\n if (assetGroups.length) {\n const totalAssets = assetGroups.reduce((sum, [, assets]) => sum + assets.length, 0);\n\n Log.log('');\n Log.log(chalk.bold`${BLT} Assets (${totalAssets}):`);\n\n for (const [assetId, assets] of assetGroups) {\n const averageContentSize =\n assets.reduce((sum, [, { contents }]) => sum + contentSize(contents), 0) / assets.length;\n Log.log(\n assetId,\n chalk.gray(\n `(${[\n assets.length > 1 ? `${assets.length} variations` : '',\n `${prettyBytes(averageContentSize)}`,\n ]\n .filter(Boolean)\n .join(' | ')})`\n )\n );\n }\n }\n }\n\n const bundles: Map<string, [string, ExportAssetDescriptor][]> = new Map();\n const other: [string, ExportAssetDescriptor][] = [];\n\n remainingEntries.forEach(([filepath, asset]) => {\n if (!filepath.match(/_expo\\/static\\//)) {\n other.push([filepath, asset]);\n } else {\n const platform = filepath.match(/_expo\\/static\\/js\\/([^/]+)\\//)?.[1] ?? 'web';\n if (!bundles.has(platform)) bundles.set(platform, []);\n\n bundles.get(platform)!.push([filepath, asset]);\n }\n });\n\n [...bundles.entries()].forEach(([platform, assets]) => {\n Log.log('');\n Log.log(chalk.bold`${BLT} ${platform} bundles (${assets.length}):`);\n\n const allAssets = assets.sort((a, b) => a[0].localeCompare(b[0]));\n while (allAssets.length) {\n const [filePath, asset] = allAssets.shift()!;\n Log.log(filePath, sizeStr(asset.contents));\n if (filePath.match(/\\.(js|hbc)$/)) {\n // Get source map\n const sourceMapIndex = allAssets.findIndex(([fp]) => fp === filePath + '.map');\n if (sourceMapIndex !== -1) {\n const [sourceMapFilePath, sourceMapAsset] = allAssets.splice(sourceMapIndex, 1)[0];\n Log.log(chalk.gray(sourceMapFilePath), sizeStr(sourceMapAsset.contents));\n }\n }\n }\n });\n\n if (showAdditionalInfo && other.length) {\n Log.log('');\n Log.log(chalk.bold`${BLT} Files (${other.length}):`);\n\n for (const [filePath, asset] of other.sort((a, b) => a[0].localeCompare(b[0]))) {\n Log.log(filePath, sizeStr(asset.contents));\n }\n }\n\n if (rscEntries.length) {\n Log.log('');\n Log.log(chalk.bold`${BLT} React Server Components (${rscEntries.length}):`);\n\n for (const [filePath, assets] of rscEntries.sort((a, b) => a[0].length - b[0].length)) {\n const id = assets.rscId!;\n Log.log(\n '/' + (id === '' ? chalk.gray(' (index)') : id),\n sizeStr(assets.contents),\n chalk.gray(filePath)\n );\n }\n }\n\n if (routeEntries.length) {\n Log.log('');\n Log.log(chalk.bold`${BLT} Static routes (${routeEntries.length}):`);\n\n for (const [, assets] of routeEntries.sort((a, b) => a[0].length - b[0].length)) {\n const id = assets.routeId!;\n Log.log('/' + (id === '' ? chalk.gray(' (index)') : id), sizeStr(assets.contents));\n }\n }\n\n if (apiRouteEntries.length) {\n const apiRoutesWithoutSourcemaps = apiRouteEntries.filter(\n (route) => !route[0].endsWith('.map')\n );\n Log.log('');\n Log.log(chalk.bold`${BLT} API routes (${apiRoutesWithoutSourcemaps.length}):`);\n\n for (const [apiRouteFilename, assets] of apiRoutesWithoutSourcemaps.sort(\n (a, b) => a[0].length - b[0].length\n )) {\n const id = assets.apiRouteId!;\n const hasSourceMap = apiRouteEntries.find(\n ([filename, route]) =>\n filename !== apiRouteFilename &&\n route.apiRouteId === assets.apiRouteId &&\n filename.endsWith('.map')\n );\n Log.log(\n id === '' ? chalk.gray(' (index)') : id,\n sizeStr(assets.contents),\n hasSourceMap ? chalk.gray(`(source map ${sizeStr(hasSourceMap[1].contents)})`) : ''\n );\n }\n }\n\n // Decouple logging from writing for better performance.\n\n await Promise.all(\n [...files.entries()]\n .sort(([a], [b]) => a.localeCompare(b))\n .map(async ([file, { contents, targetDomain }]) => {\n // NOTE: Only use `targetDomain` if we have at least one server asset\n const domain = (hasServerOutput && targetDomain) || '';\n const outputPath = path.join(outputDir, domain, file);\n await fs.promises.mkdir(path.dirname(outputPath), { recursive: true });\n await fs.promises.writeFile(outputPath, contents);\n })\n );\n\n Log.log('');\n}\n\nfunction groupBy<T>(array: T[], key: (item: T) => string): Map<string, T[]> {\n const map = new Map<string, T[]>();\n array.forEach((item) => {\n const group = key(item);\n const list = map.get(group) ?? [];\n list.push(item);\n map.set(group, list);\n });\n return map;\n}\n\n// TODO: Move source map modification to the serializer\nexport function getFilesFromSerialAssets(\n resources: SerialAsset[],\n {\n includeSourceMaps,\n files = new Map(),\n platform,\n isServerHosted = platform === 'web',\n }: {\n includeSourceMaps: boolean;\n files?: ExportAssetMap;\n platform?: string;\n isServerHosted?: boolean;\n }\n) {\n resources.forEach((resource) => {\n if (resource.type === 'css-external') {\n return;\n }\n files.set(resource.filename, {\n contents: resource.source,\n originFilename: resource.originFilename,\n targetDomain: isServerHosted ? 'client' : undefined,\n });\n });\n\n return files;\n}\n"],"names":["persistMetroFilesAsync","getFilesFromSerialAssets","BLT","files","outputDir","size","fs","promises","mkdir","path","join","recursive","assetEntries","apiRouteEntries","routeEntries","rscEntries","remainingEntries","hasServerOutput","asset","entries","targetDomain","assetId","push","routeId","apiRouteId","rscId","groups","groupBy","contentSize","contents","length","Buffer","byteLength","sizeStr","chalk","gray","prettyBytes","isExpoRouter","showAdditionalInfo","env","EXPO_DEBUG","assetGroups","sort","a","b","localeCompare","totalAssets","reduce","sum","assets","Log","log","bold","averageContentSize","filter","Boolean","bundles","Map","other","forEach","filepath","match","platform","has","set","get","allAssets","filePath","shift","sourceMapIndex","findIndex","fp","sourceMapFilePath","sourceMapAsset","splice","id","apiRoutesWithoutSourcemaps","route","endsWith","apiRouteFilename","hasSourceMap","find","filename","Promise","all","map","file","domain","outputPath","dirname","writeFile","array","key","item","group","list","resources","includeSourceMaps","isServerHosted","resource","type","source","originFilename","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/export/saveAssets.ts"],"sourcesContent":["/**\n * Copyright © 2023 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 type { SerialAsset } from '@expo/metro-config/build/serializer/serializerAssets';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport Metro from 'metro';\nimport path from 'path';\nimport prettyBytes from 'pretty-bytes';\n\nimport { Log } from '../log';\nimport { env } from '../utils/env';\n\nconst BLT = '\\u203A';\n\nexport type BundleOptions = {\n entryPoint: string;\n platform: 'android' | 'ios' | 'web';\n dev?: boolean;\n minify?: boolean;\n bytecode: boolean;\n sourceMapUrl?: string;\n sourcemaps?: boolean;\n};\n\nexport type BundleAssetWithFileHashes = Metro.AssetData & {\n fileHashes: string[]; // added by the hashAssets asset plugin\n};\n\nexport type BundleOutput = {\n artifacts: SerialAsset[];\n assets: readonly BundleAssetWithFileHashes[];\n};\n\nexport type ManifestAsset = { fileHashes: string[]; files: string[]; hash: string };\n\nexport type Asset = ManifestAsset | BundleAssetWithFileHashes;\n\nexport type ExportAssetDescriptor = {\n contents: string | Buffer;\n originFilename?: string;\n /** An identifier for grouping together variations of the same asset. */\n assetId?: string;\n /** Expo Router route path for formatting the HTML output. */\n routeId?: string;\n /** Expo Router API route path for formatting the server function output. */\n apiRouteId?: string;\n /** Expo Router route path for formatting the RSC output. */\n rscId?: string;\n /** A key for grouping together output files by server- or client-side. */\n targetDomain?: 'server' | 'client';\n};\n\nexport type ExportAssetMap = Map<string, ExportAssetDescriptor>;\n\nexport async function persistMetroFilesAsync(files: ExportAssetMap, outputDir: string) {\n if (!files.size) {\n return;\n }\n await fs.promises.mkdir(path.join(outputDir), { recursive: true });\n\n // Test fixtures:\n // Log.log(\n // JSON.stringify(\n // Object.fromEntries([...files.entries()].map(([k, v]) => [k, { ...v, contents: '' }]))\n // )\n // );\n\n const assetEntries: [string, ExportAssetDescriptor][] = [];\n const apiRouteEntries: [string, ExportAssetDescriptor][] = [];\n const routeEntries: [string, ExportAssetDescriptor][] = [];\n const rscEntries: [string, ExportAssetDescriptor][] = [];\n const remainingEntries: [string, ExportAssetDescriptor][] = [];\n\n let hasServerOutput = false;\n for (const asset of files.entries()) {\n hasServerOutput = hasServerOutput || asset[1].targetDomain === 'server';\n if (asset[1].assetId) assetEntries.push(asset);\n else if (asset[1].routeId != null) routeEntries.push(asset);\n else if (asset[1].apiRouteId != null) apiRouteEntries.push(asset);\n else if (asset[1].rscId != null) rscEntries.push(asset);\n else remainingEntries.push(asset);\n }\n\n const groups = groupBy(assetEntries, ([, { assetId }]) => assetId!);\n\n const contentSize = (contents: string | Buffer) => {\n const length =\n typeof contents === 'string' ? Buffer.byteLength(contents, 'utf8') : contents.length;\n return length;\n };\n\n const sizeStr = (contents: string | Buffer) => {\n const length = contentSize(contents);\n const size = chalk.gray`(${prettyBytes(length)})`;\n return size;\n };\n\n // TODO: If any Expo Router is used, then use a new style which is more simple:\n // `chalk.gray(/path/to/) + chalk.cyan('route')`\n // | index.html (1.2kb)\n // | /path\n // | other.html (1.2kb)\n\n const isExpoRouter = routeEntries.length;\n\n // Phase out printing all the assets as users can simply check the file system for more info.\n const showAdditionalInfo = !isExpoRouter || env.EXPO_DEBUG;\n\n const assetGroups = [...groups.entries()].sort((a, b) => a[0].localeCompare(b[0])) as [\n string,\n [string, ExportAssetDescriptor][],\n ][];\n\n if (showAdditionalInfo) {\n if (assetGroups.length) {\n const totalAssets = assetGroups.reduce((sum, [, assets]) => sum + assets.length, 0);\n\n Log.log('');\n Log.log(chalk.bold`${BLT} Assets (${totalAssets}):`);\n\n for (const [assetId, assets] of assetGroups) {\n const averageContentSize =\n assets.reduce((sum, [, { contents }]) => sum + contentSize(contents), 0) / assets.length;\n Log.log(\n assetId,\n chalk.gray(\n `(${[\n assets.length > 1 ? `${assets.length} variations` : '',\n `${prettyBytes(averageContentSize)}`,\n ]\n .filter(Boolean)\n .join(' | ')})`\n )\n );\n }\n }\n }\n\n const bundles: Map<string, [string, ExportAssetDescriptor][]> = new Map();\n const other: [string, ExportAssetDescriptor][] = [];\n\n remainingEntries.forEach(([filepath, asset]) => {\n if (!filepath.match(/_expo\\/static\\//)) {\n other.push([filepath, asset]);\n } else {\n const platform = filepath.match(/_expo\\/static\\/js\\/([^/]+)\\//)?.[1] ?? 'web';\n if (!bundles.has(platform)) bundles.set(platform, []);\n\n bundles.get(platform)!.push([filepath, asset]);\n }\n });\n\n [...bundles.entries()].forEach(([platform, assets]) => {\n Log.log('');\n Log.log(chalk.bold`${BLT} ${platform} bundles (${assets.length}):`);\n\n const allAssets = assets.sort((a, b) => a[0].localeCompare(b[0]));\n while (allAssets.length) {\n const [filePath, asset] = allAssets.shift()!;\n Log.log(filePath, sizeStr(asset.contents));\n if (filePath.match(/\\.(js|hbc)$/)) {\n // Get source map\n const sourceMapIndex = allAssets.findIndex(([fp]) => fp === filePath + '.map');\n if (sourceMapIndex !== -1) {\n const [sourceMapFilePath, sourceMapAsset] = allAssets.splice(sourceMapIndex, 1)[0];\n Log.log(chalk.gray(sourceMapFilePath), sizeStr(sourceMapAsset.contents));\n }\n }\n }\n });\n\n if (showAdditionalInfo && other.length) {\n Log.log('');\n Log.log(chalk.bold`${BLT} Files (${other.length}):`);\n\n for (const [filePath, asset] of other.sort((a, b) => a[0].localeCompare(b[0]))) {\n Log.log(filePath, sizeStr(asset.contents));\n }\n }\n\n if (rscEntries.length) {\n Log.log('');\n Log.log(chalk.bold`${BLT} React Server Components (${rscEntries.length}):`);\n\n for (const [filePath, assets] of rscEntries.sort((a, b) => a[0].length - b[0].length)) {\n const id = assets.rscId!;\n Log.log(\n '/' + (id === '' ? chalk.gray(' (index)') : id),\n sizeStr(assets.contents),\n chalk.gray(filePath)\n );\n }\n }\n\n if (routeEntries.length) {\n Log.log('');\n Log.log(chalk.bold`${BLT} Static routes (${routeEntries.length}):`);\n\n for (const [, assets] of routeEntries.sort((a, b) => a[0].length - b[0].length)) {\n const id = assets.routeId!;\n Log.log('/' + (id === '' ? chalk.gray(' (index)') : id), sizeStr(assets.contents));\n }\n }\n\n if (apiRouteEntries.length) {\n const apiRoutesWithoutSourcemaps = apiRouteEntries.filter(\n (route) => !route[0].endsWith('.map')\n );\n Log.log('');\n Log.log(chalk.bold`${BLT} API routes (${apiRoutesWithoutSourcemaps.length}):`);\n\n for (const [apiRouteFilename, assets] of apiRoutesWithoutSourcemaps.sort(\n (a, b) => a[0].length - b[0].length\n )) {\n const id = assets.apiRouteId!;\n const hasSourceMap = apiRouteEntries.find(\n ([filename, route]) =>\n filename !== apiRouteFilename &&\n route.apiRouteId === assets.apiRouteId &&\n filename.endsWith('.map')\n );\n Log.log(\n id === '' ? chalk.gray(' (index)') : id,\n sizeStr(assets.contents),\n hasSourceMap ? chalk.gray(`(source map ${sizeStr(hasSourceMap[1].contents)})`) : ''\n );\n }\n }\n\n // Decouple logging from writing for better performance.\n\n await Promise.all(\n [...files.entries()]\n .sort(([a], [b]) => a.localeCompare(b))\n .map(async ([file, { contents, targetDomain }]) => {\n // NOTE: Only use `targetDomain` if we have at least one server asset\n const domain = (hasServerOutput && targetDomain) || '';\n const outputPath = path.join(outputDir, domain, file);\n await fs.promises.mkdir(path.dirname(outputPath), { recursive: true });\n await fs.promises.writeFile(outputPath, contents);\n })\n );\n\n Log.log('');\n}\n\nfunction groupBy<T>(array: T[], key: (item: T) => string): Map<string, T[]> {\n const map = new Map<string, T[]>();\n array.forEach((item) => {\n const group = key(item);\n const list = map.get(group) ?? [];\n list.push(item);\n map.set(group, list);\n });\n return map;\n}\n\n// TODO: Move source map modification to the serializer\nexport function getFilesFromSerialAssets(\n resources: SerialAsset[],\n {\n includeSourceMaps,\n files = new Map(),\n platform,\n isServerHosted = platform === 'web',\n }: {\n includeSourceMaps: boolean;\n files?: ExportAssetMap;\n platform?: string;\n isServerHosted?: boolean;\n }\n) {\n resources.forEach((resource) => {\n if (resource.type === 'css-external') {\n return;\n }\n files.set(resource.filename, {\n contents: resource.source,\n originFilename: resource.originFilename,\n targetDomain: isServerHosted ? 'client' : undefined,\n });\n });\n\n return files;\n}\n"],"names":["getFilesFromSerialAssets","persistMetroFilesAsync","BLT","files","outputDir","size","fs","promises","mkdir","path","join","recursive","assetEntries","apiRouteEntries","routeEntries","rscEntries","remainingEntries","hasServerOutput","asset","entries","targetDomain","assetId","push","routeId","apiRouteId","rscId","groups","groupBy","contentSize","contents","length","Buffer","byteLength","sizeStr","chalk","gray","prettyBytes","isExpoRouter","showAdditionalInfo","env","EXPO_DEBUG","assetGroups","sort","a","b","localeCompare","totalAssets","reduce","sum","assets","Log","log","bold","averageContentSize","filter","Boolean","bundles","Map","other","forEach","filepath","match","platform","has","set","get","allAssets","filePath","shift","sourceMapIndex","findIndex","fp","sourceMapFilePath","sourceMapAsset","splice","id","apiRoutesWithoutSourcemaps","route","endsWith","apiRouteFilename","hasSourceMap","find","filename","Promise","all","map","file","domain","outputPath","dirname","writeFile","array","key","item","group","list","resources","includeSourceMaps","isServerHosted","resource","type","source","originFilename","undefined"],"mappings":"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"}
|
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "exportWebAsync", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return exportWebAsync;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
11
|
function _config() {
|
|
10
12
|
const data = require("@expo/config");
|
|
@@ -14,32 +16,32 @@ function _config() {
|
|
|
14
16
|
return data;
|
|
15
17
|
}
|
|
16
18
|
function _chalk() {
|
|
17
|
-
const data = /*#__PURE__*/
|
|
19
|
+
const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
|
|
18
20
|
_chalk = function() {
|
|
19
21
|
return data;
|
|
20
22
|
};
|
|
21
23
|
return data;
|
|
22
24
|
}
|
|
23
25
|
const _log = require("../../log");
|
|
24
|
-
const
|
|
26
|
+
const _WebSupportProjectPrerequisite = require("../../start/doctor/web/WebSupportProjectPrerequisite");
|
|
25
27
|
const _platformBundlers = require("../../start/server/platformBundlers");
|
|
26
|
-
const
|
|
28
|
+
const _WebpackBundlerDevServer = require("../../start/server/webpack/WebpackBundlerDevServer");
|
|
27
29
|
const _errors = require("../../utils/errors");
|
|
28
30
|
const _nodeEnv = require("../../utils/nodeEnv");
|
|
29
|
-
function
|
|
31
|
+
function _interop_require_default(obj) {
|
|
30
32
|
return obj && obj.__esModule ? obj : {
|
|
31
33
|
default: obj
|
|
32
34
|
};
|
|
33
35
|
}
|
|
34
36
|
async function exportWebAsync(projectRoot, options) {
|
|
35
37
|
// Ensure webpack is available
|
|
36
|
-
await new
|
|
37
|
-
(0, _nodeEnv.setNodeEnv)(options.dev ?
|
|
38
|
-
require(
|
|
39
|
-
const { exp
|
|
38
|
+
await new _WebSupportProjectPrerequisite.WebSupportProjectPrerequisite(projectRoot).assertAsync();
|
|
39
|
+
(0, _nodeEnv.setNodeEnv)(options.dev ? 'development' : 'production');
|
|
40
|
+
require('@expo/env').load(projectRoot);
|
|
41
|
+
const { exp } = (0, _config().getConfig)(projectRoot);
|
|
40
42
|
const platformBundlers = (0, _platformBundlers.getPlatformBundlers)(projectRoot, exp);
|
|
41
43
|
// Create a bundler interface
|
|
42
|
-
const bundler = new
|
|
44
|
+
const bundler = new _WebpackBundlerDevServer.WebpackBundlerDevServer(projectRoot, platformBundlers);
|
|
43
45
|
// If the user set `web.bundler: 'metro'` then they should use `expo export` instead.
|
|
44
46
|
if (!bundler.isTargetingWeb()) {
|
|
45
47
|
throw new _errors.CommandError((0, _chalk().default)`{bold expo export:web} can only be used with Webpack. Use {bold expo export} for other bundlers.`);
|
|
@@ -47,7 +49,7 @@ async function exportWebAsync(projectRoot, options) {
|
|
|
47
49
|
_log.Log.log(`Exporting with Webpack...`);
|
|
48
50
|
// Bundle the app
|
|
49
51
|
await bundler.bundleAsync({
|
|
50
|
-
mode: options.dev ?
|
|
52
|
+
mode: options.dev ? 'development' : 'production',
|
|
51
53
|
clear: options.clear
|
|
52
54
|
});
|
|
53
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/export/web/exportWebAsync.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { Options } from './resolveOptions';\nimport { Log } from '../../log';\nimport { WebSupportProjectPrerequisite } from '../../start/doctor/web/WebSupportProjectPrerequisite';\nimport { getPlatformBundlers } from '../../start/server/platformBundlers';\nimport { WebpackBundlerDevServer } from '../../start/server/webpack/WebpackBundlerDevServer';\nimport { CommandError } from '../../utils/errors';\nimport { setNodeEnv } from '../../utils/nodeEnv';\n\nexport async function exportWebAsync(projectRoot: string, options: Options) {\n // Ensure webpack is available\n await new WebSupportProjectPrerequisite(projectRoot).assertAsync();\n\n setNodeEnv(options.dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n\n const { exp } = getConfig(projectRoot);\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n // Create a bundler interface\n const bundler = new WebpackBundlerDevServer(projectRoot, platformBundlers);\n\n // If the user set `web.bundler: 'metro'` then they should use `expo export` instead.\n if (!bundler.isTargetingWeb()) {\n throw new CommandError(\n chalk`{bold expo export:web} can only be used with Webpack. Use {bold expo export} for other bundlers.`\n );\n }\n\n Log.log(`Exporting with Webpack...`);\n\n // Bundle the app\n await bundler.bundleAsync({\n mode: options.dev ? 'development' : 'production',\n clear: options.clear,\n });\n}\n"],"names":["exportWebAsync","projectRoot","options","WebSupportProjectPrerequisite","assertAsync","setNodeEnv","dev","require","load","exp","getConfig","platformBundlers","getPlatformBundlers","bundler","WebpackBundlerDevServer","isTargetingWeb","CommandError","chalk","Log","log","bundleAsync","mode","clear"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/export/web/exportWebAsync.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport chalk from 'chalk';\n\nimport { Options } from './resolveOptions';\nimport { Log } from '../../log';\nimport { WebSupportProjectPrerequisite } from '../../start/doctor/web/WebSupportProjectPrerequisite';\nimport { getPlatformBundlers } from '../../start/server/platformBundlers';\nimport { WebpackBundlerDevServer } from '../../start/server/webpack/WebpackBundlerDevServer';\nimport { CommandError } from '../../utils/errors';\nimport { setNodeEnv } from '../../utils/nodeEnv';\n\nexport async function exportWebAsync(projectRoot: string, options: Options) {\n // Ensure webpack is available\n await new WebSupportProjectPrerequisite(projectRoot).assertAsync();\n\n setNodeEnv(options.dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n\n const { exp } = getConfig(projectRoot);\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n // Create a bundler interface\n const bundler = new WebpackBundlerDevServer(projectRoot, platformBundlers);\n\n // If the user set `web.bundler: 'metro'` then they should use `expo export` instead.\n if (!bundler.isTargetingWeb()) {\n throw new CommandError(\n chalk`{bold expo export:web} can only be used with Webpack. Use {bold expo export} for other bundlers.`\n );\n }\n\n Log.log(`Exporting with Webpack...`);\n\n // Bundle the app\n await bundler.bundleAsync({\n mode: options.dev ? 'development' : 'production',\n clear: options.clear,\n });\n}\n"],"names":["exportWebAsync","projectRoot","options","WebSupportProjectPrerequisite","assertAsync","setNodeEnv","dev","require","load","exp","getConfig","platformBundlers","getPlatformBundlers","bundler","WebpackBundlerDevServer","isTargetingWeb","CommandError","chalk","Log","log","bundleAsync","mode","clear"],"mappings":";;;;+BAWsBA;;;eAAAA;;;;yBAXI;;;;;;;gEACR;;;;;;qBAGE;+CAC0B;kCACV;yCACI;wBACX;yBACF;;;;;;AAEpB,eAAeA,eAAeC,WAAmB,EAAEC,OAAgB;IACxE,8BAA8B;IAC9B,MAAM,IAAIC,4DAA6B,CAACF,aAAaG,WAAW;IAEhEC,IAAAA,mBAAU,EAACH,QAAQI,GAAG,GAAG,gBAAgB;IACzCC,QAAQ,aAAaC,IAAI,CAACP;IAE1B,MAAM,EAAEQ,GAAG,EAAE,GAAGC,IAAAA,mBAAS,EAACT;IAC1B,MAAMU,mBAAmBC,IAAAA,qCAAmB,EAACX,aAAaQ;IAC1D,6BAA6B;IAC7B,MAAMI,UAAU,IAAIC,gDAAuB,CAACb,aAAaU;IAEzD,qFAAqF;IACrF,IAAI,CAACE,QAAQE,cAAc,IAAI;QAC7B,MAAM,IAAIC,oBAAY,CACpBC,IAAAA,gBAAK,CAAA,CAAC,gGAAgG,CAAC;IAE3G;IAEAC,QAAG,CAACC,GAAG,CAAC,CAAC,yBAAyB,CAAC;IAEnC,iBAAiB;IACjB,MAAMN,QAAQO,WAAW,CAAC;QACxBC,MAAMnB,QAAQI,GAAG,GAAG,gBAAgB;QACpCgB,OAAOpB,QAAQoB,KAAK;IACtB;AACF"}
|
|
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "expoExportWeb", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return expoExportWeb;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
12
|
function _chalk() {
|
|
11
|
-
const data = /*#__PURE__*/
|
|
13
|
+
const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
|
|
12
14
|
_chalk = function() {
|
|
13
15
|
return data;
|
|
14
16
|
};
|
|
@@ -16,7 +18,7 @@ function _chalk() {
|
|
|
16
18
|
}
|
|
17
19
|
const _args = require("../../utils/args");
|
|
18
20
|
const _errors = require("../../utils/errors");
|
|
19
|
-
function
|
|
21
|
+
function _interop_require_default(obj) {
|
|
20
22
|
return obj && obj.__esModule ? obj : {
|
|
21
23
|
default: obj
|
|
22
24
|
};
|
|
@@ -29,7 +31,7 @@ function _getRequireWildcardCache(nodeInterop) {
|
|
|
29
31
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
30
32
|
})(nodeInterop);
|
|
31
33
|
}
|
|
32
|
-
function
|
|
34
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
33
35
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
34
36
|
return obj;
|
|
35
37
|
}
|
|
@@ -42,7 +44,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
42
44
|
if (cache && cache.has(obj)) {
|
|
43
45
|
return cache.get(obj);
|
|
44
46
|
}
|
|
45
|
-
var newObj = {
|
|
47
|
+
var newObj = {
|
|
48
|
+
__proto__: null
|
|
49
|
+
};
|
|
46
50
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
47
51
|
for(var key in obj){
|
|
48
52
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -63,25 +67,25 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
63
67
|
const expoExportWeb = async (argv)=>{
|
|
64
68
|
const args = (0, _args.assertArgs)({
|
|
65
69
|
// Types
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
'--help': Boolean,
|
|
71
|
+
'--clear': Boolean,
|
|
72
|
+
'--dev': Boolean,
|
|
69
73
|
// Aliases
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
'-h': '--help',
|
|
75
|
+
'-c': '--clear'
|
|
72
76
|
}, argv);
|
|
73
|
-
if (args[
|
|
77
|
+
if (args['--help']) {
|
|
74
78
|
(0, _args.printHelp)(`(Deprecated) Bundle the static files of the web app with Webpack for hosting on a web server`, (0, _chalk().default)`npx expo export:web {dim <dir>}`, [
|
|
75
79
|
(0, _chalk().default)`<dir> Directory of the Expo project. {dim Default: Current working directory}`,
|
|
76
80
|
`--dev Bundle in development mode`,
|
|
77
81
|
`-c, --clear Clear the bundler cache`,
|
|
78
|
-
`-h, --help Usage info
|
|
79
|
-
].join(
|
|
82
|
+
`-h, --help Usage info`
|
|
83
|
+
].join('\n'));
|
|
80
84
|
}
|
|
81
85
|
const projectRoot = (0, _args.getProjectRoot)(args);
|
|
82
|
-
const { resolveOptionsAsync
|
|
86
|
+
const { resolveOptionsAsync } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./resolveOptions.js")));
|
|
83
87
|
const options = await resolveOptionsAsync(args).catch(_errors.logCmdError);
|
|
84
|
-
const { exportWebAsync
|
|
88
|
+
const { exportWebAsync } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./exportWebAsync.js")));
|
|
85
89
|
return exportWebAsync(projectRoot, options).catch(_errors.logCmdError);
|
|
86
90
|
};
|
|
87
91
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/export/web/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk';\n\nimport { Command } from '../../../bin/cli';\nimport { assertArgs, getProjectRoot, printHelp } from '../../utils/args';\nimport { logCmdError } from '../../utils/errors';\n\nexport const expoExportWeb: Command = async (argv) => {\n const args = assertArgs(\n {\n // Types\n '--help': Boolean,\n '--clear': Boolean,\n '--dev': Boolean,\n // Aliases\n '-h': '--help',\n '-c': '--clear',\n },\n argv\n );\n\n if (args['--help']) {\n printHelp(\n `(Deprecated) Bundle the static files of the web app with Webpack for hosting on a web server`,\n chalk`npx expo export:web {dim <dir>}`,\n [\n chalk`<dir> Directory of the Expo project. {dim Default: Current working directory}`,\n `--dev Bundle in development mode`,\n `-c, --clear Clear the bundler cache`,\n `-h, --help Usage info`,\n ].join('\\n')\n );\n }\n\n const projectRoot = getProjectRoot(args);\n const { resolveOptionsAsync } = await import('./resolveOptions.js');\n const options = await resolveOptionsAsync(args).catch(logCmdError);\n\n const { exportWebAsync } = await import('./exportWebAsync.js');\n return exportWebAsync(projectRoot, options).catch(logCmdError);\n};\n"],"names":["expoExportWeb","argv","args","assertArgs","Boolean","printHelp","chalk","join","projectRoot","getProjectRoot","resolveOptionsAsync","options","catch","logCmdError","exportWebAsync"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/export/web/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk';\n\nimport { Command } from '../../../bin/cli';\nimport { assertArgs, getProjectRoot, printHelp } from '../../utils/args';\nimport { logCmdError } from '../../utils/errors';\n\nexport const expoExportWeb: Command = async (argv) => {\n const args = assertArgs(\n {\n // Types\n '--help': Boolean,\n '--clear': Boolean,\n '--dev': Boolean,\n // Aliases\n '-h': '--help',\n '-c': '--clear',\n },\n argv\n );\n\n if (args['--help']) {\n printHelp(\n `(Deprecated) Bundle the static files of the web app with Webpack for hosting on a web server`,\n chalk`npx expo export:web {dim <dir>}`,\n [\n chalk`<dir> Directory of the Expo project. {dim Default: Current working directory}`,\n `--dev Bundle in development mode`,\n `-c, --clear Clear the bundler cache`,\n `-h, --help Usage info`,\n ].join('\\n')\n );\n }\n\n const projectRoot = getProjectRoot(args);\n const { resolveOptionsAsync } = await import('./resolveOptions.js');\n const options = await resolveOptionsAsync(args).catch(logCmdError);\n\n const { exportWebAsync } = await import('./exportWebAsync.js');\n return exportWebAsync(projectRoot, options).catch(logCmdError);\n};\n"],"names":["expoExportWeb","argv","args","assertArgs","Boolean","printHelp","chalk","join","projectRoot","getProjectRoot","resolveOptionsAsync","options","catch","logCmdError","exportWebAsync"],"mappings":";;;;;+BAOaA;;;eAAAA;;;;gEANK;;;;;;sBAGoC;wBAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAErB,MAAMA,gBAAyB,OAAOC;IAC3C,MAAMC,OAAOC,IAAAA,gBAAU,EACrB;QACE,QAAQ;QACR,UAAUC;QACV,WAAWA;QACX,SAASA;QACT,UAAU;QACV,MAAM;QACN,MAAM;IACR,GACAH;IAGF,IAAIC,IAAI,CAAC,SAAS,EAAE;QAClBG,IAAAA,eAAS,EACP,CAAC,4FAA4F,CAAC,EAC9FC,IAAAA,gBAAK,CAAA,CAAC,+BAA+B,CAAC,EACtC;YACEA,IAAAA,gBAAK,CAAA,CAAC,qGAAqG,CAAC;YAC5G,CAAC,wDAAwD,CAAC;YAC1D,CAAC,qDAAqD,CAAC;YACvD,CAAC,wCAAwC,CAAC;SAC3C,CAACC,IAAI,CAAC;IAEX;IAEA,MAAMC,cAAcC,IAAAA,oBAAc,EAACP;IACnC,MAAM,EAAEQ,mBAAmB,EAAE,GAAG,MAAM,mEAAA,QAAO;IAC7C,MAAMC,UAAU,MAAMD,oBAAoBR,MAAMU,KAAK,CAACC,mBAAW;IAEjE,MAAM,EAAEC,cAAc,EAAE,GAAG,MAAM,mEAAA,QAAO;IACxC,OAAOA,eAAeN,aAAaG,SAASC,KAAK,CAACC,mBAAW;AAC/D"}
|
|
@@ -4,12 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "resolveOptionsAsync", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return resolveOptionsAsync;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
11
|
async function resolveOptionsAsync(args) {
|
|
10
12
|
return {
|
|
11
|
-
clear: !!args[
|
|
12
|
-
dev: !!args[
|
|
13
|
+
clear: !!args['--clear'],
|
|
14
|
+
dev: !!args['--dev']
|
|
13
15
|
};
|
|
14
16
|
}
|
|
15
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/export/web/resolveOptions.ts"],"sourcesContent":["export type Options = {\n dev: boolean;\n clear: boolean;\n};\n\nexport async function resolveOptionsAsync(args: any): Promise<Options> {\n return {\n clear: !!args['--clear'],\n dev: !!args['--dev'],\n };\n}\n"],"names":["resolveOptionsAsync","args","clear","dev"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/export/web/resolveOptions.ts"],"sourcesContent":["export type Options = {\n dev: boolean;\n clear: boolean;\n};\n\nexport async function resolveOptionsAsync(args: any): Promise<Options> {\n return {\n clear: !!args['--clear'],\n dev: !!args['--dev'],\n };\n}\n"],"names":["resolveOptionsAsync","args","clear","dev"],"mappings":";;;;+BAKsBA;;;eAAAA;;;AAAf,eAAeA,oBAAoBC,IAAS;IACjD,OAAO;QACLC,OAAO,CAAC,CAACD,IAAI,CAAC,UAAU;QACxBE,KAAK,CAAC,CAACF,IAAI,CAAC,QAAQ;IACtB;AACF"}
|
|
@@ -4,9 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "createAssetMap", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return createAssetMap;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
|
-
function createAssetMap({ assets
|
|
11
|
+
function createAssetMap({ assets }) {
|
|
10
12
|
// Convert the assets array to a k/v pair where the asset hash is the key and the asset is the value.
|
|
11
13
|
return Object.fromEntries(assets.map((asset)=>[
|
|
12
14
|
asset.hash,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/export/writeContents.ts"],"sourcesContent":["import { Asset } from './saveAssets';\n\nexport function createAssetMap({ assets }: { assets: Asset[] }) {\n // Convert the assets array to a k/v pair where the asset hash is the key and the asset is the value.\n return Object.fromEntries(assets.map((asset) => [asset.hash, asset]));\n}\n"],"names":["createAssetMap","assets","Object","fromEntries","map","asset","hash"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/export/writeContents.ts"],"sourcesContent":["import { Asset } from './saveAssets';\n\nexport function createAssetMap({ assets }: { assets: Asset[] }) {\n // Convert the assets array to a k/v pair where the asset hash is the key and the asset is the value.\n return Object.fromEntries(assets.map((asset) => [asset.hash, asset]));\n}\n"],"names":["createAssetMap","assets","Object","fromEntries","map","asset","hash"],"mappings":";;;;+BAEgBA;;;eAAAA;;;AAAT,SAASA,eAAe,EAAEC,MAAM,EAAuB;IAC5D,qGAAqG;IACrG,OAAOC,OAAOC,WAAW,CAACF,OAAOG,GAAG,CAAC,CAACC,QAAU;YAACA,MAAMC,IAAI;YAAED;SAAM;AACrE"}
|