@expo/cli 0.22.25 → 0.22.26

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 (722) hide show
  1. package/build/bin/cli +91 -93
  2. package/build/bin/cli.map +1 -1
  3. package/build/metro-require/require.js +52 -53
  4. package/build/src/api/endpoint.js +2 -6
  5. package/build/src/api/endpoint.js.map +1 -1
  6. package/build/src/api/getExpoGoIntermediateCertificate.js +3 -5
  7. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  8. package/build/src/api/getExpoSchema.js +12 -16
  9. package/build/src/api/getExpoSchema.js.map +1 -1
  10. package/build/src/api/getNativeModuleVersions.js +4 -6
  11. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  12. package/build/src/api/getProjectDevelopmentCertificate.js +3 -5
  13. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  14. package/build/src/api/getVersions.js +5 -7
  15. package/build/src/api/getVersions.js.map +1 -1
  16. package/build/src/api/graphql/client.js +26 -32
  17. package/build/src/api/graphql/client.js.map +1 -1
  18. package/build/src/api/graphql/queries/AppQuery.js +4 -6
  19. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  20. package/build/src/api/graphql/queries/UserQuery.js +3 -5
  21. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  22. package/build/src/api/graphql/types/App.js +1 -3
  23. package/build/src/api/graphql/types/App.js.map +1 -1
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +8 -10
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  26. package/build/src/api/rest/cache/ResponseCache.js +12 -20
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +11 -13
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  30. package/build/src/api/rest/client.js +35 -53
  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 +3 -5
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithOffline.js +3 -5
  36. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProgress.js +7 -11
  38. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  39. package/build/src/api/rest/wrapFetchWithProxy.js +3 -5
  40. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js +6 -8
  42. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
  43. package/build/src/api/settings.js +5 -7
  44. package/build/src/api/settings.js.map +1 -1
  45. package/build/src/api/updateDevelopmentSession.js +17 -23
  46. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  47. package/build/src/api/user/UserSettings.js +21 -39
  48. package/build/src/api/user/UserSettings.js.map +1 -1
  49. package/build/src/api/user/actions.js +21 -27
  50. package/build/src/api/user/actions.js.map +1 -1
  51. package/build/src/api/user/expoSsoLauncher.js +26 -30
  52. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  53. package/build/src/api/user/otp.js +29 -35
  54. package/build/src/api/user/otp.js.map +1 -1
  55. package/build/src/api/user/user.js +30 -44
  56. package/build/src/api/user/user.js.map +1 -1
  57. package/build/src/config/configAsync.js +23 -29
  58. package/build/src/config/configAsync.js.map +1 -1
  59. package/build/src/config/index.js +21 -25
  60. package/build/src/config/index.js.map +1 -1
  61. package/build/src/customize/customizeAsync.js +6 -8
  62. package/build/src/customize/customizeAsync.js.map +1 -1
  63. package/build/src/customize/generate.js +16 -20
  64. package/build/src/customize/generate.js.map +1 -1
  65. package/build/src/customize/index.js +12 -14
  66. package/build/src/customize/index.js.map +1 -1
  67. package/build/src/customize/resolveOptions.js +2 -4
  68. package/build/src/customize/resolveOptions.js.map +1 -1
  69. package/build/src/customize/templates.js +54 -58
  70. package/build/src/customize/templates.js.map +1 -1
  71. package/build/src/customize/typescript.js +7 -11
  72. package/build/src/customize/typescript.js.map +1 -1
  73. package/build/src/export/createMetadataJson.js +9 -11
  74. package/build/src/export/createMetadataJson.js.map +1 -1
  75. package/build/src/export/embed/exportEager.js +6 -8
  76. package/build/src/export/embed/exportEager.js.map +1 -1
  77. package/build/src/export/embed/exportEmbedAsync.js +61 -71
  78. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  79. package/build/src/export/embed/exportServer.js +55 -57
  80. package/build/src/export/embed/exportServer.js.map +1 -1
  81. package/build/src/export/embed/index.js +40 -44
  82. package/build/src/export/embed/index.js.map +1 -1
  83. package/build/src/export/embed/resolveOptions.js +36 -44
  84. package/build/src/export/embed/resolveOptions.js.map +1 -1
  85. package/build/src/export/embed/xcodeCompilerLogger.js +27 -39
  86. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  87. package/build/src/export/exportApp.js +63 -67
  88. package/build/src/export/exportApp.js.map +1 -1
  89. package/build/src/export/exportAssets.js +27 -35
  90. package/build/src/export/exportAssets.js.map +1 -1
  91. package/build/src/export/exportAsync.js +9 -13
  92. package/build/src/export/exportAsync.js.map +1 -1
  93. package/build/src/export/exportDomComponents.js +45 -53
  94. package/build/src/export/exportDomComponents.js.map +1 -1
  95. package/build/src/export/exportHermes.js +63 -85
  96. package/build/src/export/exportHermes.js.map +1 -1
  97. package/build/src/export/exportStaticAsync.js +62 -72
  98. package/build/src/export/exportStaticAsync.js.map +1 -1
  99. package/build/src/export/favicon.js +27 -33
  100. package/build/src/export/favicon.js.map +1 -1
  101. package/build/src/export/getPublicExpoManifest.js +5 -7
  102. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  103. package/build/src/export/getResolvedLocales.js +9 -11
  104. package/build/src/export/getResolvedLocales.js.map +1 -1
  105. package/build/src/export/html.js +6 -10
  106. package/build/src/export/html.js.map +1 -1
  107. package/build/src/export/index.js +28 -32
  108. package/build/src/export/index.js.map +1 -1
  109. package/build/src/export/metroAssetLocalPath.js +30 -36
  110. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  111. package/build/src/export/persistMetroAssets.js +34 -42
  112. package/build/src/export/persistMetroAssets.js.map +1 -1
  113. package/build/src/export/publicFolder.js +6 -10
  114. package/build/src/export/publicFolder.js.map +1 -1
  115. package/build/src/export/resolveOptions.js +24 -28
  116. package/build/src/export/resolveOptions.js.map +1 -1
  117. package/build/src/export/saveAssets.js +46 -50
  118. package/build/src/export/saveAssets.js.map +1 -1
  119. package/build/src/export/web/exportWebAsync.js +11 -13
  120. package/build/src/export/web/exportWebAsync.js.map +1 -1
  121. package/build/src/export/web/index.js +15 -19
  122. package/build/src/export/web/index.js.map +1 -1
  123. package/build/src/export/web/resolveOptions.js +3 -5
  124. package/build/src/export/web/resolveOptions.js.map +1 -1
  125. package/build/src/export/writeContents.js +2 -4
  126. package/build/src/export/writeContents.js.map +1 -1
  127. package/build/src/graphql/generated.js +274 -400
  128. package/build/src/graphql/generated.js.map +1 -1
  129. package/build/src/install/applyPlugins.js +7 -11
  130. package/build/src/install/applyPlugins.js.map +1 -1
  131. package/build/src/install/checkPackages.js +22 -26
  132. package/build/src/install/checkPackages.js.map +1 -1
  133. package/build/src/install/fixPackages.js +12 -16
  134. package/build/src/install/fixPackages.js.map +1 -1
  135. package/build/src/install/index.js +16 -18
  136. package/build/src/install/index.js.map +1 -1
  137. package/build/src/install/installAsync.js +26 -32
  138. package/build/src/install/installAsync.js.map +1 -1
  139. package/build/src/install/installExpoPackage.js +18 -22
  140. package/build/src/install/installExpoPackage.js.map +1 -1
  141. package/build/src/install/resolveOptions.js +19 -21
  142. package/build/src/install/resolveOptions.js.map +1 -1
  143. package/build/src/install/utils/autoAddConfigPlugins.js +14 -18
  144. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  145. package/build/src/install/utils/checkPackagesCompatibility.js +11 -13
  146. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
  147. package/build/src/lint/ESlintPrerequisite.js +44 -50
  148. package/build/src/lint/ESlintPrerequisite.js.map +1 -1
  149. package/build/src/lint/index.js +8 -12
  150. package/build/src/lint/index.js.map +1 -1
  151. package/build/src/lint/lintAsync.js +8 -10
  152. package/build/src/lint/lintAsync.js.map +1 -1
  153. package/build/src/log.js +16 -36
  154. package/build/src/log.js.map +1 -1
  155. package/build/src/login/index.js +20 -24
  156. package/build/src/login/index.js.map +1 -1
  157. package/build/src/logout/index.js +7 -11
  158. package/build/src/logout/index.js.map +1 -1
  159. package/build/src/prebuild/clearNativeFolder.js +26 -38
  160. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  161. package/build/src/prebuild/configureProjectAsync.js +14 -18
  162. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  163. package/build/src/prebuild/copyTemplateFiles.js +13 -17
  164. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  165. package/build/src/prebuild/ensureConfigAsync.js +4 -6
  166. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  167. package/build/src/prebuild/index.js +32 -36
  168. package/build/src/prebuild/index.js.map +1 -1
  169. package/build/src/prebuild/prebuildAsync.js +25 -29
  170. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  171. package/build/src/prebuild/renameTemplateAppName.js +40 -46
  172. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  173. package/build/src/prebuild/resolveOptions.js +52 -66
  174. package/build/src/prebuild/resolveOptions.js.map +1 -1
  175. package/build/src/prebuild/resolveTemplate.js +32 -36
  176. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  177. package/build/src/prebuild/updateFromTemplate.js +13 -19
  178. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  179. package/build/src/prebuild/updatePackageJson.js +39 -53
  180. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  181. package/build/src/prebuild/validateTemplatePlatforms.js +8 -12
  182. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  183. package/build/src/register/index.js +7 -11
  184. package/build/src/register/index.js.map +1 -1
  185. package/build/src/register/registerAsync.js +3 -5
  186. package/build/src/register/registerAsync.js.map +1 -1
  187. package/build/src/run/android/index.js +32 -36
  188. package/build/src/run/android/index.js.map +1 -1
  189. package/build/src/run/android/resolveDevice.js +8 -10
  190. package/build/src/run/android/resolveDevice.js.map +1 -1
  191. package/build/src/run/android/resolveGradlePropsAsync.js +16 -18
  192. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  193. package/build/src/run/android/resolveInstallApkName.js +15 -17
  194. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  195. package/build/src/run/android/resolveLaunchProps.js +10 -12
  196. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  197. package/build/src/run/android/resolveOptions.js +2 -4
  198. package/build/src/run/android/resolveOptions.js.map +1 -1
  199. package/build/src/run/android/runAndroidAsync.js +21 -23
  200. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  201. package/build/src/run/ensureNativeProject.js +5 -7
  202. package/build/src/run/ensureNativeProject.js.map +1 -1
  203. package/build/src/run/hints.js +7 -13
  204. package/build/src/run/hints.js.map +1 -1
  205. package/build/src/run/index.js +23 -27
  206. package/build/src/run/index.js.map +1 -1
  207. package/build/src/run/ios/XcodeBuild.js +56 -74
  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 +63 -69
  211. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  212. package/build/src/run/ios/appleDevice/ClientManager.js +26 -29
  213. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  214. package/build/src/run/ios/appleDevice/client/AFCClient.js +25 -28
  215. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  216. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +26 -29
  217. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  218. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -22
  219. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  220. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +29 -32
  221. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  222. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +24 -28
  223. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  224. package/build/src/run/ios/appleDevice/client/ServiceClient.js +4 -7
  225. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  226. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +27 -28
  227. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  228. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +17 -23
  229. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  230. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +132 -146
  231. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  232. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +21 -29
  233. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  234. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +21 -29
  235. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  236. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +22 -34
  237. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  238. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +17 -27
  239. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  240. package/build/src/run/ios/codeSigning/Security.js +39 -53
  241. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  242. package/build/src/run/ios/codeSigning/configureCodeSigning.js +9 -13
  243. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  244. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +19 -27
  245. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  246. package/build/src/run/ios/codeSigning/settings.js +5 -9
  247. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  248. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +12 -14
  249. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  250. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +21 -27
  251. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  252. package/build/src/run/ios/index.js +36 -40
  253. package/build/src/run/ios/index.js.map +1 -1
  254. package/build/src/run/ios/launchApp.js +17 -23
  255. package/build/src/run/ios/launchApp.js.map +1 -1
  256. package/build/src/run/ios/options/appleDestinations.js +36 -38
  257. package/build/src/run/ios/options/appleDestinations.js.map +1 -1
  258. package/build/src/run/ios/options/promptDevice.js +16 -20
  259. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  260. package/build/src/run/ios/options/resolveDevice.js +24 -30
  261. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  262. package/build/src/run/ios/options/resolveNativeScheme.js +23 -31
  263. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  264. package/build/src/run/ios/options/resolveOptions.js +5 -7
  265. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  266. package/build/src/run/ios/options/resolveXcodeProject.js +5 -7
  267. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  268. package/build/src/run/ios/runIosAsync.js +44 -48
  269. package/build/src/run/ios/runIosAsync.js.map +1 -1
  270. package/build/src/run/ios/validateExternalBinary.js +22 -24
  271. package/build/src/run/ios/validateExternalBinary.js.map +1 -1
  272. package/build/src/run/resolveBundlerProps.js +2 -4
  273. package/build/src/run/resolveBundlerProps.js.map +1 -1
  274. package/build/src/run/startBundler.js +12 -16
  275. package/build/src/run/startBundler.js.map +1 -1
  276. package/build/src/serve/index.js +16 -20
  277. package/build/src/serve/index.js.map +1 -1
  278. package/build/src/serve/serveAsync.js +32 -36
  279. package/build/src/serve/serveAsync.js.map +1 -1
  280. package/build/src/start/detectDevClient.js +9 -13
  281. package/build/src/start/detectDevClient.js.map +1 -1
  282. package/build/src/start/doctor/Prerequisite.js +7 -12
  283. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  284. package/build/src/start/doctor/SecurityBinPrerequisite.js +11 -13
  285. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  286. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +19 -23
  287. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  288. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +19 -23
  289. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  290. package/build/src/start/doctor/apple/XcodePrerequisite.js +45 -51
  291. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  292. package/build/src/start/doctor/apple/XcrunPrerequisite.js +16 -18
  293. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  294. package/build/src/start/doctor/dependencies/bundledNativeModules.js +19 -23
  295. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  296. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +25 -31
  297. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  298. package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -25
  299. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  300. package/build/src/start/doctor/dependencies/getVersionedPackages.js +32 -40
  301. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  302. package/build/src/start/doctor/dependencies/resolvePackages.js +26 -32
  303. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  304. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +31 -41
  305. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  306. package/build/src/start/doctor/ngrok/ExternalModule.js +29 -34
  307. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  308. package/build/src/start/doctor/ngrok/NgrokResolver.js +8 -12
  309. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  310. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +28 -32
  311. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  312. package/build/src/start/doctor/typescript/updateTSConfig.js +17 -23
  313. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  314. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +27 -33
  315. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  316. package/build/src/start/index.js +42 -46
  317. package/build/src/start/index.js.map +1 -1
  318. package/build/src/start/interface/KeyPressHandler.js +14 -18
  319. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  320. package/build/src/start/interface/commandsTable.js +80 -94
  321. package/build/src/start/interface/commandsTable.js.map +1 -1
  322. package/build/src/start/interface/interactiveActions.js +40 -44
  323. package/build/src/start/interface/interactiveActions.js.map +1 -1
  324. package/build/src/start/interface/startInterface.js +61 -65
  325. package/build/src/start/interface/startInterface.js.map +1 -1
  326. package/build/src/start/platforms/AppIdResolver.js +4 -6
  327. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  328. package/build/src/start/platforms/DeviceManager.js +6 -10
  329. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  330. package/build/src/start/platforms/ExpoGoInstaller.js +20 -25
  331. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  332. package/build/src/start/platforms/PlatformManager.js +15 -17
  333. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  334. package/build/src/start/platforms/android/ADBServer.js +35 -39
  335. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  336. package/build/src/start/platforms/android/AndroidAppIdResolver.js +16 -18
  337. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  338. package/build/src/start/platforms/android/AndroidDeviceManager.js +20 -24
  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 +9 -11
  343. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  344. package/build/src/start/platforms/android/activateWindow.js +22 -26
  345. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  346. package/build/src/start/platforms/android/adb.js +83 -121
  347. package/build/src/start/platforms/android/adb.js.map +1 -1
  348. package/build/src/start/platforms/android/adbReverse.js +12 -20
  349. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  350. package/build/src/start/platforms/android/emulator.js +26 -36
  351. package/build/src/start/platforms/android/emulator.js.map +1 -1
  352. package/build/src/start/platforms/android/getDevices.js +5 -7
  353. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  354. package/build/src/start/platforms/android/gradle.js +28 -36
  355. package/build/src/start/platforms/android/gradle.js.map +1 -1
  356. package/build/src/start/platforms/android/promptAndroidDevice.js +15 -19
  357. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  358. package/build/src/start/platforms/ios/AppleAppIdResolver.js +19 -21
  359. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  360. package/build/src/start/platforms/ios/AppleDeviceManager.js +31 -37
  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 +7 -9
  365. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  366. package/build/src/start/platforms/ios/devicectl.js +73 -87
  367. package/build/src/start/platforms/ios/devicectl.js.map +1 -1
  368. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +18 -22
  369. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  370. package/build/src/start/platforms/ios/getBestSimulator.js +19 -29
  371. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  372. package/build/src/start/platforms/ios/promptAppleDevice.js +10 -14
  373. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  374. package/build/src/start/platforms/ios/simctl.js +74 -102
  375. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  376. package/build/src/start/platforms/ios/simctlLogging.js +52 -57
  377. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  378. package/build/src/start/platforms/ios/xcrun.js +18 -22
  379. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  380. package/build/src/start/project/devices.js +9 -19
  381. package/build/src/start/project/devices.js.map +1 -1
  382. package/build/src/start/project/dotExpo.js +11 -15
  383. package/build/src/start/project/dotExpo.js.map +1 -1
  384. package/build/src/start/project/settings.js +2 -4
  385. package/build/src/start/project/settings.js.map +1 -1
  386. package/build/src/start/resolveOptions.js +40 -48
  387. package/build/src/start/resolveOptions.js.map +1 -1
  388. package/build/src/start/server/AsyncNgrok.js +51 -55
  389. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  390. package/build/src/start/server/AsyncWsTunnel.js +36 -40
  391. package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
  392. package/build/src/start/server/BundlerDevServer.js +79 -81
  393. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  394. package/build/src/start/server/DevServerManager.js +38 -42
  395. package/build/src/start/server/DevServerManager.js.map +1 -1
  396. package/build/src/start/server/DevToolsPluginManager.js +14 -18
  397. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  398. package/build/src/start/server/DevelopmentSession.js +14 -18
  399. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  400. package/build/src/start/server/ReactDevToolsProxy.js +10 -16
  401. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  402. package/build/src/start/server/UrlCreator.js +33 -36
  403. package/build/src/start/server/UrlCreator.js.map +1 -1
  404. package/build/src/start/server/getStaticRenderFunctions.js +21 -29
  405. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  406. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +4 -6
  407. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  408. package/build/src/start/server/metro/MetroBundlerDevServer.js +271 -269
  409. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  410. package/build/src/start/server/metro/MetroTerminalReporter.js +56 -63
  411. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  412. package/build/src/start/server/metro/TerminalReporter.js +33 -39
  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/createExpoMetroResolver.js +40 -46
  416. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  417. package/build/src/start/server/metro/createJResolver.js +28 -32
  418. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  419. package/build/src/start/server/metro/createServerComponentsMiddleware.js +92 -96
  420. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  421. package/build/src/start/server/metro/createServerRouteMiddleware.js +30 -32
  422. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  423. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +11 -13
  424. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
  425. package/build/src/start/server/metro/debugging/MessageHandler.js +1 -3
  426. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  427. package/build/src/start/server/metro/debugging/attachAtlas.js +22 -26
  428. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  429. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +17 -19
  430. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  431. package/build/src/start/server/metro/debugging/createHandlersFactory.js +31 -25
  432. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  433. package/build/src/start/server/metro/debugging/getDebuggerType.js +4 -6
  434. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  435. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +8 -14
  436. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  437. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +5 -7
  438. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  439. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +6 -8
  440. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  441. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +5 -7
  442. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  443. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +12 -14
  444. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
  445. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +10 -14
  446. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  447. package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -6
  448. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  449. package/build/src/start/server/metro/debugging/types.js.map +1 -1
  450. package/build/src/start/server/metro/dev-server/createEventSocket.js +16 -18
  451. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
  452. package/build/src/start/server/metro/dev-server/createMessageSocket.js +21 -23
  453. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  454. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +21 -23
  455. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  456. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +2 -4
  457. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
  458. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +2 -4
  459. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
  460. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +4 -8
  461. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  462. package/build/src/start/server/metro/externals.js +25 -33
  463. package/build/src/start/server/metro/externals.js.map +1 -1
  464. package/build/src/start/server/metro/fetchRouterManifest.js +12 -16
  465. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  466. package/build/src/start/server/metro/formatFileCandidates.js +9 -11
  467. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  468. package/build/src/start/server/metro/getCssModulesFromBundler.js +18 -22
  469. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  470. package/build/src/start/server/metro/instantiateMetro.js +79 -85
  471. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  472. package/build/src/start/server/metro/log-box/LogBoxLog.js +36 -40
  473. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  474. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +14 -20
  475. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  476. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +6 -10
  477. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  478. package/build/src/start/server/metro/metroErrorInterface.js +78 -88
  479. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  480. package/build/src/start/server/metro/metroErrors.js +4 -8
  481. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  482. package/build/src/start/server/metro/metroPrivateServer.js +7 -9
  483. package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
  484. package/build/src/start/server/metro/metroVirtualModules.js +8 -10
  485. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  486. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +22 -24
  487. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  488. package/build/src/start/server/metro/router.js +32 -48
  489. package/build/src/start/server/metro/router.js.map +1 -1
  490. package/build/src/start/server/metro/runServer-fork.js +22 -24
  491. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  492. package/build/src/start/server/metro/serializeHtml.js +22 -24
  493. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  494. package/build/src/start/server/metro/symbolicate.js.map +1 -1
  495. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +29 -35
  496. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  497. package/build/src/start/server/metro/withMetroMultiPlatform.js +139 -149
  498. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  499. package/build/src/start/server/metro/withMetroResolvers.js +39 -49
  500. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  501. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +6 -8
  502. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  503. package/build/src/start/server/middleware/CorsMiddleware.js +15 -17
  504. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  505. package/build/src/start/server/middleware/CreateFileMiddleware.js +31 -32
  506. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  507. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +19 -22
  508. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  509. package/build/src/start/server/middleware/DomComponentsMiddleware.js +27 -33
  510. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  511. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +60 -64
  512. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  513. package/build/src/start/server/middleware/ExpoMiddleware.js +9 -15
  514. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  515. package/build/src/start/server/middleware/FaviconMiddleware.js +14 -15
  516. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  517. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +2 -4
  518. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  519. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +31 -34
  520. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  521. package/build/src/start/server/middleware/ManifestMiddleware.js +56 -64
  522. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  523. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +19 -23
  524. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  525. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +19 -20
  526. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  527. package/build/src/start/server/middleware/ServeStaticMiddleware.js +9 -11
  528. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  529. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +11 -17
  530. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
  531. package/build/src/start/server/middleware/inspector/CdpClient.js +10 -12
  532. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
  533. package/build/src/start/server/middleware/inspector/JsInspector.js +27 -35
  534. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  535. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +19 -21
  536. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  537. package/build/src/start/server/middleware/inspector/middlwareMutations.js +2 -6
  538. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  539. package/build/src/start/server/middleware/metroOptions.js +96 -120
  540. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  541. package/build/src/start/server/middleware/mutations.js +3 -7
  542. package/build/src/start/server/middleware/mutations.js.map +1 -1
  543. package/build/src/start/server/middleware/resolveAssets.js +18 -26
  544. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  545. package/build/src/start/server/middleware/resolvePlatform.js +15 -23
  546. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  547. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +9 -11
  548. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  549. package/build/src/start/server/middleware/server.types.js.map +1 -1
  550. package/build/src/start/server/openPlatforms.js +8 -10
  551. package/build/src/start/server/openPlatforms.js.map +1 -1
  552. package/build/src/start/server/platformBundlers.js +11 -13
  553. package/build/src/start/server/platformBundlers.js.map +1 -1
  554. package/build/src/start/server/serverLogLikeMetro.js +50 -58
  555. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  556. package/build/src/start/server/type-generation/expo-env.js +7 -11
  557. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  558. package/build/src/start/server/type-generation/routes.js +54 -76
  559. package/build/src/start/server/type-generation/routes.js.map +1 -1
  560. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +19 -21
  561. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  562. package/build/src/start/server/type-generation/tsconfig.js +28 -36
  563. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  564. package/build/src/start/server/webTemplate.js +24 -28
  565. package/build/src/start/server/webTemplate.js.map +1 -1
  566. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +46 -52
  567. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  568. package/build/src/start/server/webpack/compile.js +11 -15
  569. package/build/src/start/server/webpack/compile.js.map +1 -1
  570. package/build/src/start/server/webpack/formatWebpackMessages.js +26 -28
  571. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  572. package/build/src/start/server/webpack/resolveFromProject.js +12 -18
  573. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  574. package/build/src/start/server/webpack/tls.js +12 -18
  575. package/build/src/start/server/webpack/tls.js.map +1 -1
  576. package/build/src/start/startAsync.js +27 -31
  577. package/build/src/start/startAsync.js.map +1 -1
  578. package/build/src/utils/FileNotifier.js +17 -20
  579. package/build/src/utils/FileNotifier.js.map +1 -1
  580. package/build/src/utils/ansi.js +5 -7
  581. package/build/src/utils/ansi.js.map +1 -1
  582. package/build/src/utils/args.js +14 -24
  583. package/build/src/utils/args.js.map +1 -1
  584. package/build/src/utils/array.js +6 -18
  585. package/build/src/utils/array.js.map +1 -1
  586. package/build/src/utils/cocoapods.js +46 -54
  587. package/build/src/utils/cocoapods.js.map +1 -1
  588. package/build/src/utils/codesigning.js +68 -78
  589. package/build/src/utils/codesigning.js.map +1 -1
  590. package/build/src/utils/createFileTransform.js +12 -16
  591. package/build/src/utils/createFileTransform.js.map +1 -1
  592. package/build/src/utils/createTempPath.js +13 -17
  593. package/build/src/utils/createTempPath.js.map +1 -1
  594. package/build/src/utils/delay.js +6 -12
  595. package/build/src/utils/delay.js.map +1 -1
  596. package/build/src/utils/dir.js +28 -46
  597. package/build/src/utils/dir.js.map +1 -1
  598. package/build/src/utils/downloadAppAsync.js +8 -10
  599. package/build/src/utils/downloadAppAsync.js.map +1 -1
  600. package/build/src/utils/downloadExpoGoAsync.js +21 -25
  601. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  602. package/build/src/utils/editor.js +35 -41
  603. package/build/src/utils/editor.js.map +1 -1
  604. package/build/src/utils/env.js +59 -63
  605. package/build/src/utils/env.js.map +1 -1
  606. package/build/src/utils/errors.js +30 -37
  607. package/build/src/utils/errors.js.map +1 -1
  608. package/build/src/utils/exit.js +31 -35
  609. package/build/src/utils/exit.js.map +1 -1
  610. package/build/src/utils/expoUpdatesCli.js +22 -32
  611. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  612. package/build/src/utils/fetch.js +4 -8
  613. package/build/src/utils/fetch.js.map +1 -1
  614. package/build/src/utils/filePath.js +6 -10
  615. package/build/src/utils/filePath.js.map +1 -1
  616. package/build/src/utils/findUp.js +9 -13
  617. package/build/src/utils/findUp.js.map +1 -1
  618. package/build/src/utils/fn.js +2 -6
  619. package/build/src/utils/fn.js.map +1 -1
  620. package/build/src/utils/getOrPromptApplicationId.js +26 -32
  621. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  622. package/build/src/utils/getRunningProcess.js +21 -29
  623. package/build/src/utils/getRunningProcess.js.map +1 -1
  624. package/build/src/utils/git.js +20 -26
  625. package/build/src/utils/git.js.map +1 -1
  626. package/build/src/utils/glob.js +4 -8
  627. package/build/src/utils/glob.js.map +1 -1
  628. package/build/src/utils/interactive.js +1 -3
  629. package/build/src/utils/interactive.js.map +1 -1
  630. package/build/src/utils/ip.js +19 -21
  631. package/build/src/utils/ip.js.map +1 -1
  632. package/build/src/utils/isModuleSymlinked.js +9 -11
  633. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  634. package/build/src/utils/jsonSchemaDeref.js +18 -20
  635. package/build/src/utils/jsonSchemaDeref.js.map +1 -1
  636. package/build/src/utils/link.js +13 -17
  637. package/build/src/utils/link.js.map +1 -1
  638. package/build/src/utils/mergeGitIgnorePaths.js +28 -46
  639. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  640. package/build/src/utils/modifyConfigAsync.js +10 -16
  641. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  642. package/build/src/utils/modifyConfigPlugins.js +6 -10
  643. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  644. package/build/src/utils/nodeEnv.js +6 -12
  645. package/build/src/utils/nodeEnv.js.map +1 -1
  646. package/build/src/utils/nodeModules.js +8 -10
  647. package/build/src/utils/nodeModules.js.map +1 -1
  648. package/build/src/utils/npm.js +36 -50
  649. package/build/src/utils/npm.js.map +1 -1
  650. package/build/src/utils/obj.js +5 -11
  651. package/build/src/utils/obj.js.map +1 -1
  652. package/build/src/utils/open.js +8 -10
  653. package/build/src/utils/open.js.map +1 -1
  654. package/build/src/utils/ora.js +7 -13
  655. package/build/src/utils/ora.js.map +1 -1
  656. package/build/src/utils/plist.js +15 -21
  657. package/build/src/utils/plist.js.map +1 -1
  658. package/build/src/utils/port.js +33 -43
  659. package/build/src/utils/port.js.map +1 -1
  660. package/build/src/utils/profile.js +7 -11
  661. package/build/src/utils/profile.js.map +1 -1
  662. package/build/src/utils/progress.js +5 -11
  663. package/build/src/utils/progress.js.map +1 -1
  664. package/build/src/utils/prompts.js +29 -47
  665. package/build/src/utils/prompts.js.map +1 -1
  666. package/build/src/utils/resolveArgs.js +24 -36
  667. package/build/src/utils/resolveArgs.js.map +1 -1
  668. package/build/src/utils/scheme.js +32 -40
  669. package/build/src/utils/scheme.js.map +1 -1
  670. package/build/src/utils/stream.js +3 -5
  671. package/build/src/utils/stream.js.map +1 -1
  672. package/build/src/utils/strings.js +4 -6
  673. package/build/src/utils/strings.js.map +1 -1
  674. package/build/src/utils/tar.js +15 -19
  675. package/build/src/utils/tar.js.map +1 -1
  676. package/build/src/utils/telemetry/Telemetry.js +27 -29
  677. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  678. package/build/src/utils/telemetry/clients/FetchClient.js +13 -15
  679. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  680. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +22 -26
  681. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
  682. package/build/src/utils/telemetry/clients/RudderClient.js +8 -10
  683. package/build/src/utils/telemetry/clients/RudderClient.js.map +1 -1
  684. package/build/src/utils/telemetry/clients/RudderDetachedClient.js +22 -26
  685. package/build/src/utils/telemetry/clients/RudderDetachedClient.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/clients/flushRudderDetached.js +10 -10
  689. package/build/src/utils/telemetry/clients/flushRudderDetached.js.map +1 -1
  690. package/build/src/utils/telemetry/events.js +2 -4
  691. package/build/src/utils/telemetry/events.js.map +1 -1
  692. package/build/src/utils/telemetry/flushDetached.js.map +1 -1
  693. package/build/src/utils/telemetry/index.js +29 -25
  694. package/build/src/utils/telemetry/index.js.map +1 -1
  695. package/build/src/utils/telemetry/types.js.map +1 -1
  696. package/build/src/utils/telemetry/utils/constants.js +4 -8
  697. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  698. package/build/src/utils/telemetry/utils/context.js +14 -18
  699. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  700. package/build/src/utils/template.js +4 -6
  701. package/build/src/utils/template.js.map +1 -1
  702. package/build/src/utils/terminal.js +2 -4
  703. package/build/src/utils/terminal.js.map +1 -1
  704. package/build/src/utils/tsconfig/evaluateTsConfig.js +17 -21
  705. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  706. package/build/src/utils/tsconfig/loadTsConfigPaths.js +14 -18
  707. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  708. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +5 -7
  709. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  710. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -14
  711. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  712. package/build/src/utils/url.js +13 -23
  713. package/build/src/utils/url.js.map +1 -1
  714. package/build/src/utils/validateApplicationId.js +86 -108
  715. package/build/src/utils/validateApplicationId.js.map +1 -1
  716. package/build/src/utils/variadic.js +16 -22
  717. package/build/src/utils/variadic.js.map +1 -1
  718. package/build/src/whoami/index.js +7 -11
  719. package/build/src/whoami/index.js.map +1 -1
  720. package/build/src/whoami/whoamiAsync.js +7 -11
  721. package/build/src/whoami/whoamiAsync.js.map +1 -1
  722. package/package.json +3 -3
@@ -9,81 +9,45 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- DeviceABI: function() {
13
- return DeviceABI;
14
- },
15
- adbArgs: function() {
16
- return adbArgs;
17
- },
18
- getAdbNameForDeviceIdAsync: function() {
19
- return getAdbNameForDeviceIdAsync;
20
- },
21
- getAttachedDevicesAsync: function() {
22
- return getAttachedDevicesAsync;
23
- },
24
- getDeviceABIsAsync: function() {
25
- return getDeviceABIsAsync;
26
- },
27
- getPackageInfoAsync: function() {
28
- return getPackageInfoAsync;
29
- },
30
- getPropertyDataForDeviceAsync: function() {
31
- return getPropertyDataForDeviceAsync;
32
- },
33
- getServer: function() {
34
- return getServer;
35
- },
36
- installAsync: function() {
37
- return installAsync;
38
- },
39
- isBootAnimationCompleteAsync: function() {
40
- return isBootAnimationCompleteAsync;
41
- },
42
- isDeviceBootedAsync: function() {
43
- return isDeviceBootedAsync;
44
- },
45
- isPackageInstalledAsync: function() {
46
- return isPackageInstalledAsync;
47
- },
48
- launchActivityAsync: function() {
49
- return launchActivityAsync;
50
- },
51
- logUnauthorized: function() {
52
- return logUnauthorized;
53
- },
54
- openAppIdAsync: function() {
55
- return openAppIdAsync;
56
- },
57
- openUrlAsync: function() {
58
- return openUrlAsync;
59
- },
60
- sanitizeAdbDeviceName: function() {
61
- return sanitizeAdbDeviceName;
62
- },
63
- uninstallAsync: function() {
64
- return uninstallAsync;
65
- }
12
+ DeviceABI: ()=>DeviceABI,
13
+ getServer: ()=>getServer,
14
+ logUnauthorized: ()=>logUnauthorized,
15
+ isPackageInstalledAsync: ()=>isPackageInstalledAsync,
16
+ launchActivityAsync: ()=>launchActivityAsync,
17
+ openAppIdAsync: ()=>openAppIdAsync,
18
+ openUrlAsync: ()=>openUrlAsync,
19
+ uninstallAsync: ()=>uninstallAsync,
20
+ getPackageInfoAsync: ()=>getPackageInfoAsync,
21
+ installAsync: ()=>installAsync,
22
+ adbArgs: ()=>adbArgs,
23
+ getAttachedDevicesAsync: ()=>getAttachedDevicesAsync,
24
+ getAdbNameForDeviceIdAsync: ()=>getAdbNameForDeviceIdAsync,
25
+ isDeviceBootedAsync: ()=>isDeviceBootedAsync,
26
+ isBootAnimationCompleteAsync: ()=>isBootAnimationCompleteAsync,
27
+ getDeviceABIsAsync: ()=>getDeviceABIsAsync,
28
+ getPropertyDataForDeviceAsync: ()=>getPropertyDataForDeviceAsync,
29
+ sanitizeAdbDeviceName: ()=>sanitizeAdbDeviceName
66
30
  });
67
31
  function _chalk() {
68
- const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
32
+ const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
69
33
  _chalk = function() {
70
34
  return data;
71
35
  };
72
36
  return data;
73
37
  }
74
38
  function _os() {
75
- const data = /*#__PURE__*/ _interop_require_default(require("os"));
39
+ const data = /*#__PURE__*/ _interopRequireDefault(require("os"));
76
40
  _os = function() {
77
41
  return data;
78
42
  };
79
43
  return data;
80
44
  }
81
- const _ADBServer = require("./ADBServer");
82
- const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../../log"));
45
+ const _adbserver = require("./ADBServer");
46
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
83
47
  const _env = require("../../../utils/env");
84
48
  const _errors = require("../../../utils/errors");
85
49
  const _link = require("../../../utils/link");
86
- function _interop_require_default(obj) {
50
+ function _interopRequireDefault(obj) {
87
51
  return obj && obj.__esModule ? obj : {
88
52
  default: obj
89
53
  };
@@ -96,7 +60,7 @@ function _getRequireWildcardCache(nodeInterop) {
96
60
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
97
61
  })(nodeInterop);
98
62
  }
99
- function _interop_require_wildcard(obj, nodeInterop) {
63
+ function _interopRequireWildcard(obj, nodeInterop) {
100
64
  if (!nodeInterop && obj && obj.__esModule) {
101
65
  return obj;
102
66
  }
@@ -109,9 +73,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
109
73
  if (cache && cache.has(obj)) {
110
74
  return cache.get(obj);
111
75
  }
112
- var newObj = {
113
- __proto__: null
114
- };
76
+ var newObj = {};
115
77
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
116
78
  for(var key in obj){
117
79
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -129,13 +91,14 @@ function _interop_require_wildcard(obj, nodeInterop) {
129
91
  }
130
92
  return newObj;
131
93
  }
132
- const debug = require('debug')('expo:start:platforms:android:adb');
133
- var DeviceABI = /*#__PURE__*/ function(DeviceABI) {
134
- // The arch specific android target platforms are soft-deprecated.
94
+ const debug = require("debug")("expo:start:platforms:android:adb");
95
+ var DeviceABI;
96
+ (function(DeviceABI) {
97
+ DeviceABI[// The arch specific android target platforms are soft-deprecated.
135
98
  // Instead of using TargetPlatform as a combination arch + platform
136
99
  // the code will be updated to carry arch information in [DarwinArch]
137
100
  // and [AndroidArch].
138
- DeviceABI["arm"] = "arm";
101
+ "arm"] = "arm";
139
102
  DeviceABI["arm64"] = "arm64";
140
103
  DeviceABI["x64"] = "x64";
141
104
  DeviceABI["x86"] = "x86";
@@ -144,25 +107,24 @@ var DeviceABI = /*#__PURE__*/ function(DeviceABI) {
144
107
  DeviceABI["armeabiV7a"] = "armeabi-v7a";
145
108
  DeviceABI["armeabi"] = "armeabi";
146
109
  DeviceABI["universal"] = "universal";
147
- return DeviceABI;
148
- }({});
149
- const CANT_START_ACTIVITY_ERROR = 'Activity not started, unable to resolve Intent';
110
+ })(DeviceABI || (DeviceABI = {}));
111
+ const CANT_START_ACTIVITY_ERROR = "Activity not started, unable to resolve Intent";
150
112
  // http://developer.android.com/ndk/guides/abis.html
151
- const PROP_CPU_NAME = 'ro.product.cpu.abi';
152
- const PROP_CPU_ABI_LIST_NAME = 'ro.product.cpu.abilist';
113
+ const PROP_CPU_NAME = "ro.product.cpu.abi";
114
+ const PROP_CPU_ABI_LIST_NAME = "ro.product.cpu.abilist";
153
115
  // Can sometimes be null
154
116
  // http://developer.android.com/ndk/guides/abis.html
155
- const PROP_BOOT_ANIMATION_STATE = 'init.svc.bootanim';
117
+ const PROP_BOOT_ANIMATION_STATE = "init.svc.bootanim";
156
118
  let _server;
157
119
  function getServer() {
158
- _server ??= new _ADBServer.ADBServer();
120
+ _server ??= new _adbserver.ADBServer();
159
121
  return _server;
160
122
  }
161
123
  function logUnauthorized(device) {
162
- _log.warn(`\nThis computer is not authorized for developing on ${_chalk().default.bold(device.name)}. ${_chalk().default.dim((0, _link.learnMore)('https://expo.fyi/authorize-android-device'))}`);
124
+ _log.warn(`\nThis computer is not authorized for developing on ${_chalk().default.bold(device.name)}. ${_chalk().default.dim((0, _link.learnMore)("https://expo.fyi/authorize-android-device"))}`);
163
125
  }
164
126
  async function isPackageInstalledAsync(device, androidPackage) {
165
- const packages = await getServer().runAsync(adbArgs(device.pid, 'shell', 'pm', 'list', 'packages', '--user', _env.env.EXPO_ADB_USER, androidPackage));
127
+ const packages = await getServer().runAsync(adbArgs(device.pid, "shell", "pm", "list", "packages", "--user", _env.env.EXPO_ADB_USER, androidPackage));
166
128
  const lines = packages.split(/\r?\n/);
167
129
  for(let i = 0; i < lines.length; i++){
168
130
  const line = lines[i].trim();
@@ -172,60 +134,60 @@ async function isPackageInstalledAsync(device, androidPackage) {
172
134
  }
173
135
  return false;
174
136
  }
175
- async function launchActivityAsync(device, { launchActivity, url }) {
137
+ async function launchActivityAsync(device, { launchActivity , url }) {
176
138
  const args = [
177
- 'shell',
178
- 'am',
179
- 'start',
139
+ "shell",
140
+ "am",
141
+ "start",
180
142
  // FLAG_ACTIVITY_SINGLE_TOP -- If set, the activity will not be launched if it is already running at the top of the history stack.
181
- '-f',
182
- '0x20000000',
143
+ "-f",
144
+ "0x20000000",
183
145
  // Activity to open first: com.bacon.app/.MainActivity
184
- '-n',
185
- launchActivity
146
+ "-n",
147
+ launchActivity,
186
148
  ];
187
149
  if (url) {
188
- args.push('-d', url);
150
+ args.push("-d", url);
189
151
  }
190
152
  return openAsync(adbArgs(device.pid, ...args));
191
153
  }
192
- async function openAppIdAsync(device, { applicationId }) {
193
- return openAsync(adbArgs(device.pid, 'shell', 'monkey', '-p', applicationId, '-c', 'android.intent.category.LAUNCHER', '1'));
154
+ async function openAppIdAsync(device, { applicationId }) {
155
+ return openAsync(adbArgs(device.pid, "shell", "monkey", "-p", applicationId, "-c", "android.intent.category.LAUNCHER", "1"));
194
156
  }
195
- async function openUrlAsync(device, { url }) {
196
- return openAsync(adbArgs(device.pid, 'shell', 'am', 'start', '-a', 'android.intent.action.VIEW', '-d', // ADB requires ampersands to be escaped.
157
+ async function openUrlAsync(device, { url }) {
158
+ return openAsync(adbArgs(device.pid, "shell", "am", "start", "-a", "android.intent.action.VIEW", "-d", // ADB requires ampersands to be escaped.
197
159
  url.replace(/&/g, String.raw`\&`)));
198
160
  }
199
161
  /** Runs a generic command watches for common errors in order to throw with an expected code. */ async function openAsync(args) {
200
162
  const results = await getServer().runAsync(args);
201
163
  if (results.includes(CANT_START_ACTIVITY_ERROR) || results.match(/Error: Activity class .* does not exist\./g)) {
202
- throw new _errors.CommandError('APP_NOT_INSTALLED', results.substring(results.indexOf('Error: ')));
164
+ throw new _errors.CommandError("APP_NOT_INSTALLED", results.substring(results.indexOf("Error: ")));
203
165
  }
204
166
  return results;
205
167
  }
206
- async function uninstallAsync(device, { appId }) {
207
- return await getServer().runAsync(adbArgs(device.pid, 'uninstall', '--user', _env.env.EXPO_ADB_USER, appId));
168
+ async function uninstallAsync(device, { appId }) {
169
+ return await getServer().runAsync(adbArgs(device.pid, "uninstall", "--user", _env.env.EXPO_ADB_USER, appId));
208
170
  }
209
- async function getPackageInfoAsync(device, { appId }) {
210
- return await getServer().runAsync(adbArgs(device.pid, 'shell', 'dumpsys', 'package', appId));
171
+ async function getPackageInfoAsync(device, { appId }) {
172
+ return await getServer().runAsync(adbArgs(device.pid, "shell", "dumpsys", "package", appId));
211
173
  }
212
- async function installAsync(device, { filePath }) {
174
+ async function installAsync(device, { filePath }) {
213
175
  // TODO: Handle the `INSTALL_FAILED_INSUFFICIENT_STORAGE` error.
214
- return await getServer().runAsync(adbArgs(device.pid, 'install', '-r', '-d', '--user', _env.env.EXPO_ADB_USER, filePath));
176
+ return await getServer().runAsync(adbArgs(device.pid, "install", "-r", "-d", "--user", _env.env.EXPO_ADB_USER, filePath));
215
177
  }
216
178
  function adbArgs(pid, ...options) {
217
179
  const args = [];
218
180
  if (pid) {
219
- args.push('-s', pid);
181
+ args.push("-s", pid);
220
182
  }
221
183
  return args.concat(options);
222
184
  }
223
185
  async function getAttachedDevicesAsync() {
224
186
  const output = await getServer().runAsync([
225
- 'devices',
226
- '-l'
187
+ "devices",
188
+ "-l"
227
189
  ]);
228
- const splitItems = output.trim().replace(/\n$/, '').split(_os().default.EOL)// Filter ADB trace logs from the output, e.g.
190
+ const splitItems = output.trim().replace(/\n$/, "").split(_os().default.EOL)// Filter ADB trace logs from the output, e.g.
229
191
  // adb D 03-06 15:25:53 63677 4018815 adb_client.cpp:393] adb_query: host:devices-l
230
192
  // 03-04 12:29:44.557 16415 16415 D adb : commandline.cpp:1646 Using server socket: tcp:172.27.192.1:5037
231
193
  // 03-04 12:29:44.557 16415 16415 D adb : adb_client.cpp:160 _adb_connect: host:version
@@ -236,17 +198,17 @@ async function getAttachedDevicesAsync() {
236
198
  // unauthorized: ['FA8251A00719', 'unauthorized', 'usb:338690048X', 'transport_id:5']
237
199
  // authorized: ['FA8251A00719', 'device', 'usb:336592896X', 'product:walleye', 'model:Pixel_2', 'device:walleye', 'transport_id:4']
238
200
  // emulator: ['emulator-5554', 'offline', 'transport_id:1']
239
- const props = line.split(' ').filter(Boolean);
240
- const type = line.includes('emulator') ? 'emulator' : 'device';
201
+ const props = line.split(" ").filter(Boolean);
202
+ const type = line.includes("emulator") ? "emulator" : "device";
241
203
  let connectionType;
242
- if (type === 'device' && line.includes('usb:')) {
243
- connectionType = 'USB';
244
- } else if (type === 'device' && line.includes('_adb-tls-connect.')) {
245
- connectionType = 'Network';
204
+ if (type === "device" && line.includes("usb:")) {
205
+ connectionType = "USB";
206
+ } else if (type === "device" && line.includes("_adb-tls-connect.")) {
207
+ connectionType = "Network";
246
208
  }
247
- const isBooted = type === 'emulator' || props[1] !== 'offline';
248
- const isAuthorized = connectionType === 'Network' ? line.includes('model:') // Network connected devices show `model:<name>` when authorized
249
- : props[1] !== 'unauthorized';
209
+ const isBooted = type === "emulator" || props[1] !== "offline";
210
+ const isAuthorized = connectionType === "Network" ? line.includes("model:") // Network connected devices show `model:<name>` when authorized
211
+ : props[1] !== "unauthorized";
250
212
  return {
251
213
  props,
252
214
  type,
@@ -254,17 +216,17 @@ async function getAttachedDevicesAsync() {
254
216
  isBooted,
255
217
  connectionType
256
218
  };
257
- }).filter(({ props: [pid] })=>!!pid);
219
+ }).filter(({ props: [pid] })=>!!pid);
258
220
  const devicePromises = attachedDevices.map(async (props)=>{
259
- const { type, props: [pid, ...deviceInfo], isAuthorized, isBooted } = props;
221
+ const { type , props: [pid, ...deviceInfo] , isAuthorized , isBooted , } = props;
260
222
  let name = null;
261
- if (type === 'device') {
223
+ if (type === "device") {
262
224
  if (isAuthorized) {
263
225
  // Possibly formatted like `model:Pixel_2`
264
226
  // Transform to `Pixel_2`
265
- const modelItem = deviceInfo.find((info)=>info.includes('model:'));
227
+ const modelItem = deviceInfo.find((info)=>info.includes("model:"));
266
228
  if (modelItem) {
267
- name = modelItem.replace('model:', '');
229
+ name = modelItem.replace("model:", "");
268
230
  }
269
231
  }
270
232
  // unauthorized devices don't have a name available to read
@@ -276,7 +238,7 @@ async function getAttachedDevicesAsync() {
276
238
  // Given an emulator pid, get the emulator name which can be used to start the emulator later.
277
239
  name = await getAdbNameForDeviceIdAsync({
278
240
  pid
279
- }) ?? '';
241
+ }) ?? "";
280
242
  }
281
243
  return props.connectionType ? {
282
244
  pid,
@@ -296,14 +258,14 @@ async function getAttachedDevicesAsync() {
296
258
  return Promise.all(devicePromises);
297
259
  }
298
260
  async function getAdbNameForDeviceIdAsync(device) {
299
- const results = await getServer().runAsync(adbArgs(device.pid, 'emu', 'avd', 'name'));
261
+ const results = await getServer().runAsync(adbArgs(device.pid, "emu", "avd", "name"));
300
262
  if (results.match(/could not connect to TCP port .*: Connection refused/)) {
301
263
  // Can also occur when the emulator does not exist.
302
- throw new _errors.CommandError('EMULATOR_NOT_FOUND', results);
264
+ throw new _errors.CommandError("EMULATOR_NOT_FOUND", results);
303
265
  }
304
266
  return sanitizeAdbDeviceName(results) ?? null;
305
267
  }
306
- async function isDeviceBootedAsync({ name } = {}) {
268
+ async function isDeviceBootedAsync({ name } = {}) {
307
269
  const devices = await getAttachedDevicesAsync();
308
270
  if (!name) {
309
271
  return devices[0] ?? null;
@@ -323,7 +285,7 @@ async function isBootAnimationCompleteAsync(pid) {
323
285
  async function getDeviceABIsAsync(device) {
324
286
  const cpuAbiList = (await getPropertyDataForDeviceAsync(device, PROP_CPU_ABI_LIST_NAME))[PROP_CPU_ABI_LIST_NAME];
325
287
  if (cpuAbiList) {
326
- return cpuAbiList.trim().split(',');
288
+ return cpuAbiList.trim().split(",");
327
289
  }
328
290
  const abi = (await getPropertyDataForDeviceAsync(device, PROP_CPU_NAME))[PROP_CPU_NAME];
329
291
  return [
@@ -334,8 +296,8 @@ async function getPropertyDataForDeviceAsync(device, prop) {
334
296
  // @ts-ignore
335
297
  const propCommand = adbArgs(...[
336
298
  device.pid,
337
- 'shell',
338
- 'getprop',
299
+ "shell",
300
+ "getprop",
339
301
  prop
340
302
  ].filter(Boolean));
341
303
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/android/adb.ts"],"sourcesContent":["import chalk from 'chalk';\nimport os from 'os';\n\nimport { ADBServer } from './ADBServer';\nimport * as Log from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { learnMore } from '../../../utils/link';\n\nconst debug = require('debug')('expo:start:platforms:android:adb') as typeof console.log;\n\nexport enum DeviceABI {\n // The arch specific android target platforms are soft-deprecated.\n // Instead of using TargetPlatform as a combination arch + platform\n // the code will be updated to carry arch information in [DarwinArch]\n // and [AndroidArch].\n arm = 'arm',\n arm64 = 'arm64',\n x64 = 'x64',\n x86 = 'x86',\n x8664 = 'x86_64',\n arm64v8a = 'arm64-v8a',\n armeabiV7a = 'armeabi-v7a',\n armeabi = 'armeabi',\n universal = 'universal',\n}\n\n/** Represents a connected Android device. */\nexport type Device = {\n /** Process ID. */\n pid?: string;\n /** Name of the device, also used as the ID for opening devices. */\n name: string;\n /** Is emulator or connected device. */\n type: 'emulator' | 'device';\n /** Is the device booted (emulator). */\n isBooted: boolean;\n /** Is device authorized for developing. https://expo.fyi/authorize-android-device */\n isAuthorized: boolean;\n /** The connection type to ADB, only available when `type: device` */\n connectionType?: 'USB' | 'Network';\n};\n\ntype DeviceContext = Pick<Device, 'pid'>;\n\ntype DeviceProperties = Record<string, string>;\n\nconst CANT_START_ACTIVITY_ERROR = 'Activity not started, unable to resolve Intent';\n// http://developer.android.com/ndk/guides/abis.html\nconst PROP_CPU_NAME = 'ro.product.cpu.abi';\n\nconst PROP_CPU_ABI_LIST_NAME = 'ro.product.cpu.abilist';\n\n// Can sometimes be null\n// http://developer.android.com/ndk/guides/abis.html\nconst PROP_BOOT_ANIMATION_STATE = 'init.svc.bootanim';\n\nlet _server: ADBServer | null;\n\n/** Return the lazily loaded ADB server instance. */\nexport function getServer() {\n _server ??= new ADBServer();\n return _server;\n}\n\n/** Logs an FYI message about authorizing your device. */\nexport function logUnauthorized(device: Device) {\n Log.warn(\n `\\nThis computer is not authorized for developing on ${chalk.bold(device.name)}. ${chalk.dim(\n learnMore('https://expo.fyi/authorize-android-device')\n )}`\n );\n}\n\n/** Returns true if the provided package name is installed on the provided Android device. */\nexport async function isPackageInstalledAsync(\n device: DeviceContext,\n androidPackage: string\n): Promise<boolean> {\n const packages = await getServer().runAsync(\n adbArgs(\n device.pid,\n 'shell',\n 'pm',\n 'list',\n 'packages',\n '--user',\n env.EXPO_ADB_USER,\n androidPackage\n )\n );\n\n const lines = packages.split(/\\r?\\n/);\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n if (line === `package:${androidPackage}`) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param device.pid Process ID of the Android device to launch.\n * @param props.launchActivity Activity to launch `[application identifier]/.[main activity name]`, ex: `com.bacon.app/.MainActivity`\n * @param props.url Optional (dev client) URL to launch\n */\nexport async function launchActivityAsync(\n device: DeviceContext,\n {\n launchActivity,\n url,\n }: {\n launchActivity: string;\n url?: string;\n }\n) {\n const args: string[] = [\n 'shell',\n 'am',\n 'start',\n // FLAG_ACTIVITY_SINGLE_TOP -- If set, the activity will not be launched if it is already running at the top of the history stack.\n '-f',\n '0x20000000',\n // Activity to open first: com.bacon.app/.MainActivity\n '-n',\n launchActivity,\n ];\n\n if (url) {\n args.push('-d', url);\n }\n\n return openAsync(adbArgs(device.pid, ...args));\n}\n\n/**\n * @param device.pid Process ID of the Android device to launch.\n * @param props.applicationId package name to launch.\n */\nexport async function openAppIdAsync(\n device: DeviceContext,\n {\n applicationId,\n }: {\n applicationId: string;\n }\n) {\n return openAsync(\n adbArgs(\n device.pid,\n 'shell',\n 'monkey',\n '-p',\n applicationId,\n '-c',\n 'android.intent.category.LAUNCHER',\n '1'\n )\n );\n}\n\n/**\n * @param device.pid Process ID of the Android device to launch.\n * @param props.url URL to launch.\n */\nexport async function openUrlAsync(\n device: DeviceContext,\n {\n url,\n }: {\n url: string;\n }\n) {\n return openAsync(\n adbArgs(\n device.pid,\n 'shell',\n 'am',\n 'start',\n '-a',\n 'android.intent.action.VIEW',\n '-d',\n // ADB requires ampersands to be escaped.\n url.replace(/&/g, String.raw`\\&`)\n )\n );\n}\n\n/** Runs a generic command watches for common errors in order to throw with an expected code. */\nasync function openAsync(args: string[]): Promise<string> {\n const results = await getServer().runAsync(args);\n if (\n results.includes(CANT_START_ACTIVITY_ERROR) ||\n results.match(/Error: Activity class .* does not exist\\./g)\n ) {\n throw new CommandError('APP_NOT_INSTALLED', results.substring(results.indexOf('Error: ')));\n }\n return results;\n}\n\n/** Uninstall an app given its Android package name. */\nexport async function uninstallAsync(\n device: DeviceContext,\n { appId }: { appId: string }\n): Promise<string> {\n return await getServer().runAsync(\n adbArgs(device.pid, 'uninstall', '--user', env.EXPO_ADB_USER, appId)\n );\n}\n\n/** Get package info from an app based on its Android package name. */\nexport async function getPackageInfoAsync(\n device: DeviceContext,\n { appId }: { appId: string }\n): Promise<string> {\n return await getServer().runAsync(adbArgs(device.pid, 'shell', 'dumpsys', 'package', appId));\n}\n\n/** Install an app on a connected device. */\nexport async function installAsync(device: DeviceContext, { filePath }: { filePath: string }) {\n // TODO: Handle the `INSTALL_FAILED_INSUFFICIENT_STORAGE` error.\n return await getServer().runAsync(\n adbArgs(device.pid, 'install', '-r', '-d', '--user', env.EXPO_ADB_USER, filePath)\n );\n}\n\n/** Format ADB args with process ID. */\nexport function adbArgs(pid: Device['pid'], ...options: string[]): string[] {\n const args = [];\n if (pid) {\n args.push('-s', pid);\n }\n\n return args.concat(options);\n}\n\n// TODO: This is very expensive for some operations.\nexport async function getAttachedDevicesAsync(): Promise<Device[]> {\n const output = await getServer().runAsync(['devices', '-l']);\n\n const splitItems = output\n .trim()\n .replace(/\\n$/, '')\n .split(os.EOL)\n // Filter ADB trace logs from the output, e.g.\n // adb D 03-06 15:25:53 63677 4018815 adb_client.cpp:393] adb_query: host:devices-l\n // 03-04 12:29:44.557 16415 16415 D adb : commandline.cpp:1646 Using server socket: tcp:172.27.192.1:5037\n // 03-04 12:29:44.557 16415 16415 D adb : adb_client.cpp:160 _adb_connect: host:version\n .filter((line) => !line.match(/\\.cpp:[0-9]+/));\n\n // First line is `\"List of devices attached\"`, remove it\n // @ts-ignore: todo\n const attachedDevices: {\n props: string[];\n type: Device['type'];\n isAuthorized: Device['isAuthorized'];\n isBooted: Device['isBooted'];\n connectionType?: Device['connectionType'];\n }[] = splitItems\n .slice(1, splitItems.length)\n .map((line) => {\n // unauthorized: ['FA8251A00719', 'unauthorized', 'usb:338690048X', 'transport_id:5']\n // authorized: ['FA8251A00719', 'device', 'usb:336592896X', 'product:walleye', 'model:Pixel_2', 'device:walleye', 'transport_id:4']\n // emulator: ['emulator-5554', 'offline', 'transport_id:1']\n const props = line.split(' ').filter(Boolean);\n const type = line.includes('emulator') ? 'emulator' : 'device';\n\n let connectionType;\n if (type === 'device' && line.includes('usb:')) {\n connectionType = 'USB';\n } else if (type === 'device' && line.includes('_adb-tls-connect.')) {\n connectionType = 'Network';\n }\n\n const isBooted = type === 'emulator' || props[1] !== 'offline';\n const isAuthorized =\n connectionType === 'Network'\n ? line.includes('model:') // Network connected devices show `model:<name>` when authorized\n : props[1] !== 'unauthorized';\n\n return { props, type, isAuthorized, isBooted, connectionType };\n })\n .filter(({ props: [pid] }) => !!pid);\n\n const devicePromises = attachedDevices.map<Promise<Device>>(async (props) => {\n const {\n type,\n props: [pid, ...deviceInfo],\n isAuthorized,\n isBooted,\n } = props;\n\n let name: string | null = null;\n\n if (type === 'device') {\n if (isAuthorized) {\n // Possibly formatted like `model:Pixel_2`\n // Transform to `Pixel_2`\n const modelItem = deviceInfo.find((info) => info.includes('model:'));\n if (modelItem) {\n name = modelItem.replace('model:', '');\n }\n }\n // unauthorized devices don't have a name available to read\n if (!name) {\n // Device FA8251A00719\n name = `Device ${pid}`;\n }\n } else {\n // Given an emulator pid, get the emulator name which can be used to start the emulator later.\n name = (await getAdbNameForDeviceIdAsync({ pid })) ?? '';\n }\n\n return props.connectionType\n ? { pid, name, type, isAuthorized, isBooted, connectionType: props.connectionType }\n : { pid, name, type, isAuthorized, isBooted };\n });\n\n return Promise.all(devicePromises);\n}\n\n/**\n * Return the Emulator name for an emulator ID, this can be used to determine if an emulator is booted.\n *\n * @param device.pid a value like `emulator-5554` from `abd devices`\n */\nexport async function getAdbNameForDeviceIdAsync(device: DeviceContext): Promise<string | null> {\n const results = await getServer().runAsync(adbArgs(device.pid, 'emu', 'avd', 'name'));\n\n if (results.match(/could not connect to TCP port .*: Connection refused/)) {\n // Can also occur when the emulator does not exist.\n throw new CommandError('EMULATOR_NOT_FOUND', results);\n }\n\n return sanitizeAdbDeviceName(results) ?? null;\n}\n\nexport async function isDeviceBootedAsync({\n name,\n}: { name?: string } = {}): Promise<Device | null> {\n const devices = await getAttachedDevicesAsync();\n\n if (!name) {\n return devices[0] ?? null;\n }\n\n return devices.find((device) => device.name === name) ?? null;\n}\n\n/**\n * Returns true when a device's splash screen animation has stopped.\n * This can be used to detect when a device is fully booted and ready to use.\n *\n * @param pid\n */\nexport async function isBootAnimationCompleteAsync(pid?: string): Promise<boolean> {\n try {\n const props = await getPropertyDataForDeviceAsync({ pid }, PROP_BOOT_ANIMATION_STATE);\n return !!props[PROP_BOOT_ANIMATION_STATE].match(/stopped/);\n } catch {\n return false;\n }\n}\n\n/** Get a list of ABIs for the provided device. */\nexport async function getDeviceABIsAsync(\n device: Pick<Device, 'name' | 'pid'>\n): Promise<DeviceABI[]> {\n const cpuAbiList = (await getPropertyDataForDeviceAsync(device, PROP_CPU_ABI_LIST_NAME))[\n PROP_CPU_ABI_LIST_NAME\n ];\n\n if (cpuAbiList) {\n return cpuAbiList.trim().split(',') as DeviceABI[];\n }\n\n const abi = (await getPropertyDataForDeviceAsync(device, PROP_CPU_NAME))[\n PROP_CPU_NAME\n ] as DeviceABI;\n return [abi];\n}\n\nexport async function getPropertyDataForDeviceAsync(\n device: DeviceContext,\n prop?: string\n): Promise<DeviceProperties> {\n // @ts-ignore\n const propCommand = adbArgs(...[device.pid, 'shell', 'getprop', prop].filter(Boolean));\n try {\n // Prevent reading as UTF8.\n const results = await getServer().getFileOutputAsync(propCommand);\n // Like:\n // [wifi.direct.interface]: [p2p-dev-wlan0]\n // [wifi.interface]: [wlan0]\n\n if (prop) {\n debug(`Property data: (device pid: ${device.pid}, prop: ${prop}, data: ${results})`);\n return {\n [prop]: results,\n };\n }\n const props = parseAdbDeviceProperties(results);\n\n debug(`Parsed data:`, props);\n\n return props;\n } catch (error: any) {\n // TODO: Ensure error has message and not stderr\n throw new CommandError(`Failed to get properties for device (${device.pid}): ${error.message}`);\n }\n}\n\nfunction parseAdbDeviceProperties(devicePropertiesString: string) {\n const properties: DeviceProperties = {};\n const propertyExp = /\\[(.*?)\\]: \\[(.*?)\\]/gm;\n for (const match of devicePropertiesString.matchAll(propertyExp)) {\n properties[match[1]] = match[2];\n }\n return properties;\n}\n\n/**\n * Sanitize the ADB device name to only get the actual device name.\n * On Windows, we need to do \\r, \\n, and \\r\\n filtering to get the name.\n */\nexport function sanitizeAdbDeviceName(deviceName: string) {\n return deviceName\n .trim()\n .split(/[\\r\\n]+/)\n .shift();\n}\n"],"names":["DeviceABI","adbArgs","getAdbNameForDeviceIdAsync","getAttachedDevicesAsync","getDeviceABIsAsync","getPackageInfoAsync","getPropertyDataForDeviceAsync","getServer","installAsync","isBootAnimationCompleteAsync","isDeviceBootedAsync","isPackageInstalledAsync","launchActivityAsync","logUnauthorized","openAppIdAsync","openUrlAsync","sanitizeAdbDeviceName","uninstallAsync","debug","require","CANT_START_ACTIVITY_ERROR","PROP_CPU_NAME","PROP_CPU_ABI_LIST_NAME","PROP_BOOT_ANIMATION_STATE","_server","ADBServer","device","Log","warn","chalk","bold","name","dim","learnMore","androidPackage","packages","runAsync","pid","env","EXPO_ADB_USER","lines","split","i","length","line","trim","launchActivity","url","args","push","openAsync","applicationId","replace","String","raw","results","includes","match","CommandError","substring","indexOf","appId","filePath","options","concat","output","splitItems","os","EOL","filter","attachedDevices","slice","map","props","Boolean","type","connectionType","isBooted","isAuthorized","devicePromises","deviceInfo","modelItem","find","info","Promise","all","devices","cpuAbiList","abi","prop","propCommand","getFileOutputAsync","parseAdbDeviceProperties","error","message","devicePropertiesString","properties","propertyExp","matchAll","deviceName","shift"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/android/adb.ts"],"sourcesContent":["import chalk from 'chalk';\nimport os from 'os';\n\nimport { ADBServer } from './ADBServer';\nimport * as Log from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { learnMore } from '../../../utils/link';\n\nconst debug = require('debug')('expo:start:platforms:android:adb') as typeof console.log;\n\nexport enum DeviceABI {\n // The arch specific android target platforms are soft-deprecated.\n // Instead of using TargetPlatform as a combination arch + platform\n // the code will be updated to carry arch information in [DarwinArch]\n // and [AndroidArch].\n arm = 'arm',\n arm64 = 'arm64',\n x64 = 'x64',\n x86 = 'x86',\n x8664 = 'x86_64',\n arm64v8a = 'arm64-v8a',\n armeabiV7a = 'armeabi-v7a',\n armeabi = 'armeabi',\n universal = 'universal',\n}\n\n/** Represents a connected Android device. */\nexport type Device = {\n /** Process ID. */\n pid?: string;\n /** Name of the device, also used as the ID for opening devices. */\n name: string;\n /** Is emulator or connected device. */\n type: 'emulator' | 'device';\n /** Is the device booted (emulator). */\n isBooted: boolean;\n /** Is device authorized for developing. https://expo.fyi/authorize-android-device */\n isAuthorized: boolean;\n /** The connection type to ADB, only available when `type: device` */\n connectionType?: 'USB' | 'Network';\n};\n\ntype DeviceContext = Pick<Device, 'pid'>;\n\ntype DeviceProperties = Record<string, string>;\n\nconst CANT_START_ACTIVITY_ERROR = 'Activity not started, unable to resolve Intent';\n// http://developer.android.com/ndk/guides/abis.html\nconst PROP_CPU_NAME = 'ro.product.cpu.abi';\n\nconst PROP_CPU_ABI_LIST_NAME = 'ro.product.cpu.abilist';\n\n// Can sometimes be null\n// http://developer.android.com/ndk/guides/abis.html\nconst PROP_BOOT_ANIMATION_STATE = 'init.svc.bootanim';\n\nlet _server: ADBServer | null;\n\n/** Return the lazily loaded ADB server instance. */\nexport function getServer() {\n _server ??= new ADBServer();\n return _server;\n}\n\n/** Logs an FYI message about authorizing your device. */\nexport function logUnauthorized(device: Device) {\n Log.warn(\n `\\nThis computer is not authorized for developing on ${chalk.bold(device.name)}. ${chalk.dim(\n learnMore('https://expo.fyi/authorize-android-device')\n )}`\n );\n}\n\n/** Returns true if the provided package name is installed on the provided Android device. */\nexport async function isPackageInstalledAsync(\n device: DeviceContext,\n androidPackage: string\n): Promise<boolean> {\n const packages = await getServer().runAsync(\n adbArgs(\n device.pid,\n 'shell',\n 'pm',\n 'list',\n 'packages',\n '--user',\n env.EXPO_ADB_USER,\n androidPackage\n )\n );\n\n const lines = packages.split(/\\r?\\n/);\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n if (line === `package:${androidPackage}`) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param device.pid Process ID of the Android device to launch.\n * @param props.launchActivity Activity to launch `[application identifier]/.[main activity name]`, ex: `com.bacon.app/.MainActivity`\n * @param props.url Optional (dev client) URL to launch\n */\nexport async function launchActivityAsync(\n device: DeviceContext,\n {\n launchActivity,\n url,\n }: {\n launchActivity: string;\n url?: string;\n }\n) {\n const args: string[] = [\n 'shell',\n 'am',\n 'start',\n // FLAG_ACTIVITY_SINGLE_TOP -- If set, the activity will not be launched if it is already running at the top of the history stack.\n '-f',\n '0x20000000',\n // Activity to open first: com.bacon.app/.MainActivity\n '-n',\n launchActivity,\n ];\n\n if (url) {\n args.push('-d', url);\n }\n\n return openAsync(adbArgs(device.pid, ...args));\n}\n\n/**\n * @param device.pid Process ID of the Android device to launch.\n * @param props.applicationId package name to launch.\n */\nexport async function openAppIdAsync(\n device: DeviceContext,\n {\n applicationId,\n }: {\n applicationId: string;\n }\n) {\n return openAsync(\n adbArgs(\n device.pid,\n 'shell',\n 'monkey',\n '-p',\n applicationId,\n '-c',\n 'android.intent.category.LAUNCHER',\n '1'\n )\n );\n}\n\n/**\n * @param device.pid Process ID of the Android device to launch.\n * @param props.url URL to launch.\n */\nexport async function openUrlAsync(\n device: DeviceContext,\n {\n url,\n }: {\n url: string;\n }\n) {\n return openAsync(\n adbArgs(\n device.pid,\n 'shell',\n 'am',\n 'start',\n '-a',\n 'android.intent.action.VIEW',\n '-d',\n // ADB requires ampersands to be escaped.\n url.replace(/&/g, String.raw`\\&`)\n )\n );\n}\n\n/** Runs a generic command watches for common errors in order to throw with an expected code. */\nasync function openAsync(args: string[]): Promise<string> {\n const results = await getServer().runAsync(args);\n if (\n results.includes(CANT_START_ACTIVITY_ERROR) ||\n results.match(/Error: Activity class .* does not exist\\./g)\n ) {\n throw new CommandError('APP_NOT_INSTALLED', results.substring(results.indexOf('Error: ')));\n }\n return results;\n}\n\n/** Uninstall an app given its Android package name. */\nexport async function uninstallAsync(\n device: DeviceContext,\n { appId }: { appId: string }\n): Promise<string> {\n return await getServer().runAsync(\n adbArgs(device.pid, 'uninstall', '--user', env.EXPO_ADB_USER, appId)\n );\n}\n\n/** Get package info from an app based on its Android package name. */\nexport async function getPackageInfoAsync(\n device: DeviceContext,\n { appId }: { appId: string }\n): Promise<string> {\n return await getServer().runAsync(adbArgs(device.pid, 'shell', 'dumpsys', 'package', appId));\n}\n\n/** Install an app on a connected device. */\nexport async function installAsync(device: DeviceContext, { filePath }: { filePath: string }) {\n // TODO: Handle the `INSTALL_FAILED_INSUFFICIENT_STORAGE` error.\n return await getServer().runAsync(\n adbArgs(device.pid, 'install', '-r', '-d', '--user', env.EXPO_ADB_USER, filePath)\n );\n}\n\n/** Format ADB args with process ID. */\nexport function adbArgs(pid: Device['pid'], ...options: string[]): string[] {\n const args = [];\n if (pid) {\n args.push('-s', pid);\n }\n\n return args.concat(options);\n}\n\n// TODO: This is very expensive for some operations.\nexport async function getAttachedDevicesAsync(): Promise<Device[]> {\n const output = await getServer().runAsync(['devices', '-l']);\n\n const splitItems = output\n .trim()\n .replace(/\\n$/, '')\n .split(os.EOL)\n // Filter ADB trace logs from the output, e.g.\n // adb D 03-06 15:25:53 63677 4018815 adb_client.cpp:393] adb_query: host:devices-l\n // 03-04 12:29:44.557 16415 16415 D adb : commandline.cpp:1646 Using server socket: tcp:172.27.192.1:5037\n // 03-04 12:29:44.557 16415 16415 D adb : adb_client.cpp:160 _adb_connect: host:version\n .filter((line) => !line.match(/\\.cpp:[0-9]+/));\n\n // First line is `\"List of devices attached\"`, remove it\n // @ts-ignore: todo\n const attachedDevices: {\n props: string[];\n type: Device['type'];\n isAuthorized: Device['isAuthorized'];\n isBooted: Device['isBooted'];\n connectionType?: Device['connectionType'];\n }[] = splitItems\n .slice(1, splitItems.length)\n .map((line) => {\n // unauthorized: ['FA8251A00719', 'unauthorized', 'usb:338690048X', 'transport_id:5']\n // authorized: ['FA8251A00719', 'device', 'usb:336592896X', 'product:walleye', 'model:Pixel_2', 'device:walleye', 'transport_id:4']\n // emulator: ['emulator-5554', 'offline', 'transport_id:1']\n const props = line.split(' ').filter(Boolean);\n const type = line.includes('emulator') ? 'emulator' : 'device';\n\n let connectionType;\n if (type === 'device' && line.includes('usb:')) {\n connectionType = 'USB';\n } else if (type === 'device' && line.includes('_adb-tls-connect.')) {\n connectionType = 'Network';\n }\n\n const isBooted = type === 'emulator' || props[1] !== 'offline';\n const isAuthorized =\n connectionType === 'Network'\n ? line.includes('model:') // Network connected devices show `model:<name>` when authorized\n : props[1] !== 'unauthorized';\n\n return { props, type, isAuthorized, isBooted, connectionType };\n })\n .filter(({ props: [pid] }) => !!pid);\n\n const devicePromises = attachedDevices.map<Promise<Device>>(async (props) => {\n const {\n type,\n props: [pid, ...deviceInfo],\n isAuthorized,\n isBooted,\n } = props;\n\n let name: string | null = null;\n\n if (type === 'device') {\n if (isAuthorized) {\n // Possibly formatted like `model:Pixel_2`\n // Transform to `Pixel_2`\n const modelItem = deviceInfo.find((info) => info.includes('model:'));\n if (modelItem) {\n name = modelItem.replace('model:', '');\n }\n }\n // unauthorized devices don't have a name available to read\n if (!name) {\n // Device FA8251A00719\n name = `Device ${pid}`;\n }\n } else {\n // Given an emulator pid, get the emulator name which can be used to start the emulator later.\n name = (await getAdbNameForDeviceIdAsync({ pid })) ?? '';\n }\n\n return props.connectionType\n ? { pid, name, type, isAuthorized, isBooted, connectionType: props.connectionType }\n : { pid, name, type, isAuthorized, isBooted };\n });\n\n return Promise.all(devicePromises);\n}\n\n/**\n * Return the Emulator name for an emulator ID, this can be used to determine if an emulator is booted.\n *\n * @param device.pid a value like `emulator-5554` from `abd devices`\n */\nexport async function getAdbNameForDeviceIdAsync(device: DeviceContext): Promise<string | null> {\n const results = await getServer().runAsync(adbArgs(device.pid, 'emu', 'avd', 'name'));\n\n if (results.match(/could not connect to TCP port .*: Connection refused/)) {\n // Can also occur when the emulator does not exist.\n throw new CommandError('EMULATOR_NOT_FOUND', results);\n }\n\n return sanitizeAdbDeviceName(results) ?? null;\n}\n\nexport async function isDeviceBootedAsync({\n name,\n}: { name?: string } = {}): Promise<Device | null> {\n const devices = await getAttachedDevicesAsync();\n\n if (!name) {\n return devices[0] ?? null;\n }\n\n return devices.find((device) => device.name === name) ?? null;\n}\n\n/**\n * Returns true when a device's splash screen animation has stopped.\n * This can be used to detect when a device is fully booted and ready to use.\n *\n * @param pid\n */\nexport async function isBootAnimationCompleteAsync(pid?: string): Promise<boolean> {\n try {\n const props = await getPropertyDataForDeviceAsync({ pid }, PROP_BOOT_ANIMATION_STATE);\n return !!props[PROP_BOOT_ANIMATION_STATE].match(/stopped/);\n } catch {\n return false;\n }\n}\n\n/** Get a list of ABIs for the provided device. */\nexport async function getDeviceABIsAsync(\n device: Pick<Device, 'name' | 'pid'>\n): Promise<DeviceABI[]> {\n const cpuAbiList = (await getPropertyDataForDeviceAsync(device, PROP_CPU_ABI_LIST_NAME))[\n PROP_CPU_ABI_LIST_NAME\n ];\n\n if (cpuAbiList) {\n return cpuAbiList.trim().split(',') as DeviceABI[];\n }\n\n const abi = (await getPropertyDataForDeviceAsync(device, PROP_CPU_NAME))[\n PROP_CPU_NAME\n ] as DeviceABI;\n return [abi];\n}\n\nexport async function getPropertyDataForDeviceAsync(\n device: DeviceContext,\n prop?: string\n): Promise<DeviceProperties> {\n // @ts-ignore\n const propCommand = adbArgs(...[device.pid, 'shell', 'getprop', prop].filter(Boolean));\n try {\n // Prevent reading as UTF8.\n const results = await getServer().getFileOutputAsync(propCommand);\n // Like:\n // [wifi.direct.interface]: [p2p-dev-wlan0]\n // [wifi.interface]: [wlan0]\n\n if (prop) {\n debug(`Property data: (device pid: ${device.pid}, prop: ${prop}, data: ${results})`);\n return {\n [prop]: results,\n };\n }\n const props = parseAdbDeviceProperties(results);\n\n debug(`Parsed data:`, props);\n\n return props;\n } catch (error: any) {\n // TODO: Ensure error has message and not stderr\n throw new CommandError(`Failed to get properties for device (${device.pid}): ${error.message}`);\n }\n}\n\nfunction parseAdbDeviceProperties(devicePropertiesString: string) {\n const properties: DeviceProperties = {};\n const propertyExp = /\\[(.*?)\\]: \\[(.*?)\\]/gm;\n for (const match of devicePropertiesString.matchAll(propertyExp)) {\n properties[match[1]] = match[2];\n }\n return properties;\n}\n\n/**\n * Sanitize the ADB device name to only get the actual device name.\n * On Windows, we need to do \\r, \\n, and \\r\\n filtering to get the name.\n */\nexport function sanitizeAdbDeviceName(deviceName: string) {\n return deviceName\n .trim()\n .split(/[\\r\\n]+/)\n .shift();\n}\n"],"names":["getServer","logUnauthorized","isPackageInstalledAsync","launchActivityAsync","openAppIdAsync","openUrlAsync","uninstallAsync","getPackageInfoAsync","installAsync","adbArgs","getAttachedDevicesAsync","getAdbNameForDeviceIdAsync","isDeviceBootedAsync","isBootAnimationCompleteAsync","getDeviceABIsAsync","getPropertyDataForDeviceAsync","sanitizeAdbDeviceName","debug","require","DeviceABI","arm","arm64","x64","x86","x8664","arm64v8a","armeabiV7a","armeabi","universal","CANT_START_ACTIVITY_ERROR","PROP_CPU_NAME","PROP_CPU_ABI_LIST_NAME","PROP_BOOT_ANIMATION_STATE","_server","ADBServer","device","Log","warn","chalk","bold","name","dim","learnMore","androidPackage","packages","runAsync","pid","env","EXPO_ADB_USER","lines","split","i","length","line","trim","launchActivity","url","args","push","openAsync","applicationId","replace","String","raw","results","includes","match","CommandError","substring","indexOf","appId","filePath","options","concat","output","splitItems","os","EOL","filter","attachedDevices","slice","map","props","Boolean","type","connectionType","isBooted","isAuthorized","devicePromises","deviceInfo","modelItem","find","info","Promise","all","devices","cpuAbiList","abi","prop","propCommand","getFileOutputAsync","parseAdbDeviceProperties","error","message","devicePropertiesString","properties","propertyExp","matchAll","deviceName","shift"],"mappings":"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"}
@@ -9,19 +9,13 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- hasAdbReverseAsync: function() {
13
- return hasAdbReverseAsync;
14
- },
15
- startAdbReverseAsync: function() {
16
- return startAdbReverseAsync;
17
- },
18
- stopAdbReverseAsync: function() {
19
- return stopAdbReverseAsync;
20
- }
12
+ hasAdbReverseAsync: ()=>hasAdbReverseAsync,
13
+ startAdbReverseAsync: ()=>startAdbReverseAsync,
14
+ stopAdbReverseAsync: ()=>stopAdbReverseAsync
21
15
  });
22
- const _AndroidSdk = require("./AndroidSdk");
16
+ const _androidSdk = require("./AndroidSdk");
23
17
  const _adb = require("./adb");
24
- const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../../log"));
18
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
25
19
  const _exit = require("../../../utils/exit");
26
20
  function _getRequireWildcardCache(nodeInterop) {
27
21
  if (typeof WeakMap !== "function") return null;
@@ -31,7 +25,7 @@ function _getRequireWildcardCache(nodeInterop) {
31
25
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
32
26
  })(nodeInterop);
33
27
  }
34
- function _interop_require_wildcard(obj, nodeInterop) {
28
+ function _interopRequireWildcard(obj, nodeInterop) {
35
29
  if (!nodeInterop && obj && obj.__esModule) {
36
30
  return obj;
37
31
  }
@@ -44,9 +38,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
44
38
  if (cache && cache.has(obj)) {
45
39
  return cache.get(obj);
46
40
  }
47
- var newObj = {
48
- __proto__: null
49
- };
41
+ var newObj = {};
50
42
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
51
43
  for(var key in obj){
52
44
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -64,13 +56,13 @@ function _interop_require_wildcard(obj, nodeInterop) {
64
56
  }
65
57
  return newObj;
66
58
  }
67
- const debug = require('debug')('expo:start:platforms:android:adbReverse');
59
+ const debug = require("debug")("expo:start:platforms:android:adbReverse");
68
60
  let removeExitHook = null;
69
61
  function hasAdbReverseAsync() {
70
62
  try {
71
- return !!(0, _AndroidSdk.assertSdkRoot)();
63
+ return !!(0, _androidSdk.assertSdkRoot)();
72
64
  } catch (error) {
73
- debug('Failed to resolve the Android SDK path, skipping ADB: %s', error.message);
65
+ debug("Failed to resolve the Android SDK path, skipping ADB: %s", error.message);
74
66
  return false;
75
67
  }
76
68
  }
@@ -105,7 +97,7 @@ async function adbReverseAsync(device, port) {
105
97
  return false;
106
98
  }
107
99
  try {
108
- await (0, _adb.getServer)().runAsync((0, _adb.adbArgs)(device.pid, 'reverse', `tcp:${port}`, `tcp:${port}`));
100
+ await (0, _adb.getServer)().runAsync((0, _adb.adbArgs)(device.pid, "reverse", `tcp:${port}`, `tcp:${port}`));
109
101
  return true;
110
102
  } catch (error) {
111
103
  _log.warn(`[ADB] Couldn't reverse port ${port}: ${error.message}`);
@@ -117,7 +109,7 @@ async function adbReverseRemoveAsync(device, port) {
117
109
  return false;
118
110
  }
119
111
  try {
120
- await (0, _adb.getServer)().runAsync((0, _adb.adbArgs)(device.pid, 'reverse', '--remove', `tcp:${port}`));
112
+ await (0, _adb.getServer)().runAsync((0, _adb.adbArgs)(device.pid, "reverse", "--remove", `tcp:${port}`));
121
113
  return true;
122
114
  } catch (error) {
123
115
  // Don't send this to warn because we call this preemptively sometimes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/android/adbReverse.ts"],"sourcesContent":["import { assertSdkRoot } from './AndroidSdk';\nimport { adbArgs, Device, getAttachedDevicesAsync, getServer, logUnauthorized } from './adb';\nimport * as Log from '../../../log';\nimport { installExitHooks } from '../../../utils/exit';\n\nconst debug = require('debug')('expo:start:platforms:android:adbReverse') as typeof console.log;\n\nlet removeExitHook: (() => void) | null = null;\n\nexport function hasAdbReverseAsync(): boolean {\n try {\n return !!assertSdkRoot();\n } catch (error: any) {\n debug('Failed to resolve the Android SDK path, skipping ADB: %s', error.message);\n return false;\n }\n}\n\nexport async function startAdbReverseAsync(ports: number[]): Promise<boolean> {\n // Install cleanup automatically...\n removeExitHook = installExitHooks(() => {\n stopAdbReverseAsync(ports);\n });\n\n const devices = await getAttachedDevicesAsync();\n for (const device of devices) {\n for (const port of ports) {\n if (!(await adbReverseAsync(device, port))) {\n debug(`Failed to start reverse port ${port} on device \"${device.name}\"`);\n return false;\n }\n }\n }\n return true;\n}\n\nexport async function stopAdbReverseAsync(ports: number[]): Promise<void> {\n removeExitHook?.();\n\n const devices = await getAttachedDevicesAsync();\n for (const device of devices) {\n for (const port of ports) {\n await adbReverseRemoveAsync(device, port);\n }\n }\n}\n\nasync function adbReverseAsync(device: Device, port: number): Promise<boolean> {\n if (!device.isAuthorized) {\n logUnauthorized(device);\n return false;\n }\n\n try {\n await getServer().runAsync(adbArgs(device.pid, 'reverse', `tcp:${port}`, `tcp:${port}`));\n return true;\n } catch (error: any) {\n Log.warn(`[ADB] Couldn't reverse port ${port}: ${error.message}`);\n return false;\n }\n}\n\nasync function adbReverseRemoveAsync(device: Device, port: number): Promise<boolean> {\n if (!device.isAuthorized) {\n return false;\n }\n\n try {\n await getServer().runAsync(adbArgs(device.pid, 'reverse', '--remove', `tcp:${port}`));\n return true;\n } catch (error: any) {\n // Don't send this to warn because we call this preemptively sometimes\n debug(`Could not unforward port ${port}: ${error.message}`);\n return false;\n }\n}\n"],"names":["hasAdbReverseAsync","startAdbReverseAsync","stopAdbReverseAsync","debug","require","removeExitHook","assertSdkRoot","error","message","ports","installExitHooks","devices","getAttachedDevicesAsync","device","port","adbReverseAsync","name","adbReverseRemoveAsync","isAuthorized","logUnauthorized","getServer","runAsync","adbArgs","pid","Log","warn"],"mappings":";;;;;;;;;;;IASgBA,kBAAkB;eAAlBA;;IASMC,oBAAoB;eAApBA;;IAkBAC,mBAAmB;eAAnBA;;;4BApCQ;qBACuD;6DAChE;sBACY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjC,MAAMC,QAAQC,QAAQ,SAAS;AAE/B,IAAIC,iBAAsC;AAEnC,SAASL;IACd,IAAI;QACF,OAAO,CAAC,CAACM,IAAAA,yBAAa;IACxB,EAAE,OAAOC,OAAY;QACnBJ,MAAM,4DAA4DI,MAAMC,OAAO;QAC/E,OAAO;IACT;AACF;AAEO,eAAeP,qBAAqBQ,KAAe;IACxD,mCAAmC;IACnCJ,iBAAiBK,IAAAA,sBAAgB,EAAC;QAChCR,oBAAoBO;IACtB;IAEA,MAAME,UAAU,MAAMC,IAAAA,4BAAuB;IAC7C,KAAK,MAAMC,UAAUF,QAAS;QAC5B,KAAK,MAAMG,QAAQL,MAAO;YACxB,IAAI,CAAE,MAAMM,gBAAgBF,QAAQC,OAAQ;gBAC1CX,MAAM,CAAC,6BAA6B,EAAEW,KAAK,YAAY,EAAED,OAAOG,IAAI,CAAC,CAAC,CAAC;gBACvE,OAAO;YACT;QACF;IACF;IACA,OAAO;AACT;AAEO,eAAed,oBAAoBO,KAAe;IACvDJ,kCAAAA;IAEA,MAAMM,UAAU,MAAMC,IAAAA,4BAAuB;IAC7C,KAAK,MAAMC,UAAUF,QAAS;QAC5B,KAAK,MAAMG,QAAQL,MAAO;YACxB,MAAMQ,sBAAsBJ,QAAQC;QACtC;IACF;AACF;AAEA,eAAeC,gBAAgBF,MAAc,EAAEC,IAAY;IACzD,IAAI,CAACD,OAAOK,YAAY,EAAE;QACxBC,IAAAA,oBAAe,EAACN;QAChB,OAAO;IACT;IAEA,IAAI;QACF,MAAMO,IAAAA,cAAS,IAAGC,QAAQ,CAACC,IAAAA,YAAO,EAACT,OAAOU,GAAG,EAAE,WAAW,CAAC,IAAI,EAAET,MAAM,EAAE,CAAC,IAAI,EAAEA,MAAM;QACtF,OAAO;IACT,EAAE,OAAOP,OAAY;QACnBiB,KAAIC,IAAI,CAAC,CAAC,4BAA4B,EAAEX,KAAK,EAAE,EAAEP,MAAMC,OAAO,EAAE;QAChE,OAAO;IACT;AACF;AAEA,eAAeS,sBAAsBJ,MAAc,EAAEC,IAAY;IAC/D,IAAI,CAACD,OAAOK,YAAY,EAAE;QACxB,OAAO;IACT;IAEA,IAAI;QACF,MAAME,IAAAA,cAAS,IAAGC,QAAQ,CAACC,IAAAA,YAAO,EAACT,OAAOU,GAAG,EAAE,WAAW,YAAY,CAAC,IAAI,EAAET,MAAM;QACnF,OAAO;IACT,EAAE,OAAOP,OAAY;QACnB,sEAAsE;QACtEJ,MAAM,CAAC,yBAAyB,EAAEW,KAAK,EAAE,EAAEP,MAAMC,OAAO,EAAE;QAC1D,OAAO;IACT;AACF"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/android/adbReverse.ts"],"sourcesContent":["import { assertSdkRoot } from './AndroidSdk';\nimport { adbArgs, Device, getAttachedDevicesAsync, getServer, logUnauthorized } from './adb';\nimport * as Log from '../../../log';\nimport { installExitHooks } from '../../../utils/exit';\n\nconst debug = require('debug')('expo:start:platforms:android:adbReverse') as typeof console.log;\n\nlet removeExitHook: (() => void) | null = null;\n\nexport function hasAdbReverseAsync(): boolean {\n try {\n return !!assertSdkRoot();\n } catch (error: any) {\n debug('Failed to resolve the Android SDK path, skipping ADB: %s', error.message);\n return false;\n }\n}\n\nexport async function startAdbReverseAsync(ports: number[]): Promise<boolean> {\n // Install cleanup automatically...\n removeExitHook = installExitHooks(() => {\n stopAdbReverseAsync(ports);\n });\n\n const devices = await getAttachedDevicesAsync();\n for (const device of devices) {\n for (const port of ports) {\n if (!(await adbReverseAsync(device, port))) {\n debug(`Failed to start reverse port ${port} on device \"${device.name}\"`);\n return false;\n }\n }\n }\n return true;\n}\n\nexport async function stopAdbReverseAsync(ports: number[]): Promise<void> {\n removeExitHook?.();\n\n const devices = await getAttachedDevicesAsync();\n for (const device of devices) {\n for (const port of ports) {\n await adbReverseRemoveAsync(device, port);\n }\n }\n}\n\nasync function adbReverseAsync(device: Device, port: number): Promise<boolean> {\n if (!device.isAuthorized) {\n logUnauthorized(device);\n return false;\n }\n\n try {\n await getServer().runAsync(adbArgs(device.pid, 'reverse', `tcp:${port}`, `tcp:${port}`));\n return true;\n } catch (error: any) {\n Log.warn(`[ADB] Couldn't reverse port ${port}: ${error.message}`);\n return false;\n }\n}\n\nasync function adbReverseRemoveAsync(device: Device, port: number): Promise<boolean> {\n if (!device.isAuthorized) {\n return false;\n }\n\n try {\n await getServer().runAsync(adbArgs(device.pid, 'reverse', '--remove', `tcp:${port}`));\n return true;\n } catch (error: any) {\n // Don't send this to warn because we call this preemptively sometimes\n debug(`Could not unforward port ${port}: ${error.message}`);\n return false;\n }\n}\n"],"names":["hasAdbReverseAsync","startAdbReverseAsync","stopAdbReverseAsync","debug","require","removeExitHook","assertSdkRoot","error","message","ports","installExitHooks","devices","getAttachedDevicesAsync","device","port","adbReverseAsync","name","adbReverseRemoveAsync","isAuthorized","logUnauthorized","getServer","runAsync","adbArgs","pid","Log","warn"],"mappings":"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"}