@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.
Files changed (719) hide show
  1. package/build/bin/cli +93 -91
  2. package/build/bin/cli.map +1 -1
  3. package/build/metro-require/require.js +53 -52
  4. package/build/src/api/endpoint.js +6 -2
  5. package/build/src/api/endpoint.js.map +1 -1
  6. package/build/src/api/getExpoGoIntermediateCertificate.js +5 -3
  7. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  8. package/build/src/api/getExpoSchema.js +16 -12
  9. package/build/src/api/getExpoSchema.js.map +1 -1
  10. package/build/src/api/getNativeModuleVersions.js +6 -4
  11. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  12. package/build/src/api/getProjectDevelopmentCertificate.js +5 -3
  13. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  14. package/build/src/api/getVersions.js +7 -5
  15. package/build/src/api/getVersions.js.map +1 -1
  16. package/build/src/api/graphql/client.js +32 -26
  17. package/build/src/api/graphql/client.js.map +1 -1
  18. package/build/src/api/graphql/queries/AppQuery.js +6 -4
  19. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  20. package/build/src/api/graphql/queries/UserQuery.js +5 -3
  21. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  22. package/build/src/api/graphql/types/App.js +3 -1
  23. package/build/src/api/graphql/types/App.js.map +1 -1
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +36 -32
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  26. package/build/src/api/rest/cache/ResponseCache.js +20 -12
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +13 -11
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  30. package/build/src/api/rest/client.js +55 -37
  31. package/build/src/api/rest/client.js.map +1 -1
  32. package/build/src/api/rest/client.types.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithBaseUrl.js +5 -3
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithOffline.js +5 -3
  36. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProgress.js +11 -7
  38. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  39. package/build/src/api/rest/wrapFetchWithProxy.js +5 -3
  40. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js +8 -6
  42. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
  43. package/build/src/api/settings.js +7 -5
  44. package/build/src/api/settings.js.map +1 -1
  45. package/build/src/api/updateDevelopmentSession.js +23 -17
  46. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  47. package/build/src/api/user/UserSettings.js +53 -31
  48. package/build/src/api/user/UserSettings.js.map +1 -1
  49. package/build/src/api/user/actions.js +27 -21
  50. package/build/src/api/user/actions.js.map +1 -1
  51. package/build/src/api/user/expoSsoLauncher.js +30 -26
  52. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  53. package/build/src/api/user/otp.js +35 -29
  54. package/build/src/api/user/otp.js.map +1 -1
  55. package/build/src/api/user/user.js +44 -30
  56. package/build/src/api/user/user.js.map +1 -1
  57. package/build/src/config/configAsync.js +29 -23
  58. package/build/src/config/configAsync.js.map +1 -1
  59. package/build/src/config/index.js +25 -21
  60. package/build/src/config/index.js.map +1 -1
  61. package/build/src/customize/customizeAsync.js +8 -6
  62. package/build/src/customize/customizeAsync.js.map +1 -1
  63. package/build/src/customize/generate.js +20 -16
  64. package/build/src/customize/generate.js.map +1 -1
  65. package/build/src/customize/index.js +14 -12
  66. package/build/src/customize/index.js.map +1 -1
  67. package/build/src/customize/resolveOptions.js +4 -2
  68. package/build/src/customize/resolveOptions.js.map +1 -1
  69. package/build/src/customize/templates.js +58 -54
  70. package/build/src/customize/templates.js.map +1 -1
  71. package/build/src/customize/typescript.js +11 -7
  72. package/build/src/customize/typescript.js.map +1 -1
  73. package/build/src/export/createMetadataJson.js +11 -9
  74. package/build/src/export/createMetadataJson.js.map +1 -1
  75. package/build/src/export/embed/exportEager.js +8 -6
  76. package/build/src/export/embed/exportEager.js.map +1 -1
  77. package/build/src/export/embed/exportEmbedAsync.js +72 -62
  78. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  79. package/build/src/export/embed/exportServer.js +57 -55
  80. package/build/src/export/embed/exportServer.js.map +1 -1
  81. package/build/src/export/embed/index.js +44 -40
  82. package/build/src/export/embed/index.js.map +1 -1
  83. package/build/src/export/embed/resolveOptions.js +44 -36
  84. package/build/src/export/embed/resolveOptions.js.map +1 -1
  85. package/build/src/export/embed/xcodeCompilerLogger.js +39 -27
  86. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  87. package/build/src/export/exportApp.js +68 -64
  88. package/build/src/export/exportApp.js.map +1 -1
  89. package/build/src/export/exportAssets.js +34 -26
  90. package/build/src/export/exportAssets.js.map +1 -1
  91. package/build/src/export/exportAsync.js +13 -9
  92. package/build/src/export/exportAsync.js.map +1 -1
  93. package/build/src/export/exportDomComponents.js +53 -45
  94. package/build/src/export/exportDomComponents.js.map +1 -1
  95. package/build/src/export/exportHermes.js +75 -53
  96. package/build/src/export/exportHermes.js.map +1 -1
  97. package/build/src/export/exportStaticAsync.js +73 -62
  98. package/build/src/export/exportStaticAsync.js.map +1 -1
  99. package/build/src/export/favicon.js +33 -27
  100. package/build/src/export/favicon.js.map +1 -1
  101. package/build/src/export/getPublicExpoManifest.js +7 -5
  102. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  103. package/build/src/export/getResolvedLocales.js +11 -9
  104. package/build/src/export/getResolvedLocales.js.map +1 -1
  105. package/build/src/export/html.js +10 -6
  106. package/build/src/export/html.js.map +1 -1
  107. package/build/src/export/index.js +32 -28
  108. package/build/src/export/index.js.map +1 -1
  109. package/build/src/export/metroAssetLocalPath.js +36 -30
  110. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  111. package/build/src/export/persistMetroAssets.js +64 -34
  112. package/build/src/export/persistMetroAssets.js.map +1 -1
  113. package/build/src/export/publicFolder.js +10 -6
  114. package/build/src/export/publicFolder.js.map +1 -1
  115. package/build/src/export/resolveOptions.js +28 -24
  116. package/build/src/export/resolveOptions.js.map +1 -1
  117. package/build/src/export/saveAssets.js +50 -46
  118. package/build/src/export/saveAssets.js.map +1 -1
  119. package/build/src/export/web/exportWebAsync.js +13 -11
  120. package/build/src/export/web/exportWebAsync.js.map +1 -1
  121. package/build/src/export/web/index.js +19 -15
  122. package/build/src/export/web/index.js.map +1 -1
  123. package/build/src/export/web/resolveOptions.js +5 -3
  124. package/build/src/export/web/resolveOptions.js.map +1 -1
  125. package/build/src/export/writeContents.js +4 -2
  126. package/build/src/export/writeContents.js.map +1 -1
  127. package/build/src/graphql/generated.js +705 -479
  128. package/build/src/graphql/generated.js.map +1 -1
  129. package/build/src/install/applyPlugins.js +11 -7
  130. package/build/src/install/applyPlugins.js.map +1 -1
  131. package/build/src/install/checkPackages.js +26 -22
  132. package/build/src/install/checkPackages.js.map +1 -1
  133. package/build/src/install/fixPackages.js +16 -12
  134. package/build/src/install/fixPackages.js.map +1 -1
  135. package/build/src/install/index.js +18 -16
  136. package/build/src/install/index.js.map +1 -1
  137. package/build/src/install/installAsync.js +32 -26
  138. package/build/src/install/installAsync.js.map +1 -1
  139. package/build/src/install/installExpoPackage.js +22 -18
  140. package/build/src/install/installExpoPackage.js.map +1 -1
  141. package/build/src/install/resolveOptions.js +21 -19
  142. package/build/src/install/resolveOptions.js.map +1 -1
  143. package/build/src/install/utils/autoAddConfigPlugins.js +18 -14
  144. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  145. package/build/src/install/utils/checkPackagesCompatibility.js +14 -12
  146. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
  147. package/build/src/lint/ESlintPrerequisite.js +50 -44
  148. package/build/src/lint/ESlintPrerequisite.js.map +1 -1
  149. package/build/src/lint/index.js +12 -8
  150. package/build/src/lint/index.js.map +1 -1
  151. package/build/src/lint/lintAsync.js +10 -8
  152. package/build/src/lint/lintAsync.js.map +1 -1
  153. package/build/src/log.js +36 -16
  154. package/build/src/log.js.map +1 -1
  155. package/build/src/login/index.js +24 -20
  156. package/build/src/login/index.js.map +1 -1
  157. package/build/src/logout/index.js +11 -7
  158. package/build/src/logout/index.js.map +1 -1
  159. package/build/src/prebuild/clearNativeFolder.js +38 -26
  160. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  161. package/build/src/prebuild/configureProjectAsync.js +18 -14
  162. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  163. package/build/src/prebuild/copyTemplateFiles.js +17 -13
  164. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  165. package/build/src/prebuild/ensureConfigAsync.js +6 -4
  166. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  167. package/build/src/prebuild/index.js +36 -32
  168. package/build/src/prebuild/index.js.map +1 -1
  169. package/build/src/prebuild/prebuildAsync.js +29 -25
  170. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  171. package/build/src/prebuild/renameTemplateAppName.js +43 -37
  172. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  173. package/build/src/prebuild/resolveOptions.js +70 -53
  174. package/build/src/prebuild/resolveOptions.js.map +1 -1
  175. package/build/src/prebuild/resolveTemplate.js +36 -32
  176. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  177. package/build/src/prebuild/updateFromTemplate.js +19 -13
  178. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  179. package/build/src/prebuild/updatePackageJson.js +53 -39
  180. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  181. package/build/src/prebuild/validateTemplatePlatforms.js +12 -8
  182. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  183. package/build/src/register/index.js +11 -7
  184. package/build/src/register/index.js.map +1 -1
  185. package/build/src/register/registerAsync.js +5 -3
  186. package/build/src/register/registerAsync.js.map +1 -1
  187. package/build/src/run/android/index.js +36 -32
  188. package/build/src/run/android/index.js.map +1 -1
  189. package/build/src/run/android/resolveDevice.js +10 -8
  190. package/build/src/run/android/resolveDevice.js.map +1 -1
  191. package/build/src/run/android/resolveGradlePropsAsync.js +18 -16
  192. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  193. package/build/src/run/android/resolveInstallApkName.js +17 -15
  194. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  195. package/build/src/run/android/resolveLaunchProps.js +12 -10
  196. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  197. package/build/src/run/android/resolveOptions.js +4 -2
  198. package/build/src/run/android/resolveOptions.js.map +1 -1
  199. package/build/src/run/android/runAndroidAsync.js +23 -21
  200. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  201. package/build/src/run/ensureNativeProject.js +7 -5
  202. package/build/src/run/ensureNativeProject.js.map +1 -1
  203. package/build/src/run/hints.js +13 -7
  204. package/build/src/run/hints.js.map +1 -1
  205. package/build/src/run/index.js +27 -23
  206. package/build/src/run/index.js.map +1 -1
  207. package/build/src/run/ios/XcodeBuild.js +80 -60
  208. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  209. package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
  210. package/build/src/run/ios/appleDevice/AppleDevice.js +69 -63
  211. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  212. package/build/src/run/ios/appleDevice/ClientManager.js +29 -26
  213. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  214. package/build/src/run/ios/appleDevice/client/AFCClient.js +28 -25
  215. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  216. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +29 -26
  217. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  218. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +22 -21
  219. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  220. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +32 -29
  221. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  222. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +28 -24
  223. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  224. package/build/src/run/ios/appleDevice/client/ServiceClient.js +7 -4
  225. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  226. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +28 -27
  227. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  228. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +23 -17
  229. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  230. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +146 -132
  231. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  232. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +29 -21
  233. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  234. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +29 -21
  235. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  236. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +34 -22
  237. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  238. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +27 -17
  239. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  240. package/build/src/run/ios/codeSigning/Security.js +53 -39
  241. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  242. package/build/src/run/ios/codeSigning/configureCodeSigning.js +13 -9
  243. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  244. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +27 -19
  245. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  246. package/build/src/run/ios/codeSigning/settings.js +9 -5
  247. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  248. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +14 -12
  249. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  250. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +27 -21
  251. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  252. package/build/src/run/ios/index.js +40 -36
  253. package/build/src/run/ios/index.js.map +1 -1
  254. package/build/src/run/ios/launchApp.js +23 -17
  255. package/build/src/run/ios/launchApp.js.map +1 -1
  256. package/build/src/run/ios/options/appleDestinations.js +38 -36
  257. package/build/src/run/ios/options/appleDestinations.js.map +1 -1
  258. package/build/src/run/ios/options/promptDevice.js +20 -16
  259. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  260. package/build/src/run/ios/options/resolveDevice.js +30 -24
  261. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  262. package/build/src/run/ios/options/resolveNativeScheme.js +31 -23
  263. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  264. package/build/src/run/ios/options/resolveOptions.js +7 -5
  265. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  266. package/build/src/run/ios/options/resolveXcodeProject.js +7 -5
  267. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  268. package/build/src/run/ios/runIosAsync.js +48 -44
  269. package/build/src/run/ios/runIosAsync.js.map +1 -1
  270. package/build/src/run/ios/validateExternalBinary.js +24 -22
  271. package/build/src/run/ios/validateExternalBinary.js.map +1 -1
  272. package/build/src/run/resolveBundlerProps.js +4 -2
  273. package/build/src/run/resolveBundlerProps.js.map +1 -1
  274. package/build/src/run/startBundler.js +16 -12
  275. package/build/src/run/startBundler.js.map +1 -1
  276. package/build/src/serve/index.js +20 -16
  277. package/build/src/serve/index.js.map +1 -1
  278. package/build/src/serve/serveAsync.js +36 -32
  279. package/build/src/serve/serveAsync.js.map +1 -1
  280. package/build/src/start/detectDevClient.js +13 -9
  281. package/build/src/start/detectDevClient.js.map +1 -1
  282. package/build/src/start/doctor/Prerequisite.js +12 -7
  283. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  284. package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -11
  285. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  286. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +23 -19
  287. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  288. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +23 -19
  289. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  290. package/build/src/start/doctor/apple/XcodePrerequisite.js +51 -45
  291. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  292. package/build/src/start/doctor/apple/XcrunPrerequisite.js +18 -16
  293. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  294. package/build/src/start/doctor/dependencies/bundledNativeModules.js +23 -19
  295. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  296. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +31 -25
  297. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  298. package/build/src/start/doctor/dependencies/getMissingPackages.js +25 -17
  299. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  300. package/build/src/start/doctor/dependencies/getVersionedPackages.js +40 -32
  301. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  302. package/build/src/start/doctor/dependencies/resolvePackages.js +32 -26
  303. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  304. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +41 -31
  305. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  306. package/build/src/start/doctor/ngrok/ExternalModule.js +34 -29
  307. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  308. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -8
  309. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  310. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +32 -28
  311. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  312. package/build/src/start/doctor/typescript/updateTSConfig.js +23 -17
  313. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  314. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +33 -27
  315. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  316. package/build/src/start/index.js +46 -42
  317. package/build/src/start/index.js.map +1 -1
  318. package/build/src/start/interface/KeyPressHandler.js +18 -14
  319. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  320. package/build/src/start/interface/commandsTable.js +94 -80
  321. package/build/src/start/interface/commandsTable.js.map +1 -1
  322. package/build/src/start/interface/interactiveActions.js +44 -40
  323. package/build/src/start/interface/interactiveActions.js.map +1 -1
  324. package/build/src/start/interface/startInterface.js +65 -61
  325. package/build/src/start/interface/startInterface.js.map +1 -1
  326. package/build/src/start/platforms/AppIdResolver.js +6 -4
  327. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  328. package/build/src/start/platforms/DeviceManager.js +10 -6
  329. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  330. package/build/src/start/platforms/ExpoGoInstaller.js +25 -20
  331. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  332. package/build/src/start/platforms/PlatformManager.js +17 -15
  333. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  334. package/build/src/start/platforms/android/ADBServer.js +39 -35
  335. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  336. package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -16
  337. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  338. package/build/src/start/platforms/android/AndroidDeviceManager.js +24 -20
  339. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  340. package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
  341. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  342. package/build/src/start/platforms/android/AndroidSdk.js +11 -9
  343. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  344. package/build/src/start/platforms/android/activateWindow.js +26 -22
  345. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  346. package/build/src/start/platforms/android/adb.js +121 -83
  347. package/build/src/start/platforms/android/adb.js.map +1 -1
  348. package/build/src/start/platforms/android/adbReverse.js +20 -12
  349. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  350. package/build/src/start/platforms/android/emulator.js +36 -26
  351. package/build/src/start/platforms/android/emulator.js.map +1 -1
  352. package/build/src/start/platforms/android/getDevices.js +7 -5
  353. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  354. package/build/src/start/platforms/android/gradle.js +36 -28
  355. package/build/src/start/platforms/android/gradle.js.map +1 -1
  356. package/build/src/start/platforms/android/promptAndroidDevice.js +19 -15
  357. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  358. package/build/src/start/platforms/ios/AppleAppIdResolver.js +21 -19
  359. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  360. package/build/src/start/platforms/ios/AppleDeviceManager.js +37 -31
  361. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  362. package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
  363. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  364. package/build/src/start/platforms/ios/assertSystemRequirements.js +9 -7
  365. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  366. package/build/src/start/platforms/ios/devicectl.js +88 -74
  367. package/build/src/start/platforms/ios/devicectl.js.map +1 -1
  368. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +22 -18
  369. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  370. package/build/src/start/platforms/ios/getBestSimulator.js +29 -19
  371. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  372. package/build/src/start/platforms/ios/promptAppleDevice.js +14 -10
  373. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  374. package/build/src/start/platforms/ios/simctl.js +102 -74
  375. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  376. package/build/src/start/platforms/ios/simctlLogging.js +57 -52
  377. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  378. package/build/src/start/platforms/ios/xcrun.js +22 -18
  379. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  380. package/build/src/start/project/devices.js +19 -9
  381. package/build/src/start/project/devices.js.map +1 -1
  382. package/build/src/start/project/dotExpo.js +15 -11
  383. package/build/src/start/project/dotExpo.js.map +1 -1
  384. package/build/src/start/project/settings.js +4 -2
  385. package/build/src/start/project/settings.js.map +1 -1
  386. package/build/src/start/resolveOptions.js +48 -40
  387. package/build/src/start/resolveOptions.js.map +1 -1
  388. package/build/src/start/server/AsyncNgrok.js +55 -51
  389. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  390. package/build/src/start/server/AsyncWsTunnel.js +37 -33
  391. package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
  392. package/build/src/start/server/BundlerDevServer.js +81 -79
  393. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  394. package/build/src/start/server/DevServerManager.js +42 -38
  395. package/build/src/start/server/DevServerManager.js.map +1 -1
  396. package/build/src/start/server/DevToolsPluginManager.js +18 -14
  397. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  398. package/build/src/start/server/DevelopmentSession.js +18 -14
  399. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  400. package/build/src/start/server/ReactDevToolsProxy.js +16 -10
  401. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  402. package/build/src/start/server/UrlCreator.js +36 -33
  403. package/build/src/start/server/UrlCreator.js.map +1 -1
  404. package/build/src/start/server/getStaticRenderFunctions.js +30 -22
  405. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  406. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +9 -5
  407. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  408. package/build/src/start/server/metro/MetroBundlerDevServer.js +293 -280
  409. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  410. package/build/src/start/server/metro/MetroTerminalReporter.js +63 -56
  411. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  412. package/build/src/start/server/metro/TerminalReporter.js +39 -33
  413. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  414. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  415. package/build/src/start/server/metro/createExpoFallbackResolver.js +13 -11
  416. package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
  417. package/build/src/start/server/metro/createExpoMetroResolver.js +47 -41
  418. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  419. package/build/src/start/server/metro/createJResolver.js +31 -27
  420. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  421. package/build/src/start/server/metro/createServerComponentsMiddleware.js +110 -98
  422. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  423. package/build/src/start/server/metro/createServerRouteMiddleware.js +34 -30
  424. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  425. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +13 -11
  426. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
  427. package/build/src/start/server/metro/debugging/MessageHandler.js +3 -1
  428. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  429. package/build/src/start/server/metro/debugging/attachAtlas.js +26 -22
  430. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  431. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +19 -17
  432. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  433. package/build/src/start/server/metro/debugging/createHandlersFactory.js +25 -31
  434. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  435. package/build/src/start/server/metro/debugging/getDebuggerType.js +6 -4
  436. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  437. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +14 -8
  438. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  439. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -5
  440. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  441. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +8 -6
  442. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  443. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -5
  444. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  445. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +14 -12
  446. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
  447. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +14 -10
  448. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  449. package/build/src/start/server/metro/debugging/pageIsSupported.js +6 -4
  450. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  451. package/build/src/start/server/metro/debugging/types.js.map +1 -1
  452. package/build/src/start/server/metro/dev-server/createEventSocket.js +18 -16
  453. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
  454. package/build/src/start/server/metro/dev-server/createMessageSocket.js +23 -21
  455. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  456. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +23 -21
  457. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  458. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +4 -2
  459. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
  460. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +4 -2
  461. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
  462. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +8 -4
  463. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  464. package/build/src/start/server/metro/externals.js +33 -25
  465. package/build/src/start/server/metro/externals.js.map +1 -1
  466. package/build/src/start/server/metro/fetchRouterManifest.js +28 -12
  467. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  468. package/build/src/start/server/metro/formatFileCandidates.js +11 -9
  469. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  470. package/build/src/start/server/metro/getCssModulesFromBundler.js +24 -20
  471. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  472. package/build/src/start/server/metro/instantiateMetro.js +87 -81
  473. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  474. package/build/src/start/server/metro/log-box/LogBoxLog.js +40 -36
  475. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  476. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +20 -14
  477. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  478. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +10 -6
  479. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  480. package/build/src/start/server/metro/metroErrorInterface.js +88 -78
  481. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  482. package/build/src/start/server/metro/metroErrors.js +8 -4
  483. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  484. package/build/src/start/server/metro/metroPrivateServer.js +9 -7
  485. package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
  486. package/build/src/start/server/metro/metroVirtualModules.js +10 -8
  487. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  488. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +24 -22
  489. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  490. package/build/src/start/server/metro/router.js +48 -32
  491. package/build/src/start/server/metro/router.js.map +1 -1
  492. package/build/src/start/server/metro/runServer-fork.js +24 -22
  493. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  494. package/build/src/start/server/metro/serializeHtml.js +24 -22
  495. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  496. package/build/src/start/server/metro/symbolicate.js.map +1 -1
  497. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +35 -29
  498. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  499. package/build/src/start/server/metro/withMetroMultiPlatform.js +150 -140
  500. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  501. package/build/src/start/server/metro/withMetroResolvers.js +49 -39
  502. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  503. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +8 -6
  504. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  505. package/build/src/start/server/middleware/CorsMiddleware.js +17 -15
  506. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  507. package/build/src/start/server/middleware/CreateFileMiddleware.js +32 -31
  508. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  509. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +22 -19
  510. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  511. package/build/src/start/server/middleware/DomComponentsMiddleware.js +33 -27
  512. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  513. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +61 -57
  514. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  515. package/build/src/start/server/middleware/ExpoMiddleware.js +15 -9
  516. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  517. package/build/src/start/server/middleware/FaviconMiddleware.js +16 -15
  518. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  519. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +4 -2
  520. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  521. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +34 -31
  522. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  523. package/build/src/start/server/middleware/ManifestMiddleware.js +64 -56
  524. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  525. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +23 -19
  526. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  527. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +20 -19
  528. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  529. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -9
  530. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  531. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +17 -11
  532. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
  533. package/build/src/start/server/middleware/inspector/CdpClient.js +12 -10
  534. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
  535. package/build/src/start/server/middleware/inspector/JsInspector.js +35 -27
  536. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  537. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +21 -19
  538. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  539. package/build/src/start/server/middleware/inspector/middlwareMutations.js +6 -2
  540. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  541. package/build/src/start/server/middleware/metroOptions.js +120 -96
  542. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  543. package/build/src/start/server/middleware/mutations.js +7 -3
  544. package/build/src/start/server/middleware/mutations.js.map +1 -1
  545. package/build/src/start/server/middleware/resolveAssets.js +26 -18
  546. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  547. package/build/src/start/server/middleware/resolvePlatform.js +23 -15
  548. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  549. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +11 -9
  550. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  551. package/build/src/start/server/middleware/server.types.js.map +1 -1
  552. package/build/src/start/server/openPlatforms.js +10 -8
  553. package/build/src/start/server/openPlatforms.js.map +1 -1
  554. package/build/src/start/server/platformBundlers.js +13 -11
  555. package/build/src/start/server/platformBundlers.js.map +1 -1
  556. package/build/src/start/server/serverLogLikeMetro.js +58 -50
  557. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  558. package/build/src/start/server/type-generation/expo-env.js +11 -7
  559. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  560. package/build/src/start/server/type-generation/routes.js +72 -50
  561. package/build/src/start/server/type-generation/routes.js.map +1 -1
  562. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +21 -19
  563. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  564. package/build/src/start/server/type-generation/tsconfig.js +36 -28
  565. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  566. package/build/src/start/server/webTemplate.js +28 -24
  567. package/build/src/start/server/webTemplate.js.map +1 -1
  568. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +52 -46
  569. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  570. package/build/src/start/server/webpack/compile.js +15 -11
  571. package/build/src/start/server/webpack/compile.js.map +1 -1
  572. package/build/src/start/server/webpack/formatWebpackMessages.js +28 -26
  573. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  574. package/build/src/start/server/webpack/resolveFromProject.js +18 -12
  575. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  576. package/build/src/start/server/webpack/tls.js +18 -12
  577. package/build/src/start/server/webpack/tls.js.map +1 -1
  578. package/build/src/start/startAsync.js +31 -27
  579. package/build/src/start/startAsync.js.map +1 -1
  580. package/build/src/utils/FileNotifier.js +20 -17
  581. package/build/src/utils/FileNotifier.js.map +1 -1
  582. package/build/src/utils/ansi.js +7 -5
  583. package/build/src/utils/ansi.js.map +1 -1
  584. package/build/src/utils/args.js +24 -14
  585. package/build/src/utils/args.js.map +1 -1
  586. package/build/src/utils/array.js +18 -6
  587. package/build/src/utils/array.js.map +1 -1
  588. package/build/src/utils/cocoapods.js +54 -46
  589. package/build/src/utils/cocoapods.js.map +1 -1
  590. package/build/src/utils/codesigning.js +79 -69
  591. package/build/src/utils/codesigning.js.map +1 -1
  592. package/build/src/utils/createFileTransform.js +16 -12
  593. package/build/src/utils/createFileTransform.js.map +1 -1
  594. package/build/src/utils/createTempPath.js +12 -8
  595. package/build/src/utils/createTempPath.js.map +1 -1
  596. package/build/src/utils/delay.js +12 -6
  597. package/build/src/utils/delay.js.map +1 -1
  598. package/build/src/utils/dir.js +40 -22
  599. package/build/src/utils/dir.js.map +1 -1
  600. package/build/src/utils/downloadAppAsync.js +10 -8
  601. package/build/src/utils/downloadAppAsync.js.map +1 -1
  602. package/build/src/utils/downloadExpoGoAsync.js +27 -23
  603. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  604. package/build/src/utils/editor.js +41 -35
  605. package/build/src/utils/editor.js.map +1 -1
  606. package/build/src/utils/env.js +63 -59
  607. package/build/src/utils/env.js.map +1 -1
  608. package/build/src/utils/errors.js +37 -30
  609. package/build/src/utils/errors.js.map +1 -1
  610. package/build/src/utils/exit.js +35 -31
  611. package/build/src/utils/exit.js.map +1 -1
  612. package/build/src/utils/expoUpdatesCli.js +32 -22
  613. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  614. package/build/src/utils/fetch.js +8 -4
  615. package/build/src/utils/fetch.js.map +1 -1
  616. package/build/src/utils/filePath.js +10 -6
  617. package/build/src/utils/filePath.js.map +1 -1
  618. package/build/src/utils/findUp.js +13 -9
  619. package/build/src/utils/findUp.js.map +1 -1
  620. package/build/src/utils/fn.js +6 -2
  621. package/build/src/utils/fn.js.map +1 -1
  622. package/build/src/utils/getOrPromptApplicationId.js +41 -35
  623. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  624. package/build/src/utils/getRunningProcess.js +29 -21
  625. package/build/src/utils/getRunningProcess.js.map +1 -1
  626. package/build/src/utils/git.js +26 -20
  627. package/build/src/utils/git.js.map +1 -1
  628. package/build/src/utils/glob.js +8 -4
  629. package/build/src/utils/glob.js.map +1 -1
  630. package/build/src/utils/interactive.js +3 -1
  631. package/build/src/utils/interactive.js.map +1 -1
  632. package/build/src/utils/ip.js +21 -19
  633. package/build/src/utils/ip.js.map +1 -1
  634. package/build/src/utils/isModuleSymlinked.js +11 -9
  635. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  636. package/build/src/utils/jsonSchemaDeref.js +20 -18
  637. package/build/src/utils/jsonSchemaDeref.js.map +1 -1
  638. package/build/src/utils/link.js +17 -13
  639. package/build/src/utils/link.js.map +1 -1
  640. package/build/src/utils/mergeGitIgnorePaths.js +46 -28
  641. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  642. package/build/src/utils/modifyConfigAsync.js +16 -10
  643. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  644. package/build/src/utils/modifyConfigPlugins.js +10 -6
  645. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  646. package/build/src/utils/multipartMixed.js +13 -11
  647. package/build/src/utils/multipartMixed.js.map +1 -1
  648. package/build/src/utils/nodeEnv.js +12 -6
  649. package/build/src/utils/nodeEnv.js.map +1 -1
  650. package/build/src/utils/nodeModules.js +10 -8
  651. package/build/src/utils/nodeModules.js.map +1 -1
  652. package/build/src/utils/npm.js +49 -35
  653. package/build/src/utils/npm.js.map +1 -1
  654. package/build/src/utils/obj.js +11 -5
  655. package/build/src/utils/obj.js.map +1 -1
  656. package/build/src/utils/open.js +10 -8
  657. package/build/src/utils/open.js.map +1 -1
  658. package/build/src/utils/ora.js +13 -7
  659. package/build/src/utils/ora.js.map +1 -1
  660. package/build/src/utils/plist.js +21 -15
  661. package/build/src/utils/plist.js.map +1 -1
  662. package/build/src/utils/port.js +43 -33
  663. package/build/src/utils/port.js.map +1 -1
  664. package/build/src/utils/profile.js +11 -7
  665. package/build/src/utils/profile.js.map +1 -1
  666. package/build/src/utils/progress.js +11 -5
  667. package/build/src/utils/progress.js.map +1 -1
  668. package/build/src/utils/prompts.js +47 -29
  669. package/build/src/utils/prompts.js.map +1 -1
  670. package/build/src/utils/resolveArgs.js +36 -24
  671. package/build/src/utils/resolveArgs.js.map +1 -1
  672. package/build/src/utils/scheme.js +40 -32
  673. package/build/src/utils/scheme.js.map +1 -1
  674. package/build/src/utils/stream.js +5 -3
  675. package/build/src/utils/stream.js.map +1 -1
  676. package/build/src/utils/strings.js +6 -4
  677. package/build/src/utils/strings.js.map +1 -1
  678. package/build/src/utils/tar.js +18 -14
  679. package/build/src/utils/tar.js.map +1 -1
  680. package/build/src/utils/telemetry/Telemetry.js +29 -27
  681. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  682. package/build/src/utils/telemetry/clients/FetchClient.js +15 -13
  683. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  684. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +26 -22
  685. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
  686. package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
  687. package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
  688. package/build/src/utils/telemetry/events.js +4 -2
  689. package/build/src/utils/telemetry/events.js.map +1 -1
  690. package/build/src/utils/telemetry/index.js +25 -29
  691. package/build/src/utils/telemetry/index.js.map +1 -1
  692. package/build/src/utils/telemetry/types.js.map +1 -1
  693. package/build/src/utils/telemetry/utils/constants.js +8 -4
  694. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  695. package/build/src/utils/telemetry/utils/context.js +18 -14
  696. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  697. package/build/src/utils/template.js +6 -4
  698. package/build/src/utils/template.js.map +1 -1
  699. package/build/src/utils/terminal.js +4 -2
  700. package/build/src/utils/terminal.js.map +1 -1
  701. package/build/src/utils/tsconfig/evaluateTsConfig.js +21 -17
  702. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  703. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -14
  704. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  705. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +7 -5
  706. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  707. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +14 -12
  708. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  709. package/build/src/utils/url.js +23 -13
  710. package/build/src/utils/url.js.map +1 -1
  711. package/build/src/utils/validateApplicationId.js +108 -86
  712. package/build/src/utils/validateApplicationId.js.map +1 -1
  713. package/build/src/utils/variadic.js +22 -16
  714. package/build/src/utils/variadic.js.map +1 -1
  715. package/build/src/whoami/index.js +11 -7
  716. package/build/src/whoami/index.js.map +1 -1
  717. package/build/src/whoami/whoamiAsync.js +11 -7
  718. package/build/src/whoami/whoamiAsync.js.map +1 -1
  719. package/package.json +17 -16
@@ -10,25 +10,27 @@ Object.defineProperty(exports, "__esModule", {
10
10
  });
11
11
  Object.defineProperty(exports, "LockdowndClient", {
12
12
  enumerable: true,
13
- get: ()=>LockdowndClient
13
+ get: function() {
14
+ return LockdowndClient;
15
+ }
14
16
  });
15
17
  function _debug() {
16
- const data = /*#__PURE__*/ _interopRequireDefault(require("debug"));
18
+ const data = /*#__PURE__*/ _interop_require_default(require("debug"));
17
19
  _debug = function() {
18
20
  return data;
19
21
  };
20
22
  return data;
21
23
  }
22
24
  function _tls() {
23
- const data = /*#__PURE__*/ _interopRequireWildcard(require("tls"));
25
+ const data = /*#__PURE__*/ _interop_require_wildcard(require("tls"));
24
26
  _tls = function() {
25
27
  return data;
26
28
  };
27
29
  return data;
28
30
  }
29
- const _serviceClient = require("./ServiceClient");
30
- const _lockdownProtocol = require("../protocol/LockdownProtocol");
31
- function _interopRequireDefault(obj) {
31
+ const _ServiceClient = require("./ServiceClient");
32
+ const _LockdownProtocol = require("../protocol/LockdownProtocol");
33
+ function _interop_require_default(obj) {
32
34
  return obj && obj.__esModule ? obj : {
33
35
  default: obj
34
36
  };
@@ -41,7 +43,7 @@ function _getRequireWildcardCache(nodeInterop) {
41
43
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
42
44
  })(nodeInterop);
43
45
  }
44
- function _interopRequireWildcard(obj, nodeInterop) {
46
+ function _interop_require_wildcard(obj, nodeInterop) {
45
47
  if (!nodeInterop && obj && obj.__esModule) {
46
48
  return obj;
47
49
  }
@@ -54,7 +56,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
54
56
  if (cache && cache.has(obj)) {
55
57
  return cache.get(obj);
56
58
  }
57
- var newObj = {};
59
+ var newObj = {
60
+ __proto__: null
61
+ };
58
62
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
59
63
  for(var key in obj){
60
64
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -72,31 +76,30 @@ function _interopRequireWildcard(obj, nodeInterop) {
72
76
  }
73
77
  return newObj;
74
78
  }
75
- const debug = (0, _debug().default)("expo:apple-device:client:lockdownd");
79
+ const debug = (0, _debug().default)('expo:apple-device:client:lockdownd');
76
80
  function isLockdowndServiceResponse(resp) {
77
- return resp.Request === "StartService" && resp.Service !== undefined && resp.Port !== undefined;
81
+ return resp.Request === 'StartService' && resp.Service !== undefined && resp.Port !== undefined;
78
82
  }
79
83
  function isLockdowndSessionResponse(resp) {
80
- return resp.Request === "StartSession";
84
+ return resp.Request === 'StartSession';
81
85
  }
82
86
  function isLockdowndAllValuesResponse(resp) {
83
- return resp.Request === "GetValue" && resp.Value !== undefined;
87
+ return resp.Request === 'GetValue' && resp.Value !== undefined;
84
88
  }
85
89
  function isLockdowndValueResponse(resp) {
86
- return resp.Request === "GetValue" && resp.Key !== undefined && typeof resp.Value === "string";
90
+ return resp.Request === 'GetValue' && resp.Key !== undefined && typeof resp.Value === 'string';
87
91
  }
88
92
  function isLockdowndQueryTypeResponse(resp) {
89
- return resp.Request === "QueryType" && resp.Type !== undefined;
93
+ return resp.Request === 'QueryType' && resp.Type !== undefined;
90
94
  }
91
- class LockdowndClient extends _serviceClient.ServiceClient {
95
+ class LockdowndClient extends _ServiceClient.ServiceClient {
92
96
  constructor(socket){
93
- super(socket, new _lockdownProtocol.LockdownProtocolClient(socket));
94
- this.socket = socket;
97
+ super(socket, new _LockdownProtocol.LockdownProtocolClient(socket)), this.socket = socket;
95
98
  }
96
99
  async startService(name) {
97
100
  debug(`startService: ${name}`);
98
101
  const resp = await this.protocolClient.sendMessage({
99
- Request: "StartService",
102
+ Request: 'StartService',
100
103
  Service: name
101
104
  });
102
105
  if (isLockdowndServiceResponse(resp)) {
@@ -105,13 +108,13 @@ class LockdowndClient extends _serviceClient.ServiceClient {
105
108
  enableServiceSSL: !!resp.EnableServiceSSL
106
109
  };
107
110
  } else {
108
- throw new _serviceClient.ResponseError(`Error starting service ${name}`, resp);
111
+ throw new _ServiceClient.ResponseError(`Error starting service ${name}`, resp);
109
112
  }
110
113
  }
111
114
  async startSession(pairRecord) {
112
115
  debug(`startSession: ${pairRecord}`);
113
116
  const resp = await this.protocolClient.sendMessage({
114
- Request: "StartSession",
117
+ Request: 'StartSession',
115
118
  HostID: pairRecord.HostID,
116
119
  SystemBUID: pairRecord.SystemBUID
117
120
  });
@@ -132,45 +135,45 @@ class LockdowndClient extends _serviceClient.ServiceClient {
132
135
  }
133
136
  // TODO: save sessionID for StopSession?
134
137
  } else {
135
- throw new _serviceClient.ResponseError("Error starting session", resp);
138
+ throw new _ServiceClient.ResponseError('Error starting session', resp);
136
139
  }
137
140
  }
138
141
  async getAllValues() {
139
142
  debug(`getAllValues`);
140
143
  const resp = await this.protocolClient.sendMessage({
141
- Request: "GetValue"
144
+ Request: 'GetValue'
142
145
  });
143
146
  if (isLockdowndAllValuesResponse(resp)) {
144
147
  return resp.Value;
145
148
  } else {
146
- throw new _serviceClient.ResponseError("Error getting lockdown value", resp);
149
+ throw new _ServiceClient.ResponseError('Error getting lockdown value', resp);
147
150
  }
148
151
  }
149
152
  async getValue(val) {
150
153
  debug(`getValue: ${val}`);
151
154
  const resp = await this.protocolClient.sendMessage({
152
- Request: "GetValue",
155
+ Request: 'GetValue',
153
156
  Key: val
154
157
  });
155
158
  if (isLockdowndValueResponse(resp)) {
156
159
  return resp.Value;
157
160
  } else {
158
- throw new _serviceClient.ResponseError("Error getting lockdown value", resp);
161
+ throw new _ServiceClient.ResponseError('Error getting lockdown value', resp);
159
162
  }
160
163
  }
161
164
  async queryType() {
162
- debug("queryType");
165
+ debug('queryType');
163
166
  const resp = await this.protocolClient.sendMessage({
164
- Request: "QueryType"
167
+ Request: 'QueryType'
165
168
  });
166
169
  if (isLockdowndQueryTypeResponse(resp)) {
167
170
  return resp.Type;
168
171
  } else {
169
- throw new _serviceClient.ResponseError("Error getting lockdown query type", resp);
172
+ throw new _ServiceClient.ResponseError('Error getting lockdown query type', resp);
170
173
  }
171
174
  }
172
175
  async doHandshake(pairRecord) {
173
- debug("doHandshake");
176
+ debug('doHandshake');
174
177
  // if (await this.lockdownQueryType() !== 'com.apple.mobile.lockdown') {
175
178
  // throw new CommandError('Invalid type received from lockdown handshake');
176
179
  // }
@@ -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":["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
+ {"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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"}
@@ -10,25 +10,27 @@ Object.defineProperty(exports, "__esModule", {
10
10
  });
11
11
  Object.defineProperty(exports, "MobileImageMounterClient", {
12
12
  enumerable: true,
13
- get: ()=>MobileImageMounterClient
13
+ get: function() {
14
+ return MobileImageMounterClient;
15
+ }
14
16
  });
15
17
  function _debug() {
16
- const data = /*#__PURE__*/ _interopRequireDefault(require("debug"));
18
+ const data = /*#__PURE__*/ _interop_require_default(require("debug"));
17
19
  _debug = function() {
18
20
  return data;
19
21
  };
20
22
  return data;
21
23
  }
22
24
  function _fs() {
23
- const data = /*#__PURE__*/ _interopRequireWildcard(require("fs"));
25
+ const data = /*#__PURE__*/ _interop_require_wildcard(require("fs"));
24
26
  _fs = function() {
25
27
  return data;
26
28
  };
27
29
  return data;
28
30
  }
29
- const _serviceClient = require("./ServiceClient");
30
- const _lockdownProtocol = require("../protocol/LockdownProtocol");
31
- function _interopRequireDefault(obj) {
31
+ const _ServiceClient = require("./ServiceClient");
32
+ const _LockdownProtocol = require("../protocol/LockdownProtocol");
33
+ function _interop_require_default(obj) {
32
34
  return obj && obj.__esModule ? obj : {
33
35
  default: obj
34
36
  };
@@ -41,7 +43,7 @@ function _getRequireWildcardCache(nodeInterop) {
41
43
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
42
44
  })(nodeInterop);
43
45
  }
44
- function _interopRequireWildcard(obj, nodeInterop) {
46
+ function _interop_require_wildcard(obj, nodeInterop) {
45
47
  if (!nodeInterop && obj && obj.__esModule) {
46
48
  return obj;
47
49
  }
@@ -54,7 +56,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
54
56
  if (cache && cache.has(obj)) {
55
57
  return cache.get(obj);
56
58
  }
57
- var newObj = {};
59
+ var newObj = {
60
+ __proto__: null
61
+ };
58
62
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
59
63
  for(var key in obj){
60
64
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -72,56 +76,56 @@ function _interopRequireWildcard(obj, nodeInterop) {
72
76
  }
73
77
  return newObj;
74
78
  }
75
- const debug = (0, _debug().default)("expo:apple-device:client:mobile_image_mounter");
79
+ const debug = (0, _debug().default)('expo:apple-device:client:mobile_image_mounter');
76
80
  function isMIMUploadCompleteResponse(resp) {
77
- return resp.Status === "Complete";
81
+ return resp.Status === 'Complete';
78
82
  }
79
83
  function isMIMUploadReceiveBytesResponse(resp) {
80
- return resp.Status === "ReceiveBytesAck";
84
+ return resp.Status === 'ReceiveBytesAck';
81
85
  }
82
- class MobileImageMounterClient extends _serviceClient.ServiceClient {
86
+ class MobileImageMounterClient extends _ServiceClient.ServiceClient {
83
87
  constructor(socket){
84
- super(socket, new _lockdownProtocol.LockdownProtocolClient(socket));
88
+ super(socket, new _LockdownProtocol.LockdownProtocolClient(socket));
85
89
  }
86
90
  async mountImage(imagePath, imageSig) {
87
91
  debug(`mountImage: ${imagePath}`);
88
92
  const resp = await this.protocolClient.sendMessage({
89
- Command: "MountImage",
93
+ Command: 'MountImage',
90
94
  ImagePath: imagePath,
91
95
  ImageSignature: imageSig,
92
- ImageType: "Developer"
96
+ ImageType: 'Developer'
93
97
  });
94
- if (!(0, _lockdownProtocol.isLockdownResponse)(resp) || resp.Status !== "Complete") {
95
- throw new _serviceClient.ResponseError(`There was an error mounting ${imagePath} on device`, resp);
98
+ if (!(0, _LockdownProtocol.isLockdownResponse)(resp) || resp.Status !== 'Complete') {
99
+ throw new _ServiceClient.ResponseError(`There was an error mounting ${imagePath} on device`, resp);
96
100
  }
97
101
  }
98
102
  async uploadImage(imagePath, imageSig) {
99
103
  debug(`uploadImage: ${imagePath}`);
100
104
  const imageSize = _fs().statSync(imagePath).size;
101
105
  return this.protocolClient.sendMessage({
102
- Command: "ReceiveBytes",
106
+ Command: 'ReceiveBytes',
103
107
  ImageSize: imageSize,
104
108
  ImageSignature: imageSig,
105
- ImageType: "Developer"
109
+ ImageType: 'Developer'
106
110
  }, (resp, resolve, reject)=>{
107
111
  if (isMIMUploadReceiveBytesResponse(resp)) {
108
112
  const imageStream = _fs().createReadStream(imagePath);
109
113
  imageStream.pipe(this.protocolClient.socket, {
110
114
  end: false
111
115
  });
112
- imageStream.on("error", (err)=>reject(err));
116
+ imageStream.on('error', (err)=>reject(err));
113
117
  } else if (isMIMUploadCompleteResponse(resp)) {
114
118
  resolve();
115
119
  } else {
116
- reject(new _serviceClient.ResponseError(`There was an error uploading image ${imagePath} to the device`, resp));
120
+ reject(new _ServiceClient.ResponseError(`There was an error uploading image ${imagePath} to the device`, resp));
117
121
  }
118
122
  });
119
123
  }
120
124
  async lookupImage() {
121
- debug("lookupImage");
125
+ debug('lookupImage');
122
126
  return this.protocolClient.sendMessage({
123
- Command: "LookupImage",
124
- ImageType: "Developer"
127
+ Command: 'LookupImage',
128
+ ImageType: 'Developer'
125
129
  });
126
130
  }
127
131
  }
@@ -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":["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
+ {"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":"AAAA;;;;;;CAMC;;;;+BAqCYA;;;eAAAA;;;;gEApCK;;;;;;;iEACE;;;;;;+BAGyB;kCAEc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,MAAMC,QAAQC,IAAAA,gBAAK,EAAC;AAoBpB,SAASC,4BAA4BC,IAAS;IAC5C,OAAOA,KAAKC,MAAM,KAAK;AACzB;AAEA,SAASC,gCAAgCF,IAAS;IAChD,OAAOA,KAAKC,MAAM,KAAK;AACzB;AAEO,MAAML,iCAAiCO,4BAAa;IACzDC,YAAYC,MAAc,CAAE;QAC1B,KAAK,CAACA,QAAQ,IAAIC,wCAAsB,CAACD;IAC3C;IAEA,MAAME,WAAWC,SAAiB,EAAEC,QAAgB,EAAE;QACpDZ,MAAM,CAAC,YAAY,EAAEW,WAAW;QAEhC,MAAMR,OAAO,MAAM,IAAI,CAACU,cAAc,CAACC,WAAW,CAAC;YACjDC,SAAS;YACTC,WAAWL;YACXM,gBAAgBL;YAChBM,WAAW;QACb;QAEA,IAAI,CAACC,IAAAA,oCAAkB,EAAChB,SAASA,KAAKC,MAAM,KAAK,YAAY;YAC3D,MAAM,IAAIgB,4BAAa,CAAC,CAAC,4BAA4B,EAAET,UAAU,UAAU,CAAC,EAAER;QAChF;IACF;IAEA,MAAMkB,YAAYV,SAAiB,EAAEC,QAAgB,EAAE;QACrDZ,MAAM,CAAC,aAAa,EAAEW,WAAW;QAEjC,MAAMW,YAAYC,MAAGC,QAAQ,CAACb,WAAWc,IAAI;QAC7C,OAAO,IAAI,CAACZ,cAAc,CAACC,WAAW,CACpC;YACEC,SAAS;YACTW,WAAWJ;YACXL,gBAAgBL;YAChBM,WAAW;QACb,GACA,CAACf,MAAWwB,SAASC;YACnB,IAAIvB,gCAAgCF,OAAO;gBACzC,MAAM0B,cAAcN,MAAGO,gBAAgB,CAACnB;gBACxCkB,YAAYE,IAAI,CAAC,IAAI,CAAClB,cAAc,CAACL,MAAM,EAAE;oBAAEwB,KAAK;gBAAM;gBAC1DH,YAAYI,EAAE,CAAC,SAAS,CAACC,MAAQN,OAAOM;YAC1C,OAAO,IAAIhC,4BAA4BC,OAAO;gBAC5CwB;YACF,OAAO;gBACLC,OACE,IAAIR,4BAAa,CAAC,CAAC,mCAAmC,EAAET,UAAU,cAAc,CAAC,EAAER;YAEvF;QACF;IAEJ;IAEA,MAAMgC,cAAc;QAClBnC,MAAM;QAEN,OAAO,IAAI,CAACa,cAAc,CAACC,WAAW,CAAoB;YACxDC,SAAS;YACTG,WAAW;QACb;IACF;AACF"}
@@ -15,8 +15,12 @@ function _export(target, all) {
15
15
  });
16
16
  }
17
17
  _export(exports, {
18
- ServiceClient: ()=>ServiceClient,
19
- ResponseError: ()=>ResponseError
18
+ ResponseError: function() {
19
+ return ResponseError;
20
+ },
21
+ ServiceClient: function() {
22
+ return ServiceClient;
23
+ }
20
24
  });
21
25
  const _errors = require("../../../../utils/errors");
22
26
  class ServiceClient {
@@ -27,8 +31,7 @@ class ServiceClient {
27
31
  }
28
32
  class ResponseError extends _errors.CommandError {
29
33
  constructor(msg, response){
30
- super(msg);
31
- this.response = response;
34
+ super(msg), this.response = response;
32
35
  }
33
36
  }
34
37
 
@@ -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","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
+ {"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":["ResponseError","ServiceClient","constructor","socket","protocolClient","CommandError","msg","response"],"mappings":"AAAA;;;;;;CAMC;;;;;;;;;;;IAaYA,aAAa;eAAbA;;IAPSC,aAAa;eAAbA;;;wBAHO;AAGtB,MAAeA;IACpBC,YACE,AAAOC,MAAc,EACrB,AAAUC,cAAiB,CAC3B;aAFOD,SAAAA;aACGC,iBAAAA;IACT;AACL;AAEO,MAAMJ,sBAAsBK,oBAAY;IAC7CH,YACEI,GAAW,EACX,AAAOC,QAAa,CACpB;QACA,KAAK,CAACD,WAFCC,WAAAA;IAGT;AACF"}
@@ -10,17 +10,19 @@ Object.defineProperty(exports, "__esModule", {
10
10
  });
11
11
  Object.defineProperty(exports, "UsbmuxdClient", {
12
12
  enumerable: true,
13
- get: ()=>UsbmuxdClient
13
+ get: function() {
14
+ return UsbmuxdClient;
15
+ }
14
16
  });
15
17
  function _plist() {
16
- const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/plist"));
18
+ const data = /*#__PURE__*/ _interop_require_default(require("@expo/plist"));
17
19
  _plist = function() {
18
20
  return data;
19
21
  };
20
22
  return data;
21
23
  }
22
24
  function _debug() {
23
- const data = /*#__PURE__*/ _interopRequireDefault(require("debug"));
25
+ const data = /*#__PURE__*/ _interop_require_default(require("debug"));
24
26
  _debug = function() {
25
27
  return data;
26
28
  };
@@ -33,18 +35,18 @@ function _net() {
33
35
  };
34
36
  return data;
35
37
  }
36
- const _serviceClient = require("./ServiceClient");
38
+ const _ServiceClient = require("./ServiceClient");
37
39
  const _errors = require("../../../../utils/errors");
38
40
  const _plist1 = require("../../../../utils/plist");
39
- const _usbmuxProtocol = require("../protocol/UsbmuxProtocol");
40
- function _interopRequireDefault(obj) {
41
+ const _UsbmuxProtocol = require("../protocol/UsbmuxProtocol");
42
+ function _interop_require_default(obj) {
41
43
  return obj && obj.__esModule ? obj : {
42
44
  default: obj
43
45
  };
44
46
  }
45
- const debug = (0, _debug().default)("expo:apple-device:client:usbmuxd");
47
+ const debug = (0, _debug().default)('expo:apple-device:client:usbmuxd');
46
48
  function isUsbmuxdConnectResponse(resp) {
47
- return resp.MessageType === "Result" && resp.Number !== undefined;
49
+ return resp.MessageType === 'Result' && resp.Number !== undefined;
48
50
  }
49
51
  function isUsbmuxdDeviceResponse(resp) {
50
52
  return resp.DeviceList !== undefined;
@@ -52,21 +54,20 @@ function isUsbmuxdDeviceResponse(resp) {
52
54
  function isUsbmuxdPairRecordResponse(resp) {
53
55
  return resp.PairRecordData !== undefined;
54
56
  }
55
- class UsbmuxdClient extends _serviceClient.ServiceClient {
57
+ class UsbmuxdClient extends _ServiceClient.ServiceClient {
56
58
  constructor(socket){
57
- super(socket, new _usbmuxProtocol.UsbmuxProtocolClient(socket));
58
- this.socket = socket;
59
+ super(socket, new _UsbmuxProtocol.UsbmuxProtocolClient(socket)), this.socket = socket;
59
60
  }
60
61
  static connectUsbmuxdSocket() {
61
- debug("connectUsbmuxdSocket");
62
- if (process.platform === "win32") {
62
+ debug('connectUsbmuxdSocket');
63
+ if (process.platform === 'win32') {
63
64
  return (0, _net().connect)({
64
65
  port: 27015,
65
- host: "localhost"
66
+ host: 'localhost'
66
67
  });
67
68
  } else {
68
69
  return (0, _net().connect)({
69
- path: "/var/run/usbmuxd"
70
+ path: '/var/run/usbmuxd'
70
71
  });
71
72
  }
72
73
  }
@@ -74,7 +75,7 @@ class UsbmuxdClient extends _serviceClient.ServiceClient {
74
75
  debug(`connect: ${device.DeviceID} on port ${port}`);
75
76
  debug(`connect:device: %O`, device);
76
77
  const response = await this.protocolClient.sendMessage({
77
- messageType: "Connect",
78
+ messageType: 'Connect',
78
79
  extraFields: {
79
80
  DeviceID: device.DeviceID,
80
81
  PortNumber: htons(port)
@@ -84,25 +85,25 @@ class UsbmuxdClient extends _serviceClient.ServiceClient {
84
85
  if (isUsbmuxdConnectResponse(response) && response.Number === 0) {
85
86
  return this.protocolClient.socket;
86
87
  } else {
87
- throw new _serviceClient.ResponseError(`There was an error connecting to the USB connected device (id: ${device.DeviceID}, port: ${port})`, response);
88
+ throw new _ServiceClient.ResponseError(`There was an error connecting to the USB connected device (id: ${device.DeviceID}, port: ${port})`, response);
88
89
  }
89
90
  }
90
91
  async getDevices() {
91
- debug("getDevices");
92
+ debug('getDevices');
92
93
  const resp = await this.protocolClient.sendMessage({
93
- messageType: "ListDevices"
94
+ messageType: 'ListDevices'
94
95
  });
95
96
  if (isUsbmuxdDeviceResponse(resp)) {
96
97
  return resp.DeviceList;
97
98
  } else {
98
- throw new _serviceClient.ResponseError("Invalid response from getDevices", resp);
99
+ throw new _ServiceClient.ResponseError('Invalid response from getDevices', resp);
99
100
  }
100
101
  }
101
102
  async getDevice(udid) {
102
- debug(`getDevice ${udid ? "udid: " + udid : ""}`);
103
+ debug(`getDevice ${udid ? 'udid: ' + udid : ''}`);
103
104
  const devices = await this.getDevices();
104
105
  if (!devices.length) {
105
- throw new _errors.CommandError("APPLE_DEVICE_USBMUXD", "No devices found");
106
+ throw new _errors.CommandError('APPLE_DEVICE_USBMUXD', 'No devices found');
106
107
  }
107
108
  if (!udid) {
108
109
  return devices[0];
@@ -112,21 +113,21 @@ class UsbmuxdClient extends _serviceClient.ServiceClient {
112
113
  return device;
113
114
  }
114
115
  }
115
- throw new _errors.CommandError("APPLE_DEVICE_USBMUXD", `No device found (udid: ${udid})`);
116
+ throw new _errors.CommandError('APPLE_DEVICE_USBMUXD', `No device found (udid: ${udid})`);
116
117
  }
117
118
  async readPairRecord(udid) {
118
119
  debug(`readPairRecord: ${udid}`);
119
120
  const resp = await this.protocolClient.sendMessage({
120
- messageType: "ReadPairRecord",
121
+ messageType: 'ReadPairRecord',
121
122
  extraFields: {
122
123
  PairRecordID: udid
123
124
  }
124
125
  });
125
126
  if (isUsbmuxdPairRecordResponse(resp)) {
126
127
  // the pair record can be created as a binary plist
127
- const BPLIST_MAGIC = Buffer.from("bplist00");
128
+ const BPLIST_MAGIC = Buffer.from('bplist00');
128
129
  if (BPLIST_MAGIC.compare(resp.PairRecordData, 0, 8) === 0) {
129
- debug("Binary plist pair record detected.");
130
+ debug('Binary plist pair record detected.');
130
131
  const pairRecords = (0, _plist1.parsePlistBuffer)(resp.PairRecordData);
131
132
  return Array.isArray(pairRecords) ? pairRecords[0] : pairRecords;
132
133
  } else {
@@ -134,7 +135,7 @@ class UsbmuxdClient extends _serviceClient.ServiceClient {
134
135
  return _plist().default.parse(resp.PairRecordData.toString()); // TODO: type guard
135
136
  }
136
137
  } else {
137
- throw new _serviceClient.ResponseError(`There was an error reading pair record for device (udid: ${udid})`, resp);
138
+ throw new _ServiceClient.ResponseError(`There was an error reading pair record for device (udid: ${udid})`, resp);
138
139
  }
139
140
  }
140
141
  }
@@ -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 const pairRecords = parsePlistBuffer(resp.PairRecordData);\n return Array.isArray(pairRecords) ? pairRecords[0] : pairRecords;\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","pairRecords","parsePlistBuffer","Array","isArray","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 const pairRecords = parsePlistBuffer(resp.PairRecordData);\n return Array.isArray(pairRecords) ? pairRecords[0] : pairRecords;\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","pairRecords","parsePlistBuffer","Array","isArray","plist","parse","toString","n"],"mappings":"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"}