@expo/cli 0.17.10 → 0.18.1

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 (693) hide show
  1. package/build/bin/cli +98 -118
  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 +32 -12
  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 +78 -40
  16. package/build/src/api/graphql/client.js.map +1 -1
  17. package/build/src/api/graphql/queries/AppQuery.js +22 -8
  18. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  19. package/build/src/api/graphql/queries/UserQuery.js +13 -5
  20. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  21. package/build/src/api/graphql/types/App.js +12 -4
  22. package/build/src/api/graphql/types/App.js.map +1 -1
  23. package/build/src/api/rest/cache/FileSystemCache.js +25 -11
  24. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  25. package/build/src/api/rest/cache/response.js +13 -4
  26. package/build/src/api/rest/cache/response.js.map +1 -1
  27. package/build/src/api/rest/cache/wrapFetchWithCache.js +51 -18
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  29. package/build/src/api/rest/client.js +55 -30
  30. package/build/src/api/rest/client.js.map +1 -1
  31. package/build/src/api/rest/wrapFetchWithBaseUrl.js +13 -5
  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 +13 -4
  38. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  39. package/build/src/api/settings.js +16 -5
  40. package/build/src/api/settings.js.map +1 -1
  41. package/build/src/api/updateDevelopmentSession.js +33 -13
  42. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  43. package/build/src/api/user/UserSettings.js +31 -11
  44. package/build/src/api/user/UserSettings.js.map +1 -1
  45. package/build/src/api/user/actions.js +78 -41
  46. package/build/src/api/user/actions.js.map +1 -1
  47. package/build/src/api/user/expoSsoLauncher.js +72 -27
  48. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  49. package/build/src/api/user/otp.js +82 -50
  50. package/build/src/api/user/otp.js.map +1 -1
  51. package/build/src/api/user/user.js +80 -48
  52. package/build/src/api/user/user.js.map +1 -1
  53. package/build/src/config/configAsync.js +82 -45
  54. package/build/src/config/configAsync.js.map +1 -1
  55. package/build/src/config/index.js +52 -30
  56. package/build/src/config/index.js.map +1 -1
  57. package/build/src/customize/customizeAsync.js +21 -12
  58. package/build/src/customize/customizeAsync.js.map +1 -1
  59. package/build/src/customize/generate.js +74 -47
  60. package/build/src/customize/generate.js.map +1 -1
  61. package/build/src/customize/index.js +16 -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 +58 -37
  66. package/build/src/customize/templates.js.map +1 -1
  67. package/build/src/customize/typescript.js +50 -29
  68. package/build/src/customize/typescript.js.map +1 -1
  69. package/build/src/export/createMetadataJson.js +14 -7
  70. package/build/src/export/createMetadataJson.js.map +1 -1
  71. package/build/src/export/embed/exportEmbedAsync.js +103 -50
  72. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  73. package/build/src/export/embed/index.js +61 -37
  74. package/build/src/export/embed/index.js.map +1 -1
  75. package/build/src/export/embed/resolveOptions.js +14 -5
  76. package/build/src/export/embed/resolveOptions.js.map +1 -1
  77. package/build/src/export/embed/xcodeCompilerLogger.js +33 -9
  78. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  79. package/build/src/export/exportApp.js +110 -73
  80. package/build/src/export/exportApp.js.map +1 -1
  81. package/build/src/export/exportAssets.js +84 -47
  82. package/build/src/export/exportAssets.js.map +1 -1
  83. package/build/src/export/exportAsync.js +56 -27
  84. package/build/src/export/exportAsync.js.map +1 -1
  85. package/build/src/export/exportHermes.js +46 -26
  86. package/build/src/export/exportHermes.js.map +1 -1
  87. package/build/src/export/exportStaticAsync.js +109 -66
  88. package/build/src/export/exportStaticAsync.js.map +1 -1
  89. package/build/src/export/favicon.js +47 -15
  90. package/build/src/export/favicon.js.map +1 -1
  91. package/build/src/export/fork-bundleAsync.js +92 -44
  92. package/build/src/export/fork-bundleAsync.js.map +1 -1
  93. package/build/src/export/getPublicExpoManifest.js +16 -7
  94. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  95. package/build/src/export/getResolvedLocales.js +20 -5
  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 +55 -33
  100. package/build/src/export/index.js.map +1 -1
  101. package/build/src/export/metroAssetLocalPath.js +30 -8
  102. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  103. package/build/src/export/persistMetroAssets.js +59 -33
  104. package/build/src/export/persistMetroAssets.js.map +1 -1
  105. package/build/src/export/publicFolder.js +31 -11
  106. package/build/src/export/publicFolder.js.map +1 -1
  107. package/build/src/export/resolveOptions.js +26 -16
  108. package/build/src/export/resolveOptions.js.map +1 -1
  109. package/build/src/export/saveAssets.js +77 -49
  110. package/build/src/export/saveAssets.js.map +1 -1
  111. package/build/src/export/web/exportWebAsync.js +28 -13
  112. package/build/src/export/web/exportWebAsync.js.map +1 -1
  113. package/build/src/export/web/index.js +53 -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 +50 -26
  122. package/build/src/install/applyPlugins.js.map +1 -1
  123. package/build/src/install/checkPackages.js +68 -36
  124. package/build/src/install/checkPackages.js.map +1 -1
  125. package/build/src/install/fixPackages.js +58 -35
  126. package/build/src/install/fixPackages.js.map +1 -1
  127. package/build/src/install/index.js +21 -13
  128. package/build/src/install/index.js.map +1 -1
  129. package/build/src/install/installAsync.js +107 -64
  130. package/build/src/install/installAsync.js.map +1 -1
  131. package/build/src/install/installExpoPackage.js +60 -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 +29 -9
  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 +27 -15
  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 +97 -50
  150. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  151. package/build/src/prebuild/configureProjectAsync.js +64 -31
  152. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  153. package/build/src/prebuild/copyTemplateFiles.js +41 -17
  154. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  155. package/build/src/prebuild/ensureConfigAsync.js +74 -30
  156. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  157. package/build/src/prebuild/index.js +58 -38
  158. package/build/src/prebuild/index.js.map +1 -1
  159. package/build/src/prebuild/prebuildAsync.js +75 -52
  160. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  161. package/build/src/prebuild/renameTemplateAppName.js +124 -0
  162. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  163. package/build/src/prebuild/resolveOptions.js +85 -36
  164. package/build/src/prebuild/resolveOptions.js.map +1 -1
  165. package/build/src/prebuild/resolveTemplate.js +102 -46
  166. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  167. package/build/src/prebuild/updateFromTemplate.js +80 -41
  168. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  169. package/build/src/prebuild/updatePackageJson.js +111 -54
  170. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  171. package/build/src/prebuild/validateTemplatePlatforms.js +56 -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 +64 -32
  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 +56 -0
  182. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  183. package/build/src/run/android/resolveInstallApkName.js +28 -14
  184. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  185. package/build/src/run/android/resolveLaunchProps.js +16 -7
  186. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  187. package/build/src/run/android/resolveOptions.js +14 -9
  188. package/build/src/run/android/resolveOptions.js.map +1 -1
  189. package/build/src/run/android/runAndroidAsync.js +39 -27
  190. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  191. package/build/src/run/ensureNativeProject.js +24 -9
  192. package/build/src/run/ensureNativeProject.js.map +1 -1
  193. package/build/src/run/hints.js +23 -9
  194. package/build/src/run/hints.js.map +1 -1
  195. package/build/src/run/index.js +55 -35
  196. package/build/src/run/index.js.map +1 -1
  197. package/build/src/run/ios/XcodeBuild.js +126 -66
  198. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  199. package/build/src/run/ios/appleDevice/AppleDevice.js +52 -27
  200. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  201. package/build/src/run/ios/appleDevice/ClientManager.js +70 -31
  202. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  203. package/build/src/run/ios/appleDevice/client/AFCClient.js +94 -44
  204. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  205. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +63 -24
  206. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  207. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -6
  208. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  209. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +64 -25
  210. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  211. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +66 -28
  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 +42 -15
  216. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  217. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +78 -34
  218. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  219. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +85 -66
  220. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  221. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +41 -15
  222. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  223. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +30 -11
  224. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  225. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +39 -14
  226. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  227. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +36 -11
  228. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  229. package/build/src/run/ios/codeSigning/Security.js +40 -21
  230. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  231. package/build/src/run/ios/codeSigning/configureCodeSigning.js +55 -28
  232. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  233. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +67 -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 +30 -10
  238. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  239. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +33 -15
  240. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  241. package/build/src/run/ios/index.js +63 -35
  242. package/build/src/run/ios/index.js.map +1 -1
  243. package/build/src/run/ios/launchApp.js +65 -32
  244. package/build/src/run/ios/launchApp.js.map +1 -1
  245. package/build/src/run/ios/options/promptDevice.js +24 -14
  246. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  247. package/build/src/run/ios/options/resolveDevice.js +64 -41
  248. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  249. package/build/src/run/ios/options/resolveNativeScheme.js +80 -39
  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 +13 -4
  254. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  255. package/build/src/run/ios/runIosAsync.js +71 -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 +60 -27
  260. package/build/src/run/startBundler.js.map +1 -1
  261. package/build/src/start/detectDevClient.js +32 -0
  262. package/build/src/start/detectDevClient.js.map +1 -0
  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 +13 -4
  266. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  267. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +57 -24
  268. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  269. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +57 -24
  270. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  271. package/build/src/start/doctor/apple/XcodePrerequisite.js +132 -57
  272. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  273. package/build/src/start/doctor/apple/XcrunPrerequisite.js +34 -13
  274. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  275. package/build/src/start/doctor/dependencies/bundledNativeModules.js +69 -30
  276. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  277. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +120 -57
  278. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  279. package/build/src/start/doctor/dependencies/getMissingPackages.js +38 -12
  280. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  281. package/build/src/start/doctor/dependencies/getVersionedPackages.js +29 -15
  282. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  283. package/build/src/start/doctor/dependencies/resolvePackages.js +39 -15
  284. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  285. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +88 -55
  286. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  287. package/build/src/start/doctor/ngrok/ExternalModule.js +88 -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 +75 -45
  292. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  293. package/build/src/start/doctor/typescript/updateTSConfig.js +81 -40
  294. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  295. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +70 -32
  296. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  297. package/build/src/start/index.js +62 -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 +81 -41
  302. package/build/src/start/interface/commandsTable.js.map +1 -1
  303. package/build/src/start/interface/interactiveActions.js +91 -68
  304. package/build/src/start/interface/interactiveActions.js.map +1 -1
  305. package/build/src/start/interface/startInterface.js +84 -57
  306. package/build/src/start/interface/startInterface.js.map +1 -1
  307. package/build/src/start/platforms/AppIdResolver.js +16 -7
  308. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  309. package/build/src/start/platforms/DeviceManager.js +47 -20
  310. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  311. package/build/src/start/platforms/ExpoGoInstaller.js +81 -45
  312. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  313. package/build/src/start/platforms/PlatformManager.js +42 -20
  314. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  315. package/build/src/start/platforms/android/ADBServer.js +28 -13
  316. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  317. package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -10
  318. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  319. package/build/src/start/platforms/android/AndroidDeviceManager.js +86 -54
  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 +38 -11
  324. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  325. package/build/src/start/platforms/android/activateWindow.js +54 -21
  326. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  327. package/build/src/start/platforms/android/adb.js +89 -51
  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 +89 -44
  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 +38 -14
  336. package/build/src/start/platforms/android/gradle.js.map +1 -1
  337. package/build/src/start/platforms/android/promptAndroidDevice.js +22 -16
  338. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  339. package/build/src/start/platforms/ios/AppleAppIdResolver.js +31 -10
  340. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  341. package/build/src/start/platforms/ios/AppleDeviceManager.js +120 -62
  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 -7
  346. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  347. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +60 -27
  348. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  349. package/build/src/start/platforms/ios/getBestSimulator.js +60 -30
  350. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  351. package/build/src/start/platforms/ios/promptAppleDevice.js +25 -13
  352. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  353. package/build/src/start/platforms/ios/simctl.js +75 -46
  354. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  355. package/build/src/start/platforms/ios/simctlLogging.js +100 -47
  356. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  357. package/build/src/start/platforms/ios/xcrun.js +21 -6
  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 +37 -11
  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 +52 -27
  366. package/build/src/start/resolveOptions.js.map +1 -1
  367. package/build/src/start/server/AsyncNgrok.js +91 -47
  368. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  369. package/build/src/start/server/BundlerDevServer.js +77 -45
  370. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  371. package/build/src/start/server/DevServerManager.js +100 -70
  372. package/build/src/start/server/DevServerManager.js.map +1 -1
  373. package/build/src/start/server/DevToolsPluginManager.js +35 -18
  374. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  375. package/build/src/start/server/DevelopmentSession.js +57 -33
  376. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  377. package/build/src/start/server/ReactDevToolsProxy.js +37 -11
  378. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  379. package/build/src/start/server/UrlCreator.js +61 -27
  380. package/build/src/start/server/UrlCreator.js.map +1 -1
  381. package/build/src/start/server/getStaticRenderFunctions.js +125 -77
  382. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  383. package/build/src/start/server/metro/MetroBundlerDevServer.js +333 -158
  384. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  385. package/build/src/start/server/metro/MetroTerminalReporter.js +50 -28
  386. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  387. package/build/src/start/server/metro/TerminalReporter.js +40 -12
  388. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  389. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  390. package/build/src/start/server/metro/createExpoMetroResolver.js +82 -35
  391. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  392. package/build/src/start/server/metro/createJResolver.js +143 -73
  393. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  394. package/build/src/start/server/metro/createServerRouteMiddleware.js +47 -38
  395. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  396. package/build/src/start/server/metro/debugging/MessageHandler.js +30 -0
  397. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  398. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +18 -14
  399. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  400. package/build/src/start/server/metro/debugging/createHandlersFactory.js +64 -0
  401. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  402. package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +6 -8
  403. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  404. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +12 -6
  405. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  406. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +26 -0
  407. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
  408. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +28 -0
  409. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  410. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +25 -0
  411. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  412. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +31 -0
  413. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  414. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +14 -7
  415. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  416. package/build/src/start/server/metro/debugging/pageIsSupported.js +17 -0
  417. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  418. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  419. package/build/src/start/server/metro/externals.js +67 -69
  420. package/build/src/start/server/metro/externals.js.map +1 -1
  421. package/build/src/start/server/metro/fetchRouterManifest.js +26 -7
  422. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  423. package/build/src/start/server/metro/formatFileCandidates.js +28 -18
  424. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  425. package/build/src/start/server/metro/getCssModulesFromBundler.js +44 -12
  426. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  427. package/build/src/start/server/metro/instantiateMetro.js +141 -62
  428. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  429. package/build/src/start/server/metro/metroErrorInterface.js +75 -47
  430. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  431. package/build/src/start/server/metro/metroErrors.js +11 -2
  432. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  433. package/build/src/start/server/metro/metroVirtualModules.js +90 -0
  434. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  435. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +12 -3
  436. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  437. package/build/src/start/server/metro/router.js +64 -30
  438. package/build/src/start/server/metro/router.js.map +1 -1
  439. package/build/src/start/server/metro/runServer-fork.js +68 -19
  440. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  441. package/build/src/start/server/metro/serializeHtml.js +32 -19
  442. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  443. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +19 -5
  444. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  445. package/build/src/start/server/metro/withMetroMultiPlatform.js +232 -104
  446. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  447. package/build/src/start/server/metro/withMetroResolvers.js +95 -47
  448. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  449. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
  450. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  451. package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
  452. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  453. package/build/src/start/server/middleware/CreateFileMiddleware.js +33 -13
  454. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  455. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +27 -12
  456. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  457. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +65 -28
  458. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  459. package/build/src/start/server/middleware/ExpoMiddleware.js +54 -22
  460. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  461. package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
  462. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  463. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
  464. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  465. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +58 -21
  466. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  467. package/build/src/start/server/middleware/ManifestMiddleware.js +117 -63
  468. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  469. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +35 -10
  470. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  471. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +54 -27
  472. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  473. package/build/src/start/server/middleware/ServeStaticMiddleware.js +31 -10
  474. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  475. package/build/src/start/server/middleware/inspector/JsInspector.js +45 -22
  476. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  477. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +25 -11
  478. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  479. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
  480. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
  481. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +36 -14
  482. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  483. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +84 -38
  484. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  485. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +42 -20
  486. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  487. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +40 -13
  488. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  489. package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
  490. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  491. package/build/src/start/server/middleware/metroOptions.js +36 -18
  492. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  493. package/build/src/start/server/middleware/mutations.js +11 -4
  494. package/build/src/start/server/middleware/mutations.js.map +1 -1
  495. package/build/src/start/server/middleware/resolveAssets.js +78 -42
  496. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  497. package/build/src/start/server/middleware/resolvePlatform.js +21 -7
  498. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  499. package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
  500. package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
  501. package/build/src/start/server/openPlatforms.js +7 -6
  502. package/build/src/start/server/openPlatforms.js.map +1 -1
  503. package/build/src/start/server/platformBundlers.js +12 -3
  504. package/build/src/start/server/platformBundlers.js.map +1 -1
  505. package/build/src/start/server/serverLogLikeMetro.js +93 -40
  506. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  507. package/build/src/start/server/type-generation/expo-env.js +26 -6
  508. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  509. package/build/src/start/server/type-generation/routes.js +137 -82
  510. package/build/src/start/server/type-generation/routes.js.map +1 -1
  511. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +44 -23
  512. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  513. package/build/src/start/server/type-generation/tsconfig.js +41 -16
  514. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  515. package/build/src/start/server/webTemplate.js +43 -19
  516. package/build/src/start/server/webTemplate.js.map +1 -1
  517. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +105 -56
  518. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  519. package/build/src/start/server/webpack/compile.js +60 -27
  520. package/build/src/start/server/webpack/compile.js.map +1 -1
  521. package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
  522. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  523. package/build/src/start/server/webpack/resolveFromProject.js +20 -6
  524. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  525. package/build/src/start/server/webpack/tls.js +84 -34
  526. package/build/src/start/server/webpack/tls.js.map +1 -1
  527. package/build/src/start/startAsync.js +98 -52
  528. package/build/src/start/startAsync.js.map +1 -1
  529. package/build/src/utils/FileNotifier.js +73 -28
  530. package/build/src/utils/FileNotifier.js.map +1 -1
  531. package/build/src/utils/analytics/getDevClientProperties.js +48 -22
  532. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  533. package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
  534. package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
  535. package/build/src/utils/analytics/getMetroProperties.js +4 -1
  536. package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
  537. package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
  538. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  539. package/build/src/utils/ansi.js +5 -2
  540. package/build/src/utils/ansi.js.map +1 -1
  541. package/build/src/utils/args.js +83 -31
  542. package/build/src/utils/args.js.map +1 -1
  543. package/build/src/utils/array.js +16 -9
  544. package/build/src/utils/array.js.map +1 -1
  545. package/build/src/utils/cocoapods.js +127 -67
  546. package/build/src/utils/cocoapods.js.map +1 -1
  547. package/build/src/utils/codesigning.js +144 -72
  548. package/build/src/utils/codesigning.js.map +1 -1
  549. package/build/src/utils/createFileTransform.js +34 -71
  550. package/build/src/utils/createFileTransform.js.map +1 -1
  551. package/build/src/utils/delay.js +13 -6
  552. package/build/src/utils/delay.js.map +1 -1
  553. package/build/src/utils/dir.js +50 -40
  554. package/build/src/utils/dir.js.map +1 -1
  555. package/build/src/utils/downloadAppAsync.js +51 -18
  556. package/build/src/utils/downloadAppAsync.js.map +1 -1
  557. package/build/src/utils/downloadExpoGoAsync.js +47 -26
  558. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  559. package/build/src/utils/editor.js +65 -27
  560. package/build/src/utils/editor.js.map +1 -1
  561. package/build/src/utils/env.js +44 -33
  562. package/build/src/utils/env.js.map +1 -1
  563. package/build/src/utils/errors.js +35 -12
  564. package/build/src/utils/errors.js.map +1 -1
  565. package/build/src/utils/exit.js +10 -7
  566. package/build/src/utils/exit.js.map +1 -1
  567. package/build/src/utils/findUp.js +38 -8
  568. package/build/src/utils/findUp.js.map +1 -1
  569. package/build/src/utils/fn.js +11 -3
  570. package/build/src/utils/fn.js.map +1 -1
  571. package/build/src/utils/getOrPromptApplicationId.js +84 -46
  572. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  573. package/build/src/utils/getRunningProcess.js +63 -25
  574. package/build/src/utils/getRunningProcess.js.map +1 -1
  575. package/build/src/utils/git.js +76 -38
  576. package/build/src/utils/git.js.map +1 -1
  577. package/build/src/utils/glob.js +23 -12
  578. package/build/src/utils/glob.js.map +1 -1
  579. package/build/src/utils/interactive.js +5 -2
  580. package/build/src/utils/interactive.js.map +1 -1
  581. package/build/src/utils/ip.js +12 -3
  582. package/build/src/utils/ip.js.map +1 -1
  583. package/build/src/utils/isModuleSymlinked.js +20 -5
  584. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  585. package/build/src/utils/link.js +28 -8
  586. package/build/src/utils/link.js.map +1 -1
  587. package/build/src/utils/mergeGitIgnorePaths.js +45 -28
  588. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  589. package/build/src/utils/modifyConfigAsync.js +69 -31
  590. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  591. package/build/src/utils/modifyConfigPlugins.js +50 -23
  592. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  593. package/build/src/utils/nodeEnv.js +8 -1
  594. package/build/src/utils/nodeEnv.js.map +1 -1
  595. package/build/src/utils/nodeModules.js +29 -8
  596. package/build/src/utils/nodeModules.js.map +1 -1
  597. package/build/src/utils/npm.js +86 -31
  598. package/build/src/utils/npm.js.map +1 -1
  599. package/build/src/utils/obj.js +12 -4
  600. package/build/src/utils/obj.js.map +1 -1
  601. package/build/src/utils/open.js +13 -4
  602. package/build/src/utils/open.js.map +1 -1
  603. package/build/src/utils/ora.js +38 -22
  604. package/build/src/utils/ora.js.map +1 -1
  605. package/build/src/utils/plist.js +73 -29
  606. package/build/src/utils/plist.js.map +1 -1
  607. package/build/src/utils/port.js +74 -36
  608. package/build/src/utils/port.js.map +1 -1
  609. package/build/src/utils/profile.js +56 -29
  610. package/build/src/utils/profile.js.map +1 -1
  611. package/build/src/utils/progress.js +23 -13
  612. package/build/src/utils/progress.js.map +1 -1
  613. package/build/src/utils/prompts.js +45 -28
  614. package/build/src/utils/prompts.js.map +1 -1
  615. package/build/src/utils/resolveArgs.js +23 -20
  616. package/build/src/utils/resolveArgs.js.map +1 -1
  617. package/build/src/utils/scheme.js +128 -52
  618. package/build/src/utils/scheme.js.map +1 -1
  619. package/build/src/utils/strings.js +11 -4
  620. package/build/src/utils/strings.js.map +1 -1
  621. package/build/src/utils/tar.js +56 -23
  622. package/build/src/utils/tar.js.map +1 -1
  623. package/build/src/utils/telemetry/DetachedClient.js +90 -0
  624. package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
  625. package/build/src/utils/telemetry/RudderClient.js +101 -0
  626. package/build/src/utils/telemetry/RudderClient.js.map +1 -0
  627. package/build/src/utils/telemetry/flushDetached.js +44 -0
  628. package/build/src/utils/telemetry/flushDetached.js.map +1 -0
  629. package/build/src/utils/telemetry/getContext.js +112 -0
  630. package/build/src/utils/telemetry/getContext.js.map +1 -0
  631. package/build/src/utils/telemetry/index.js +37 -0
  632. package/build/src/utils/telemetry/index.js.map +1 -0
  633. package/build/src/utils/telemetry/types.js +6 -0
  634. package/build/src/utils/telemetry/types.js.map +1 -0
  635. package/build/src/utils/template.js +27 -2
  636. package/build/src/utils/template.js.map +1 -1
  637. package/build/src/utils/terminal.js +5 -2
  638. package/build/src/utils/terminal.js.map +1 -1
  639. package/build/src/utils/tsconfig/evaluateTsConfig.js +32 -14
  640. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  641. package/build/src/utils/tsconfig/loadTsConfigPaths.js +34 -14
  642. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  643. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
  644. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  645. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +20 -11
  646. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  647. package/build/src/utils/url.js +35 -19
  648. package/build/src/utils/url.js.map +1 -1
  649. package/build/src/utils/validateApplicationId.js +47 -28
  650. package/build/src/utils/validateApplicationId.js.map +1 -1
  651. package/build/src/utils/variadic.js +15 -11
  652. package/build/src/utils/variadic.js.map +1 -1
  653. package/build/src/whoami/index.js +43 -25
  654. package/build/src/whoami/index.js.map +1 -1
  655. package/build/src/whoami/whoamiAsync.js +50 -23
  656. package/build/src/whoami/whoamiAsync.js.map +1 -1
  657. package/package.json +16 -17
  658. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
  659. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
  660. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
  661. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
  662. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
  663. package/build/src/run/android/resolveGradleProps.js +0 -37
  664. package/build/src/run/android/resolveGradleProps.js.map +0 -1
  665. package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
  666. package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
  667. package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
  668. package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
  669. package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
  670. package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
  671. package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
  672. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js +0 -22
  673. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
  674. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
  675. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
  676. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
  677. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
  678. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
  679. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
  680. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
  681. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
  682. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
  683. package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
  684. package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
  685. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
  686. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
  687. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
  688. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
  689. package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
  690. package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
  691. package/build/src/utils/analytics/rudderstackClient.js +0 -147
  692. package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
  693. /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/start/platforms/PlatformManager.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport assert from 'assert';\nimport chalk from 'chalk';\n\nimport { AppIdResolver } from './AppIdResolver';\nimport { DeviceManager } from './DeviceManager';\nimport { Log } from '../../log';\nimport { logEventAsync } from '../../utils/analytics/rudderstackClient';\nimport { CommandError, UnimplementedError } from '../../utils/errors';\nimport { learnMore } from '../../utils/link';\n\nconst debug = require('debug')('expo:start:platforms:platformManager') as typeof console.log;\n\nexport interface BaseOpenInCustomProps {\n scheme?: string;\n applicationId?: string | null;\n}\n\nexport interface BaseResolveDeviceProps<IDevice> {\n /** Should prompt the user to select a device. */\n shouldPrompt?: boolean;\n /** The target device to use. */\n device?: IDevice;\n}\n\n/** An abstract class for launching a URL on a device. */\nexport class PlatformManager<\n IDevice,\n IOpenInCustomProps extends BaseOpenInCustomProps = BaseOpenInCustomProps,\n IResolveDeviceProps extends BaseResolveDeviceProps<IDevice> = BaseResolveDeviceProps<IDevice>,\n> {\n constructor(\n protected projectRoot: string,\n protected props: {\n platform: 'ios' | 'android';\n /** Get the base URL for the dev server hosting this platform manager. */\n getDevServerUrl: () => string | null;\n /** Expo Go URL. */\n getExpoGoUrl: () => string;\n /**\n * Get redirect URL for native disambiguation.\n * @returns a URL like `http://localhost:8081/_expo/loading`\n */\n getRedirectUrl: () => string | null;\n /** Dev Client */\n getCustomRuntimeUrl: (props?: { scheme?: string }) => string | null;\n /** Resolve a device, this function should automatically handle opening the device and asserting any system validations. */\n resolveDeviceAsync: (\n resolver?: Partial<IResolveDeviceProps>\n ) => Promise<DeviceManager<IDevice>>;\n }\n ) {}\n\n /** Returns the project application identifier or asserts that one is not defined. Exposed for testing. */\n _getAppIdResolver(): AppIdResolver {\n throw new UnimplementedError();\n }\n\n /**\n * Get the URL for users intending to launch the project in Expo Go.\n * The CLI will check if the project has a custom dev client and if the redirect page feature is enabled.\n * If both are true, the CLI will return the redirect page URL.\n */\n protected async getExpoGoOrCustomRuntimeUrlAsync(\n deviceManager: DeviceManager<IDevice>\n ): Promise<string> {\n // Determine if the redirect page feature is enabled first since it's the cheapest to check.\n const redirectUrl = this.props.getRedirectUrl();\n if (redirectUrl) {\n // If the redirect page feature is enabled, check if the project has a resolvable native identifier.\n let applicationId;\n try {\n applicationId = await this._getAppIdResolver().getAppIdAsync();\n } catch {\n Log.warn(\n chalk`\\u203A Launching in Expo Go. If you want to use a ` +\n `development build, you need to create and install one first, or, if you already ` +\n chalk`have a build, add {bold ios.bundleIdentifier} and {bold android.package} to ` +\n `this project's app config.\\n${learnMore('https://docs.expo.dev/development/build/')}`\n );\n }\n if (applicationId) {\n debug(`Resolving launch URL: (appId: ${applicationId}, redirect URL: ${redirectUrl})`);\n // NOTE(EvanBacon): This adds considerable amount of time to the command, we should consider removing or memoizing it.\n // Finally determine if the target device has a custom dev client installed.\n if (await deviceManager.isAppInstalledAsync(applicationId)) {\n return redirectUrl;\n } else {\n // Log a warning if no development build is available on the device, but the\n // interstitial page would otherwise be opened.\n Log.warn(\n chalk`\\u203A The {bold expo-dev-client} package is installed, but a development build is not ` +\n chalk`installed on {bold ${deviceManager.name}}.\\nLaunching in Expo Go. If you want to use a ` +\n `development build, you need to create and install one first.\\n${learnMore(\n 'https://docs.expo.dev/development/build/'\n )}`\n );\n }\n }\n }\n\n return this.props.getExpoGoUrl();\n }\n\n protected async openProjectInExpoGoAsync(\n resolveSettings: Partial<IResolveDeviceProps> = {}\n ): Promise<{ url: string }> {\n const deviceManager = await this.props.resolveDeviceAsync(resolveSettings);\n const url = await this.getExpoGoOrCustomRuntimeUrlAsync(deviceManager);\n\n deviceManager.logOpeningUrl(url);\n\n // TODO: Expensive, we should only do this once.\n const { exp } = getConfig(this.projectRoot);\n const installedExpo = await deviceManager.ensureExpoGoAsync(exp.sdkVersion);\n\n deviceManager.activateWindowAsync();\n await deviceManager.openUrlAsync(url);\n\n await logEventAsync('Open Url on Device', {\n platform: this.props.platform,\n installedExpo,\n });\n\n return { url };\n }\n\n private async openProjectInCustomRuntimeAsync(\n resolveSettings: Partial<IResolveDeviceProps> = {},\n props: Partial<IOpenInCustomProps> = {}\n ): Promise<{ url: string }> {\n debug(\n `open custom (${Object.entries(props)\n .map(([k, v]) => `${k}: ${v}`)\n .join(', ')})`\n );\n\n let url = this.props.getCustomRuntimeUrl({ scheme: props.scheme });\n debug(`Opening project in custom runtime: ${url} -- %O`, props);\n // TODO: It's unclear why we do application id validation when opening with a URL\n const applicationId = props.applicationId ?? (await this._getAppIdResolver().getAppIdAsync());\n\n const deviceManager = await this.props.resolveDeviceAsync(resolveSettings);\n\n if (!(await deviceManager.isAppInstalledAsync(applicationId))) {\n throw new CommandError(\n `No development build (${applicationId}) for this project is installed. ` +\n `Please make and install a development build on the device first.\\n${learnMore(\n 'https://docs.expo.dev/development/build/'\n )}`\n );\n }\n\n // TODO: Rethink analytics\n await logEventAsync('Open Url on Device', {\n platform: this.props.platform,\n installedExpo: false,\n });\n\n if (!url) {\n url = this._resolveAlternativeLaunchUrl(applicationId, props);\n }\n\n deviceManager.logOpeningUrl(url);\n await deviceManager.activateWindowAsync();\n await deviceManager.openUrlAsync(url);\n\n return {\n url,\n };\n }\n\n /** Launch the project on a device given the input runtime. */\n async openAsync(\n options:\n | {\n runtime: 'expo' | 'web';\n }\n | {\n runtime: 'custom';\n props?: Partial<IOpenInCustomProps>;\n },\n resolveSettings: Partial<IResolveDeviceProps> = {}\n ): Promise<{ url: string }> {\n debug(\n `open (runtime: ${options.runtime}, platform: ${this.props.platform}, device: %O, shouldPrompt: ${resolveSettings.shouldPrompt})`,\n resolveSettings.device\n );\n if (options.runtime === 'expo') {\n return this.openProjectInExpoGoAsync(resolveSettings);\n } else if (options.runtime === 'web') {\n return this.openWebProjectAsync(resolveSettings);\n } else if (options.runtime === 'custom') {\n return this.openProjectInCustomRuntimeAsync(resolveSettings, options.props);\n } else {\n throw new CommandError(`Invalid runtime target: ${options.runtime}`);\n }\n }\n\n /** Open the current web project (Webpack) in a device . */\n private async openWebProjectAsync(resolveSettings: Partial<IResolveDeviceProps> = {}): Promise<{\n url: string;\n }> {\n const url = this.props.getDevServerUrl();\n assert(url, 'Dev server is not running.');\n\n const deviceManager = await this.props.resolveDeviceAsync(resolveSettings);\n deviceManager.logOpeningUrl(url);\n await deviceManager.activateWindowAsync();\n await deviceManager.openUrlAsync(url);\n\n return { url };\n }\n\n /** If the launch URL cannot be determined (`custom` runtimes) then an alternative string can be provided to open the device. Often a device ID or activity to launch. Exposed for testing. */\n _resolveAlternativeLaunchUrl(\n applicationId: string,\n props: Partial<IOpenInCustomProps> = {}\n ): string {\n throw new UnimplementedError();\n }\n}\n"],"names":["debug","require","PlatformManager","constructor","projectRoot","props","_getAppIdResolver","UnimplementedError","getExpoGoOrCustomRuntimeUrlAsync","deviceManager","redirectUrl","getRedirectUrl","applicationId","getAppIdAsync","Log","warn","chalk","learnMore","isAppInstalledAsync","name","getExpoGoUrl","openProjectInExpoGoAsync","resolveSettings","resolveDeviceAsync","url","logOpeningUrl","exp","getConfig","installedExpo","ensureExpoGoAsync","sdkVersion","activateWindowAsync","openUrlAsync","logEventAsync","platform","openProjectInCustomRuntimeAsync","Object","entries","map","k","v","join","getCustomRuntimeUrl","scheme","CommandError","_resolveAlternativeLaunchUrl","openAsync","options","runtime","shouldPrompt","device","openWebProjectAsync","getDevServerUrl","assert"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/start/platforms/PlatformManager.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport assert from 'assert';\nimport chalk from 'chalk';\n\nimport { AppIdResolver } from './AppIdResolver';\nimport { DeviceManager } from './DeviceManager';\nimport { Log } from '../../log';\nimport { CommandError, UnimplementedError } from '../../utils/errors';\nimport { learnMore } from '../../utils/link';\nimport { logEventAsync } from '../../utils/telemetry';\n\nconst debug = require('debug')('expo:start:platforms:platformManager') as typeof console.log;\n\nexport interface BaseOpenInCustomProps {\n scheme?: string;\n applicationId?: string | null;\n}\n\nexport interface BaseResolveDeviceProps<IDevice> {\n /** Should prompt the user to select a device. */\n shouldPrompt?: boolean;\n /** The target device to use. */\n device?: IDevice;\n}\n\n/** An abstract class for launching a URL on a device. */\nexport class PlatformManager<\n IDevice,\n IOpenInCustomProps extends BaseOpenInCustomProps = BaseOpenInCustomProps,\n IResolveDeviceProps extends BaseResolveDeviceProps<IDevice> = BaseResolveDeviceProps<IDevice>,\n> {\n constructor(\n protected projectRoot: string,\n protected props: {\n platform: 'ios' | 'android';\n /** Get the base URL for the dev server hosting this platform manager. */\n getDevServerUrl: () => string | null;\n /** Expo Go URL. */\n getExpoGoUrl: () => string;\n /**\n * Get redirect URL for native disambiguation.\n * @returns a URL like `http://localhost:8081/_expo/loading`\n */\n getRedirectUrl: () => string | null;\n /** Dev Client */\n getCustomRuntimeUrl: (props?: { scheme?: string }) => string | null;\n /** Resolve a device, this function should automatically handle opening the device and asserting any system validations. */\n resolveDeviceAsync: (\n resolver?: Partial<IResolveDeviceProps>\n ) => Promise<DeviceManager<IDevice>>;\n }\n ) {}\n\n /** Returns the project application identifier or asserts that one is not defined. Exposed for testing. */\n _getAppIdResolver(): AppIdResolver {\n throw new UnimplementedError();\n }\n\n /**\n * Get the URL for users intending to launch the project in Expo Go.\n * The CLI will check if the project has a custom dev client and if the redirect page feature is enabled.\n * If both are true, the CLI will return the redirect page URL.\n */\n protected async getExpoGoOrCustomRuntimeUrlAsync(\n deviceManager: DeviceManager<IDevice>\n ): Promise<string> {\n // Determine if the redirect page feature is enabled first since it's the cheapest to check.\n const redirectUrl = this.props.getRedirectUrl();\n if (redirectUrl) {\n // If the redirect page feature is enabled, check if the project has a resolvable native identifier.\n let applicationId;\n try {\n applicationId = await this._getAppIdResolver().getAppIdAsync();\n } catch {\n Log.warn(\n chalk`\\u203A Launching in Expo Go. If you want to use a ` +\n `development build, you need to create and install one first, or, if you already ` +\n chalk`have a build, add {bold ios.bundleIdentifier} and {bold android.package} to ` +\n `this project's app config.\\n${learnMore('https://docs.expo.dev/development/build/')}`\n );\n }\n if (applicationId) {\n debug(`Resolving launch URL: (appId: ${applicationId}, redirect URL: ${redirectUrl})`);\n // NOTE(EvanBacon): This adds considerable amount of time to the command, we should consider removing or memoizing it.\n // Finally determine if the target device has a custom dev client installed.\n if (\n await deviceManager.isAppInstalledAndIfSoReturnContainerPathForIOSAsync(applicationId)\n ) {\n return redirectUrl;\n } else {\n // Log a warning if no development build is available on the device, but the\n // interstitial page would otherwise be opened.\n Log.warn(\n chalk`\\u203A The {bold expo-dev-client} package is installed, but a development build is not ` +\n chalk`installed on {bold ${deviceManager.name}}.\\nLaunching in Expo Go. If you want to use a ` +\n `development build, you need to create and install one first.\\n${learnMore(\n 'https://docs.expo.dev/development/build/'\n )}`\n );\n }\n }\n }\n\n return this.props.getExpoGoUrl();\n }\n\n protected async openProjectInExpoGoAsync(\n resolveSettings: Partial<IResolveDeviceProps> = {}\n ): Promise<{ url: string }> {\n const deviceManager = await this.props.resolveDeviceAsync(resolveSettings);\n const url = await this.getExpoGoOrCustomRuntimeUrlAsync(deviceManager);\n\n deviceManager.logOpeningUrl(url);\n\n // TODO: Expensive, we should only do this once.\n const { exp } = getConfig(this.projectRoot);\n const sdkVersion = exp.sdkVersion;\n assert(sdkVersion, 'sdkVersion should be resolved by getConfig');\n const installedExpo = await deviceManager.ensureExpoGoAsync(sdkVersion);\n\n deviceManager.activateWindowAsync();\n await deviceManager.openUrlAsync(url);\n\n await logEventAsync('Open Url on Device', {\n platform: this.props.platform,\n installedExpo,\n });\n\n return { url };\n }\n\n private async openProjectInCustomRuntimeAsync(\n resolveSettings: Partial<IResolveDeviceProps> = {},\n props: Partial<IOpenInCustomProps> = {}\n ): Promise<{ url: string }> {\n debug(\n `open custom (${Object.entries(props)\n .map(([k, v]) => `${k}: ${v}`)\n .join(', ')})`\n );\n\n let url = this.props.getCustomRuntimeUrl({ scheme: props.scheme });\n debug(`Opening project in custom runtime: ${url} -- %O`, props);\n // TODO: It's unclear why we do application id validation when opening with a URL\n const applicationId = props.applicationId ?? (await this._getAppIdResolver().getAppIdAsync());\n\n const deviceManager = await this.props.resolveDeviceAsync(resolveSettings);\n\n if (!(await deviceManager.isAppInstalledAndIfSoReturnContainerPathForIOSAsync(applicationId))) {\n throw new CommandError(\n `No development build (${applicationId}) for this project is installed. ` +\n `Please make and install a development build on the device first.\\n${learnMore(\n 'https://docs.expo.dev/development/build/'\n )}`\n );\n }\n\n // TODO: Rethink analytics\n await logEventAsync('Open Url on Device', {\n platform: this.props.platform,\n installedExpo: false,\n });\n\n if (!url) {\n url = this._resolveAlternativeLaunchUrl(applicationId, props);\n }\n\n deviceManager.logOpeningUrl(url);\n await deviceManager.activateWindowAsync();\n await deviceManager.openUrlAsync(url);\n\n return {\n url,\n };\n }\n\n /** Launch the project on a device given the input runtime. */\n async openAsync(\n options:\n | {\n runtime: 'expo' | 'web';\n }\n | {\n runtime: 'custom';\n props?: Partial<IOpenInCustomProps>;\n },\n resolveSettings: Partial<IResolveDeviceProps> = {}\n ): Promise<{ url: string }> {\n debug(\n `open (runtime: ${options.runtime}, platform: ${this.props.platform}, device: %O, shouldPrompt: ${resolveSettings.shouldPrompt})`,\n resolveSettings.device\n );\n if (options.runtime === 'expo') {\n return this.openProjectInExpoGoAsync(resolveSettings);\n } else if (options.runtime === 'web') {\n return this.openWebProjectAsync(resolveSettings);\n } else if (options.runtime === 'custom') {\n return this.openProjectInCustomRuntimeAsync(resolveSettings, options.props);\n } else {\n throw new CommandError(`Invalid runtime target: ${options.runtime}`);\n }\n }\n\n /** Open the current web project (Webpack) in a device . */\n private async openWebProjectAsync(resolveSettings: Partial<IResolveDeviceProps> = {}): Promise<{\n url: string;\n }> {\n const url = this.props.getDevServerUrl();\n assert(url, 'Dev server is not running.');\n\n const deviceManager = await this.props.resolveDeviceAsync(resolveSettings);\n deviceManager.logOpeningUrl(url);\n await deviceManager.activateWindowAsync();\n await deviceManager.openUrlAsync(url);\n\n return { url };\n }\n\n /** If the launch URL cannot be determined (`custom` runtimes) then an alternative string can be provided to open the device. Often a device ID or activity to launch. Exposed for testing. */\n _resolveAlternativeLaunchUrl(\n applicationId: string,\n props: Partial<IOpenInCustomProps> = {}\n ): string {\n throw new UnimplementedError();\n }\n}\n"],"names":["PlatformManager","debug","require","constructor","projectRoot","props","_getAppIdResolver","UnimplementedError","getExpoGoOrCustomRuntimeUrlAsync","deviceManager","redirectUrl","getRedirectUrl","applicationId","getAppIdAsync","Log","warn","chalk","learnMore","isAppInstalledAndIfSoReturnContainerPathForIOSAsync","name","getExpoGoUrl","openProjectInExpoGoAsync","resolveSettings","resolveDeviceAsync","url","logOpeningUrl","exp","getConfig","sdkVersion","assert","installedExpo","ensureExpoGoAsync","activateWindowAsync","openUrlAsync","logEventAsync","platform","openProjectInCustomRuntimeAsync","Object","entries","map","k","v","join","getCustomRuntimeUrl","scheme","CommandError","_resolveAlternativeLaunchUrl","openAsync","options","runtime","shouldPrompt","device","openWebProjectAsync","getDevServerUrl"],"mappings":"AAAA;;;;+BA0BaA,iBAAe;;aAAfA,eAAe;;;yBA1BF,cAAc;;;;;;;8DACrB,QAAQ;;;;;;;8DACT,OAAO;;;;;;qBAIL,WAAW;wBACkB,oBAAoB;sBAC3C,kBAAkB;2BACd,uBAAuB;;;;;;AAErD,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,sCAAsC,CAAC,AAAsB,AAAC;AAetF,MAAMF,eAAe;IAK1BG,YACYC,WAAmB,EACnBC,KAiBT,CACD;QAnBUD,mBAAAA,WAAmB,CAAA;QACnBC,aAAAA,KAiBT,CAAA;IACA;IAEH,wGAAwG,GACxGC,iBAAiB,GAAkB;QACjC,MAAM,IAAIC,OAAkB,mBAAA,EAAE,CAAC;IACjC;IAEA;;;;GAIC,SACeC,gCAAgC,CAC9CC,aAAqC,EACpB;QACjB,4FAA4F;QAC5F,MAAMC,WAAW,GAAG,IAAI,CAACL,KAAK,CAACM,cAAc,EAAE,AAAC;QAChD,IAAID,WAAW,EAAE;YACf,oGAAoG;YACpG,IAAIE,aAAa,AAAC;YAClB,IAAI;gBACFA,aAAa,GAAG,MAAM,IAAI,CAACN,iBAAiB,EAAE,CAACO,aAAa,EAAE,CAAC;YACjE,EAAE,OAAM;gBACNC,IAAG,IAAA,CAACC,IAAI,CACNC,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,kDAAkD,CAAC,GACvD,CAAC,gFAAgF,CAAC,GAClFA,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,4EAA4E,CAAC,GACnF,CAAC,4BAA4B,EAAEC,IAAAA,KAAS,UAAA,EAAC,0CAA0C,CAAC,CAAC,CAAC,CACzF,CAAC;YACJ,CAAC;YACD,IAAIL,aAAa,EAAE;gBACjBX,KAAK,CAAC,CAAC,8BAA8B,EAAEW,aAAa,CAAC,gBAAgB,EAAEF,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvF,sHAAsH;gBACtH,4EAA4E;gBAC5E,IACE,MAAMD,aAAa,CAACS,mDAAmD,CAACN,aAAa,CAAC,EACtF;oBACA,OAAOF,WAAW,CAAC;gBACrB,OAAO;oBACL,4EAA4E;oBAC5E,+CAA+C;oBAC/CI,IAAG,IAAA,CAACC,IAAI,CACNC,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,uFAAuF,CAAC,GAC5FA,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,mBAAmB,EAAEP,aAAa,CAACU,IAAI,CAAC,+CAA+C,CAAC,GAC9F,CAAC,8DAA8D,EAAEF,IAAAA,KAAS,UAAA,EACxE,0CAA0C,CAC3C,CAAC,CAAC,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAACZ,KAAK,CAACe,YAAY,EAAE,CAAC;IACnC;UAEgBC,wBAAwB,CACtCC,eAA6C,GAAG,EAAE,EACxB;QAC1B,MAAMb,aAAa,GAAG,MAAM,IAAI,CAACJ,KAAK,CAACkB,kBAAkB,CAACD,eAAe,CAAC,AAAC;QAC3E,MAAME,GAAG,GAAG,MAAM,IAAI,CAAChB,gCAAgC,CAACC,aAAa,CAAC,AAAC;QAEvEA,aAAa,CAACgB,aAAa,CAACD,GAAG,CAAC,CAAC;QAEjC,gDAAgD;QAChD,MAAM,EAAEE,GAAG,CAAA,EAAE,GAAGC,IAAAA,OAAS,EAAA,UAAA,EAAC,IAAI,CAACvB,WAAW,CAAC,AAAC;QAC5C,MAAMwB,UAAU,GAAGF,GAAG,CAACE,UAAU,AAAC;QAClCC,IAAAA,OAAM,EAAA,QAAA,EAACD,UAAU,EAAE,4CAA4C,CAAC,CAAC;QACjE,MAAME,aAAa,GAAG,MAAMrB,aAAa,CAACsB,iBAAiB,CAACH,UAAU,CAAC,AAAC;QAExEnB,aAAa,CAACuB,mBAAmB,EAAE,CAAC;QACpC,MAAMvB,aAAa,CAACwB,YAAY,CAACT,GAAG,CAAC,CAAC;QAEtC,MAAMU,IAAAA,UAAa,cAAA,EAAC,oBAAoB,EAAE;YACxCC,QAAQ,EAAE,IAAI,CAAC9B,KAAK,CAAC8B,QAAQ;YAC7BL,aAAa;SACd,CAAC,CAAC;QAEH,OAAO;YAAEN,GAAG;SAAE,CAAC;IACjB;UAEcY,+BAA+B,CAC3Cd,eAA6C,GAAG,EAAE,EAClDjB,KAAkC,GAAG,EAAE,EACb;QAC1BJ,KAAK,CACH,CAAC,aAAa,EAAEoC,MAAM,CAACC,OAAO,CAACjC,KAAK,CAAC,CAClCkC,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAK,CAAC,EAAED,CAAC,CAAC,EAAE,EAAEC,CAAC,CAAC,CAAC,CAAC,CAC7BC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACjB,CAAC;QAEF,IAAIlB,GAAG,GAAG,IAAI,CAACnB,KAAK,CAACsC,mBAAmB,CAAC;YAAEC,MAAM,EAAEvC,KAAK,CAACuC,MAAM;SAAE,CAAC,AAAC;QACnE3C,KAAK,CAAC,CAAC,mCAAmC,EAAEuB,GAAG,CAAC,MAAM,CAAC,EAAEnB,KAAK,CAAC,CAAC;YAE1CA,cAAmB;QADzC,iFAAiF;QACjF,MAAMO,aAAa,GAAGP,CAAAA,cAAmB,GAAnBA,KAAK,CAACO,aAAa,YAAnBP,cAAmB,GAAK,MAAM,IAAI,CAACC,iBAAiB,EAAE,CAACO,aAAa,EAAE,AAAC,AAAC;QAE9F,MAAMJ,aAAa,GAAG,MAAM,IAAI,CAACJ,KAAK,CAACkB,kBAAkB,CAACD,eAAe,CAAC,AAAC;QAE3E,IAAI,CAAE,MAAMb,aAAa,CAACS,mDAAmD,CAACN,aAAa,CAAC,AAAC,EAAE;YAC7F,MAAM,IAAIiC,OAAY,aAAA,CACpB,CAAC,sBAAsB,EAAEjC,aAAa,CAAC,iCAAiC,CAAC,GACvE,CAAC,kEAAkE,EAAEK,IAAAA,KAAS,UAAA,EAC5E,0CAA0C,CAC3C,CAAC,CAAC,CACN,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,MAAMiB,IAAAA,UAAa,cAAA,EAAC,oBAAoB,EAAE;YACxCC,QAAQ,EAAE,IAAI,CAAC9B,KAAK,CAAC8B,QAAQ;YAC7BL,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QAEH,IAAI,CAACN,GAAG,EAAE;YACRA,GAAG,GAAG,IAAI,CAACsB,4BAA4B,CAAClC,aAAa,EAAEP,KAAK,CAAC,CAAC;QAChE,CAAC;QAEDI,aAAa,CAACgB,aAAa,CAACD,GAAG,CAAC,CAAC;QACjC,MAAMf,aAAa,CAACuB,mBAAmB,EAAE,CAAC;QAC1C,MAAMvB,aAAa,CAACwB,YAAY,CAACT,GAAG,CAAC,CAAC;QAEtC,OAAO;YACLA,GAAG;SACJ,CAAC;IACJ;IAEA,4DAA4D,SACtDuB,SAAS,CACbC,OAOK,EACL1B,eAA6C,GAAG,EAAE,EACxB;QAC1BrB,KAAK,CACH,CAAC,eAAe,EAAE+C,OAAO,CAACC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC5C,KAAK,CAAC8B,QAAQ,CAAC,4BAA4B,EAAEb,eAAe,CAAC4B,YAAY,CAAC,CAAC,CAAC,EACjI5B,eAAe,CAAC6B,MAAM,CACvB,CAAC;QACF,IAAIH,OAAO,CAACC,OAAO,KAAK,MAAM,EAAE;YAC9B,OAAO,IAAI,CAAC5B,wBAAwB,CAACC,eAAe,CAAC,CAAC;QACxD,OAAO,IAAI0B,OAAO,CAACC,OAAO,KAAK,KAAK,EAAE;YACpC,OAAO,IAAI,CAACG,mBAAmB,CAAC9B,eAAe,CAAC,CAAC;QACnD,OAAO,IAAI0B,OAAO,CAACC,OAAO,KAAK,QAAQ,EAAE;YACvC,OAAO,IAAI,CAACb,+BAA+B,CAACd,eAAe,EAAE0B,OAAO,CAAC3C,KAAK,CAAC,CAAC;QAC9E,OAAO;YACL,MAAM,IAAIwC,OAAY,aAAA,CAAC,CAAC,wBAAwB,EAAEG,OAAO,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;IACH;IAEA,yDAAyD,SAC3CG,mBAAmB,CAAC9B,eAA6C,GAAG,EAAE,EAEjF;QACD,MAAME,GAAG,GAAG,IAAI,CAACnB,KAAK,CAACgD,eAAe,EAAE,AAAC;QACzCxB,IAAAA,OAAM,EAAA,QAAA,EAACL,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAE1C,MAAMf,aAAa,GAAG,MAAM,IAAI,CAACJ,KAAK,CAACkB,kBAAkB,CAACD,eAAe,CAAC,AAAC;QAC3Eb,aAAa,CAACgB,aAAa,CAACD,GAAG,CAAC,CAAC;QACjC,MAAMf,aAAa,CAACuB,mBAAmB,EAAE,CAAC;QAC1C,MAAMvB,aAAa,CAACwB,YAAY,CAACT,GAAG,CAAC,CAAC;QAEtC,OAAO;YAAEA,GAAG;SAAE,CAAC;IACjB;IAEA,4LAA4L,GAC5LsB,4BAA4B,CAC1BlC,aAAqB,EACrBP,KAAkC,GAAG,EAAE,EAC/B;QACR,MAAM,IAAIE,OAAkB,mBAAA,EAAE,CAAC;IACjC;CACD"}
@@ -2,13 +2,29 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- var _spawnAsync = _interopRequireDefault(require("@expo/spawn-async"));
6
- var _childProcess = require("child_process");
7
- var _androidSdk = require("./AndroidSdk");
8
- var _log = require("../../../log");
9
- var _env = require("../../../utils/env");
10
- var _errors = require("../../../utils/errors");
11
- var _exit = require("../../../utils/exit");
5
+ Object.defineProperty(exports, "ADBServer", {
6
+ enumerable: true,
7
+ get: ()=>ADBServer
8
+ });
9
+ function _spawnAsync() {
10
+ const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/spawn-async"));
11
+ _spawnAsync = function() {
12
+ return data;
13
+ };
14
+ return data;
15
+ }
16
+ function _childProcess() {
17
+ const data = require("child_process");
18
+ _childProcess = function() {
19
+ return data;
20
+ };
21
+ return data;
22
+ }
23
+ const _androidSdk = require("./AndroidSdk");
24
+ const _log = require("../../../log");
25
+ const _env = require("../../../utils/env");
26
+ const _errors = require("../../../utils/errors");
27
+ const _exit = require("../../../utils/exit");
12
28
  function _interopRequireDefault(obj) {
13
29
  return obj && obj.__esModule ? obj : {
14
30
  default: obj
@@ -21,7 +37,7 @@ class ADBServer {
21
37
  removeExitHook = ()=>{};
22
38
  /** Returns the command line reference to ADB. */ getAdbExecutablePath() {
23
39
  try {
24
- const sdkRoot = (0, _androidSdk).assertSdkRoot();
40
+ const sdkRoot = (0, _androidSdk.assertSdkRoot)();
25
41
  if (sdkRoot) {
26
42
  return `${sdkRoot}/platform-tools/adb`;
27
43
  }
@@ -36,13 +52,13 @@ class ADBServer {
36
52
  return false;
37
53
  }
38
54
  // clean up
39
- this.removeExitHook = (0, _exit).installExitHooks(()=>{
55
+ this.removeExitHook = (0, _exit.installExitHooks)(()=>{
40
56
  if (this.isRunning) {
41
57
  this.stopAsync();
42
58
  }
43
59
  });
44
60
  const adb = this.getAdbExecutablePath();
45
- const result = await this.resolveAdbPromise((0, _spawnAsync).default(adb, [
61
+ const result = await this.resolveAdbPromise((0, _spawnAsync().default)(adb, [
46
62
  "start-server"
47
63
  ]));
48
64
  const lines = result.stderr.trim().split(/\r?\n/);
@@ -78,14 +94,14 @@ class ADBServer {
78
94
  adb,
79
95
  ...args
80
96
  ].join(" "));
81
- const result = await this.resolveAdbPromise((0, _spawnAsync).default(adb, args));
97
+ const result = await this.resolveAdbPromise((0, _spawnAsync().default)(adb, args));
82
98
  return result.output.join("\n");
83
99
  }
84
100
  /** Get ADB file output. Useful for reading device state/settings. */ async getFileOutputAsync(args) {
85
101
  // TODO: Add a global package that installs adb to the path.
86
102
  const adb = this.getAdbExecutablePath();
87
103
  await this.startAsync();
88
- const results = await this.resolveAdbPromise((0, _childProcess).execFileSync(adb, args, {
104
+ const results = await this.resolveAdbPromise((0, _childProcess().execFileSync)(adb, args, {
89
105
  encoding: "latin1",
90
106
  stdio: "pipe"
91
107
  }));
@@ -116,6 +132,5 @@ class ADBServer {
116
132
  }
117
133
  }
118
134
  }
119
- exports.ADBServer = ADBServer;
120
135
 
121
136
  //# sourceMappingURL=ADBServer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/android/ADBServer.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport { execFileSync } from 'child_process';\n\nimport { assertSdkRoot } from './AndroidSdk';\nimport { Log } from '../../../log';\nimport { env } from '../../../utils/env';\nimport { AbortCommandError, CommandError } from '../../../utils/errors';\nimport { installExitHooks } from '../../../utils/exit';\n\nconst debug = require('debug')('expo:start:platforms:android:adbServer') as typeof console.log;\n\nconst BEGINNING_OF_ADB_ERROR_MESSAGE = 'error: ';\n\n// This is a tricky class since it controls a system state (side-effects).\n// A more ideal solution would be to implement ADB in JS.\n// The main reason this is a class is to control the flow of testing.\n\nexport class ADBServer {\n isRunning: boolean = false;\n removeExitHook: () => void = () => {};\n\n /** Returns the command line reference to ADB. */\n getAdbExecutablePath(): string {\n try {\n const sdkRoot = assertSdkRoot();\n if (sdkRoot) {\n return `${sdkRoot}/platform-tools/adb`;\n }\n } catch (error: any) {\n Log.warn(error.message);\n }\n\n Log.debug('Failed to resolve the Android SDK path, falling back to global adb executable');\n return 'adb';\n }\n\n /** Start the ADB server. */\n async startAsync(): Promise<boolean> {\n if (this.isRunning) {\n return false;\n }\n // clean up\n this.removeExitHook = installExitHooks(() => {\n if (this.isRunning) {\n this.stopAsync();\n }\n });\n const adb = this.getAdbExecutablePath();\n const result = await this.resolveAdbPromise(spawnAsync(adb, ['start-server']));\n const lines = result.stderr.trim().split(/\\r?\\n/);\n const isStarted = lines.includes('* daemon started successfully');\n this.isRunning = isStarted;\n return isStarted;\n }\n\n /** Kill the ADB server. */\n async stopAsync(): Promise<boolean> {\n debug('Stopping ADB server');\n\n if (!this.isRunning) {\n debug('ADB server is not running');\n return false;\n }\n this.removeExitHook();\n try {\n await this.runAsync(['kill-server']);\n return true;\n } catch (error: any) {\n Log.error('Failed to stop ADB server: ' + error.message);\n return false;\n } finally {\n debug('Stopped ADB server');\n this.isRunning = false;\n }\n }\n\n /** Execute an ADB command with given args. */\n async runAsync(args: string[]): Promise<string> {\n // TODO: Add a global package that installs adb to the path.\n const adb = this.getAdbExecutablePath();\n\n await this.startAsync();\n\n debug([adb, ...args].join(' '));\n const result = await this.resolveAdbPromise(spawnAsync(adb, args));\n return result.output.join('\\n');\n }\n\n /** Get ADB file output. Useful for reading device state/settings. */\n async getFileOutputAsync(args: string[]): Promise<string> {\n // TODO: Add a global package that installs adb to the path.\n const adb = this.getAdbExecutablePath();\n\n await this.startAsync();\n\n const results = await this.resolveAdbPromise(\n execFileSync(adb, args, {\n encoding: 'latin1',\n stdio: 'pipe',\n })\n );\n debug('[ADB] File output:\\n', results);\n return results;\n }\n\n /** Formats error info. */\n async resolveAdbPromise<T>(promise: T | Promise<T>): Promise<T> {\n try {\n return await promise;\n } catch (error: any) {\n // User pressed ctrl+c to cancel the process...\n if (error.signal === 'SIGINT') {\n throw new AbortCommandError();\n }\n if (error.status === 255 && error.stdout.includes('Bad user number')) {\n const userNumber = error.stdout.match(/Bad user number: (.+)/)?.[1] ?? env.EXPO_ADB_USER;\n throw new CommandError(\n 'EXPO_ADB_USER',\n `Invalid ADB user number \"${userNumber}\" set with environment variable EXPO_ADB_USER. Run \"adb shell pm list users\" to see valid user numbers.`\n );\n }\n // TODO: Support heap corruption for adb 29 (process exits with code -1073740940) (windows and linux)\n let errorMessage = (error.stderr || error.stdout || error.message).trim();\n if (errorMessage.startsWith(BEGINNING_OF_ADB_ERROR_MESSAGE)) {\n errorMessage = errorMessage.substring(BEGINNING_OF_ADB_ERROR_MESSAGE.length);\n }\n\n error.message = errorMessage;\n throw error;\n }\n }\n}\n"],"names":["debug","require","BEGINNING_OF_ADB_ERROR_MESSAGE","ADBServer","isRunning","removeExitHook","getAdbExecutablePath","sdkRoot","assertSdkRoot","error","Log","warn","message","startAsync","installExitHooks","stopAsync","adb","result","resolveAdbPromise","spawnAsync","lines","stderr","trim","split","isStarted","includes","runAsync","args","join","output","getFileOutputAsync","results","execFileSync","encoding","stdio","promise","signal","AbortCommandError","status","stdout","userNumber","match","env","EXPO_ADB_USER","CommandError","errorMessage","startsWith","substring","length"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/android/ADBServer.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport { execFileSync } from 'child_process';\n\nimport { assertSdkRoot } from './AndroidSdk';\nimport { Log } from '../../../log';\nimport { env } from '../../../utils/env';\nimport { AbortCommandError, CommandError } from '../../../utils/errors';\nimport { installExitHooks } from '../../../utils/exit';\n\nconst debug = require('debug')('expo:start:platforms:android:adbServer') as typeof console.log;\n\nconst BEGINNING_OF_ADB_ERROR_MESSAGE = 'error: ';\n\n// This is a tricky class since it controls a system state (side-effects).\n// A more ideal solution would be to implement ADB in JS.\n// The main reason this is a class is to control the flow of testing.\n\nexport class ADBServer {\n isRunning: boolean = false;\n removeExitHook: () => void = () => {};\n\n /** Returns the command line reference to ADB. */\n getAdbExecutablePath(): string {\n try {\n const sdkRoot = assertSdkRoot();\n if (sdkRoot) {\n return `${sdkRoot}/platform-tools/adb`;\n }\n } catch (error: any) {\n Log.warn(error.message);\n }\n\n Log.debug('Failed to resolve the Android SDK path, falling back to global adb executable');\n return 'adb';\n }\n\n /** Start the ADB server. */\n async startAsync(): Promise<boolean> {\n if (this.isRunning) {\n return false;\n }\n // clean up\n this.removeExitHook = installExitHooks(() => {\n if (this.isRunning) {\n this.stopAsync();\n }\n });\n const adb = this.getAdbExecutablePath();\n const result = await this.resolveAdbPromise(spawnAsync(adb, ['start-server']));\n const lines = result.stderr.trim().split(/\\r?\\n/);\n const isStarted = lines.includes('* daemon started successfully');\n this.isRunning = isStarted;\n return isStarted;\n }\n\n /** Kill the ADB server. */\n async stopAsync(): Promise<boolean> {\n debug('Stopping ADB server');\n\n if (!this.isRunning) {\n debug('ADB server is not running');\n return false;\n }\n this.removeExitHook();\n try {\n await this.runAsync(['kill-server']);\n return true;\n } catch (error: any) {\n Log.error('Failed to stop ADB server: ' + error.message);\n return false;\n } finally {\n debug('Stopped ADB server');\n this.isRunning = false;\n }\n }\n\n /** Execute an ADB command with given args. */\n async runAsync(args: string[]): Promise<string> {\n // TODO: Add a global package that installs adb to the path.\n const adb = this.getAdbExecutablePath();\n\n await this.startAsync();\n\n debug([adb, ...args].join(' '));\n const result = await this.resolveAdbPromise(spawnAsync(adb, args));\n return result.output.join('\\n');\n }\n\n /** Get ADB file output. Useful for reading device state/settings. */\n async getFileOutputAsync(args: string[]): Promise<string> {\n // TODO: Add a global package that installs adb to the path.\n const adb = this.getAdbExecutablePath();\n\n await this.startAsync();\n\n const results = await this.resolveAdbPromise(\n execFileSync(adb, args, {\n encoding: 'latin1',\n stdio: 'pipe',\n })\n );\n debug('[ADB] File output:\\n', results);\n return results;\n }\n\n /** Formats error info. */\n async resolveAdbPromise<T>(promise: T | Promise<T>): Promise<T> {\n try {\n return await promise;\n } catch (error: any) {\n // User pressed ctrl+c to cancel the process...\n if (error.signal === 'SIGINT') {\n throw new AbortCommandError();\n }\n if (error.status === 255 && error.stdout.includes('Bad user number')) {\n const userNumber = error.stdout.match(/Bad user number: (.+)/)?.[1] ?? env.EXPO_ADB_USER;\n throw new CommandError(\n 'EXPO_ADB_USER',\n `Invalid ADB user number \"${userNumber}\" set with environment variable EXPO_ADB_USER. Run \"adb shell pm list users\" to see valid user numbers.`\n );\n }\n // TODO: Support heap corruption for adb 29 (process exits with code -1073740940) (windows and linux)\n let errorMessage = (error.stderr || error.stdout || error.message).trim();\n if (errorMessage.startsWith(BEGINNING_OF_ADB_ERROR_MESSAGE)) {\n errorMessage = errorMessage.substring(BEGINNING_OF_ADB_ERROR_MESSAGE.length);\n }\n\n error.message = errorMessage;\n throw error;\n }\n }\n}\n"],"names":["ADBServer","debug","require","BEGINNING_OF_ADB_ERROR_MESSAGE","isRunning","removeExitHook","getAdbExecutablePath","sdkRoot","assertSdkRoot","error","Log","warn","message","startAsync","installExitHooks","stopAsync","adb","result","resolveAdbPromise","spawnAsync","lines","stderr","trim","split","isStarted","includes","runAsync","args","join","output","getFileOutputAsync","results","execFileSync","encoding","stdio","promise","signal","AbortCommandError","status","stdout","userNumber","match","env","EXPO_ADB_USER","CommandError","errorMessage","startsWith","substring","length"],"mappings":"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"}
@@ -2,8 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- var _configPlugins = require("@expo/config-plugins");
6
- var _appIdResolver = require("../AppIdResolver");
5
+ Object.defineProperty(exports, "AndroidAppIdResolver", {
6
+ enumerable: true,
7
+ get: ()=>AndroidAppIdResolver
8
+ });
9
+ function _configPlugins() {
10
+ const data = require("@expo/config-plugins");
11
+ _configPlugins = function() {
12
+ return data;
13
+ };
14
+ return data;
15
+ }
16
+ const _appIdResolver = require("../AppIdResolver");
7
17
  const debug = require("debug")("expo:start:platforms:android:AndroidAppIdResolver");
8
18
  class AndroidAppIdResolver extends _appIdResolver.AppIdResolver {
9
19
  constructor(projectRoot){
@@ -11,25 +21,24 @@ class AndroidAppIdResolver extends _appIdResolver.AppIdResolver {
11
21
  }
12
22
  async hasNativeProjectAsync() {
13
23
  try {
14
- await _configPlugins.AndroidConfig.Paths.getProjectPathOrThrowAsync(this.projectRoot);
24
+ await _configPlugins().AndroidConfig.Paths.getProjectPathOrThrowAsync(this.projectRoot);
15
25
  return true;
16
26
  } catch (error) {
17
- debug("Expected error checking for native project:", error);
27
+ debug("Expected error checking for native project:", error.message);
18
28
  return false;
19
29
  }
20
30
  }
21
31
  async resolveAppIdFromNativeAsync() {
22
- const applicationIdFromGradle = await _configPlugins.AndroidConfig.Package.getApplicationIdAsync(this.projectRoot).catch(()=>null
23
- );
32
+ const applicationIdFromGradle = await _configPlugins().AndroidConfig.Package.getApplicationIdAsync(this.projectRoot).catch(()=>null);
24
33
  if (applicationIdFromGradle) {
25
34
  return applicationIdFromGradle;
26
35
  }
27
36
  try {
28
37
  var ref, ref1;
29
- const filePath = await _configPlugins.AndroidConfig.Paths.getAndroidManifestAsync(this.projectRoot);
30
- const androidManifest = await _configPlugins.AndroidConfig.Manifest.readAndroidManifestAsync(filePath);
38
+ const filePath = await _configPlugins().AndroidConfig.Paths.getAndroidManifestAsync(this.projectRoot);
39
+ const androidManifest = await _configPlugins().AndroidConfig.Manifest.readAndroidManifestAsync(filePath);
31
40
  // Assert MainActivity defined.
32
- await _configPlugins.AndroidConfig.Manifest.getMainActivityOrThrow(androidManifest);
41
+ await _configPlugins().AndroidConfig.Manifest.getMainActivityOrThrow(androidManifest);
33
42
  if ((ref = androidManifest.manifest) == null ? void 0 : (ref1 = ref.$) == null ? void 0 : ref1.package) {
34
43
  return androidManifest.manifest.$.package;
35
44
  }
@@ -39,6 +48,5 @@ class AndroidAppIdResolver extends _appIdResolver.AppIdResolver {
39
48
  return null;
40
49
  }
41
50
  }
42
- exports.AndroidAppIdResolver = AndroidAppIdResolver;
43
51
 
44
52
  //# sourceMappingURL=AndroidAppIdResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/android/AndroidAppIdResolver.ts"],"sourcesContent":["import { AndroidConfig } from '@expo/config-plugins';\n\nimport { AppIdResolver } from '../AppIdResolver';\n\nconst debug = require('debug')(\n 'expo:start:platforms:android:AndroidAppIdResolver'\n) as typeof console.log;\n\n/** Resolves the Android package name from the Expo config or native files. */\nexport class AndroidAppIdResolver extends AppIdResolver {\n constructor(projectRoot: string) {\n super(projectRoot, 'android', 'android.package');\n }\n\n async hasNativeProjectAsync(): Promise<boolean> {\n try {\n await AndroidConfig.Paths.getProjectPathOrThrowAsync(this.projectRoot);\n return true;\n } catch (error: any) {\n debug('Expected error checking for native project:', error);\n return false;\n }\n }\n\n async resolveAppIdFromNativeAsync(): Promise<string | null> {\n const applicationIdFromGradle = await AndroidConfig.Package.getApplicationIdAsync(\n this.projectRoot\n ).catch(() => null);\n if (applicationIdFromGradle) {\n return applicationIdFromGradle;\n }\n\n try {\n const filePath = await AndroidConfig.Paths.getAndroidManifestAsync(this.projectRoot);\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(filePath);\n // Assert MainActivity defined.\n await AndroidConfig.Manifest.getMainActivityOrThrow(androidManifest);\n if (androidManifest.manifest?.$?.package) {\n return androidManifest.manifest.$.package;\n }\n } catch (error: any) {\n debug('Expected error resolving the package name from the AndroidManifest.xml:', error);\n }\n\n return null;\n }\n}\n"],"names":["debug","require","AndroidAppIdResolver","AppIdResolver","constructor","projectRoot","hasNativeProjectAsync","AndroidConfig","Paths","getProjectPathOrThrowAsync","error","resolveAppIdFromNativeAsync","applicationIdFromGradle","Package","getApplicationIdAsync","catch","androidManifest","filePath","getAndroidManifestAsync","Manifest","readAndroidManifestAsync","getMainActivityOrThrow","manifest","$","package"],"mappings":"AAAA;;;;AAA8B,IAAA,cAAsB,WAAtB,sBAAsB,CAAA;AAEtB,IAAA,cAAkB,WAAlB,kBAAkB,CAAA;AAEhD,MAAMA,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAC5B,mDAAmD,CACpD,AAAsB,AAAC;AAGjB,MAAMC,oBAAoB,SAASC,cAAa,cAAA;IACrDC,YAAYC,WAAmB,CAAE;QAC/B,KAAK,CAACA,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;KAClD;IAED,MAAMC,qBAAqB,GAAqB;QAC9C,IAAI;YACF,MAAMC,cAAa,cAAA,CAACC,KAAK,CAACC,0BAA0B,CAAC,IAAI,CAACJ,WAAW,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;SACb,CAAC,OAAOK,KAAK,EAAO;YACnBV,KAAK,CAAC,6CAA6C,EAAEU,KAAK,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;SACd;KACF;IAED,MAAMC,2BAA2B,GAA2B;QAC1D,MAAMC,uBAAuB,GAAG,MAAML,cAAa,cAAA,CAACM,OAAO,CAACC,qBAAqB,CAC/E,IAAI,CAACT,WAAW,CACjB,CAACU,KAAK,CAAC,IAAM,IAAI;QAAA,CAAC,AAAC;QACpB,IAAIH,uBAAuB,EAAE;YAC3B,OAAOA,uBAAuB,CAAC;SAChC;QAED,IAAI;gBAKEI,GAAwB;YAJ5B,MAAMC,QAAQ,GAAG,MAAMV,cAAa,cAAA,CAACC,KAAK,CAACU,uBAAuB,CAAC,IAAI,CAACb,WAAW,CAAC,AAAC;YACrF,MAAMW,eAAe,GAAG,MAAMT,cAAa,cAAA,CAACY,QAAQ,CAACC,wBAAwB,CAACH,QAAQ,CAAC,AAAC;YACxF,+BAA+B;YAC/B,MAAMV,cAAa,cAAA,CAACY,QAAQ,CAACE,sBAAsB,CAACL,eAAe,CAAC,CAAC;YACrE,IAAIA,CAAAA,GAAwB,GAAxBA,eAAe,CAACM,QAAQ,SAAG,GAA3BN,KAAAA,CAA2B,GAA3BA,QAAAA,GAAwB,CAAEO,CAAC,SAAA,GAA3BP,KAAAA,CAA2B,QAAEQ,OAAO,AAAT,EAAW;gBACxC,OAAOR,eAAe,CAACM,QAAQ,CAACC,CAAC,CAACC,OAAO,CAAC;aAC3C;SACF,CAAC,OAAOd,KAAK,EAAO;YACnBV,KAAK,CAAC,yEAAyE,EAAEU,KAAK,CAAC,CAAC;SACzF;QAED,OAAO,IAAI,CAAC;KACb;CACF;QArCYR,oBAAoB,GAApBA,oBAAoB"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/android/AndroidAppIdResolver.ts"],"sourcesContent":["import { AndroidConfig } from '@expo/config-plugins';\n\nimport { AppIdResolver } from '../AppIdResolver';\n\nconst debug = require('debug')(\n 'expo:start:platforms:android:AndroidAppIdResolver'\n) as typeof console.log;\n\n/** Resolves the Android package name from the Expo config or native files. */\nexport class AndroidAppIdResolver extends AppIdResolver {\n constructor(projectRoot: string) {\n super(projectRoot, 'android', 'android.package');\n }\n\n async hasNativeProjectAsync(): Promise<boolean> {\n try {\n await AndroidConfig.Paths.getProjectPathOrThrowAsync(this.projectRoot);\n return true;\n } catch (error: any) {\n debug('Expected error checking for native project:', error.message);\n return false;\n }\n }\n\n async resolveAppIdFromNativeAsync(): Promise<string | null> {\n const applicationIdFromGradle = await AndroidConfig.Package.getApplicationIdAsync(\n this.projectRoot\n ).catch(() => null);\n if (applicationIdFromGradle) {\n return applicationIdFromGradle;\n }\n\n try {\n const filePath = await AndroidConfig.Paths.getAndroidManifestAsync(this.projectRoot);\n const androidManifest = await AndroidConfig.Manifest.readAndroidManifestAsync(filePath);\n // Assert MainActivity defined.\n await AndroidConfig.Manifest.getMainActivityOrThrow(androidManifest);\n if (androidManifest.manifest?.$?.package) {\n return androidManifest.manifest.$.package;\n }\n } catch (error: any) {\n debug('Expected error resolving the package name from the AndroidManifest.xml:', error);\n }\n\n return null;\n }\n}\n"],"names":["AndroidAppIdResolver","debug","require","AppIdResolver","constructor","projectRoot","hasNativeProjectAsync","AndroidConfig","Paths","getProjectPathOrThrowAsync","error","message","resolveAppIdFromNativeAsync","applicationIdFromGradle","Package","getApplicationIdAsync","catch","androidManifest","filePath","getAndroidManifestAsync","Manifest","readAndroidManifestAsync","getMainActivityOrThrow","manifest","$","package"],"mappings":"AAAA;;;;+BASaA,sBAAoB;;aAApBA,oBAAoB;;;yBATH,sBAAsB;;;;;;+BAEtB,kBAAkB;AAEhD,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAC5B,mDAAmD,CACpD,AAAsB,AAAC;AAGjB,MAAMF,oBAAoB,SAASG,cAAa,cAAA;IACrDC,YAAYC,WAAmB,CAAE;QAC/B,KAAK,CAACA,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACnD;UAEMC,qBAAqB,GAAqB;QAC9C,IAAI;YACF,MAAMC,cAAa,EAAA,cAAA,CAACC,KAAK,CAACC,0BAA0B,CAAC,IAAI,CAACJ,WAAW,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,EAAE,OAAOK,KAAK,EAAO;YACnBT,KAAK,CAAC,6CAA6C,EAAES,KAAK,CAACC,OAAO,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;QACf,CAAC;IACH;UAEMC,2BAA2B,GAA2B;QAC1D,MAAMC,uBAAuB,GAAG,MAAMN,cAAa,EAAA,cAAA,CAACO,OAAO,CAACC,qBAAqB,CAC/E,IAAI,CAACV,WAAW,CACjB,CAACW,KAAK,CAAC,IAAM,IAAI,CAAC,AAAC;QACpB,IAAIH,uBAAuB,EAAE;YAC3B,OAAOA,uBAAuB,CAAC;QACjC,CAAC;QAED,IAAI;gBAKEI,GAAwB;YAJ5B,MAAMC,QAAQ,GAAG,MAAMX,cAAa,EAAA,cAAA,CAACC,KAAK,CAACW,uBAAuB,CAAC,IAAI,CAACd,WAAW,CAAC,AAAC;YACrF,MAAMY,eAAe,GAAG,MAAMV,cAAa,EAAA,cAAA,CAACa,QAAQ,CAACC,wBAAwB,CAACH,QAAQ,CAAC,AAAC;YACxF,+BAA+B;YAC/B,MAAMX,cAAa,EAAA,cAAA,CAACa,QAAQ,CAACE,sBAAsB,CAACL,eAAe,CAAC,CAAC;YACrE,IAAIA,CAAAA,GAAwB,GAAxBA,eAAe,CAACM,QAAQ,SAAG,GAA3BN,KAAAA,CAA2B,GAA3BA,QAAAA,GAAwB,CAAEO,CAAC,SAAA,GAA3BP,KAAAA,CAA2B,QAAEQ,OAAO,AAAT,EAAW;gBACxC,OAAOR,eAAe,CAACM,QAAQ,CAACC,CAAC,CAACC,OAAO,CAAC;YAC5C,CAAC;QACH,EAAE,OAAOf,KAAK,EAAO;YACnBT,KAAK,CAAC,yEAAyE,EAAES,KAAK,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,IAAI,CAAC;IACd;CACD"}
@@ -2,55 +2,88 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- var _assert = _interopRequireDefault(require("assert"));
6
- var _chalk = _interopRequireDefault(require("chalk"));
7
- var _activateWindow = require("./activateWindow");
8
- var AndroidDebugBridge = _interopRequireWildcard(require("./adb"));
9
- var _emulator = require("./emulator");
10
- var _getDevices = require("./getDevices");
11
- var _promptAndroidDevice = require("./promptAndroidDevice");
12
- var Log = _interopRequireWildcard(require("../../../log"));
13
- var _errors = require("../../../utils/errors");
14
- var _url = require("../../../utils/url");
15
- var _deviceManager = require("../DeviceManager");
16
- var _expoGoInstaller = require("../ExpoGoInstaller");
5
+ Object.defineProperty(exports, "AndroidDeviceManager", {
6
+ enumerable: true,
7
+ get: ()=>AndroidDeviceManager
8
+ });
9
+ function _assert() {
10
+ const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
11
+ _assert = function() {
12
+ return data;
13
+ };
14
+ return data;
15
+ }
16
+ function _chalk() {
17
+ const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
18
+ _chalk = function() {
19
+ return data;
20
+ };
21
+ return data;
22
+ }
23
+ const _activateWindow = require("./activateWindow");
24
+ const _adb = /*#__PURE__*/ _interopRequireWildcard(require("./adb"));
25
+ const _emulator = require("./emulator");
26
+ const _getDevices = require("./getDevices");
27
+ const _promptAndroidDevice = require("./promptAndroidDevice");
28
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
29
+ const _errors = require("../../../utils/errors");
30
+ const _url = require("../../../utils/url");
31
+ const _deviceManager = require("../DeviceManager");
32
+ const _expoGoInstaller = require("../ExpoGoInstaller");
17
33
  function _interopRequireDefault(obj) {
18
34
  return obj && obj.__esModule ? obj : {
19
35
  default: obj
20
36
  };
21
37
  }
22
- function _interopRequireWildcard(obj) {
23
- if (obj && obj.__esModule) {
38
+ function _getRequireWildcardCache(nodeInterop) {
39
+ if (typeof WeakMap !== "function") return null;
40
+ var cacheBabelInterop = new WeakMap();
41
+ var cacheNodeInterop = new WeakMap();
42
+ return (_getRequireWildcardCache = function(nodeInterop) {
43
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
44
+ })(nodeInterop);
45
+ }
46
+ function _interopRequireWildcard(obj, nodeInterop) {
47
+ if (!nodeInterop && obj && obj.__esModule) {
24
48
  return obj;
25
- } else {
26
- var newObj = {};
27
- if (obj != null) {
28
- for(var key in obj){
29
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
30
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
31
- if (desc.get || desc.set) {
32
- Object.defineProperty(newObj, key, desc);
33
- } else {
34
- newObj[key] = obj[key];
35
- }
36
- }
49
+ }
50
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
51
+ return {
52
+ default: obj
53
+ };
54
+ }
55
+ var cache = _getRequireWildcardCache(nodeInterop);
56
+ if (cache && cache.has(obj)) {
57
+ return cache.get(obj);
58
+ }
59
+ var newObj = {};
60
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
61
+ for(var key in obj){
62
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
63
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
64
+ if (desc && (desc.get || desc.set)) {
65
+ Object.defineProperty(newObj, key, desc);
66
+ } else {
67
+ newObj[key] = obj[key];
37
68
  }
38
69
  }
39
- newObj.default = obj;
40
- return newObj;
41
70
  }
71
+ newObj.default = obj;
72
+ if (cache) {
73
+ cache.set(obj, newObj);
74
+ }
75
+ return newObj;
42
76
  }
43
77
  const EXPO_GO_APPLICATION_IDENTIFIER = "host.exp.exponent";
44
78
  class AndroidDeviceManager extends _deviceManager.DeviceManager {
45
79
  static async resolveFromNameAsync(name) {
46
- const devices = await (0, _getDevices).getDevicesAsync();
47
- const device1 = devices.find((device)=>device.name === name
48
- );
49
- if (!device1) {
80
+ const devices = await (0, _getDevices.getDevicesAsync)();
81
+ const device = devices.find((device)=>device.name === name);
82
+ if (!device) {
50
83
  throw new _errors.CommandError("Could not find device with name: " + name);
51
84
  }
52
85
  return AndroidDeviceManager.resolveAsync({
53
- device: device1,
86
+ device,
54
87
  shouldPrompt: false
55
88
  });
56
89
  }
@@ -62,8 +95,8 @@ class AndroidDeviceManager extends _deviceManager.DeviceManager {
62
95
  }
63
96
  return manager;
64
97
  }
65
- const devices = await (0, _getDevices).getDevicesAsync();
66
- const _device = shouldPrompt ? await (0, _promptAndroidDevice).promptForDeviceAsync(devices) : devices[0];
98
+ const devices = await (0, _getDevices.getDevicesAsync)();
99
+ const _device = shouldPrompt ? await (0, _promptAndroidDevice.promptForDeviceAsync)(devices) : devices[0];
67
100
  return AndroidDeviceManager.resolveAsync({
68
101
  device: _device,
69
102
  shouldPrompt: false
@@ -79,7 +112,7 @@ class AndroidDeviceManager extends _deviceManager.DeviceManager {
79
112
  }
80
113
  async getAppVersionAsync(applicationId) {
81
114
  var ref;
82
- const info = await AndroidDebugBridge.getPackageInfoAsync(this.device, {
115
+ const info = await _adb.getPackageInfoAsync(this.device, {
83
116
  appId: applicationId
84
117
  });
85
118
  const regex = /versionName=([0-9.]+)/;
@@ -88,37 +121,37 @@ class AndroidDeviceManager extends _deviceManager.DeviceManager {
88
121
  }
89
122
  async attemptToStartAsync() {
90
123
  // TODO: Add a light-weight method for checking since a device could disconnect.
91
- if (!await AndroidDebugBridge.isDeviceBootedAsync(this.device)) {
92
- this.device = await (0, _emulator).startDeviceAsync(this.device);
124
+ if (!await _adb.isDeviceBootedAsync(this.device)) {
125
+ this.device = await (0, _emulator.startDeviceAsync)(this.device);
93
126
  }
94
127
  if (this.device.isAuthorized === false) {
95
- AndroidDebugBridge.logUnauthorized(this.device);
128
+ _adb.logUnauthorized(this.device);
96
129
  return null;
97
130
  }
98
131
  return this.device;
99
132
  }
100
133
  async startAsync() {
101
134
  const device = await this.attemptToStartAsync();
102
- (0, _assert).default(device, `Failed to boot emulator.`);
135
+ (0, _assert().default)(device, `Failed to boot emulator.`);
103
136
  return this.device;
104
137
  }
105
138
  async installAppAsync(binaryPath) {
106
- await AndroidDebugBridge.installAsync(this.device, {
139
+ await _adb.installAsync(this.device, {
107
140
  filePath: binaryPath
108
141
  });
109
142
  }
110
143
  async uninstallAppAsync(appId) {
111
144
  // we need to check if the app is installed, else we might bump into "Failure [DELETE_FAILED_INTERNAL_ERROR]"
112
- const isInstalled = await this.isAppInstalledAsync(appId);
145
+ const isInstalled = await this.isAppInstalledAndIfSoReturnContainerPathForIOSAsync(appId);
113
146
  if (!isInstalled) {
114
147
  return;
115
148
  }
116
149
  try {
117
- await AndroidDebugBridge.uninstallAsync(this.device, {
150
+ await _adb.uninstallAsync(this.device, {
118
151
  appId
119
152
  });
120
153
  } catch (e) {
121
- Log.error(`Could not uninstall app "${appId}" from your device, please uninstall it manually and try again.`);
154
+ _log.error(`Could not uninstall app "${appId}" from your device, please uninstall it manually and try again.`);
122
155
  throw e;
123
156
  }
124
157
  }
@@ -126,25 +159,25 @@ class AndroidDeviceManager extends _deviceManager.DeviceManager {
126
159
  * @param launchActivity Activity to launch `[application identifier]/.[main activity name]`, ex: `com.bacon.app/.MainActivity`
127
160
  */ async launchActivityAsync(launchActivity) {
128
161
  try {
129
- return await AndroidDebugBridge.launchActivityAsync(this.device, {
162
+ return await _adb.launchActivityAsync(this.device, {
130
163
  launchActivity
131
164
  });
132
165
  } catch (error) {
133
166
  let errorMessage = `Couldn't open Android app with activity "${launchActivity}" on device "${this.name}".`;
134
167
  if (error instanceof _errors.CommandError && error.code === "APP_NOT_INSTALLED") {
135
- errorMessage += `\nThe app might not be installed, try installing it with: ${_chalk.default.bold(`npx expo run:android -d ${this.name}`)}`;
168
+ errorMessage += `\nThe app might not be installed, try installing it with: ${_chalk().default.bold(`npx expo run:android -d ${this.name}`)}`;
136
169
  }
137
- errorMessage += _chalk.default.gray(`\n${error.message}`);
170
+ errorMessage += _chalk().default.gray(`\n${error.message}`);
138
171
  error.message = errorMessage;
139
172
  throw error;
140
173
  }
141
174
  }
142
- async isAppInstalledAsync(applicationId) {
143
- return await AndroidDebugBridge.isPackageInstalledAsync(this.device, applicationId);
175
+ async isAppInstalledAndIfSoReturnContainerPathForIOSAsync(applicationId) {
176
+ return await _adb.isPackageInstalledAsync(this.device, applicationId);
144
177
  }
145
178
  async openUrlAsync(url) {
146
179
  // Non-compliant URLs will be treated as application identifiers.
147
- if (!(0, _url).validateUrl(url, {
180
+ if (!(0, _url.validateUrl)(url, {
148
181
  requireProtocol: true
149
182
  })) {
150
183
  await this.launchActivityAsync(url);
@@ -157,13 +190,13 @@ class AndroidDeviceManager extends _deviceManager.DeviceManager {
157
190
  // https://github.com/expo/expo/issues/7772
158
191
  // adb shell monkey -p host.exp.exponent -c android.intent.category.LAUNCHER 1
159
192
  // Note: this is not needed in Expo Development Client, it only applies to Expo Go
160
- await AndroidDebugBridge.openAppIdAsync({
193
+ await _adb.openAppIdAsync({
161
194
  pid: this.device.pid
162
195
  }, {
163
196
  applicationId: EXPO_GO_APPLICATION_IDENTIFIER
164
197
  });
165
198
  }
166
- await AndroidDebugBridge.openUrlAsync({
199
+ await _adb.openUrlAsync({
167
200
  pid: this.device.pid
168
201
  }, {
169
202
  url
@@ -171,13 +204,12 @@ class AndroidDeviceManager extends _deviceManager.DeviceManager {
171
204
  }
172
205
  async activateWindowAsync() {
173
206
  // Bring the emulator window to the front on macos devices.
174
- await (0, _activateWindow).activateWindowAsync(this.device);
207
+ await (0, _activateWindow.activateWindowAsync)(this.device);
175
208
  }
176
209
  async ensureExpoGoAsync(sdkVersion) {
177
210
  const installer = new _expoGoInstaller.ExpoGoInstaller("android", EXPO_GO_APPLICATION_IDENTIFIER, sdkVersion);
178
211
  return installer.ensureAsync(this);
179
212
  }
180
213
  }
181
- exports.AndroidDeviceManager = AndroidDeviceManager;
182
214
 
183
215
  //# sourceMappingURL=AndroidDeviceManager.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/android/AndroidDeviceManager.ts"],"sourcesContent":["import assert from 'assert';\nimport chalk from 'chalk';\n\nimport { activateWindowAsync } from './activateWindow';\nimport * as AndroidDebugBridge from './adb';\nimport { startDeviceAsync } from './emulator';\nimport { getDevicesAsync } from './getDevices';\nimport { promptForDeviceAsync } from './promptAndroidDevice';\nimport * as Log from '../../../log';\nimport { AbortCommandError, CommandError } from '../../../utils/errors';\nimport { validateUrl } from '../../../utils/url';\nimport { DeviceManager } from '../DeviceManager';\nimport { ExpoGoInstaller } from '../ExpoGoInstaller';\nimport { BaseResolveDeviceProps } from '../PlatformManager';\n\nconst EXPO_GO_APPLICATION_IDENTIFIER = 'host.exp.exponent';\n\nexport class AndroidDeviceManager extends DeviceManager<AndroidDebugBridge.Device> {\n static async resolveFromNameAsync(name: string): Promise<AndroidDeviceManager> {\n const devices = await getDevicesAsync();\n const device = devices.find((device) => device.name === name);\n\n if (!device) {\n throw new CommandError('Could not find device with name: ' + name);\n }\n return AndroidDeviceManager.resolveAsync({ device, shouldPrompt: false });\n }\n\n static async resolveAsync({\n device,\n shouldPrompt,\n }: BaseResolveDeviceProps<AndroidDebugBridge.Device> = {}): Promise<AndroidDeviceManager> {\n if (device) {\n const manager = new AndroidDeviceManager(device);\n if (!(await manager.attemptToStartAsync())) {\n throw new AbortCommandError();\n }\n return manager;\n }\n\n const devices = await getDevicesAsync();\n const _device = shouldPrompt ? await promptForDeviceAsync(devices) : devices[0];\n return AndroidDeviceManager.resolveAsync({ device: _device, shouldPrompt: false });\n }\n\n get name() {\n // TODO: Maybe strip `_` from the device name?\n return this.device.name;\n }\n\n get identifier(): string {\n return this.device.pid ?? 'unknown';\n }\n\n async getAppVersionAsync(applicationId: string): Promise<string | null> {\n const info = await AndroidDebugBridge.getPackageInfoAsync(this.device, {\n appId: applicationId,\n });\n\n const regex = /versionName=([0-9.]+)/;\n return regex.exec(info)?.[1] ?? null;\n }\n\n protected async attemptToStartAsync(): Promise<AndroidDebugBridge.Device | null> {\n // TODO: Add a light-weight method for checking since a device could disconnect.\n if (!(await AndroidDebugBridge.isDeviceBootedAsync(this.device))) {\n this.device = await startDeviceAsync(this.device);\n }\n\n if (this.device.isAuthorized === false) {\n AndroidDebugBridge.logUnauthorized(this.device);\n return null;\n }\n\n return this.device;\n }\n\n async startAsync(): Promise<AndroidDebugBridge.Device> {\n const device = await this.attemptToStartAsync();\n assert(device, `Failed to boot emulator.`);\n return this.device;\n }\n\n async installAppAsync(binaryPath: string) {\n await AndroidDebugBridge.installAsync(this.device, {\n filePath: binaryPath,\n });\n }\n\n async uninstallAppAsync(appId: string) {\n // we need to check if the app is installed, else we might bump into \"Failure [DELETE_FAILED_INTERNAL_ERROR]\"\n const isInstalled = await this.isAppInstalledAsync(appId);\n if (!isInstalled) {\n return;\n }\n\n try {\n await AndroidDebugBridge.uninstallAsync(this.device, {\n appId,\n });\n } catch (e) {\n Log.error(\n `Could not uninstall app \"${appId}\" from your device, please uninstall it manually and try again.`\n );\n throw e;\n }\n }\n\n /**\n * @param launchActivity Activity to launch `[application identifier]/.[main activity name]`, ex: `com.bacon.app/.MainActivity`\n */\n async launchActivityAsync(launchActivity: string): Promise<string> {\n try {\n return await AndroidDebugBridge.launchActivityAsync(this.device, {\n launchActivity,\n });\n } catch (error: any) {\n let errorMessage = `Couldn't open Android app with activity \"${launchActivity}\" on device \"${this.name}\".`;\n if (error instanceof CommandError && error.code === 'APP_NOT_INSTALLED') {\n errorMessage += `\\nThe app might not be installed, try installing it with: ${chalk.bold(\n `npx expo run:android -d ${this.name}`\n )}`;\n }\n errorMessage += chalk.gray(`\\n${error.message}`);\n error.message = errorMessage;\n throw error;\n }\n }\n\n async isAppInstalledAsync(applicationId: string) {\n return await AndroidDebugBridge.isPackageInstalledAsync(this.device, applicationId);\n }\n\n async openUrlAsync(url: string) {\n // Non-compliant URLs will be treated as application identifiers.\n if (!validateUrl(url, { requireProtocol: true })) {\n await this.launchActivityAsync(url);\n return;\n }\n\n const parsed = new URL(url);\n\n if (parsed.protocol === 'exp:') {\n // NOTE(brentvatne): temporary workaround! launch Expo Go first, then\n // launch the project!\n // https://github.com/expo/expo/issues/7772\n // adb shell monkey -p host.exp.exponent -c android.intent.category.LAUNCHER 1\n // Note: this is not needed in Expo Development Client, it only applies to Expo Go\n await AndroidDebugBridge.openAppIdAsync(\n { pid: this.device.pid },\n { applicationId: EXPO_GO_APPLICATION_IDENTIFIER }\n );\n }\n\n await AndroidDebugBridge.openUrlAsync({ pid: this.device.pid }, { url });\n }\n\n async activateWindowAsync() {\n // Bring the emulator window to the front on macos devices.\n await activateWindowAsync(this.device);\n }\n\n async ensureExpoGoAsync(sdkVersion?: string): Promise<boolean> {\n const installer = new ExpoGoInstaller('android', EXPO_GO_APPLICATION_IDENTIFIER, sdkVersion);\n return installer.ensureAsync(this);\n }\n}\n"],"names":["AndroidDebugBridge","Log","EXPO_GO_APPLICATION_IDENTIFIER","AndroidDeviceManager","DeviceManager","resolveFromNameAsync","name","devices","getDevicesAsync","device","find","CommandError","resolveAsync","shouldPrompt","manager","attemptToStartAsync","AbortCommandError","_device","promptForDeviceAsync","identifier","pid","getAppVersionAsync","applicationId","regex","info","getPackageInfoAsync","appId","exec","isDeviceBootedAsync","startDeviceAsync","isAuthorized","logUnauthorized","startAsync","assert","installAppAsync","binaryPath","installAsync","filePath","uninstallAppAsync","isInstalled","isAppInstalledAsync","uninstallAsync","e","error","launchActivityAsync","launchActivity","errorMessage","code","chalk","bold","gray","message","isPackageInstalledAsync","openUrlAsync","url","validateUrl","requireProtocol","parsed","URL","protocol","openAppIdAsync","activateWindowAsync","ensureExpoGoAsync","sdkVersion","installer","ExpoGoInstaller","ensureAsync"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/android/AndroidDeviceManager.ts"],"sourcesContent":["import assert from 'assert';\nimport chalk from 'chalk';\n\nimport { activateWindowAsync } from './activateWindow';\nimport * as AndroidDebugBridge from './adb';\nimport { startDeviceAsync } from './emulator';\nimport { getDevicesAsync } from './getDevices';\nimport { promptForDeviceAsync } from './promptAndroidDevice';\nimport * as Log from '../../../log';\nimport { AbortCommandError, CommandError } from '../../../utils/errors';\nimport { validateUrl } from '../../../utils/url';\nimport { DeviceManager } from '../DeviceManager';\nimport { ExpoGoInstaller } from '../ExpoGoInstaller';\nimport { BaseResolveDeviceProps } from '../PlatformManager';\n\nconst EXPO_GO_APPLICATION_IDENTIFIER = 'host.exp.exponent';\n\nexport class AndroidDeviceManager extends DeviceManager<AndroidDebugBridge.Device> {\n static async resolveFromNameAsync(name: string): Promise<AndroidDeviceManager> {\n const devices = await getDevicesAsync();\n const device = devices.find((device) => device.name === name);\n\n if (!device) {\n throw new CommandError('Could not find device with name: ' + name);\n }\n return AndroidDeviceManager.resolveAsync({ device, shouldPrompt: false });\n }\n\n static async resolveAsync({\n device,\n shouldPrompt,\n }: BaseResolveDeviceProps<AndroidDebugBridge.Device> = {}): Promise<AndroidDeviceManager> {\n if (device) {\n const manager = new AndroidDeviceManager(device);\n if (!(await manager.attemptToStartAsync())) {\n throw new AbortCommandError();\n }\n return manager;\n }\n\n const devices = await getDevicesAsync();\n const _device = shouldPrompt ? await promptForDeviceAsync(devices) : devices[0];\n return AndroidDeviceManager.resolveAsync({ device: _device, shouldPrompt: false });\n }\n\n get name() {\n // TODO: Maybe strip `_` from the device name?\n return this.device.name;\n }\n\n get identifier(): string {\n return this.device.pid ?? 'unknown';\n }\n\n async getAppVersionAsync(applicationId: string): Promise<string | null> {\n const info = await AndroidDebugBridge.getPackageInfoAsync(this.device, {\n appId: applicationId,\n });\n\n const regex = /versionName=([0-9.]+)/;\n return regex.exec(info)?.[1] ?? null;\n }\n\n protected async attemptToStartAsync(): Promise<AndroidDebugBridge.Device | null> {\n // TODO: Add a light-weight method for checking since a device could disconnect.\n if (!(await AndroidDebugBridge.isDeviceBootedAsync(this.device))) {\n this.device = await startDeviceAsync(this.device);\n }\n\n if (this.device.isAuthorized === false) {\n AndroidDebugBridge.logUnauthorized(this.device);\n return null;\n }\n\n return this.device;\n }\n\n async startAsync(): Promise<AndroidDebugBridge.Device> {\n const device = await this.attemptToStartAsync();\n assert(device, `Failed to boot emulator.`);\n return this.device;\n }\n\n async installAppAsync(binaryPath: string) {\n await AndroidDebugBridge.installAsync(this.device, {\n filePath: binaryPath,\n });\n }\n\n async uninstallAppAsync(appId: string) {\n // we need to check if the app is installed, else we might bump into \"Failure [DELETE_FAILED_INTERNAL_ERROR]\"\n const isInstalled = await this.isAppInstalledAndIfSoReturnContainerPathForIOSAsync(appId);\n if (!isInstalled) {\n return;\n }\n\n try {\n await AndroidDebugBridge.uninstallAsync(this.device, {\n appId,\n });\n } catch (e) {\n Log.error(\n `Could not uninstall app \"${appId}\" from your device, please uninstall it manually and try again.`\n );\n throw e;\n }\n }\n\n /**\n * @param launchActivity Activity to launch `[application identifier]/.[main activity name]`, ex: `com.bacon.app/.MainActivity`\n */\n async launchActivityAsync(launchActivity: string): Promise<string> {\n try {\n return await AndroidDebugBridge.launchActivityAsync(this.device, {\n launchActivity,\n });\n } catch (error: any) {\n let errorMessage = `Couldn't open Android app with activity \"${launchActivity}\" on device \"${this.name}\".`;\n if (error instanceof CommandError && error.code === 'APP_NOT_INSTALLED') {\n errorMessage += `\\nThe app might not be installed, try installing it with: ${chalk.bold(\n `npx expo run:android -d ${this.name}`\n )}`;\n }\n errorMessage += chalk.gray(`\\n${error.message}`);\n error.message = errorMessage;\n throw error;\n }\n }\n\n async isAppInstalledAndIfSoReturnContainerPathForIOSAsync(applicationId: string) {\n return await AndroidDebugBridge.isPackageInstalledAsync(this.device, applicationId);\n }\n\n async openUrlAsync(url: string) {\n // Non-compliant URLs will be treated as application identifiers.\n if (!validateUrl(url, { requireProtocol: true })) {\n await this.launchActivityAsync(url);\n return;\n }\n\n const parsed = new URL(url);\n\n if (parsed.protocol === 'exp:') {\n // NOTE(brentvatne): temporary workaround! launch Expo Go first, then\n // launch the project!\n // https://github.com/expo/expo/issues/7772\n // adb shell monkey -p host.exp.exponent -c android.intent.category.LAUNCHER 1\n // Note: this is not needed in Expo Development Client, it only applies to Expo Go\n await AndroidDebugBridge.openAppIdAsync(\n { pid: this.device.pid },\n { applicationId: EXPO_GO_APPLICATION_IDENTIFIER }\n );\n }\n\n await AndroidDebugBridge.openUrlAsync({ pid: this.device.pid }, { url });\n }\n\n async activateWindowAsync() {\n // Bring the emulator window to the front on macos devices.\n await activateWindowAsync(this.device);\n }\n\n async ensureExpoGoAsync(sdkVersion: string): Promise<boolean> {\n const installer = new ExpoGoInstaller('android', EXPO_GO_APPLICATION_IDENTIFIER, sdkVersion);\n return installer.ensureAsync(this);\n }\n}\n"],"names":["AndroidDeviceManager","EXPO_GO_APPLICATION_IDENTIFIER","DeviceManager","resolveFromNameAsync","name","devices","getDevicesAsync","device","find","CommandError","resolveAsync","shouldPrompt","manager","attemptToStartAsync","AbortCommandError","_device","promptForDeviceAsync","identifier","pid","getAppVersionAsync","applicationId","regex","info","AndroidDebugBridge","getPackageInfoAsync","appId","exec","isDeviceBootedAsync","startDeviceAsync","isAuthorized","logUnauthorized","startAsync","assert","installAppAsync","binaryPath","installAsync","filePath","uninstallAppAsync","isInstalled","isAppInstalledAndIfSoReturnContainerPathForIOSAsync","uninstallAsync","e","Log","error","launchActivityAsync","launchActivity","errorMessage","code","chalk","bold","gray","message","isPackageInstalledAsync","openUrlAsync","url","validateUrl","requireProtocol","parsed","URL","protocol","openAppIdAsync","activateWindowAsync","ensureExpoGoAsync","sdkVersion","installer","ExpoGoInstaller","ensureAsync"],"mappings":"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"}