@expo/cli 1.0.0-canary-20250320-7a205d3 → 1.0.0-canary-20250402-161f57b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (719) hide show
  1. package/build/bin/cli +93 -91
  2. package/build/bin/cli.map +1 -1
  3. package/build/metro-require/require.js +53 -52
  4. package/build/src/api/endpoint.js +6 -2
  5. package/build/src/api/endpoint.js.map +1 -1
  6. package/build/src/api/getExpoGoIntermediateCertificate.js +5 -3
  7. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  8. package/build/src/api/getExpoSchema.js +16 -12
  9. package/build/src/api/getExpoSchema.js.map +1 -1
  10. package/build/src/api/getNativeModuleVersions.js +6 -4
  11. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  12. package/build/src/api/getProjectDevelopmentCertificate.js +5 -3
  13. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  14. package/build/src/api/getVersions.js +7 -5
  15. package/build/src/api/getVersions.js.map +1 -1
  16. package/build/src/api/graphql/client.js +32 -26
  17. package/build/src/api/graphql/client.js.map +1 -1
  18. package/build/src/api/graphql/queries/AppQuery.js +6 -4
  19. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  20. package/build/src/api/graphql/queries/UserQuery.js +5 -3
  21. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  22. package/build/src/api/graphql/types/App.js +3 -1
  23. package/build/src/api/graphql/types/App.js.map +1 -1
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +36 -32
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  26. package/build/src/api/rest/cache/ResponseCache.js +20 -12
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +13 -11
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  30. package/build/src/api/rest/client.js +55 -37
  31. package/build/src/api/rest/client.js.map +1 -1
  32. package/build/src/api/rest/client.types.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithBaseUrl.js +5 -3
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithOffline.js +5 -3
  36. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProgress.js +11 -7
  38. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  39. package/build/src/api/rest/wrapFetchWithProxy.js +5 -3
  40. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js +8 -6
  42. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
  43. package/build/src/api/settings.js +7 -5
  44. package/build/src/api/settings.js.map +1 -1
  45. package/build/src/api/updateDevelopmentSession.js +23 -17
  46. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  47. package/build/src/api/user/UserSettings.js +53 -31
  48. package/build/src/api/user/UserSettings.js.map +1 -1
  49. package/build/src/api/user/actions.js +27 -21
  50. package/build/src/api/user/actions.js.map +1 -1
  51. package/build/src/api/user/expoSsoLauncher.js +30 -26
  52. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  53. package/build/src/api/user/otp.js +35 -29
  54. package/build/src/api/user/otp.js.map +1 -1
  55. package/build/src/api/user/user.js +44 -30
  56. package/build/src/api/user/user.js.map +1 -1
  57. package/build/src/config/configAsync.js +29 -23
  58. package/build/src/config/configAsync.js.map +1 -1
  59. package/build/src/config/index.js +25 -21
  60. package/build/src/config/index.js.map +1 -1
  61. package/build/src/customize/customizeAsync.js +8 -6
  62. package/build/src/customize/customizeAsync.js.map +1 -1
  63. package/build/src/customize/generate.js +20 -16
  64. package/build/src/customize/generate.js.map +1 -1
  65. package/build/src/customize/index.js +14 -12
  66. package/build/src/customize/index.js.map +1 -1
  67. package/build/src/customize/resolveOptions.js +4 -2
  68. package/build/src/customize/resolveOptions.js.map +1 -1
  69. package/build/src/customize/templates.js +58 -54
  70. package/build/src/customize/templates.js.map +1 -1
  71. package/build/src/customize/typescript.js +11 -7
  72. package/build/src/customize/typescript.js.map +1 -1
  73. package/build/src/export/createMetadataJson.js +11 -9
  74. package/build/src/export/createMetadataJson.js.map +1 -1
  75. package/build/src/export/embed/exportEager.js +8 -6
  76. package/build/src/export/embed/exportEager.js.map +1 -1
  77. package/build/src/export/embed/exportEmbedAsync.js +72 -62
  78. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  79. package/build/src/export/embed/exportServer.js +57 -55
  80. package/build/src/export/embed/exportServer.js.map +1 -1
  81. package/build/src/export/embed/index.js +44 -40
  82. package/build/src/export/embed/index.js.map +1 -1
  83. package/build/src/export/embed/resolveOptions.js +44 -36
  84. package/build/src/export/embed/resolveOptions.js.map +1 -1
  85. package/build/src/export/embed/xcodeCompilerLogger.js +39 -27
  86. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  87. package/build/src/export/exportApp.js +68 -64
  88. package/build/src/export/exportApp.js.map +1 -1
  89. package/build/src/export/exportAssets.js +34 -26
  90. package/build/src/export/exportAssets.js.map +1 -1
  91. package/build/src/export/exportAsync.js +13 -9
  92. package/build/src/export/exportAsync.js.map +1 -1
  93. package/build/src/export/exportDomComponents.js +53 -45
  94. package/build/src/export/exportDomComponents.js.map +1 -1
  95. package/build/src/export/exportHermes.js +75 -53
  96. package/build/src/export/exportHermes.js.map +1 -1
  97. package/build/src/export/exportStaticAsync.js +73 -62
  98. package/build/src/export/exportStaticAsync.js.map +1 -1
  99. package/build/src/export/favicon.js +33 -27
  100. package/build/src/export/favicon.js.map +1 -1
  101. package/build/src/export/getPublicExpoManifest.js +7 -5
  102. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  103. package/build/src/export/getResolvedLocales.js +11 -9
  104. package/build/src/export/getResolvedLocales.js.map +1 -1
  105. package/build/src/export/html.js +10 -6
  106. package/build/src/export/html.js.map +1 -1
  107. package/build/src/export/index.js +32 -28
  108. package/build/src/export/index.js.map +1 -1
  109. package/build/src/export/metroAssetLocalPath.js +36 -30
  110. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  111. package/build/src/export/persistMetroAssets.js +64 -34
  112. package/build/src/export/persistMetroAssets.js.map +1 -1
  113. package/build/src/export/publicFolder.js +10 -6
  114. package/build/src/export/publicFolder.js.map +1 -1
  115. package/build/src/export/resolveOptions.js +28 -24
  116. package/build/src/export/resolveOptions.js.map +1 -1
  117. package/build/src/export/saveAssets.js +50 -46
  118. package/build/src/export/saveAssets.js.map +1 -1
  119. package/build/src/export/web/exportWebAsync.js +13 -11
  120. package/build/src/export/web/exportWebAsync.js.map +1 -1
  121. package/build/src/export/web/index.js +19 -15
  122. package/build/src/export/web/index.js.map +1 -1
  123. package/build/src/export/web/resolveOptions.js +5 -3
  124. package/build/src/export/web/resolveOptions.js.map +1 -1
  125. package/build/src/export/writeContents.js +4 -2
  126. package/build/src/export/writeContents.js.map +1 -1
  127. package/build/src/graphql/generated.js +705 -479
  128. package/build/src/graphql/generated.js.map +1 -1
  129. package/build/src/install/applyPlugins.js +11 -7
  130. package/build/src/install/applyPlugins.js.map +1 -1
  131. package/build/src/install/checkPackages.js +26 -22
  132. package/build/src/install/checkPackages.js.map +1 -1
  133. package/build/src/install/fixPackages.js +16 -12
  134. package/build/src/install/fixPackages.js.map +1 -1
  135. package/build/src/install/index.js +18 -16
  136. package/build/src/install/index.js.map +1 -1
  137. package/build/src/install/installAsync.js +32 -26
  138. package/build/src/install/installAsync.js.map +1 -1
  139. package/build/src/install/installExpoPackage.js +22 -18
  140. package/build/src/install/installExpoPackage.js.map +1 -1
  141. package/build/src/install/resolveOptions.js +21 -19
  142. package/build/src/install/resolveOptions.js.map +1 -1
  143. package/build/src/install/utils/autoAddConfigPlugins.js +18 -14
  144. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  145. package/build/src/install/utils/checkPackagesCompatibility.js +14 -12
  146. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
  147. package/build/src/lint/ESlintPrerequisite.js +50 -44
  148. package/build/src/lint/ESlintPrerequisite.js.map +1 -1
  149. package/build/src/lint/index.js +12 -8
  150. package/build/src/lint/index.js.map +1 -1
  151. package/build/src/lint/lintAsync.js +10 -8
  152. package/build/src/lint/lintAsync.js.map +1 -1
  153. package/build/src/log.js +36 -16
  154. package/build/src/log.js.map +1 -1
  155. package/build/src/login/index.js +24 -20
  156. package/build/src/login/index.js.map +1 -1
  157. package/build/src/logout/index.js +11 -7
  158. package/build/src/logout/index.js.map +1 -1
  159. package/build/src/prebuild/clearNativeFolder.js +38 -26
  160. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  161. package/build/src/prebuild/configureProjectAsync.js +18 -14
  162. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  163. package/build/src/prebuild/copyTemplateFiles.js +17 -13
  164. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  165. package/build/src/prebuild/ensureConfigAsync.js +6 -4
  166. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  167. package/build/src/prebuild/index.js +36 -32
  168. package/build/src/prebuild/index.js.map +1 -1
  169. package/build/src/prebuild/prebuildAsync.js +29 -25
  170. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  171. package/build/src/prebuild/renameTemplateAppName.js +43 -37
  172. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  173. package/build/src/prebuild/resolveOptions.js +70 -53
  174. package/build/src/prebuild/resolveOptions.js.map +1 -1
  175. package/build/src/prebuild/resolveTemplate.js +36 -32
  176. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  177. package/build/src/prebuild/updateFromTemplate.js +19 -13
  178. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  179. package/build/src/prebuild/updatePackageJson.js +53 -39
  180. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  181. package/build/src/prebuild/validateTemplatePlatforms.js +12 -8
  182. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  183. package/build/src/register/index.js +11 -7
  184. package/build/src/register/index.js.map +1 -1
  185. package/build/src/register/registerAsync.js +5 -3
  186. package/build/src/register/registerAsync.js.map +1 -1
  187. package/build/src/run/android/index.js +36 -32
  188. package/build/src/run/android/index.js.map +1 -1
  189. package/build/src/run/android/resolveDevice.js +10 -8
  190. package/build/src/run/android/resolveDevice.js.map +1 -1
  191. package/build/src/run/android/resolveGradlePropsAsync.js +18 -16
  192. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  193. package/build/src/run/android/resolveInstallApkName.js +17 -15
  194. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  195. package/build/src/run/android/resolveLaunchProps.js +12 -10
  196. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  197. package/build/src/run/android/resolveOptions.js +4 -2
  198. package/build/src/run/android/resolveOptions.js.map +1 -1
  199. package/build/src/run/android/runAndroidAsync.js +23 -21
  200. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  201. package/build/src/run/ensureNativeProject.js +7 -5
  202. package/build/src/run/ensureNativeProject.js.map +1 -1
  203. package/build/src/run/hints.js +13 -7
  204. package/build/src/run/hints.js.map +1 -1
  205. package/build/src/run/index.js +27 -23
  206. package/build/src/run/index.js.map +1 -1
  207. package/build/src/run/ios/XcodeBuild.js +80 -60
  208. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  209. package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
  210. package/build/src/run/ios/appleDevice/AppleDevice.js +69 -63
  211. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  212. package/build/src/run/ios/appleDevice/ClientManager.js +29 -26
  213. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  214. package/build/src/run/ios/appleDevice/client/AFCClient.js +28 -25
  215. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  216. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +29 -26
  217. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  218. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +22 -21
  219. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  220. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +32 -29
  221. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  222. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +28 -24
  223. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  224. package/build/src/run/ios/appleDevice/client/ServiceClient.js +7 -4
  225. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  226. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +28 -27
  227. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  228. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +23 -17
  229. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  230. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +146 -132
  231. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  232. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +29 -21
  233. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  234. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +29 -21
  235. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  236. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +34 -22
  237. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  238. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +27 -17
  239. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  240. package/build/src/run/ios/codeSigning/Security.js +53 -39
  241. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  242. package/build/src/run/ios/codeSigning/configureCodeSigning.js +13 -9
  243. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  244. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +27 -19
  245. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  246. package/build/src/run/ios/codeSigning/settings.js +9 -5
  247. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  248. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +14 -12
  249. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  250. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +27 -21
  251. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  252. package/build/src/run/ios/index.js +40 -36
  253. package/build/src/run/ios/index.js.map +1 -1
  254. package/build/src/run/ios/launchApp.js +23 -17
  255. package/build/src/run/ios/launchApp.js.map +1 -1
  256. package/build/src/run/ios/options/appleDestinations.js +38 -36
  257. package/build/src/run/ios/options/appleDestinations.js.map +1 -1
  258. package/build/src/run/ios/options/promptDevice.js +20 -16
  259. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  260. package/build/src/run/ios/options/resolveDevice.js +30 -24
  261. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  262. package/build/src/run/ios/options/resolveNativeScheme.js +31 -23
  263. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  264. package/build/src/run/ios/options/resolveOptions.js +7 -5
  265. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  266. package/build/src/run/ios/options/resolveXcodeProject.js +7 -5
  267. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  268. package/build/src/run/ios/runIosAsync.js +48 -44
  269. package/build/src/run/ios/runIosAsync.js.map +1 -1
  270. package/build/src/run/ios/validateExternalBinary.js +24 -22
  271. package/build/src/run/ios/validateExternalBinary.js.map +1 -1
  272. package/build/src/run/resolveBundlerProps.js +4 -2
  273. package/build/src/run/resolveBundlerProps.js.map +1 -1
  274. package/build/src/run/startBundler.js +16 -12
  275. package/build/src/run/startBundler.js.map +1 -1
  276. package/build/src/serve/index.js +20 -16
  277. package/build/src/serve/index.js.map +1 -1
  278. package/build/src/serve/serveAsync.js +36 -32
  279. package/build/src/serve/serveAsync.js.map +1 -1
  280. package/build/src/start/detectDevClient.js +13 -9
  281. package/build/src/start/detectDevClient.js.map +1 -1
  282. package/build/src/start/doctor/Prerequisite.js +12 -7
  283. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  284. package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -11
  285. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  286. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +23 -19
  287. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  288. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +23 -19
  289. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  290. package/build/src/start/doctor/apple/XcodePrerequisite.js +51 -45
  291. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  292. package/build/src/start/doctor/apple/XcrunPrerequisite.js +18 -16
  293. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  294. package/build/src/start/doctor/dependencies/bundledNativeModules.js +23 -19
  295. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  296. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +31 -25
  297. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  298. package/build/src/start/doctor/dependencies/getMissingPackages.js +25 -17
  299. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  300. package/build/src/start/doctor/dependencies/getVersionedPackages.js +40 -32
  301. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  302. package/build/src/start/doctor/dependencies/resolvePackages.js +32 -26
  303. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  304. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +41 -31
  305. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  306. package/build/src/start/doctor/ngrok/ExternalModule.js +34 -29
  307. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  308. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -8
  309. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  310. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +32 -28
  311. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  312. package/build/src/start/doctor/typescript/updateTSConfig.js +23 -17
  313. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  314. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +33 -27
  315. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  316. package/build/src/start/index.js +46 -42
  317. package/build/src/start/index.js.map +1 -1
  318. package/build/src/start/interface/KeyPressHandler.js +18 -14
  319. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  320. package/build/src/start/interface/commandsTable.js +94 -80
  321. package/build/src/start/interface/commandsTable.js.map +1 -1
  322. package/build/src/start/interface/interactiveActions.js +44 -40
  323. package/build/src/start/interface/interactiveActions.js.map +1 -1
  324. package/build/src/start/interface/startInterface.js +65 -61
  325. package/build/src/start/interface/startInterface.js.map +1 -1
  326. package/build/src/start/platforms/AppIdResolver.js +6 -4
  327. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  328. package/build/src/start/platforms/DeviceManager.js +10 -6
  329. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  330. package/build/src/start/platforms/ExpoGoInstaller.js +25 -20
  331. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  332. package/build/src/start/platforms/PlatformManager.js +17 -15
  333. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  334. package/build/src/start/platforms/android/ADBServer.js +39 -35
  335. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  336. package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -16
  337. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  338. package/build/src/start/platforms/android/AndroidDeviceManager.js +24 -20
  339. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  340. package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
  341. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  342. package/build/src/start/platforms/android/AndroidSdk.js +11 -9
  343. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  344. package/build/src/start/platforms/android/activateWindow.js +26 -22
  345. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  346. package/build/src/start/platforms/android/adb.js +121 -83
  347. package/build/src/start/platforms/android/adb.js.map +1 -1
  348. package/build/src/start/platforms/android/adbReverse.js +20 -12
  349. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  350. package/build/src/start/platforms/android/emulator.js +36 -26
  351. package/build/src/start/platforms/android/emulator.js.map +1 -1
  352. package/build/src/start/platforms/android/getDevices.js +7 -5
  353. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  354. package/build/src/start/platforms/android/gradle.js +36 -28
  355. package/build/src/start/platforms/android/gradle.js.map +1 -1
  356. package/build/src/start/platforms/android/promptAndroidDevice.js +19 -15
  357. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  358. package/build/src/start/platforms/ios/AppleAppIdResolver.js +21 -19
  359. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  360. package/build/src/start/platforms/ios/AppleDeviceManager.js +37 -31
  361. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  362. package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
  363. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  364. package/build/src/start/platforms/ios/assertSystemRequirements.js +9 -7
  365. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  366. package/build/src/start/platforms/ios/devicectl.js +88 -74
  367. package/build/src/start/platforms/ios/devicectl.js.map +1 -1
  368. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +22 -18
  369. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  370. package/build/src/start/platforms/ios/getBestSimulator.js +29 -19
  371. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  372. package/build/src/start/platforms/ios/promptAppleDevice.js +14 -10
  373. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  374. package/build/src/start/platforms/ios/simctl.js +102 -74
  375. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  376. package/build/src/start/platforms/ios/simctlLogging.js +57 -52
  377. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  378. package/build/src/start/platforms/ios/xcrun.js +22 -18
  379. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  380. package/build/src/start/project/devices.js +19 -9
  381. package/build/src/start/project/devices.js.map +1 -1
  382. package/build/src/start/project/dotExpo.js +15 -11
  383. package/build/src/start/project/dotExpo.js.map +1 -1
  384. package/build/src/start/project/settings.js +4 -2
  385. package/build/src/start/project/settings.js.map +1 -1
  386. package/build/src/start/resolveOptions.js +48 -40
  387. package/build/src/start/resolveOptions.js.map +1 -1
  388. package/build/src/start/server/AsyncNgrok.js +55 -51
  389. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  390. package/build/src/start/server/AsyncWsTunnel.js +37 -33
  391. package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
  392. package/build/src/start/server/BundlerDevServer.js +81 -79
  393. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  394. package/build/src/start/server/DevServerManager.js +42 -38
  395. package/build/src/start/server/DevServerManager.js.map +1 -1
  396. package/build/src/start/server/DevToolsPluginManager.js +18 -14
  397. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  398. package/build/src/start/server/DevelopmentSession.js +18 -14
  399. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  400. package/build/src/start/server/ReactDevToolsProxy.js +16 -10
  401. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  402. package/build/src/start/server/UrlCreator.js +36 -33
  403. package/build/src/start/server/UrlCreator.js.map +1 -1
  404. package/build/src/start/server/getStaticRenderFunctions.js +30 -22
  405. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  406. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +9 -5
  407. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  408. package/build/src/start/server/metro/MetroBundlerDevServer.js +293 -280
  409. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  410. package/build/src/start/server/metro/MetroTerminalReporter.js +63 -56
  411. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  412. package/build/src/start/server/metro/TerminalReporter.js +39 -33
  413. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  414. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  415. package/build/src/start/server/metro/createExpoFallbackResolver.js +13 -11
  416. package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
  417. package/build/src/start/server/metro/createExpoMetroResolver.js +47 -41
  418. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  419. package/build/src/start/server/metro/createJResolver.js +31 -27
  420. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  421. package/build/src/start/server/metro/createServerComponentsMiddleware.js +110 -98
  422. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  423. package/build/src/start/server/metro/createServerRouteMiddleware.js +34 -30
  424. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  425. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +13 -11
  426. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
  427. package/build/src/start/server/metro/debugging/MessageHandler.js +3 -1
  428. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  429. package/build/src/start/server/metro/debugging/attachAtlas.js +26 -22
  430. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  431. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +19 -17
  432. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  433. package/build/src/start/server/metro/debugging/createHandlersFactory.js +25 -31
  434. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  435. package/build/src/start/server/metro/debugging/getDebuggerType.js +6 -4
  436. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  437. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +14 -8
  438. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  439. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -5
  440. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  441. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +8 -6
  442. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  443. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -5
  444. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  445. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +14 -12
  446. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
  447. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +14 -10
  448. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  449. package/build/src/start/server/metro/debugging/pageIsSupported.js +6 -4
  450. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  451. package/build/src/start/server/metro/debugging/types.js.map +1 -1
  452. package/build/src/start/server/metro/dev-server/createEventSocket.js +18 -16
  453. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
  454. package/build/src/start/server/metro/dev-server/createMessageSocket.js +23 -21
  455. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  456. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +23 -21
  457. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  458. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +4 -2
  459. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
  460. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +4 -2
  461. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
  462. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +8 -4
  463. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  464. package/build/src/start/server/metro/externals.js +33 -25
  465. package/build/src/start/server/metro/externals.js.map +1 -1
  466. package/build/src/start/server/metro/fetchRouterManifest.js +28 -12
  467. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  468. package/build/src/start/server/metro/formatFileCandidates.js +11 -9
  469. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  470. package/build/src/start/server/metro/getCssModulesFromBundler.js +24 -20
  471. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  472. package/build/src/start/server/metro/instantiateMetro.js +87 -81
  473. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  474. package/build/src/start/server/metro/log-box/LogBoxLog.js +40 -36
  475. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  476. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +20 -14
  477. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  478. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +10 -6
  479. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  480. package/build/src/start/server/metro/metroErrorInterface.js +88 -78
  481. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  482. package/build/src/start/server/metro/metroErrors.js +8 -4
  483. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  484. package/build/src/start/server/metro/metroPrivateServer.js +9 -7
  485. package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
  486. package/build/src/start/server/metro/metroVirtualModules.js +10 -8
  487. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  488. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +24 -22
  489. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  490. package/build/src/start/server/metro/router.js +48 -32
  491. package/build/src/start/server/metro/router.js.map +1 -1
  492. package/build/src/start/server/metro/runServer-fork.js +24 -22
  493. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  494. package/build/src/start/server/metro/serializeHtml.js +24 -22
  495. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  496. package/build/src/start/server/metro/symbolicate.js.map +1 -1
  497. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +35 -29
  498. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  499. package/build/src/start/server/metro/withMetroMultiPlatform.js +150 -140
  500. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  501. package/build/src/start/server/metro/withMetroResolvers.js +49 -39
  502. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  503. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +8 -6
  504. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  505. package/build/src/start/server/middleware/CorsMiddleware.js +17 -15
  506. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  507. package/build/src/start/server/middleware/CreateFileMiddleware.js +32 -31
  508. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  509. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +22 -19
  510. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  511. package/build/src/start/server/middleware/DomComponentsMiddleware.js +33 -27
  512. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  513. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +61 -57
  514. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  515. package/build/src/start/server/middleware/ExpoMiddleware.js +15 -9
  516. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  517. package/build/src/start/server/middleware/FaviconMiddleware.js +16 -15
  518. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  519. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +4 -2
  520. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  521. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +34 -31
  522. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  523. package/build/src/start/server/middleware/ManifestMiddleware.js +64 -56
  524. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  525. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +23 -19
  526. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  527. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +20 -19
  528. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  529. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -9
  530. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  531. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +17 -11
  532. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
  533. package/build/src/start/server/middleware/inspector/CdpClient.js +12 -10
  534. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
  535. package/build/src/start/server/middleware/inspector/JsInspector.js +35 -27
  536. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  537. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +21 -19
  538. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  539. package/build/src/start/server/middleware/inspector/middlwareMutations.js +6 -2
  540. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  541. package/build/src/start/server/middleware/metroOptions.js +120 -96
  542. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  543. package/build/src/start/server/middleware/mutations.js +7 -3
  544. package/build/src/start/server/middleware/mutations.js.map +1 -1
  545. package/build/src/start/server/middleware/resolveAssets.js +26 -18
  546. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  547. package/build/src/start/server/middleware/resolvePlatform.js +23 -15
  548. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  549. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +11 -9
  550. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  551. package/build/src/start/server/middleware/server.types.js.map +1 -1
  552. package/build/src/start/server/openPlatforms.js +10 -8
  553. package/build/src/start/server/openPlatforms.js.map +1 -1
  554. package/build/src/start/server/platformBundlers.js +13 -11
  555. package/build/src/start/server/platformBundlers.js.map +1 -1
  556. package/build/src/start/server/serverLogLikeMetro.js +58 -50
  557. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  558. package/build/src/start/server/type-generation/expo-env.js +11 -7
  559. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  560. package/build/src/start/server/type-generation/routes.js +72 -50
  561. package/build/src/start/server/type-generation/routes.js.map +1 -1
  562. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +21 -19
  563. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  564. package/build/src/start/server/type-generation/tsconfig.js +36 -28
  565. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  566. package/build/src/start/server/webTemplate.js +28 -24
  567. package/build/src/start/server/webTemplate.js.map +1 -1
  568. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +52 -46
  569. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  570. package/build/src/start/server/webpack/compile.js +15 -11
  571. package/build/src/start/server/webpack/compile.js.map +1 -1
  572. package/build/src/start/server/webpack/formatWebpackMessages.js +28 -26
  573. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  574. package/build/src/start/server/webpack/resolveFromProject.js +18 -12
  575. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  576. package/build/src/start/server/webpack/tls.js +18 -12
  577. package/build/src/start/server/webpack/tls.js.map +1 -1
  578. package/build/src/start/startAsync.js +31 -27
  579. package/build/src/start/startAsync.js.map +1 -1
  580. package/build/src/utils/FileNotifier.js +20 -17
  581. package/build/src/utils/FileNotifier.js.map +1 -1
  582. package/build/src/utils/ansi.js +7 -5
  583. package/build/src/utils/ansi.js.map +1 -1
  584. package/build/src/utils/args.js +24 -14
  585. package/build/src/utils/args.js.map +1 -1
  586. package/build/src/utils/array.js +18 -6
  587. package/build/src/utils/array.js.map +1 -1
  588. package/build/src/utils/cocoapods.js +54 -46
  589. package/build/src/utils/cocoapods.js.map +1 -1
  590. package/build/src/utils/codesigning.js +79 -69
  591. package/build/src/utils/codesigning.js.map +1 -1
  592. package/build/src/utils/createFileTransform.js +16 -12
  593. package/build/src/utils/createFileTransform.js.map +1 -1
  594. package/build/src/utils/createTempPath.js +12 -8
  595. package/build/src/utils/createTempPath.js.map +1 -1
  596. package/build/src/utils/delay.js +12 -6
  597. package/build/src/utils/delay.js.map +1 -1
  598. package/build/src/utils/dir.js +40 -22
  599. package/build/src/utils/dir.js.map +1 -1
  600. package/build/src/utils/downloadAppAsync.js +10 -8
  601. package/build/src/utils/downloadAppAsync.js.map +1 -1
  602. package/build/src/utils/downloadExpoGoAsync.js +27 -23
  603. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  604. package/build/src/utils/editor.js +41 -35
  605. package/build/src/utils/editor.js.map +1 -1
  606. package/build/src/utils/env.js +63 -59
  607. package/build/src/utils/env.js.map +1 -1
  608. package/build/src/utils/errors.js +37 -30
  609. package/build/src/utils/errors.js.map +1 -1
  610. package/build/src/utils/exit.js +35 -31
  611. package/build/src/utils/exit.js.map +1 -1
  612. package/build/src/utils/expoUpdatesCli.js +32 -22
  613. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  614. package/build/src/utils/fetch.js +8 -4
  615. package/build/src/utils/fetch.js.map +1 -1
  616. package/build/src/utils/filePath.js +10 -6
  617. package/build/src/utils/filePath.js.map +1 -1
  618. package/build/src/utils/findUp.js +13 -9
  619. package/build/src/utils/findUp.js.map +1 -1
  620. package/build/src/utils/fn.js +6 -2
  621. package/build/src/utils/fn.js.map +1 -1
  622. package/build/src/utils/getOrPromptApplicationId.js +41 -35
  623. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  624. package/build/src/utils/getRunningProcess.js +29 -21
  625. package/build/src/utils/getRunningProcess.js.map +1 -1
  626. package/build/src/utils/git.js +26 -20
  627. package/build/src/utils/git.js.map +1 -1
  628. package/build/src/utils/glob.js +8 -4
  629. package/build/src/utils/glob.js.map +1 -1
  630. package/build/src/utils/interactive.js +3 -1
  631. package/build/src/utils/interactive.js.map +1 -1
  632. package/build/src/utils/ip.js +21 -19
  633. package/build/src/utils/ip.js.map +1 -1
  634. package/build/src/utils/isModuleSymlinked.js +11 -9
  635. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  636. package/build/src/utils/jsonSchemaDeref.js +20 -18
  637. package/build/src/utils/jsonSchemaDeref.js.map +1 -1
  638. package/build/src/utils/link.js +17 -13
  639. package/build/src/utils/link.js.map +1 -1
  640. package/build/src/utils/mergeGitIgnorePaths.js +46 -28
  641. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  642. package/build/src/utils/modifyConfigAsync.js +16 -10
  643. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  644. package/build/src/utils/modifyConfigPlugins.js +10 -6
  645. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  646. package/build/src/utils/multipartMixed.js +13 -11
  647. package/build/src/utils/multipartMixed.js.map +1 -1
  648. package/build/src/utils/nodeEnv.js +12 -6
  649. package/build/src/utils/nodeEnv.js.map +1 -1
  650. package/build/src/utils/nodeModules.js +10 -8
  651. package/build/src/utils/nodeModules.js.map +1 -1
  652. package/build/src/utils/npm.js +49 -35
  653. package/build/src/utils/npm.js.map +1 -1
  654. package/build/src/utils/obj.js +11 -5
  655. package/build/src/utils/obj.js.map +1 -1
  656. package/build/src/utils/open.js +10 -8
  657. package/build/src/utils/open.js.map +1 -1
  658. package/build/src/utils/ora.js +13 -7
  659. package/build/src/utils/ora.js.map +1 -1
  660. package/build/src/utils/plist.js +21 -15
  661. package/build/src/utils/plist.js.map +1 -1
  662. package/build/src/utils/port.js +43 -33
  663. package/build/src/utils/port.js.map +1 -1
  664. package/build/src/utils/profile.js +11 -7
  665. package/build/src/utils/profile.js.map +1 -1
  666. package/build/src/utils/progress.js +11 -5
  667. package/build/src/utils/progress.js.map +1 -1
  668. package/build/src/utils/prompts.js +47 -29
  669. package/build/src/utils/prompts.js.map +1 -1
  670. package/build/src/utils/resolveArgs.js +36 -24
  671. package/build/src/utils/resolveArgs.js.map +1 -1
  672. package/build/src/utils/scheme.js +40 -32
  673. package/build/src/utils/scheme.js.map +1 -1
  674. package/build/src/utils/stream.js +5 -3
  675. package/build/src/utils/stream.js.map +1 -1
  676. package/build/src/utils/strings.js +6 -4
  677. package/build/src/utils/strings.js.map +1 -1
  678. package/build/src/utils/tar.js +18 -14
  679. package/build/src/utils/tar.js.map +1 -1
  680. package/build/src/utils/telemetry/Telemetry.js +29 -27
  681. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  682. package/build/src/utils/telemetry/clients/FetchClient.js +15 -13
  683. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  684. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +26 -22
  685. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
  686. package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
  687. package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
  688. package/build/src/utils/telemetry/events.js +4 -2
  689. package/build/src/utils/telemetry/events.js.map +1 -1
  690. package/build/src/utils/telemetry/index.js +25 -29
  691. package/build/src/utils/telemetry/index.js.map +1 -1
  692. package/build/src/utils/telemetry/types.js.map +1 -1
  693. package/build/src/utils/telemetry/utils/constants.js +8 -4
  694. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  695. package/build/src/utils/telemetry/utils/context.js +18 -14
  696. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  697. package/build/src/utils/template.js +6 -4
  698. package/build/src/utils/template.js.map +1 -1
  699. package/build/src/utils/terminal.js +4 -2
  700. package/build/src/utils/terminal.js.map +1 -1
  701. package/build/src/utils/tsconfig/evaluateTsConfig.js +21 -17
  702. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  703. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -14
  704. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  705. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +7 -5
  706. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  707. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +14 -12
  708. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  709. package/build/src/utils/url.js +23 -13
  710. package/build/src/utils/url.js.map +1 -1
  711. package/build/src/utils/validateApplicationId.js +108 -86
  712. package/build/src/utils/validateApplicationId.js.map +1 -1
  713. package/build/src/utils/variadic.js +22 -16
  714. package/build/src/utils/variadic.js.map +1 -1
  715. package/build/src/whoami/index.js +11 -7
  716. package/build/src/whoami/index.js.map +1 -1
  717. package/build/src/whoami/whoamiAsync.js +11 -7
  718. package/build/src/whoami/whoamiAsync.js.map +1 -1
  719. package/package.json +17 -16
@@ -9,43 +9,47 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- getConnectedDevicesAsync: ()=>getConnectedDevicesAsync,
13
- runOnDevice: ()=>runOnDevice
12
+ getConnectedDevicesAsync: function() {
13
+ return getConnectedDevicesAsync;
14
+ },
15
+ runOnDevice: function() {
16
+ return runOnDevice;
17
+ }
14
18
  });
15
19
  function _debug() {
16
- const data = /*#__PURE__*/ _interopRequireDefault(require("debug"));
20
+ const data = /*#__PURE__*/ _interop_require_default(require("debug"));
17
21
  _debug = function() {
18
22
  return data;
19
23
  };
20
24
  return data;
21
25
  }
22
26
  function _fs() {
23
- const data = /*#__PURE__*/ _interopRequireDefault(require("fs"));
27
+ const data = /*#__PURE__*/ _interop_require_default(require("fs"));
24
28
  _fs = function() {
25
29
  return data;
26
30
  };
27
31
  return data;
28
32
  }
29
33
  function _path() {
30
- const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
34
+ const data = /*#__PURE__*/ _interop_require_default(require("path"));
31
35
  _path = function() {
32
36
  return data;
33
37
  };
34
38
  return data;
35
39
  }
36
- const _clientManager = require("./ClientManager");
37
- const _lockdowndClient = require("./client/LockdowndClient");
38
- const _usbmuxdClient = require("./client/UsbmuxdClient");
39
- const _afcprotocol = require("./protocol/AFCProtocol");
40
+ const _ClientManager = require("./ClientManager");
41
+ const _LockdowndClient = require("./client/LockdowndClient");
42
+ const _UsbmuxdClient = require("./client/UsbmuxdClient");
43
+ const _AFCProtocol = require("./protocol/AFCProtocol");
40
44
  const _log = require("../../../log");
41
- const _xcodeDeveloperDiskImagePrerequisite = require("../../../start/doctor/apple/XcodeDeveloperDiskImagePrerequisite");
42
- const _devicectl = /*#__PURE__*/ _interopRequireWildcard(require("../../../start/platforms/ios/devicectl"));
45
+ const _XcodeDeveloperDiskImagePrerequisite = require("../../../start/doctor/apple/XcodeDeveloperDiskImagePrerequisite");
46
+ const _devicectl = /*#__PURE__*/ _interop_require_wildcard(require("../../../start/platforms/ios/devicectl"));
43
47
  const _array = require("../../../utils/array");
44
48
  const _delay = require("../../../utils/delay");
45
49
  const _errors = require("../../../utils/errors");
46
50
  const _exit = require("../../../utils/exit");
47
51
  const _profile = require("../../../utils/profile");
48
- function _interopRequireDefault(obj) {
52
+ function _interop_require_default(obj) {
49
53
  return obj && obj.__esModule ? obj : {
50
54
  default: obj
51
55
  };
@@ -58,7 +62,7 @@ function _getRequireWildcardCache(nodeInterop) {
58
62
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
59
63
  })(nodeInterop);
60
64
  }
61
- function _interopRequireWildcard(obj, nodeInterop) {
65
+ function _interop_require_wildcard(obj, nodeInterop) {
62
66
  if (!nodeInterop && obj && obj.__esModule) {
63
67
  return obj;
64
68
  }
@@ -71,7 +75,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
71
75
  if (cache && cache.has(obj)) {
72
76
  return cache.get(obj);
73
77
  }
74
- var newObj = {};
78
+ var newObj = {
79
+ __proto__: null
80
+ };
75
81
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
76
82
  for(var key in obj){
77
83
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -89,18 +95,18 @@ function _interopRequireWildcard(obj, nodeInterop) {
89
95
  }
90
96
  return newObj;
91
97
  }
92
- const debug = (0, _debug().default)("expo:apple-device");
98
+ const debug = (0, _debug().default)('expo:apple-device');
93
99
  async function getConnectedDevicesUsingNativeToolsAsync() {
94
100
  return (await _devicectl.getConnectedAppleDevicesAsync())// Filter out unpaired and unavailable devices.
95
101
  // TODO: We could improve this logic in the future to attempt pairing if specified.
96
- .filter((device)=>device.connectionProperties.pairingState === "paired" && device.connectionProperties.tunnelState !== "unavailable").map((device)=>{
102
+ .filter((device)=>device.connectionProperties.pairingState === 'paired' && device.connectionProperties.tunnelState !== 'unavailable').map((device)=>{
97
103
  return {
98
104
  name: device.deviceProperties.name,
99
105
  model: device.hardwareProperties.productType,
100
106
  osVersion: device.deviceProperties.osVersionNumber,
101
107
  udid: device.hardwareProperties.udid,
102
- deviceType: "device",
103
- connectionType: device.connectionProperties.transportType === "localNetwork" ? "Network" : "USB",
108
+ deviceType: 'device',
109
+ connectionType: device.connectionProperties.transportType === 'localNetwork' ? 'Network' : 'USB',
104
110
  osType: coercePlatformToOsType(device.hardwareProperties.platform)
105
111
  };
106
112
  });
@@ -108,24 +114,24 @@ async function getConnectedDevicesUsingNativeToolsAsync() {
108
114
  function coercePlatformToOsType(platform) {
109
115
  // The only two devices I have to test against...
110
116
  switch(platform){
111
- case "iOS":
112
- return "iOS";
113
- case "xrOS":
114
- return "xrOS";
117
+ case 'iOS':
118
+ return 'iOS';
119
+ case 'xrOS':
120
+ return 'xrOS';
115
121
  default:
116
- debug("Unknown devicectl platform (needs to be added to Expo CLI):", platform);
122
+ debug('Unknown devicectl platform (needs to be added to Expo CLI):', platform);
117
123
  return platform;
118
124
  }
119
125
  }
120
126
  function coerceUsbmuxdPlatformToOsType(platform) {
121
127
  // The only connectable device I have to test against...
122
128
  switch(platform){
123
- case "iPhone":
124
- case "iPad":
125
- case "iPhone OS":
126
- return "iOS";
129
+ case 'iPhone':
130
+ case 'iPad':
131
+ case 'iPhone OS':
132
+ return 'iOS';
127
133
  default:
128
- debug("Unknown usbmuxd platform (needs to be added to Expo CLI):", platform);
134
+ debug('Unknown usbmuxd platform (needs to be added to Expo CLI):', platform);
129
135
  return platform;
130
136
  }
131
137
  }
@@ -134,7 +140,7 @@ async function getConnectedDevicesAsync() {
134
140
  // Prioritize native tools since they can provide more accurate information.
135
141
  // NOTE: xcrun is substantially slower than custom tooling. +1.5s vs 9ms.
136
142
  (0, _profile.profile)(getConnectedDevicesUsingNativeToolsAsync)(),
137
- (0, _profile.profile)(getConnectedDevicesUsingCustomToolingAsync)(),
143
+ (0, _profile.profile)(getConnectedDevicesUsingCustomToolingAsync)()
138
144
  ]);
139
145
  return (0, _array.uniqBy)(devices.flat(), (device)=>device.udid);
140
146
  }
@@ -143,39 +149,39 @@ async function getConnectedDevicesAsync() {
143
149
  *
144
150
  * @returns a list of connected Apple devices.
145
151
  */ async function getConnectedDevicesUsingCustomToolingAsync() {
146
- const client = new _usbmuxdClient.UsbmuxdClient(_usbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
152
+ const client = new _UsbmuxdClient.UsbmuxdClient(_UsbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
147
153
  const devices = await client.getDevices();
148
154
  client.socket.end();
149
155
  return Promise.all(devices.map(async (device)=>{
150
- const socket = await new _usbmuxdClient.UsbmuxdClient(_usbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket()).connect(device, 62078);
151
- const deviceValues = await new _lockdowndClient.LockdowndClient(socket).getAllValues();
156
+ const socket = await new _UsbmuxdClient.UsbmuxdClient(_UsbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket()).connect(device, 62078);
157
+ const deviceValues = await new _LockdowndClient.LockdowndClient(socket).getAllValues();
152
158
  socket.end();
153
159
  // TODO(EvanBacon): Add support for osType (ipad, watchos, etc)
154
160
  return {
155
161
  // TODO(EvanBacon): Better name
156
- name: deviceValues.DeviceName ?? deviceValues.ProductType ?? "unknown iOS device",
162
+ name: deviceValues.DeviceName ?? deviceValues.ProductType ?? 'unknown iOS device',
157
163
  model: deviceValues.ProductType,
158
164
  osVersion: deviceValues.ProductVersion,
159
- deviceType: "device",
165
+ deviceType: 'device',
160
166
  connectionType: device.Properties.ConnectionType,
161
167
  udid: device.Properties.SerialNumber,
162
168
  osType: coerceUsbmuxdPlatformToOsType(deviceValues.DeviceClass)
163
169
  };
164
170
  }));
165
171
  }
166
- async function runOnDevice({ udid , appPath , bundleId , waitForApp , deltaPath , onProgress }) {
167
- debug("Running on device:", {
172
+ async function runOnDevice({ udid, appPath, bundleId, waitForApp, deltaPath, onProgress }) {
173
+ debug('Running on device:', {
168
174
  udid,
169
175
  appPath,
170
176
  bundleId,
171
177
  waitForApp,
172
178
  deltaPath
173
179
  });
174
- const clientManager = await _clientManager.ClientManager.create(udid);
180
+ const clientManager = await _ClientManager.ClientManager.create(udid);
175
181
  try {
176
182
  await mountDeveloperDiskImage(clientManager);
177
183
  const packageName = _path().default.basename(appPath);
178
- const destPackagePath = _path().default.join("PublicStaging", packageName);
184
+ const destPackagePath = _path().default.join('PublicStaging', packageName);
179
185
  await uploadApp(clientManager, {
180
186
  appBinaryPath: appPath,
181
187
  destinationPath: destPackagePath
@@ -183,20 +189,20 @@ async function runOnDevice({ udid , appPath , bundleId , waitForApp , deltaPath
183
189
  const installer = await clientManager.getInstallationProxyClient();
184
190
  await installer.installApp(destPackagePath, bundleId, {
185
191
  // https://github.com/ios-control/ios-deploy/blob/0f2ffb1e564aa67a2dfca7cdf13de47ce489d835/src/ios-deploy/ios-deploy.m#L2491-L2508
186
- ApplicationsType: "Any",
192
+ ApplicationsType: 'Any',
187
193
  CFBundleIdentifier: bundleId,
188
- CloseOnInvalidate: "1",
189
- InvalidateOnDetach: "1",
190
- IsUserInitiated: "1",
194
+ CloseOnInvalidate: '1',
195
+ InvalidateOnDetach: '1',
196
+ IsUserInitiated: '1',
191
197
  // Disable checking for wifi devices, this is nominally faster.
192
- PreferWifi: "0",
198
+ PreferWifi: '0',
193
199
  // Only info I could find on these:
194
200
  // https://github.com/wwxxyx/Quectel_BG96/blob/310876f90fc1093a59e45e381160eddcc31697d0/Apple_Homekit/homekit_certification_tools/ATS%206/ATS%206/ATS.app/Contents/Frameworks/CaptureKit.framework/Versions/A/Resources/MobileDevice/MobileInstallation.h#L112-L121
195
- PackageType: "Developer",
201
+ PackageType: 'Developer',
196
202
  ShadowParentKey: deltaPath
197
203
  }, onProgress);
198
204
  const { // TODO(EvanBacon): This can be undefined when querying App Clips.
199
- [bundleId]: appInfo , } = await installer.lookupApp([
205
+ [bundleId]: appInfo } = await installer.lookupApp([
200
206
  bundleId
201
207
  ]);
202
208
  if (appInfo) {
@@ -218,7 +224,7 @@ async function runOnDevice({ udid , appPath , bundleId , waitForApp , deltaPath
218
224
  const result = await debugServerClient.continue();
219
225
  // TODO: I have no idea what this packet means yet (successful close?)
220
226
  // if not a close (ie, most likely due to halt from onBeforeExit), then kill the app
221
- if (result !== "W00") {
227
+ if (result !== 'W00') {
222
228
  await debugServerClient.kill();
223
229
  }
224
230
  }
@@ -235,8 +241,8 @@ async function runOnDevice({ udid , appPath , bundleId , waitForApp , deltaPath
235
241
  if (!(await imageMounter.lookupImage()).ImageSignature) {
236
242
  // verify DeveloperDiskImage exists (TODO: how does this work on Windows/Linux?)
237
243
  // TODO: if windows/linux, download?
238
- const version = await (await clientManager.getLockdowndClient()).getValue("ProductVersion");
239
- const developerDiskImagePath = await _xcodeDeveloperDiskImagePrerequisite.XcodeDeveloperDiskImagePrerequisite.instance.assertAsync({
244
+ const version = await (await clientManager.getLockdowndClient()).getValue('ProductVersion');
245
+ const developerDiskImagePath = await _XcodeDeveloperDiskImagePrerequisite.XcodeDeveloperDiskImagePrerequisite.instance.assertAsync({
240
246
  version
241
247
  });
242
248
  const developerDiskImageSig = _fs().default.readFileSync(`${developerDiskImagePath}.signature`);
@@ -244,20 +250,20 @@ async function runOnDevice({ udid , appPath , bundleId , waitForApp , deltaPath
244
250
  await imageMounter.mountImage(developerDiskImagePath, developerDiskImageSig);
245
251
  }
246
252
  }
247
- async function uploadApp(clientManager, { appBinaryPath , destinationPath }) {
253
+ async function uploadApp(clientManager, { appBinaryPath, destinationPath }) {
248
254
  const afcClient = await clientManager.getAFCClient();
249
255
  try {
250
- await afcClient.getFileInfo("PublicStaging");
256
+ await afcClient.getFileInfo('PublicStaging');
251
257
  } catch (err) {
252
- if (err instanceof _afcprotocol.AFCError && err.status === _afcprotocol.AFC_STATUS.OBJECT_NOT_FOUND) {
253
- await afcClient.makeDirectory("PublicStaging");
258
+ if (err instanceof _AFCProtocol.AFCError && err.status === _AFCProtocol.AFC_STATUS.OBJECT_NOT_FOUND) {
259
+ await afcClient.makeDirectory('PublicStaging');
254
260
  } else {
255
261
  throw err;
256
262
  }
257
263
  }
258
264
  await afcClient.uploadDirectory(appBinaryPath, destinationPath);
259
265
  }
260
- async function launchAppWithUsbmux(clientManager, { appInfo , detach }) {
266
+ async function launchAppWithUsbmux(clientManager, { appInfo, detach }) {
261
267
  let tries = 0;
262
268
  while(tries < 3){
263
269
  const debugServerClient = await clientManager.getDebugserverClient();
@@ -265,18 +271,18 @@ async function launchAppWithUsbmux(clientManager, { appInfo , detach }) {
265
271
  await debugServerClient.setWorkingDir(appInfo.Container);
266
272
  await debugServerClient.launchApp(appInfo.Path, appInfo.CFBundleExecutable);
267
273
  const result = await debugServerClient.checkLaunchSuccess();
268
- if (result === "OK") {
274
+ if (result === 'OK') {
269
275
  if (detach) {
270
276
  // https://github.com/libimobiledevice/libimobiledevice/blob/25059d4c7d75e03aab516af2929d7c6e6d4c17de/tools/idevicedebug.c#L455-L464
271
- const res = await debugServerClient.sendCommand("D", []);
272
- debug("Disconnect from debug server request:", res);
273
- if (res !== "OK") {
274
- console.warn("Something went wrong while attempting to disconnect from iOS debug server, you may need to reopen the app manually.");
277
+ const res = await debugServerClient.sendCommand('D', []);
278
+ debug('Disconnect from debug server request:', res);
279
+ if (res !== 'OK') {
280
+ console.warn('Something went wrong while attempting to disconnect from iOS debug server, you may need to reopen the app manually.');
275
281
  }
276
282
  }
277
283
  return debugServerClient;
278
- } else if (result === "EBusy" || result === "ENotFound") {
279
- debug("Device busy or app not found, trying to launch again in .5s...");
284
+ } else if (result === 'EBusy' || result === 'ENotFound') {
285
+ debug('Device busy or app not found, trying to launch again in .5s...');
280
286
  tries++;
281
287
  debugServerClient.socket.end();
282
288
  await (0, _delay.delayAsync)(500);
@@ -284,21 +290,21 @@ async function launchAppWithUsbmux(clientManager, { appInfo , detach }) {
284
290
  throw new _errors.CommandError(`There was an error launching app: ${result}`);
285
291
  }
286
292
  }
287
- throw new _errors.CommandError("Unable to launch app, number of tries exceeded");
293
+ throw new _errors.CommandError('Unable to launch app, number of tries exceeded');
288
294
  }
289
295
  /**
290
296
  * iOS 17 introduces a new protocol called RemoteXPC.
291
297
  * This is not yet implemented, so we fallback to devicectl.
292
298
  *
293
299
  * @see https://github.com/doronz88/pymobiledevice3/blob/master/misc/RemoteXPC.md#process-remoted
294
- */ async function launchApp(clientManager, { bundleId , appInfo , detach }) {
300
+ */ async function launchApp(clientManager, { bundleId, appInfo, detach }) {
295
301
  try {
296
302
  return await launchAppWithUsbmux(clientManager, {
297
303
  appInfo,
298
304
  detach
299
305
  });
300
306
  } catch (error) {
301
- debug("Failed to launch app with Usbmuxd, falling back to xcrun...", error);
307
+ debug('Failed to launch app with Usbmuxd, falling back to xcrun...', error);
302
308
  // Get the device UDID and close the connection, to allow `xcrun devicectl` to connect
303
309
  const deviceId = clientManager.device.Properties.SerialNumber;
304
310
  clientManager.end();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/run/ios/appleDevice/AppleDevice.ts"],"sourcesContent":["import Debug from 'debug';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { ClientManager } from './ClientManager';\nimport { IPLookupResult, OnInstallProgressCallback } from './client/InstallationProxyClient';\nimport { LockdowndClient } from './client/LockdowndClient';\nimport { UsbmuxdClient } from './client/UsbmuxdClient';\nimport { AFC_STATUS, AFCError } from './protocol/AFCProtocol';\nimport { Log } from '../../../log';\nimport { XcodeDeveloperDiskImagePrerequisite } from '../../../start/doctor/apple/XcodeDeveloperDiskImagePrerequisite';\nimport * as devicectl from '../../../start/platforms/ios/devicectl';\nimport { launchAppWithDeviceCtl } from '../../../start/platforms/ios/devicectl';\nimport { OSType } from '../../../start/platforms/ios/simctl';\nimport { uniqBy } from '../../../utils/array';\nimport { delayAsync } from '../../../utils/delay';\nimport { CommandError } from '../../../utils/errors';\nimport { installExitHooks } from '../../../utils/exit';\nimport { profile } from '../../../utils/profile';\n\nconst debug = Debug('expo:apple-device');\n\n// NOTE(EvanBacon): I have a feeling this shape will change with new iOS versions (tested against iOS 15).\nexport interface ConnectedDevice {\n /** @example `00008101-001964A22629003A` */\n udid: string;\n /** @example `Evan's phone` */\n name: string;\n /** @example `iPhone13,4` */\n model: string;\n /** @example `device` */\n deviceType: 'device' | 'catalyst';\n /** @example `USB` */\n connectionType: 'USB' | 'Network';\n /** @example `15.4.1` */\n osVersion: string;\n\n osType: OSType;\n}\n\nasync function getConnectedDevicesUsingNativeToolsAsync(): Promise<ConnectedDevice[]> {\n return (\n (await devicectl.getConnectedAppleDevicesAsync())\n // Filter out unpaired and unavailable devices.\n // TODO: We could improve this logic in the future to attempt pairing if specified.\n .filter(\n (device) =>\n device.connectionProperties.pairingState === 'paired' &&\n device.connectionProperties.tunnelState !== 'unavailable'\n )\n .map((device) => {\n return {\n name: device.deviceProperties.name,\n model: device.hardwareProperties.productType,\n osVersion: device.deviceProperties.osVersionNumber,\n udid: device.hardwareProperties.udid,\n deviceType: 'device',\n connectionType:\n device.connectionProperties.transportType === 'localNetwork' ? 'Network' : 'USB',\n osType: coercePlatformToOsType(device.hardwareProperties.platform),\n };\n })\n );\n}\n\nfunction coercePlatformToOsType(platform: string): OSType {\n // The only two devices I have to test against...\n switch (platform) {\n case 'iOS':\n return 'iOS';\n case 'xrOS':\n return 'xrOS';\n default:\n debug('Unknown devicectl platform (needs to be added to Expo CLI):', platform);\n return platform as OSType;\n }\n}\nfunction coerceUsbmuxdPlatformToOsType(platform: string): OSType {\n // The only connectable device I have to test against...\n switch (platform) {\n case 'iPhone':\n case 'iPad':\n case 'iPhone OS':\n return 'iOS';\n default:\n debug('Unknown usbmuxd platform (needs to be added to Expo CLI):', platform);\n return platform as OSType;\n }\n}\n\n/** @returns a list of connected Apple devices. */\nexport async function getConnectedDevicesAsync(): Promise<ConnectedDevice[]> {\n const devices = await Promise.all([\n // Prioritize native tools since they can provide more accurate information.\n // NOTE: xcrun is substantially slower than custom tooling. +1.5s vs 9ms.\n profile(getConnectedDevicesUsingNativeToolsAsync)(),\n profile(getConnectedDevicesUsingCustomToolingAsync)(),\n ]);\n\n return uniqBy(devices.flat(), (device) => device.udid);\n}\n\n/**\n * This supports devices that are running OS versions older than iOS 17.\n *\n * @returns a list of connected Apple devices.\n */\nasync function getConnectedDevicesUsingCustomToolingAsync(): Promise<ConnectedDevice[]> {\n const client = new UsbmuxdClient(UsbmuxdClient.connectUsbmuxdSocket());\n const devices = await client.getDevices();\n client.socket.end();\n\n return Promise.all(\n devices.map(async (device): Promise<ConnectedDevice> => {\n const socket = await new UsbmuxdClient(UsbmuxdClient.connectUsbmuxdSocket()).connect(\n device,\n 62078\n );\n const deviceValues = await new LockdowndClient(socket).getAllValues();\n socket.end();\n // TODO(EvanBacon): Add support for osType (ipad, watchos, etc)\n return {\n // TODO(EvanBacon): Better name\n name: deviceValues.DeviceName ?? deviceValues.ProductType ?? 'unknown iOS device',\n model: deviceValues.ProductType,\n osVersion: deviceValues.ProductVersion,\n deviceType: 'device',\n connectionType: device.Properties.ConnectionType,\n udid: device.Properties.SerialNumber,\n osType: coerceUsbmuxdPlatformToOsType(deviceValues.DeviceClass),\n };\n })\n );\n}\n\n/** Install and run an Apple app binary on a connected Apple device. */\nexport async function runOnDevice({\n udid,\n appPath,\n bundleId,\n waitForApp,\n deltaPath,\n onProgress,\n}: {\n /** Apple device UDID */\n udid: string;\n /** File path to the app binary (ipa) */\n appPath: string;\n /** Bundle identifier for the app at `appPath` */\n bundleId: string;\n /** Wait for the app to launch before returning */\n waitForApp: boolean;\n /** File path to the app deltas folder to use for faster subsequent installs */\n deltaPath: string;\n /** Callback to be called with progress updates */\n onProgress: OnInstallProgressCallback;\n}) {\n debug('Running on device:', { udid, appPath, bundleId, waitForApp, deltaPath });\n\n const clientManager = await ClientManager.create(udid);\n\n try {\n await mountDeveloperDiskImage(clientManager);\n\n const packageName = path.basename(appPath);\n const destPackagePath = path.join('PublicStaging', packageName);\n\n await uploadApp(clientManager, { appBinaryPath: appPath, destinationPath: destPackagePath });\n\n const installer = await clientManager.getInstallationProxyClient();\n await installer.installApp(\n destPackagePath,\n bundleId,\n {\n // https://github.com/ios-control/ios-deploy/blob/0f2ffb1e564aa67a2dfca7cdf13de47ce489d835/src/ios-deploy/ios-deploy.m#L2491-L2508\n ApplicationsType: 'Any',\n\n CFBundleIdentifier: bundleId,\n CloseOnInvalidate: '1',\n InvalidateOnDetach: '1',\n IsUserInitiated: '1',\n // Disable checking for wifi devices, this is nominally faster.\n PreferWifi: '0',\n // Only info I could find on these:\n // https://github.com/wwxxyx/Quectel_BG96/blob/310876f90fc1093a59e45e381160eddcc31697d0/Apple_Homekit/homekit_certification_tools/ATS%206/ATS%206/ATS.app/Contents/Frameworks/CaptureKit.framework/Versions/A/Resources/MobileDevice/MobileInstallation.h#L112-L121\n PackageType: 'Developer',\n ShadowParentKey: deltaPath,\n // SkipUninstall: '1'\n },\n onProgress\n );\n\n const {\n // TODO(EvanBacon): This can be undefined when querying App Clips.\n [bundleId]: appInfo,\n } = await installer.lookupApp([bundleId]);\n\n if (appInfo) {\n // launch fails with EBusy or ENotFound if you try to launch immediately after install\n await delayAsync(200);\n const debugServerClient = await launchApp(clientManager, {\n bundleId,\n appInfo,\n detach: !waitForApp,\n });\n\n if (waitForApp && debugServerClient) {\n installExitHooks(async () => {\n // causes continue() to return\n debugServerClient.halt();\n // give continue() time to return response\n await delayAsync(64);\n });\n\n debug(`Waiting for app to close...\\n`);\n const result = await debugServerClient.continue();\n // TODO: I have no idea what this packet means yet (successful close?)\n // if not a close (ie, most likely due to halt from onBeforeExit), then kill the app\n if (result !== 'W00') {\n await debugServerClient.kill();\n }\n }\n } else {\n Log.warn(`App \"${bundleId}\" installed but couldn't be launched. Open on device manually.`);\n }\n } finally {\n clientManager.end();\n }\n}\n\n/** Mount the developer disk image for Xcode. */\nasync function mountDeveloperDiskImage(clientManager: ClientManager) {\n const imageMounter = await clientManager.getMobileImageMounterClient();\n // Check if already mounted. If not, mount.\n if (!(await imageMounter.lookupImage()).ImageSignature) {\n // verify DeveloperDiskImage exists (TODO: how does this work on Windows/Linux?)\n // TODO: if windows/linux, download?\n const version = await (await clientManager.getLockdowndClient()).getValue('ProductVersion');\n const developerDiskImagePath = await XcodeDeveloperDiskImagePrerequisite.instance.assertAsync({\n version,\n });\n const developerDiskImageSig = fs.readFileSync(`${developerDiskImagePath}.signature`);\n await imageMounter.uploadImage(developerDiskImagePath, developerDiskImageSig);\n await imageMounter.mountImage(developerDiskImagePath, developerDiskImageSig);\n }\n}\n\nasync function uploadApp(\n clientManager: ClientManager,\n { appBinaryPath, destinationPath }: { appBinaryPath: string; destinationPath: string }\n) {\n const afcClient = await clientManager.getAFCClient();\n try {\n await afcClient.getFileInfo('PublicStaging');\n } catch (err: any) {\n if (err instanceof AFCError && err.status === AFC_STATUS.OBJECT_NOT_FOUND) {\n await afcClient.makeDirectory('PublicStaging');\n } else {\n throw err;\n }\n }\n await afcClient.uploadDirectory(appBinaryPath, destinationPath);\n}\n\nasync function launchAppWithUsbmux(\n clientManager: ClientManager,\n { appInfo, detach }: { appInfo: IPLookupResult[string]; detach?: boolean }\n) {\n let tries = 0;\n while (tries < 3) {\n const debugServerClient = await clientManager.getDebugserverClient();\n await debugServerClient.setMaxPacketSize(1024);\n await debugServerClient.setWorkingDir(appInfo.Container);\n await debugServerClient.launchApp(appInfo.Path, appInfo.CFBundleExecutable);\n\n const result = await debugServerClient.checkLaunchSuccess();\n if (result === 'OK') {\n if (detach) {\n // https://github.com/libimobiledevice/libimobiledevice/blob/25059d4c7d75e03aab516af2929d7c6e6d4c17de/tools/idevicedebug.c#L455-L464\n const res = await debugServerClient.sendCommand('D', []);\n debug('Disconnect from debug server request:', res);\n if (res !== 'OK') {\n console.warn(\n 'Something went wrong while attempting to disconnect from iOS debug server, you may need to reopen the app manually.'\n );\n }\n }\n\n return debugServerClient;\n } else if (result === 'EBusy' || result === 'ENotFound') {\n debug('Device busy or app not found, trying to launch again in .5s...');\n tries++;\n debugServerClient.socket.end();\n await delayAsync(500);\n } else {\n throw new CommandError(`There was an error launching app: ${result}`);\n }\n }\n throw new CommandError('Unable to launch app, number of tries exceeded');\n}\n\n/**\n * iOS 17 introduces a new protocol called RemoteXPC.\n * This is not yet implemented, so we fallback to devicectl.\n *\n * @see https://github.com/doronz88/pymobiledevice3/blob/master/misc/RemoteXPC.md#process-remoted\n */\nasync function launchApp(\n clientManager: ClientManager,\n {\n bundleId,\n appInfo,\n detach,\n }: { bundleId: string; appInfo: IPLookupResult[string]; detach?: boolean }\n) {\n try {\n return await launchAppWithUsbmux(clientManager, { appInfo, detach });\n } catch (error) {\n debug('Failed to launch app with Usbmuxd, falling back to xcrun...', error);\n\n // Get the device UDID and close the connection, to allow `xcrun devicectl` to connect\n const deviceId = clientManager.device.Properties.SerialNumber;\n clientManager.end();\n\n // Fallback to devicectl for iOS 17 support\n return await launchAppWithDeviceCtl(deviceId, bundleId);\n }\n}\n"],"names":["getConnectedDevicesAsync","runOnDevice","debug","Debug","getConnectedDevicesUsingNativeToolsAsync","devicectl","getConnectedAppleDevicesAsync","filter","device","connectionProperties","pairingState","tunnelState","map","name","deviceProperties","model","hardwareProperties","productType","osVersion","osVersionNumber","udid","deviceType","connectionType","transportType","osType","coercePlatformToOsType","platform","coerceUsbmuxdPlatformToOsType","devices","Promise","all","profile","getConnectedDevicesUsingCustomToolingAsync","uniqBy","flat","client","UsbmuxdClient","connectUsbmuxdSocket","getDevices","socket","end","connect","deviceValues","LockdowndClient","getAllValues","DeviceName","ProductType","ProductVersion","Properties","ConnectionType","SerialNumber","DeviceClass","appPath","bundleId","waitForApp","deltaPath","onProgress","clientManager","ClientManager","create","mountDeveloperDiskImage","packageName","path","basename","destPackagePath","join","uploadApp","appBinaryPath","destinationPath","installer","getInstallationProxyClient","installApp","ApplicationsType","CFBundleIdentifier","CloseOnInvalidate","InvalidateOnDetach","IsUserInitiated","PreferWifi","PackageType","ShadowParentKey","appInfo","lookupApp","delayAsync","debugServerClient","launchApp","detach","installExitHooks","halt","result","continue","kill","Log","warn","imageMounter","getMobileImageMounterClient","lookupImage","ImageSignature","version","getLockdowndClient","getValue","developerDiskImagePath","XcodeDeveloperDiskImagePrerequisite","instance","assertAsync","developerDiskImageSig","fs","readFileSync","uploadImage","mountImage","afcClient","getAFCClient","getFileInfo","err","AFCError","status","AFC_STATUS","OBJECT_NOT_FOUND","makeDirectory","uploadDirectory","launchAppWithUsbmux","tries","getDebugserverClient","setMaxPacketSize","setWorkingDir","Container","Path","CFBundleExecutable","checkLaunchSuccess","res","sendCommand","console","CommandError","error","deviceId","launchAppWithDeviceCtl"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/run/ios/appleDevice/AppleDevice.ts"],"sourcesContent":["import Debug from 'debug';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { ClientManager } from './ClientManager';\nimport { IPLookupResult, OnInstallProgressCallback } from './client/InstallationProxyClient';\nimport { LockdowndClient } from './client/LockdowndClient';\nimport { UsbmuxdClient } from './client/UsbmuxdClient';\nimport { AFC_STATUS, AFCError } from './protocol/AFCProtocol';\nimport { Log } from '../../../log';\nimport { XcodeDeveloperDiskImagePrerequisite } from '../../../start/doctor/apple/XcodeDeveloperDiskImagePrerequisite';\nimport * as devicectl from '../../../start/platforms/ios/devicectl';\nimport { launchAppWithDeviceCtl } from '../../../start/platforms/ios/devicectl';\nimport { OSType } from '../../../start/platforms/ios/simctl';\nimport { uniqBy } from '../../../utils/array';\nimport { delayAsync } from '../../../utils/delay';\nimport { CommandError } from '../../../utils/errors';\nimport { installExitHooks } from '../../../utils/exit';\nimport { profile } from '../../../utils/profile';\n\nconst debug = Debug('expo:apple-device');\n\n// NOTE(EvanBacon): I have a feeling this shape will change with new iOS versions (tested against iOS 15).\nexport interface ConnectedDevice {\n /** @example `00008101-001964A22629003A` */\n udid: string;\n /** @example `Evan's phone` */\n name: string;\n /** @example `iPhone13,4` */\n model: string;\n /** @example `device` */\n deviceType: 'device' | 'catalyst';\n /** @example `USB` */\n connectionType: 'USB' | 'Network';\n /** @example `15.4.1` */\n osVersion: string;\n\n osType: OSType;\n}\n\nasync function getConnectedDevicesUsingNativeToolsAsync(): Promise<ConnectedDevice[]> {\n return (\n (await devicectl.getConnectedAppleDevicesAsync())\n // Filter out unpaired and unavailable devices.\n // TODO: We could improve this logic in the future to attempt pairing if specified.\n .filter(\n (device) =>\n device.connectionProperties.pairingState === 'paired' &&\n device.connectionProperties.tunnelState !== 'unavailable'\n )\n .map((device) => {\n return {\n name: device.deviceProperties.name,\n model: device.hardwareProperties.productType,\n osVersion: device.deviceProperties.osVersionNumber,\n udid: device.hardwareProperties.udid,\n deviceType: 'device',\n connectionType:\n device.connectionProperties.transportType === 'localNetwork' ? 'Network' : 'USB',\n osType: coercePlatformToOsType(device.hardwareProperties.platform),\n };\n })\n );\n}\n\nfunction coercePlatformToOsType(platform: string): OSType {\n // The only two devices I have to test against...\n switch (platform) {\n case 'iOS':\n return 'iOS';\n case 'xrOS':\n return 'xrOS';\n default:\n debug('Unknown devicectl platform (needs to be added to Expo CLI):', platform);\n return platform as OSType;\n }\n}\nfunction coerceUsbmuxdPlatformToOsType(platform: string): OSType {\n // The only connectable device I have to test against...\n switch (platform) {\n case 'iPhone':\n case 'iPad':\n case 'iPhone OS':\n return 'iOS';\n default:\n debug('Unknown usbmuxd platform (needs to be added to Expo CLI):', platform);\n return platform as OSType;\n }\n}\n\n/** @returns a list of connected Apple devices. */\nexport async function getConnectedDevicesAsync(): Promise<ConnectedDevice[]> {\n const devices = await Promise.all([\n // Prioritize native tools since they can provide more accurate information.\n // NOTE: xcrun is substantially slower than custom tooling. +1.5s vs 9ms.\n profile(getConnectedDevicesUsingNativeToolsAsync)(),\n profile(getConnectedDevicesUsingCustomToolingAsync)(),\n ]);\n\n return uniqBy(devices.flat(), (device) => device.udid);\n}\n\n/**\n * This supports devices that are running OS versions older than iOS 17.\n *\n * @returns a list of connected Apple devices.\n */\nasync function getConnectedDevicesUsingCustomToolingAsync(): Promise<ConnectedDevice[]> {\n const client = new UsbmuxdClient(UsbmuxdClient.connectUsbmuxdSocket());\n const devices = await client.getDevices();\n client.socket.end();\n\n return Promise.all(\n devices.map(async (device): Promise<ConnectedDevice> => {\n const socket = await new UsbmuxdClient(UsbmuxdClient.connectUsbmuxdSocket()).connect(\n device,\n 62078\n );\n const deviceValues = await new LockdowndClient(socket).getAllValues();\n socket.end();\n // TODO(EvanBacon): Add support for osType (ipad, watchos, etc)\n return {\n // TODO(EvanBacon): Better name\n name: deviceValues.DeviceName ?? deviceValues.ProductType ?? 'unknown iOS device',\n model: deviceValues.ProductType,\n osVersion: deviceValues.ProductVersion,\n deviceType: 'device',\n connectionType: device.Properties.ConnectionType,\n udid: device.Properties.SerialNumber,\n osType: coerceUsbmuxdPlatformToOsType(deviceValues.DeviceClass),\n };\n })\n );\n}\n\n/** Install and run an Apple app binary on a connected Apple device. */\nexport async function runOnDevice({\n udid,\n appPath,\n bundleId,\n waitForApp,\n deltaPath,\n onProgress,\n}: {\n /** Apple device UDID */\n udid: string;\n /** File path to the app binary (ipa) */\n appPath: string;\n /** Bundle identifier for the app at `appPath` */\n bundleId: string;\n /** Wait for the app to launch before returning */\n waitForApp: boolean;\n /** File path to the app deltas folder to use for faster subsequent installs */\n deltaPath: string;\n /** Callback to be called with progress updates */\n onProgress: OnInstallProgressCallback;\n}) {\n debug('Running on device:', { udid, appPath, bundleId, waitForApp, deltaPath });\n\n const clientManager = await ClientManager.create(udid);\n\n try {\n await mountDeveloperDiskImage(clientManager);\n\n const packageName = path.basename(appPath);\n const destPackagePath = path.join('PublicStaging', packageName);\n\n await uploadApp(clientManager, { appBinaryPath: appPath, destinationPath: destPackagePath });\n\n const installer = await clientManager.getInstallationProxyClient();\n await installer.installApp(\n destPackagePath,\n bundleId,\n {\n // https://github.com/ios-control/ios-deploy/blob/0f2ffb1e564aa67a2dfca7cdf13de47ce489d835/src/ios-deploy/ios-deploy.m#L2491-L2508\n ApplicationsType: 'Any',\n\n CFBundleIdentifier: bundleId,\n CloseOnInvalidate: '1',\n InvalidateOnDetach: '1',\n IsUserInitiated: '1',\n // Disable checking for wifi devices, this is nominally faster.\n PreferWifi: '0',\n // Only info I could find on these:\n // https://github.com/wwxxyx/Quectel_BG96/blob/310876f90fc1093a59e45e381160eddcc31697d0/Apple_Homekit/homekit_certification_tools/ATS%206/ATS%206/ATS.app/Contents/Frameworks/CaptureKit.framework/Versions/A/Resources/MobileDevice/MobileInstallation.h#L112-L121\n PackageType: 'Developer',\n ShadowParentKey: deltaPath,\n // SkipUninstall: '1'\n },\n onProgress\n );\n\n const {\n // TODO(EvanBacon): This can be undefined when querying App Clips.\n [bundleId]: appInfo,\n } = await installer.lookupApp([bundleId]);\n\n if (appInfo) {\n // launch fails with EBusy or ENotFound if you try to launch immediately after install\n await delayAsync(200);\n const debugServerClient = await launchApp(clientManager, {\n bundleId,\n appInfo,\n detach: !waitForApp,\n });\n\n if (waitForApp && debugServerClient) {\n installExitHooks(async () => {\n // causes continue() to return\n debugServerClient.halt();\n // give continue() time to return response\n await delayAsync(64);\n });\n\n debug(`Waiting for app to close...\\n`);\n const result = await debugServerClient.continue();\n // TODO: I have no idea what this packet means yet (successful close?)\n // if not a close (ie, most likely due to halt from onBeforeExit), then kill the app\n if (result !== 'W00') {\n await debugServerClient.kill();\n }\n }\n } else {\n Log.warn(`App \"${bundleId}\" installed but couldn't be launched. Open on device manually.`);\n }\n } finally {\n clientManager.end();\n }\n}\n\n/** Mount the developer disk image for Xcode. */\nasync function mountDeveloperDiskImage(clientManager: ClientManager) {\n const imageMounter = await clientManager.getMobileImageMounterClient();\n // Check if already mounted. If not, mount.\n if (!(await imageMounter.lookupImage()).ImageSignature) {\n // verify DeveloperDiskImage exists (TODO: how does this work on Windows/Linux?)\n // TODO: if windows/linux, download?\n const version = await (await clientManager.getLockdowndClient()).getValue('ProductVersion');\n const developerDiskImagePath = await XcodeDeveloperDiskImagePrerequisite.instance.assertAsync({\n version,\n });\n const developerDiskImageSig = fs.readFileSync(`${developerDiskImagePath}.signature`);\n await imageMounter.uploadImage(developerDiskImagePath, developerDiskImageSig);\n await imageMounter.mountImage(developerDiskImagePath, developerDiskImageSig);\n }\n}\n\nasync function uploadApp(\n clientManager: ClientManager,\n { appBinaryPath, destinationPath }: { appBinaryPath: string; destinationPath: string }\n) {\n const afcClient = await clientManager.getAFCClient();\n try {\n await afcClient.getFileInfo('PublicStaging');\n } catch (err: any) {\n if (err instanceof AFCError && err.status === AFC_STATUS.OBJECT_NOT_FOUND) {\n await afcClient.makeDirectory('PublicStaging');\n } else {\n throw err;\n }\n }\n await afcClient.uploadDirectory(appBinaryPath, destinationPath);\n}\n\nasync function launchAppWithUsbmux(\n clientManager: ClientManager,\n { appInfo, detach }: { appInfo: IPLookupResult[string]; detach?: boolean }\n) {\n let tries = 0;\n while (tries < 3) {\n const debugServerClient = await clientManager.getDebugserverClient();\n await debugServerClient.setMaxPacketSize(1024);\n await debugServerClient.setWorkingDir(appInfo.Container);\n await debugServerClient.launchApp(appInfo.Path, appInfo.CFBundleExecutable);\n\n const result = await debugServerClient.checkLaunchSuccess();\n if (result === 'OK') {\n if (detach) {\n // https://github.com/libimobiledevice/libimobiledevice/blob/25059d4c7d75e03aab516af2929d7c6e6d4c17de/tools/idevicedebug.c#L455-L464\n const res = await debugServerClient.sendCommand('D', []);\n debug('Disconnect from debug server request:', res);\n if (res !== 'OK') {\n console.warn(\n 'Something went wrong while attempting to disconnect from iOS debug server, you may need to reopen the app manually.'\n );\n }\n }\n\n return debugServerClient;\n } else if (result === 'EBusy' || result === 'ENotFound') {\n debug('Device busy or app not found, trying to launch again in .5s...');\n tries++;\n debugServerClient.socket.end();\n await delayAsync(500);\n } else {\n throw new CommandError(`There was an error launching app: ${result}`);\n }\n }\n throw new CommandError('Unable to launch app, number of tries exceeded');\n}\n\n/**\n * iOS 17 introduces a new protocol called RemoteXPC.\n * This is not yet implemented, so we fallback to devicectl.\n *\n * @see https://github.com/doronz88/pymobiledevice3/blob/master/misc/RemoteXPC.md#process-remoted\n */\nasync function launchApp(\n clientManager: ClientManager,\n {\n bundleId,\n appInfo,\n detach,\n }: { bundleId: string; appInfo: IPLookupResult[string]; detach?: boolean }\n) {\n try {\n return await launchAppWithUsbmux(clientManager, { appInfo, detach });\n } catch (error) {\n debug('Failed to launch app with Usbmuxd, falling back to xcrun...', error);\n\n // Get the device UDID and close the connection, to allow `xcrun devicectl` to connect\n const deviceId = clientManager.device.Properties.SerialNumber;\n clientManager.end();\n\n // Fallback to devicectl for iOS 17 support\n return await launchAppWithDeviceCtl(deviceId, bundleId);\n }\n}\n"],"names":["getConnectedDevicesAsync","runOnDevice","debug","Debug","getConnectedDevicesUsingNativeToolsAsync","devicectl","getConnectedAppleDevicesAsync","filter","device","connectionProperties","pairingState","tunnelState","map","name","deviceProperties","model","hardwareProperties","productType","osVersion","osVersionNumber","udid","deviceType","connectionType","transportType","osType","coercePlatformToOsType","platform","coerceUsbmuxdPlatformToOsType","devices","Promise","all","profile","getConnectedDevicesUsingCustomToolingAsync","uniqBy","flat","client","UsbmuxdClient","connectUsbmuxdSocket","getDevices","socket","end","connect","deviceValues","LockdowndClient","getAllValues","DeviceName","ProductType","ProductVersion","Properties","ConnectionType","SerialNumber","DeviceClass","appPath","bundleId","waitForApp","deltaPath","onProgress","clientManager","ClientManager","create","mountDeveloperDiskImage","packageName","path","basename","destPackagePath","join","uploadApp","appBinaryPath","destinationPath","installer","getInstallationProxyClient","installApp","ApplicationsType","CFBundleIdentifier","CloseOnInvalidate","InvalidateOnDetach","IsUserInitiated","PreferWifi","PackageType","ShadowParentKey","appInfo","lookupApp","delayAsync","debugServerClient","launchApp","detach","installExitHooks","halt","result","continue","kill","Log","warn","imageMounter","getMobileImageMounterClient","lookupImage","ImageSignature","version","getLockdowndClient","getValue","developerDiskImagePath","XcodeDeveloperDiskImagePrerequisite","instance","assertAsync","developerDiskImageSig","fs","readFileSync","uploadImage","mountImage","afcClient","getAFCClient","getFileInfo","err","AFCError","status","AFC_STATUS","OBJECT_NOT_FOUND","makeDirectory","uploadDirectory","launchAppWithUsbmux","tries","getDebugserverClient","setMaxPacketSize","setWorkingDir","Container","Path","CFBundleExecutable","checkLaunchSuccess","res","sendCommand","console","CommandError","error","deviceId","launchAppWithDeviceCtl"],"mappings":"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"}
@@ -10,7 +10,9 @@ Object.defineProperty(exports, "__esModule", {
10
10
  });
11
11
  Object.defineProperty(exports, "ClientManager", {
12
12
  enumerable: true,
13
- get: ()=>ClientManager
13
+ get: function() {
14
+ return ClientManager;
15
+ }
14
16
  });
15
17
  function _stream() {
16
18
  const data = require("stream");
@@ -20,18 +22,18 @@ function _stream() {
20
22
  return data;
21
23
  }
22
24
  function _tls() {
23
- const data = /*#__PURE__*/ _interopRequireWildcard(require("tls"));
25
+ const data = /*#__PURE__*/ _interop_require_wildcard(require("tls"));
24
26
  _tls = function() {
25
27
  return data;
26
28
  };
27
29
  return data;
28
30
  }
29
- const _afcclient = require("./client/AFCClient");
30
- const _debugserverClient = require("./client/DebugserverClient");
31
- const _installationProxyClient = require("./client/InstallationProxyClient");
32
- const _lockdowndClient = require("./client/LockdowndClient");
33
- const _mobileImageMounterClient = require("./client/MobileImageMounterClient");
34
- const _usbmuxdClient = require("./client/UsbmuxdClient");
31
+ const _AFCClient = require("./client/AFCClient");
32
+ const _DebugserverClient = require("./client/DebugserverClient");
33
+ const _InstallationProxyClient = require("./client/InstallationProxyClient");
34
+ const _LockdowndClient = require("./client/LockdowndClient");
35
+ const _MobileImageMounterClient = require("./client/MobileImageMounterClient");
36
+ const _UsbmuxdClient = require("./client/UsbmuxdClient");
35
37
  const _errors = require("../../../utils/errors");
36
38
  function _getRequireWildcardCache(nodeInterop) {
37
39
  if (typeof WeakMap !== "function") return null;
@@ -41,7 +43,7 @@ function _getRequireWildcardCache(nodeInterop) {
41
43
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
42
44
  })(nodeInterop);
43
45
  }
44
- function _interopRequireWildcard(obj, nodeInterop) {
46
+ function _interop_require_wildcard(obj, nodeInterop) {
45
47
  if (!nodeInterop && obj && obj.__esModule) {
46
48
  return obj;
47
49
  }
@@ -54,7 +56,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
54
56
  if (cache && cache.has(obj)) {
55
57
  return cache.get(obj);
56
58
  }
57
- var newObj = {};
59
+ var newObj = {
60
+ __proto__: null
61
+ };
58
62
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
59
63
  for(var key in obj){
60
64
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -82,23 +86,23 @@ class ClientManager {
82
86
  ];
83
87
  }
84
88
  static async create(udid) {
85
- const usbmuxClient = new _usbmuxdClient.UsbmuxdClient(_usbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
89
+ const usbmuxClient = new _UsbmuxdClient.UsbmuxdClient(_UsbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
86
90
  const device = await usbmuxClient.getDevice(udid);
87
91
  const pairRecord = await usbmuxClient.readPairRecord(device.Properties.SerialNumber);
88
92
  const lockdownSocket = await usbmuxClient.connect(device, 62078);
89
- const lockdownClient = new _lockdowndClient.LockdowndClient(lockdownSocket);
93
+ const lockdownClient = new _LockdowndClient.LockdowndClient(lockdownSocket);
90
94
  await lockdownClient.doHandshake(pairRecord);
91
95
  return new ClientManager(pairRecord, device, lockdownClient);
92
96
  }
93
97
  async getUsbmuxdClient() {
94
- const usbmuxClient = new _usbmuxdClient.UsbmuxdClient(_usbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
98
+ const usbmuxClient = new _UsbmuxdClient.UsbmuxdClient(_UsbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
95
99
  this.connections.push(usbmuxClient.socket);
96
100
  return usbmuxClient;
97
101
  }
98
102
  async getLockdowndClient() {
99
- const usbmuxClient = new _usbmuxdClient.UsbmuxdClient(_usbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
103
+ const usbmuxClient = new _UsbmuxdClient.UsbmuxdClient(_UsbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
100
104
  const lockdownSocket = await usbmuxClient.connect(this.device, 62078);
101
- const lockdownClient = new _lockdowndClient.LockdowndClient(lockdownSocket);
105
+ const lockdownClient = new _LockdowndClient.LockdowndClient(lockdownSocket);
102
106
  this.connections.push(lockdownClient.socket);
103
107
  return lockdownClient;
104
108
  }
@@ -108,26 +112,26 @@ class ClientManager {
108
112
  return lockdownClient;
109
113
  }
110
114
  async getAFCClient() {
111
- return this.getServiceClient("com.apple.afc", _afcclient.AFCClient);
115
+ return this.getServiceClient('com.apple.afc', _AFCClient.AFCClient);
112
116
  }
113
117
  async getInstallationProxyClient() {
114
- return this.getServiceClient("com.apple.mobile.installation_proxy", _installationProxyClient.InstallationProxyClient);
118
+ return this.getServiceClient('com.apple.mobile.installation_proxy', _InstallationProxyClient.InstallationProxyClient);
115
119
  }
116
120
  async getMobileImageMounterClient() {
117
- return this.getServiceClient("com.apple.mobile.mobile_image_mounter", _mobileImageMounterClient.MobileImageMounterClient);
121
+ return this.getServiceClient('com.apple.mobile.mobile_image_mounter', _MobileImageMounterClient.MobileImageMounterClient);
118
122
  }
119
123
  async getDebugserverClient() {
120
124
  try {
121
125
  // iOS 14 added support for a secure debug service so try to connect to that first
122
- return await this.getServiceClient("com.apple.debugserver.DVTSecureSocketProxy", _debugserverClient.DebugserverClient);
126
+ return await this.getServiceClient('com.apple.debugserver.DVTSecureSocketProxy', _DebugserverClient.DebugserverClient);
123
127
  } catch {
124
128
  // otherwise, fall back to the previous implementation
125
- return this.getServiceClient("com.apple.debugserver", _debugserverClient.DebugserverClient, true);
129
+ return this.getServiceClient('com.apple.debugserver', _DebugserverClient.DebugserverClient, true);
126
130
  }
127
131
  }
128
132
  async getServiceClient(name, ServiceType, disableSSL = false) {
129
- const { port: servicePort , enableServiceSSL } = await this.lockdowndClient.startService(name);
130
- const usbmuxClient = new _usbmuxdClient.UsbmuxdClient(_usbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
133
+ const { port: servicePort, enableServiceSSL } = await this.lockdowndClient.startService(name);
134
+ const usbmuxClient = new _UsbmuxdClient.UsbmuxdClient(_UsbmuxdClient.UsbmuxdClient.connectUsbmuxdSocket());
131
135
  let usbmuxdSocket = await usbmuxClient.connect(this.device, servicePort);
132
136
  if (enableServiceSSL) {
133
137
  const tlsOptions = {
@@ -152,7 +156,7 @@ class ClientManager {
152
156
  tlsOptions.socket = proxy;
153
157
  await new Promise((resolve, reject)=>{
154
158
  const timeoutId = setTimeout(()=>{
155
- reject(new _errors.CommandError("APPLE_DEVICE", "The TLS handshake failed to complete after 5s."));
159
+ reject(new _errors.CommandError('APPLE_DEVICE', 'The TLS handshake failed to complete after 5s.'));
156
160
  }, 5000);
157
161
  _tls().connect(tlsOptions, function() {
158
162
  clearTimeout(timeoutId);
@@ -182,9 +186,8 @@ class ClientManager {
182
186
  }
183
187
  class UsbmuxdProxy extends _stream().Duplex {
184
188
  constructor(usbmuxdSock){
185
- super();
186
- this.usbmuxdSock = usbmuxdSock;
187
- this.usbmuxdSock.on("data", (data)=>{
189
+ super(), this.usbmuxdSock = usbmuxdSock;
190
+ this.usbmuxdSock.on('data', (data)=>{
188
191
  this.push(data);
189
192
  });
190
193
  }