@expo/cli 0.18.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/build/bin/cli +90 -114
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/endpoint.js +11 -3
  4. package/build/src/api/endpoint.js.map +1 -1
  5. package/build/src/api/getExpoGoIntermediateCertificate.js +7 -4
  6. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  7. package/build/src/api/getExpoSchema.js +13 -11
  8. package/build/src/api/getExpoSchema.js.map +1 -1
  9. package/build/src/api/getNativeModuleVersions.js +7 -4
  10. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  11. package/build/src/api/getProjectDevelopmentCertificate.js +7 -4
  12. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  13. package/build/src/api/getVersions.js +7 -4
  14. package/build/src/api/getVersions.js.map +1 -1
  15. package/build/src/api/graphql/client.js +55 -35
  16. package/build/src/api/graphql/client.js.map +1 -1
  17. package/build/src/api/graphql/queries/AppQuery.js +9 -7
  18. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  19. package/build/src/api/graphql/queries/UserQuery.js +7 -5
  20. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  21. package/build/src/api/graphql/types/App.js +6 -4
  22. package/build/src/api/graphql/types/App.js.map +1 -1
  23. package/build/src/api/rest/cache/FileSystemCache.js +6 -4
  24. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  25. package/build/src/api/rest/cache/response.js +4 -1
  26. package/build/src/api/rest/cache/response.js.map +1 -1
  27. package/build/src/api/rest/cache/wrapFetchWithCache.js +21 -12
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  29. package/build/src/api/rest/client.js +36 -29
  30. package/build/src/api/rest/client.js.map +1 -1
  31. package/build/src/api/rest/wrapFetchWithBaseUrl.js +4 -1
  32. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithOffline.js +5 -2
  34. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithProgress.js +40 -19
  36. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProxy.js +7 -4
  38. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  39. package/build/src/api/settings.js +9 -4
  40. package/build/src/api/settings.js.map +1 -1
  41. package/build/src/api/updateDevelopmentSession.js +16 -8
  42. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  43. package/build/src/api/user/UserSettings.js +10 -8
  44. package/build/src/api/user/UserSettings.js.map +1 -1
  45. package/build/src/api/user/actions.js +66 -41
  46. package/build/src/api/user/actions.js.map +1 -1
  47. package/build/src/api/user/expoSsoLauncher.js +46 -25
  48. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  49. package/build/src/api/user/otp.js +70 -50
  50. package/build/src/api/user/otp.js.map +1 -1
  51. package/build/src/api/user/user.js +66 -41
  52. package/build/src/api/user/user.js.map +1 -1
  53. package/build/src/config/configAsync.js +62 -43
  54. package/build/src/config/configAsync.js.map +1 -1
  55. package/build/src/config/index.js +46 -30
  56. package/build/src/config/index.js.map +1 -1
  57. package/build/src/customize/customizeAsync.js +14 -11
  58. package/build/src/customize/customizeAsync.js.map +1 -1
  59. package/build/src/customize/generate.js +61 -46
  60. package/build/src/customize/generate.js.map +1 -1
  61. package/build/src/customize/index.js +10 -8
  62. package/build/src/customize/index.js.map +1 -1
  63. package/build/src/customize/resolveOptions.js +7 -4
  64. package/build/src/customize/resolveOptions.js.map +1 -1
  65. package/build/src/customize/templates.js +31 -34
  66. package/build/src/customize/templates.js.map +1 -1
  67. package/build/src/customize/typescript.js +43 -28
  68. package/build/src/customize/typescript.js.map +1 -1
  69. package/build/src/export/createMetadataJson.js +7 -6
  70. package/build/src/export/createMetadataJson.js.map +1 -1
  71. package/build/src/export/embed/exportEmbedAsync.js +51 -38
  72. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  73. package/build/src/export/embed/index.js +48 -36
  74. package/build/src/export/embed/index.js.map +1 -1
  75. package/build/src/export/embed/resolveOptions.js +7 -4
  76. package/build/src/export/embed/resolveOptions.js.map +1 -1
  77. package/build/src/export/embed/xcodeCompilerLogger.js +20 -8
  78. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  79. package/build/src/export/exportApp.js +84 -67
  80. package/build/src/export/exportApp.js.map +1 -1
  81. package/build/src/export/exportAssets.js +62 -43
  82. package/build/src/export/exportAssets.js.map +1 -1
  83. package/build/src/export/exportAsync.js +47 -26
  84. package/build/src/export/exportAsync.js.map +1 -1
  85. package/build/src/export/exportHermes.js +19 -11
  86. package/build/src/export/exportHermes.js.map +1 -1
  87. package/build/src/export/exportStaticAsync.js +49 -38
  88. package/build/src/export/exportStaticAsync.js.map +1 -1
  89. package/build/src/export/favicon.js +19 -11
  90. package/build/src/export/favicon.js.map +1 -1
  91. package/build/src/export/fork-bundleAsync.js +42 -39
  92. package/build/src/export/fork-bundleAsync.js.map +1 -1
  93. package/build/src/export/getPublicExpoManifest.js +9 -6
  94. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  95. package/build/src/export/getResolvedLocales.js +7 -4
  96. package/build/src/export/getResolvedLocales.js.map +1 -1
  97. package/build/src/export/html.js +12 -4
  98. package/build/src/export/html.js.map +1 -1
  99. package/build/src/export/index.js +49 -33
  100. package/build/src/export/index.js.map +1 -1
  101. package/build/src/export/metroAssetLocalPath.js +22 -6
  102. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  103. package/build/src/export/persistMetroAssets.js +38 -24
  104. package/build/src/export/persistMetroAssets.js.map +1 -1
  105. package/build/src/export/publicFolder.js +15 -7
  106. package/build/src/export/publicFolder.js.map +1 -1
  107. package/build/src/export/resolveOptions.js +19 -15
  108. package/build/src/export/resolveOptions.js.map +1 -1
  109. package/build/src/export/saveAssets.js +42 -38
  110. package/build/src/export/saveAssets.js.map +1 -1
  111. package/build/src/export/web/exportWebAsync.js +15 -12
  112. package/build/src/export/web/exportWebAsync.js.map +1 -1
  113. package/build/src/export/web/index.js +47 -31
  114. package/build/src/export/web/index.js.map +1 -1
  115. package/build/src/export/web/resolveOptions.js +4 -1
  116. package/build/src/export/web/resolveOptions.js.map +1 -1
  117. package/build/src/export/writeContents.js +12 -7
  118. package/build/src/export/writeContents.js.map +1 -1
  119. package/build/src/graphql/generated.js +141 -128
  120. package/build/src/graphql/generated.js.map +1 -1
  121. package/build/src/install/applyPlugins.js +43 -25
  122. package/build/src/install/applyPlugins.js.map +1 -1
  123. package/build/src/install/checkPackages.js +55 -35
  124. package/build/src/install/checkPackages.js.map +1 -1
  125. package/build/src/install/fixPackages.js +52 -35
  126. package/build/src/install/fixPackages.js.map +1 -1
  127. package/build/src/install/index.js +15 -13
  128. package/build/src/install/index.js.map +1 -1
  129. package/build/src/install/installAsync.js +90 -65
  130. package/build/src/install/installAsync.js.map +1 -1
  131. package/build/src/install/installExpoPackage.js +48 -27
  132. package/build/src/install/installExpoPackage.js.map +1 -1
  133. package/build/src/install/resolveOptions.js +8 -5
  134. package/build/src/install/resolveOptions.js.map +1 -1
  135. package/build/src/install/utils/autoAddConfigPlugins.js +15 -7
  136. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  137. package/build/src/lint/ESlintPrerequisite.js +174 -0
  138. package/build/src/lint/ESlintPrerequisite.js.map +1 -0
  139. package/build/src/lint/index.js +66 -0
  140. package/build/src/lint/index.js.map +1 -0
  141. package/build/src/lint/lintAsync.js +33 -0
  142. package/build/src/lint/lintAsync.js.map +1 -0
  143. package/build/src/log.js +20 -14
  144. package/build/src/log.js.map +1 -1
  145. package/build/src/login/index.js +43 -25
  146. package/build/src/login/index.js.map +1 -1
  147. package/build/src/logout/index.js +43 -25
  148. package/build/src/logout/index.js.map +1 -1
  149. package/build/src/prebuild/clearNativeFolder.js +65 -42
  150. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  151. package/build/src/prebuild/configureProjectAsync.js +50 -29
  152. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  153. package/build/src/prebuild/copyTemplateFiles.js +19 -13
  154. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  155. package/build/src/prebuild/ensureConfigAsync.js +54 -28
  156. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  157. package/build/src/prebuild/index.js +52 -38
  158. package/build/src/prebuild/index.js.map +1 -1
  159. package/build/src/prebuild/prebuildAsync.js +68 -51
  160. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  161. package/build/src/prebuild/renameTemplateAppName.js +15 -10
  162. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  163. package/build/src/prebuild/resolveOptions.js +60 -35
  164. package/build/src/prebuild/resolveOptions.js.map +1 -1
  165. package/build/src/prebuild/resolveTemplate.js +66 -40
  166. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  167. package/build/src/prebuild/updateFromTemplate.js +67 -44
  168. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  169. package/build/src/prebuild/updatePackageJson.js +70 -49
  170. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  171. package/build/src/prebuild/validateTemplatePlatforms.js +44 -23
  172. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  173. package/build/src/register/index.js +43 -25
  174. package/build/src/register/index.js.map +1 -1
  175. package/build/src/register/registerAsync.js +14 -11
  176. package/build/src/register/registerAsync.js.map +1 -1
  177. package/build/src/run/android/index.js +47 -31
  178. package/build/src/run/android/index.js.map +1 -1
  179. package/build/src/run/android/resolveDevice.js +9 -6
  180. package/build/src/run/android/resolveDevice.js.map +1 -1
  181. package/build/src/run/android/resolveGradlePropsAsync.js +10 -9
  182. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  183. package/build/src/run/android/resolveInstallApkName.js +14 -12
  184. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  185. package/build/src/run/android/resolveLaunchProps.js +6 -3
  186. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  187. package/build/src/run/android/resolveOptions.js +12 -9
  188. package/build/src/run/android/resolveOptions.js.map +1 -1
  189. package/build/src/run/android/runAndroidAsync.js +27 -24
  190. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  191. package/build/src/run/ensureNativeProject.js +11 -8
  192. package/build/src/run/ensureNativeProject.js.map +1 -1
  193. package/build/src/run/hints.js +15 -7
  194. package/build/src/run/hints.js.map +1 -1
  195. package/build/src/run/index.js +49 -35
  196. package/build/src/run/index.js.map +1 -1
  197. package/build/src/run/ios/XcodeBuild.js +75 -51
  198. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  199. package/build/src/run/ios/appleDevice/AppleDevice.js +31 -24
  200. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  201. package/build/src/run/ios/appleDevice/ClientManager.js +66 -33
  202. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  203. package/build/src/run/ios/appleDevice/client/AFCClient.js +73 -47
  204. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  205. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +53 -26
  206. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  207. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +15 -6
  208. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  209. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +54 -27
  210. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  211. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +56 -30
  212. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  213. package/build/src/run/ios/appleDevice/client/ServiceClient.js +18 -4
  214. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  215. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +22 -13
  216. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  217. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +57 -31
  218. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  219. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +79 -66
  220. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  221. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +28 -14
  222. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  223. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +24 -11
  224. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  225. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +26 -13
  226. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  227. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +23 -10
  228. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  229. package/build/src/run/ios/codeSigning/Security.js +27 -20
  230. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  231. package/build/src/run/ios/codeSigning/configureCodeSigning.js +49 -28
  232. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  233. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +61 -36
  234. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  235. package/build/src/run/ios/codeSigning/settings.js +11 -3
  236. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  237. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +7 -5
  238. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  239. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +14 -8
  240. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  241. package/build/src/run/ios/index.js +50 -34
  242. package/build/src/run/ios/index.js.map +1 -1
  243. package/build/src/run/ios/launchApp.js +52 -31
  244. package/build/src/run/ios/launchApp.js.map +1 -1
  245. package/build/src/run/ios/options/promptDevice.js +17 -13
  246. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  247. package/build/src/run/ios/options/resolveDevice.js +63 -39
  248. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  249. package/build/src/run/ios/options/resolveNativeScheme.js +57 -34
  250. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  251. package/build/src/run/ios/options/resolveOptions.js +15 -12
  252. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  253. package/build/src/run/ios/options/resolveXcodeProject.js +6 -3
  254. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  255. package/build/src/run/ios/runIosAsync.js +63 -42
  256. package/build/src/run/ios/runIosAsync.js.map +1 -1
  257. package/build/src/run/resolveBundlerProps.js +8 -5
  258. package/build/src/run/resolveBundlerProps.js.map +1 -1
  259. package/build/src/run/startBundler.js +47 -26
  260. package/build/src/run/startBundler.js.map +1 -1
  261. package/build/src/start/detectDevClient.js +6 -3
  262. package/build/src/start/detectDevClient.js.map +1 -1
  263. package/build/src/start/doctor/Prerequisite.js +15 -7
  264. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  265. package/build/src/start/doctor/SecurityBinPrerequisite.js +7 -4
  266. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  267. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +44 -23
  268. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  269. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +44 -23
  270. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  271. package/build/src/start/doctor/apple/XcodePrerequisite.js +61 -36
  272. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  273. package/build/src/start/doctor/apple/XcrunPrerequisite.js +15 -12
  274. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  275. package/build/src/start/doctor/dependencies/bundledNativeModules.js +49 -28
  276. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  277. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +98 -53
  278. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  279. package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -9
  280. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  281. package/build/src/start/doctor/dependencies/getVersionedPackages.js +23 -15
  282. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  283. package/build/src/start/doctor/dependencies/resolvePackages.js +19 -13
  284. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  285. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +63 -41
  286. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  287. package/build/src/start/doctor/ngrok/ExternalModule.js +64 -39
  288. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  289. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -5
  290. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  291. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +59 -41
  292. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  293. package/build/src/start/doctor/typescript/updateTSConfig.js +59 -36
  294. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  295. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +57 -31
  296. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  297. package/build/src/start/index.js +56 -42
  298. package/build/src/start/index.js.map +1 -1
  299. package/build/src/start/interface/KeyPressHandler.js +43 -22
  300. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  301. package/build/src/start/interface/commandsTable.js +60 -38
  302. package/build/src/start/interface/commandsTable.js.map +1 -1
  303. package/build/src/start/interface/interactiveActions.js +85 -68
  304. package/build/src/start/interface/interactiveActions.js.map +1 -1
  305. package/build/src/start/interface/startInterface.js +78 -57
  306. package/build/src/start/interface/startInterface.js.map +1 -1
  307. package/build/src/start/platforms/AppIdResolver.js +9 -6
  308. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  309. package/build/src/start/platforms/DeviceManager.js +41 -20
  310. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  311. package/build/src/start/platforms/ExpoGoInstaller.js +55 -35
  312. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  313. package/build/src/start/platforms/PlatformManager.js +19 -17
  314. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  315. package/build/src/start/platforms/android/ADBServer.js +15 -12
  316. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  317. package/build/src/start/platforms/android/AndroidAppIdResolver.js +6 -4
  318. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  319. package/build/src/start/platforms/android/AndroidDeviceManager.js +70 -50
  320. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  321. package/build/src/start/platforms/android/AndroidPlatformManager.js +9 -6
  322. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  323. package/build/src/start/platforms/android/AndroidSdk.js +11 -8
  324. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  325. package/build/src/start/platforms/android/activateWindow.js +43 -22
  326. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  327. package/build/src/start/platforms/android/adb.js +73 -52
  328. package/build/src/start/platforms/android/adb.js.map +1 -1
  329. package/build/src/start/platforms/android/adbReverse.js +57 -31
  330. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  331. package/build/src/start/platforms/android/emulator.js +63 -42
  332. package/build/src/start/platforms/android/emulator.js.map +1 -1
  333. package/build/src/start/platforms/android/getDevices.js +11 -10
  334. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  335. package/build/src/start/platforms/android/gradle.js +18 -11
  336. package/build/src/start/platforms/android/gradle.js.map +1 -1
  337. package/build/src/start/platforms/android/promptAndroidDevice.js +14 -14
  338. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  339. package/build/src/start/platforms/ios/AppleAppIdResolver.js +7 -4
  340. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  341. package/build/src/start/platforms/ios/AppleDeviceManager.js +80 -54
  342. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  343. package/build/src/start/platforms/ios/ApplePlatformManager.js +7 -4
  344. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  345. package/build/src/start/platforms/ios/assertSystemRequirements.js +11 -8
  346. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  347. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +50 -29
  348. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  349. package/build/src/start/platforms/ios/getBestSimulator.js +53 -29
  350. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  351. package/build/src/start/platforms/ios/promptAppleDevice.js +18 -12
  352. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  353. package/build/src/start/platforms/ios/simctl.js +65 -42
  354. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  355. package/build/src/start/platforms/ios/simctlLogging.js +67 -44
  356. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  357. package/build/src/start/platforms/ios/xcrun.js +8 -5
  358. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  359. package/build/src/start/project/devices.js +19 -16
  360. package/build/src/start/project/devices.js.map +1 -1
  361. package/build/src/start/project/dotExpo.js +13 -5
  362. package/build/src/start/project/dotExpo.js.map +1 -1
  363. package/build/src/start/project/settings.js +6 -4
  364. package/build/src/start/project/settings.js.map +1 -1
  365. package/build/src/start/resolveOptions.js +26 -19
  366. package/build/src/start/resolveOptions.js.map +1 -1
  367. package/build/src/start/server/AsyncNgrok.js +66 -46
  368. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  369. package/build/src/start/server/BundlerDevServer.js +64 -44
  370. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  371. package/build/src/start/server/DevServerManager.js +81 -69
  372. package/build/src/start/server/DevServerManager.js.map +1 -1
  373. package/build/src/start/server/DevToolsPluginManager.js +21 -16
  374. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  375. package/build/src/start/server/DevelopmentSession.js +49 -31
  376. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  377. package/build/src/start/server/ReactDevToolsProxy.js +14 -6
  378. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  379. package/build/src/start/server/UrlCreator.js +44 -23
  380. package/build/src/start/server/UrlCreator.js.map +1 -1
  381. package/build/src/start/server/getStaticRenderFunctions.js +46 -34
  382. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  383. package/build/src/start/server/metro/MetroBundlerDevServer.js +135 -108
  384. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  385. package/build/src/start/server/metro/MetroTerminalReporter.js +24 -17
  386. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  387. package/build/src/start/server/metro/TerminalReporter.js +18 -8
  388. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  389. package/build/src/start/server/metro/createExpoMetroResolver.js +31 -20
  390. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  391. package/build/src/start/server/metro/createJResolver.js +76 -51
  392. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  393. package/build/src/start/server/metro/createServerRouteMiddleware.js +22 -14
  394. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  395. package/build/src/start/server/metro/debugging/MessageHandler.js +4 -1
  396. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  397. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +10 -9
  398. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  399. package/build/src/start/server/metro/debugging/createHandlersFactory.js +14 -13
  400. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  401. package/build/src/start/server/metro/debugging/getDebuggerType.js +5 -2
  402. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  403. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +5 -2
  404. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  405. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +5 -2
  406. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -1
  407. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -4
  408. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  409. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +7 -4
  410. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  411. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -4
  412. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  413. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +7 -4
  414. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  415. package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -1
  416. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  417. package/build/src/start/server/metro/externals.js +21 -10
  418. package/build/src/start/server/metro/externals.js.map +1 -1
  419. package/build/src/start/server/metro/fetchRouterManifest.js +20 -7
  420. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  421. package/build/src/start/server/metro/formatFileCandidates.js +21 -17
  422. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  423. package/build/src/start/server/metro/getCssModulesFromBundler.js +15 -7
  424. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  425. package/build/src/start/server/metro/instantiateMetro.js +57 -44
  426. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  427. package/build/src/start/server/metro/metroErrorInterface.js +43 -34
  428. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  429. package/build/src/start/server/metro/metroErrors.js +11 -2
  430. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  431. package/build/src/start/server/metro/metroVirtualModules.js +10 -2
  432. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  433. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +5 -2
  434. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  435. package/build/src/start/server/metro/router.js +27 -20
  436. package/build/src/start/server/metro/router.js.map +1 -1
  437. package/build/src/start/server/metro/runServer-fork.js +21 -14
  438. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  439. package/build/src/start/server/metro/serializeHtml.js +7 -7
  440. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  441. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +12 -4
  442. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  443. package/build/src/start/server/metro/withMetroMultiPlatform.js +107 -81
  444. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  445. package/build/src/start/server/metro/withMetroResolvers.js +72 -42
  446. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  447. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
  448. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  449. package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
  450. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  451. package/build/src/start/server/middleware/CreateFileMiddleware.js +13 -5
  452. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  453. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +15 -12
  454. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  455. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +30 -23
  456. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  457. package/build/src/start/server/middleware/ExpoMiddleware.js +47 -21
  458. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  459. package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
  460. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  461. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
  462. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  463. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +23 -16
  464. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  465. package/build/src/start/server/middleware/ManifestMiddleware.js +84 -60
  466. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  467. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +14 -7
  468. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  469. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +47 -26
  470. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  471. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -8
  472. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  473. package/build/src/start/server/middleware/inspector/JsInspector.js +30 -24
  474. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  475. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +16 -8
  476. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  477. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
  478. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
  479. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +16 -12
  480. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  481. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +59 -37
  482. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  483. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +22 -16
  484. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  485. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +9 -6
  486. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  487. package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
  488. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  489. package/build/src/start/server/middleware/metroOptions.js +26 -18
  490. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  491. package/build/src/start/server/middleware/mutations.js +11 -4
  492. package/build/src/start/server/middleware/mutations.js.map +1 -1
  493. package/build/src/start/server/middleware/resolveAssets.js +65 -41
  494. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  495. package/build/src/start/server/middleware/resolvePlatform.js +14 -6
  496. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  497. package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
  498. package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
  499. package/build/src/start/server/openPlatforms.js +7 -6
  500. package/build/src/start/server/openPlatforms.js.map +1 -1
  501. package/build/src/start/server/platformBundlers.js +5 -2
  502. package/build/src/start/server/platformBundlers.js.map +1 -1
  503. package/build/src/start/server/serverLogLikeMetro.js +62 -33
  504. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  505. package/build/src/start/server/type-generation/expo-env.js +12 -4
  506. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  507. package/build/src/start/server/type-generation/routes.js +52 -51
  508. package/build/src/start/server/type-generation/routes.js.map +1 -1
  509. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +22 -19
  510. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  511. package/build/src/start/server/type-generation/tsconfig.js +18 -11
  512. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  513. package/build/src/start/server/webTemplate.js +21 -15
  514. package/build/src/start/server/webTemplate.js.map +1 -1
  515. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +81 -56
  516. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  517. package/build/src/start/server/webpack/compile.js +47 -26
  518. package/build/src/start/server/webpack/compile.js.map +1 -1
  519. package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
  520. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  521. package/build/src/start/server/webpack/resolveFromProject.js +13 -5
  522. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  523. package/build/src/start/server/webpack/tls.js +54 -28
  524. package/build/src/start/server/webpack/tls.js.map +1 -1
  525. package/build/src/start/startAsync.js +73 -52
  526. package/build/src/start/startAsync.js.map +1 -1
  527. package/build/src/utils/FileNotifier.js +46 -25
  528. package/build/src/utils/FileNotifier.js.map +1 -1
  529. package/build/src/utils/analytics/getDevClientProperties.js +29 -21
  530. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  531. package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
  532. package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
  533. package/build/src/utils/analytics/getMetroProperties.js +4 -1
  534. package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
  535. package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
  536. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  537. package/build/src/utils/ansi.js +5 -2
  538. package/build/src/utils/ansi.js.map +1 -1
  539. package/build/src/utils/args.js +57 -29
  540. package/build/src/utils/args.js.map +1 -1
  541. package/build/src/utils/array.js +16 -9
  542. package/build/src/utils/array.js.map +1 -1
  543. package/build/src/utils/cocoapods.js +77 -53
  544. package/build/src/utils/cocoapods.js.map +1 -1
  545. package/build/src/utils/codesigning.js +80 -58
  546. package/build/src/utils/codesigning.js.map +1 -1
  547. package/build/src/utils/createFileTransform.js +13 -5
  548. package/build/src/utils/createFileTransform.js.map +1 -1
  549. package/build/src/utils/delay.js +13 -6
  550. package/build/src/utils/delay.js.map +1 -1
  551. package/build/src/utils/dir.js +24 -21
  552. package/build/src/utils/dir.js.map +1 -1
  553. package/build/src/utils/downloadAppAsync.js +16 -13
  554. package/build/src/utils/downloadAppAsync.js.map +1 -1
  555. package/build/src/utils/downloadExpoGoAsync.js +26 -20
  556. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  557. package/build/src/utils/editor.js +50 -24
  558. package/build/src/utils/editor.js.map +1 -1
  559. package/build/src/utils/env.js +35 -33
  560. package/build/src/utils/env.js.map +1 -1
  561. package/build/src/utils/errors.js +17 -9
  562. package/build/src/utils/errors.js.map +1 -1
  563. package/build/src/utils/exit.js +10 -7
  564. package/build/src/utils/exit.js.map +1 -1
  565. package/build/src/utils/findUp.js +22 -4
  566. package/build/src/utils/findUp.js.map +1 -1
  567. package/build/src/utils/fn.js +11 -3
  568. package/build/src/utils/fn.js.map +1 -1
  569. package/build/src/utils/getOrPromptApplicationId.js +71 -45
  570. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  571. package/build/src/utils/getRunningProcess.js +52 -26
  572. package/build/src/utils/getRunningProcess.js.map +1 -1
  573. package/build/src/utils/git.js +64 -38
  574. package/build/src/utils/git.js.map +1 -1
  575. package/build/src/utils/glob.js +14 -9
  576. package/build/src/utils/glob.js.map +1 -1
  577. package/build/src/utils/interactive.js +5 -2
  578. package/build/src/utils/interactive.js.map +1 -1
  579. package/build/src/utils/ip.js +5 -2
  580. package/build/src/utils/ip.js.map +1 -1
  581. package/build/src/utils/isModuleSymlinked.js +7 -4
  582. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  583. package/build/src/utils/link.js +13 -5
  584. package/build/src/utils/link.js.map +1 -1
  585. package/build/src/utils/mergeGitIgnorePaths.js +22 -17
  586. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  587. package/build/src/utils/modifyConfigAsync.js +56 -30
  588. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  589. package/build/src/utils/modifyConfigPlugins.js +43 -22
  590. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  591. package/build/src/utils/nodeEnv.js +6 -1
  592. package/build/src/utils/nodeEnv.js.map +1 -1
  593. package/build/src/utils/nodeModules.js +9 -6
  594. package/build/src/utils/nodeModules.js.map +1 -1
  595. package/build/src/utils/npm.js +32 -24
  596. package/build/src/utils/npm.js.map +1 -1
  597. package/build/src/utils/obj.js +12 -4
  598. package/build/src/utils/obj.js.map +1 -1
  599. package/build/src/utils/open.js +7 -4
  600. package/build/src/utils/open.js.map +1 -1
  601. package/build/src/utils/ora.js +25 -21
  602. package/build/src/utils/ora.js.map +1 -1
  603. package/build/src/utils/plist.js +53 -27
  604. package/build/src/utils/plist.js.map +1 -1
  605. package/build/src/utils/port.js +58 -32
  606. package/build/src/utils/port.js.map +1 -1
  607. package/build/src/utils/profile.js +49 -28
  608. package/build/src/utils/profile.js.map +1 -1
  609. package/build/src/utils/progress.js +16 -12
  610. package/build/src/utils/progress.js.map +1 -1
  611. package/build/src/utils/prompts.js +33 -28
  612. package/build/src/utils/prompts.js.map +1 -1
  613. package/build/src/utils/resolveArgs.js +23 -20
  614. package/build/src/utils/resolveArgs.js.map +1 -1
  615. package/build/src/utils/scheme.js +61 -37
  616. package/build/src/utils/scheme.js.map +1 -1
  617. package/build/src/utils/strings.js +11 -4
  618. package/build/src/utils/strings.js.map +1 -1
  619. package/build/src/utils/tar.js +43 -22
  620. package/build/src/utils/tar.js.map +1 -1
  621. package/build/src/utils/telemetry/DetachedClient.js +8 -5
  622. package/build/src/utils/telemetry/DetachedClient.js.map +1 -1
  623. package/build/src/utils/telemetry/RudderClient.js +12 -9
  624. package/build/src/utils/telemetry/RudderClient.js.map +1 -1
  625. package/build/src/utils/telemetry/flushDetached.js +8 -7
  626. package/build/src/utils/telemetry/flushDetached.js.map +1 -1
  627. package/build/src/utils/telemetry/getContext.js +48 -28
  628. package/build/src/utils/telemetry/getContext.js.map +1 -1
  629. package/build/src/utils/telemetry/index.js +16 -11
  630. package/build/src/utils/telemetry/index.js.map +1 -1
  631. package/build/src/utils/template.js +27 -2
  632. package/build/src/utils/template.js.map +1 -1
  633. package/build/src/utils/terminal.js +5 -2
  634. package/build/src/utils/terminal.js.map +1 -1
  635. package/build/src/utils/tsconfig/evaluateTsConfig.js +18 -12
  636. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  637. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -10
  638. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  639. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
  640. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  641. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -9
  642. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  643. package/build/src/utils/url.js +17 -10
  644. package/build/src/utils/url.js.map +1 -1
  645. package/build/src/utils/validateApplicationId.js +32 -25
  646. package/build/src/utils/validateApplicationId.js.map +1 -1
  647. package/build/src/utils/variadic.js +15 -11
  648. package/build/src/utils/variadic.js.map +1 -1
  649. package/build/src/whoami/index.js +43 -25
  650. package/build/src/whoami/index.js.map +1 -1
  651. package/build/src/whoami/whoamiAsync.js +44 -23
  652. package/build/src/whoami/whoamiAsync.js.map +1 -1
  653. package/package.json +4 -4
@@ -2,30 +2,33 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.assertSdkRoot = assertSdkRoot;
5
+ Object.defineProperty(exports, "assertSdkRoot", {
6
+ enumerable: true,
7
+ get: ()=>assertSdkRoot
8
+ });
6
9
  function _assert() {
7
- const data = _interopRequireDefault(require("assert"));
10
+ const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
8
11
  _assert = function() {
9
12
  return data;
10
13
  };
11
14
  return data;
12
15
  }
13
16
  function _fs() {
14
- const data = _interopRequireDefault(require("fs"));
17
+ const data = /*#__PURE__*/ _interopRequireDefault(require("fs"));
15
18
  _fs = function() {
16
19
  return data;
17
20
  };
18
21
  return data;
19
22
  }
20
23
  function _os() {
21
- const data = _interopRequireDefault(require("os"));
24
+ const data = /*#__PURE__*/ _interopRequireDefault(require("os"));
22
25
  _os = function() {
23
26
  return data;
24
27
  };
25
28
  return data;
26
29
  }
27
30
  function _path() {
28
- const data = _interopRequireDefault(require("path"));
31
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
29
32
  _path = function() {
30
33
  return data;
31
34
  };
@@ -47,16 +50,16 @@ function _interopRequireDefault(obj) {
47
50
  };
48
51
  function assertSdkRoot() {
49
52
  if (process.env.ANDROID_HOME) {
50
- _assert().default(_fs().default.existsSync(process.env.ANDROID_HOME), `Failed to resolve the Android SDK path. ANDROID_HOME is set to a non-existing path: ${process.env.ANDROID_HOME}`);
53
+ (0, _assert().default)(_fs().default.existsSync(process.env.ANDROID_HOME), `Failed to resolve the Android SDK path. ANDROID_HOME is set to a non-existing path: ${process.env.ANDROID_HOME}`);
51
54
  return process.env.ANDROID_HOME;
52
55
  }
53
56
  if (process.env.ANDROID_SDK_ROOT) {
54
- _assert().default(_fs().default.existsSync(process.env.ANDROID_SDK_ROOT), `Failed to resolve the Android SDK path. Deprecated ANDROID_SDK_ROOT is set to a non-existing path: ${process.env.ANDROID_SDK_ROOT}. Use ANDROID_HOME instead.`);
57
+ (0, _assert().default)(_fs().default.existsSync(process.env.ANDROID_SDK_ROOT), `Failed to resolve the Android SDK path. Deprecated ANDROID_SDK_ROOT is set to a non-existing path: ${process.env.ANDROID_SDK_ROOT}. Use ANDROID_HOME instead.`);
55
58
  return process.env.ANDROID_SDK_ROOT;
56
59
  }
57
60
  const defaultLocation = ANDROID_DEFAULT_LOCATION[process.platform];
58
61
  if (defaultLocation) {
59
- _assert().default(_fs().default.existsSync(defaultLocation), `Failed to resolve the Android SDK path. Default install location not found: ${defaultLocation}. Use ANDROID_HOME to set the Android SDK location.`);
62
+ (0, _assert().default)(_fs().default.existsSync(defaultLocation), `Failed to resolve the Android SDK path. Default install location not found: ${defaultLocation}. Use ANDROID_HOME to set the Android SDK location.`);
60
63
  return defaultLocation;
61
64
  }
62
65
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/android/AndroidSdk.ts"],"sourcesContent":["import assert from 'assert';\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\n\n/**\n * The default Android SDK locations per platform.\n * @see https://developer.android.com/studio/run/emulator-commandline#filedir\n * @see https://developer.android.com/studio/intro/studio-config#optimize-studio-windows\n */\nconst ANDROID_DEFAULT_LOCATION: Readonly<Partial<Record<NodeJS.Platform, string>>> = {\n darwin: path.join(os.homedir(), 'Library', 'Android', 'sdk'),\n linux: path.join(os.homedir(), 'Android', 'sdk'),\n win32: path.join(os.homedir(), 'AppData', 'Local', 'Android', 'Sdk'),\n};\n\n/**\n * Resolve and validate the root folder where the Android SDK has been installed.\n * This checks both `ANDROID_HOME`, `ANDROID_SDK_ROOT`, and the default path for the current platform.\n * @see https://developer.android.com/studio/command-line/variables\n */\nexport function assertSdkRoot() {\n if (process.env.ANDROID_HOME) {\n assert(\n fs.existsSync(process.env.ANDROID_HOME),\n `Failed to resolve the Android SDK path. ANDROID_HOME is set to a non-existing path: ${process.env.ANDROID_HOME}`\n );\n return process.env.ANDROID_HOME;\n }\n\n if (process.env.ANDROID_SDK_ROOT) {\n assert(\n fs.existsSync(process.env.ANDROID_SDK_ROOT),\n `Failed to resolve the Android SDK path. Deprecated ANDROID_SDK_ROOT is set to a non-existing path: ${process.env.ANDROID_SDK_ROOT}. Use ANDROID_HOME instead.`\n );\n return process.env.ANDROID_SDK_ROOT;\n }\n\n const defaultLocation = ANDROID_DEFAULT_LOCATION[process.platform];\n if (defaultLocation) {\n assert(\n fs.existsSync(defaultLocation),\n `Failed to resolve the Android SDK path. Default install location not found: ${defaultLocation}. Use ANDROID_HOME to set the Android SDK location.`\n );\n return defaultLocation;\n }\n\n return null;\n}\n"],"names":["assertSdkRoot","ANDROID_DEFAULT_LOCATION","darwin","path","join","os","homedir","linux","win32","process","env","ANDROID_HOME","assert","fs","existsSync","ANDROID_SDK_ROOT","defaultLocation","platform"],"mappings":"AAAA;;;;QAqBgBA,aAAa,GAAbA,aAAa;SArBV,OAAQ;gDAAR,QAAQ;IAAR,OAAQ;;;;;SACZ,GAAI;gDAAJ,IAAI;IAAJ,GAAI;;;;;SACJ,GAAI;gDAAJ,IAAI;IAAJ,GAAI;;;;;SACF,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;;;;;;AAEvB;;;;GAIG,CACH,MAAMC,wBAAwB,GAAuD;IACnFC,MAAM,EAAEC,KAAI,UAAA,CAACC,IAAI,CAACC,GAAE,UAAA,CAACC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;IAC5DC,KAAK,EAAEJ,KAAI,UAAA,CAACC,IAAI,CAACC,GAAE,UAAA,CAACC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;IAChDE,KAAK,EAAEL,KAAI,UAAA,CAACC,IAAI,CAACC,GAAE,UAAA,CAACC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;CACrE,AAAC;AAOK,SAASN,aAAa,GAAG;IAC9B,IAAIS,OAAO,CAACC,GAAG,CAACC,YAAY,EAAE;QAC5BC,OAAM,UAAA,CACJC,GAAE,UAAA,CAACC,UAAU,CAACL,OAAO,CAACC,GAAG,CAACC,YAAY,CAAC,EACvC,CAAC,oFAAoF,EAAEF,OAAO,CAACC,GAAG,CAACC,YAAY,CAAC,CAAC,CAClH,CAAC;QACF,OAAOF,OAAO,CAACC,GAAG,CAACC,YAAY,CAAC;KACjC;IAED,IAAIF,OAAO,CAACC,GAAG,CAACK,gBAAgB,EAAE;QAChCH,OAAM,UAAA,CACJC,GAAE,UAAA,CAACC,UAAU,CAACL,OAAO,CAACC,GAAG,CAACK,gBAAgB,CAAC,EAC3C,CAAC,mGAAmG,EAAEN,OAAO,CAACC,GAAG,CAACK,gBAAgB,CAAC,2BAA2B,CAAC,CAChK,CAAC;QACF,OAAON,OAAO,CAACC,GAAG,CAACK,gBAAgB,CAAC;KACrC;IAED,MAAMC,eAAe,GAAGf,wBAAwB,CAACQ,OAAO,CAACQ,QAAQ,CAAC,AAAC;IACnE,IAAID,eAAe,EAAE;QACnBJ,OAAM,UAAA,CACJC,GAAE,UAAA,CAACC,UAAU,CAACE,eAAe,CAAC,EAC9B,CAAC,4EAA4E,EAAEA,eAAe,CAAC,mDAAmD,CAAC,CACpJ,CAAC;QACF,OAAOA,eAAe,CAAC;KACxB;IAED,OAAO,IAAI,CAAC;CACb"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/android/AndroidSdk.ts"],"sourcesContent":["import assert from 'assert';\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\n\n/**\n * The default Android SDK locations per platform.\n * @see https://developer.android.com/studio/run/emulator-commandline#filedir\n * @see https://developer.android.com/studio/intro/studio-config#optimize-studio-windows\n */\nconst ANDROID_DEFAULT_LOCATION: Readonly<Partial<Record<NodeJS.Platform, string>>> = {\n darwin: path.join(os.homedir(), 'Library', 'Android', 'sdk'),\n linux: path.join(os.homedir(), 'Android', 'sdk'),\n win32: path.join(os.homedir(), 'AppData', 'Local', 'Android', 'Sdk'),\n};\n\n/**\n * Resolve and validate the root folder where the Android SDK has been installed.\n * This checks both `ANDROID_HOME`, `ANDROID_SDK_ROOT`, and the default path for the current platform.\n * @see https://developer.android.com/studio/command-line/variables\n */\nexport function assertSdkRoot() {\n if (process.env.ANDROID_HOME) {\n assert(\n fs.existsSync(process.env.ANDROID_HOME),\n `Failed to resolve the Android SDK path. ANDROID_HOME is set to a non-existing path: ${process.env.ANDROID_HOME}`\n );\n return process.env.ANDROID_HOME;\n }\n\n if (process.env.ANDROID_SDK_ROOT) {\n assert(\n fs.existsSync(process.env.ANDROID_SDK_ROOT),\n `Failed to resolve the Android SDK path. Deprecated ANDROID_SDK_ROOT is set to a non-existing path: ${process.env.ANDROID_SDK_ROOT}. Use ANDROID_HOME instead.`\n );\n return process.env.ANDROID_SDK_ROOT;\n }\n\n const defaultLocation = ANDROID_DEFAULT_LOCATION[process.platform];\n if (defaultLocation) {\n assert(\n fs.existsSync(defaultLocation),\n `Failed to resolve the Android SDK path. Default install location not found: ${defaultLocation}. Use ANDROID_HOME to set the Android SDK location.`\n );\n return defaultLocation;\n }\n\n return null;\n}\n"],"names":["assertSdkRoot","ANDROID_DEFAULT_LOCATION","darwin","path","join","os","homedir","linux","win32","process","env","ANDROID_HOME","assert","fs","existsSync","ANDROID_SDK_ROOT","defaultLocation","platform"],"mappings":"AAAA;;;;+BAqBgBA,eAAa;;aAAbA,aAAa;;;8DArBV,QAAQ;;;;;;;8DACZ,IAAI;;;;;;;8DACJ,IAAI;;;;;;;8DACF,MAAM;;;;;;;;;;;AAEvB;;;;CAIC,GACD,MAAMC,wBAAwB,GAAuD;IACnFC,MAAM,EAAEC,KAAI,EAAA,QAAA,CAACC,IAAI,CAACC,GAAE,EAAA,QAAA,CAACC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;IAC5DC,KAAK,EAAEJ,KAAI,EAAA,QAAA,CAACC,IAAI,CAACC,GAAE,EAAA,QAAA,CAACC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;IAChDE,KAAK,EAAEL,KAAI,EAAA,QAAA,CAACC,IAAI,CAACC,GAAE,EAAA,QAAA,CAACC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;CACrE,AAAC;AAOK,SAASN,aAAa,GAAG;IAC9B,IAAIS,OAAO,CAACC,GAAG,CAACC,YAAY,EAAE;QAC5BC,IAAAA,OAAM,EAAA,QAAA,EACJC,GAAE,EAAA,QAAA,CAACC,UAAU,CAACL,OAAO,CAACC,GAAG,CAACC,YAAY,CAAC,EACvC,CAAC,oFAAoF,EAAEF,OAAO,CAACC,GAAG,CAACC,YAAY,CAAC,CAAC,CAClH,CAAC;QACF,OAAOF,OAAO,CAACC,GAAG,CAACC,YAAY,CAAC;IAClC,CAAC;IAED,IAAIF,OAAO,CAACC,GAAG,CAACK,gBAAgB,EAAE;QAChCH,IAAAA,OAAM,EAAA,QAAA,EACJC,GAAE,EAAA,QAAA,CAACC,UAAU,CAACL,OAAO,CAACC,GAAG,CAACK,gBAAgB,CAAC,EAC3C,CAAC,mGAAmG,EAAEN,OAAO,CAACC,GAAG,CAACK,gBAAgB,CAAC,2BAA2B,CAAC,CAChK,CAAC;QACF,OAAON,OAAO,CAACC,GAAG,CAACK,gBAAgB,CAAC;IACtC,CAAC;IAED,MAAMC,eAAe,GAAGf,wBAAwB,CAACQ,OAAO,CAACQ,QAAQ,CAAC,AAAC;IACnE,IAAID,eAAe,EAAE;QACnBJ,IAAAA,OAAM,EAAA,QAAA,EACJC,GAAE,EAAA,QAAA,CAACC,UAAU,CAACE,eAAe,CAAC,EAC9B,CAAC,4EAA4E,EAAEA,eAAe,CAAC,mDAAmD,CAAC,CACpJ,CAAC;QACF,OAAOA,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -2,10 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.activateWindowAsync = activateWindowAsync;
6
- function osascript() {
7
- const data = _interopRequireWildcard(require("@expo/osascript"));
8
- osascript = function() {
5
+ Object.defineProperty(exports, "activateWindowAsync", {
6
+ enumerable: true,
7
+ get: ()=>activateWindowAsync
8
+ });
9
+ function _osascript() {
10
+ const data = /*#__PURE__*/ _interopRequireWildcard(require("@expo/osascript"));
11
+ _osascript = function() {
9
12
  return data;
10
13
  };
11
14
  return data;
@@ -17,26 +20,44 @@ function _childProcess() {
17
20
  };
18
21
  return data;
19
22
  }
20
- function _interopRequireWildcard(obj) {
21
- if (obj && obj.__esModule) {
23
+ function _getRequireWildcardCache(nodeInterop) {
24
+ if (typeof WeakMap !== "function") return null;
25
+ var cacheBabelInterop = new WeakMap();
26
+ var cacheNodeInterop = new WeakMap();
27
+ return (_getRequireWildcardCache = function(nodeInterop) {
28
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
29
+ })(nodeInterop);
30
+ }
31
+ function _interopRequireWildcard(obj, nodeInterop) {
32
+ if (!nodeInterop && obj && obj.__esModule) {
22
33
  return obj;
23
- } else {
24
- var newObj = {};
25
- if (obj != null) {
26
- for(var key in obj){
27
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
28
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
29
- if (desc.get || desc.set) {
30
- Object.defineProperty(newObj, key, desc);
31
- } else {
32
- newObj[key] = obj[key];
33
- }
34
- }
34
+ }
35
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
36
+ return {
37
+ default: obj
38
+ };
39
+ }
40
+ var cache = _getRequireWildcardCache(nodeInterop);
41
+ if (cache && cache.has(obj)) {
42
+ return cache.get(obj);
43
+ }
44
+ var newObj = {};
45
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
46
+ for(var key in obj){
47
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
48
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
49
+ if (desc && (desc.get || desc.set)) {
50
+ Object.defineProperty(newObj, key, desc);
51
+ } else {
52
+ newObj[key] = obj[key];
35
53
  }
36
54
  }
37
- newObj.default = obj;
38
- return newObj;
39
55
  }
56
+ newObj.default = obj;
57
+ if (cache) {
58
+ cache.set(obj, newObj);
59
+ }
60
+ return newObj;
40
61
  }
41
62
  const debug = require("debug")("expo:start:platforms:android:activateWindow");
42
63
  function getUnixPID(port) {
@@ -49,7 +70,7 @@ function getUnixPID(port) {
49
70
  "-sTCP:LISTEN"
50
71
  ];
51
72
  debug("lsof " + args.join(" "));
52
- return (ref = _childProcess().execFileSync("lsof", args, {
73
+ return (ref = (0, _childProcess().execFileSync)("lsof", args, {
53
74
  encoding: "utf8",
54
75
  stdio: [
55
76
  "pipe",
@@ -78,7 +99,7 @@ async function activateWindowAsync(device) {
78
99
  }
79
100
  debug(`Activate window for pid:`, pid);
80
101
  try {
81
- await osascript().execAsync(`
102
+ await _osascript().execAsync(`
82
103
  tell application "System Events"
83
104
  set frontmost of the first process whose unix id is ${pid} to true
84
105
  end tell`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/android/activateWindow.ts"],"sourcesContent":["import * as osascript from '@expo/osascript';\nimport { execFileSync } from 'child_process';\n\nimport { Device } from './adb';\n\nconst debug = require('debug')('expo:start:platforms:android:activateWindow') as typeof console.log;\n\nfunction getUnixPID(port: number | string): string {\n // Runs like `lsof -i:8081 -P -t -sTCP:LISTEN`\n const args = [`-i:${port}`, '-P', '-t', '-sTCP:LISTEN'];\n debug('lsof ' + args.join(' '));\n return execFileSync('lsof', args, {\n encoding: 'utf8',\n stdio: ['pipe', 'pipe', 'ignore'],\n })\n .split('\\n')[0]\n ?.trim?.();\n}\n\n/** Activate the Emulator window on macOS. */\nexport async function activateWindowAsync(device: Pick<Device, 'type' | 'pid'>): Promise<boolean> {\n debug(`Activating window for device (pid: ${device.pid}, type: ${device.type})`);\n if (\n // only mac is supported for now.\n process.platform !== 'darwin' ||\n // can only focus emulators\n device.type !== 'emulator'\n ) {\n return false;\n }\n\n // Google Emulator ID: `emulator-5554` -> `5554`\n const androidPid = device.pid!.match(/-(\\d+)/)?.[1];\n if (!androidPid) {\n return false;\n }\n // Unix PID\n const pid = getUnixPID(androidPid);\n\n if (!pid) {\n return false;\n }\n debug(`Activate window for pid:`, pid);\n try {\n await osascript.execAsync(`\n tell application \"System Events\"\n set frontmost of the first process whose unix id is ${pid} to true\n end tell`);\n return true;\n } catch {\n // noop -- this feature is very specific and subject to failure.\n return false;\n }\n}\n"],"names":["activateWindowAsync","osascript","debug","require","getUnixPID","port","execFileSync","args","join","encoding","stdio","split","trim","device","pid","type","process","platform","androidPid","match","execAsync"],"mappings":"AAAA;;;;QAoBsBA,mBAAmB,GAAnBA,mBAAmB;SApB7BC,SAAS;iDAAM,iBAAiB;IAAhCA,SAAS;;;;;SACQ,aAAe;yBAAf,eAAe;IAAf,aAAe;;;;;;;;;;;;;;;;;;;;;;;;;;AAI5C,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,6CAA6C,CAAC,AAAsB,AAAC;AAEpG,SAASC,UAAU,CAACC,IAAqB,EAAU;QAI1CC,GAIU;IAPjB,8CAA8C;IAC9C,MAAMC,IAAI,GAAG;QAAC,CAAC,GAAG,EAAEF,IAAI,CAAC,CAAC;QAAE,IAAI;QAAE,IAAI;QAAE,cAAc;KAAC,AAAC;IACxDH,KAAK,CAAC,OAAO,GAAGK,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,OAAOF,CAAAA,GAIU,GAJVA,aAAY,eAAA,CAAC,MAAM,EAAEC,IAAI,EAAE;QAChCE,QAAQ,EAAE,MAAM;QAChBC,KAAK,EAAE;YAAC,MAAM;YAAE,MAAM;YAAE,QAAQ;SAAC;KAClC,CAAC,CACCC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SACT,GALDL,KAAAA,CAKC,GALDA,GAIU,CACbM,IAAI,QAAI,GALLN,KAAAA,CAKK,GALLA,GAIU,CACbM,IAAI,EAAI,CAAC;CACd;AAGM,eAAeZ,mBAAmB,CAACa,MAAoC,EAAoB;QAY7EA,GAA2B;IAX9CX,KAAK,CAAC,CAAC,mCAAmC,EAAEW,MAAM,CAACC,GAAG,CAAC,QAAQ,EAAED,MAAM,CAACE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,IACE,iCAAiC;IACjCC,OAAO,CAACC,QAAQ,KAAK,QAAQ,IAC7B,2BAA2B;IAC3BJ,MAAM,CAACE,IAAI,KAAK,UAAU,EAC1B;QACA,OAAO,KAAK,CAAC;KACd;IAED,gDAAgD;IAChD,MAAMG,UAAU,GAAGL,CAAAA,GAA2B,GAA3BA,MAAM,CAACC,GAAG,CAAEK,KAAK,UAAU,SAAK,GAAhCN,KAAAA,CAAgC,GAAhCA,GAA2B,AAAE,CAAC,CAAC,CAAC,AAAC;IACpD,IAAI,CAACK,UAAU,EAAE;QACf,OAAO,KAAK,CAAC;KACd;IACD,WAAW;IACX,MAAMJ,GAAG,GAAGV,UAAU,CAACc,UAAU,CAAC,AAAC;IAEnC,IAAI,CAACJ,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACDZ,KAAK,CAAC,CAAC,wBAAwB,CAAC,EAAEY,GAAG,CAAC,CAAC;IACvC,IAAI;QACF,MAAMb,SAAS,GAACmB,SAAS,CAAC,CAAC;;0DAE2B,EAAEN,GAAG,CAAC;YACpD,CAAC,CAAC,CAAC;QACX,OAAO,IAAI,CAAC;KACb,CAAC,OAAM;QACN,gEAAgE;QAChE,OAAO,KAAK,CAAC;KACd;CACF"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/android/activateWindow.ts"],"sourcesContent":["import * as osascript from '@expo/osascript';\nimport { execFileSync } from 'child_process';\n\nimport { Device } from './adb';\n\nconst debug = require('debug')('expo:start:platforms:android:activateWindow') as typeof console.log;\n\nfunction getUnixPID(port: number | string): string {\n // Runs like `lsof -i:8081 -P -t -sTCP:LISTEN`\n const args = [`-i:${port}`, '-P', '-t', '-sTCP:LISTEN'];\n debug('lsof ' + args.join(' '));\n return execFileSync('lsof', args, {\n encoding: 'utf8',\n stdio: ['pipe', 'pipe', 'ignore'],\n })\n .split('\\n')[0]\n ?.trim?.();\n}\n\n/** Activate the Emulator window on macOS. */\nexport async function activateWindowAsync(device: Pick<Device, 'type' | 'pid'>): Promise<boolean> {\n debug(`Activating window for device (pid: ${device.pid}, type: ${device.type})`);\n if (\n // only mac is supported for now.\n process.platform !== 'darwin' ||\n // can only focus emulators\n device.type !== 'emulator'\n ) {\n return false;\n }\n\n // Google Emulator ID: `emulator-5554` -> `5554`\n const androidPid = device.pid!.match(/-(\\d+)/)?.[1];\n if (!androidPid) {\n return false;\n }\n // Unix PID\n const pid = getUnixPID(androidPid);\n\n if (!pid) {\n return false;\n }\n debug(`Activate window for pid:`, pid);\n try {\n await osascript.execAsync(`\n tell application \"System Events\"\n set frontmost of the first process whose unix id is ${pid} to true\n end tell`);\n return true;\n } catch {\n // noop -- this feature is very specific and subject to failure.\n return false;\n }\n}\n"],"names":["activateWindowAsync","debug","require","getUnixPID","port","execFileSync","args","join","encoding","stdio","split","trim","device","pid","type","process","platform","androidPid","match","osascript","execAsync"],"mappings":"AAAA;;;;+BAoBsBA,qBAAmB;;aAAnBA,mBAAmB;;;+DApBd,iBAAiB;;;;;;;yBACf,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI5C,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,6CAA6C,CAAC,AAAsB,AAAC;AAEpG,SAASC,UAAU,CAACC,IAAqB,EAAU;QAI1CC,GAIU;IAPjB,8CAA8C;IAC9C,MAAMC,IAAI,GAAG;QAAC,CAAC,GAAG,EAAEF,IAAI,CAAC,CAAC;QAAE,IAAI;QAAE,IAAI;QAAE,cAAc;KAAC,AAAC;IACxDH,KAAK,CAAC,OAAO,GAAGK,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,OAAOF,CAAAA,GAIU,GAJVA,IAAAA,aAAY,EAAA,aAAA,EAAC,MAAM,EAAEC,IAAI,EAAE;QAChCE,QAAQ,EAAE,MAAM;QAChBC,KAAK,EAAE;YAAC,MAAM;YAAE,MAAM;YAAE,QAAQ;SAAC;KAClC,CAAC,CACCC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SACT,GALDL,KAAAA,CAKC,GALDA,GAIU,CACbM,IAAI,QAAI,GALLN,KAAAA,CAKK,GALLA,GAIU,CACbM,IAAI,EAAI,CAAC;AACf,CAAC;AAGM,eAAeX,mBAAmB,CAACY,MAAoC,EAAoB;QAY7EA,GAA2B;IAX9CX,KAAK,CAAC,CAAC,mCAAmC,EAAEW,MAAM,CAACC,GAAG,CAAC,QAAQ,EAAED,MAAM,CAACE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,IACE,iCAAiC;IACjCC,OAAO,CAACC,QAAQ,KAAK,QAAQ,IAC7B,2BAA2B;IAC3BJ,MAAM,CAACE,IAAI,KAAK,UAAU,EAC1B;QACA,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gDAAgD;IAChD,MAAMG,UAAU,GAAGL,CAAAA,GAA2B,GAA3BA,MAAM,CAACC,GAAG,CAAEK,KAAK,UAAU,SAAK,GAAhCN,KAAAA,CAAgC,GAAhCA,GAA2B,AAAE,CAAC,CAAC,CAAC,AAAC;IACpD,IAAI,CAACK,UAAU,EAAE;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IACD,WAAW;IACX,MAAMJ,GAAG,GAAGV,UAAU,CAACc,UAAU,CAAC,AAAC;IAEnC,IAAI,CAACJ,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IACDZ,KAAK,CAAC,CAAC,wBAAwB,CAAC,EAAEY,GAAG,CAAC,CAAC;IACvC,IAAI;QACF,MAAMM,UAAS,EAAA,CAACC,SAAS,CAAC,CAAC;;0DAE2B,EAAEP,GAAG,CAAC;YACpD,CAAC,CAAC,CAAC;QACX,OAAO,IAAI,CAAC;IACd,EAAE,OAAM;QACN,gEAAgE;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -2,72 +2,97 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.getServer = getServer;
6
- exports.logUnauthorized = logUnauthorized;
7
- exports.isPackageInstalledAsync = isPackageInstalledAsync;
8
- exports.launchActivityAsync = launchActivityAsync;
9
- exports.openAppIdAsync = openAppIdAsync;
10
- exports.openUrlAsync = openUrlAsync;
11
- exports.uninstallAsync = uninstallAsync;
12
- exports.getPackageInfoAsync = getPackageInfoAsync;
13
- exports.installAsync = installAsync;
14
- exports.adbArgs = adbArgs;
15
- exports.getAttachedDevicesAsync = getAttachedDevicesAsync;
16
- exports.getAdbNameForDeviceIdAsync = getAdbNameForDeviceIdAsync;
17
- exports.isDeviceBootedAsync = isDeviceBootedAsync;
18
- exports.isBootAnimationCompleteAsync = isBootAnimationCompleteAsync;
19
- exports.getDeviceABIsAsync = getDeviceABIsAsync;
20
- exports.getPropertyDataForDeviceAsync = getPropertyDataForDeviceAsync;
21
- exports.sanitizeAdbDeviceName = sanitizeAdbDeviceName;
22
- exports.DeviceABI = void 0;
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
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
30
+ });
23
31
  function _chalk() {
24
- const data = _interopRequireDefault(require("chalk"));
32
+ const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
25
33
  _chalk = function() {
26
34
  return data;
27
35
  };
28
36
  return data;
29
37
  }
30
38
  function _os() {
31
- const data = _interopRequireDefault(require("os"));
39
+ const data = /*#__PURE__*/ _interopRequireDefault(require("os"));
32
40
  _os = function() {
33
41
  return data;
34
42
  };
35
43
  return data;
36
44
  }
37
- var _adbserver = require("./ADBServer");
38
- var Log = _interopRequireWildcard(require("../../../log"));
39
- var _env = require("../../../utils/env");
40
- var _errors = require("../../../utils/errors");
41
- var _link = require("../../../utils/link");
45
+ const _adbserver = require("./ADBServer");
46
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
47
+ const _env = require("../../../utils/env");
48
+ const _errors = require("../../../utils/errors");
49
+ const _link = require("../../../utils/link");
42
50
  function _interopRequireDefault(obj) {
43
51
  return obj && obj.__esModule ? obj : {
44
52
  default: obj
45
53
  };
46
54
  }
47
- function _interopRequireWildcard(obj) {
48
- if (obj && obj.__esModule) {
55
+ function _getRequireWildcardCache(nodeInterop) {
56
+ if (typeof WeakMap !== "function") return null;
57
+ var cacheBabelInterop = new WeakMap();
58
+ var cacheNodeInterop = new WeakMap();
59
+ return (_getRequireWildcardCache = function(nodeInterop) {
60
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
61
+ })(nodeInterop);
62
+ }
63
+ function _interopRequireWildcard(obj, nodeInterop) {
64
+ if (!nodeInterop && obj && obj.__esModule) {
49
65
  return obj;
50
- } else {
51
- var newObj = {};
52
- if (obj != null) {
53
- for(var key in obj){
54
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
55
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
56
- if (desc.get || desc.set) {
57
- Object.defineProperty(newObj, key, desc);
58
- } else {
59
- newObj[key] = obj[key];
60
- }
61
- }
66
+ }
67
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
68
+ return {
69
+ default: obj
70
+ };
71
+ }
72
+ var cache = _getRequireWildcardCache(nodeInterop);
73
+ if (cache && cache.has(obj)) {
74
+ return cache.get(obj);
75
+ }
76
+ var newObj = {};
77
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
78
+ for(var key in obj){
79
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
80
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
81
+ if (desc && (desc.get || desc.set)) {
82
+ Object.defineProperty(newObj, key, desc);
83
+ } else {
84
+ newObj[key] = obj[key];
62
85
  }
63
86
  }
64
- newObj.default = obj;
65
- return newObj;
66
87
  }
88
+ newObj.default = obj;
89
+ if (cache) {
90
+ cache.set(obj, newObj);
91
+ }
92
+ return newObj;
67
93
  }
68
94
  const debug = require("debug")("expo:start:platforms:android:adb");
69
95
  var DeviceABI;
70
- exports.DeviceABI = DeviceABI;
71
96
  (function(DeviceABI) {
72
97
  DeviceABI[// The arch specific android target platforms are soft-deprecated.
73
98
  // Instead of using TargetPlatform as a combination arch + platform
@@ -80,7 +105,7 @@ exports.DeviceABI = DeviceABI;
80
105
  DeviceABI["armeabiV7a"] = "armeabi-v7a";
81
106
  DeviceABI["armeabi"] = "armeabi";
82
107
  DeviceABI["universal"] = "universal";
83
- })(DeviceABI || (exports.DeviceABI = DeviceABI = {}));
108
+ })(DeviceABI || (DeviceABI = {}));
84
109
  const CANT_START_ACTIVITY_ERROR = "Activity not started, unable to resolve Intent";
85
110
  // http://developer.android.com/ndk/guides/abis.html
86
111
  const PROP_CPU_NAME = "ro.product.cpu.abi";
@@ -94,7 +119,7 @@ function getServer() {
94
119
  return _server;
95
120
  }
96
121
  function logUnauthorized(device) {
97
- 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"))}`);
122
+ _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"))}`);
98
123
  }
99
124
  async function isPackageInstalledAsync(device, androidPackage) {
100
125
  const packages = await getServer().runAsync(adbArgs(device.pid, "shell", "pm", "list", "packages", "--user", _env.env.EXPO_ADB_USER, androidPackage));
@@ -152,8 +177,7 @@ async function getAttachedDevicesAsync() {
152
177
  // adb D 03-06 15:25:53 63677 4018815 adb_client.cpp:393] adb_query: host:devices-l
153
178
  // 03-04 12:29:44.557 16415 16415 D adb : commandline.cpp:1646 Using server socket: tcp:172.27.192.1:5037
154
179
  // 03-04 12:29:44.557 16415 16415 D adb : adb_client.cpp:160 _adb_connect: host:version
155
- .filter((line)=>!line.match(/\.cpp:[0-9]+/)
156
- );
180
+ .filter((line)=>!line.match(/\.cpp:[0-9]+/));
157
181
  // First line is `"List of devices attached"`, remove it
158
182
  // @ts-ignore: todo
159
183
  const attachedDevices = splitItems.slice(1, splitItems.length).map((line)=>{
@@ -168,8 +192,7 @@ async function getAttachedDevicesAsync() {
168
192
  type,
169
193
  isAuthorized
170
194
  };
171
- }).filter(({ props: [pid] })=>!!pid
172
- );
195
+ }).filter(({ props: [pid] })=>!!pid);
173
196
  const devicePromises = attachedDevices.map(async (props)=>{
174
197
  const { type , props: [pid, ...deviceInfo] , isAuthorized , } = props;
175
198
  let name = null;
@@ -177,8 +200,7 @@ async function getAttachedDevicesAsync() {
177
200
  if (isAuthorized) {
178
201
  // Possibly formatted like `model:Pixel_2`
179
202
  // Transform to `Pixel_2`
180
- const modelItem = deviceInfo.find((info)=>info.includes("model:")
181
- );
203
+ const modelItem = deviceInfo.find((info)=>info.includes("model:"));
182
204
  if (modelItem) {
183
205
  name = modelItem.replace("model:", "");
184
206
  }
@@ -221,8 +243,7 @@ async function isDeviceBootedAsync({ name } = {}) {
221
243
  return (ref = devices[0]) != null ? ref : null;
222
244
  }
223
245
  var ref1;
224
- return (ref1 = devices.find((device)=>device.name === name
225
- )) != null ? ref1 : null;
246
+ return (ref1 = devices.find((device)=>device.name === name)) != null ? ref1 : null;
226
247
  }
227
248
  async function isBootAnimationCompleteAsync(pid) {
228
249
  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 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};\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 */\nexport async function launchActivityAsync(\n device: DeviceContext,\n {\n launchActivity,\n }: {\n launchActivity: string;\n }\n) {\n return openAsync(\n adbArgs(\n device.pid,\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}\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 }[] = 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\n const isAuthorized = props[1] !== 'unauthorized';\n const type = line.includes('emulator') ? 'emulator' : 'device';\n return { props, type, isAuthorized };\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 } = 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 {\n pid,\n name,\n type,\n isAuthorized,\n isBooted: true,\n };\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","Log","debug","require","DeviceABI","arm","arm64","x64","x86","armeabiV7a","armeabi","universal","CANT_START_ACTIVITY_ERROR","PROP_CPU_NAME","PROP_CPU_ABI_LIST_NAME","PROP_BOOT_ANIMATION_STATE","_server","ADBServer","device","warn","chalk","bold","name","dim","learnMore","androidPackage","packages","runAsync","pid","env","EXPO_ADB_USER","lines","split","i","length","line","trim","launchActivity","openAsync","applicationId","url","replace","String","raw","args","results","includes","match","CommandError","substring","indexOf","appId","filePath","options","push","concat","output","splitItems","os","EOL","filter","attachedDevices","slice","map","props","Boolean","isAuthorized","type","devicePromises","deviceInfo","modelItem","find","info","isBooted","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 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};\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 */\nexport async function launchActivityAsync(\n device: DeviceContext,\n {\n launchActivity,\n }: {\n launchActivity: string;\n }\n) {\n return openAsync(\n adbArgs(\n device.pid,\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}\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 }[] = 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\n const isAuthorized = props[1] !== 'unauthorized';\n const type = line.includes('emulator') ? 'emulator' : 'device';\n return { props, type, isAuthorized };\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 } = 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 {\n pid,\n name,\n type,\n isAuthorized,\n isBooted: true,\n };\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","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","openAsync","applicationId","url","replace","String","raw","args","results","includes","match","CommandError","substring","indexOf","appId","filePath","options","push","concat","output","splitItems","os","EOL","filter","attachedDevices","slice","map","props","Boolean","isAuthorized","type","devicePromises","deviceInfo","modelItem","find","info","isBooted","Promise","all","devices","cpuAbiList","abi","prop","propCommand","getFileOutputAsync","parseAdbDeviceProperties","error","message","devicePropertiesString","properties","propertyExp","matchAll","deviceName","shift"],"mappings":"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"}