@expo/cli 0.0.0-bisect-20240612-0

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