@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/start/project/devices.ts"],"sourcesContent":["import { createTemporaryProjectFile } from './dotExpo';\n\nconst debug = require('debug')('expo:start:project:devices') as typeof console.log;\n\nexport type DeviceInfo = {\n installationId: string;\n lastUsed: number;\n};\n\nexport type DevicesInfo = {\n devices: DeviceInfo[];\n};\n\nconst DEVICES_FILE_NAME = 'devices.json';\n\nconst MILLISECONDS_IN_30_DAYS = 30 * 24 * 60 * 60 * 1000;\n\nexport const DevicesFile = createTemporaryProjectFile<DevicesInfo>(DEVICES_FILE_NAME, {\n devices: [],\n});\n\nlet devicesInfo: DevicesInfo | null = null;\n\nexport async function getDevicesInfoAsync(projectRoot: string): Promise<DevicesInfo> {\n if (devicesInfo) {\n return devicesInfo;\n }\n return readDevicesInfoAsync(projectRoot);\n}\n\nexport async function readDevicesInfoAsync(projectRoot: string): Promise<DevicesInfo> {\n try {\n devicesInfo = await DevicesFile.readAsync(projectRoot);\n\n // if the file on disk has old devices, filter them out here before we use them\n const filteredDevices = filterOldDevices(devicesInfo.devices);\n if (filteredDevices.length < devicesInfo.devices.length) {\n devicesInfo = {\n ...devicesInfo,\n devices: filteredDevices,\n };\n // save the newly filtered list for consistency\n try {\n await setDevicesInfoAsync(projectRoot, devicesInfo);\n } catch {\n // do nothing here, we'll just keep using the filtered list in memory for now\n }\n }\n\n return devicesInfo;\n } catch {\n return await DevicesFile.setAsync(projectRoot, { devices: [] });\n }\n}\n\nexport async function setDevicesInfoAsync(\n projectRoot: string,\n json: DevicesInfo\n): Promise<DevicesInfo> {\n devicesInfo = json;\n return await DevicesFile.setAsync(projectRoot, json);\n}\n\nexport async function saveDevicesAsync(\n projectRoot: string,\n deviceIds: string | string[]\n): Promise<void> {\n const currentTime = Date.now();\n const newDeviceIds = typeof deviceIds === 'string' ? [deviceIds] : deviceIds;\n\n debug(`Saving devices: ${newDeviceIds}`);\n const { devices } = await getDevicesInfoAsync(projectRoot);\n const newDevicesJson = devices\n .filter((device) => !newDeviceIds.includes(device.installationId))\n .concat(newDeviceIds.map((deviceId) => ({ installationId: deviceId, lastUsed: currentTime })));\n await setDevicesInfoAsync(projectRoot, { devices: filterOldDevices(newDevicesJson) });\n}\n\nfunction filterOldDevices(devices: DeviceInfo[]) {\n const currentTime = Date.now();\n return (\n devices\n // filter out any devices that haven't been used to open this project in 30 days\n .filter((device) => currentTime - device.lastUsed <= MILLISECONDS_IN_30_DAYS)\n // keep only the 10 most recently used devices\n .sort((a, b) => b.lastUsed - a.lastUsed)\n .slice(0, 10)\n );\n}\n"],"names":["DevicesFile","getDevicesInfoAsync","readDevicesInfoAsync","setDevicesInfoAsync","saveDevicesAsync","debug","require","DEVICES_FILE_NAME","MILLISECONDS_IN_30_DAYS","createTemporaryProjectFile","devices","devicesInfo","projectRoot","readAsync","filteredDevices","filterOldDevices","length","setAsync","json","deviceIds","currentTime","Date","now","newDeviceIds","newDevicesJson","filter","device","includes","installationId","concat","map","deviceId","lastUsed","sort","a","b","slice"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/start/project/devices.ts"],"sourcesContent":["import { createTemporaryProjectFile } from './dotExpo';\n\nconst debug = require('debug')('expo:start:project:devices') as typeof console.log;\n\nexport type DeviceInfo = {\n installationId: string;\n lastUsed: number;\n};\n\nexport type DevicesInfo = {\n devices: DeviceInfo[];\n};\n\nconst DEVICES_FILE_NAME = 'devices.json';\n\nconst MILLISECONDS_IN_30_DAYS = 30 * 24 * 60 * 60 * 1000;\n\nexport const DevicesFile = createTemporaryProjectFile<DevicesInfo>(DEVICES_FILE_NAME, {\n devices: [],\n});\n\nlet devicesInfo: DevicesInfo | null = null;\n\nexport async function getDevicesInfoAsync(projectRoot: string): Promise<DevicesInfo> {\n if (devicesInfo) {\n return devicesInfo;\n }\n return readDevicesInfoAsync(projectRoot);\n}\n\nexport async function readDevicesInfoAsync(projectRoot: string): Promise<DevicesInfo> {\n try {\n devicesInfo = await DevicesFile.readAsync(projectRoot);\n\n // if the file on disk has old devices, filter them out here before we use them\n const filteredDevices = filterOldDevices(devicesInfo.devices);\n if (filteredDevices.length < devicesInfo.devices.length) {\n devicesInfo = {\n ...devicesInfo,\n devices: filteredDevices,\n };\n // save the newly filtered list for consistency\n try {\n await setDevicesInfoAsync(projectRoot, devicesInfo);\n } catch {\n // do nothing here, we'll just keep using the filtered list in memory for now\n }\n }\n\n return devicesInfo;\n } catch {\n return await DevicesFile.setAsync(projectRoot, { devices: [] });\n }\n}\n\nexport async function setDevicesInfoAsync(\n projectRoot: string,\n json: DevicesInfo\n): Promise<DevicesInfo> {\n devicesInfo = json;\n return await DevicesFile.setAsync(projectRoot, json);\n}\n\nexport async function saveDevicesAsync(\n projectRoot: string,\n deviceIds: string | string[]\n): Promise<void> {\n const currentTime = Date.now();\n const newDeviceIds = typeof deviceIds === 'string' ? [deviceIds] : deviceIds;\n\n debug(`Saving devices: ${newDeviceIds}`);\n const { devices } = await getDevicesInfoAsync(projectRoot);\n const newDevicesJson = devices\n .filter((device) => !newDeviceIds.includes(device.installationId))\n .concat(newDeviceIds.map((deviceId) => ({ installationId: deviceId, lastUsed: currentTime })));\n await setDevicesInfoAsync(projectRoot, { devices: filterOldDevices(newDevicesJson) });\n}\n\nfunction filterOldDevices(devices: DeviceInfo[]) {\n const currentTime = Date.now();\n return (\n devices\n // filter out any devices that haven't been used to open this project in 30 days\n .filter((device) => currentTime - device.lastUsed <= MILLISECONDS_IN_30_DAYS)\n // keep only the 10 most recently used devices\n .sort((a, b) => b.lastUsed - a.lastUsed)\n .slice(0, 10)\n );\n}\n"],"names":["DevicesFile","getDevicesInfoAsync","readDevicesInfoAsync","saveDevicesAsync","setDevicesInfoAsync","debug","require","DEVICES_FILE_NAME","MILLISECONDS_IN_30_DAYS","createTemporaryProjectFile","devices","devicesInfo","projectRoot","readAsync","filteredDevices","filterOldDevices","length","setAsync","json","deviceIds","currentTime","Date","now","newDeviceIds","newDevicesJson","filter","device","includes","installationId","concat","map","deviceId","lastUsed","sort","a","b","slice"],"mappings":";;;;;;;;;;;IAiBaA,WAAW;eAAXA;;IAMSC,mBAAmB;eAAnBA;;IAOAC,oBAAoB;eAApBA;;IAiCAC,gBAAgB;eAAhBA;;IARAC,mBAAmB;eAAnBA;;;yBAvDqB;AAE3C,MAAMC,QAAQC,QAAQ,SAAS;AAW/B,MAAMC,oBAAoB;AAE1B,MAAMC,0BAA0B,KAAK,KAAK,KAAK,KAAK;AAE7C,MAAMR,cAAcS,IAAAA,mCAA0B,EAAcF,mBAAmB;IACpFG,SAAS,EAAE;AACb;AAEA,IAAIC,cAAkC;AAE/B,eAAeV,oBAAoBW,WAAmB;IAC3D,IAAID,aAAa;QACf,OAAOA;IACT;IACA,OAAOT,qBAAqBU;AAC9B;AAEO,eAAeV,qBAAqBU,WAAmB;IAC5D,IAAI;QACFD,cAAc,MAAMX,YAAYa,SAAS,CAACD;QAE1C,+EAA+E;QAC/E,MAAME,kBAAkBC,iBAAiBJ,YAAYD,OAAO;QAC5D,IAAII,gBAAgBE,MAAM,GAAGL,YAAYD,OAAO,CAACM,MAAM,EAAE;YACvDL,cAAc;gBACZ,GAAGA,WAAW;gBACdD,SAASI;YACX;YACA,+CAA+C;YAC/C,IAAI;gBACF,MAAMV,oBAAoBQ,aAAaD;YACzC,EAAE,OAAM;YACN,6EAA6E;YAC/E;QACF;QAEA,OAAOA;IACT,EAAE,OAAM;QACN,OAAO,MAAMX,YAAYiB,QAAQ,CAACL,aAAa;YAAEF,SAAS,EAAE;QAAC;IAC/D;AACF;AAEO,eAAeN,oBACpBQ,WAAmB,EACnBM,IAAiB;IAEjBP,cAAcO;IACd,OAAO,MAAMlB,YAAYiB,QAAQ,CAACL,aAAaM;AACjD;AAEO,eAAef,iBACpBS,WAAmB,EACnBO,SAA4B;IAE5B,MAAMC,cAAcC,KAAKC,GAAG;IAC5B,MAAMC,eAAe,OAAOJ,cAAc,WAAW;QAACA;KAAU,GAAGA;IAEnEd,MAAM,CAAC,gBAAgB,EAAEkB,cAAc;IACvC,MAAM,EAAEb,OAAO,EAAE,GAAG,MAAMT,oBAAoBW;IAC9C,MAAMY,iBAAiBd,QACpBe,MAAM,CAAC,CAACC,SAAW,CAACH,aAAaI,QAAQ,CAACD,OAAOE,cAAc,GAC/DC,MAAM,CAACN,aAAaO,GAAG,CAAC,CAACC,WAAc,CAAA;YAAEH,gBAAgBG;YAAUC,UAAUZ;QAAY,CAAA;IAC5F,MAAMhB,oBAAoBQ,aAAa;QAAEF,SAASK,iBAAiBS;IAAgB;AACrF;AAEA,SAAST,iBAAiBL,OAAqB;IAC7C,MAAMU,cAAcC,KAAKC,GAAG;IAC5B,OACEZ,OACE,gFAAgF;KAC/Ee,MAAM,CAAC,CAACC,SAAWN,cAAcM,OAAOM,QAAQ,IAAIxB,wBACrD,8CAA8C;KAC7CyB,IAAI,CAAC,CAACC,GAAGC,IAAMA,EAAEH,QAAQ,GAAGE,EAAEF,QAAQ,EACtCI,KAAK,CAAC,GAAG;AAEhB"}
@@ -9,31 +9,35 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- createTemporaryProjectFile: ()=>createTemporaryProjectFile,
13
- ensureDotExpoProjectDirectoryInitialized: ()=>ensureDotExpoProjectDirectoryInitialized
12
+ createTemporaryProjectFile: function() {
13
+ return createTemporaryProjectFile;
14
+ },
15
+ ensureDotExpoProjectDirectoryInitialized: function() {
16
+ return ensureDotExpoProjectDirectoryInitialized;
17
+ }
14
18
  });
15
- function _jsonFile() {
16
- const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/json-file"));
17
- _jsonFile = function() {
19
+ function _jsonfile() {
20
+ const data = /*#__PURE__*/ _interop_require_default(require("@expo/json-file"));
21
+ _jsonfile = 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
- function _interopRequireDefault(obj) {
40
+ function _interop_require_default(obj) {
37
41
  return obj && obj.__esModule ? obj : {
38
42
  default: obj
39
43
  };
@@ -41,7 +45,7 @@ function _interopRequireDefault(obj) {
41
45
  function createTemporaryProjectFile(fileName, defaults) {
42
46
  function getFile(projectRoot) {
43
47
  const dotExpoDir = ensureDotExpoProjectDirectoryInitialized(projectRoot);
44
- return new (_jsonFile()).default(_path().default.join(dotExpoDir, fileName));
48
+ return new (_jsonfile()).default(_path().default.join(dotExpoDir, fileName));
45
49
  }
46
50
  async function readAsync(projectRoot) {
47
51
  let projectSettings;
@@ -75,14 +79,14 @@ function createTemporaryProjectFile(fileName, defaults) {
75
79
  };
76
80
  }
77
81
  function getDotExpoProjectDirectory(projectRoot) {
78
- return _path().default.join(projectRoot, ".expo");
82
+ return _path().default.join(projectRoot, '.expo');
79
83
  }
80
84
  function ensureDotExpoProjectDirectoryInitialized(projectRoot) {
81
85
  const dirPath = getDotExpoProjectDirectory(projectRoot);
82
86
  _fs().default.mkdirSync(dirPath, {
83
87
  recursive: true
84
88
  });
85
- const readmeFilePath = _path().default.resolve(dirPath, "README.md");
89
+ const readmeFilePath = _path().default.resolve(dirPath, 'README.md');
86
90
  if (!_fs().default.existsSync(readmeFilePath)) {
87
91
  _fs().default.writeFileSync(readmeFilePath, `> Why do I have a folder named ".expo" in my project?
88
92
  The ".expo" folder is created when an Expo project is started using "expo start" command.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/start/project/dotExpo.ts"],"sourcesContent":["import JsonFile, { JSONObject } from '@expo/json-file';\nimport fs from 'fs';\nimport path from 'path';\n\n/** Create a set of functions for managing a file in the project's `.expo` directory. */\nexport function createTemporaryProjectFile<T extends JSONObject>(fileName: string, defaults: T) {\n function getFile(projectRoot: string): JsonFile<T> {\n const dotExpoDir = ensureDotExpoProjectDirectoryInitialized(projectRoot);\n return new JsonFile<T>(path.join(dotExpoDir, fileName));\n }\n\n async function readAsync(projectRoot: string): Promise<T> {\n let projectSettings;\n try {\n projectSettings = await getFile(projectRoot).readAsync();\n } catch {\n projectSettings = await getFile(projectRoot).writeAsync(defaults);\n }\n // Set defaults for any missing fields\n return { ...defaults, ...projectSettings };\n }\n\n async function setAsync(projectRoot: string, json: Partial<T>): Promise<T> {\n try {\n return await getFile(projectRoot).mergeAsync(json, {\n cantReadFileDefault: defaults,\n });\n } catch {\n return await getFile(projectRoot).writeAsync({\n ...defaults,\n ...json,\n });\n }\n }\n\n return {\n getFile,\n readAsync,\n setAsync,\n };\n}\n\nfunction getDotExpoProjectDirectory(projectRoot: string): string {\n return path.join(projectRoot, '.expo');\n}\n\nexport function ensureDotExpoProjectDirectoryInitialized(projectRoot: string): string {\n const dirPath = getDotExpoProjectDirectory(projectRoot);\n fs.mkdirSync(dirPath, { recursive: true });\n\n const readmeFilePath = path.resolve(dirPath, 'README.md');\n if (!fs.existsSync(readmeFilePath)) {\n fs.writeFileSync(\n readmeFilePath,\n `> Why do I have a folder named \".expo\" in my project?\nThe \".expo\" folder is created when an Expo project is started using \"expo start\" command.\n> What do the files contain?\n- \"devices.json\": contains information about devices that have recently opened this project. This is used to populate the \"Development sessions\" list in your development builds.\n- \"settings.json\": contains the server configuration that is used to serve the application manifest.\n> Should I commit the \".expo\" folder?\nNo, you should not share the \".expo\" folder. It does not contain any information that is relevant for other developers working on the project, it is specific to your machine.\nUpon project creation, the \".expo\" folder is already added to your \".gitignore\" file.\n`\n );\n }\n return dirPath;\n}\n"],"names":["createTemporaryProjectFile","ensureDotExpoProjectDirectoryInitialized","fileName","defaults","getFile","projectRoot","dotExpoDir","JsonFile","path","join","readAsync","projectSettings","writeAsync","setAsync","json","mergeAsync","cantReadFileDefault","getDotExpoProjectDirectory","dirPath","fs","mkdirSync","recursive","readmeFilePath","resolve","existsSync","writeFileSync"],"mappings":"AAAA;;;;;;;;;;;IAKgBA,0BAA0B,MAA1BA,0BAA0B;IAyC1BC,wCAAwC,MAAxCA,wCAAwC;;;8DA9CnB,iBAAiB;;;;;;;8DACvC,IAAI;;;;;;;8DACF,MAAM;;;;;;;;;;;AAGhB,SAASD,0BAA0B,CAAuBE,QAAgB,EAAEC,QAAW,EAAE;IAC9F,SAASC,OAAO,CAACC,WAAmB,EAAe;QACjD,MAAMC,UAAU,GAAGL,wCAAwC,CAACI,WAAW,CAAC,AAAC;QACzE,OAAO,IAAIE,CAAAA,SAAQ,EAAA,CAAA,QAAA,CAAIC,KAAI,EAAA,QAAA,CAACC,IAAI,CAACH,UAAU,EAAEJ,QAAQ,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,eAAeQ,SAAS,CAACL,WAAmB,EAAc;QACxD,IAAIM,eAAe,AAAC;QACpB,IAAI;YACFA,eAAe,GAAG,MAAMP,OAAO,CAACC,WAAW,CAAC,CAACK,SAAS,EAAE,CAAC;QAC3D,EAAE,OAAM;YACNC,eAAe,GAAG,MAAMP,OAAO,CAACC,WAAW,CAAC,CAACO,UAAU,CAACT,QAAQ,CAAC,CAAC;QACpE,CAAC;QACD,sCAAsC;QACtC,OAAO;YAAE,GAAGA,QAAQ;YAAE,GAAGQ,eAAe;SAAE,CAAC;IAC7C,CAAC;IAED,eAAeE,QAAQ,CAACR,WAAmB,EAAES,IAAgB,EAAc;QACzE,IAAI;YACF,OAAO,MAAMV,OAAO,CAACC,WAAW,CAAC,CAACU,UAAU,CAACD,IAAI,EAAE;gBACjDE,mBAAmB,EAAEb,QAAQ;aAC9B,CAAC,CAAC;QACL,EAAE,OAAM;YACN,OAAO,MAAMC,OAAO,CAACC,WAAW,CAAC,CAACO,UAAU,CAAC;gBAC3C,GAAGT,QAAQ;gBACX,GAAGW,IAAI;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACLV,OAAO;QACPM,SAAS;QACTG,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAASI,0BAA0B,CAACZ,WAAmB,EAAU;IAC/D,OAAOG,KAAI,EAAA,QAAA,CAACC,IAAI,CAACJ,WAAW,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAEM,SAASJ,wCAAwC,CAACI,WAAmB,EAAU;IACpF,MAAMa,OAAO,GAAGD,0BAA0B,CAACZ,WAAW,CAAC,AAAC;IACxDc,GAAE,EAAA,QAAA,CAACC,SAAS,CAACF,OAAO,EAAE;QAAEG,SAAS,EAAE,IAAI;KAAE,CAAC,CAAC;IAE3C,MAAMC,cAAc,GAAGd,KAAI,EAAA,QAAA,CAACe,OAAO,CAACL,OAAO,EAAE,WAAW,CAAC,AAAC;IAC1D,IAAI,CAACC,GAAE,EAAA,QAAA,CAACK,UAAU,CAACF,cAAc,CAAC,EAAE;QAClCH,GAAE,EAAA,QAAA,CAACM,aAAa,CACdH,cAAc,EACd,CAAC;;;;;;;;AAQP,CAAC,CACI,CAAC;IACJ,CAAC;IACD,OAAOJ,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"sources":["../../../../src/start/project/dotExpo.ts"],"sourcesContent":["import JsonFile, { JSONObject } from '@expo/json-file';\nimport fs from 'fs';\nimport path from 'path';\n\n/** Create a set of functions for managing a file in the project's `.expo` directory. */\nexport function createTemporaryProjectFile<T extends JSONObject>(fileName: string, defaults: T) {\n function getFile(projectRoot: string): JsonFile<T> {\n const dotExpoDir = ensureDotExpoProjectDirectoryInitialized(projectRoot);\n return new JsonFile<T>(path.join(dotExpoDir, fileName));\n }\n\n async function readAsync(projectRoot: string): Promise<T> {\n let projectSettings;\n try {\n projectSettings = await getFile(projectRoot).readAsync();\n } catch {\n projectSettings = await getFile(projectRoot).writeAsync(defaults);\n }\n // Set defaults for any missing fields\n return { ...defaults, ...projectSettings };\n }\n\n async function setAsync(projectRoot: string, json: Partial<T>): Promise<T> {\n try {\n return await getFile(projectRoot).mergeAsync(json, {\n cantReadFileDefault: defaults,\n });\n } catch {\n return await getFile(projectRoot).writeAsync({\n ...defaults,\n ...json,\n });\n }\n }\n\n return {\n getFile,\n readAsync,\n setAsync,\n };\n}\n\nfunction getDotExpoProjectDirectory(projectRoot: string): string {\n return path.join(projectRoot, '.expo');\n}\n\nexport function ensureDotExpoProjectDirectoryInitialized(projectRoot: string): string {\n const dirPath = getDotExpoProjectDirectory(projectRoot);\n fs.mkdirSync(dirPath, { recursive: true });\n\n const readmeFilePath = path.resolve(dirPath, 'README.md');\n if (!fs.existsSync(readmeFilePath)) {\n fs.writeFileSync(\n readmeFilePath,\n `> Why do I have a folder named \".expo\" in my project?\nThe \".expo\" folder is created when an Expo project is started using \"expo start\" command.\n> What do the files contain?\n- \"devices.json\": contains information about devices that have recently opened this project. This is used to populate the \"Development sessions\" list in your development builds.\n- \"settings.json\": contains the server configuration that is used to serve the application manifest.\n> Should I commit the \".expo\" folder?\nNo, you should not share the \".expo\" folder. It does not contain any information that is relevant for other developers working on the project, it is specific to your machine.\nUpon project creation, the \".expo\" folder is already added to your \".gitignore\" file.\n`\n );\n }\n return dirPath;\n}\n"],"names":["createTemporaryProjectFile","ensureDotExpoProjectDirectoryInitialized","fileName","defaults","getFile","projectRoot","dotExpoDir","JsonFile","path","join","readAsync","projectSettings","writeAsync","setAsync","json","mergeAsync","cantReadFileDefault","getDotExpoProjectDirectory","dirPath","fs","mkdirSync","recursive","readmeFilePath","resolve","existsSync","writeFileSync"],"mappings":";;;;;;;;;;;IAKgBA,0BAA0B;eAA1BA;;IAyCAC,wCAAwC;eAAxCA;;;;gEA9CqB;;;;;;;gEACtB;;;;;;;gEACE;;;;;;;;;;;AAGV,SAASD,2BAAiDE,QAAgB,EAAEC,QAAW;IAC5F,SAASC,QAAQC,WAAmB;QAClC,MAAMC,aAAaL,yCAAyCI;QAC5D,OAAO,IAAIE,CAAAA,WAAO,SAAC,CAAIC,eAAI,CAACC,IAAI,CAACH,YAAYJ;IAC/C;IAEA,eAAeQ,UAAUL,WAAmB;QAC1C,IAAIM;QACJ,IAAI;YACFA,kBAAkB,MAAMP,QAAQC,aAAaK,SAAS;QACxD,EAAE,OAAM;YACNC,kBAAkB,MAAMP,QAAQC,aAAaO,UAAU,CAACT;QAC1D;QACA,sCAAsC;QACtC,OAAO;YAAE,GAAGA,QAAQ;YAAE,GAAGQ,eAAe;QAAC;IAC3C;IAEA,eAAeE,SAASR,WAAmB,EAAES,IAAgB;QAC3D,IAAI;YACF,OAAO,MAAMV,QAAQC,aAAaU,UAAU,CAACD,MAAM;gBACjDE,qBAAqBb;YACvB;QACF,EAAE,OAAM;YACN,OAAO,MAAMC,QAAQC,aAAaO,UAAU,CAAC;gBAC3C,GAAGT,QAAQ;gBACX,GAAGW,IAAI;YACT;QACF;IACF;IAEA,OAAO;QACLV;QACAM;QACAG;IACF;AACF;AAEA,SAASI,2BAA2BZ,WAAmB;IACrD,OAAOG,eAAI,CAACC,IAAI,CAACJ,aAAa;AAChC;AAEO,SAASJ,yCAAyCI,WAAmB;IAC1E,MAAMa,UAAUD,2BAA2BZ;IAC3Cc,aAAE,CAACC,SAAS,CAACF,SAAS;QAAEG,WAAW;IAAK;IAExC,MAAMC,iBAAiBd,eAAI,CAACe,OAAO,CAACL,SAAS;IAC7C,IAAI,CAACC,aAAE,CAACK,UAAU,CAACF,iBAAiB;QAClCH,aAAE,CAACM,aAAa,CACdH,gBACA,CAAC;;;;;;;;AAQP,CAAC;IAEC;IACA,OAAOJ;AACT"}
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "ProjectSettings", {
6
6
  enumerable: true,
7
- get: ()=>ProjectSettings
7
+ get: function() {
8
+ return ProjectSettings;
9
+ }
8
10
  });
9
11
  const _dotExpo = require("./dotExpo");
10
- const SETTINGS_FILE_NAME = "settings.json";
12
+ const SETTINGS_FILE_NAME = 'settings.json';
11
13
  const ProjectSettings = (0, _dotExpo.createTemporaryProjectFile)(SETTINGS_FILE_NAME, {
12
14
  urlRandomness: null
13
15
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/start/project/settings.ts"],"sourcesContent":["import { createTemporaryProjectFile } from './dotExpo';\n\nconst SETTINGS_FILE_NAME = 'settings.json';\n\nexport const ProjectSettings = createTemporaryProjectFile<{\n urlRandomness: string | null;\n}>(SETTINGS_FILE_NAME, {\n urlRandomness: null,\n});\n"],"names":["ProjectSettings","SETTINGS_FILE_NAME","createTemporaryProjectFile","urlRandomness"],"mappings":"AAAA;;;;+BAIaA,iBAAe;;aAAfA,eAAe;;yBAJe,WAAW;AAEtD,MAAMC,kBAAkB,GAAG,eAAe,AAAC;AAEpC,MAAMD,eAAe,GAAGE,IAAAA,QAA0B,2BAAA,EAEtDD,kBAAkB,EAAE;IACrBE,aAAa,EAAE,IAAI;CACpB,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../../../src/start/project/settings.ts"],"sourcesContent":["import { createTemporaryProjectFile } from './dotExpo';\n\nconst SETTINGS_FILE_NAME = 'settings.json';\n\nexport const ProjectSettings = createTemporaryProjectFile<{\n urlRandomness: string | null;\n}>(SETTINGS_FILE_NAME, {\n urlRandomness: null,\n});\n"],"names":["ProjectSettings","SETTINGS_FILE_NAME","createTemporaryProjectFile","urlRandomness"],"mappings":";;;;+BAIaA;;;eAAAA;;;yBAJ8B;AAE3C,MAAMC,qBAAqB;AAEpB,MAAMD,kBAAkBE,IAAAA,mCAA0B,EAEtDD,oBAAoB;IACrBE,eAAe;AACjB"}
@@ -9,20 +9,28 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- resolveOptionsAsync: ()=>resolveOptionsAsync,
13
- resolveSchemeAsync: ()=>resolveSchemeAsync,
14
- resolveHostType: ()=>resolveHostType,
15
- resolvePortsAsync: ()=>resolvePortsAsync
12
+ resolveHostType: function() {
13
+ return resolveHostType;
14
+ },
15
+ resolveOptionsAsync: function() {
16
+ return resolveOptionsAsync;
17
+ },
18
+ resolvePortsAsync: function() {
19
+ return resolvePortsAsync;
20
+ },
21
+ resolveSchemeAsync: function() {
22
+ return resolveSchemeAsync;
23
+ }
16
24
  });
17
25
  function _assert() {
18
- const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
26
+ const data = /*#__PURE__*/ _interop_require_default(require("assert"));
19
27
  _assert = function() {
20
28
  return data;
21
29
  };
22
30
  return data;
23
31
  }
24
32
  function _chalk() {
25
- const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
33
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
26
34
  _chalk = function() {
27
35
  return data;
28
36
  };
@@ -33,67 +41,67 @@ const _log = require("../log");
33
41
  const _env = require("../utils/env");
34
42
  const _errors = require("../utils/errors");
35
43
  const _port = require("../utils/port");
36
- function _interopRequireDefault(obj) {
44
+ function _interop_require_default(obj) {
37
45
  return obj && obj.__esModule ? obj : {
38
46
  default: obj
39
47
  };
40
48
  }
41
49
  async function resolveOptionsAsync(projectRoot, args) {
42
- if (args["--dev-client"] && args["--go"]) {
43
- throw new _errors.CommandError("BAD_ARGS", "Cannot use both --dev-client and --go together.");
50
+ if (args['--dev-client'] && args['--go']) {
51
+ throw new _errors.CommandError('BAD_ARGS', 'Cannot use both --dev-client and --go together.');
44
52
  }
45
53
  const host = resolveHostType({
46
- host: args["--host"],
47
- offline: args["--offline"],
48
- lan: args["--lan"],
49
- localhost: args["--localhost"],
50
- tunnel: args["--tunnel"]
54
+ host: args['--host'],
55
+ offline: args['--offline'],
56
+ lan: args['--lan'],
57
+ localhost: args['--localhost'],
58
+ tunnel: args['--tunnel']
51
59
  });
52
60
  // User can force the default target by passing either `--dev-client` or `--go`. They can also
53
61
  // swap between them during development by pressing `s`.
54
- const isUserDefinedDevClient = !!args["--dev-client"] || (args["--go"] == null ? false : !args["--go"]);
62
+ const isUserDefinedDevClient = !!args['--dev-client'] || (args['--go'] == null ? false : !args['--go']);
55
63
  // If the user didn't specify `--dev-client` or `--go` we check if they have the dev client package
56
64
  // in their package.json.
57
- const isAutoDevClient = args["--dev-client"] == null && args["--go"] == null && (0, _detectDevClient.hasDirectDevClientDependency)(projectRoot);
65
+ const isAutoDevClient = args['--dev-client'] == null && args['--go'] == null && (0, _detectDevClient.hasDirectDevClientDependency)(projectRoot);
58
66
  const isDevClient = isAutoDevClient || isUserDefinedDevClient;
59
67
  const scheme = await resolveSchemeAsync(projectRoot, {
60
- scheme: args["--scheme"],
68
+ scheme: args['--scheme'],
61
69
  devClient: isDevClient
62
70
  });
63
71
  return {
64
- privateKeyPath: args["--private-key-path"] ?? null,
65
- android: !!args["--android"],
66
- web: !!args["--web"],
67
- ios: !!args["--ios"],
68
- offline: !!args["--offline"],
69
- clear: !!args["--clear"],
70
- dev: !args["--no-dev"],
71
- https: !!args["--https"],
72
- maxWorkers: args["--max-workers"],
73
- port: args["--port"],
74
- minify: !!args["--minify"],
72
+ privateKeyPath: args['--private-key-path'] ?? null,
73
+ android: !!args['--android'],
74
+ web: !!args['--web'],
75
+ ios: !!args['--ios'],
76
+ offline: !!args['--offline'],
77
+ clear: !!args['--clear'],
78
+ dev: !args['--no-dev'],
79
+ https: !!args['--https'],
80
+ maxWorkers: args['--max-workers'],
81
+ port: args['--port'],
82
+ minify: !!args['--minify'],
75
83
  devClient: isDevClient,
76
84
  scheme,
77
85
  host
78
86
  };
79
87
  }
80
88
  async function resolveSchemeAsync(projectRoot, options) {
81
- if (typeof options.scheme === "string") {
89
+ if (typeof options.scheme === 'string') {
82
90
  // Use the custom scheme
83
91
  return options.scheme ?? null;
84
92
  }
85
93
  if (options.devClient || (0, _detectDevClient.canResolveDevClient)(projectRoot)) {
86
- const { getOptionalDevClientSchemeAsync } = require("../utils/scheme");
94
+ const { getOptionalDevClientSchemeAsync } = require('../utils/scheme');
87
95
  // Attempt to find the scheme or warn the user how to setup a custom scheme
88
96
  const resolvedScheme = await getOptionalDevClientSchemeAsync(projectRoot);
89
97
  if (!resolvedScheme.scheme) {
90
- if (resolvedScheme.resolution === "shared") {
98
+ if (resolvedScheme.resolution === 'shared') {
91
99
  // This can happen if one of the native projects has no URI schemes defined in it.
92
100
  // Normally, this should never happen.
93
101
  _log.Log.warn((0, _chalk().default)`Could not find a shared URI scheme for the dev client between the local {bold /ios} and {bold /android} directories. App launches (QR code, interstitial, terminal keys) may not work as expected. You can configure a custom scheme using the {bold --scheme} option, or by running {bold npx expo prebuild} to regenerate the native directories with URI schemes.`);
94
102
  } else if ([
95
- "ios",
96
- "android"
103
+ 'ios',
104
+ 'android'
97
105
  ].includes(resolvedScheme.resolution)) {
98
106
  _log.Log.warn((0, _chalk().default)`The {bold /${resolvedScheme.resolution}} project does not contain any URI schemes. Expo CLI will not be able to use links to launch the project. You can configure a custom URI scheme using the {bold --scheme} option.`);
99
107
  }
@@ -112,26 +120,26 @@ function resolveHostType(options) {
112
120
  options.localhost,
113
121
  options.tunnel
114
122
  ].filter((i)=>i).length > 1) {
115
- throw new _errors.CommandError("BAD_ARGS", "Specify at most one of: --offline, --host, --tunnel, --lan, --localhost");
123
+ throw new _errors.CommandError('BAD_ARGS', 'Specify at most one of: --offline, --host, --tunnel, --lan, --localhost');
116
124
  }
117
125
  if (options.offline) {
118
126
  // Force `lan` in offline mode.
119
- return "lan";
127
+ return 'lan';
120
128
  } else if (options.host) {
121
129
  _assert().default.match(options.host, /^(lan|tunnel|localhost)$/);
122
130
  return options.host;
123
131
  } else if (options.tunnel) {
124
- return "tunnel";
132
+ return 'tunnel';
125
133
  } else if (options.lan) {
126
- return "lan";
134
+ return 'lan';
127
135
  } else if (options.localhost) {
128
- return "localhost";
136
+ return 'localhost';
129
137
  }
130
138
  // If no option is provided, and we are running in Stackblitz, enable tunnel by default
131
139
  if ((0, _env.envIsWebcontainer)()) {
132
- return "tunnel";
140
+ return 'tunnel';
133
141
  }
134
- return "lan";
142
+ return 'lan';
135
143
  }
136
144
  async function resolvePortsAsync(projectRoot, options, settings) {
137
145
  const multiBundlerSettings = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/start/resolveOptions.ts"],"sourcesContent":["import assert from 'assert';\nimport chalk from 'chalk';\n\nimport { canResolveDevClient, hasDirectDevClientDependency } from './detectDevClient';\nimport { Log } from '../log';\nimport { envIsWebcontainer } from '../utils/env';\nimport { AbortCommandError, CommandError } from '../utils/errors';\nimport { resolvePortAsync } from '../utils/port';\n\nexport type Options = {\n privateKeyPath: string | null;\n android: boolean;\n web: boolean;\n ios: boolean;\n offline: boolean;\n clear: boolean;\n dev: boolean;\n https: boolean;\n maxWorkers: number;\n port: number;\n /** Should instruct the bundler to create minified bundles. */\n minify: boolean;\n devClient: boolean;\n scheme: string | null;\n host: 'localhost' | 'lan' | 'tunnel';\n};\n\nexport async function resolveOptionsAsync(projectRoot: string, args: any): Promise<Options> {\n if (args['--dev-client'] && args['--go']) {\n throw new CommandError('BAD_ARGS', 'Cannot use both --dev-client and --go together.');\n }\n const host = resolveHostType({\n host: args['--host'],\n offline: args['--offline'],\n lan: args['--lan'],\n localhost: args['--localhost'],\n tunnel: args['--tunnel'],\n });\n\n // User can force the default target by passing either `--dev-client` or `--go`. They can also\n // swap between them during development by pressing `s`.\n const isUserDefinedDevClient =\n !!args['--dev-client'] || (args['--go'] == null ? false : !args['--go']);\n\n // If the user didn't specify `--dev-client` or `--go` we check if they have the dev client package\n // in their package.json.\n const isAutoDevClient =\n args['--dev-client'] == null &&\n args['--go'] == null &&\n hasDirectDevClientDependency(projectRoot);\n\n const isDevClient = isAutoDevClient || isUserDefinedDevClient;\n\n const scheme = await resolveSchemeAsync(projectRoot, {\n scheme: args['--scheme'],\n devClient: isDevClient,\n });\n\n return {\n privateKeyPath: args['--private-key-path'] ?? null,\n\n android: !!args['--android'],\n web: !!args['--web'],\n ios: !!args['--ios'],\n offline: !!args['--offline'],\n\n clear: !!args['--clear'],\n dev: !args['--no-dev'],\n https: !!args['--https'],\n maxWorkers: args['--max-workers'],\n port: args['--port'],\n minify: !!args['--minify'],\n\n devClient: isDevClient,\n\n scheme,\n host,\n };\n}\n\nexport async function resolveSchemeAsync(\n projectRoot: string,\n options: { scheme?: string; devClient?: boolean }\n): Promise<string | null> {\n if (typeof options.scheme === 'string') {\n // Use the custom scheme\n return options.scheme ?? null;\n }\n\n if (options.devClient || canResolveDevClient(projectRoot)) {\n const { getOptionalDevClientSchemeAsync } =\n require('../utils/scheme') as typeof import('../utils/scheme');\n // Attempt to find the scheme or warn the user how to setup a custom scheme\n const resolvedScheme = await getOptionalDevClientSchemeAsync(projectRoot);\n if (!resolvedScheme.scheme) {\n if (resolvedScheme.resolution === 'shared') {\n // This can happen if one of the native projects has no URI schemes defined in it.\n // Normally, this should never happen.\n Log.warn(\n chalk`Could not find a shared URI scheme for the dev client between the local {bold /ios} and {bold /android} directories. App launches (QR code, interstitial, terminal keys) may not work as expected. You can configure a custom scheme using the {bold --scheme} option, or by running {bold npx expo prebuild} to regenerate the native directories with URI schemes.`\n );\n } else if (['ios', 'android'].includes(resolvedScheme.resolution)) {\n Log.warn(\n chalk`The {bold /${resolvedScheme.resolution}} project does not contain any URI schemes. Expo CLI will not be able to use links to launch the project. You can configure a custom URI scheme using the {bold --scheme} option.`\n );\n }\n }\n return resolvedScheme.scheme;\n } else {\n // Ensure this is reset when users don't use `--scheme`, `--dev-client` and don't have the `expo-dev-client` package installed.\n return null;\n }\n}\n\n/** Resolve and assert host type options. */\nexport function resolveHostType(options: {\n host?: string;\n offline?: boolean;\n lan?: boolean;\n localhost?: boolean;\n tunnel?: boolean;\n}): 'lan' | 'tunnel' | 'localhost' {\n if (\n [options.offline, options.host, options.lan, options.localhost, options.tunnel].filter((i) => i)\n .length > 1\n ) {\n throw new CommandError(\n 'BAD_ARGS',\n 'Specify at most one of: --offline, --host, --tunnel, --lan, --localhost'\n );\n }\n\n if (options.offline) {\n // Force `lan` in offline mode.\n return 'lan';\n } else if (options.host) {\n assert.match(options.host, /^(lan|tunnel|localhost)$/);\n return options.host as 'lan' | 'tunnel' | 'localhost';\n } else if (options.tunnel) {\n return 'tunnel';\n } else if (options.lan) {\n return 'lan';\n } else if (options.localhost) {\n return 'localhost';\n }\n\n // If no option is provided, and we are running in Stackblitz, enable tunnel by default\n if (envIsWebcontainer()) {\n return 'tunnel';\n }\n\n return 'lan';\n}\n\n/** Resolve the port options for all supported bundlers. */\nexport async function resolvePortsAsync(\n projectRoot: string,\n options: Partial<Pick<Options, 'port' | 'devClient'>>,\n settings: { webOnly?: boolean }\n) {\n const multiBundlerSettings: { webpackPort?: number; metroPort?: number } = {};\n\n if (settings.webOnly) {\n const webpackPort = await resolvePortAsync(projectRoot, {\n defaultPort: options.port,\n // Default web port\n fallbackPort: 19006,\n });\n if (!webpackPort) {\n throw new AbortCommandError();\n }\n multiBundlerSettings.webpackPort = webpackPort;\n } else {\n const fallbackPort = process.env.RCT_METRO_PORT\n ? parseInt(process.env.RCT_METRO_PORT, 10)\n : 8081;\n const metroPort = await resolvePortAsync(projectRoot, {\n defaultPort: options.port,\n fallbackPort,\n });\n if (!metroPort) {\n throw new AbortCommandError();\n }\n multiBundlerSettings.metroPort = metroPort;\n }\n\n return multiBundlerSettings;\n}\n"],"names":["resolveOptionsAsync","resolveSchemeAsync","resolveHostType","resolvePortsAsync","projectRoot","args","CommandError","host","offline","lan","localhost","tunnel","isUserDefinedDevClient","isAutoDevClient","hasDirectDevClientDependency","isDevClient","scheme","devClient","privateKeyPath","android","web","ios","clear","dev","https","maxWorkers","port","minify","options","canResolveDevClient","getOptionalDevClientSchemeAsync","require","resolvedScheme","resolution","Log","warn","chalk","includes","filter","i","length","assert","match","envIsWebcontainer","settings","multiBundlerSettings","webOnly","webpackPort","resolvePortAsync","defaultPort","fallbackPort","AbortCommandError","process","env","RCT_METRO_PORT","parseInt","metroPort"],"mappings":"AAAA;;;;;;;;;;;IA2BsBA,mBAAmB,MAAnBA,mBAAmB;IAqDnBC,kBAAkB,MAAlBA,kBAAkB;IAmCxBC,eAAe,MAAfA,eAAe;IAwCTC,iBAAiB,MAAjBA,iBAAiB;;;8DA3JpB,QAAQ;;;;;;;8DACT,OAAO;;;;;;iCAEyC,mBAAmB;qBACjE,QAAQ;qBACM,cAAc;wBACA,iBAAiB;sBAChC,eAAe;;;;;;AAoBzC,eAAeH,mBAAmB,CAACI,WAAmB,EAAEC,IAAS,EAAoB;IAC1F,IAAIA,IAAI,CAAC,cAAc,CAAC,IAAIA,IAAI,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,IAAIC,OAAY,aAAA,CAAC,UAAU,EAAE,iDAAiD,CAAC,CAAC;IACxF,CAAC;IACD,MAAMC,IAAI,GAAGL,eAAe,CAAC;QAC3BK,IAAI,EAAEF,IAAI,CAAC,QAAQ,CAAC;QACpBG,OAAO,EAAEH,IAAI,CAAC,WAAW,CAAC;QAC1BI,GAAG,EAAEJ,IAAI,CAAC,OAAO,CAAC;QAClBK,SAAS,EAAEL,IAAI,CAAC,aAAa,CAAC;QAC9BM,MAAM,EAAEN,IAAI,CAAC,UAAU,CAAC;KACzB,CAAC,AAAC;IAEH,8FAA8F;IAC9F,wDAAwD;IACxD,MAAMO,sBAAsB,GAC1B,CAAC,CAACP,IAAI,CAAC,cAAc,CAAC,IAAI,CAACA,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,CAACA,IAAI,CAAC,MAAM,CAAC,CAAC,AAAC;IAE3E,mGAAmG;IACnG,yBAAyB;IACzB,MAAMQ,eAAe,GACnBR,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAC5BA,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IACpBS,IAAAA,gBAA4B,6BAAA,EAACV,WAAW,CAAC,AAAC;IAE5C,MAAMW,WAAW,GAAGF,eAAe,IAAID,sBAAsB,AAAC;IAE9D,MAAMI,MAAM,GAAG,MAAMf,kBAAkB,CAACG,WAAW,EAAE;QACnDY,MAAM,EAAEX,IAAI,CAAC,UAAU,CAAC;QACxBY,SAAS,EAAEF,WAAW;KACvB,CAAC,AAAC;IAEH,OAAO;QACLG,cAAc,EAAEb,IAAI,CAAC,oBAAoB,CAAC,IAAI,IAAI;QAElDc,OAAO,EAAE,CAAC,CAACd,IAAI,CAAC,WAAW,CAAC;QAC5Be,GAAG,EAAE,CAAC,CAACf,IAAI,CAAC,OAAO,CAAC;QACpBgB,GAAG,EAAE,CAAC,CAAChB,IAAI,CAAC,OAAO,CAAC;QACpBG,OAAO,EAAE,CAAC,CAACH,IAAI,CAAC,WAAW,CAAC;QAE5BiB,KAAK,EAAE,CAAC,CAACjB,IAAI,CAAC,SAAS,CAAC;QACxBkB,GAAG,EAAE,CAAClB,IAAI,CAAC,UAAU,CAAC;QACtBmB,KAAK,EAAE,CAAC,CAACnB,IAAI,CAAC,SAAS,CAAC;QACxBoB,UAAU,EAAEpB,IAAI,CAAC,eAAe,CAAC;QACjCqB,IAAI,EAAErB,IAAI,CAAC,QAAQ,CAAC;QACpBsB,MAAM,EAAE,CAAC,CAACtB,IAAI,CAAC,UAAU,CAAC;QAE1BY,SAAS,EAAEF,WAAW;QAEtBC,MAAM;QACNT,IAAI;KACL,CAAC;AACJ,CAAC;AAEM,eAAeN,kBAAkB,CACtCG,WAAmB,EACnBwB,OAAiD,EACzB;IACxB,IAAI,OAAOA,OAAO,CAACZ,MAAM,KAAK,QAAQ,EAAE;QACtC,wBAAwB;QACxB,OAAOY,OAAO,CAACZ,MAAM,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,IAAIY,OAAO,CAACX,SAAS,IAAIY,IAAAA,gBAAmB,oBAAA,EAACzB,WAAW,CAAC,EAAE;QACzD,MAAM,EAAE0B,+BAA+B,CAAA,EAAE,GACvCC,OAAO,CAAC,iBAAiB,CAAC,AAAoC,AAAC;QACjE,2EAA2E;QAC3E,MAAMC,cAAc,GAAG,MAAMF,+BAA+B,CAAC1B,WAAW,CAAC,AAAC;QAC1E,IAAI,CAAC4B,cAAc,CAAChB,MAAM,EAAE;YAC1B,IAAIgB,cAAc,CAACC,UAAU,KAAK,QAAQ,EAAE;gBAC1C,kFAAkF;gBAClF,sCAAsC;gBACtCC,IAAG,IAAA,CAACC,IAAI,CACNC,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,oWAAoW,CAAC,CAC5W,CAAC;YACJ,OAAO,IAAI;gBAAC,KAAK;gBAAE,SAAS;aAAC,CAACC,QAAQ,CAACL,cAAc,CAACC,UAAU,CAAC,EAAE;gBACjEC,IAAG,IAAA,CAACC,IAAI,CACNC,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,WAAW,EAAEJ,cAAc,CAACC,UAAU,CAAC,iLAAiL,CAAC,CAChO,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAOD,cAAc,CAAChB,MAAM,CAAC;IAC/B,OAAO;QACL,+HAA+H;QAC/H,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAGM,SAASd,eAAe,CAAC0B,OAM/B,EAAkC;IACjC,IACE;QAACA,OAAO,CAACpB,OAAO;QAAEoB,OAAO,CAACrB,IAAI;QAAEqB,OAAO,CAACnB,GAAG;QAAEmB,OAAO,CAAClB,SAAS;QAAEkB,OAAO,CAACjB,MAAM;KAAC,CAAC2B,MAAM,CAAC,CAACC,CAAC,GAAKA,CAAC,CAAC,CAC7FC,MAAM,GAAG,CAAC,EACb;QACA,MAAM,IAAIlC,OAAY,aAAA,CACpB,UAAU,EACV,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IAED,IAAIsB,OAAO,CAACpB,OAAO,EAAE;QACnB,+BAA+B;QAC/B,OAAO,KAAK,CAAC;IACf,OAAO,IAAIoB,OAAO,CAACrB,IAAI,EAAE;QACvBkC,OAAM,EAAA,QAAA,CAACC,KAAK,CAACd,OAAO,CAACrB,IAAI,6BAA6B,CAAC;QACvD,OAAOqB,OAAO,CAACrB,IAAI,CAAmC;IACxD,OAAO,IAAIqB,OAAO,CAACjB,MAAM,EAAE;QACzB,OAAO,QAAQ,CAAC;IAClB,OAAO,IAAIiB,OAAO,CAACnB,GAAG,EAAE;QACtB,OAAO,KAAK,CAAC;IACf,OAAO,IAAImB,OAAO,CAAClB,SAAS,EAAE;QAC5B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,uFAAuF;IACvF,IAAIiC,IAAAA,IAAiB,kBAAA,GAAE,EAAE;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGM,eAAexC,iBAAiB,CACrCC,WAAmB,EACnBwB,OAAqD,EACrDgB,QAA+B,EAC/B;IACA,MAAMC,oBAAoB,GAAiD,EAAE,AAAC;IAE9E,IAAID,QAAQ,CAACE,OAAO,EAAE;QACpB,MAAMC,WAAW,GAAG,MAAMC,IAAAA,KAAgB,iBAAA,EAAC5C,WAAW,EAAE;YACtD6C,WAAW,EAAErB,OAAO,CAACF,IAAI;YACzB,mBAAmB;YACnBwB,YAAY,EAAE,KAAK;SACpB,CAAC,AAAC;QACH,IAAI,CAACH,WAAW,EAAE;YAChB,MAAM,IAAII,OAAiB,kBAAA,EAAE,CAAC;QAChC,CAAC;QACDN,oBAAoB,CAACE,WAAW,GAAGA,WAAW,CAAC;IACjD,OAAO;QACL,MAAMG,YAAY,GAAGE,OAAO,CAACC,GAAG,CAACC,cAAc,GAC3CC,QAAQ,CAACH,OAAO,CAACC,GAAG,CAACC,cAAc,EAAE,EAAE,CAAC,GACxC,IAAI,AAAC;QACT,MAAME,SAAS,GAAG,MAAMR,IAAAA,KAAgB,iBAAA,EAAC5C,WAAW,EAAE;YACpD6C,WAAW,EAAErB,OAAO,CAACF,IAAI;YACzBwB,YAAY;SACb,CAAC,AAAC;QACH,IAAI,CAACM,SAAS,EAAE;YACd,MAAM,IAAIL,OAAiB,kBAAA,EAAE,CAAC;QAChC,CAAC;QACDN,oBAAoB,CAACW,SAAS,GAAGA,SAAS,CAAC;IAC7C,CAAC;IAED,OAAOX,oBAAoB,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"sources":["../../../src/start/resolveOptions.ts"],"sourcesContent":["import assert from 'assert';\nimport chalk from 'chalk';\n\nimport { canResolveDevClient, hasDirectDevClientDependency } from './detectDevClient';\nimport { Log } from '../log';\nimport { envIsWebcontainer } from '../utils/env';\nimport { AbortCommandError, CommandError } from '../utils/errors';\nimport { resolvePortAsync } from '../utils/port';\n\nexport type Options = {\n privateKeyPath: string | null;\n android: boolean;\n web: boolean;\n ios: boolean;\n offline: boolean;\n clear: boolean;\n dev: boolean;\n https: boolean;\n maxWorkers: number;\n port: number;\n /** Should instruct the bundler to create minified bundles. */\n minify: boolean;\n devClient: boolean;\n scheme: string | null;\n host: 'localhost' | 'lan' | 'tunnel';\n};\n\nexport async function resolveOptionsAsync(projectRoot: string, args: any): Promise<Options> {\n if (args['--dev-client'] && args['--go']) {\n throw new CommandError('BAD_ARGS', 'Cannot use both --dev-client and --go together.');\n }\n const host = resolveHostType({\n host: args['--host'],\n offline: args['--offline'],\n lan: args['--lan'],\n localhost: args['--localhost'],\n tunnel: args['--tunnel'],\n });\n\n // User can force the default target by passing either `--dev-client` or `--go`. They can also\n // swap between them during development by pressing `s`.\n const isUserDefinedDevClient =\n !!args['--dev-client'] || (args['--go'] == null ? false : !args['--go']);\n\n // If the user didn't specify `--dev-client` or `--go` we check if they have the dev client package\n // in their package.json.\n const isAutoDevClient =\n args['--dev-client'] == null &&\n args['--go'] == null &&\n hasDirectDevClientDependency(projectRoot);\n\n const isDevClient = isAutoDevClient || isUserDefinedDevClient;\n\n const scheme = await resolveSchemeAsync(projectRoot, {\n scheme: args['--scheme'],\n devClient: isDevClient,\n });\n\n return {\n privateKeyPath: args['--private-key-path'] ?? null,\n\n android: !!args['--android'],\n web: !!args['--web'],\n ios: !!args['--ios'],\n offline: !!args['--offline'],\n\n clear: !!args['--clear'],\n dev: !args['--no-dev'],\n https: !!args['--https'],\n maxWorkers: args['--max-workers'],\n port: args['--port'],\n minify: !!args['--minify'],\n\n devClient: isDevClient,\n\n scheme,\n host,\n };\n}\n\nexport async function resolveSchemeAsync(\n projectRoot: string,\n options: { scheme?: string; devClient?: boolean }\n): Promise<string | null> {\n if (typeof options.scheme === 'string') {\n // Use the custom scheme\n return options.scheme ?? null;\n }\n\n if (options.devClient || canResolveDevClient(projectRoot)) {\n const { getOptionalDevClientSchemeAsync } =\n require('../utils/scheme') as typeof import('../utils/scheme');\n // Attempt to find the scheme or warn the user how to setup a custom scheme\n const resolvedScheme = await getOptionalDevClientSchemeAsync(projectRoot);\n if (!resolvedScheme.scheme) {\n if (resolvedScheme.resolution === 'shared') {\n // This can happen if one of the native projects has no URI schemes defined in it.\n // Normally, this should never happen.\n Log.warn(\n chalk`Could not find a shared URI scheme for the dev client between the local {bold /ios} and {bold /android} directories. App launches (QR code, interstitial, terminal keys) may not work as expected. You can configure a custom scheme using the {bold --scheme} option, or by running {bold npx expo prebuild} to regenerate the native directories with URI schemes.`\n );\n } else if (['ios', 'android'].includes(resolvedScheme.resolution)) {\n Log.warn(\n chalk`The {bold /${resolvedScheme.resolution}} project does not contain any URI schemes. Expo CLI will not be able to use links to launch the project. You can configure a custom URI scheme using the {bold --scheme} option.`\n );\n }\n }\n return resolvedScheme.scheme;\n } else {\n // Ensure this is reset when users don't use `--scheme`, `--dev-client` and don't have the `expo-dev-client` package installed.\n return null;\n }\n}\n\n/** Resolve and assert host type options. */\nexport function resolveHostType(options: {\n host?: string;\n offline?: boolean;\n lan?: boolean;\n localhost?: boolean;\n tunnel?: boolean;\n}): 'lan' | 'tunnel' | 'localhost' {\n if (\n [options.offline, options.host, options.lan, options.localhost, options.tunnel].filter((i) => i)\n .length > 1\n ) {\n throw new CommandError(\n 'BAD_ARGS',\n 'Specify at most one of: --offline, --host, --tunnel, --lan, --localhost'\n );\n }\n\n if (options.offline) {\n // Force `lan` in offline mode.\n return 'lan';\n } else if (options.host) {\n assert.match(options.host, /^(lan|tunnel|localhost)$/);\n return options.host as 'lan' | 'tunnel' | 'localhost';\n } else if (options.tunnel) {\n return 'tunnel';\n } else if (options.lan) {\n return 'lan';\n } else if (options.localhost) {\n return 'localhost';\n }\n\n // If no option is provided, and we are running in Stackblitz, enable tunnel by default\n if (envIsWebcontainer()) {\n return 'tunnel';\n }\n\n return 'lan';\n}\n\n/** Resolve the port options for all supported bundlers. */\nexport async function resolvePortsAsync(\n projectRoot: string,\n options: Partial<Pick<Options, 'port' | 'devClient'>>,\n settings: { webOnly?: boolean }\n) {\n const multiBundlerSettings: { webpackPort?: number; metroPort?: number } = {};\n\n if (settings.webOnly) {\n const webpackPort = await resolvePortAsync(projectRoot, {\n defaultPort: options.port,\n // Default web port\n fallbackPort: 19006,\n });\n if (!webpackPort) {\n throw new AbortCommandError();\n }\n multiBundlerSettings.webpackPort = webpackPort;\n } else {\n const fallbackPort = process.env.RCT_METRO_PORT\n ? parseInt(process.env.RCT_METRO_PORT, 10)\n : 8081;\n const metroPort = await resolvePortAsync(projectRoot, {\n defaultPort: options.port,\n fallbackPort,\n });\n if (!metroPort) {\n throw new AbortCommandError();\n }\n multiBundlerSettings.metroPort = metroPort;\n }\n\n return multiBundlerSettings;\n}\n"],"names":["resolveHostType","resolveOptionsAsync","resolvePortsAsync","resolveSchemeAsync","projectRoot","args","CommandError","host","offline","lan","localhost","tunnel","isUserDefinedDevClient","isAutoDevClient","hasDirectDevClientDependency","isDevClient","scheme","devClient","privateKeyPath","android","web","ios","clear","dev","https","maxWorkers","port","minify","options","canResolveDevClient","getOptionalDevClientSchemeAsync","require","resolvedScheme","resolution","Log","warn","chalk","includes","filter","i","length","assert","match","envIsWebcontainer","settings","multiBundlerSettings","webOnly","webpackPort","resolvePortAsync","defaultPort","fallbackPort","AbortCommandError","process","env","RCT_METRO_PORT","parseInt","metroPort"],"mappings":"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"}