@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
package/build/src/utils/npm.js
CHANGED
|
@@ -9,44 +9,58 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
extractNpmTarballAsync: ()
|
|
12
|
+
downloadAndExtractNpmModuleAsync: function() {
|
|
13
|
+
return downloadAndExtractNpmModuleAsync;
|
|
14
|
+
},
|
|
15
|
+
extractLocalNpmTarballAsync: function() {
|
|
16
|
+
return extractLocalNpmTarballAsync;
|
|
17
|
+
},
|
|
18
|
+
extractNpmTarballAsync: function() {
|
|
19
|
+
return extractNpmTarballAsync;
|
|
20
|
+
},
|
|
21
|
+
extractNpmTarballFromUrlAsync: function() {
|
|
22
|
+
return extractNpmTarballFromUrlAsync;
|
|
23
|
+
},
|
|
24
|
+
getNpmUrlAsync: function() {
|
|
25
|
+
return getNpmUrlAsync;
|
|
26
|
+
},
|
|
27
|
+
npmViewAsync: function() {
|
|
28
|
+
return npmViewAsync;
|
|
29
|
+
},
|
|
30
|
+
sanitizeNpmPackageName: function() {
|
|
31
|
+
return sanitizeNpmPackageName;
|
|
32
|
+
}
|
|
19
33
|
});
|
|
20
|
-
function
|
|
21
|
-
const data = /*#__PURE__*/
|
|
22
|
-
|
|
34
|
+
function _spawnasync() {
|
|
35
|
+
const data = /*#__PURE__*/ _interop_require_default(require("@expo/spawn-async"));
|
|
36
|
+
_spawnasync = function() {
|
|
23
37
|
return data;
|
|
24
38
|
};
|
|
25
39
|
return data;
|
|
26
40
|
}
|
|
27
41
|
function _assert() {
|
|
28
|
-
const data = /*#__PURE__*/
|
|
42
|
+
const data = /*#__PURE__*/ _interop_require_default(require("assert"));
|
|
29
43
|
_assert = function() {
|
|
30
44
|
return data;
|
|
31
45
|
};
|
|
32
46
|
return data;
|
|
33
47
|
}
|
|
34
48
|
function _crypto() {
|
|
35
|
-
const data = /*#__PURE__*/
|
|
49
|
+
const data = /*#__PURE__*/ _interop_require_default(require("crypto"));
|
|
36
50
|
_crypto = function() {
|
|
37
51
|
return data;
|
|
38
52
|
};
|
|
39
53
|
return data;
|
|
40
54
|
}
|
|
41
55
|
function _fs() {
|
|
42
|
-
const data = /*#__PURE__*/
|
|
56
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
43
57
|
_fs = function() {
|
|
44
58
|
return data;
|
|
45
59
|
};
|
|
46
60
|
return data;
|
|
47
61
|
}
|
|
48
62
|
function _slugify() {
|
|
49
|
-
const data = /*#__PURE__*/
|
|
63
|
+
const data = /*#__PURE__*/ _interop_require_default(require("slugify"));
|
|
50
64
|
_slugify = function() {
|
|
51
65
|
return data;
|
|
52
66
|
};
|
|
@@ -77,19 +91,19 @@ const _createFileTransform = require("./createFileTransform");
|
|
|
77
91
|
const _dir = require("./dir");
|
|
78
92
|
const _errors = require("./errors");
|
|
79
93
|
const _client = require("../api/rest/client");
|
|
80
|
-
function
|
|
94
|
+
function _interop_require_default(obj) {
|
|
81
95
|
return obj && obj.__esModule ? obj : {
|
|
82
96
|
default: obj
|
|
83
97
|
};
|
|
84
98
|
}
|
|
85
|
-
const debug = require(
|
|
99
|
+
const debug = require('debug')('expo:utils:npm');
|
|
86
100
|
const cachedFetch = (0, _client.createCachedFetch)({
|
|
87
|
-
cacheDirectory:
|
|
101
|
+
cacheDirectory: 'template-cache'
|
|
88
102
|
});
|
|
89
103
|
function sanitizeNpmPackageName(name) {
|
|
90
104
|
// https://github.com/npm/validate-npm-package-name/#naming-rules
|
|
91
105
|
return applyKnownNpmPackageNameRules(name) || applyKnownNpmPackageNameRules((0, _slugify().default)(name)) || // If nothing is left use 'app' like we do in Xcode projects.
|
|
92
|
-
|
|
106
|
+
'app';
|
|
93
107
|
}
|
|
94
108
|
function applyKnownNpmPackageNameRules(name) {
|
|
95
109
|
// https://github.com/npm/validate-npm-package-name/#naming-rules
|
|
@@ -97,21 +111,21 @@ function applyKnownNpmPackageNameRules(name) {
|
|
|
97
111
|
while(/^(\.|_)/.test(name)){
|
|
98
112
|
name = name.substring(1);
|
|
99
113
|
}
|
|
100
|
-
name = name.toLowerCase().replace(/[^a-zA-Z._\-/@]/g,
|
|
114
|
+
name = name.toLowerCase().replace(/[^a-zA-Z._\-/@]/g, '');
|
|
101
115
|
return name// .replace(/![a-z0-9-._~]+/g, '')
|
|
102
116
|
// Remove special characters
|
|
103
|
-
.normalize(
|
|
117
|
+
.normalize('NFD').replace(/[\u0300-\u036f]/g, '') || null;
|
|
104
118
|
}
|
|
105
119
|
async function npmViewAsync(...props) {
|
|
106
|
-
var
|
|
120
|
+
var _stdout;
|
|
107
121
|
const cmd = [
|
|
108
|
-
|
|
122
|
+
'view',
|
|
109
123
|
...props,
|
|
110
|
-
|
|
124
|
+
'--json'
|
|
111
125
|
];
|
|
112
|
-
const results = (
|
|
113
|
-
const cmdString = `npm ${cmd.join(
|
|
114
|
-
debug(
|
|
126
|
+
const results = (_stdout = (await (0, _spawnasync().default)('npm', cmd)).stdout) == null ? void 0 : _stdout.trim();
|
|
127
|
+
const cmdString = `npm ${cmd.join(' ')}`;
|
|
128
|
+
debug('Run:', cmdString);
|
|
115
129
|
if (!results) {
|
|
116
130
|
return null;
|
|
117
131
|
}
|
|
@@ -122,12 +136,12 @@ async function npmViewAsync(...props) {
|
|
|
122
136
|
}
|
|
123
137
|
}
|
|
124
138
|
async function getNpmUrlAsync(packageName) {
|
|
125
|
-
const results = await npmViewAsync(packageName,
|
|
139
|
+
const results = await npmViewAsync(packageName, 'dist');
|
|
126
140
|
(0, _assert().default)(results, `Could not get npm url for package "${packageName}"`);
|
|
127
141
|
// Fully qualified url returns an object.
|
|
128
142
|
// Example:
|
|
129
143
|
// 𝝠 npm view expo-template-bare-minimum@sdk-33 dist --json
|
|
130
|
-
if (typeof results ===
|
|
144
|
+
if (typeof results === 'object' && !Array.isArray(results)) {
|
|
131
145
|
return results.tarball;
|
|
132
146
|
}
|
|
133
147
|
// When the tag is arbitrary, the tarball is an array, return the last value as it's the most recent.
|
|
@@ -135,17 +149,17 @@ async function getNpmUrlAsync(packageName) {
|
|
|
135
149
|
// 𝝠 npm view expo-template-bare-minimum@33 dist --json
|
|
136
150
|
if (Array.isArray(results)) {
|
|
137
151
|
const lastResult = results[results.length - 1];
|
|
138
|
-
if (lastResult && typeof lastResult ===
|
|
152
|
+
if (lastResult && typeof lastResult === 'object' && !Array.isArray(lastResult)) {
|
|
139
153
|
return lastResult.tarball;
|
|
140
154
|
}
|
|
141
155
|
}
|
|
142
|
-
throw new _errors.CommandError(
|
|
156
|
+
throw new _errors.CommandError('Expected results of `npm view ...` to be an array or string. Instead found: ' + results);
|
|
143
157
|
}
|
|
144
158
|
// @ts-ignore
|
|
145
159
|
const pipeline = (0, _util().promisify)(_stream().Stream.pipeline);
|
|
146
160
|
async function downloadAndExtractNpmModuleAsync(npmName, props) {
|
|
147
161
|
const url = await getNpmUrlAsync(npmName);
|
|
148
|
-
debug(
|
|
162
|
+
debug('Fetch from URL:', url);
|
|
149
163
|
return await extractNpmTarballFromUrlAsync(url, props);
|
|
150
164
|
}
|
|
151
165
|
async function extractLocalNpmTarballAsync(tarFilePath, props) {
|
|
@@ -163,11 +177,11 @@ async function extractNpmTarballFromUrlAsync(url, props) {
|
|
|
163
177
|
return await extractNpmTarballAsync(await createUrlStreamAsync(url), props);
|
|
164
178
|
}
|
|
165
179
|
async function extractNpmTarballAsync(stream, props) {
|
|
166
|
-
const { cwd
|
|
180
|
+
const { cwd, strip, name, fileList = [], filter } = props;
|
|
167
181
|
await (0, _dir.ensureDirectoryAsync)(cwd);
|
|
168
|
-
const hash = _crypto().default.createHash(props.checksumAlgorithm ??
|
|
182
|
+
const hash = _crypto().default.createHash(props.checksumAlgorithm ?? 'md5');
|
|
169
183
|
const transformStream = new (_stream()).PassThrough();
|
|
170
|
-
transformStream.on(
|
|
184
|
+
transformStream.on('data', (chunk)=>{
|
|
171
185
|
hash.update(chunk);
|
|
172
186
|
});
|
|
173
187
|
await pipeline(stream, transformStream, (0, _tar().extract)({
|
|
@@ -176,7 +190,7 @@ async function extractNpmTarballAsync(stream, props) {
|
|
|
176
190
|
onentry: (0, _createFileTransform.createEntryResolver)(name),
|
|
177
191
|
strip: strip ?? 1
|
|
178
192
|
}, fileList));
|
|
179
|
-
return hash.digest(
|
|
193
|
+
return hash.digest('hex');
|
|
180
194
|
}
|
|
181
195
|
|
|
182
196
|
//# sourceMappingURL=npm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/npm.ts"],"sourcesContent":["import { JSONValue } from '@expo/json-file';\nimport spawnAsync from '@expo/spawn-async';\nimport assert from 'assert';\nimport crypto from 'crypto';\nimport fs from 'fs';\nimport slugify from 'slugify';\nimport { PassThrough, Readable, Stream } from 'stream';\nimport { extract as tarExtract, TarOptionsWithAliases } from 'tar';\nimport { promisify } from 'util';\n\nimport { createEntryResolver } from './createFileTransform';\nimport { ensureDirectoryAsync } from './dir';\nimport { CommandError } from './errors';\nimport { createCachedFetch } from '../api/rest/client';\n\nconst debug = require('debug')('expo:utils:npm') as typeof console.log;\n\nconst cachedFetch = createCachedFetch({\n cacheDirectory: 'template-cache',\n // Time to live. How long (in ms) responses remain cached before being automatically ejected. If undefined, responses are never automatically ejected from the cache.\n // ttl: 1000,\n});\n\nexport function sanitizeNpmPackageName(name: string): string {\n // https://github.com/npm/validate-npm-package-name/#naming-rules\n return (\n applyKnownNpmPackageNameRules(name) ||\n applyKnownNpmPackageNameRules(slugify(name)) ||\n // If nothing is left use 'app' like we do in Xcode projects.\n 'app'\n );\n}\n\nfunction applyKnownNpmPackageNameRules(name: string): string | null {\n // https://github.com/npm/validate-npm-package-name/#naming-rules\n\n // package name cannot start with '.' or '_'.\n while (/^(\\.|_)/.test(name)) {\n name = name.substring(1);\n }\n\n name = name.toLowerCase().replace(/[^a-zA-Z._\\-/@]/g, '');\n\n return (\n name\n // .replace(/![a-z0-9-._~]+/g, '')\n // Remove special characters\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '') || null\n );\n}\n\nexport async function npmViewAsync(...props: string[]): Promise<JSONValue> {\n const cmd = ['view', ...props, '--json'];\n const results = (await spawnAsync('npm', cmd)).stdout?.trim();\n const cmdString = `npm ${cmd.join(' ')}`;\n debug('Run:', cmdString);\n if (!results) {\n return null;\n }\n try {\n return JSON.parse(results);\n } catch (error: any) {\n throw new Error(\n `Could not parse JSON returned from \"${cmdString}\".\\n\\n${results}\\n\\nError: ${error.message}`\n );\n }\n}\n\n/** Given a package name like `expo` or `expo@beta`, return the registry URL if it exists. */\nexport async function getNpmUrlAsync(packageName: string): Promise<string> {\n const results = await npmViewAsync(packageName, 'dist');\n\n assert(results, `Could not get npm url for package \"${packageName}\"`);\n\n // Fully qualified url returns an object.\n // Example:\n // 𝝠 npm view expo-template-bare-minimum@sdk-33 dist --json\n if (typeof results === 'object' && !Array.isArray(results)) {\n return results.tarball as string;\n }\n\n // When the tag is arbitrary, the tarball is an array, return the last value as it's the most recent.\n // Example:\n // 𝝠 npm view expo-template-bare-minimum@33 dist --json\n if (Array.isArray(results)) {\n const lastResult = results[results.length - 1];\n\n if (lastResult && typeof lastResult === 'object' && !Array.isArray(lastResult)) {\n return lastResult.tarball as string;\n }\n }\n\n throw new CommandError(\n 'Expected results of `npm view ...` to be an array or string. Instead found: ' + results\n );\n}\n\n// @ts-ignore\nconst pipeline = promisify(Stream.pipeline);\n\nexport async function downloadAndExtractNpmModuleAsync(\n npmName: string,\n props: ExtractProps\n): Promise<string> {\n const url = await getNpmUrlAsync(npmName);\n\n debug('Fetch from URL:', url);\n return await extractNpmTarballFromUrlAsync(url, props);\n}\n\nexport async function extractLocalNpmTarballAsync(\n tarFilePath: string,\n props: ExtractProps\n): Promise<string> {\n const readStream = fs.createReadStream(tarFilePath);\n return await extractNpmTarballAsync(readStream, props);\n}\n\nexport type ExtractProps = {\n name: string;\n cwd: string;\n strip?: number;\n fileList?: string[];\n /** The checksum algorithm to use when verifying the tarball. */\n checksumAlgorithm?: string;\n /** An optional filter to selectively extract specific paths */\n filter?: TarOptionsWithAliases['filter'];\n};\n\nasync function createUrlStreamAsync(url: string) {\n const response = await cachedFetch(url);\n if (!response.ok || !response.body) {\n throw new Error(`Unexpected response: ${response.statusText}. From url: ${url}`);\n }\n\n return Readable.fromWeb(response.body);\n}\n\nexport async function extractNpmTarballFromUrlAsync(\n url: string,\n props: ExtractProps\n): Promise<string> {\n return await extractNpmTarballAsync(await createUrlStreamAsync(url), props);\n}\n\n/**\n * Extracts a tarball stream to a directory and returns the checksum of the tarball.\n */\nexport async function extractNpmTarballAsync(\n stream: NodeJS.ReadableStream,\n props: ExtractProps\n): Promise<string> {\n const { cwd, strip, name, fileList = [], filter } = props;\n\n await ensureDirectoryAsync(cwd);\n\n const hash = crypto.createHash(props.checksumAlgorithm ?? 'md5');\n const transformStream = new PassThrough();\n transformStream.on('data', (chunk) => {\n hash.update(chunk);\n });\n\n await pipeline(\n stream,\n transformStream,\n tarExtract(\n {\n cwd,\n filter,\n onentry: createEntryResolver(name),\n strip: strip ?? 1,\n },\n fileList\n )\n );\n\n return hash.digest('hex');\n}\n"],"names":["sanitizeNpmPackageName","npmViewAsync","getNpmUrlAsync","downloadAndExtractNpmModuleAsync","extractLocalNpmTarballAsync","extractNpmTarballFromUrlAsync","extractNpmTarballAsync","debug","require","cachedFetch","createCachedFetch","cacheDirectory","name","applyKnownNpmPackageNameRules","slugify","test","substring","toLowerCase","replace","normalize","props","cmd","results","spawnAsync","stdout","trim","cmdString","join","JSON","parse","error","Error","message","packageName","assert","Array","isArray","tarball","lastResult","length","CommandError","pipeline","promisify","Stream","npmName","url","tarFilePath","readStream","fs","createReadStream","createUrlStreamAsync","response","ok","body","statusText","Readable","fromWeb","stream","cwd","strip","fileList","filter","ensureDirectoryAsync","hash","crypto","createHash","checksumAlgorithm","transformStream","PassThrough","on","chunk","update","tarExtract","onentry","createEntryResolver","digest"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/npm.ts"],"sourcesContent":["import { JSONValue } from '@expo/json-file';\nimport spawnAsync from '@expo/spawn-async';\nimport assert from 'assert';\nimport crypto from 'crypto';\nimport fs from 'fs';\nimport slugify from 'slugify';\nimport { PassThrough, Readable, Stream } from 'stream';\nimport { extract as tarExtract, TarOptionsWithAliases } from 'tar';\nimport { promisify } from 'util';\n\nimport { createEntryResolver } from './createFileTransform';\nimport { ensureDirectoryAsync } from './dir';\nimport { CommandError } from './errors';\nimport { createCachedFetch } from '../api/rest/client';\n\nconst debug = require('debug')('expo:utils:npm') as typeof console.log;\n\nconst cachedFetch = createCachedFetch({\n cacheDirectory: 'template-cache',\n // Time to live. How long (in ms) responses remain cached before being automatically ejected. If undefined, responses are never automatically ejected from the cache.\n // ttl: 1000,\n});\n\nexport function sanitizeNpmPackageName(name: string): string {\n // https://github.com/npm/validate-npm-package-name/#naming-rules\n return (\n applyKnownNpmPackageNameRules(name) ||\n applyKnownNpmPackageNameRules(slugify(name)) ||\n // If nothing is left use 'app' like we do in Xcode projects.\n 'app'\n );\n}\n\nfunction applyKnownNpmPackageNameRules(name: string): string | null {\n // https://github.com/npm/validate-npm-package-name/#naming-rules\n\n // package name cannot start with '.' or '_'.\n while (/^(\\.|_)/.test(name)) {\n name = name.substring(1);\n }\n\n name = name.toLowerCase().replace(/[^a-zA-Z._\\-/@]/g, '');\n\n return (\n name\n // .replace(/![a-z0-9-._~]+/g, '')\n // Remove special characters\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '') || null\n );\n}\n\nexport async function npmViewAsync(...props: string[]): Promise<JSONValue> {\n const cmd = ['view', ...props, '--json'];\n const results = (await spawnAsync('npm', cmd)).stdout?.trim();\n const cmdString = `npm ${cmd.join(' ')}`;\n debug('Run:', cmdString);\n if (!results) {\n return null;\n }\n try {\n return JSON.parse(results);\n } catch (error: any) {\n throw new Error(\n `Could not parse JSON returned from \"${cmdString}\".\\n\\n${results}\\n\\nError: ${error.message}`\n );\n }\n}\n\n/** Given a package name like `expo` or `expo@beta`, return the registry URL if it exists. */\nexport async function getNpmUrlAsync(packageName: string): Promise<string> {\n const results = await npmViewAsync(packageName, 'dist');\n\n assert(results, `Could not get npm url for package \"${packageName}\"`);\n\n // Fully qualified url returns an object.\n // Example:\n // 𝝠 npm view expo-template-bare-minimum@sdk-33 dist --json\n if (typeof results === 'object' && !Array.isArray(results)) {\n return results.tarball as string;\n }\n\n // When the tag is arbitrary, the tarball is an array, return the last value as it's the most recent.\n // Example:\n // 𝝠 npm view expo-template-bare-minimum@33 dist --json\n if (Array.isArray(results)) {\n const lastResult = results[results.length - 1];\n\n if (lastResult && typeof lastResult === 'object' && !Array.isArray(lastResult)) {\n return lastResult.tarball as string;\n }\n }\n\n throw new CommandError(\n 'Expected results of `npm view ...` to be an array or string. Instead found: ' + results\n );\n}\n\n// @ts-ignore\nconst pipeline = promisify(Stream.pipeline);\n\nexport async function downloadAndExtractNpmModuleAsync(\n npmName: string,\n props: ExtractProps\n): Promise<string> {\n const url = await getNpmUrlAsync(npmName);\n\n debug('Fetch from URL:', url);\n return await extractNpmTarballFromUrlAsync(url, props);\n}\n\nexport async function extractLocalNpmTarballAsync(\n tarFilePath: string,\n props: ExtractProps\n): Promise<string> {\n const readStream = fs.createReadStream(tarFilePath);\n return await extractNpmTarballAsync(readStream, props);\n}\n\nexport type ExtractProps = {\n name: string;\n cwd: string;\n strip?: number;\n fileList?: string[];\n /** The checksum algorithm to use when verifying the tarball. */\n checksumAlgorithm?: string;\n /** An optional filter to selectively extract specific paths */\n filter?: TarOptionsWithAliases['filter'];\n};\n\nasync function createUrlStreamAsync(url: string) {\n const response = await cachedFetch(url);\n if (!response.ok || !response.body) {\n throw new Error(`Unexpected response: ${response.statusText}. From url: ${url}`);\n }\n\n return Readable.fromWeb(response.body);\n}\n\nexport async function extractNpmTarballFromUrlAsync(\n url: string,\n props: ExtractProps\n): Promise<string> {\n return await extractNpmTarballAsync(await createUrlStreamAsync(url), props);\n}\n\n/**\n * Extracts a tarball stream to a directory and returns the checksum of the tarball.\n */\nexport async function extractNpmTarballAsync(\n stream: NodeJS.ReadableStream,\n props: ExtractProps\n): Promise<string> {\n const { cwd, strip, name, fileList = [], filter } = props;\n\n await ensureDirectoryAsync(cwd);\n\n const hash = crypto.createHash(props.checksumAlgorithm ?? 'md5');\n const transformStream = new PassThrough();\n transformStream.on('data', (chunk) => {\n hash.update(chunk);\n });\n\n await pipeline(\n stream,\n transformStream,\n tarExtract(\n {\n cwd,\n filter,\n onentry: createEntryResolver(name),\n strip: strip ?? 1,\n },\n fileList\n )\n );\n\n return hash.digest('hex');\n}\n"],"names":["downloadAndExtractNpmModuleAsync","extractLocalNpmTarballAsync","extractNpmTarballAsync","extractNpmTarballFromUrlAsync","getNpmUrlAsync","npmViewAsync","sanitizeNpmPackageName","debug","require","cachedFetch","createCachedFetch","cacheDirectory","name","applyKnownNpmPackageNameRules","slugify","test","substring","toLowerCase","replace","normalize","props","cmd","results","spawnAsync","stdout","trim","cmdString","join","JSON","parse","error","Error","message","packageName","assert","Array","isArray","tarball","lastResult","length","CommandError","pipeline","promisify","Stream","npmName","url","tarFilePath","readStream","fs","createReadStream","createUrlStreamAsync","response","ok","body","statusText","Readable","fromWeb","stream","cwd","strip","fileList","filter","ensureDirectoryAsync","hash","crypto","createHash","checksumAlgorithm","transformStream","PassThrough","on","chunk","update","tarExtract","onentry","createEntryResolver","digest"],"mappings":"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"}
|
package/build/src/utils/obj.js
CHANGED
|
@@ -9,12 +9,18 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
get: ()
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
get: function() {
|
|
13
|
+
return get;
|
|
14
|
+
},
|
|
15
|
+
pickBy: function() {
|
|
16
|
+
return pickBy;
|
|
17
|
+
},
|
|
18
|
+
set: function() {
|
|
19
|
+
return set;
|
|
20
|
+
}
|
|
15
21
|
});
|
|
16
22
|
function get(obj, key) {
|
|
17
|
-
const branches = key.split(
|
|
23
|
+
const branches = key.split('.');
|
|
18
24
|
let current = obj;
|
|
19
25
|
let branch;
|
|
20
26
|
while(branch = branches.shift()){
|
|
@@ -26,7 +32,7 @@ function get(obj, key) {
|
|
|
26
32
|
return current;
|
|
27
33
|
}
|
|
28
34
|
function set(obj, key, value) {
|
|
29
|
-
const branches = key.split(
|
|
35
|
+
const branches = key.split('.');
|
|
30
36
|
let current = obj;
|
|
31
37
|
let branch;
|
|
32
38
|
while(branch = branches.shift()){
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/obj.ts"],"sourcesContent":["/** `lodash.get` */\nexport function get(obj: any, key: string): any | null {\n const branches = key.split('.');\n let current: any = obj;\n let branch: string | undefined;\n while ((branch = branches.shift())) {\n if (!(branch in current)) {\n return null;\n }\n current = current[branch];\n }\n return current;\n}\n\n/** `lodash.set` */\nexport function set(obj: any, key: string, value: any): any | null {\n const branches = key.split('.');\n let current: any = obj;\n let branch: string | undefined;\n while ((branch = branches.shift())) {\n if (branches.length === 0) {\n current[branch] = value;\n return obj;\n }\n\n if (!(branch in current)) {\n current[branch] = {};\n }\n\n current = current[branch];\n }\n return null;\n}\n\n/** `lodash.pickBy` */\nexport function pickBy<T>(\n obj: { [key: string]: T },\n predicate: (value: T, key: string) => boolean | undefined\n) {\n return Object.entries(obj).reduce(\n (acc, [key, value]) => {\n if (predicate(value, key)) {\n acc[key] = value;\n }\n return acc;\n },\n {} as { [key: string]: T }\n );\n}\n"],"names":["get","
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/obj.ts"],"sourcesContent":["/** `lodash.get` */\nexport function get(obj: any, key: string): any | null {\n const branches = key.split('.');\n let current: any = obj;\n let branch: string | undefined;\n while ((branch = branches.shift())) {\n if (!(branch in current)) {\n return null;\n }\n current = current[branch];\n }\n return current;\n}\n\n/** `lodash.set` */\nexport function set(obj: any, key: string, value: any): any | null {\n const branches = key.split('.');\n let current: any = obj;\n let branch: string | undefined;\n while ((branch = branches.shift())) {\n if (branches.length === 0) {\n current[branch] = value;\n return obj;\n }\n\n if (!(branch in current)) {\n current[branch] = {};\n }\n\n current = current[branch];\n }\n return null;\n}\n\n/** `lodash.pickBy` */\nexport function pickBy<T>(\n obj: { [key: string]: T },\n predicate: (value: T, key: string) => boolean | undefined\n) {\n return Object.entries(obj).reduce(\n (acc, [key, value]) => {\n if (predicate(value, key)) {\n acc[key] = value;\n }\n return acc;\n },\n {} as { [key: string]: T }\n );\n}\n"],"names":["get","pickBy","set","obj","key","branches","split","current","branch","shift","value","length","predicate","Object","entries","reduce","acc"],"mappings":"AAAA,iBAAiB;;;;;;;;;;;IACDA,GAAG;eAAHA;;IAkCAC,MAAM;eAANA;;IApBAC,GAAG;eAAHA;;;AAdT,SAASF,IAAIG,GAAQ,EAAEC,GAAW;IACvC,MAAMC,WAAWD,IAAIE,KAAK,CAAC;IAC3B,IAAIC,UAAeJ;IACnB,IAAIK;IACJ,MAAQA,SAASH,SAASI,KAAK,GAAK;QAClC,IAAI,CAAED,CAAAA,UAAUD,OAAM,GAAI;YACxB,OAAO;QACT;QACAA,UAAUA,OAAO,CAACC,OAAO;IAC3B;IACA,OAAOD;AACT;AAGO,SAASL,IAAIC,GAAQ,EAAEC,GAAW,EAAEM,KAAU;IACnD,MAAML,WAAWD,IAAIE,KAAK,CAAC;IAC3B,IAAIC,UAAeJ;IACnB,IAAIK;IACJ,MAAQA,SAASH,SAASI,KAAK,GAAK;QAClC,IAAIJ,SAASM,MAAM,KAAK,GAAG;YACzBJ,OAAO,CAACC,OAAO,GAAGE;YAClB,OAAOP;QACT;QAEA,IAAI,CAAEK,CAAAA,UAAUD,OAAM,GAAI;YACxBA,OAAO,CAACC,OAAO,GAAG,CAAC;QACrB;QAEAD,UAAUA,OAAO,CAACC,OAAO;IAC3B;IACA,OAAO;AACT;AAGO,SAASP,OACdE,GAAyB,EACzBS,SAAyD;IAEzD,OAAOC,OAAOC,OAAO,CAACX,KAAKY,MAAM,CAC/B,CAACC,KAAK,CAACZ,KAAKM,MAAM;QAChB,IAAIE,UAAUF,OAAON,MAAM;YACzBY,GAAG,CAACZ,IAAI,GAAGM;QACb;QACA,OAAOM;IACT,GACA,CAAC;AAEL"}
|
package/build/src/utils/open.js
CHANGED
|
@@ -4,28 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "openBrowserAsync", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return openBrowserAsync;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
|
-
function
|
|
10
|
-
const data = /*#__PURE__*/
|
|
11
|
-
|
|
11
|
+
function _betteropn() {
|
|
12
|
+
const data = /*#__PURE__*/ _interop_require_default(require("better-opn"));
|
|
13
|
+
_betteropn = function() {
|
|
12
14
|
return data;
|
|
13
15
|
};
|
|
14
16
|
return data;
|
|
15
17
|
}
|
|
16
|
-
function
|
|
18
|
+
function _interop_require_default(obj) {
|
|
17
19
|
return obj && obj.__esModule ? obj : {
|
|
18
20
|
default: obj
|
|
19
21
|
};
|
|
20
22
|
}
|
|
21
23
|
async function openBrowserAsync(target, options) {
|
|
22
|
-
if (process.platform !==
|
|
23
|
-
return await (0,
|
|
24
|
+
if (process.platform !== 'win32') {
|
|
25
|
+
return await (0, _betteropn().default)(target, options);
|
|
24
26
|
}
|
|
25
27
|
const oldSystemRoot = process.env.SYSTEMROOT;
|
|
26
28
|
try {
|
|
27
29
|
process.env.SYSTEMROOT = process.env.SYSTEMROOT ?? process.env.SystemRoot;
|
|
28
|
-
return await (0,
|
|
30
|
+
return await (0, _betteropn().default)(target, options);
|
|
29
31
|
} finally{
|
|
30
32
|
process.env.SYSTEMROOT = oldSystemRoot;
|
|
31
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/open.ts"],"sourcesContent":["import betterOpenBrowserAsync from 'better-opn';\n\n/**\n * Due to a bug in `open`, which is used as fallback on Windows, we need to ensure `process.env.SYSTEMROOT` is set.\n * This environment variable is set by Windows on `SystemRoot`, causing `open` to execute a command with an \"unknown\" drive letter.\n *\n * @see https://github.com/sindresorhus/open/issues/205\n */\nexport async function openBrowserAsync(\n target: string,\n options?: any\n): Promise<import('child_process').ChildProcess | false> {\n if (process.platform !== 'win32') {\n return await betterOpenBrowserAsync(target, options);\n }\n\n const oldSystemRoot = process.env.SYSTEMROOT;\n try {\n process.env.SYSTEMROOT = process.env.SYSTEMROOT ?? process.env.SystemRoot;\n return await betterOpenBrowserAsync(target, options);\n } finally {\n process.env.SYSTEMROOT = oldSystemRoot;\n }\n}\n"],"names":["openBrowserAsync","target","options","process","platform","betterOpenBrowserAsync","oldSystemRoot","env","SYSTEMROOT","SystemRoot"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/open.ts"],"sourcesContent":["import betterOpenBrowserAsync from 'better-opn';\n\n/**\n * Due to a bug in `open`, which is used as fallback on Windows, we need to ensure `process.env.SYSTEMROOT` is set.\n * This environment variable is set by Windows on `SystemRoot`, causing `open` to execute a command with an \"unknown\" drive letter.\n *\n * @see https://github.com/sindresorhus/open/issues/205\n */\nexport async function openBrowserAsync(\n target: string,\n options?: any\n): Promise<import('child_process').ChildProcess | false> {\n if (process.platform !== 'win32') {\n return await betterOpenBrowserAsync(target, options);\n }\n\n const oldSystemRoot = process.env.SYSTEMROOT;\n try {\n process.env.SYSTEMROOT = process.env.SYSTEMROOT ?? process.env.SystemRoot;\n return await betterOpenBrowserAsync(target, options);\n } finally {\n process.env.SYSTEMROOT = oldSystemRoot;\n }\n}\n"],"names":["openBrowserAsync","target","options","process","platform","betterOpenBrowserAsync","oldSystemRoot","env","SYSTEMROOT","SystemRoot"],"mappings":";;;;+BAQsBA;;;eAAAA;;;;gEARa;;;;;;;;;;;AAQ5B,eAAeA,iBACpBC,MAAc,EACdC,OAAa;IAEb,IAAIC,QAAQC,QAAQ,KAAK,SAAS;QAChC,OAAO,MAAMC,IAAAA,oBAAsB,EAACJ,QAAQC;IAC9C;IAEA,MAAMI,gBAAgBH,QAAQI,GAAG,CAACC,UAAU;IAC5C,IAAI;QACFL,QAAQI,GAAG,CAACC,UAAU,GAAGL,QAAQI,GAAG,CAACC,UAAU,IAAIL,QAAQI,GAAG,CAACE,UAAU;QACzE,OAAO,MAAMJ,IAAAA,oBAAsB,EAACJ,QAAQC;IAC9C,SAAU;QACRC,QAAQI,GAAG,CAACC,UAAU,GAAGF;IAC3B;AACF"}
|
package/build/src/utils/ora.js
CHANGED
|
@@ -9,19 +9,25 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
getAllSpinners: ()
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
getAllSpinners: function() {
|
|
13
|
+
return getAllSpinners;
|
|
14
|
+
},
|
|
15
|
+
logNewSection: function() {
|
|
16
|
+
return logNewSection;
|
|
17
|
+
},
|
|
18
|
+
ora: function() {
|
|
19
|
+
return ora;
|
|
20
|
+
}
|
|
15
21
|
});
|
|
16
22
|
function _chalk() {
|
|
17
|
-
const data = /*#__PURE__*/
|
|
23
|
+
const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
|
|
18
24
|
_chalk = function() {
|
|
19
25
|
return data;
|
|
20
26
|
};
|
|
21
27
|
return data;
|
|
22
28
|
}
|
|
23
29
|
function _ora() {
|
|
24
|
-
const data = /*#__PURE__*/
|
|
30
|
+
const data = /*#__PURE__*/ _interop_require_default(require("ora"));
|
|
25
31
|
_ora = function() {
|
|
26
32
|
return data;
|
|
27
33
|
};
|
|
@@ -29,7 +35,7 @@ function _ora() {
|
|
|
29
35
|
}
|
|
30
36
|
const _env = require("./env");
|
|
31
37
|
const _interactive = require("./interactive");
|
|
32
|
-
function
|
|
38
|
+
function _interop_require_default(obj) {
|
|
33
39
|
return obj && obj.__esModule ? obj : {
|
|
34
40
|
default: obj
|
|
35
41
|
};
|
|
@@ -43,7 +49,7 @@ function getAllSpinners() {
|
|
|
43
49
|
return runningSpinners;
|
|
44
50
|
}
|
|
45
51
|
function ora(options) {
|
|
46
|
-
const inputOptions = typeof options ===
|
|
52
|
+
const inputOptions = typeof options === 'string' ? {
|
|
47
53
|
text: options
|
|
48
54
|
} : options || {};
|
|
49
55
|
const disabled = !(0, _interactive.isInteractive)() || _env.env.EXPO_DEBUG;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/ora.ts"],"sourcesContent":["import chalk from 'chalk';\nimport oraReal, { Ora } from 'ora';\n\n// import * as Log from '../log';\nimport { env } from './env';\nimport { isInteractive } from './interactive';\n\nconst logReal = console.log;\nconst infoReal = console.info;\nconst warnReal = console.warn;\nconst errorReal = console.error;\n\nconst runningSpinners: oraReal.Ora[] = [];\n\nexport function getAllSpinners() {\n return runningSpinners;\n}\n\n/**\n * A custom ora spinner that sends the stream to stdout in CI, non-TTY, or expo's non-interactive flag instead of stderr (the default).\n *\n * @param options\n * @returns\n */\nexport function ora(options?: oraReal.Options | string): oraReal.Ora {\n const inputOptions = typeof options === 'string' ? { text: options } : options || {};\n const disabled = !isInteractive() || env.EXPO_DEBUG;\n const spinner = oraReal({\n // Ensure our non-interactive mode emulates CI mode.\n isEnabled: !disabled,\n // In non-interactive mode, send the stream to stdout so it prevents looking like an error.\n stream: disabled ? process.stdout : process.stderr,\n ...inputOptions,\n });\n\n const oraStart = spinner.start.bind(spinner);\n const oraStop = spinner.stop.bind(spinner);\n const oraStopAndPersist = spinner.stopAndPersist.bind(spinner);\n\n const logWrap = (method: any, args: any[]): void => {\n oraStop();\n method(...args);\n spinner.start();\n };\n\n const wrapNativeLogs = (): void => {\n console.log = (...args: any) => logWrap(logReal, args);\n console.info = (...args: any) => logWrap(infoReal, args);\n console.warn = (...args: any) => logWrap(warnReal, args);\n console.error = (...args: any) => logWrap(errorReal, args);\n\n runningSpinners.push(spinner);\n };\n\n const resetNativeLogs = (): void => {\n console.log = logReal;\n console.info = infoReal;\n console.warn = warnReal;\n console.error = errorReal;\n\n const index = runningSpinners.indexOf(spinner);\n if (index >= 0) {\n runningSpinners.splice(index, 1);\n }\n };\n\n spinner.start = (text): Ora => {\n wrapNativeLogs();\n return oraStart(text);\n };\n\n spinner.stopAndPersist = (options): Ora => {\n const result = oraStopAndPersist(options);\n resetNativeLogs();\n return result;\n };\n\n spinner.stop = (): Ora => {\n const result = oraStop();\n resetNativeLogs();\n return result;\n };\n\n // Always make the central logging module aware of the current spinner\n // Log.setSpinner(spinner);\n\n return spinner;\n}\n\n/**\n * Create a unified section spinner.\n *\n * @param title\n * @returns\n */\nexport function logNewSection(title: string) {\n const spinner = ora(chalk.bold(title));\n // Prevent the spinner from clashing with debug logs\n spinner.start();\n return spinner;\n}\n"],"names":["getAllSpinners","
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/ora.ts"],"sourcesContent":["import chalk from 'chalk';\nimport oraReal, { Ora } from 'ora';\n\n// import * as Log from '../log';\nimport { env } from './env';\nimport { isInteractive } from './interactive';\n\nconst logReal = console.log;\nconst infoReal = console.info;\nconst warnReal = console.warn;\nconst errorReal = console.error;\n\nconst runningSpinners: oraReal.Ora[] = [];\n\nexport function getAllSpinners() {\n return runningSpinners;\n}\n\n/**\n * A custom ora spinner that sends the stream to stdout in CI, non-TTY, or expo's non-interactive flag instead of stderr (the default).\n *\n * @param options\n * @returns\n */\nexport function ora(options?: oraReal.Options | string): oraReal.Ora {\n const inputOptions = typeof options === 'string' ? { text: options } : options || {};\n const disabled = !isInteractive() || env.EXPO_DEBUG;\n const spinner = oraReal({\n // Ensure our non-interactive mode emulates CI mode.\n isEnabled: !disabled,\n // In non-interactive mode, send the stream to stdout so it prevents looking like an error.\n stream: disabled ? process.stdout : process.stderr,\n ...inputOptions,\n });\n\n const oraStart = spinner.start.bind(spinner);\n const oraStop = spinner.stop.bind(spinner);\n const oraStopAndPersist = spinner.stopAndPersist.bind(spinner);\n\n const logWrap = (method: any, args: any[]): void => {\n oraStop();\n method(...args);\n spinner.start();\n };\n\n const wrapNativeLogs = (): void => {\n console.log = (...args: any) => logWrap(logReal, args);\n console.info = (...args: any) => logWrap(infoReal, args);\n console.warn = (...args: any) => logWrap(warnReal, args);\n console.error = (...args: any) => logWrap(errorReal, args);\n\n runningSpinners.push(spinner);\n };\n\n const resetNativeLogs = (): void => {\n console.log = logReal;\n console.info = infoReal;\n console.warn = warnReal;\n console.error = errorReal;\n\n const index = runningSpinners.indexOf(spinner);\n if (index >= 0) {\n runningSpinners.splice(index, 1);\n }\n };\n\n spinner.start = (text): Ora => {\n wrapNativeLogs();\n return oraStart(text);\n };\n\n spinner.stopAndPersist = (options): Ora => {\n const result = oraStopAndPersist(options);\n resetNativeLogs();\n return result;\n };\n\n spinner.stop = (): Ora => {\n const result = oraStop();\n resetNativeLogs();\n return result;\n };\n\n // Always make the central logging module aware of the current spinner\n // Log.setSpinner(spinner);\n\n return spinner;\n}\n\n/**\n * Create a unified section spinner.\n *\n * @param title\n * @returns\n */\nexport function logNewSection(title: string) {\n const spinner = ora(chalk.bold(title));\n // Prevent the spinner from clashing with debug logs\n spinner.start();\n return spinner;\n}\n"],"names":["getAllSpinners","logNewSection","ora","logReal","console","log","infoReal","info","warnReal","warn","errorReal","error","runningSpinners","options","inputOptions","text","disabled","isInteractive","env","EXPO_DEBUG","spinner","oraReal","isEnabled","stream","process","stdout","stderr","oraStart","start","bind","oraStop","stop","oraStopAndPersist","stopAndPersist","logWrap","method","args","wrapNativeLogs","push","resetNativeLogs","index","indexOf","splice","result","title","chalk","bold"],"mappings":";;;;;;;;;;;IAcgBA,cAAc;eAAdA;;IAiFAC,aAAa;eAAbA;;IAvEAC,GAAG;eAAHA;;;;gEAxBE;;;;;;;gEACW;;;;;;qBAGT;6BACU;;;;;;AAE9B,MAAMC,UAAUC,QAAQC,GAAG;AAC3B,MAAMC,WAAWF,QAAQG,IAAI;AAC7B,MAAMC,WAAWJ,QAAQK,IAAI;AAC7B,MAAMC,YAAYN,QAAQO,KAAK;AAE/B,MAAMC,kBAAiC,EAAE;AAElC,SAASZ;IACd,OAAOY;AACT;AAQO,SAASV,IAAIW,OAAkC;IACpD,MAAMC,eAAe,OAAOD,YAAY,WAAW;QAAEE,MAAMF;IAAQ,IAAIA,WAAW,CAAC;IACnF,MAAMG,WAAW,CAACC,IAAAA,0BAAa,OAAMC,QAAG,CAACC,UAAU;IACnD,MAAMC,UAAUC,IAAAA,cAAO,EAAC;QACtB,oDAAoD;QACpDC,WAAW,CAACN;QACZ,2FAA2F;QAC3FO,QAAQP,WAAWQ,QAAQC,MAAM,GAAGD,QAAQE,MAAM;QAClD,GAAGZ,YAAY;IACjB;IAEA,MAAMa,WAAWP,QAAQQ,KAAK,CAACC,IAAI,CAACT;IACpC,MAAMU,UAAUV,QAAQW,IAAI,CAACF,IAAI,CAACT;IAClC,MAAMY,oBAAoBZ,QAAQa,cAAc,CAACJ,IAAI,CAACT;IAEtD,MAAMc,UAAU,CAACC,QAAaC;QAC5BN;QACAK,UAAUC;QACVhB,QAAQQ,KAAK;IACf;IAEA,MAAMS,iBAAiB;QACrBjC,QAAQC,GAAG,GAAG,CAAC,GAAG+B,OAAcF,QAAQ/B,SAASiC;QACjDhC,QAAQG,IAAI,GAAG,CAAC,GAAG6B,OAAcF,QAAQ5B,UAAU8B;QACnDhC,QAAQK,IAAI,GAAG,CAAC,GAAG2B,OAAcF,QAAQ1B,UAAU4B;QACnDhC,QAAQO,KAAK,GAAG,CAAC,GAAGyB,OAAcF,QAAQxB,WAAW0B;QAErDxB,gBAAgB0B,IAAI,CAAClB;IACvB;IAEA,MAAMmB,kBAAkB;QACtBnC,QAAQC,GAAG,GAAGF;QACdC,QAAQG,IAAI,GAAGD;QACfF,QAAQK,IAAI,GAAGD;QACfJ,QAAQO,KAAK,GAAGD;QAEhB,MAAM8B,QAAQ5B,gBAAgB6B,OAAO,CAACrB;QACtC,IAAIoB,SAAS,GAAG;YACd5B,gBAAgB8B,MAAM,CAACF,OAAO;QAChC;IACF;IAEApB,QAAQQ,KAAK,GAAG,CAACb;QACfsB;QACA,OAAOV,SAASZ;IAClB;IAEAK,QAAQa,cAAc,GAAG,CAACpB;QACxB,MAAM8B,SAASX,kBAAkBnB;QACjC0B;QACA,OAAOI;IACT;IAEAvB,QAAQW,IAAI,GAAG;QACb,MAAMY,SAASb;QACfS;QACA,OAAOI;IACT;IAEA,sEAAsE;IACtE,2BAA2B;IAE3B,OAAOvB;AACT;AAQO,SAASnB,cAAc2C,KAAa;IACzC,MAAMxB,UAAUlB,IAAI2C,gBAAK,CAACC,IAAI,CAACF;IAC/B,oDAAoD;IACpDxB,QAAQQ,KAAK;IACb,OAAOR;AACT"}
|
package/build/src/utils/plist.js
CHANGED
|
@@ -9,33 +9,37 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
parsePlistAsync: ()
|
|
13
|
-
|
|
12
|
+
parsePlistAsync: function() {
|
|
13
|
+
return parsePlistAsync;
|
|
14
|
+
},
|
|
15
|
+
parsePlistBuffer: function() {
|
|
16
|
+
return parsePlistBuffer;
|
|
17
|
+
}
|
|
14
18
|
});
|
|
15
19
|
function _plist() {
|
|
16
|
-
const data = /*#__PURE__*/
|
|
20
|
+
const data = /*#__PURE__*/ _interop_require_default(require("@expo/plist"));
|
|
17
21
|
_plist = function() {
|
|
18
22
|
return data;
|
|
19
23
|
};
|
|
20
24
|
return data;
|
|
21
25
|
}
|
|
22
|
-
function
|
|
23
|
-
const data = /*#__PURE__*/
|
|
24
|
-
|
|
26
|
+
function _bplistparser() {
|
|
27
|
+
const data = /*#__PURE__*/ _interop_require_default(require("bplist-parser"));
|
|
28
|
+
_bplistparser = function() {
|
|
25
29
|
return data;
|
|
26
30
|
};
|
|
27
31
|
return data;
|
|
28
32
|
}
|
|
29
33
|
function _promises() {
|
|
30
|
-
const data = /*#__PURE__*/
|
|
34
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs/promises"));
|
|
31
35
|
_promises = function() {
|
|
32
36
|
return data;
|
|
33
37
|
};
|
|
34
38
|
return data;
|
|
35
39
|
}
|
|
36
40
|
const _errors = require("./errors");
|
|
37
|
-
const _log = /*#__PURE__*/
|
|
38
|
-
function
|
|
41
|
+
const _log = /*#__PURE__*/ _interop_require_wildcard(require("../log"));
|
|
42
|
+
function _interop_require_default(obj) {
|
|
39
43
|
return obj && obj.__esModule ? obj : {
|
|
40
44
|
default: obj
|
|
41
45
|
};
|
|
@@ -48,7 +52,7 @@ function _getRequireWildcardCache(nodeInterop) {
|
|
|
48
52
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
49
53
|
})(nodeInterop);
|
|
50
54
|
}
|
|
51
|
-
function
|
|
55
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
52
56
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
53
57
|
return obj;
|
|
54
58
|
}
|
|
@@ -61,7 +65,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
61
65
|
if (cache && cache.has(obj)) {
|
|
62
66
|
return cache.get(obj);
|
|
63
67
|
}
|
|
64
|
-
var newObj = {
|
|
68
|
+
var newObj = {
|
|
69
|
+
__proto__: null
|
|
70
|
+
};
|
|
65
71
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
66
72
|
for(var key in obj){
|
|
67
73
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -92,11 +98,11 @@ function parsePlistBuffer(contents) {
|
|
|
92
98
|
return info;
|
|
93
99
|
} else if (contents[0] === CHAR_B_LOWER) {
|
|
94
100
|
// @ts-expect-error
|
|
95
|
-
const
|
|
96
|
-
if (Array.isArray(
|
|
97
|
-
return
|
|
101
|
+
const info = _bplistparser().default.parseBuffer(contents);
|
|
102
|
+
if (Array.isArray(info)) return info[0];
|
|
103
|
+
return info;
|
|
98
104
|
} else {
|
|
99
|
-
throw new _errors.CommandError(
|
|
105
|
+
throw new _errors.CommandError('PLIST', `Cannot parse plist of type byte (0x${contents[0].toString(16)})`);
|
|
100
106
|
}
|
|
101
107
|
}
|
|
102
108
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/plist.ts"],"sourcesContent":["import plist from '@expo/plist';\nimport binaryPlist from 'bplist-parser';\nimport fs from 'fs/promises';\n\nimport { CommandError } from './errors';\nimport * as Log from '../log';\n\nconst CHAR_CHEVRON_OPEN = 60;\nconst CHAR_B_LOWER = 98;\n// .mobileprovision\n// const CHAR_ZERO = 30;\n\nexport async function parsePlistAsync(plistPath: string) {\n Log.debug(`Parse plist: ${plistPath}`);\n\n return parsePlistBuffer(await fs.readFile(plistPath));\n}\n\nexport function parsePlistBuffer(contents: Buffer) {\n if (contents[0] === CHAR_CHEVRON_OPEN) {\n const info = plist.parse(contents.toString());\n if (Array.isArray(info)) return info[0];\n return info;\n } else if (contents[0] === CHAR_B_LOWER) {\n // @ts-expect-error\n const info = binaryPlist.parseBuffer(contents);\n if (Array.isArray(info)) return info[0];\n return info;\n } else {\n throw new CommandError(\n 'PLIST',\n `Cannot parse plist of type byte (0x${contents[0].toString(16)})`\n );\n }\n}\n"],"names":["parsePlistAsync","parsePlistBuffer","CHAR_CHEVRON_OPEN","CHAR_B_LOWER","plistPath","Log","debug","fs","readFile","contents","info","plist","parse","toString","Array","isArray","binaryPlist","parseBuffer","CommandError"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/plist.ts"],"sourcesContent":["import plist from '@expo/plist';\nimport binaryPlist from 'bplist-parser';\nimport fs from 'fs/promises';\n\nimport { CommandError } from './errors';\nimport * as Log from '../log';\n\nconst CHAR_CHEVRON_OPEN = 60;\nconst CHAR_B_LOWER = 98;\n// .mobileprovision\n// const CHAR_ZERO = 30;\n\nexport async function parsePlistAsync(plistPath: string) {\n Log.debug(`Parse plist: ${plistPath}`);\n\n return parsePlistBuffer(await fs.readFile(plistPath));\n}\n\nexport function parsePlistBuffer(contents: Buffer) {\n if (contents[0] === CHAR_CHEVRON_OPEN) {\n const info = plist.parse(contents.toString());\n if (Array.isArray(info)) return info[0];\n return info;\n } else if (contents[0] === CHAR_B_LOWER) {\n // @ts-expect-error\n const info = binaryPlist.parseBuffer(contents);\n if (Array.isArray(info)) return info[0];\n return info;\n } else {\n throw new CommandError(\n 'PLIST',\n `Cannot parse plist of type byte (0x${contents[0].toString(16)})`\n );\n }\n}\n"],"names":["parsePlistAsync","parsePlistBuffer","CHAR_CHEVRON_OPEN","CHAR_B_LOWER","plistPath","Log","debug","fs","readFile","contents","info","plist","parse","toString","Array","isArray","binaryPlist","parseBuffer","CommandError"],"mappings":";;;;;;;;;;;IAYsBA,eAAe;eAAfA;;IAMNC,gBAAgB;eAAhBA;;;;gEAlBE;;;;;;;gEACM;;;;;;;gEACT;;;;;;wBAEc;6DACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAErB,MAAMC,oBAAoB;AAC1B,MAAMC,eAAe;AAId,eAAeH,gBAAgBI,SAAiB;IACrDC,KAAIC,KAAK,CAAC,CAAC,aAAa,EAAEF,WAAW;IAErC,OAAOH,iBAAiB,MAAMM,mBAAE,CAACC,QAAQ,CAACJ;AAC5C;AAEO,SAASH,iBAAiBQ,QAAgB;IAC/C,IAAIA,QAAQ,CAAC,EAAE,KAAKP,mBAAmB;QACrC,MAAMQ,OAAOC,gBAAK,CAACC,KAAK,CAACH,SAASI,QAAQ;QAC1C,IAAIC,MAAMC,OAAO,CAACL,OAAO,OAAOA,IAAI,CAAC,EAAE;QACvC,OAAOA;IACT,OAAO,IAAID,QAAQ,CAAC,EAAE,KAAKN,cAAc;QACvC,mBAAmB;QACnB,MAAMO,OAAOM,uBAAW,CAACC,WAAW,CAACR;QACrC,IAAIK,MAAMC,OAAO,CAACL,OAAO,OAAOA,IAAI,CAAC,EAAE;QACvC,OAAOA;IACT,OAAO;QACL,MAAM,IAAIQ,oBAAY,CACpB,SACA,CAAC,mCAAmC,EAAET,QAAQ,CAAC,EAAE,CAACI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAErE;AACF"}
|