@expo/cli 0.18.0 → 0.18.2
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 +90 -114
- package/build/bin/cli.map +1 -1
- package/build/src/api/endpoint.js +11 -3
- package/build/src/api/endpoint.js.map +1 -1
- package/build/src/api/getExpoGoIntermediateCertificate.js +7 -4
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
- package/build/src/api/getExpoSchema.js +13 -11
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/getNativeModuleVersions.js +7 -4
- package/build/src/api/getNativeModuleVersions.js.map +1 -1
- package/build/src/api/getProjectDevelopmentCertificate.js +7 -4
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
- package/build/src/api/getVersions.js +7 -4
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/graphql/client.js +55 -35
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +9 -7
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +7 -5
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +6 -4
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemCache.js +6 -4
- package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
- package/build/src/api/rest/cache/response.js +4 -1
- package/build/src/api/rest/cache/response.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +21 -12
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +36 -29
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +4 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js +5 -2
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProgress.js +40 -19
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +7 -4
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/settings.js +9 -4
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +16 -8
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +10 -8
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +66 -41
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +46 -25
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +70 -50
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +66 -41
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +62 -43
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +46 -30
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +14 -11
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +61 -46
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +10 -8
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/resolveOptions.js +7 -4
- package/build/src/customize/resolveOptions.js.map +1 -1
- package/build/src/customize/templates.js +31 -34
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +43 -28
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +7 -6
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +51 -38
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/index.js +48 -36
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +7 -4
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +20 -8
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +84 -67
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +62 -43
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +47 -26
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportHermes.js +19 -11
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +49 -38
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +19 -11
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/fork-bundleAsync.js +42 -39
- package/build/src/export/fork-bundleAsync.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +9 -6
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +7 -4
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/html.js +12 -4
- package/build/src/export/html.js.map +1 -1
- package/build/src/export/index.js +49 -33
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +22 -6
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +38 -24
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +15 -7
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +19 -15
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +42 -38
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +15 -12
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +47 -31
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/export/web/resolveOptions.js +4 -1
- package/build/src/export/web/resolveOptions.js.map +1 -1
- package/build/src/export/writeContents.js +12 -7
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/graphql/generated.js +141 -128
- package/build/src/graphql/generated.js.map +1 -1
- package/build/src/install/applyPlugins.js +43 -25
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +55 -35
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +52 -35
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +15 -13
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +90 -65
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +48 -27
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/resolveOptions.js +8 -5
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +15 -7
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/lint/ESlintPrerequisite.js +174 -0
- package/build/src/lint/ESlintPrerequisite.js.map +1 -0
- package/build/src/lint/index.js +66 -0
- package/build/src/lint/index.js.map +1 -0
- package/build/src/lint/lintAsync.js +33 -0
- package/build/src/lint/lintAsync.js.map +1 -0
- package/build/src/log.js +20 -14
- package/build/src/log.js.map +1 -1
- package/build/src/login/index.js +43 -25
- package/build/src/login/index.js.map +1 -1
- package/build/src/logout/index.js +43 -25
- package/build/src/logout/index.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +65 -42
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +50 -29
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +19 -13
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +54 -28
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +52 -38
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +68 -51
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +15 -10
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +60 -35
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +66 -40
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +67 -44
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +70 -49
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +44 -23
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/register/index.js +43 -25
- package/build/src/register/index.js.map +1 -1
- package/build/src/register/registerAsync.js +14 -11
- package/build/src/register/registerAsync.js.map +1 -1
- package/build/src/run/android/index.js +47 -31
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveDevice.js +9 -6
- package/build/src/run/android/resolveDevice.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +10 -9
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
- package/build/src/run/android/resolveInstallApkName.js +14 -12
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +6 -3
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +12 -9
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +27 -24
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +11 -8
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +15 -7
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +49 -35
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +75 -51
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +31 -24
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +66 -33
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +73 -47
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +53 -26
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +15 -6
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +54 -27
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +56 -30
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +18 -4
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +22 -13
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +57 -31
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +79 -66
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +28 -14
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +24 -11
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +26 -13
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +23 -10
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +27 -20
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +49 -28
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +61 -36
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/settings.js +11 -3
- package/build/src/run/ios/codeSigning/settings.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +7 -5
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +14 -8
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +50 -34
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +52 -31
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +17 -13
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +63 -39
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +57 -34
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveOptions.js +15 -12
- package/build/src/run/ios/options/resolveOptions.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +6 -3
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +63 -42
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/resolveBundlerProps.js +8 -5
- package/build/src/run/resolveBundlerProps.js.map +1 -1
- package/build/src/run/startBundler.js +47 -26
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/start/detectDevClient.js +6 -3
- package/build/src/start/detectDevClient.js.map +1 -1
- package/build/src/start/doctor/Prerequisite.js +15 -7
- package/build/src/start/doctor/Prerequisite.js.map +1 -1
- package/build/src/start/doctor/SecurityBinPrerequisite.js +7 -4
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +44 -23
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +44 -23
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +61 -36
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +15 -12
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +49 -28
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +98 -53
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -9
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +23 -15
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +19 -13
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +63 -41
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +64 -39
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -5
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +59 -41
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +59 -36
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +57 -31
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +56 -42
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js +43 -22
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +60 -38
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +85 -68
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +78 -57
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +9 -6
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +41 -20
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +55 -35
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +19 -17
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +15 -12
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +6 -4
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +70 -50
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidPlatformManager.js +9 -6
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +11 -8
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +43 -22
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +73 -52
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +57 -31
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +63 -42
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/getDevices.js +11 -10
- package/build/src/start/platforms/android/getDevices.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +18 -11
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +14 -14
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +7 -4
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +80 -54
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/ApplePlatformManager.js +7 -4
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
- package/build/src/start/platforms/ios/assertSystemRequirements.js +11 -8
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +50 -29
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +53 -29
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +18 -12
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +65 -42
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +67 -44
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +8 -5
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +19 -16
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/project/dotExpo.js +13 -5
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/project/settings.js +6 -4
- package/build/src/start/project/settings.js.map +1 -1
- package/build/src/start/resolveOptions.js +26 -19
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +66 -46
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +64 -44
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +81 -69
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +21 -16
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +49 -31
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +14 -6
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +44 -23
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +46 -34
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +135 -108
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +24 -17
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +18 -8
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +31 -20
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +76 -51
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +22 -14
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +4 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +10 -9
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +14 -13
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
- package/build/src/start/server/metro/debugging/getDebuggerType.js +5 -2
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +5 -2
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +5 -2
- package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -4
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +7 -4
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -4
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +7 -4
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
- package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -1
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
- package/build/src/start/server/metro/externals.js +21 -10
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +20 -7
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +21 -17
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +15 -7
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +57 -44
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +43 -34
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroErrors.js +11 -2
- package/build/src/start/server/metro/metroErrors.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +10 -2
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +5 -2
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +27 -20
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +21 -14
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +7 -7
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +12 -4
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +107 -81
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +72 -42
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +13 -5
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +15 -12
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +30 -23
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +47 -21
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +23 -16
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +84 -60
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +14 -7
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +47 -26
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -8
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +30 -24
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js +16 -8
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +16 -12
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +59 -37
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +22 -16
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +9 -6
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +26 -18
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/mutations.js +11 -4
- package/build/src/start/server/middleware/mutations.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +65 -41
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +14 -6
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
- package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
- package/build/src/start/server/openPlatforms.js +7 -6
- package/build/src/start/server/openPlatforms.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +5 -2
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +62 -33
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +12 -4
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +52 -51
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +22 -19
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +18 -11
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +21 -15
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +81 -56
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +47 -26
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +13 -5
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +54 -28
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +73 -52
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +46 -25
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/analytics/getDevClientProperties.js +29 -21
- package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
- package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
- package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
- package/build/src/utils/analytics/getMetroProperties.js +4 -1
- package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
- package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
- package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
- package/build/src/utils/ansi.js +5 -2
- package/build/src/utils/ansi.js.map +1 -1
- package/build/src/utils/args.js +57 -29
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/array.js +16 -9
- package/build/src/utils/array.js.map +1 -1
- package/build/src/utils/cocoapods.js +77 -53
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +80 -58
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +13 -5
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/delay.js +13 -6
- package/build/src/utils/delay.js.map +1 -1
- package/build/src/utils/dir.js +24 -21
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +16 -13
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +26 -20
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +50 -24
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +35 -33
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +17 -9
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/exit.js +10 -7
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/findUp.js +22 -4
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/fn.js +11 -3
- package/build/src/utils/fn.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +71 -45
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +52 -26
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +64 -38
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +14 -9
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/interactive.js +5 -2
- package/build/src/utils/interactive.js.map +1 -1
- package/build/src/utils/ip.js +5 -2
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +7 -4
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/link.js +13 -5
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +22 -17
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +56 -30
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +43 -22
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/nodeEnv.js +6 -1
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +9 -6
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +32 -24
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/obj.js +12 -4
- package/build/src/utils/obj.js.map +1 -1
- package/build/src/utils/open.js +7 -4
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +25 -21
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +53 -27
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +58 -32
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +49 -28
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +16 -12
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +33 -28
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/resolveArgs.js +23 -20
- package/build/src/utils/resolveArgs.js.map +1 -1
- package/build/src/utils/scheme.js +61 -37
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/strings.js +11 -4
- package/build/src/utils/strings.js.map +1 -1
- package/build/src/utils/tar.js +43 -22
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/DetachedClient.js +8 -5
- package/build/src/utils/telemetry/DetachedClient.js.map +1 -1
- package/build/src/utils/telemetry/RudderClient.js +12 -9
- package/build/src/utils/telemetry/RudderClient.js.map +1 -1
- package/build/src/utils/telemetry/flushDetached.js +8 -7
- package/build/src/utils/telemetry/flushDetached.js.map +1 -1
- package/build/src/utils/telemetry/getContext.js +48 -28
- package/build/src/utils/telemetry/getContext.js.map +1 -1
- package/build/src/utils/telemetry/index.js +16 -11
- package/build/src/utils/telemetry/index.js.map +1 -1
- package/build/src/utils/template.js +27 -2
- package/build/src/utils/template.js.map +1 -1
- package/build/src/utils/terminal.js +5 -2
- package/build/src/utils/terminal.js.map +1 -1
- package/build/src/utils/tsconfig/evaluateTsConfig.js +18 -12
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -10
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -9
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +17 -10
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +32 -25
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +15 -11
- package/build/src/utils/variadic.js.map +1 -1
- package/build/src/whoami/index.js +43 -25
- package/build/src/whoami/index.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +44 -23
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,50 +1,78 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 Expo, Inc.
|
|
3
|
+
* Copyright (c) 2018 Drifty Co.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/ "use strict";
|
|
2
8
|
Object.defineProperty(exports, "__esModule", {
|
|
3
9
|
value: true
|
|
4
10
|
});
|
|
11
|
+
Object.defineProperty(exports, "LockdowndClient", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: ()=>LockdowndClient
|
|
14
|
+
});
|
|
5
15
|
function _debug() {
|
|
6
|
-
const data = _interopRequireDefault(require("debug"));
|
|
16
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("debug"));
|
|
7
17
|
_debug = function() {
|
|
8
18
|
return data;
|
|
9
19
|
};
|
|
10
20
|
return data;
|
|
11
21
|
}
|
|
12
|
-
function
|
|
13
|
-
const data = _interopRequireWildcard(require("tls"));
|
|
14
|
-
|
|
22
|
+
function _tls() {
|
|
23
|
+
const data = /*#__PURE__*/ _interopRequireWildcard(require("tls"));
|
|
24
|
+
_tls = function() {
|
|
15
25
|
return data;
|
|
16
26
|
};
|
|
17
27
|
return data;
|
|
18
28
|
}
|
|
19
|
-
|
|
20
|
-
|
|
29
|
+
const _serviceClient = require("./ServiceClient");
|
|
30
|
+
const _lockdownProtocol = require("../protocol/LockdownProtocol");
|
|
21
31
|
function _interopRequireDefault(obj) {
|
|
22
32
|
return obj && obj.__esModule ? obj : {
|
|
23
33
|
default: obj
|
|
24
34
|
};
|
|
25
35
|
}
|
|
26
|
-
function
|
|
27
|
-
if (
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
37
|
+
if (typeof WeakMap !== "function") return null;
|
|
38
|
+
var cacheBabelInterop = new WeakMap();
|
|
39
|
+
var cacheNodeInterop = new WeakMap();
|
|
40
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
41
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
42
|
+
})(nodeInterop);
|
|
43
|
+
}
|
|
44
|
+
function _interopRequireWildcard(obj, nodeInterop) {
|
|
45
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
28
46
|
return obj;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
}
|
|
48
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
49
|
+
return {
|
|
50
|
+
default: obj
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
54
|
+
if (cache && cache.has(obj)) {
|
|
55
|
+
return cache.get(obj);
|
|
56
|
+
}
|
|
57
|
+
var newObj = {};
|
|
58
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
59
|
+
for(var key in obj){
|
|
60
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
61
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
62
|
+
if (desc && (desc.get || desc.set)) {
|
|
63
|
+
Object.defineProperty(newObj, key, desc);
|
|
64
|
+
} else {
|
|
65
|
+
newObj[key] = obj[key];
|
|
41
66
|
}
|
|
42
67
|
}
|
|
43
|
-
newObj.default = obj;
|
|
44
|
-
return newObj;
|
|
45
68
|
}
|
|
69
|
+
newObj.default = obj;
|
|
70
|
+
if (cache) {
|
|
71
|
+
cache.set(obj, newObj);
|
|
72
|
+
}
|
|
73
|
+
return newObj;
|
|
46
74
|
}
|
|
47
|
-
const debug = _debug().default("expo:apple-device:client:lockdownd");
|
|
75
|
+
const debug = (0, _debug().default)("expo:apple-device:client:lockdownd");
|
|
48
76
|
function isLockdowndServiceResponse(resp) {
|
|
49
77
|
return resp.Request === "StartService" && resp.Service !== undefined && resp.Port !== undefined;
|
|
50
78
|
}
|
|
@@ -89,8 +117,8 @@ class LockdowndClient extends _serviceClient.ServiceClient {
|
|
|
89
117
|
});
|
|
90
118
|
if (isLockdowndSessionResponse(resp)) {
|
|
91
119
|
if (resp.EnableSessionSSL) {
|
|
92
|
-
this.protocolClient.socket = new (
|
|
93
|
-
secureContext:
|
|
120
|
+
this.protocolClient.socket = new (_tls()).TLSSocket(this.protocolClient.socket, {
|
|
121
|
+
secureContext: _tls().createSecureContext({
|
|
94
122
|
// Avoid using `secureProtocol` fixing the socket to a single TLS version.
|
|
95
123
|
// Newer Node versions might not support older TLS versions.
|
|
96
124
|
// By using the default `minVersion` and `maxVersion` options,
|
|
@@ -151,6 +179,5 @@ class LockdowndClient extends _serviceClient.ServiceClient {
|
|
|
151
179
|
await this.startSession(pairRecord);
|
|
152
180
|
}
|
|
153
181
|
}
|
|
154
|
-
exports.LockdowndClient = LockdowndClient;
|
|
155
182
|
|
|
156
183
|
//# sourceMappingURL=LockdowndClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/run/ios/appleDevice/client/LockdowndClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 Expo, Inc.\n * Copyright (c) 2018 Drifty Co.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport Debug from 'debug';\nimport { Socket } from 'net';\nimport * as tls from 'tls';\n\nimport { ResponseError, ServiceClient } from './ServiceClient';\nimport { UsbmuxdPairRecord } from './UsbmuxdClient';\nimport { LockdownProtocolClient } from '../protocol/LockdownProtocol';\n\nconst debug = Debug('expo:apple-device:client:lockdownd');\n\nexport interface DeviceValues {\n BasebandCertId: number;\n BasebandKeyHashInformation: {\n AKeyStatus: number;\n SKeyHash: Buffer;\n SKeyStatus: number;\n };\n BasebandSerialNumber: Buffer;\n BasebandVersion: string;\n BoardId: number;\n BuildVersion: string;\n ChipID: number;\n ConnectionType: 'USB' | 'Network';\n DeviceClass: string;\n DeviceColor: string;\n DeviceName: string;\n DieID: number;\n HardwareModel: string;\n HasSiDP: boolean;\n PartitionType: string;\n ProductName: string;\n ProductType: string;\n ProductVersion: string;\n ProductionSOC: boolean;\n ProtocolVersion: string;\n TelephonyCapability: boolean;\n UniqueChipID: number;\n UniqueDeviceID: string;\n WiFiAddress: string;\n [key: string]: any;\n}\n\ninterface LockdowndServiceResponse {\n Request: 'StartService';\n Service: string;\n Port: number;\n EnableServiceSSL?: boolean; // Only on iOS 13+\n}\n\ninterface LockdowndSessionResponse {\n Request: 'StartSession';\n EnableSessionSSL: boolean;\n}\n\ninterface LockdowndAllValuesResponse {\n Request: 'GetValue';\n Value: DeviceValues;\n}\n\ninterface LockdowndValueResponse {\n Request: 'GetValue';\n Key: string;\n Value: string;\n}\n\ninterface LockdowndQueryTypeResponse {\n Request: 'QueryType';\n Type: string;\n}\n\nfunction isLockdowndServiceResponse(resp: any): resp is LockdowndServiceResponse {\n return resp.Request === 'StartService' && resp.Service !== undefined && resp.Port !== undefined;\n}\n\nfunction isLockdowndSessionResponse(resp: any): resp is LockdowndSessionResponse {\n return resp.Request === 'StartSession';\n}\n\nfunction isLockdowndAllValuesResponse(resp: any): resp is LockdowndAllValuesResponse {\n return resp.Request === 'GetValue' && resp.Value !== undefined;\n}\n\nfunction isLockdowndValueResponse(resp: any): resp is LockdowndValueResponse {\n return resp.Request === 'GetValue' && resp.Key !== undefined && typeof resp.Value === 'string';\n}\n\nfunction isLockdowndQueryTypeResponse(resp: any): resp is LockdowndQueryTypeResponse {\n return resp.Request === 'QueryType' && resp.Type !== undefined;\n}\n\nexport class LockdowndClient extends ServiceClient<LockdownProtocolClient> {\n constructor(public socket: Socket) {\n super(socket, new LockdownProtocolClient(socket));\n }\n\n async startService(name: string) {\n debug(`startService: ${name}`);\n\n const resp = await this.protocolClient.sendMessage({\n Request: 'StartService',\n Service: name,\n });\n\n if (isLockdowndServiceResponse(resp)) {\n return { port: resp.Port, enableServiceSSL: !!resp.EnableServiceSSL };\n } else {\n throw new ResponseError(`Error starting service ${name}`, resp);\n }\n }\n\n async startSession(pairRecord: UsbmuxdPairRecord) {\n debug(`startSession: ${pairRecord}`);\n\n const resp = await this.protocolClient.sendMessage({\n Request: 'StartSession',\n HostID: pairRecord.HostID,\n SystemBUID: pairRecord.SystemBUID,\n });\n\n if (isLockdowndSessionResponse(resp)) {\n if (resp.EnableSessionSSL) {\n this.protocolClient.socket = new tls.TLSSocket(this.protocolClient.socket, {\n secureContext: tls.createSecureContext({\n // Avoid using `secureProtocol` fixing the socket to a single TLS version.\n // Newer Node versions might not support older TLS versions.\n // By using the default `minVersion` and `maxVersion` options,\n // The socket will automatically use the appropriate TLS version.\n // See: https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions\n cert: pairRecord.RootCertificate,\n key: pairRecord.RootPrivateKey,\n }),\n });\n debug(`Socket upgraded to TLS connection`);\n }\n // TODO: save sessionID for StopSession?\n } else {\n throw new ResponseError('Error starting session', resp);\n }\n }\n\n async getAllValues() {\n debug(`getAllValues`);\n\n const resp = await this.protocolClient.sendMessage({ Request: 'GetValue' });\n\n if (isLockdowndAllValuesResponse(resp)) {\n return resp.Value;\n } else {\n throw new ResponseError('Error getting lockdown value', resp);\n }\n }\n\n async getValue(val: string) {\n debug(`getValue: ${val}`);\n\n const resp = await this.protocolClient.sendMessage({\n Request: 'GetValue',\n Key: val,\n });\n\n if (isLockdowndValueResponse(resp)) {\n return resp.Value;\n } else {\n throw new ResponseError('Error getting lockdown value', resp);\n }\n }\n\n async queryType() {\n debug('queryType');\n\n const resp = await this.protocolClient.sendMessage({\n Request: 'QueryType',\n });\n\n if (isLockdowndQueryTypeResponse(resp)) {\n return resp.Type;\n } else {\n throw new ResponseError('Error getting lockdown query type', resp);\n }\n }\n\n async doHandshake(pairRecord: UsbmuxdPairRecord) {\n debug('doHandshake');\n\n // if (await this.lockdownQueryType() !== 'com.apple.mobile.lockdown') {\n // throw new CommandError('Invalid type received from lockdown handshake');\n // }\n // await this.getLockdownValue('ProductVersion');\n // TODO: validate pair and pair\n await this.startSession(pairRecord);\n }\n}\n"],"names":["tls","debug","Debug","isLockdowndServiceResponse","resp","Request","Service","undefined","Port","isLockdowndSessionResponse","isLockdowndAllValuesResponse","Value","isLockdowndValueResponse","Key","isLockdowndQueryTypeResponse","Type","LockdowndClient","ServiceClient","constructor","socket","LockdownProtocolClient","startService","name","protocolClient","sendMessage","port","enableServiceSSL","EnableServiceSSL","ResponseError","startSession","pairRecord","HostID","SystemBUID","EnableSessionSSL","TLSSocket","secureContext","createSecureContext","cert","RootCertificate","key","RootPrivateKey","getAllValues","getValue","val","queryType","doHandshake"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/run/ios/appleDevice/client/LockdowndClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 Expo, Inc.\n * Copyright (c) 2018 Drifty Co.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport Debug from 'debug';\nimport { Socket } from 'net';\nimport * as tls from 'tls';\n\nimport { ResponseError, ServiceClient } from './ServiceClient';\nimport { UsbmuxdPairRecord } from './UsbmuxdClient';\nimport { LockdownProtocolClient } from '../protocol/LockdownProtocol';\n\nconst debug = Debug('expo:apple-device:client:lockdownd');\n\nexport interface DeviceValues {\n BasebandCertId: number;\n BasebandKeyHashInformation: {\n AKeyStatus: number;\n SKeyHash: Buffer;\n SKeyStatus: number;\n };\n BasebandSerialNumber: Buffer;\n BasebandVersion: string;\n BoardId: number;\n BuildVersion: string;\n ChipID: number;\n ConnectionType: 'USB' | 'Network';\n DeviceClass: string;\n DeviceColor: string;\n DeviceName: string;\n DieID: number;\n HardwareModel: string;\n HasSiDP: boolean;\n PartitionType: string;\n ProductName: string;\n ProductType: string;\n ProductVersion: string;\n ProductionSOC: boolean;\n ProtocolVersion: string;\n TelephonyCapability: boolean;\n UniqueChipID: number;\n UniqueDeviceID: string;\n WiFiAddress: string;\n [key: string]: any;\n}\n\ninterface LockdowndServiceResponse {\n Request: 'StartService';\n Service: string;\n Port: number;\n EnableServiceSSL?: boolean; // Only on iOS 13+\n}\n\ninterface LockdowndSessionResponse {\n Request: 'StartSession';\n EnableSessionSSL: boolean;\n}\n\ninterface LockdowndAllValuesResponse {\n Request: 'GetValue';\n Value: DeviceValues;\n}\n\ninterface LockdowndValueResponse {\n Request: 'GetValue';\n Key: string;\n Value: string;\n}\n\ninterface LockdowndQueryTypeResponse {\n Request: 'QueryType';\n Type: string;\n}\n\nfunction isLockdowndServiceResponse(resp: any): resp is LockdowndServiceResponse {\n return resp.Request === 'StartService' && resp.Service !== undefined && resp.Port !== undefined;\n}\n\nfunction isLockdowndSessionResponse(resp: any): resp is LockdowndSessionResponse {\n return resp.Request === 'StartSession';\n}\n\nfunction isLockdowndAllValuesResponse(resp: any): resp is LockdowndAllValuesResponse {\n return resp.Request === 'GetValue' && resp.Value !== undefined;\n}\n\nfunction isLockdowndValueResponse(resp: any): resp is LockdowndValueResponse {\n return resp.Request === 'GetValue' && resp.Key !== undefined && typeof resp.Value === 'string';\n}\n\nfunction isLockdowndQueryTypeResponse(resp: any): resp is LockdowndQueryTypeResponse {\n return resp.Request === 'QueryType' && resp.Type !== undefined;\n}\n\nexport class LockdowndClient extends ServiceClient<LockdownProtocolClient> {\n constructor(public socket: Socket) {\n super(socket, new LockdownProtocolClient(socket));\n }\n\n async startService(name: string) {\n debug(`startService: ${name}`);\n\n const resp = await this.protocolClient.sendMessage({\n Request: 'StartService',\n Service: name,\n });\n\n if (isLockdowndServiceResponse(resp)) {\n return { port: resp.Port, enableServiceSSL: !!resp.EnableServiceSSL };\n } else {\n throw new ResponseError(`Error starting service ${name}`, resp);\n }\n }\n\n async startSession(pairRecord: UsbmuxdPairRecord) {\n debug(`startSession: ${pairRecord}`);\n\n const resp = await this.protocolClient.sendMessage({\n Request: 'StartSession',\n HostID: pairRecord.HostID,\n SystemBUID: pairRecord.SystemBUID,\n });\n\n if (isLockdowndSessionResponse(resp)) {\n if (resp.EnableSessionSSL) {\n this.protocolClient.socket = new tls.TLSSocket(this.protocolClient.socket, {\n secureContext: tls.createSecureContext({\n // Avoid using `secureProtocol` fixing the socket to a single TLS version.\n // Newer Node versions might not support older TLS versions.\n // By using the default `minVersion` and `maxVersion` options,\n // The socket will automatically use the appropriate TLS version.\n // See: https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions\n cert: pairRecord.RootCertificate,\n key: pairRecord.RootPrivateKey,\n }),\n });\n debug(`Socket upgraded to TLS connection`);\n }\n // TODO: save sessionID for StopSession?\n } else {\n throw new ResponseError('Error starting session', resp);\n }\n }\n\n async getAllValues() {\n debug(`getAllValues`);\n\n const resp = await this.protocolClient.sendMessage({ Request: 'GetValue' });\n\n if (isLockdowndAllValuesResponse(resp)) {\n return resp.Value;\n } else {\n throw new ResponseError('Error getting lockdown value', resp);\n }\n }\n\n async getValue(val: string) {\n debug(`getValue: ${val}`);\n\n const resp = await this.protocolClient.sendMessage({\n Request: 'GetValue',\n Key: val,\n });\n\n if (isLockdowndValueResponse(resp)) {\n return resp.Value;\n } else {\n throw new ResponseError('Error getting lockdown value', resp);\n }\n }\n\n async queryType() {\n debug('queryType');\n\n const resp = await this.protocolClient.sendMessage({\n Request: 'QueryType',\n });\n\n if (isLockdowndQueryTypeResponse(resp)) {\n return resp.Type;\n } else {\n throw new ResponseError('Error getting lockdown query type', resp);\n }\n }\n\n async doHandshake(pairRecord: UsbmuxdPairRecord) {\n debug('doHandshake');\n\n // if (await this.lockdownQueryType() !== 'com.apple.mobile.lockdown') {\n // throw new CommandError('Invalid type received from lockdown handshake');\n // }\n // await this.getLockdownValue('ProductVersion');\n // TODO: validate pair and pair\n await this.startSession(pairRecord);\n }\n}\n"],"names":["LockdowndClient","debug","Debug","isLockdowndServiceResponse","resp","Request","Service","undefined","Port","isLockdowndSessionResponse","isLockdowndAllValuesResponse","Value","isLockdowndValueResponse","Key","isLockdowndQueryTypeResponse","Type","ServiceClient","constructor","socket","LockdownProtocolClient","startService","name","protocolClient","sendMessage","port","enableServiceSSL","EnableServiceSSL","ResponseError","startSession","pairRecord","HostID","SystemBUID","EnableSessionSSL","tls","TLSSocket","secureContext","createSecureContext","cert","RootCertificate","key","RootPrivateKey","getAllValues","getValue","val","queryType","doHandshake"],"mappings":"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"}
|
|
@@ -1,50 +1,78 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 Expo, Inc.
|
|
3
|
+
* Copyright (c) 2018 Drifty Co.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/ "use strict";
|
|
2
8
|
Object.defineProperty(exports, "__esModule", {
|
|
3
9
|
value: true
|
|
4
10
|
});
|
|
11
|
+
Object.defineProperty(exports, "MobileImageMounterClient", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: ()=>MobileImageMounterClient
|
|
14
|
+
});
|
|
5
15
|
function _debug() {
|
|
6
|
-
const data = _interopRequireDefault(require("debug"));
|
|
16
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("debug"));
|
|
7
17
|
_debug = function() {
|
|
8
18
|
return data;
|
|
9
19
|
};
|
|
10
20
|
return data;
|
|
11
21
|
}
|
|
12
|
-
function
|
|
13
|
-
const data = _interopRequireWildcard(require("fs"));
|
|
14
|
-
|
|
22
|
+
function _fs() {
|
|
23
|
+
const data = /*#__PURE__*/ _interopRequireWildcard(require("fs"));
|
|
24
|
+
_fs = function() {
|
|
15
25
|
return data;
|
|
16
26
|
};
|
|
17
27
|
return data;
|
|
18
28
|
}
|
|
19
|
-
|
|
20
|
-
|
|
29
|
+
const _serviceClient = require("./ServiceClient");
|
|
30
|
+
const _lockdownProtocol = require("../protocol/LockdownProtocol");
|
|
21
31
|
function _interopRequireDefault(obj) {
|
|
22
32
|
return obj && obj.__esModule ? obj : {
|
|
23
33
|
default: obj
|
|
24
34
|
};
|
|
25
35
|
}
|
|
26
|
-
function
|
|
27
|
-
if (
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
37
|
+
if (typeof WeakMap !== "function") return null;
|
|
38
|
+
var cacheBabelInterop = new WeakMap();
|
|
39
|
+
var cacheNodeInterop = new WeakMap();
|
|
40
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
41
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
42
|
+
})(nodeInterop);
|
|
43
|
+
}
|
|
44
|
+
function _interopRequireWildcard(obj, nodeInterop) {
|
|
45
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
28
46
|
return obj;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
}
|
|
48
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
49
|
+
return {
|
|
50
|
+
default: obj
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
54
|
+
if (cache && cache.has(obj)) {
|
|
55
|
+
return cache.get(obj);
|
|
56
|
+
}
|
|
57
|
+
var newObj = {};
|
|
58
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
59
|
+
for(var key in obj){
|
|
60
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
61
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
62
|
+
if (desc && (desc.get || desc.set)) {
|
|
63
|
+
Object.defineProperty(newObj, key, desc);
|
|
64
|
+
} else {
|
|
65
|
+
newObj[key] = obj[key];
|
|
41
66
|
}
|
|
42
67
|
}
|
|
43
|
-
newObj.default = obj;
|
|
44
|
-
return newObj;
|
|
45
68
|
}
|
|
69
|
+
newObj.default = obj;
|
|
70
|
+
if (cache) {
|
|
71
|
+
cache.set(obj, newObj);
|
|
72
|
+
}
|
|
73
|
+
return newObj;
|
|
46
74
|
}
|
|
47
|
-
const debug = _debug().default("expo:apple-device:client:mobile_image_mounter");
|
|
75
|
+
const debug = (0, _debug().default)("expo:apple-device:client:mobile_image_mounter");
|
|
48
76
|
function isMIMUploadCompleteResponse(resp) {
|
|
49
77
|
return resp.Status === "Complete";
|
|
50
78
|
}
|
|
@@ -63,13 +91,13 @@ class MobileImageMounterClient extends _serviceClient.ServiceClient {
|
|
|
63
91
|
ImageSignature: imageSig,
|
|
64
92
|
ImageType: "Developer"
|
|
65
93
|
});
|
|
66
|
-
if (!(0, _lockdownProtocol
|
|
94
|
+
if (!(0, _lockdownProtocol.isLockdownResponse)(resp) || resp.Status !== "Complete") {
|
|
67
95
|
throw new _serviceClient.ResponseError(`There was an error mounting ${imagePath} on device`, resp);
|
|
68
96
|
}
|
|
69
97
|
}
|
|
70
98
|
async uploadImage(imagePath, imageSig) {
|
|
71
99
|
debug(`uploadImage: ${imagePath}`);
|
|
72
|
-
const imageSize =
|
|
100
|
+
const imageSize = _fs().statSync(imagePath).size;
|
|
73
101
|
return this.protocolClient.sendMessage({
|
|
74
102
|
Command: "ReceiveBytes",
|
|
75
103
|
ImageSize: imageSize,
|
|
@@ -77,12 +105,11 @@ class MobileImageMounterClient extends _serviceClient.ServiceClient {
|
|
|
77
105
|
ImageType: "Developer"
|
|
78
106
|
}, (resp, resolve, reject)=>{
|
|
79
107
|
if (isMIMUploadReceiveBytesResponse(resp)) {
|
|
80
|
-
const imageStream =
|
|
108
|
+
const imageStream = _fs().createReadStream(imagePath);
|
|
81
109
|
imageStream.pipe(this.protocolClient.socket, {
|
|
82
110
|
end: false
|
|
83
111
|
});
|
|
84
|
-
imageStream.on("error", (err)=>reject(err)
|
|
85
|
-
);
|
|
112
|
+
imageStream.on("error", (err)=>reject(err));
|
|
86
113
|
} else if (isMIMUploadCompleteResponse(resp)) {
|
|
87
114
|
resolve();
|
|
88
115
|
} else {
|
|
@@ -98,6 +125,5 @@ class MobileImageMounterClient extends _serviceClient.ServiceClient {
|
|
|
98
125
|
});
|
|
99
126
|
}
|
|
100
127
|
}
|
|
101
|
-
exports.MobileImageMounterClient = MobileImageMounterClient;
|
|
102
128
|
|
|
103
129
|
//# sourceMappingURL=MobileImageMounterClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/run/ios/appleDevice/client/MobileImageMounterClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 Expo, Inc.\n * Copyright (c) 2018 Drifty Co.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport Debug from 'debug';\nimport * as fs from 'fs';\nimport { Socket } from 'net';\n\nimport { ResponseError, ServiceClient } from './ServiceClient';\nimport type { LockdownCommand, LockdownResponse } from '../protocol/LockdownProtocol';\nimport { isLockdownResponse, LockdownProtocolClient } from '../protocol/LockdownProtocol';\n\nconst debug = Debug('expo:apple-device:client:mobile_image_mounter');\n\nexport type MIMMountResponse = LockdownResponse;\n\nexport interface MIMMessage extends LockdownCommand {\n ImageType: string;\n}\n\nexport interface MIMLookupResponse extends LockdownResponse {\n ImageSignature?: string;\n}\n\nexport interface MIMUploadCompleteResponse extends LockdownResponse {\n Status: 'Complete';\n}\n\nexport interface MIMUploadReceiveBytesResponse extends LockdownResponse {\n Status: 'ReceiveBytesAck';\n}\n\nfunction isMIMUploadCompleteResponse(resp: any): resp is MIMUploadCompleteResponse {\n return resp.Status === 'Complete';\n}\n\nfunction isMIMUploadReceiveBytesResponse(resp: any): resp is MIMUploadReceiveBytesResponse {\n return resp.Status === 'ReceiveBytesAck';\n}\n\nexport class MobileImageMounterClient extends ServiceClient<LockdownProtocolClient<MIMMessage>> {\n constructor(socket: Socket) {\n super(socket, new LockdownProtocolClient(socket));\n }\n\n async mountImage(imagePath: string, imageSig: Buffer) {\n debug(`mountImage: ${imagePath}`);\n\n const resp = await this.protocolClient.sendMessage({\n Command: 'MountImage',\n ImagePath: imagePath,\n ImageSignature: imageSig,\n ImageType: 'Developer',\n });\n\n if (!isLockdownResponse(resp) || resp.Status !== 'Complete') {\n throw new ResponseError(`There was an error mounting ${imagePath} on device`, resp);\n }\n }\n\n async uploadImage(imagePath: string, imageSig: Buffer) {\n debug(`uploadImage: ${imagePath}`);\n\n const imageSize = fs.statSync(imagePath).size;\n return this.protocolClient.sendMessage(\n {\n Command: 'ReceiveBytes',\n ImageSize: imageSize,\n ImageSignature: imageSig,\n ImageType: 'Developer',\n },\n (resp: any, resolve, reject) => {\n if (isMIMUploadReceiveBytesResponse(resp)) {\n const imageStream = fs.createReadStream(imagePath);\n imageStream.pipe(this.protocolClient.socket, { end: false });\n imageStream.on('error', (err) => reject(err));\n } else if (isMIMUploadCompleteResponse(resp)) {\n resolve();\n } else {\n reject(\n new ResponseError(`There was an error uploading image ${imagePath} to the device`, resp)\n );\n }\n }\n );\n }\n\n async lookupImage() {\n debug('lookupImage');\n\n return this.protocolClient.sendMessage<MIMLookupResponse>({\n Command: 'LookupImage',\n ImageType: 'Developer',\n });\n }\n}\n"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/run/ios/appleDevice/client/MobileImageMounterClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 Expo, Inc.\n * Copyright (c) 2018 Drifty Co.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport Debug from 'debug';\nimport * as fs from 'fs';\nimport { Socket } from 'net';\n\nimport { ResponseError, ServiceClient } from './ServiceClient';\nimport type { LockdownCommand, LockdownResponse } from '../protocol/LockdownProtocol';\nimport { isLockdownResponse, LockdownProtocolClient } from '../protocol/LockdownProtocol';\n\nconst debug = Debug('expo:apple-device:client:mobile_image_mounter');\n\nexport type MIMMountResponse = LockdownResponse;\n\nexport interface MIMMessage extends LockdownCommand {\n ImageType: string;\n}\n\nexport interface MIMLookupResponse extends LockdownResponse {\n ImageSignature?: string;\n}\n\nexport interface MIMUploadCompleteResponse extends LockdownResponse {\n Status: 'Complete';\n}\n\nexport interface MIMUploadReceiveBytesResponse extends LockdownResponse {\n Status: 'ReceiveBytesAck';\n}\n\nfunction isMIMUploadCompleteResponse(resp: any): resp is MIMUploadCompleteResponse {\n return resp.Status === 'Complete';\n}\n\nfunction isMIMUploadReceiveBytesResponse(resp: any): resp is MIMUploadReceiveBytesResponse {\n return resp.Status === 'ReceiveBytesAck';\n}\n\nexport class MobileImageMounterClient extends ServiceClient<LockdownProtocolClient<MIMMessage>> {\n constructor(socket: Socket) {\n super(socket, new LockdownProtocolClient(socket));\n }\n\n async mountImage(imagePath: string, imageSig: Buffer) {\n debug(`mountImage: ${imagePath}`);\n\n const resp = await this.protocolClient.sendMessage({\n Command: 'MountImage',\n ImagePath: imagePath,\n ImageSignature: imageSig,\n ImageType: 'Developer',\n });\n\n if (!isLockdownResponse(resp) || resp.Status !== 'Complete') {\n throw new ResponseError(`There was an error mounting ${imagePath} on device`, resp);\n }\n }\n\n async uploadImage(imagePath: string, imageSig: Buffer) {\n debug(`uploadImage: ${imagePath}`);\n\n const imageSize = fs.statSync(imagePath).size;\n return this.protocolClient.sendMessage(\n {\n Command: 'ReceiveBytes',\n ImageSize: imageSize,\n ImageSignature: imageSig,\n ImageType: 'Developer',\n },\n (resp: any, resolve, reject) => {\n if (isMIMUploadReceiveBytesResponse(resp)) {\n const imageStream = fs.createReadStream(imagePath);\n imageStream.pipe(this.protocolClient.socket, { end: false });\n imageStream.on('error', (err) => reject(err));\n } else if (isMIMUploadCompleteResponse(resp)) {\n resolve();\n } else {\n reject(\n new ResponseError(`There was an error uploading image ${imagePath} to the device`, resp)\n );\n }\n }\n );\n }\n\n async lookupImage() {\n debug('lookupImage');\n\n return this.protocolClient.sendMessage<MIMLookupResponse>({\n Command: 'LookupImage',\n ImageType: 'Developer',\n });\n }\n}\n"],"names":["MobileImageMounterClient","debug","Debug","isMIMUploadCompleteResponse","resp","Status","isMIMUploadReceiveBytesResponse","ServiceClient","constructor","socket","LockdownProtocolClient","mountImage","imagePath","imageSig","protocolClient","sendMessage","Command","ImagePath","ImageSignature","ImageType","isLockdownResponse","ResponseError","uploadImage","imageSize","fs","statSync","size","ImageSize","resolve","reject","imageStream","createReadStream","pipe","end","on","err","lookupImage"],"mappings":"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"}
|
|
@@ -1,21 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 Expo, Inc.
|
|
3
|
+
* Copyright (c) 2018 Drifty Co.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/ "use strict";
|
|
2
8
|
Object.defineProperty(exports, "__esModule", {
|
|
3
9
|
value: true
|
|
4
10
|
});
|
|
5
|
-
|
|
11
|
+
function _export(target, all) {
|
|
12
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: all[name]
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
_export(exports, {
|
|
18
|
+
ServiceClient: ()=>ServiceClient,
|
|
19
|
+
ResponseError: ()=>ResponseError
|
|
20
|
+
});
|
|
21
|
+
const _errors = require("../../../../utils/errors");
|
|
6
22
|
class ServiceClient {
|
|
7
23
|
constructor(socket, protocolClient){
|
|
8
24
|
this.socket = socket;
|
|
9
25
|
this.protocolClient = protocolClient;
|
|
10
26
|
}
|
|
11
27
|
}
|
|
12
|
-
exports.ServiceClient = ServiceClient;
|
|
13
28
|
class ResponseError extends _errors.CommandError {
|
|
14
29
|
constructor(msg, response){
|
|
15
30
|
super(msg);
|
|
16
31
|
this.response = response;
|
|
17
32
|
}
|
|
18
33
|
}
|
|
19
|
-
exports.ResponseError = ResponseError;
|
|
20
34
|
|
|
21
35
|
//# sourceMappingURL=ServiceClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/run/ios/appleDevice/client/ServiceClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 Expo, Inc.\n * Copyright (c) 2018 Drifty Co.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Socket } from 'net';\n\nimport { CommandError } from '../../../../utils/errors';\nimport { ProtocolClient } from '../protocol/AbstractProtocol';\n\nexport abstract class ServiceClient<T extends ProtocolClient> {\n constructor(\n public socket: Socket,\n protected protocolClient: T\n ) {}\n}\n\nexport class ResponseError extends CommandError {\n constructor(\n msg: string,\n public response: any\n ) {\n super(msg);\n }\n}\n"],"names":["ServiceClient","constructor","socket","protocolClient","
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/run/ios/appleDevice/client/ServiceClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 Expo, Inc.\n * Copyright (c) 2018 Drifty Co.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Socket } from 'net';\n\nimport { CommandError } from '../../../../utils/errors';\nimport { ProtocolClient } from '../protocol/AbstractProtocol';\n\nexport abstract class ServiceClient<T extends ProtocolClient> {\n constructor(\n public socket: Socket,\n protected protocolClient: T\n ) {}\n}\n\nexport class ResponseError extends CommandError {\n constructor(\n msg: string,\n public response: any\n ) {\n super(msg);\n }\n}\n"],"names":["ServiceClient","ResponseError","constructor","socket","protocolClient","CommandError","msg","response"],"mappings":"AAAA;;;;;;CAMC,GACD;;;;;;;;;;;IAKsBA,aAAa,MAAbA,aAAa;IAOtBC,aAAa,MAAbA,aAAa;;wBAVG,0BAA0B;AAGhD,MAAeD,aAAa;IACjCE,YACSC,MAAc,EACXC,cAAiB,CAC3B;QAFOD,cAAAA,MAAc,CAAA;QACXC,sBAAAA,cAAiB,CAAA;IAC1B;CACJ;AAEM,MAAMH,aAAa,SAASI,OAAY,aAAA;IAC7CH,YACEI,GAAW,EACJC,QAAa,CACpB;QACA,KAAK,CAACD,GAAG,CAAC,CAAC;QAFJC,gBAAAA,QAAa,CAAA;IAGtB;CACD"}
|
|
@@ -1,16 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 Expo, Inc.
|
|
3
|
+
* Copyright (c) 2018 Drifty Co.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/ "use strict";
|
|
2
8
|
Object.defineProperty(exports, "__esModule", {
|
|
3
9
|
value: true
|
|
4
10
|
});
|
|
11
|
+
Object.defineProperty(exports, "UsbmuxdClient", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: ()=>UsbmuxdClient
|
|
14
|
+
});
|
|
5
15
|
function _plist() {
|
|
6
|
-
const data = _interopRequireDefault(require("@expo/plist"));
|
|
16
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/plist"));
|
|
7
17
|
_plist = function() {
|
|
8
18
|
return data;
|
|
9
19
|
};
|
|
10
20
|
return data;
|
|
11
21
|
}
|
|
12
22
|
function _debug() {
|
|
13
|
-
const data = _interopRequireDefault(require("debug"));
|
|
23
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("debug"));
|
|
14
24
|
_debug = function() {
|
|
15
25
|
return data;
|
|
16
26
|
};
|
|
@@ -23,16 +33,16 @@ function _net() {
|
|
|
23
33
|
};
|
|
24
34
|
return data;
|
|
25
35
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
const _serviceClient = require("./ServiceClient");
|
|
37
|
+
const _errors = require("../../../../utils/errors");
|
|
38
|
+
const _plist1 = require("../../../../utils/plist");
|
|
39
|
+
const _usbmuxProtocol = require("../protocol/UsbmuxProtocol");
|
|
30
40
|
function _interopRequireDefault(obj) {
|
|
31
41
|
return obj && obj.__esModule ? obj : {
|
|
32
42
|
default: obj
|
|
33
43
|
};
|
|
34
44
|
}
|
|
35
|
-
const debug = _debug().default("expo:apple-device:client:usbmuxd");
|
|
45
|
+
const debug = (0, _debug().default)("expo:apple-device:client:usbmuxd");
|
|
36
46
|
function isUsbmuxdConnectResponse(resp) {
|
|
37
47
|
return resp.MessageType === "Result" && resp.Number !== undefined;
|
|
38
48
|
}
|
|
@@ -50,12 +60,12 @@ class UsbmuxdClient extends _serviceClient.ServiceClient {
|
|
|
50
60
|
static connectUsbmuxdSocket() {
|
|
51
61
|
debug("connectUsbmuxdSocket");
|
|
52
62
|
if (process.platform === "win32") {
|
|
53
|
-
return _net().connect({
|
|
63
|
+
return (0, _net().connect)({
|
|
54
64
|
port: 27015,
|
|
55
65
|
host: "localhost"
|
|
56
66
|
});
|
|
57
67
|
} else {
|
|
58
|
-
return _net().connect({
|
|
68
|
+
return (0, _net().connect)({
|
|
59
69
|
path: "/var/run/usbmuxd"
|
|
60
70
|
});
|
|
61
71
|
}
|
|
@@ -117,7 +127,7 @@ class UsbmuxdClient extends _serviceClient.ServiceClient {
|
|
|
117
127
|
const BPLIST_MAGIC = Buffer.from("bplist00");
|
|
118
128
|
if (BPLIST_MAGIC.compare(resp.PairRecordData, 0, 8) === 0) {
|
|
119
129
|
debug("Binary plist pair record detected.");
|
|
120
|
-
return (0, _plist1
|
|
130
|
+
return (0, _plist1.parsePlistBuffer)(resp.PairRecordData)[0];
|
|
121
131
|
} else {
|
|
122
132
|
// TODO: use parsePlistBuffer
|
|
123
133
|
return _plist().default.parse(resp.PairRecordData.toString()); // TODO: type guard
|
|
@@ -127,9 +137,8 @@ class UsbmuxdClient extends _serviceClient.ServiceClient {
|
|
|
127
137
|
}
|
|
128
138
|
}
|
|
129
139
|
}
|
|
130
|
-
exports.UsbmuxdClient = UsbmuxdClient;
|
|
131
140
|
function htons(n) {
|
|
132
|
-
return (n &
|
|
141
|
+
return (n & 0xff) << 8 | n >> 8 & 0xff;
|
|
133
142
|
}
|
|
134
143
|
|
|
135
144
|
//# sourceMappingURL=UsbmuxdClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/run/ios/appleDevice/client/UsbmuxdClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 Expo, Inc.\n * Copyright (c) 2018 Drifty Co.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport plist from '@expo/plist';\nimport Debug from 'debug';\nimport { Socket, connect } from 'net';\n\nimport { ResponseError, ServiceClient } from './ServiceClient';\nimport { CommandError } from '../../../../utils/errors';\nimport { parsePlistBuffer } from '../../../../utils/plist';\nimport { UsbmuxProtocolClient } from '../protocol/UsbmuxProtocol';\n\nconst debug = Debug('expo:apple-device:client:usbmuxd');\n\nexport interface UsbmuxdDeviceProperties {\n /** @example 'USB' */\n ConnectionType: 'USB' | 'Network';\n /** @example 7 */\n DeviceID: number;\n /** @example 339738624 */\n LocationID?: number;\n /** @example '00008101-001964A22629003A' */\n SerialNumber: string;\n /**\n * Only available for USB connection.\n * @example 480000000\n */\n ConnectionSpeed?: number;\n /**\n * Only available for USB connection.\n * @example 4776\n */\n ProductID?: number;\n /**\n * Only available for USB connection.\n * @example '00008101-001964A22629003A'\n */\n UDID?: string;\n /**\n * Only available for USB connection.\n * @example '00008101001964A22629003A'\n */\n USBSerialNumber?: string;\n /**\n * Only available for Network connection.\n * @example '08:c7:29:05:f2:30@fe80::ac7:29ff:fe05:f230-supportsRP._apple-mobdev2._tcp.local.'\n */\n EscapedFullServiceName?: string;\n /**\n * Only available for Network connection.\n * @example 5\n */\n InterfaceIndex?: number;\n /**\n * Only available for Network connection.\n */\n NetworkAddress?: Buffer;\n}\n\nexport interface UsbmuxdDevice {\n /** @example 7 */\n DeviceID: number;\n MessageType: 'Attached'; // TODO: what else?\n Properties: UsbmuxdDeviceProperties;\n}\n\nexport interface UsbmuxdConnectResponse {\n MessageType: 'Result';\n Number: number;\n}\n\nexport interface UsbmuxdDeviceResponse {\n DeviceList: UsbmuxdDevice[];\n}\n\nexport interface UsbmuxdPairRecordResponse {\n PairRecordData: Buffer;\n}\n\nexport interface UsbmuxdPairRecord {\n DeviceCertificate: Buffer;\n EscrowBag: Buffer;\n HostCertificate: Buffer;\n HostID: string;\n HostPrivateKey: Buffer;\n RootCertificate: Buffer;\n RootPrivateKey: Buffer;\n SystemBUID: string;\n WiFiMACAddress: string;\n}\n\nfunction isUsbmuxdConnectResponse(resp: any): resp is UsbmuxdConnectResponse {\n return resp.MessageType === 'Result' && resp.Number !== undefined;\n}\n\nfunction isUsbmuxdDeviceResponse(resp: any): resp is UsbmuxdDeviceResponse {\n return resp.DeviceList !== undefined;\n}\n\nfunction isUsbmuxdPairRecordResponse(resp: any): resp is UsbmuxdPairRecordResponse {\n return resp.PairRecordData !== undefined;\n}\n\nexport class UsbmuxdClient extends ServiceClient<UsbmuxProtocolClient> {\n constructor(public socket: Socket) {\n super(socket, new UsbmuxProtocolClient(socket));\n }\n\n static connectUsbmuxdSocket(): Socket {\n debug('connectUsbmuxdSocket');\n if (process.platform === 'win32') {\n return connect({ port: 27015, host: 'localhost' });\n } else {\n return connect({ path: '/var/run/usbmuxd' });\n }\n }\n\n async connect(device: Pick<UsbmuxdDevice, 'DeviceID'>, port: number): Promise<Socket> {\n debug(`connect: ${device.DeviceID} on port ${port}`);\n debug(`connect:device: %O`, device);\n\n const response = await this.protocolClient.sendMessage({\n messageType: 'Connect',\n extraFields: {\n DeviceID: device.DeviceID,\n PortNumber: htons(port),\n },\n });\n debug(`connect:device:response: %O`, response);\n\n if (isUsbmuxdConnectResponse(response) && response.Number === 0) {\n return this.protocolClient.socket;\n } else {\n throw new ResponseError(\n `There was an error connecting to the USB connected device (id: ${device.DeviceID}, port: ${port})`,\n response\n );\n }\n }\n\n async getDevices(): Promise<UsbmuxdDevice[]> {\n debug('getDevices');\n\n const resp = await this.protocolClient.sendMessage({\n messageType: 'ListDevices',\n });\n\n if (isUsbmuxdDeviceResponse(resp)) {\n return resp.DeviceList;\n } else {\n throw new ResponseError('Invalid response from getDevices', resp);\n }\n }\n\n async getDevice(udid?: string): Promise<UsbmuxdDevice> {\n debug(`getDevice ${udid ? 'udid: ' + udid : ''}`);\n const devices = await this.getDevices();\n\n if (!devices.length) {\n throw new CommandError('APPLE_DEVICE_USBMUXD', 'No devices found');\n }\n\n if (!udid) {\n return devices[0];\n }\n\n for (const device of devices) {\n if (device.Properties && device.Properties.SerialNumber === udid) {\n return device;\n }\n }\n\n throw new CommandError('APPLE_DEVICE_USBMUXD', `No device found (udid: ${udid})`);\n }\n\n async readPairRecord(udid: string): Promise<UsbmuxdPairRecord> {\n debug(`readPairRecord: ${udid}`);\n\n const resp = await this.protocolClient.sendMessage({\n messageType: 'ReadPairRecord',\n extraFields: { PairRecordID: udid },\n });\n\n if (isUsbmuxdPairRecordResponse(resp)) {\n // the pair record can be created as a binary plist\n const BPLIST_MAGIC = Buffer.from('bplist00');\n if (BPLIST_MAGIC.compare(resp.PairRecordData, 0, 8) === 0) {\n debug('Binary plist pair record detected.');\n return parsePlistBuffer(resp.PairRecordData)[0];\n } else {\n // TODO: use parsePlistBuffer\n return plist.parse(resp.PairRecordData.toString()) as any; // TODO: type guard\n }\n } else {\n throw new ResponseError(\n `There was an error reading pair record for device (udid: ${udid})`,\n resp\n );\n }\n }\n}\n\nfunction htons(n: number): number {\n return ((n & 0xff) << 8) | ((n >> 8) & 0xff);\n}\n"],"names":["debug","Debug","isUsbmuxdConnectResponse","resp","MessageType","Number","undefined","isUsbmuxdDeviceResponse","DeviceList","isUsbmuxdPairRecordResponse","PairRecordData","UsbmuxdClient","ServiceClient","constructor","socket","UsbmuxProtocolClient","connectUsbmuxdSocket","process","platform","connect","port","host","path","device","DeviceID","response","protocolClient","sendMessage","messageType","extraFields","PortNumber","htons","ResponseError","getDevices","getDevice","udid","devices","length","CommandError","Properties","SerialNumber","readPairRecord","PairRecordID","BPLIST_MAGIC","Buffer","from","compare","parsePlistBuffer","plist","parse","toString","n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/run/ios/appleDevice/client/UsbmuxdClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 Expo, Inc.\n * Copyright (c) 2018 Drifty Co.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport plist from '@expo/plist';\nimport Debug from 'debug';\nimport { Socket, connect } from 'net';\n\nimport { ResponseError, ServiceClient } from './ServiceClient';\nimport { CommandError } from '../../../../utils/errors';\nimport { parsePlistBuffer } from '../../../../utils/plist';\nimport { UsbmuxProtocolClient } from '../protocol/UsbmuxProtocol';\n\nconst debug = Debug('expo:apple-device:client:usbmuxd');\n\nexport interface UsbmuxdDeviceProperties {\n /** @example 'USB' */\n ConnectionType: 'USB' | 'Network';\n /** @example 7 */\n DeviceID: number;\n /** @example 339738624 */\n LocationID?: number;\n /** @example '00008101-001964A22629003A' */\n SerialNumber: string;\n /**\n * Only available for USB connection.\n * @example 480000000\n */\n ConnectionSpeed?: number;\n /**\n * Only available for USB connection.\n * @example 4776\n */\n ProductID?: number;\n /**\n * Only available for USB connection.\n * @example '00008101-001964A22629003A'\n */\n UDID?: string;\n /**\n * Only available for USB connection.\n * @example '00008101001964A22629003A'\n */\n USBSerialNumber?: string;\n /**\n * Only available for Network connection.\n * @example '08:c7:29:05:f2:30@fe80::ac7:29ff:fe05:f230-supportsRP._apple-mobdev2._tcp.local.'\n */\n EscapedFullServiceName?: string;\n /**\n * Only available for Network connection.\n * @example 5\n */\n InterfaceIndex?: number;\n /**\n * Only available for Network connection.\n */\n NetworkAddress?: Buffer;\n}\n\nexport interface UsbmuxdDevice {\n /** @example 7 */\n DeviceID: number;\n MessageType: 'Attached'; // TODO: what else?\n Properties: UsbmuxdDeviceProperties;\n}\n\nexport interface UsbmuxdConnectResponse {\n MessageType: 'Result';\n Number: number;\n}\n\nexport interface UsbmuxdDeviceResponse {\n DeviceList: UsbmuxdDevice[];\n}\n\nexport interface UsbmuxdPairRecordResponse {\n PairRecordData: Buffer;\n}\n\nexport interface UsbmuxdPairRecord {\n DeviceCertificate: Buffer;\n EscrowBag: Buffer;\n HostCertificate: Buffer;\n HostID: string;\n HostPrivateKey: Buffer;\n RootCertificate: Buffer;\n RootPrivateKey: Buffer;\n SystemBUID: string;\n WiFiMACAddress: string;\n}\n\nfunction isUsbmuxdConnectResponse(resp: any): resp is UsbmuxdConnectResponse {\n return resp.MessageType === 'Result' && resp.Number !== undefined;\n}\n\nfunction isUsbmuxdDeviceResponse(resp: any): resp is UsbmuxdDeviceResponse {\n return resp.DeviceList !== undefined;\n}\n\nfunction isUsbmuxdPairRecordResponse(resp: any): resp is UsbmuxdPairRecordResponse {\n return resp.PairRecordData !== undefined;\n}\n\nexport class UsbmuxdClient extends ServiceClient<UsbmuxProtocolClient> {\n constructor(public socket: Socket) {\n super(socket, new UsbmuxProtocolClient(socket));\n }\n\n static connectUsbmuxdSocket(): Socket {\n debug('connectUsbmuxdSocket');\n if (process.platform === 'win32') {\n return connect({ port: 27015, host: 'localhost' });\n } else {\n return connect({ path: '/var/run/usbmuxd' });\n }\n }\n\n async connect(device: Pick<UsbmuxdDevice, 'DeviceID'>, port: number): Promise<Socket> {\n debug(`connect: ${device.DeviceID} on port ${port}`);\n debug(`connect:device: %O`, device);\n\n const response = await this.protocolClient.sendMessage({\n messageType: 'Connect',\n extraFields: {\n DeviceID: device.DeviceID,\n PortNumber: htons(port),\n },\n });\n debug(`connect:device:response: %O`, response);\n\n if (isUsbmuxdConnectResponse(response) && response.Number === 0) {\n return this.protocolClient.socket;\n } else {\n throw new ResponseError(\n `There was an error connecting to the USB connected device (id: ${device.DeviceID}, port: ${port})`,\n response\n );\n }\n }\n\n async getDevices(): Promise<UsbmuxdDevice[]> {\n debug('getDevices');\n\n const resp = await this.protocolClient.sendMessage({\n messageType: 'ListDevices',\n });\n\n if (isUsbmuxdDeviceResponse(resp)) {\n return resp.DeviceList;\n } else {\n throw new ResponseError('Invalid response from getDevices', resp);\n }\n }\n\n async getDevice(udid?: string): Promise<UsbmuxdDevice> {\n debug(`getDevice ${udid ? 'udid: ' + udid : ''}`);\n const devices = await this.getDevices();\n\n if (!devices.length) {\n throw new CommandError('APPLE_DEVICE_USBMUXD', 'No devices found');\n }\n\n if (!udid) {\n return devices[0];\n }\n\n for (const device of devices) {\n if (device.Properties && device.Properties.SerialNumber === udid) {\n return device;\n }\n }\n\n throw new CommandError('APPLE_DEVICE_USBMUXD', `No device found (udid: ${udid})`);\n }\n\n async readPairRecord(udid: string): Promise<UsbmuxdPairRecord> {\n debug(`readPairRecord: ${udid}`);\n\n const resp = await this.protocolClient.sendMessage({\n messageType: 'ReadPairRecord',\n extraFields: { PairRecordID: udid },\n });\n\n if (isUsbmuxdPairRecordResponse(resp)) {\n // the pair record can be created as a binary plist\n const BPLIST_MAGIC = Buffer.from('bplist00');\n if (BPLIST_MAGIC.compare(resp.PairRecordData, 0, 8) === 0) {\n debug('Binary plist pair record detected.');\n return parsePlistBuffer(resp.PairRecordData)[0];\n } else {\n // TODO: use parsePlistBuffer\n return plist.parse(resp.PairRecordData.toString()) as any; // TODO: type guard\n }\n } else {\n throw new ResponseError(\n `There was an error reading pair record for device (udid: ${udid})`,\n resp\n );\n }\n }\n}\n\nfunction htons(n: number): number {\n return ((n & 0xff) << 8) | ((n >> 8) & 0xff);\n}\n"],"names":["UsbmuxdClient","debug","Debug","isUsbmuxdConnectResponse","resp","MessageType","Number","undefined","isUsbmuxdDeviceResponse","DeviceList","isUsbmuxdPairRecordResponse","PairRecordData","ServiceClient","constructor","socket","UsbmuxProtocolClient","connectUsbmuxdSocket","process","platform","connect","port","host","path","device","DeviceID","response","protocolClient","sendMessage","messageType","extraFields","PortNumber","htons","ResponseError","getDevices","getDevice","udid","devices","length","CommandError","Properties","SerialNumber","readPairRecord","PairRecordID","BPLIST_MAGIC","Buffer","from","compare","parsePlistBuffer","plist","parse","toString","n"],"mappings":"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"}
|