@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/run/ios/options/resolveNativeScheme.ts"],"sourcesContent":["import { IOSConfig } from '@expo/config-plugins';\nimport chalk from 'chalk';\nimport path from 'path';\n\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\nimport { profile } from '../../../utils/profile';\nimport { selectAsync } from '../../../utils/prompts';\nimport { Options, ProjectInfo, XcodeConfiguration } from '../XcodeBuild.types';\n\nconst debug = require('debug')('expo:run:ios:options:resolveNativeScheme') as typeof console.log;\n\ntype NativeSchemeProps = {\n name: string;\n osType?: string;\n};\n\nexport async function resolveNativeSchemePropsAsync(\n projectRoot: string,\n options: Pick<Options, 'scheme' | 'configuration'>,\n xcodeProject: ProjectInfo\n): Promise<NativeSchemeProps> {\n return (\n (await promptOrQueryNativeSchemeAsync(projectRoot, options)) ??\n getDefaultNativeScheme(projectRoot, options, xcodeProject)\n );\n}\n\n/** Resolve the native iOS build `scheme` for a given `configuration`. If the `scheme` isn't provided then the user will be prompted to select one. */\nexport async function promptOrQueryNativeSchemeAsync(\n projectRoot: string,\n { scheme, configuration }: { scheme?: string | boolean; configuration?: XcodeConfiguration }\n): Promise<NativeSchemeProps | null> {\n const schemes = IOSConfig.BuildScheme.getRunnableSchemesFromXcodeproj(projectRoot, {\n configuration,\n });\n\n if (!schemes.length) {\n throw new CommandError('IOS_MALFORMED', 'No native iOS build schemes found');\n }\n\n if (scheme === true) {\n if (schemes.length === 1) {\n Log.log(`Auto selecting only available scheme: ${schemes[0].name}`);\n return schemes[0];\n }\n const resolvedSchemeName = await selectAsync(\n 'Select a scheme',\n schemes.map((value) => {\n const isApp =\n value.type === IOSConfig.Target.TargetType.APPLICATION && value.osType === 'iOS';\n return {\n value: value.name,\n title: isApp ? chalk.bold(value.name) + chalk.gray(' (app)') : value.name,\n };\n }),\n {\n nonInteractiveHelp: `--scheme: argument must be provided with a string in non-interactive mode. Valid choices are: ${schemes.join(\n ', '\n )}`,\n }\n );\n return schemes.find(({ name }) => resolvedSchemeName === name) ?? null;\n }\n // Attempt to match the schemes up so we can open the correct simulator\n return scheme ? schemes.find(({ name }) => name === scheme) || { name: scheme } : null;\n}\n\nexport function getDefaultNativeScheme(\n projectRoot: string,\n options: Pick<Options, 'configuration'>,\n xcodeProject: Pick<ProjectInfo, 'name'>\n): NativeSchemeProps {\n // If the resolution failed then we should just use the first runnable scheme that\n // matches the provided configuration.\n const resolvedSchemes = profile(IOSConfig.BuildScheme.getRunnableSchemesFromXcodeproj)(\n projectRoot,\n {\n configuration: options.configuration,\n }\n );\n\n // If there are multiple schemes, then the default should be the application.\n if (resolvedSchemes.length > 1) {\n const scheme =\n resolvedSchemes.find(({ type }) => type === IOSConfig.Target.TargetType.APPLICATION) ??\n resolvedSchemes[0];\n debug(`Using default scheme: ${scheme.name}`);\n return scheme;\n }\n\n // If we couldn't find the scheme, then we'll guess at it,\n // this is needed for cases where the native code hasn't been generated yet.\n if (resolvedSchemes[0]) {\n return resolvedSchemes[0];\n }\n return {\n name: path.basename(xcodeProject.name, path.extname(xcodeProject.name)),\n };\n}\n"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../../../src/run/ios/options/resolveNativeScheme.ts"],"sourcesContent":["import { IOSConfig } from '@expo/config-plugins';\nimport chalk from 'chalk';\nimport path from 'path';\n\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\nimport { profile } from '../../../utils/profile';\nimport { selectAsync } from '../../../utils/prompts';\nimport { Options, ProjectInfo, XcodeConfiguration } from '../XcodeBuild.types';\n\nconst debug = require('debug')('expo:run:ios:options:resolveNativeScheme') as typeof console.log;\n\ntype NativeSchemeProps = {\n name: string;\n osType?: string;\n};\n\nexport async function resolveNativeSchemePropsAsync(\n projectRoot: string,\n options: Pick<Options, 'scheme' | 'configuration'>,\n xcodeProject: ProjectInfo\n): Promise<NativeSchemeProps> {\n return (\n (await promptOrQueryNativeSchemeAsync(projectRoot, options)) ??\n getDefaultNativeScheme(projectRoot, options, xcodeProject)\n );\n}\n\n/** Resolve the native iOS build `scheme` for a given `configuration`. If the `scheme` isn't provided then the user will be prompted to select one. */\nexport async function promptOrQueryNativeSchemeAsync(\n projectRoot: string,\n { scheme, configuration }: { scheme?: string | boolean; configuration?: XcodeConfiguration }\n): Promise<NativeSchemeProps | null> {\n const schemes = IOSConfig.BuildScheme.getRunnableSchemesFromXcodeproj(projectRoot, {\n configuration,\n });\n\n if (!schemes.length) {\n throw new CommandError('IOS_MALFORMED', 'No native iOS build schemes found');\n }\n\n if (scheme === true) {\n if (schemes.length === 1) {\n Log.log(`Auto selecting only available scheme: ${schemes[0].name}`);\n return schemes[0];\n }\n const resolvedSchemeName = await selectAsync(\n 'Select a scheme',\n schemes.map((value) => {\n const isApp =\n value.type === IOSConfig.Target.TargetType.APPLICATION && value.osType === 'iOS';\n return {\n value: value.name,\n title: isApp ? chalk.bold(value.name) + chalk.gray(' (app)') : value.name,\n };\n }),\n {\n nonInteractiveHelp: `--scheme: argument must be provided with a string in non-interactive mode. Valid choices are: ${schemes.join(\n ', '\n )}`,\n }\n );\n return schemes.find(({ name }) => resolvedSchemeName === name) ?? null;\n }\n // Attempt to match the schemes up so we can open the correct simulator\n return scheme ? schemes.find(({ name }) => name === scheme) || { name: scheme } : null;\n}\n\nexport function getDefaultNativeScheme(\n projectRoot: string,\n options: Pick<Options, 'configuration'>,\n xcodeProject: Pick<ProjectInfo, 'name'>\n): NativeSchemeProps {\n // If the resolution failed then we should just use the first runnable scheme that\n // matches the provided configuration.\n const resolvedSchemes = profile(IOSConfig.BuildScheme.getRunnableSchemesFromXcodeproj)(\n projectRoot,\n {\n configuration: options.configuration,\n }\n );\n\n // If there are multiple schemes, then the default should be the application.\n if (resolvedSchemes.length > 1) {\n const scheme =\n resolvedSchemes.find(({ type }) => type === IOSConfig.Target.TargetType.APPLICATION) ??\n resolvedSchemes[0];\n debug(`Using default scheme: ${scheme.name}`);\n return scheme;\n }\n\n // If we couldn't find the scheme, then we'll guess at it,\n // this is needed for cases where the native code hasn't been generated yet.\n if (resolvedSchemes[0]) {\n return resolvedSchemes[0];\n }\n return {\n name: path.basename(xcodeProject.name, path.extname(xcodeProject.name)),\n };\n}\n"],"names":["getDefaultNativeScheme","promptOrQueryNativeSchemeAsync","resolveNativeSchemePropsAsync","debug","require","projectRoot","options","xcodeProject","scheme","configuration","schemes","IOSConfig","BuildScheme","getRunnableSchemesFromXcodeproj","length","CommandError","Log","log","name","resolvedSchemeName","selectAsync","map","value","isApp","type","Target","TargetType","APPLICATION","osType","title","chalk","bold","gray","nonInteractiveHelp","join","find","resolvedSchemes","profile","path","basename","extname"],"mappings":";;;;;;;;;;;IAoEgBA,sBAAsB;eAAtBA;;IAvCMC,8BAA8B;eAA9BA;;IAZAC,6BAA6B;eAA7BA;;;;yBAjBI;;;;;;;gEACR;;;;;;;gEACD;;;;;;6DAEI;wBACQ;yBACL;yBACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG5B,MAAMC,QAAQC,QAAQ,SAAS;AAOxB,eAAeF,8BACpBG,WAAmB,EACnBC,OAAkD,EAClDC,YAAyB;IAEzB,OACE,AAAC,MAAMN,+BAA+BI,aAAaC,YACnDN,uBAAuBK,aAAaC,SAASC;AAEjD;AAGO,eAAeN,+BACpBI,WAAmB,EACnB,EAAEG,MAAM,EAAEC,aAAa,EAAqE;IAE5F,MAAMC,UAAUC,0BAAS,CAACC,WAAW,CAACC,+BAA+B,CAACR,aAAa;QACjFI;IACF;IAEA,IAAI,CAACC,QAAQI,MAAM,EAAE;QACnB,MAAM,IAAIC,oBAAY,CAAC,iBAAiB;IAC1C;IAEA,IAAIP,WAAW,MAAM;QACnB,IAAIE,QAAQI,MAAM,KAAK,GAAG;YACxBE,KAAIC,GAAG,CAAC,CAAC,sCAAsC,EAAEP,OAAO,CAAC,EAAE,CAACQ,IAAI,EAAE;YAClE,OAAOR,OAAO,CAAC,EAAE;QACnB;QACA,MAAMS,qBAAqB,MAAMC,IAAAA,oBAAW,EAC1C,mBACAV,QAAQW,GAAG,CAAC,CAACC;YACX,MAAMC,QACJD,MAAME,IAAI,KAAKb,0BAAS,CAACc,MAAM,CAACC,UAAU,CAACC,WAAW,IAAIL,MAAMM,MAAM,KAAK;YAC7E,OAAO;gBACLN,OAAOA,MAAMJ,IAAI;gBACjBW,OAAON,QAAQO,gBAAK,CAACC,IAAI,CAACT,MAAMJ,IAAI,IAAIY,gBAAK,CAACE,IAAI,CAAC,YAAYV,MAAMJ,IAAI;YAC3E;QACF,IACA;YACEe,oBAAoB,CAAC,8FAA8F,EAAEvB,QAAQwB,IAAI,CAC/H,OACC;QACL;QAEF,OAAOxB,QAAQyB,IAAI,CAAC,CAAC,EAAEjB,IAAI,EAAE,GAAKC,uBAAuBD,SAAS;IACpE;IACA,uEAAuE;IACvE,OAAOV,SAASE,QAAQyB,IAAI,CAAC,CAAC,EAAEjB,IAAI,EAAE,GAAKA,SAASV,WAAW;QAAEU,MAAMV;IAAO,IAAI;AACpF;AAEO,SAASR,uBACdK,WAAmB,EACnBC,OAAuC,EACvCC,YAAuC;IAEvC,kFAAkF;IAClF,sCAAsC;IACtC,MAAM6B,kBAAkBC,IAAAA,gBAAO,EAAC1B,0BAAS,CAACC,WAAW,CAACC,+BAA+B,EACnFR,aACA;QACEI,eAAeH,QAAQG,aAAa;IACtC;IAGF,6EAA6E;IAC7E,IAAI2B,gBAAgBtB,MAAM,GAAG,GAAG;QAC9B,MAAMN,SACJ4B,gBAAgBD,IAAI,CAAC,CAAC,EAAEX,IAAI,EAAE,GAAKA,SAASb,0BAAS,CAACc,MAAM,CAACC,UAAU,CAACC,WAAW,KACnFS,eAAe,CAAC,EAAE;QACpBjC,MAAM,CAAC,sBAAsB,EAAEK,OAAOU,IAAI,EAAE;QAC5C,OAAOV;IACT;IAEA,0DAA0D;IAC1D,4EAA4E;IAC5E,IAAI4B,eAAe,CAAC,EAAE,EAAE;QACtB,OAAOA,eAAe,CAAC,EAAE;IAC3B;IACA,OAAO;QACLlB,MAAMoB,eAAI,CAACC,QAAQ,CAAChC,aAAaW,IAAI,EAAEoB,eAAI,CAACE,OAAO,CAACjC,aAAaW,IAAI;IACvE;AACF"}
|
|
@@ -4,7 +4,9 @@ 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
|
const _resolveDevice = require("./resolveDevice");
|
|
10
12
|
const _resolveNativeScheme = require("./resolveNativeScheme");
|
|
@@ -17,9 +19,9 @@ async function resolveOptionsAsync(projectRoot, options) {
|
|
|
17
19
|
const bundlerProps = await (0, _resolveBundlerProps.resolveBundlerPropsAsync)(projectRoot, options);
|
|
18
20
|
// Resolve the scheme before the device so we can filter devices based on
|
|
19
21
|
// whichever scheme is selected (i.e. don't present TV devices if the scheme cannot be run on a TV).
|
|
20
|
-
const { osType
|
|
22
|
+
const { osType, name: scheme } = await (0, _resolveNativeScheme.resolveNativeSchemePropsAsync)(projectRoot, options, xcodeProject);
|
|
21
23
|
// Use the configuration or `Debug` if none is provided.
|
|
22
|
-
const configuration = options.configuration ||
|
|
24
|
+
const configuration = options.configuration || 'Debug';
|
|
23
25
|
// Resolve the device based on the provided device id or prompt
|
|
24
26
|
// from a list of devices (connected or simulated) that are filtered by the scheme.
|
|
25
27
|
const device = await (0, _profile.profile)(_resolveDevice.resolveDeviceAsync)(options.device, {
|
|
@@ -34,10 +36,10 @@ async function resolveOptionsAsync(projectRoot, options) {
|
|
|
34
36
|
// The cache is reset in `../node_modules/react-native/scripts/react-native-xcode.sh` when the
|
|
35
37
|
// project is running in Debug and built onto a physical device. It seems that this is done because
|
|
36
38
|
// the script is run from Xcode and unaware of the CLI instance.
|
|
37
|
-
const shouldSkipInitialBundling = configuration ===
|
|
39
|
+
const shouldSkipInitialBundling = configuration === 'Debug' && !isSimulator;
|
|
38
40
|
return {
|
|
39
41
|
...bundlerProps,
|
|
40
|
-
shouldStartBundler: options.configuration ===
|
|
42
|
+
shouldStartBundler: options.configuration === 'Debug' || bundlerProps.shouldStartBundler,
|
|
41
43
|
projectRoot,
|
|
42
44
|
isSimulator,
|
|
43
45
|
xcodeProject,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/run/ios/options/resolveOptions.ts"],"sourcesContent":["import { isSimulatorDevice, resolveDeviceAsync } from './resolveDevice';\nimport { resolveNativeSchemePropsAsync } from './resolveNativeScheme';\nimport { resolveXcodeProject } from './resolveXcodeProject';\nimport { isOSType } from '../../../start/platforms/ios/simctl';\nimport { profile } from '../../../utils/profile';\nimport { resolveBundlerPropsAsync } from '../../resolveBundlerProps';\nimport { BuildProps, Options } from '../XcodeBuild.types';\n\n/** Resolve arguments for the `run:ios` command. */\nexport async function resolveOptionsAsync(\n projectRoot: string,\n options: Options\n): Promise<BuildProps> {\n const xcodeProject = resolveXcodeProject(projectRoot);\n\n const bundlerProps = await resolveBundlerPropsAsync(projectRoot, options);\n\n // Resolve the scheme before the device so we can filter devices based on\n // whichever scheme is selected (i.e. don't present TV devices if the scheme cannot be run on a TV).\n const { osType, name: scheme } = await resolveNativeSchemePropsAsync(\n projectRoot,\n options,\n xcodeProject\n );\n\n // Use the configuration or `Debug` if none is provided.\n const configuration = options.configuration || 'Debug';\n\n // Resolve the device based on the provided device id or prompt\n // from a list of devices (connected or simulated) that are filtered by the scheme.\n const device = await profile(resolveDeviceAsync)(options.device, {\n // It's unclear if there's any value to asserting that we haven't hardcoded the os type in the CLI.\n osType: isOSType(osType) ? osType : undefined,\n xcodeProject,\n scheme,\n configuration,\n });\n\n const isSimulator = isSimulatorDevice(device);\n\n // This optimization skips resetting the Metro cache needlessly.\n // The cache is reset in `../node_modules/react-native/scripts/react-native-xcode.sh` when the\n // project is running in Debug and built onto a physical device. It seems that this is done because\n // the script is run from Xcode and unaware of the CLI instance.\n const shouldSkipInitialBundling = configuration === 'Debug' && !isSimulator;\n\n return {\n ...bundlerProps,\n shouldStartBundler: options.configuration === 'Debug' || bundlerProps.shouldStartBundler,\n projectRoot,\n isSimulator,\n xcodeProject,\n device,\n configuration,\n shouldSkipInitialBundling,\n buildCache: options.buildCache !== false,\n scheme,\n };\n}\n"],"names":["resolveOptionsAsync","projectRoot","options","xcodeProject","resolveXcodeProject","bundlerProps","resolveBundlerPropsAsync","osType","name","scheme","resolveNativeSchemePropsAsync","configuration","device","profile","resolveDeviceAsync","isOSType","undefined","isSimulator","isSimulatorDevice","shouldSkipInitialBundling","shouldStartBundler","buildCache"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/run/ios/options/resolveOptions.ts"],"sourcesContent":["import { isSimulatorDevice, resolveDeviceAsync } from './resolveDevice';\nimport { resolveNativeSchemePropsAsync } from './resolveNativeScheme';\nimport { resolveXcodeProject } from './resolveXcodeProject';\nimport { isOSType } from '../../../start/platforms/ios/simctl';\nimport { profile } from '../../../utils/profile';\nimport { resolveBundlerPropsAsync } from '../../resolveBundlerProps';\nimport { BuildProps, Options } from '../XcodeBuild.types';\n\n/** Resolve arguments for the `run:ios` command. */\nexport async function resolveOptionsAsync(\n projectRoot: string,\n options: Options\n): Promise<BuildProps> {\n const xcodeProject = resolveXcodeProject(projectRoot);\n\n const bundlerProps = await resolveBundlerPropsAsync(projectRoot, options);\n\n // Resolve the scheme before the device so we can filter devices based on\n // whichever scheme is selected (i.e. don't present TV devices if the scheme cannot be run on a TV).\n const { osType, name: scheme } = await resolveNativeSchemePropsAsync(\n projectRoot,\n options,\n xcodeProject\n );\n\n // Use the configuration or `Debug` if none is provided.\n const configuration = options.configuration || 'Debug';\n\n // Resolve the device based on the provided device id or prompt\n // from a list of devices (connected or simulated) that are filtered by the scheme.\n const device = await profile(resolveDeviceAsync)(options.device, {\n // It's unclear if there's any value to asserting that we haven't hardcoded the os type in the CLI.\n osType: isOSType(osType) ? osType : undefined,\n xcodeProject,\n scheme,\n configuration,\n });\n\n const isSimulator = isSimulatorDevice(device);\n\n // This optimization skips resetting the Metro cache needlessly.\n // The cache is reset in `../node_modules/react-native/scripts/react-native-xcode.sh` when the\n // project is running in Debug and built onto a physical device. It seems that this is done because\n // the script is run from Xcode and unaware of the CLI instance.\n const shouldSkipInitialBundling = configuration === 'Debug' && !isSimulator;\n\n return {\n ...bundlerProps,\n shouldStartBundler: options.configuration === 'Debug' || bundlerProps.shouldStartBundler,\n projectRoot,\n isSimulator,\n xcodeProject,\n device,\n configuration,\n shouldSkipInitialBundling,\n buildCache: options.buildCache !== false,\n scheme,\n };\n}\n"],"names":["resolveOptionsAsync","projectRoot","options","xcodeProject","resolveXcodeProject","bundlerProps","resolveBundlerPropsAsync","osType","name","scheme","resolveNativeSchemePropsAsync","configuration","device","profile","resolveDeviceAsync","isOSType","undefined","isSimulator","isSimulatorDevice","shouldSkipInitialBundling","shouldStartBundler","buildCache"],"mappings":";;;;+BASsBA;;;eAAAA;;;+BATgC;qCACR;qCACV;wBACX;yBACD;qCACiB;AAIlC,eAAeA,oBACpBC,WAAmB,EACnBC,OAAgB;IAEhB,MAAMC,eAAeC,IAAAA,wCAAmB,EAACH;IAEzC,MAAMI,eAAe,MAAMC,IAAAA,6CAAwB,EAACL,aAAaC;IAEjE,yEAAyE;IACzE,oGAAoG;IACpG,MAAM,EAAEK,MAAM,EAAEC,MAAMC,MAAM,EAAE,GAAG,MAAMC,IAAAA,kDAA6B,EAClET,aACAC,SACAC;IAGF,wDAAwD;IACxD,MAAMQ,gBAAgBT,QAAQS,aAAa,IAAI;IAE/C,+DAA+D;IAC/D,mFAAmF;IACnF,MAAMC,SAAS,MAAMC,IAAAA,gBAAO,EAACC,iCAAkB,EAAEZ,QAAQU,MAAM,EAAE;QAC/D,mGAAmG;QACnGL,QAAQQ,IAAAA,gBAAQ,EAACR,UAAUA,SAASS;QACpCb;QACAM;QACAE;IACF;IAEA,MAAMM,cAAcC,IAAAA,gCAAiB,EAACN;IAEtC,gEAAgE;IAChE,8FAA8F;IAC9F,mGAAmG;IACnG,gEAAgE;IAChE,MAAMO,4BAA4BR,kBAAkB,WAAW,CAACM;IAEhE,OAAO;QACL,GAAGZ,YAAY;QACfe,oBAAoBlB,QAAQS,aAAa,KAAK,WAAWN,aAAae,kBAAkB;QACxFnB;QACAgB;QACAd;QACAS;QACAD;QACAQ;QACAE,YAAYnB,QAAQmB,UAAU,KAAK;QACnCZ;IACF;AACF"}
|
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "resolveXcodeProject", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return resolveXcodeProject;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
11
|
function _glob() {
|
|
10
12
|
const data = require("glob");
|
|
@@ -15,7 +17,7 @@ function _glob() {
|
|
|
15
17
|
}
|
|
16
18
|
const _errors = require("../../../utils/errors");
|
|
17
19
|
const ignoredPaths = [
|
|
18
|
-
|
|
20
|
+
'**/@(Carthage|Pods|vendor|node_modules)/**'
|
|
19
21
|
];
|
|
20
22
|
function findXcodeProjectPaths(projectRoot, extension) {
|
|
21
23
|
return (0, _glob().sync)(`ios/*.${extension}`, {
|
|
@@ -25,7 +27,7 @@ function findXcodeProjectPaths(projectRoot, extension) {
|
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
29
|
function resolveXcodeProject(projectRoot) {
|
|
28
|
-
let paths = findXcodeProjectPaths(projectRoot,
|
|
30
|
+
let paths = findXcodeProjectPaths(projectRoot, 'xcworkspace');
|
|
29
31
|
if (paths.length) {
|
|
30
32
|
return {
|
|
31
33
|
// Use full path instead of relative project root so that warnings and errors contain full paths as well, this helps with filtering.
|
|
@@ -35,14 +37,14 @@ function resolveXcodeProject(projectRoot) {
|
|
|
35
37
|
isWorkspace: true
|
|
36
38
|
};
|
|
37
39
|
}
|
|
38
|
-
paths = findXcodeProjectPaths(projectRoot,
|
|
40
|
+
paths = findXcodeProjectPaths(projectRoot, 'xcodeproj');
|
|
39
41
|
if (paths.length) {
|
|
40
42
|
return {
|
|
41
43
|
name: paths[0],
|
|
42
44
|
isWorkspace: false
|
|
43
45
|
};
|
|
44
46
|
}
|
|
45
|
-
throw new _errors.CommandError(
|
|
47
|
+
throw new _errors.CommandError('IOS_MALFORMED', `Xcode project not found in project: ${projectRoot}. You can generate a project with \`npx expo prebuild\``);
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
//# sourceMappingURL=resolveXcodeProject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/run/ios/options/resolveXcodeProject.ts"],"sourcesContent":["import { sync as globSync } from 'glob';\n\nimport { CommandError } from '../../../utils/errors';\nimport { ProjectInfo } from '../XcodeBuild.types';\n\nconst ignoredPaths = ['**/@(Carthage|Pods|vendor|node_modules)/**'];\n\nfunction findXcodeProjectPaths(\n projectRoot: string,\n extension: 'xcworkspace' | 'xcodeproj'\n): string[] {\n return globSync(`ios/*.${extension}`, {\n absolute: true,\n cwd: projectRoot,\n ignore: ignoredPaths,\n });\n}\n\n/** Return the path and type of Xcode project in the given folder. */\nexport function resolveXcodeProject(projectRoot: string): ProjectInfo {\n let paths = findXcodeProjectPaths(projectRoot, 'xcworkspace');\n if (paths.length) {\n return {\n // Use full path instead of relative project root so that warnings and errors contain full paths as well, this helps with filtering.\n // Also helps keep things consistent in monorepos.\n name: paths[0],\n // name: path.relative(projectRoot, paths[0]),\n isWorkspace: true,\n };\n }\n paths = findXcodeProjectPaths(projectRoot, 'xcodeproj');\n if (paths.length) {\n return { name: paths[0], isWorkspace: false };\n }\n throw new CommandError(\n 'IOS_MALFORMED',\n `Xcode project not found in project: ${projectRoot}. You can generate a project with \\`npx expo prebuild\\``\n );\n}\n"],"names":["resolveXcodeProject","ignoredPaths","findXcodeProjectPaths","projectRoot","extension","globSync","absolute","cwd","ignore","paths","length","name","isWorkspace","CommandError"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/run/ios/options/resolveXcodeProject.ts"],"sourcesContent":["import { sync as globSync } from 'glob';\n\nimport { CommandError } from '../../../utils/errors';\nimport { ProjectInfo } from '../XcodeBuild.types';\n\nconst ignoredPaths = ['**/@(Carthage|Pods|vendor|node_modules)/**'];\n\nfunction findXcodeProjectPaths(\n projectRoot: string,\n extension: 'xcworkspace' | 'xcodeproj'\n): string[] {\n return globSync(`ios/*.${extension}`, {\n absolute: true,\n cwd: projectRoot,\n ignore: ignoredPaths,\n });\n}\n\n/** Return the path and type of Xcode project in the given folder. */\nexport function resolveXcodeProject(projectRoot: string): ProjectInfo {\n let paths = findXcodeProjectPaths(projectRoot, 'xcworkspace');\n if (paths.length) {\n return {\n // Use full path instead of relative project root so that warnings and errors contain full paths as well, this helps with filtering.\n // Also helps keep things consistent in monorepos.\n name: paths[0],\n // name: path.relative(projectRoot, paths[0]),\n isWorkspace: true,\n };\n }\n paths = findXcodeProjectPaths(projectRoot, 'xcodeproj');\n if (paths.length) {\n return { name: paths[0], isWorkspace: false };\n }\n throw new CommandError(\n 'IOS_MALFORMED',\n `Xcode project not found in project: ${projectRoot}. You can generate a project with \\`npx expo prebuild\\``\n );\n}\n"],"names":["resolveXcodeProject","ignoredPaths","findXcodeProjectPaths","projectRoot","extension","globSync","absolute","cwd","ignore","paths","length","name","isWorkspace","CommandError"],"mappings":";;;;+BAmBgBA;;;eAAAA;;;;yBAnBiB;;;;;;wBAEJ;AAG7B,MAAMC,eAAe;IAAC;CAA6C;AAEnE,SAASC,sBACPC,WAAmB,EACnBC,SAAsC;IAEtC,OAAOC,IAAAA,YAAQ,EAAC,CAAC,MAAM,EAAED,WAAW,EAAE;QACpCE,UAAU;QACVC,KAAKJ;QACLK,QAAQP;IACV;AACF;AAGO,SAASD,oBAAoBG,WAAmB;IACrD,IAAIM,QAAQP,sBAAsBC,aAAa;IAC/C,IAAIM,MAAMC,MAAM,EAAE;QAChB,OAAO;YACL,oIAAoI;YACpI,kDAAkD;YAClDC,MAAMF,KAAK,CAAC,EAAE;YACd,8CAA8C;YAC9CG,aAAa;QACf;IACF;IACAH,QAAQP,sBAAsBC,aAAa;IAC3C,IAAIM,MAAMC,MAAM,EAAE;QAChB,OAAO;YAAEC,MAAMF,KAAK,CAAC,EAAE;YAAEG,aAAa;QAAM;IAC9C;IACA,MAAM,IAAIC,oBAAY,CACpB,iBACA,CAAC,oCAAoC,EAAEV,YAAY,uDAAuD,CAAC;AAE/G"}
|
|
@@ -4,38 +4,40 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "runIosAsync", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return runIosAsync;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
|
-
function
|
|
10
|
-
const data = /*#__PURE__*/
|
|
11
|
-
|
|
11
|
+
function _spawnasync() {
|
|
12
|
+
const data = /*#__PURE__*/ _interop_require_default(require("@expo/spawn-async"));
|
|
13
|
+
_spawnasync = function() {
|
|
12
14
|
return data;
|
|
13
15
|
};
|
|
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
|
function _fs() {
|
|
24
|
-
const data = /*#__PURE__*/
|
|
26
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
25
27
|
_fs = function() {
|
|
26
28
|
return data;
|
|
27
29
|
};
|
|
28
30
|
return data;
|
|
29
31
|
}
|
|
30
32
|
function _path() {
|
|
31
|
-
const data = /*#__PURE__*/
|
|
33
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
32
34
|
_path = function() {
|
|
33
35
|
return data;
|
|
34
36
|
};
|
|
35
37
|
return data;
|
|
36
38
|
}
|
|
37
|
-
const _log = /*#__PURE__*/
|
|
38
|
-
const
|
|
39
|
+
const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../log"));
|
|
40
|
+
const _AppleAppIdResolver = require("../../start/platforms/ios/AppleAppIdResolver");
|
|
39
41
|
const _cocoapods = require("../../utils/cocoapods");
|
|
40
42
|
const _nodeEnv = require("../../utils/nodeEnv");
|
|
41
43
|
const _port = require("../../utils/port");
|
|
@@ -44,14 +46,14 @@ const _scheme = require("../../utils/scheme");
|
|
|
44
46
|
const _ensureNativeProject = require("../ensureNativeProject");
|
|
45
47
|
const _hints = require("../hints");
|
|
46
48
|
const _startBundler = require("../startBundler");
|
|
47
|
-
const
|
|
49
|
+
const _XcodeBuild = /*#__PURE__*/ _interop_require_wildcard(require("./XcodeBuild"));
|
|
48
50
|
const _launchApp = require("./launchApp");
|
|
49
51
|
const _resolveOptions = require("./options/resolveOptions");
|
|
50
52
|
const _validateExternalBinary = require("./validateExternalBinary");
|
|
51
53
|
const _exportEager = require("../../export/embed/exportEager");
|
|
52
54
|
const _simctl = require("../../start/platforms/ios/simctl");
|
|
53
55
|
const _errors = require("../../utils/errors");
|
|
54
|
-
function
|
|
56
|
+
function _interop_require_default(obj) {
|
|
55
57
|
return obj && obj.__esModule ? obj : {
|
|
56
58
|
default: obj
|
|
57
59
|
};
|
|
@@ -64,7 +66,7 @@ function _getRequireWildcardCache(nodeInterop) {
|
|
|
64
66
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
65
67
|
})(nodeInterop);
|
|
66
68
|
}
|
|
67
|
-
function
|
|
69
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
68
70
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
69
71
|
return obj;
|
|
70
72
|
}
|
|
@@ -77,7 +79,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
77
79
|
if (cache && cache.has(obj)) {
|
|
78
80
|
return cache.get(obj);
|
|
79
81
|
}
|
|
80
|
-
var newObj = {
|
|
82
|
+
var newObj = {
|
|
83
|
+
__proto__: null
|
|
84
|
+
};
|
|
81
85
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
82
86
|
for(var key in obj){
|
|
83
87
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -95,15 +99,15 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
95
99
|
}
|
|
96
100
|
return newObj;
|
|
97
101
|
}
|
|
98
|
-
const debug = require(
|
|
102
|
+
const debug = require('debug')('expo:run:ios');
|
|
99
103
|
async function runIosAsync(projectRoot, options) {
|
|
100
|
-
var
|
|
101
|
-
(0, _nodeEnv.setNodeEnv)(options.configuration ===
|
|
102
|
-
require(
|
|
104
|
+
var _this;
|
|
105
|
+
(0, _nodeEnv.setNodeEnv)(options.configuration === 'Release' ? 'production' : 'development');
|
|
106
|
+
require('@expo/env').load(projectRoot);
|
|
103
107
|
assertPlatform();
|
|
104
108
|
const install = !!options.install;
|
|
105
109
|
if (await (0, _ensureNativeProject.ensureNativeProjectAsync)(projectRoot, {
|
|
106
|
-
platform:
|
|
110
|
+
platform: 'ios',
|
|
107
111
|
install
|
|
108
112
|
}) && install) {
|
|
109
113
|
await (0, _cocoapods.maybePromptToSyncPodsAsync)(projectRoot);
|
|
@@ -116,9 +120,9 @@ async function runIosAsync(projectRoot, options) {
|
|
|
116
120
|
let binaryPath;
|
|
117
121
|
if (!options.binary) {
|
|
118
122
|
if (!props.isSimulator) {
|
|
119
|
-
throw new Error(
|
|
123
|
+
throw new Error('Re-bundling on physical devices requires the --binary flag.');
|
|
120
124
|
}
|
|
121
|
-
const appId = await new
|
|
125
|
+
const appId = await new _AppleAppIdResolver.AppleAppIdResolver(projectRoot).getAppIdAsync();
|
|
122
126
|
const possibleBinaryPath = await (0, _simctl.getContainerPathAsync)(props.device, {
|
|
123
127
|
appId
|
|
124
128
|
});
|
|
@@ -126,71 +130,71 @@ async function runIosAsync(projectRoot, options) {
|
|
|
126
130
|
throw new _errors.CommandError(`Cannot rebundle because no --binary was provided and no existing binary was found on the device for ID: ${appId}.`);
|
|
127
131
|
}
|
|
128
132
|
binaryPath = possibleBinaryPath;
|
|
129
|
-
_log.log(
|
|
133
|
+
_log.log('Re-using existing binary path:', binaryPath);
|
|
130
134
|
// Set the binary path to the existing binary path.
|
|
131
135
|
options.binary = binaryPath;
|
|
132
136
|
}
|
|
133
|
-
_log.log(
|
|
137
|
+
_log.log('Rebundling the Expo config file');
|
|
134
138
|
// Re-bundle the config file the same way the app was originally bundled.
|
|
135
|
-
await (0,
|
|
136
|
-
_path().default.join(require.resolve(
|
|
139
|
+
await (0, _spawnasync().default)('node', [
|
|
140
|
+
_path().default.join(require.resolve('expo-constants/package.json'), '../scripts/getAppConfig.js'),
|
|
137
141
|
projectRoot,
|
|
138
|
-
_path().default.join(options.binary,
|
|
142
|
+
_path().default.join(options.binary, 'EXConstants.bundle')
|
|
139
143
|
]);
|
|
140
144
|
// Re-bundle the app.
|
|
141
|
-
const possibleBundleOutput = _path().default.join(options.binary,
|
|
145
|
+
const possibleBundleOutput = _path().default.join(options.binary, 'main.jsbundle');
|
|
142
146
|
if (_fs().default.existsSync(possibleBundleOutput)) {
|
|
143
|
-
_log.log(
|
|
147
|
+
_log.log('Rebundling the app...');
|
|
144
148
|
await (0, _exportEager.exportEagerAsync)(projectRoot, {
|
|
145
149
|
resetCache: false,
|
|
146
150
|
dev: false,
|
|
147
|
-
platform:
|
|
148
|
-
assetsDest: _path().default.join(options.binary,
|
|
151
|
+
platform: 'ios',
|
|
152
|
+
assetsDest: _path().default.join(options.binary, 'assets'),
|
|
149
153
|
bundleOutput: possibleBundleOutput
|
|
150
154
|
});
|
|
151
155
|
} else {
|
|
152
|
-
_log.warn(
|
|
156
|
+
_log.warn('Bundle output not found at expected location:', possibleBundleOutput);
|
|
153
157
|
}
|
|
154
158
|
}
|
|
155
|
-
let
|
|
159
|
+
let binaryPath;
|
|
156
160
|
if (options.binary) {
|
|
157
|
-
|
|
158
|
-
_log.log(
|
|
161
|
+
binaryPath = await (0, _validateExternalBinary.getValidBinaryPathAsync)(options.binary, props);
|
|
162
|
+
_log.log('Using custom binary path:', binaryPath);
|
|
159
163
|
} else {
|
|
160
164
|
let eagerBundleOptions;
|
|
161
|
-
if (options.configuration ===
|
|
165
|
+
if (options.configuration === 'Release') {
|
|
162
166
|
eagerBundleOptions = JSON.stringify(await (0, _exportEager.exportEagerAsync)(projectRoot, {
|
|
163
167
|
dev: false,
|
|
164
|
-
platform:
|
|
168
|
+
platform: 'ios'
|
|
165
169
|
}));
|
|
166
170
|
}
|
|
167
171
|
// Spawn the `xcodebuild` process to create the app binary.
|
|
168
|
-
const buildOutput = await
|
|
172
|
+
const buildOutput = await _XcodeBuild.buildAsync({
|
|
169
173
|
...props,
|
|
170
174
|
eagerBundleOptions
|
|
171
175
|
});
|
|
172
176
|
// Find the path to the built app binary, this will be used to install the binary
|
|
173
177
|
// on a device.
|
|
174
|
-
|
|
178
|
+
binaryPath = await (0, _profile.profile)(_XcodeBuild.getAppBinaryPath)(buildOutput);
|
|
175
179
|
}
|
|
176
|
-
debug(
|
|
180
|
+
debug('Binary path:', binaryPath);
|
|
177
181
|
// Ensure the port hasn't become busy during the build.
|
|
178
182
|
if (props.shouldStartBundler && !await (0, _port.ensurePortAvailabilityAsync)(projectRoot, props)) {
|
|
179
183
|
props.shouldStartBundler = false;
|
|
180
184
|
}
|
|
181
|
-
const launchInfo = await (0, _launchApp.getLaunchInfoForBinaryAsync)(
|
|
185
|
+
const launchInfo = await (0, _launchApp.getLaunchInfoForBinaryAsync)(binaryPath);
|
|
182
186
|
const isCustomBinary = !!options.binary;
|
|
183
187
|
// Always close the app before launching on a simulator. Otherwise certain cached resources like the splashscreen will not be available.
|
|
184
188
|
if (props.isSimulator) {
|
|
185
189
|
try {
|
|
186
190
|
await (0, _simctl.simctlAsync)([
|
|
187
|
-
|
|
191
|
+
'terminate',
|
|
188
192
|
props.device.udid,
|
|
189
193
|
launchInfo.bundleId
|
|
190
194
|
]);
|
|
191
195
|
} catch (error) {
|
|
192
196
|
// If we failed it's likely that the app was not running to begin with and we will get an `invalid device` error
|
|
193
|
-
debug(
|
|
197
|
+
debug('Failed to terminate app (possibly because it was not running):', error);
|
|
194
198
|
}
|
|
195
199
|
}
|
|
196
200
|
// Start the dev server which creates all of the required info for
|
|
@@ -199,10 +203,10 @@ async function runIosAsync(projectRoot, options) {
|
|
|
199
203
|
port: props.port,
|
|
200
204
|
headless: !props.shouldStartBundler,
|
|
201
205
|
// If a scheme is specified then use that instead of the package name.
|
|
202
|
-
scheme: isCustomBinary ? launchInfo.schemes[0] : (
|
|
206
|
+
scheme: isCustomBinary ? launchInfo.schemes[0] : (_this = await (0, _scheme.getSchemesForIosAsync)(projectRoot)) == null ? void 0 : _this[0]
|
|
203
207
|
});
|
|
204
208
|
// Install and launch the app binary on a device.
|
|
205
|
-
await (0, _launchApp.launchAppAsync)(
|
|
209
|
+
await (0, _launchApp.launchAppAsync)(binaryPath, manager, {
|
|
206
210
|
isSimulator: props.isSimulator,
|
|
207
211
|
device: props.device,
|
|
208
212
|
shouldStartBundler: props.shouldStartBundler
|
|
@@ -215,7 +219,7 @@ async function runIosAsync(projectRoot, options) {
|
|
|
215
219
|
}
|
|
216
220
|
}
|
|
217
221
|
function assertPlatform() {
|
|
218
|
-
if (process.platform !==
|
|
222
|
+
if (process.platform !== 'darwin') {
|
|
219
223
|
_log.exit((0, _chalk().default)`iOS apps can only be built on macOS devices. Use {cyan eas build -p ios} to build in the cloud.`);
|
|
220
224
|
}
|
|
221
225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/run/ios/runIosAsync.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport * as Log from '../../log';\nimport { AppleAppIdResolver } from '../../start/platforms/ios/AppleAppIdResolver';\nimport { maybePromptToSyncPodsAsync } from '../../utils/cocoapods';\nimport { setNodeEnv } from '../../utils/nodeEnv';\nimport { ensurePortAvailabilityAsync } from '../../utils/port';\nimport { profile } from '../../utils/profile';\nimport { getSchemesForIosAsync } from '../../utils/scheme';\nimport { ensureNativeProjectAsync } from '../ensureNativeProject';\nimport { logProjectLogsLocation } from '../hints';\nimport { startBundlerAsync } from '../startBundler';\nimport * as XcodeBuild from './XcodeBuild';\nimport { Options } from './XcodeBuild.types';\nimport { getLaunchInfoForBinaryAsync, launchAppAsync } from './launchApp';\nimport { resolveOptionsAsync } from './options/resolveOptions';\nimport { getValidBinaryPathAsync } from './validateExternalBinary';\nimport { exportEagerAsync } from '../../export/embed/exportEager';\nimport { getContainerPathAsync, simctlAsync } from '../../start/platforms/ios/simctl';\nimport { CommandError } from '../../utils/errors';\n\nconst debug = require('debug')('expo:run:ios');\n\nexport async function runIosAsync(projectRoot: string, options: Options) {\n setNodeEnv(options.configuration === 'Release' ? 'production' : 'development');\n require('@expo/env').load(projectRoot);\n\n assertPlatform();\n\n const install = !!options.install;\n\n if ((await ensureNativeProjectAsync(projectRoot, { platform: 'ios', install })) && install) {\n await maybePromptToSyncPodsAsync(projectRoot);\n }\n\n // Resolve the CLI arguments into useable options.\n const props = await profile(resolveOptionsAsync)(projectRoot, options);\n\n if (options.rebundle) {\n Log.warn(`The --unstable-rebundle flag is experimental and may not work as expected.`);\n // Get the existing binary path to re-bundle the app.\n\n let binaryPath: string;\n if (!options.binary) {\n if (!props.isSimulator) {\n throw new Error('Re-bundling on physical devices requires the --binary flag.');\n }\n const appId = await new AppleAppIdResolver(projectRoot).getAppIdAsync();\n const possibleBinaryPath = await getContainerPathAsync(props.device, {\n appId,\n });\n if (!possibleBinaryPath) {\n throw new CommandError(\n `Cannot rebundle because no --binary was provided and no existing binary was found on the device for ID: ${appId}.`\n );\n }\n binaryPath = possibleBinaryPath;\n Log.log('Re-using existing binary path:', binaryPath);\n // Set the binary path to the existing binary path.\n options.binary = binaryPath;\n }\n\n Log.log('Rebundling the Expo config file');\n // Re-bundle the config file the same way the app was originally bundled.\n await spawnAsync('node', [\n path.join(require.resolve('expo-constants/package.json'), '../scripts/getAppConfig.js'),\n projectRoot,\n path.join(options.binary, 'EXConstants.bundle'),\n ]);\n // Re-bundle the app.\n\n const possibleBundleOutput = path.join(options.binary, 'main.jsbundle');\n\n if (fs.existsSync(possibleBundleOutput)) {\n Log.log('Rebundling the app...');\n await exportEagerAsync(projectRoot, {\n resetCache: false,\n dev: false,\n platform: 'ios',\n assetsDest: path.join(options.binary, 'assets'),\n bundleOutput: possibleBundleOutput,\n });\n } else {\n Log.warn('Bundle output not found at expected location:', possibleBundleOutput);\n }\n }\n\n let binaryPath: string;\n if (options.binary) {\n binaryPath = await getValidBinaryPathAsync(options.binary, props);\n Log.log('Using custom binary path:', binaryPath);\n } else {\n let eagerBundleOptions: string | undefined;\n\n if (options.configuration === 'Release') {\n eagerBundleOptions = JSON.stringify(\n await exportEagerAsync(projectRoot, {\n dev: false,\n platform: 'ios',\n })\n );\n }\n\n // Spawn the `xcodebuild` process to create the app binary.\n const buildOutput = await XcodeBuild.buildAsync({\n ...props,\n eagerBundleOptions,\n });\n\n // Find the path to the built app binary, this will be used to install the binary\n // on a device.\n binaryPath = await profile(XcodeBuild.getAppBinaryPath)(buildOutput);\n }\n debug('Binary path:', binaryPath);\n\n // Ensure the port hasn't become busy during the build.\n if (props.shouldStartBundler && !(await ensurePortAvailabilityAsync(projectRoot, props))) {\n props.shouldStartBundler = false;\n }\n\n const launchInfo = await getLaunchInfoForBinaryAsync(binaryPath);\n const isCustomBinary = !!options.binary;\n\n // Always close the app before launching on a simulator. Otherwise certain cached resources like the splashscreen will not be available.\n if (props.isSimulator) {\n try {\n await simctlAsync(['terminate', props.device.udid, launchInfo.bundleId]);\n } catch (error) {\n // If we failed it's likely that the app was not running to begin with and we will get an `invalid device` error\n debug('Failed to terminate app (possibly because it was not running):', error);\n }\n }\n\n // Start the dev server which creates all of the required info for\n // launching the app on a simulator.\n const manager = await startBundlerAsync(projectRoot, {\n port: props.port,\n headless: !props.shouldStartBundler,\n // If a scheme is specified then use that instead of the package name.\n\n scheme: isCustomBinary\n ? // If launching a custom binary, use the schemes in the Info.plist.\n launchInfo.schemes[0]\n : // If a scheme is specified then use that instead of the package name.\n (await getSchemesForIosAsync(projectRoot))?.[0],\n });\n\n // Install and launch the app binary on a device.\n await launchAppAsync(\n binaryPath,\n manager,\n {\n isSimulator: props.isSimulator,\n device: props.device,\n shouldStartBundler: props.shouldStartBundler,\n },\n launchInfo.bundleId\n );\n\n // Log the location of the JS logs for the device.\n if (props.shouldStartBundler) {\n logProjectLogsLocation();\n } else {\n await manager.stopAsync();\n }\n}\n\nfunction assertPlatform() {\n if (process.platform !== 'darwin') {\n Log.exit(\n chalk`iOS apps can only be built on macOS devices. Use {cyan eas build -p ios} to build in the cloud.`\n );\n }\n}\n"],"names":["runIosAsync","debug","require","projectRoot","options","setNodeEnv","configuration","load","assertPlatform","install","ensureNativeProjectAsync","platform","maybePromptToSyncPodsAsync","props","profile","resolveOptionsAsync","rebundle","Log","warn","binaryPath","binary","isSimulator","Error","appId","AppleAppIdResolver","getAppIdAsync","possibleBinaryPath","getContainerPathAsync","device","CommandError","log","spawnAsync","path","join","resolve","possibleBundleOutput","fs","existsSync","exportEagerAsync","resetCache","dev","assetsDest","bundleOutput","getValidBinaryPathAsync","eagerBundleOptions","JSON","stringify","buildOutput","XcodeBuild","buildAsync","getAppBinaryPath","shouldStartBundler","ensurePortAvailabilityAsync","launchInfo","getLaunchInfoForBinaryAsync","isCustomBinary","simctlAsync","udid","bundleId","error","manager","startBundlerAsync","port","headless","scheme","schemes","getSchemesForIosAsync","launchAppAsync","logProjectLogsLocation","stopAsync","process","exit","chalk"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/run/ios/runIosAsync.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport * as Log from '../../log';\nimport { AppleAppIdResolver } from '../../start/platforms/ios/AppleAppIdResolver';\nimport { maybePromptToSyncPodsAsync } from '../../utils/cocoapods';\nimport { setNodeEnv } from '../../utils/nodeEnv';\nimport { ensurePortAvailabilityAsync } from '../../utils/port';\nimport { profile } from '../../utils/profile';\nimport { getSchemesForIosAsync } from '../../utils/scheme';\nimport { ensureNativeProjectAsync } from '../ensureNativeProject';\nimport { logProjectLogsLocation } from '../hints';\nimport { startBundlerAsync } from '../startBundler';\nimport * as XcodeBuild from './XcodeBuild';\nimport { Options } from './XcodeBuild.types';\nimport { getLaunchInfoForBinaryAsync, launchAppAsync } from './launchApp';\nimport { resolveOptionsAsync } from './options/resolveOptions';\nimport { getValidBinaryPathAsync } from './validateExternalBinary';\nimport { exportEagerAsync } from '../../export/embed/exportEager';\nimport { getContainerPathAsync, simctlAsync } from '../../start/platforms/ios/simctl';\nimport { CommandError } from '../../utils/errors';\n\nconst debug = require('debug')('expo:run:ios');\n\nexport async function runIosAsync(projectRoot: string, options: Options) {\n setNodeEnv(options.configuration === 'Release' ? 'production' : 'development');\n require('@expo/env').load(projectRoot);\n\n assertPlatform();\n\n const install = !!options.install;\n\n if ((await ensureNativeProjectAsync(projectRoot, { platform: 'ios', install })) && install) {\n await maybePromptToSyncPodsAsync(projectRoot);\n }\n\n // Resolve the CLI arguments into useable options.\n const props = await profile(resolveOptionsAsync)(projectRoot, options);\n\n if (options.rebundle) {\n Log.warn(`The --unstable-rebundle flag is experimental and may not work as expected.`);\n // Get the existing binary path to re-bundle the app.\n\n let binaryPath: string;\n if (!options.binary) {\n if (!props.isSimulator) {\n throw new Error('Re-bundling on physical devices requires the --binary flag.');\n }\n const appId = await new AppleAppIdResolver(projectRoot).getAppIdAsync();\n const possibleBinaryPath = await getContainerPathAsync(props.device, {\n appId,\n });\n if (!possibleBinaryPath) {\n throw new CommandError(\n `Cannot rebundle because no --binary was provided and no existing binary was found on the device for ID: ${appId}.`\n );\n }\n binaryPath = possibleBinaryPath;\n Log.log('Re-using existing binary path:', binaryPath);\n // Set the binary path to the existing binary path.\n options.binary = binaryPath;\n }\n\n Log.log('Rebundling the Expo config file');\n // Re-bundle the config file the same way the app was originally bundled.\n await spawnAsync('node', [\n path.join(require.resolve('expo-constants/package.json'), '../scripts/getAppConfig.js'),\n projectRoot,\n path.join(options.binary, 'EXConstants.bundle'),\n ]);\n // Re-bundle the app.\n\n const possibleBundleOutput = path.join(options.binary, 'main.jsbundle');\n\n if (fs.existsSync(possibleBundleOutput)) {\n Log.log('Rebundling the app...');\n await exportEagerAsync(projectRoot, {\n resetCache: false,\n dev: false,\n platform: 'ios',\n assetsDest: path.join(options.binary, 'assets'),\n bundleOutput: possibleBundleOutput,\n });\n } else {\n Log.warn('Bundle output not found at expected location:', possibleBundleOutput);\n }\n }\n\n let binaryPath: string;\n if (options.binary) {\n binaryPath = await getValidBinaryPathAsync(options.binary, props);\n Log.log('Using custom binary path:', binaryPath);\n } else {\n let eagerBundleOptions: string | undefined;\n\n if (options.configuration === 'Release') {\n eagerBundleOptions = JSON.stringify(\n await exportEagerAsync(projectRoot, {\n dev: false,\n platform: 'ios',\n })\n );\n }\n\n // Spawn the `xcodebuild` process to create the app binary.\n const buildOutput = await XcodeBuild.buildAsync({\n ...props,\n eagerBundleOptions,\n });\n\n // Find the path to the built app binary, this will be used to install the binary\n // on a device.\n binaryPath = await profile(XcodeBuild.getAppBinaryPath)(buildOutput);\n }\n debug('Binary path:', binaryPath);\n\n // Ensure the port hasn't become busy during the build.\n if (props.shouldStartBundler && !(await ensurePortAvailabilityAsync(projectRoot, props))) {\n props.shouldStartBundler = false;\n }\n\n const launchInfo = await getLaunchInfoForBinaryAsync(binaryPath);\n const isCustomBinary = !!options.binary;\n\n // Always close the app before launching on a simulator. Otherwise certain cached resources like the splashscreen will not be available.\n if (props.isSimulator) {\n try {\n await simctlAsync(['terminate', props.device.udid, launchInfo.bundleId]);\n } catch (error) {\n // If we failed it's likely that the app was not running to begin with and we will get an `invalid device` error\n debug('Failed to terminate app (possibly because it was not running):', error);\n }\n }\n\n // Start the dev server which creates all of the required info for\n // launching the app on a simulator.\n const manager = await startBundlerAsync(projectRoot, {\n port: props.port,\n headless: !props.shouldStartBundler,\n // If a scheme is specified then use that instead of the package name.\n\n scheme: isCustomBinary\n ? // If launching a custom binary, use the schemes in the Info.plist.\n launchInfo.schemes[0]\n : // If a scheme is specified then use that instead of the package name.\n (await getSchemesForIosAsync(projectRoot))?.[0],\n });\n\n // Install and launch the app binary on a device.\n await launchAppAsync(\n binaryPath,\n manager,\n {\n isSimulator: props.isSimulator,\n device: props.device,\n shouldStartBundler: props.shouldStartBundler,\n },\n launchInfo.bundleId\n );\n\n // Log the location of the JS logs for the device.\n if (props.shouldStartBundler) {\n logProjectLogsLocation();\n } else {\n await manager.stopAsync();\n }\n}\n\nfunction assertPlatform() {\n if (process.platform !== 'darwin') {\n Log.exit(\n chalk`iOS apps can only be built on macOS devices. Use {cyan eas build -p ios} to build in the cloud.`\n );\n }\n}\n"],"names":["runIosAsync","debug","require","projectRoot","options","setNodeEnv","configuration","load","assertPlatform","install","ensureNativeProjectAsync","platform","maybePromptToSyncPodsAsync","props","profile","resolveOptionsAsync","rebundle","Log","warn","binaryPath","binary","isSimulator","Error","appId","AppleAppIdResolver","getAppIdAsync","possibleBinaryPath","getContainerPathAsync","device","CommandError","log","spawnAsync","path","join","resolve","possibleBundleOutput","fs","existsSync","exportEagerAsync","resetCache","dev","assetsDest","bundleOutput","getValidBinaryPathAsync","eagerBundleOptions","JSON","stringify","buildOutput","XcodeBuild","buildAsync","getAppBinaryPath","shouldStartBundler","ensurePortAvailabilityAsync","launchInfo","getLaunchInfoForBinaryAsync","isCustomBinary","simctlAsync","udid","bundleId","error","manager","startBundlerAsync","port","headless","scheme","schemes","getSchemesForIosAsync","launchAppAsync","logProjectLogsLocation","stopAsync","process","exit","chalk"],"mappings":"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"}
|
|
@@ -4,17 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "getValidBinaryPathAsync", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return getValidBinaryPathAsync;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
|
-
function
|
|
10
|
-
const data = /*#__PURE__*/
|
|
11
|
-
|
|
11
|
+
function _spawnasync() {
|
|
12
|
+
const data = /*#__PURE__*/ _interop_require_default(require("@expo/spawn-async"));
|
|
13
|
+
_spawnasync = function() {
|
|
12
14
|
return data;
|
|
13
15
|
};
|
|
14
16
|
return data;
|
|
15
17
|
}
|
|
16
18
|
function _fs() {
|
|
17
|
-
const data = /*#__PURE__*/
|
|
19
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
18
20
|
_fs = function() {
|
|
19
21
|
return data;
|
|
20
22
|
};
|
|
@@ -28,7 +30,7 @@ function _glob() {
|
|
|
28
30
|
return data;
|
|
29
31
|
}
|
|
30
32
|
function _path() {
|
|
31
|
-
const data = /*#__PURE__*/
|
|
33
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
32
34
|
_path = function() {
|
|
33
35
|
return data;
|
|
34
36
|
};
|
|
@@ -37,21 +39,21 @@ function _path() {
|
|
|
37
39
|
const _createTempPath = require("../../utils/createTempPath");
|
|
38
40
|
const _errors = require("../../utils/errors");
|
|
39
41
|
const _plist = require("../../utils/plist");
|
|
40
|
-
function
|
|
42
|
+
function _interop_require_default(obj) {
|
|
41
43
|
return obj && obj.__esModule ? obj : {
|
|
42
44
|
default: obj
|
|
43
45
|
};
|
|
44
46
|
}
|
|
45
|
-
const debug = require(
|
|
47
|
+
const debug = require('debug')('expo:run:ios:binary');
|
|
46
48
|
async function getValidBinaryPathAsync(input, props) {
|
|
47
49
|
const resolved = _path().default.resolve(input);
|
|
48
50
|
if (!_fs().default.existsSync(resolved)) {
|
|
49
51
|
throw new _errors.CommandError(`The path to the iOS binary does not exist: ${resolved}`);
|
|
50
52
|
}
|
|
51
53
|
// If the file is an ipa then move it to a temp directory and extract the app binary.
|
|
52
|
-
if (resolved.endsWith(
|
|
54
|
+
if (resolved.endsWith('.ipa')) {
|
|
53
55
|
const outputPath = (0, _createTempPath.createTempDirectoryPath)();
|
|
54
|
-
debug(
|
|
56
|
+
debug('Extracting IPA:', resolved, outputPath);
|
|
55
57
|
const appDir = await extractIpaAsync(resolved, outputPath);
|
|
56
58
|
if (props.isSimulator) {
|
|
57
59
|
assertProvisionedForSimulator(appDir);
|
|
@@ -71,40 +73,40 @@ async function extractIpaAsync(ipaPath, outputPath) {
|
|
|
71
73
|
}
|
|
72
74
|
// Use the unzip command to extract the IPA file
|
|
73
75
|
try {
|
|
74
|
-
await (0,
|
|
75
|
-
|
|
76
|
+
await (0, _spawnasync().default)('unzip', [
|
|
77
|
+
'-o',
|
|
76
78
|
ipaPath,
|
|
77
|
-
|
|
79
|
+
'-d',
|
|
78
80
|
outputPath
|
|
79
81
|
]);
|
|
80
82
|
} catch (error) {
|
|
81
83
|
throw new Error(`Error extracting IPA: ${error.message}`);
|
|
82
84
|
}
|
|
83
|
-
const appBinPaths = await (0, _glob().glob)(
|
|
85
|
+
const appBinPaths = await (0, _glob().glob)('Payload/*.app', {
|
|
84
86
|
cwd: outputPath,
|
|
85
87
|
absolute: true,
|
|
86
88
|
maxDepth: 2
|
|
87
89
|
});
|
|
88
90
|
if (appBinPaths.length === 0) {
|
|
89
|
-
throw new Error(
|
|
91
|
+
throw new Error('No .app directory found in the IPA');
|
|
90
92
|
}
|
|
91
93
|
return appBinPaths[0];
|
|
92
94
|
}
|
|
93
95
|
async function assertProvisionedForSimulator(appPath) {
|
|
94
|
-
const provisionPath = _path().default.join(appPath,
|
|
96
|
+
const provisionPath = _path().default.join(appPath, 'embedded.mobileprovision');
|
|
95
97
|
if (!_fs().default.existsSync(provisionPath)) {
|
|
96
98
|
// This can often result in false positives.
|
|
97
|
-
debug(
|
|
99
|
+
debug('No embedded.mobileprovision file found. Likely provisioned for simulator.');
|
|
98
100
|
return;
|
|
99
101
|
}
|
|
100
|
-
const provisionData = _fs().default.readFileSync(provisionPath,
|
|
101
|
-
const start = provisionData.indexOf(
|
|
102
|
-
const end = provisionData.indexOf(
|
|
102
|
+
const provisionData = _fs().default.readFileSync(provisionPath, 'utf8');
|
|
103
|
+
const start = provisionData.indexOf('<?xml');
|
|
104
|
+
const end = provisionData.indexOf('</plist>') + 8;
|
|
103
105
|
const plistData = provisionData.substring(start, end);
|
|
104
106
|
const parsedData = await (0, _plist.parsePlistAsync)(plistData);
|
|
105
|
-
const platforms = parsedData[
|
|
107
|
+
const platforms = parsedData['ProvisionsAllDevices'];
|
|
106
108
|
if (platforms) {
|
|
107
|
-
throw new _errors.CommandError(
|
|
109
|
+
throw new _errors.CommandError('The app binary is provisioned for devices, and cannot be run on simulators.');
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
112
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/run/ios/validateExternalBinary.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport fs from 'fs';\nimport { glob as globAsync } from 'glob';\nimport path from 'path';\n\nimport { createTempDirectoryPath } from '../../utils/createTempPath';\nimport { CommandError } from '../../utils/errors';\nimport { parsePlistAsync } from '../../utils/plist';\n\nconst debug = require('debug')('expo:run:ios:binary');\n\nexport async function getValidBinaryPathAsync(input: string, props: { isSimulator: boolean }) {\n const resolved = path.resolve(input);\n\n if (!fs.existsSync(resolved)) {\n throw new CommandError(`The path to the iOS binary does not exist: ${resolved}`);\n }\n\n // If the file is an ipa then move it to a temp directory and extract the app binary.\n if (resolved.endsWith('.ipa')) {\n const outputPath = createTempDirectoryPath();\n debug('Extracting IPA:', resolved, outputPath);\n const appDir = await extractIpaAsync(resolved, outputPath);\n\n if (props.isSimulator) {\n assertProvisionedForSimulator(appDir);\n } else {\n // TODO: Assert provisioned for devices in the future (this is difficult).\n }\n return appDir;\n }\n return resolved;\n}\n\nasync function extractIpaAsync(ipaPath: string, outputPath: string): Promise<string> {\n // Create the output directory if it does not exist\n if (!fs.existsSync(outputPath)) {\n fs.mkdirSync(outputPath, { recursive: true });\n }\n\n // Use the unzip command to extract the IPA file\n try {\n await spawnAsync('unzip', ['-o', ipaPath, '-d', outputPath]);\n } catch (error: any) {\n throw new Error(`Error extracting IPA: ${error.message}`);\n }\n\n const appBinPaths = await globAsync('Payload/*.app', {\n cwd: outputPath,\n absolute: true,\n maxDepth: 2,\n });\n\n if (appBinPaths.length === 0) {\n throw new Error('No .app directory found in the IPA');\n }\n\n return appBinPaths[0];\n}\n\nasync function assertProvisionedForSimulator(appPath: string) {\n const provisionPath = path.join(appPath, 'embedded.mobileprovision');\n\n if (!fs.existsSync(provisionPath)) {\n // This can often result in false positives.\n debug('No embedded.mobileprovision file found. Likely provisioned for simulator.');\n return;\n }\n\n const provisionData = fs.readFileSync(provisionPath, 'utf8');\n const start = provisionData.indexOf('<?xml');\n const end = provisionData.indexOf('</plist>') + 8;\n const plistData = provisionData.substring(start, end);\n const parsedData = await parsePlistAsync(plistData);\n\n const platforms = parsedData['ProvisionsAllDevices'];\n if (platforms) {\n throw new CommandError(\n 'The app binary is provisioned for devices, and cannot be run on simulators.'\n );\n }\n}\n"],"names":["getValidBinaryPathAsync","debug","require","input","props","resolved","path","resolve","fs","existsSync","CommandError","endsWith","outputPath","createTempDirectoryPath","appDir","extractIpaAsync","isSimulator","assertProvisionedForSimulator","ipaPath","mkdirSync","recursive","spawnAsync","error","Error","message","appBinPaths","globAsync","cwd","absolute","maxDepth","length","appPath","provisionPath","join","provisionData","readFileSync","start","indexOf","end","plistData","substring","parsedData","parsePlistAsync","platforms"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/run/ios/validateExternalBinary.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport fs from 'fs';\nimport { glob as globAsync } from 'glob';\nimport path from 'path';\n\nimport { createTempDirectoryPath } from '../../utils/createTempPath';\nimport { CommandError } from '../../utils/errors';\nimport { parsePlistAsync } from '../../utils/plist';\n\nconst debug = require('debug')('expo:run:ios:binary');\n\nexport async function getValidBinaryPathAsync(input: string, props: { isSimulator: boolean }) {\n const resolved = path.resolve(input);\n\n if (!fs.existsSync(resolved)) {\n throw new CommandError(`The path to the iOS binary does not exist: ${resolved}`);\n }\n\n // If the file is an ipa then move it to a temp directory and extract the app binary.\n if (resolved.endsWith('.ipa')) {\n const outputPath = createTempDirectoryPath();\n debug('Extracting IPA:', resolved, outputPath);\n const appDir = await extractIpaAsync(resolved, outputPath);\n\n if (props.isSimulator) {\n assertProvisionedForSimulator(appDir);\n } else {\n // TODO: Assert provisioned for devices in the future (this is difficult).\n }\n return appDir;\n }\n return resolved;\n}\n\nasync function extractIpaAsync(ipaPath: string, outputPath: string): Promise<string> {\n // Create the output directory if it does not exist\n if (!fs.existsSync(outputPath)) {\n fs.mkdirSync(outputPath, { recursive: true });\n }\n\n // Use the unzip command to extract the IPA file\n try {\n await spawnAsync('unzip', ['-o', ipaPath, '-d', outputPath]);\n } catch (error: any) {\n throw new Error(`Error extracting IPA: ${error.message}`);\n }\n\n const appBinPaths = await globAsync('Payload/*.app', {\n cwd: outputPath,\n absolute: true,\n maxDepth: 2,\n });\n\n if (appBinPaths.length === 0) {\n throw new Error('No .app directory found in the IPA');\n }\n\n return appBinPaths[0];\n}\n\nasync function assertProvisionedForSimulator(appPath: string) {\n const provisionPath = path.join(appPath, 'embedded.mobileprovision');\n\n if (!fs.existsSync(provisionPath)) {\n // This can often result in false positives.\n debug('No embedded.mobileprovision file found. Likely provisioned for simulator.');\n return;\n }\n\n const provisionData = fs.readFileSync(provisionPath, 'utf8');\n const start = provisionData.indexOf('<?xml');\n const end = provisionData.indexOf('</plist>') + 8;\n const plistData = provisionData.substring(start, end);\n const parsedData = await parsePlistAsync(plistData);\n\n const platforms = parsedData['ProvisionsAllDevices'];\n if (platforms) {\n throw new CommandError(\n 'The app binary is provisioned for devices, and cannot be run on simulators.'\n );\n }\n}\n"],"names":["getValidBinaryPathAsync","debug","require","input","props","resolved","path","resolve","fs","existsSync","CommandError","endsWith","outputPath","createTempDirectoryPath","appDir","extractIpaAsync","isSimulator","assertProvisionedForSimulator","ipaPath","mkdirSync","recursive","spawnAsync","error","Error","message","appBinPaths","globAsync","cwd","absolute","maxDepth","length","appPath","provisionPath","join","provisionData","readFileSync","start","indexOf","end","plistData","substring","parsedData","parsePlistAsync","platforms"],"mappings":";;;;+BAWsBA;;;eAAAA;;;;gEAXC;;;;;;;gEACR;;;;;;;yBACmB;;;;;;;gEACjB;;;;;;gCAEuB;wBACX;uBACG;;;;;;AAEhC,MAAMC,QAAQC,QAAQ,SAAS;AAExB,eAAeF,wBAAwBG,KAAa,EAAEC,KAA+B;IAC1F,MAAMC,WAAWC,eAAI,CAACC,OAAO,CAACJ;IAE9B,IAAI,CAACK,aAAE,CAACC,UAAU,CAACJ,WAAW;QAC5B,MAAM,IAAIK,oBAAY,CAAC,CAAC,2CAA2C,EAAEL,UAAU;IACjF;IAEA,qFAAqF;IACrF,IAAIA,SAASM,QAAQ,CAAC,SAAS;QAC7B,MAAMC,aAAaC,IAAAA,uCAAuB;QAC1CZ,MAAM,mBAAmBI,UAAUO;QACnC,MAAME,SAAS,MAAMC,gBAAgBV,UAAUO;QAE/C,IAAIR,MAAMY,WAAW,EAAE;YACrBC,8BAA8BH;QAChC,OAAO;QACL,0EAA0E;QAC5E;QACA,OAAOA;IACT;IACA,OAAOT;AACT;AAEA,eAAeU,gBAAgBG,OAAe,EAAEN,UAAkB;IAChE,mDAAmD;IACnD,IAAI,CAACJ,aAAE,CAACC,UAAU,CAACG,aAAa;QAC9BJ,aAAE,CAACW,SAAS,CAACP,YAAY;YAAEQ,WAAW;QAAK;IAC7C;IAEA,gDAAgD;IAChD,IAAI;QACF,MAAMC,IAAAA,qBAAU,EAAC,SAAS;YAAC;YAAMH;YAAS;YAAMN;SAAW;IAC7D,EAAE,OAAOU,OAAY;QACnB,MAAM,IAAIC,MAAM,CAAC,sBAAsB,EAAED,MAAME,OAAO,EAAE;IAC1D;IAEA,MAAMC,cAAc,MAAMC,IAAAA,YAAS,EAAC,iBAAiB;QACnDC,KAAKf;QACLgB,UAAU;QACVC,UAAU;IACZ;IAEA,IAAIJ,YAAYK,MAAM,KAAK,GAAG;QAC5B,MAAM,IAAIP,MAAM;IAClB;IAEA,OAAOE,WAAW,CAAC,EAAE;AACvB;AAEA,eAAeR,8BAA8Bc,OAAe;IAC1D,MAAMC,gBAAgB1B,eAAI,CAAC2B,IAAI,CAACF,SAAS;IAEzC,IAAI,CAACvB,aAAE,CAACC,UAAU,CAACuB,gBAAgB;QACjC,4CAA4C;QAC5C/B,MAAM;QACN;IACF;IAEA,MAAMiC,gBAAgB1B,aAAE,CAAC2B,YAAY,CAACH,eAAe;IACrD,MAAMI,QAAQF,cAAcG,OAAO,CAAC;IACpC,MAAMC,MAAMJ,cAAcG,OAAO,CAAC,cAAc;IAChD,MAAME,YAAYL,cAAcM,SAAS,CAACJ,OAAOE;IACjD,MAAMG,aAAa,MAAMC,IAAAA,sBAAe,EAACH;IAEzC,MAAMI,YAAYF,UAAU,CAAC,uBAAuB;IACpD,IAAIE,WAAW;QACb,MAAM,IAAIjC,oBAAY,CACpB;IAEJ;AACF"}
|