@expo/cli 0.22.24 → 0.22.25

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 (722) 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 +10 -8
  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 +53 -35
  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 +39 -21
  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 +71 -61
  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 +67 -63
  88. package/build/src/export/exportApp.js.map +1 -1
  89. package/build/src/export/exportAssets.js +35 -27
  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 +85 -63
  96. package/build/src/export/exportHermes.js.map +1 -1
  97. package/build/src/export/exportStaticAsync.js +72 -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 +42 -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 +400 -274
  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 +13 -11
  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 +46 -40
  172. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  173. package/build/src/prebuild/resolveOptions.js +66 -52
  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 +74 -56
  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 +87 -73
  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 +40 -36
  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 +29 -21
  405. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  406. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +6 -4
  407. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  408. package/build/src/start/server/metro/MetroBundlerDevServer.js +269 -271
  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/createExpoMetroResolver.js +46 -40
  416. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  417. package/build/src/start/server/metro/createJResolver.js +32 -28
  418. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  419. package/build/src/start/server/metro/createServerComponentsMiddleware.js +96 -92
  420. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  421. package/build/src/start/server/metro/createServerRouteMiddleware.js +32 -30
  422. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  423. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +13 -11
  424. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
  425. package/build/src/start/server/metro/debugging/MessageHandler.js +3 -1
  426. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  427. package/build/src/start/server/metro/debugging/attachAtlas.js +26 -22
  428. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  429. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +19 -17
  430. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  431. package/build/src/start/server/metro/debugging/createHandlersFactory.js +25 -31
  432. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  433. package/build/src/start/server/metro/debugging/getDebuggerType.js +6 -4
  434. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  435. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +14 -8
  436. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  437. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -5
  438. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  439. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +8 -6
  440. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  441. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -5
  442. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  443. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +14 -12
  444. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
  445. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +14 -10
  446. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  447. package/build/src/start/server/metro/debugging/pageIsSupported.js +6 -4
  448. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  449. package/build/src/start/server/metro/debugging/types.js.map +1 -1
  450. package/build/src/start/server/metro/dev-server/createEventSocket.js +18 -16
  451. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
  452. package/build/src/start/server/metro/dev-server/createMessageSocket.js +23 -21
  453. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  454. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +23 -21
  455. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  456. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +4 -2
  457. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
  458. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +4 -2
  459. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
  460. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +8 -4
  461. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  462. package/build/src/start/server/metro/externals.js +33 -25
  463. package/build/src/start/server/metro/externals.js.map +1 -1
  464. package/build/src/start/server/metro/fetchRouterManifest.js +16 -12
  465. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  466. package/build/src/start/server/metro/formatFileCandidates.js +11 -9
  467. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  468. package/build/src/start/server/metro/getCssModulesFromBundler.js +22 -18
  469. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  470. package/build/src/start/server/metro/instantiateMetro.js +85 -79
  471. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  472. package/build/src/start/server/metro/log-box/LogBoxLog.js +40 -36
  473. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  474. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +20 -14
  475. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  476. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +10 -6
  477. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  478. package/build/src/start/server/metro/metroErrorInterface.js +88 -78
  479. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  480. package/build/src/start/server/metro/metroErrors.js +8 -4
  481. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  482. package/build/src/start/server/metro/metroPrivateServer.js +9 -7
  483. package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
  484. package/build/src/start/server/metro/metroVirtualModules.js +10 -8
  485. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  486. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +24 -22
  487. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  488. package/build/src/start/server/metro/router.js +48 -32
  489. package/build/src/start/server/metro/router.js.map +1 -1
  490. package/build/src/start/server/metro/runServer-fork.js +24 -22
  491. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  492. package/build/src/start/server/metro/serializeHtml.js +24 -22
  493. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  494. package/build/src/start/server/metro/symbolicate.js.map +1 -1
  495. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +35 -29
  496. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  497. package/build/src/start/server/metro/withMetroMultiPlatform.js +149 -139
  498. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  499. package/build/src/start/server/metro/withMetroResolvers.js +49 -39
  500. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  501. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +8 -6
  502. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  503. package/build/src/start/server/middleware/CorsMiddleware.js +17 -15
  504. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  505. package/build/src/start/server/middleware/CreateFileMiddleware.js +32 -31
  506. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  507. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +22 -19
  508. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  509. package/build/src/start/server/middleware/DomComponentsMiddleware.js +33 -27
  510. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  511. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +64 -60
  512. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  513. package/build/src/start/server/middleware/ExpoMiddleware.js +15 -9
  514. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  515. package/build/src/start/server/middleware/FaviconMiddleware.js +15 -14
  516. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  517. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +4 -2
  518. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  519. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +34 -31
  520. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  521. package/build/src/start/server/middleware/ManifestMiddleware.js +64 -56
  522. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  523. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +23 -19
  524. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  525. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +20 -19
  526. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  527. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -9
  528. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  529. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +17 -11
  530. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
  531. package/build/src/start/server/middleware/inspector/CdpClient.js +12 -10
  532. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
  533. package/build/src/start/server/middleware/inspector/JsInspector.js +35 -27
  534. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  535. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +21 -19
  536. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  537. package/build/src/start/server/middleware/inspector/middlwareMutations.js +6 -2
  538. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  539. package/build/src/start/server/middleware/metroOptions.js +120 -96
  540. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  541. package/build/src/start/server/middleware/mutations.js +7 -3
  542. package/build/src/start/server/middleware/mutations.js.map +1 -1
  543. package/build/src/start/server/middleware/resolveAssets.js +26 -18
  544. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  545. package/build/src/start/server/middleware/resolvePlatform.js +23 -15
  546. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  547. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +11 -9
  548. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  549. package/build/src/start/server/middleware/server.types.js.map +1 -1
  550. package/build/src/start/server/openPlatforms.js +10 -8
  551. package/build/src/start/server/openPlatforms.js.map +1 -1
  552. package/build/src/start/server/platformBundlers.js +13 -11
  553. package/build/src/start/server/platformBundlers.js.map +1 -1
  554. package/build/src/start/server/serverLogLikeMetro.js +58 -50
  555. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  556. package/build/src/start/server/type-generation/expo-env.js +11 -7
  557. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  558. package/build/src/start/server/type-generation/routes.js +76 -54
  559. package/build/src/start/server/type-generation/routes.js.map +1 -1
  560. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +21 -19
  561. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  562. package/build/src/start/server/type-generation/tsconfig.js +36 -28
  563. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  564. package/build/src/start/server/webTemplate.js +28 -24
  565. package/build/src/start/server/webTemplate.js.map +1 -1
  566. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +52 -46
  567. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  568. package/build/src/start/server/webpack/compile.js +15 -11
  569. package/build/src/start/server/webpack/compile.js.map +1 -1
  570. package/build/src/start/server/webpack/formatWebpackMessages.js +28 -26
  571. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  572. package/build/src/start/server/webpack/resolveFromProject.js +18 -12
  573. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  574. package/build/src/start/server/webpack/tls.js +18 -12
  575. package/build/src/start/server/webpack/tls.js.map +1 -1
  576. package/build/src/start/startAsync.js +31 -27
  577. package/build/src/start/startAsync.js.map +1 -1
  578. package/build/src/utils/FileNotifier.js +20 -17
  579. package/build/src/utils/FileNotifier.js.map +1 -1
  580. package/build/src/utils/ansi.js +7 -5
  581. package/build/src/utils/ansi.js.map +1 -1
  582. package/build/src/utils/args.js +24 -14
  583. package/build/src/utils/args.js.map +1 -1
  584. package/build/src/utils/array.js +18 -6
  585. package/build/src/utils/array.js.map +1 -1
  586. package/build/src/utils/cocoapods.js +54 -46
  587. package/build/src/utils/cocoapods.js.map +1 -1
  588. package/build/src/utils/codesigning.js +78 -68
  589. package/build/src/utils/codesigning.js.map +1 -1
  590. package/build/src/utils/createFileTransform.js +16 -12
  591. package/build/src/utils/createFileTransform.js.map +1 -1
  592. package/build/src/utils/createTempPath.js +17 -13
  593. package/build/src/utils/createTempPath.js.map +1 -1
  594. package/build/src/utils/delay.js +12 -6
  595. package/build/src/utils/delay.js.map +1 -1
  596. package/build/src/utils/dir.js +46 -28
  597. package/build/src/utils/dir.js.map +1 -1
  598. package/build/src/utils/downloadAppAsync.js +10 -8
  599. package/build/src/utils/downloadAppAsync.js.map +1 -1
  600. package/build/src/utils/downloadExpoGoAsync.js +25 -21
  601. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  602. package/build/src/utils/editor.js +41 -35
  603. package/build/src/utils/editor.js.map +1 -1
  604. package/build/src/utils/env.js +63 -59
  605. package/build/src/utils/env.js.map +1 -1
  606. package/build/src/utils/errors.js +37 -30
  607. package/build/src/utils/errors.js.map +1 -1
  608. package/build/src/utils/exit.js +35 -31
  609. package/build/src/utils/exit.js.map +1 -1
  610. package/build/src/utils/expoUpdatesCli.js +32 -22
  611. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  612. package/build/src/utils/fetch.js +8 -4
  613. package/build/src/utils/fetch.js.map +1 -1
  614. package/build/src/utils/filePath.js +10 -6
  615. package/build/src/utils/filePath.js.map +1 -1
  616. package/build/src/utils/findUp.js +13 -9
  617. package/build/src/utils/findUp.js.map +1 -1
  618. package/build/src/utils/fn.js +6 -2
  619. package/build/src/utils/fn.js.map +1 -1
  620. package/build/src/utils/getOrPromptApplicationId.js +32 -26
  621. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  622. package/build/src/utils/getRunningProcess.js +29 -21
  623. package/build/src/utils/getRunningProcess.js.map +1 -1
  624. package/build/src/utils/git.js +26 -20
  625. package/build/src/utils/git.js.map +1 -1
  626. package/build/src/utils/glob.js +8 -4
  627. package/build/src/utils/glob.js.map +1 -1
  628. package/build/src/utils/interactive.js +3 -1
  629. package/build/src/utils/interactive.js.map +1 -1
  630. package/build/src/utils/ip.js +21 -19
  631. package/build/src/utils/ip.js.map +1 -1
  632. package/build/src/utils/isModuleSymlinked.js +11 -9
  633. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  634. package/build/src/utils/jsonSchemaDeref.js +20 -18
  635. package/build/src/utils/jsonSchemaDeref.js.map +1 -1
  636. package/build/src/utils/link.js +17 -13
  637. package/build/src/utils/link.js.map +1 -1
  638. package/build/src/utils/mergeGitIgnorePaths.js +46 -28
  639. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  640. package/build/src/utils/modifyConfigAsync.js +16 -10
  641. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  642. package/build/src/utils/modifyConfigPlugins.js +10 -6
  643. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  644. package/build/src/utils/nodeEnv.js +12 -6
  645. package/build/src/utils/nodeEnv.js.map +1 -1
  646. package/build/src/utils/nodeModules.js +10 -8
  647. package/build/src/utils/nodeModules.js.map +1 -1
  648. package/build/src/utils/npm.js +50 -36
  649. package/build/src/utils/npm.js.map +1 -1
  650. package/build/src/utils/obj.js +11 -5
  651. package/build/src/utils/obj.js.map +1 -1
  652. package/build/src/utils/open.js +10 -8
  653. package/build/src/utils/open.js.map +1 -1
  654. package/build/src/utils/ora.js +13 -7
  655. package/build/src/utils/ora.js.map +1 -1
  656. package/build/src/utils/plist.js +21 -15
  657. package/build/src/utils/plist.js.map +1 -1
  658. package/build/src/utils/port.js +43 -33
  659. package/build/src/utils/port.js.map +1 -1
  660. package/build/src/utils/profile.js +11 -7
  661. package/build/src/utils/profile.js.map +1 -1
  662. package/build/src/utils/progress.js +11 -5
  663. package/build/src/utils/progress.js.map +1 -1
  664. package/build/src/utils/prompts.js +47 -29
  665. package/build/src/utils/prompts.js.map +1 -1
  666. package/build/src/utils/resolveArgs.js +36 -24
  667. package/build/src/utils/resolveArgs.js.map +1 -1
  668. package/build/src/utils/scheme.js +40 -32
  669. package/build/src/utils/scheme.js.map +1 -1
  670. package/build/src/utils/stream.js +5 -3
  671. package/build/src/utils/stream.js.map +1 -1
  672. package/build/src/utils/strings.js +6 -4
  673. package/build/src/utils/strings.js.map +1 -1
  674. package/build/src/utils/tar.js +19 -15
  675. package/build/src/utils/tar.js.map +1 -1
  676. package/build/src/utils/telemetry/Telemetry.js +29 -27
  677. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  678. package/build/src/utils/telemetry/clients/FetchClient.js +15 -13
  679. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  680. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +26 -22
  681. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
  682. package/build/src/utils/telemetry/clients/RudderClient.js +10 -8
  683. package/build/src/utils/telemetry/clients/RudderClient.js.map +1 -1
  684. package/build/src/utils/telemetry/clients/RudderDetachedClient.js +26 -22
  685. package/build/src/utils/telemetry/clients/RudderDetachedClient.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/clients/flushRudderDetached.js +10 -10
  689. package/build/src/utils/telemetry/clients/flushRudderDetached.js.map +1 -1
  690. package/build/src/utils/telemetry/events.js +4 -2
  691. package/build/src/utils/telemetry/events.js.map +1 -1
  692. package/build/src/utils/telemetry/flushDetached.js.map +1 -1
  693. package/build/src/utils/telemetry/index.js +25 -29
  694. package/build/src/utils/telemetry/index.js.map +1 -1
  695. package/build/src/utils/telemetry/types.js.map +1 -1
  696. package/build/src/utils/telemetry/utils/constants.js +8 -4
  697. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  698. package/build/src/utils/telemetry/utils/context.js +18 -14
  699. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  700. package/build/src/utils/template.js +6 -4
  701. package/build/src/utils/template.js.map +1 -1
  702. package/build/src/utils/terminal.js +4 -2
  703. package/build/src/utils/terminal.js.map +1 -1
  704. package/build/src/utils/tsconfig/evaluateTsConfig.js +21 -17
  705. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  706. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -14
  707. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  708. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +7 -5
  709. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  710. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +14 -12
  711. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  712. package/build/src/utils/url.js +23 -13
  713. package/build/src/utils/url.js.map +1 -1
  714. package/build/src/utils/validateApplicationId.js +108 -86
  715. package/build/src/utils/validateApplicationId.js.map +1 -1
  716. package/build/src/utils/variadic.js +22 -16
  717. package/build/src/utils/variadic.js.map +1 -1
  718. package/build/src/whoami/index.js +11 -7
  719. package/build/src/whoami/index.js.map +1 -1
  720. package/build/src/whoami/whoamiAsync.js +11 -7
  721. package/build/src/whoami/whoamiAsync.js.map +1 -1
  722. package/package.json +3 -3
@@ -9,26 +9,30 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- getNamedPlugins: ()=>getNamedPlugins,
13
- autoAddConfigPluginsAsync: ()=>autoAddConfigPluginsAsync
12
+ autoAddConfigPluginsAsync: function() {
13
+ return autoAddConfigPluginsAsync;
14
+ },
15
+ getNamedPlugins: function() {
16
+ return getNamedPlugins;
17
+ }
14
18
  });
15
- function _pluginResolver() {
19
+ function _pluginresolver() {
16
20
  const data = require("@expo/config-plugins/build/utils/plugin-resolver");
17
- _pluginResolver = function() {
21
+ _pluginresolver = function() {
18
22
  return data;
19
23
  };
20
24
  return data;
21
25
  }
22
- function _prebuildConfig() {
26
+ function _prebuildconfig() {
23
27
  const data = require("@expo/prebuild-config");
24
- _prebuildConfig = function() {
28
+ _prebuildconfig = function() {
25
29
  return data;
26
30
  };
27
31
  return data;
28
32
  }
29
33
  const _modifyConfigPlugins = require("../../utils/modifyConfigPlugins");
30
- const debug = require("debug")("expo:install:config-plugins");
31
- const AUTO_PLUGINS = (0, _prebuildConfig().getAutoPlugins)();
34
+ const debug = require('debug')('expo:install:config-plugins');
35
+ const AUTO_PLUGINS = (0, _prebuildconfig().getAutoPlugins)();
32
36
  /**
33
37
  * Resolve if a package has a config plugin.
34
38
  * For sanity, we'll only support config plugins that use the `app.config.js` entry file,
@@ -39,7 +43,7 @@ const AUTO_PLUGINS = (0, _prebuildConfig().getAutoPlugins)();
39
43
  * @returns
40
44
  */ function packageHasConfigPlugin(projectRoot, packageName) {
41
45
  try {
42
- const info = (0, _pluginResolver().resolveConfigPluginFunctionWithInfo)(projectRoot, packageName);
46
+ const info = (0, _pluginresolver().resolveConfigPluginFunctionWithInfo)(projectRoot, packageName);
43
47
  if (info.isPluginFile) {
44
48
  return info.plugin;
45
49
  }
@@ -51,8 +55,8 @@ function getNamedPlugins(plugins) {
51
55
  for (const plugin of plugins){
52
56
  try {
53
57
  // @ts-ignore
54
- const [normal] = (0, _pluginResolver().normalizeStaticPlugin)(plugin);
55
- if (typeof normal === "string") {
58
+ const [normal] = (0, _pluginresolver().normalizeStaticPlugin)(plugin);
59
+ if (typeof normal === 'string') {
56
60
  namedPlugins.push(normal);
57
61
  }
58
62
  } catch {
@@ -62,10 +66,10 @@ function getNamedPlugins(plugins) {
62
66
  return namedPlugins;
63
67
  }
64
68
  async function autoAddConfigPluginsAsync(projectRoot, exp, packages) {
65
- debug("Checking config plugins...");
69
+ debug('Checking config plugins...');
66
70
  const currentPlugins = exp.plugins || [];
67
71
  const normalized = getNamedPlugins(currentPlugins);
68
- debug(`Existing plugins: ${normalized.join(", ")}`);
72
+ debug(`Existing plugins: ${normalized.join(', ')}`);
69
73
  const plugins = packages.filter((pkg)=>{
70
74
  if (normalized.includes(pkg)) {
71
75
  // already included in plugins array
@@ -73,7 +77,7 @@ async function autoAddConfigPluginsAsync(projectRoot, exp, packages) {
73
77
  }
74
78
  // Check if the package has a valid plugin. Must be a well-made plugin for it to work with this.
75
79
  const plugin = packageHasConfigPlugin(projectRoot, pkg);
76
- debug(`Package "${pkg}" has plugin: ${!!plugin}` + (plugin ? ` (args: ${plugin.length})` : ""));
80
+ debug(`Package "${pkg}" has plugin: ${!!plugin}` + (plugin ? ` (args: ${plugin.length})` : ''));
77
81
  if (AUTO_PLUGINS.includes(pkg)) {
78
82
  debug(`Package "${pkg}" is an auto plugin, skipping...`);
79
83
  return false;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/install/utils/autoAddConfigPlugins.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport {\n normalizeStaticPlugin,\n resolveConfigPluginFunctionWithInfo,\n} from '@expo/config-plugins/build/utils/plugin-resolver';\nimport { getAutoPlugins } from '@expo/prebuild-config';\n\nimport { attemptAddingPluginsAsync } from '../../utils/modifyConfigPlugins';\n\nconst debug = require('debug')('expo:install:config-plugins') as typeof console.log;\n\nconst AUTO_PLUGINS = getAutoPlugins();\n\n/**\n * Resolve if a package has a config plugin.\n * For sanity, we'll only support config plugins that use the `app.config.js` entry file,\n * this is because a package like `lodash` could be a \"valid\" config plugin and break the prebuild process.\n *\n * @param projectRoot\n * @param packageName\n * @returns\n */\nfunction packageHasConfigPlugin(projectRoot: string, packageName: string) {\n try {\n const info = resolveConfigPluginFunctionWithInfo(projectRoot, packageName);\n if (info.isPluginFile) {\n return info.plugin;\n }\n } catch {}\n return false;\n}\n\n/**\n * Get a list of plugins that were are supplied as string module IDs.\n * @example\n * ```json\n * {\n * \"plugins\": [\n * \"expo-camera\",\n * [\"react-native-firebase\", ...]\n * ]\n * }\n * ```\n * ↓ ↓ ↓ ↓ ↓ ↓\n *\n * `['expo-camera', 'react-native-firebase']`\n *\n */\nexport function getNamedPlugins(plugins: NonNullable<ExpoConfig['plugins']>): string[] {\n const namedPlugins: string[] = [];\n for (const plugin of plugins) {\n try {\n // @ts-ignore\n const [normal] = normalizeStaticPlugin(plugin);\n if (typeof normal === 'string') {\n namedPlugins.push(normal);\n }\n } catch {\n // ignore assertions\n }\n }\n return namedPlugins;\n}\n\n/** Attempts to ensure that non-auto plugins are added to the `app.json` `plugins` array when modules with Expo Config Plugins are installed. */\nexport async function autoAddConfigPluginsAsync(\n projectRoot: string,\n exp: Pick<ExpoConfig, 'plugins'>,\n packages: string[]\n) {\n debug('Checking config plugins...');\n\n const currentPlugins = exp.plugins || [];\n const normalized = getNamedPlugins(currentPlugins);\n\n debug(`Existing plugins: ${normalized.join(', ')}`);\n\n const plugins = packages.filter((pkg) => {\n if (normalized.includes(pkg)) {\n // already included in plugins array\n return false;\n }\n // Check if the package has a valid plugin. Must be a well-made plugin for it to work with this.\n const plugin = packageHasConfigPlugin(projectRoot, pkg);\n\n debug(`Package \"${pkg}\" has plugin: ${!!plugin}` + (plugin ? ` (args: ${plugin.length})` : ''));\n\n if (AUTO_PLUGINS.includes(pkg)) {\n debug(`Package \"${pkg}\" is an auto plugin, skipping...`);\n return false;\n }\n\n return !!plugin;\n });\n\n await attemptAddingPluginsAsync(projectRoot, plugins);\n}\n"],"names":["getNamedPlugins","autoAddConfigPluginsAsync","debug","require","AUTO_PLUGINS","getAutoPlugins","packageHasConfigPlugin","projectRoot","packageName","info","resolveConfigPluginFunctionWithInfo","isPluginFile","plugin","plugins","namedPlugins","normal","normalizeStaticPlugin","push","exp","packages","currentPlugins","normalized","join","filter","pkg","includes","length","attemptAddingPluginsAsync"],"mappings":"AAAA;;;;;;;;;;;IAgDgBA,eAAe,MAAfA,eAAe;IAiBTC,yBAAyB,MAAzBA,yBAAyB;;;yBA7DxC,kDAAkD;;;;;;;yBAC1B,uBAAuB;;;;;;qCAEZ,iCAAiC;AAE3E,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,6BAA6B,CAAC,AAAsB,AAAC;AAEpF,MAAMC,YAAY,GAAGC,IAAAA,eAAc,EAAA,eAAA,GAAE,AAAC;AAEtC;;;;;;;;CAQC,GACD,SAASC,sBAAsB,CAACC,WAAmB,EAAEC,WAAmB,EAAE;IACxE,IAAI;QACF,MAAMC,IAAI,GAAGC,IAAAA,eAAmC,EAAA,oCAAA,EAACH,WAAW,EAAEC,WAAW,CAAC,AAAC;QAC3E,IAAIC,IAAI,CAACE,YAAY,EAAE;YACrB,OAAOF,IAAI,CAACG,MAAM,CAAC;QACrB,CAAC;IACH,EAAE,OAAM,CAAC,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAkBM,SAASZ,eAAe,CAACa,OAA2C,EAAY;IACrF,MAAMC,YAAY,GAAa,EAAE,AAAC;IAClC,KAAK,MAAMF,MAAM,IAAIC,OAAO,CAAE;QAC5B,IAAI;YACF,aAAa;YACb,MAAM,CAACE,MAAM,CAAC,GAAGC,IAAAA,eAAqB,EAAA,sBAAA,EAACJ,MAAM,CAAC,AAAC;YAC/C,IAAI,OAAOG,MAAM,KAAK,QAAQ,EAAE;gBAC9BD,YAAY,CAACG,IAAI,CAACF,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,EAAE,OAAM;QACN,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,OAAOD,YAAY,CAAC;AACtB,CAAC;AAGM,eAAeb,yBAAyB,CAC7CM,WAAmB,EACnBW,GAAgC,EAChCC,QAAkB,EAClB;IACAjB,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAEpC,MAAMkB,cAAc,GAAGF,GAAG,CAACL,OAAO,IAAI,EAAE,AAAC;IACzC,MAAMQ,UAAU,GAAGrB,eAAe,CAACoB,cAAc,CAAC,AAAC;IAEnDlB,KAAK,CAAC,CAAC,kBAAkB,EAAEmB,UAAU,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAMT,OAAO,GAAGM,QAAQ,CAACI,MAAM,CAAC,CAACC,GAAG,GAAK;QACvC,IAAIH,UAAU,CAACI,QAAQ,CAACD,GAAG,CAAC,EAAE;YAC5B,oCAAoC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,gGAAgG;QAChG,MAAMZ,MAAM,GAAGN,sBAAsB,CAACC,WAAW,EAAEiB,GAAG,CAAC,AAAC;QAExDtB,KAAK,CAAC,CAAC,SAAS,EAAEsB,GAAG,CAAC,cAAc,EAAE,CAAC,CAACZ,MAAM,CAAC,CAAC,GAAG,CAACA,MAAM,GAAG,CAAC,QAAQ,EAAEA,MAAM,CAACc,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAEhG,IAAItB,YAAY,CAACqB,QAAQ,CAACD,GAAG,CAAC,EAAE;YAC9BtB,KAAK,CAAC,CAAC,SAAS,EAAEsB,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,CAACZ,MAAM,CAAC;IAClB,CAAC,CAAC,AAAC;IAEH,MAAMe,IAAAA,oBAAyB,0BAAA,EAACpB,WAAW,EAAEM,OAAO,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"sources":["../../../../src/install/utils/autoAddConfigPlugins.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport {\n normalizeStaticPlugin,\n resolveConfigPluginFunctionWithInfo,\n} from '@expo/config-plugins/build/utils/plugin-resolver';\nimport { getAutoPlugins } from '@expo/prebuild-config';\n\nimport { attemptAddingPluginsAsync } from '../../utils/modifyConfigPlugins';\n\nconst debug = require('debug')('expo:install:config-plugins') as typeof console.log;\n\nconst AUTO_PLUGINS = getAutoPlugins();\n\n/**\n * Resolve if a package has a config plugin.\n * For sanity, we'll only support config plugins that use the `app.config.js` entry file,\n * this is because a package like `lodash` could be a \"valid\" config plugin and break the prebuild process.\n *\n * @param projectRoot\n * @param packageName\n * @returns\n */\nfunction packageHasConfigPlugin(projectRoot: string, packageName: string) {\n try {\n const info = resolveConfigPluginFunctionWithInfo(projectRoot, packageName);\n if (info.isPluginFile) {\n return info.plugin;\n }\n } catch {}\n return false;\n}\n\n/**\n * Get a list of plugins that were are supplied as string module IDs.\n * @example\n * ```json\n * {\n * \"plugins\": [\n * \"expo-camera\",\n * [\"react-native-firebase\", ...]\n * ]\n * }\n * ```\n * ↓ ↓ ↓ ↓ ↓ ↓\n *\n * `['expo-camera', 'react-native-firebase']`\n *\n */\nexport function getNamedPlugins(plugins: NonNullable<ExpoConfig['plugins']>): string[] {\n const namedPlugins: string[] = [];\n for (const plugin of plugins) {\n try {\n // @ts-ignore\n const [normal] = normalizeStaticPlugin(plugin);\n if (typeof normal === 'string') {\n namedPlugins.push(normal);\n }\n } catch {\n // ignore assertions\n }\n }\n return namedPlugins;\n}\n\n/** Attempts to ensure that non-auto plugins are added to the `app.json` `plugins` array when modules with Expo Config Plugins are installed. */\nexport async function autoAddConfigPluginsAsync(\n projectRoot: string,\n exp: Pick<ExpoConfig, 'plugins'>,\n packages: string[]\n) {\n debug('Checking config plugins...');\n\n const currentPlugins = exp.plugins || [];\n const normalized = getNamedPlugins(currentPlugins);\n\n debug(`Existing plugins: ${normalized.join(', ')}`);\n\n const plugins = packages.filter((pkg) => {\n if (normalized.includes(pkg)) {\n // already included in plugins array\n return false;\n }\n // Check if the package has a valid plugin. Must be a well-made plugin for it to work with this.\n const plugin = packageHasConfigPlugin(projectRoot, pkg);\n\n debug(`Package \"${pkg}\" has plugin: ${!!plugin}` + (plugin ? ` (args: ${plugin.length})` : ''));\n\n if (AUTO_PLUGINS.includes(pkg)) {\n debug(`Package \"${pkg}\" is an auto plugin, skipping...`);\n return false;\n }\n\n return !!plugin;\n });\n\n await attemptAddingPluginsAsync(projectRoot, plugins);\n}\n"],"names":["autoAddConfigPluginsAsync","getNamedPlugins","debug","require","AUTO_PLUGINS","getAutoPlugins","packageHasConfigPlugin","projectRoot","packageName","info","resolveConfigPluginFunctionWithInfo","isPluginFile","plugin","plugins","namedPlugins","normal","normalizeStaticPlugin","push","exp","packages","currentPlugins","normalized","join","filter","pkg","includes","length","attemptAddingPluginsAsync"],"mappings":";;;;;;;;;;;IAiEsBA,yBAAyB;eAAzBA;;IAjBNC,eAAe;eAAfA;;;;yBA5CT;;;;;;;yBACwB;;;;;;qCAEW;AAE1C,MAAMC,QAAQC,QAAQ,SAAS;AAE/B,MAAMC,eAAeC,IAAAA,gCAAc;AAEnC;;;;;;;;CAQC,GACD,SAASC,uBAAuBC,WAAmB,EAAEC,WAAmB;IACtE,IAAI;QACF,MAAMC,OAAOC,IAAAA,qDAAmC,EAACH,aAAaC;QAC9D,IAAIC,KAAKE,YAAY,EAAE;YACrB,OAAOF,KAAKG,MAAM;QACpB;IACF,EAAE,OAAM,CAAC;IACT,OAAO;AACT;AAkBO,SAASX,gBAAgBY,OAA2C;IACzE,MAAMC,eAAyB,EAAE;IACjC,KAAK,MAAMF,UAAUC,QAAS;QAC5B,IAAI;YACF,aAAa;YACb,MAAM,CAACE,OAAO,GAAGC,IAAAA,uCAAqB,EAACJ;YACvC,IAAI,OAAOG,WAAW,UAAU;gBAC9BD,aAAaG,IAAI,CAACF;YACpB;QACF,EAAE,OAAM;QACN,oBAAoB;QACtB;IACF;IACA,OAAOD;AACT;AAGO,eAAed,0BACpBO,WAAmB,EACnBW,GAAgC,EAChCC,QAAkB;IAElBjB,MAAM;IAEN,MAAMkB,iBAAiBF,IAAIL,OAAO,IAAI,EAAE;IACxC,MAAMQ,aAAapB,gBAAgBmB;IAEnClB,MAAM,CAAC,kBAAkB,EAAEmB,WAAWC,IAAI,CAAC,OAAO;IAElD,MAAMT,UAAUM,SAASI,MAAM,CAAC,CAACC;QAC/B,IAAIH,WAAWI,QAAQ,CAACD,MAAM;YAC5B,oCAAoC;YACpC,OAAO;QACT;QACA,gGAAgG;QAChG,MAAMZ,SAASN,uBAAuBC,aAAaiB;QAEnDtB,MAAM,CAAC,SAAS,EAAEsB,IAAI,cAAc,EAAE,CAAC,CAACZ,QAAQ,GAAIA,CAAAA,SAAS,CAAC,QAAQ,EAAEA,OAAOc,MAAM,CAAC,CAAC,CAAC,GAAG,EAAC;QAE5F,IAAItB,aAAaqB,QAAQ,CAACD,MAAM;YAC9BtB,MAAM,CAAC,SAAS,EAAEsB,IAAI,gCAAgC,CAAC;YACvD,OAAO;QACT;QAEA,OAAO,CAAC,CAACZ;IACX;IAEA,MAAMe,IAAAA,8CAAyB,EAACpB,aAAaM;AAC/C"}
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "checkPackagesCompatibility", {
7
7
  enumerable: true,
8
- get: ()=>checkPackagesCompatibility
8
+ get: function() {
9
+ return checkPackagesCompatibility;
10
+ }
9
11
  });
10
12
  function _chalk() {
11
- const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
13
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
12
14
  _chalk = function() {
13
15
  return data;
14
16
  };
@@ -17,18 +19,18 @@ function _chalk() {
17
19
  const _log = require("../../log");
18
20
  const _fetch = require("../../utils/fetch");
19
21
  const _link = require("../../utils/link");
20
- function _interopRequireDefault(obj) {
22
+ function _interop_require_default(obj) {
21
23
  return obj && obj.__esModule ? obj : {
22
24
  default: obj
23
25
  };
24
26
  }
25
- const ERROR_MESSAGE = "Unable to fetch compatibility data from React Native Directory. Skipping check.";
27
+ const ERROR_MESSAGE = 'Unable to fetch compatibility data from React Native Directory. Skipping check.';
26
28
  async function checkPackagesCompatibility(packages) {
27
29
  try {
28
- const response = await (0, _fetch.fetch)("https://reactnative.directory/api/libraries/check", {
29
- method: "POST",
30
+ const response = await (0, _fetch.fetch)('https://reactnative.directory/api/libraries/check', {
31
+ method: 'POST',
30
32
  headers: {
31
- "Content-Type": "application/json"
33
+ 'Content-Type': 'application/json'
32
34
  },
33
35
  body: JSON.stringify({
34
36
  packages
@@ -39,11 +41,11 @@ async function checkPackagesCompatibility(packages) {
39
41
  }
40
42
  const packageMetadata = await response.json();
41
43
  const incompatiblePackages = packages.filter((packageName)=>{
42
- var ref;
43
- return ((ref = packageMetadata[packageName]) == null ? void 0 : ref.newArchitecture) === "unsupported";
44
+ var _packageMetadata_packageName;
45
+ return ((_packageMetadata_packageName = packageMetadata[packageName]) == null ? void 0 : _packageMetadata_packageName.newArchitecture) === 'unsupported';
44
46
  });
45
47
  if (incompatiblePackages.length) {
46
- _log.Log.warn(_chalk().default.yellow(`${_chalk().default.bold("Warning")}: ${formatPackageNames(incompatiblePackages)} do${incompatiblePackages.length > 1 ? "" : "es"} not support the New Architecture. ${(0, _link.learnMore)("https://docs.expo.dev/guides/new-architecture/")}`));
48
+ _log.Log.warn(_chalk().default.yellow(`${_chalk().default.bold('Warning')}: ${formatPackageNames(incompatiblePackages)} do${incompatiblePackages.length > 1 ? '' : 'es'} not support the New Architecture. ${(0, _link.learnMore)('https://docs.expo.dev/guides/new-architecture/')}`));
47
49
  }
48
50
  } catch {
49
51
  _log.Log.log(_chalk().default.gray(ERROR_MESSAGE));
@@ -54,7 +56,7 @@ function formatPackageNames(incompatiblePackages) {
54
56
  return incompatiblePackages.join();
55
57
  }
56
58
  const lastPackage = incompatiblePackages.pop();
57
- return `${incompatiblePackages.join(", ")} and ${lastPackage}`;
59
+ return `${incompatiblePackages.join(', ')} and ${lastPackage}`;
58
60
  }
59
61
 
60
62
  //# sourceMappingURL=checkPackagesCompatibility.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/install/utils/checkPackagesCompatibility.ts"],"sourcesContent":["// note(Simek): https://github.com/react-native-community/directory/blob/main/pages/api/libraries/check.ts\nimport chalk from 'chalk';\n\nimport { Log } from '../../log';\nimport { fetch } from '../../utils/fetch';\nimport { learnMore } from '../../utils/link';\n\nexport type ReactNativeDirectoryCheckResult = {\n unmaintained: boolean;\n newArchitecture: 'supported' | 'unsupported' | 'untested';\n};\n\nconst ERROR_MESSAGE =\n 'Unable to fetch compatibility data from React Native Directory. Skipping check.';\n\nexport async function checkPackagesCompatibility(packages: string[]) {\n try {\n const response = await fetch('https://reactnative.directory/api/libraries/check', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ packages }),\n });\n\n if (!response.ok) {\n Log.log(chalk.gray(ERROR_MESSAGE));\n }\n\n const packageMetadata = (await response.json()) as Record<\n string,\n ReactNativeDirectoryCheckResult\n >;\n\n const incompatiblePackages = packages.filter(\n (packageName) => packageMetadata[packageName]?.newArchitecture === 'unsupported'\n );\n\n if (incompatiblePackages.length) {\n Log.warn(\n chalk.yellow(\n `${chalk.bold('Warning')}: ${formatPackageNames(incompatiblePackages)} do${incompatiblePackages.length > 1 ? '' : 'es'} not support the New Architecture. ${learnMore('https://docs.expo.dev/guides/new-architecture/')}`\n )\n );\n }\n } catch {\n Log.log(chalk.gray(ERROR_MESSAGE));\n }\n}\n\nfunction formatPackageNames(incompatiblePackages: string[]) {\n if (incompatiblePackages.length === 1) {\n return incompatiblePackages.join();\n }\n\n const lastPackage = incompatiblePackages.pop();\n return `${incompatiblePackages.join(', ')} and ${lastPackage}`;\n}\n"],"names":["checkPackagesCompatibility","ERROR_MESSAGE","packages","response","fetch","method","headers","body","JSON","stringify","ok","Log","log","chalk","gray","packageMetadata","json","incompatiblePackages","filter","packageName","newArchitecture","length","warn","yellow","bold","formatPackageNames","learnMore","join","lastPackage","pop"],"mappings":"AAAA,0GAA0G;AAC1G;;;;+BAcsBA,4BAA0B;;aAA1BA,0BAA0B;;;8DAd9B,OAAO;;;;;;qBAEL,WAAW;uBACT,mBAAmB;sBACf,kBAAkB;;;;;;AAO5C,MAAMC,aAAa,GACjB,iFAAiF,AAAC;AAE7E,eAAeD,0BAA0B,CAACE,QAAkB,EAAE;IACnE,IAAI;QACF,MAAMC,QAAQ,GAAG,MAAMC,IAAAA,MAAK,MAAA,EAAC,mDAAmD,EAAE;YAChFC,MAAM,EAAE,MAAM;YACdC,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;gBAAEP,QAAQ;aAAE,CAAC;SACnC,CAAC,AAAC;QAEH,IAAI,CAACC,QAAQ,CAACO,EAAE,EAAE;YAChBC,IAAG,IAAA,CAACC,GAAG,CAACC,MAAK,EAAA,QAAA,CAACC,IAAI,CAACb,aAAa,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,MAAMc,eAAe,GAAI,MAAMZ,QAAQ,CAACa,IAAI,EAAE,AAG7C,AAAC;QAEF,MAAMC,oBAAoB,GAAGf,QAAQ,CAACgB,MAAM,CAC1C,CAACC,WAAW;gBAAKJ,GAA4B;YAA5BA,OAAAA,CAAAA,CAAAA,GAA4B,GAA5BA,eAAe,CAACI,WAAW,CAAC,SAAiB,GAA7CJ,KAAAA,CAA6C,GAA7CA,GAA4B,CAAEK,eAAe,CAAA,KAAK,aAAa,CAAA;SAAA,CACjF,AAAC;QAEF,IAAIH,oBAAoB,CAACI,MAAM,EAAE;YAC/BV,IAAG,IAAA,CAACW,IAAI,CACNT,MAAK,EAAA,QAAA,CAACU,MAAM,CACV,CAAC,EAAEV,MAAK,EAAA,QAAA,CAACW,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAEC,kBAAkB,CAACR,oBAAoB,CAAC,CAAC,GAAG,EAAEA,oBAAoB,CAACI,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,mCAAmC,EAAEK,IAAAA,KAAS,UAAA,EAAC,gDAAgD,CAAC,CAAC,CAAC,CAC1N,CACF,CAAC;QACJ,CAAC;IACH,EAAE,OAAM;QACNf,IAAG,IAAA,CAACC,GAAG,CAACC,MAAK,EAAA,QAAA,CAACC,IAAI,CAACb,aAAa,CAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAASwB,kBAAkB,CAACR,oBAA8B,EAAE;IAC1D,IAAIA,oBAAoB,CAACI,MAAM,KAAK,CAAC,EAAE;QACrC,OAAOJ,oBAAoB,CAACU,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,MAAMC,WAAW,GAAGX,oBAAoB,CAACY,GAAG,EAAE,AAAC;IAC/C,OAAO,CAAC,EAAEZ,oBAAoB,CAACU,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAEC,WAAW,CAAC,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"sources":["../../../../src/install/utils/checkPackagesCompatibility.ts"],"sourcesContent":["// note(Simek): https://github.com/react-native-community/directory/blob/main/pages/api/libraries/check.ts\nimport chalk from 'chalk';\n\nimport { Log } from '../../log';\nimport { fetch } from '../../utils/fetch';\nimport { learnMore } from '../../utils/link';\n\nexport type ReactNativeDirectoryCheckResult = {\n unmaintained: boolean;\n newArchitecture: 'supported' | 'unsupported' | 'untested';\n};\n\nconst ERROR_MESSAGE =\n 'Unable to fetch compatibility data from React Native Directory. Skipping check.';\n\nexport async function checkPackagesCompatibility(packages: string[]) {\n try {\n const response = await fetch('https://reactnative.directory/api/libraries/check', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ packages }),\n });\n\n if (!response.ok) {\n Log.log(chalk.gray(ERROR_MESSAGE));\n }\n\n const packageMetadata = (await response.json()) as Record<\n string,\n ReactNativeDirectoryCheckResult\n >;\n\n const incompatiblePackages = packages.filter(\n (packageName) => packageMetadata[packageName]?.newArchitecture === 'unsupported'\n );\n\n if (incompatiblePackages.length) {\n Log.warn(\n chalk.yellow(\n `${chalk.bold('Warning')}: ${formatPackageNames(incompatiblePackages)} do${incompatiblePackages.length > 1 ? '' : 'es'} not support the New Architecture. ${learnMore('https://docs.expo.dev/guides/new-architecture/')}`\n )\n );\n }\n } catch {\n Log.log(chalk.gray(ERROR_MESSAGE));\n }\n}\n\nfunction formatPackageNames(incompatiblePackages: string[]) {\n if (incompatiblePackages.length === 1) {\n return incompatiblePackages.join();\n }\n\n const lastPackage = incompatiblePackages.pop();\n return `${incompatiblePackages.join(', ')} and ${lastPackage}`;\n}\n"],"names":["checkPackagesCompatibility","ERROR_MESSAGE","packages","response","fetch","method","headers","body","JSON","stringify","ok","Log","log","chalk","gray","packageMetadata","json","incompatiblePackages","filter","packageName","newArchitecture","length","warn","yellow","bold","formatPackageNames","learnMore","join","lastPackage","pop"],"mappings":"AAAA,0GAA0G;;;;;+BAepFA;;;eAAAA;;;;gEAdJ;;;;;;qBAEE;uBACE;sBACI;;;;;;AAO1B,MAAMC,gBACJ;AAEK,eAAeD,2BAA2BE,QAAkB;IACjE,IAAI;QACF,MAAMC,WAAW,MAAMC,IAAAA,YAAK,EAAC,qDAAqD;YAChFC,QAAQ;YACRC,SAAS;gBACP,gBAAgB;YAClB;YACAC,MAAMC,KAAKC,SAAS,CAAC;gBAAEP;YAAS;QAClC;QAEA,IAAI,CAACC,SAASO,EAAE,EAAE;YAChBC,QAAG,CAACC,GAAG,CAACC,gBAAK,CAACC,IAAI,CAACb;QACrB;QAEA,MAAMc,kBAAmB,MAAMZ,SAASa,IAAI;QAK5C,MAAMC,uBAAuBf,SAASgB,MAAM,CAC1C,CAACC;gBAAgBJ;mBAAAA,EAAAA,+BAAAA,eAAe,CAACI,YAAY,qBAA5BJ,6BAA8BK,eAAe,MAAK;;QAGrE,IAAIH,qBAAqBI,MAAM,EAAE;YAC/BV,QAAG,CAACW,IAAI,CACNT,gBAAK,CAACU,MAAM,CACV,GAAGV,gBAAK,CAACW,IAAI,CAAC,WAAW,EAAE,EAAEC,mBAAmBR,sBAAsB,GAAG,EAAEA,qBAAqBI,MAAM,GAAG,IAAI,KAAK,KAAK,mCAAmC,EAAEK,IAAAA,eAAS,EAAC,mDAAmD;QAG/N;IACF,EAAE,OAAM;QACNf,QAAG,CAACC,GAAG,CAACC,gBAAK,CAACC,IAAI,CAACb;IACrB;AACF;AAEA,SAASwB,mBAAmBR,oBAA8B;IACxD,IAAIA,qBAAqBI,MAAM,KAAK,GAAG;QACrC,OAAOJ,qBAAqBU,IAAI;IAClC;IAEA,MAAMC,cAAcX,qBAAqBY,GAAG;IAC5C,OAAO,GAAGZ,qBAAqBU,IAAI,CAAC,MAAM,KAAK,EAAEC,aAAa;AAChE"}
@@ -4,59 +4,61 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "ESLintProjectPrerequisite", {
6
6
  enumerable: true,
7
- get: ()=>ESLintProjectPrerequisite
7
+ get: function() {
8
+ return ESLintProjectPrerequisite;
9
+ }
8
10
  });
9
- function _jsonFile() {
10
- const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/json-file"));
11
- _jsonFile = function() {
11
+ function _jsonfile() {
12
+ const data = /*#__PURE__*/ _interop_require_default(require("@expo/json-file"));
13
+ _jsonfile = function() {
12
14
  return data;
13
15
  };
14
16
  return data;
15
17
  }
16
18
  function _promises() {
17
- const data = /*#__PURE__*/ _interopRequireDefault(require("fs/promises"));
19
+ const data = /*#__PURE__*/ _interop_require_default(require("fs/promises"));
18
20
  _promises = function() {
19
21
  return data;
20
22
  };
21
23
  return data;
22
24
  }
23
25
  function _path() {
24
- const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
26
+ const data = /*#__PURE__*/ _interop_require_default(require("path"));
25
27
  _path = function() {
26
28
  return data;
27
29
  };
28
30
  return data;
29
31
  }
30
32
  const _log = require("../log");
31
- const _prerequisite = require("../start/doctor/Prerequisite");
33
+ const _Prerequisite = require("../start/doctor/Prerequisite");
32
34
  const _ensureDependenciesAsync = require("../start/doctor/dependencies/ensureDependenciesAsync");
33
35
  const _findUp = require("../utils/findUp");
34
36
  const _interactive = require("../utils/interactive");
35
37
  const _prompts = require("../utils/prompts");
36
- function _interopRequireDefault(obj) {
38
+ function _interop_require_default(obj) {
37
39
  return obj && obj.__esModule ? obj : {
38
40
  default: obj
39
41
  };
40
42
  }
41
- const debug = require("debug")("expo:lint");
42
- class ESLintProjectPrerequisite extends _prerequisite.ProjectPrerequisite {
43
+ const debug = require('debug')('expo:lint');
44
+ class ESLintProjectPrerequisite extends _Prerequisite.ProjectPrerequisite {
43
45
  async assertImplementation() {
44
46
  const hasEslintConfig = await eslintIsConfigured(this.projectRoot);
45
47
  const hasLintScript = await lintScriptIsConfigured(this.projectRoot);
46
48
  return hasEslintConfig && hasLintScript;
47
49
  }
48
50
  async bootstrapAsync() {
49
- debug("Setting up ESLint");
51
+ debug('Setting up ESLint');
50
52
  const hasEslintConfig = await eslintIsConfigured(this.projectRoot);
51
53
  if (!hasEslintConfig) {
52
54
  if (!(0, _interactive.isInteractive)()) {
53
55
  _log.Log.warn(`No ESLint config found. Configuring automatically.`);
54
56
  } else {
55
57
  const shouldSetupLint = await (0, _prompts.confirmAsync)({
56
- message: "No ESLint config found. Install and configure ESLint in this project?"
58
+ message: 'No ESLint config found. Install and configure ESLint in this project?'
57
59
  });
58
60
  if (!shouldSetupLint) {
59
- throw new _prerequisite.PrerequisiteCommandError("ESLint is not configured for this project.");
61
+ throw new _Prerequisite.PrerequisiteCommandError('ESLint is not configured for this project.');
60
62
  }
61
63
  }
62
64
  // TODO(cedric): if we want to add prettier, also configure proper prettier rules
@@ -84,44 +86,44 @@ class ESLintProjectPrerequisite extends _prerequisite.ProjectPrerequisite {
84
86
  // if (shouldIncludePrettier) {
85
87
  // await fs.writeFile(path.join(this.projectRoot, '.prettierrc'), '{}', 'utf8');
86
88
  // }
87
- await _promises().default.writeFile(_path().default.join(this.projectRoot, ".eslintrc.js"), await _promises().default.readFile(require.resolve(`@expo/cli/static/template/.eslintrc.js`), "utf8"), "utf8");
89
+ await _promises().default.writeFile(_path().default.join(this.projectRoot, '.eslintrc.js'), await _promises().default.readFile(require.resolve(`@expo/cli/static/template/.eslintrc.js`), 'utf8'), 'utf8');
88
90
  }
89
91
  const hasLintScript = await lintScriptIsConfigured(this.projectRoot);
90
92
  if (!hasLintScript) {
91
- const scripts = _jsonFile().default.read(_path().default.join(this.projectRoot, "package.json")).scripts;
92
- await _jsonFile().default.setAsync(_path().default.join(this.projectRoot, "package.json"), "scripts", typeof scripts === "object" ? {
93
+ const scripts = _jsonfile().default.read(_path().default.join(this.projectRoot, 'package.json')).scripts;
94
+ await _jsonfile().default.setAsync(_path().default.join(this.projectRoot, 'package.json'), 'scripts', typeof scripts === 'object' ? {
93
95
  ...scripts,
94
- lint: "eslint ."
96
+ lint: 'eslint .'
95
97
  } : {
96
- lint: "eslint ."
98
+ lint: 'eslint .'
97
99
  }, {
98
100
  json5: false
99
101
  });
100
102
  }
101
103
  _log.Log.log();
102
- _log.Log.log("ESlint has been configured \uD83C\uDF89");
104
+ _log.Log.log('ESlint has been configured 🎉');
103
105
  _log.Log.log();
104
106
  return true;
105
107
  }
106
- async _ensureDependenciesInstalledAsync({ skipPrompt , isProjectMutable }) {
108
+ async _ensureDependenciesInstalledAsync({ skipPrompt, isProjectMutable }) {
107
109
  try {
108
110
  return await (0, _ensureDependenciesAsync.ensureDependenciesAsync)(this.projectRoot, {
109
111
  skipPrompt,
110
112
  isProjectMutable,
111
- installMessage: "ESLint is required to lint your project.",
112
- warningMessage: "ESLint not installed, unable to set up linting for your project.",
113
+ installMessage: 'ESLint is required to lint your project.',
114
+ warningMessage: 'ESLint not installed, unable to set up linting for your project.',
113
115
  requiredPackages: [
114
116
  {
115
- version: "^8.57.0",
116
- pkg: "eslint",
117
- file: "eslint/package.json",
117
+ version: '^8.57.0',
118
+ pkg: 'eslint',
119
+ file: 'eslint/package.json',
118
120
  dev: true
119
121
  },
120
122
  {
121
- pkg: "eslint-config-expo",
122
- file: "eslint-config-expo/package.json",
123
+ pkg: 'eslint-config-expo',
124
+ file: 'eslint-config-expo/package.json',
123
125
  dev: true
124
- },
126
+ }
125
127
  ]
126
128
  });
127
129
  } catch (error) {
@@ -131,43 +133,47 @@ class ESLintProjectPrerequisite extends _prerequisite.ProjectPrerequisite {
131
133
  }
132
134
  }
133
135
  async function eslintIsConfigured(projectRoot) {
134
- debug("Ensuring ESlint is configured in", projectRoot);
136
+ debug('Ensuring ESlint is configured in', projectRoot);
135
137
  // TODO(cedric): drop `package.json` check once we swap to flat config
136
- const packageFile = await _jsonFile().default.readAsync(_path().default.join(projectRoot, "package.json"));
137
- if (typeof packageFile.eslintConfig === "object" && Object.keys(packageFile.eslintConfig).length > 0) {
138
- debug("Found ESlint config in package.json");
138
+ const packageFile = await _jsonfile().default.readAsync(_path().default.join(projectRoot, 'package.json'));
139
+ if (typeof packageFile.eslintConfig === 'object' && Object.keys(packageFile.eslintConfig).length > 0) {
140
+ debug('Found ESlint config in package.json');
139
141
  return true;
140
142
  }
141
143
  const eslintConfigFiles = [
142
144
  // TODO(cedric): drop these files once we swap to flat config
143
145
  // See: https://eslint.org/docs/latest/use/configure/configuration-files-deprecated
144
- ".eslintrc.js",
145
- ".eslintrc.cjs",
146
- ".eslintrc.yaml",
147
- ".eslintrc.yml",
148
- ".eslintrc.json",
146
+ '.eslintrc.js',
147
+ '.eslintrc.cjs',
148
+ '.eslintrc.yaml',
149
+ '.eslintrc.yml',
150
+ '.eslintrc.json'
149
151
  ];
150
152
  for (const configFile of eslintConfigFiles){
151
153
  const configPath = (0, _findUp.findFileInParents)(projectRoot, configFile);
152
154
  const configIsEmpty = configPath ? await eslintConfigIsEmpty(configPath) : null;
153
155
  if (configPath && !configIsEmpty) {
154
- debug("Found ESlint config file:", configPath);
156
+ debug('Found ESlint config file:', configPath);
155
157
  return true;
156
158
  } else if (configPath && configIsEmpty) {
157
- debug("Skipping empty ESlint config file:", configPath);
159
+ debug('Skipping empty ESlint config file:', configPath);
158
160
  }
159
161
  }
160
162
  return false;
161
163
  }
162
164
  /** Determine if the eslint config file is empty. */ async function eslintConfigIsEmpty(filePath) {
163
- const content = await _promises().default.readFile(filePath, "utf8").then((text)=>text.trim().replaceAll(/\s|\r\n|\n|\r/g, ""), ()=>null);
164
- return !content || content === "{}" || content === "---" || content.startsWith("module.exports={}") || content.startsWith("exportdefault{}") || content.startsWith("exportdefault[]") // .eslint.config.mjs
165
+ const content = await _promises().default.readFile(filePath, 'utf8').then((text)=>text.trim().replaceAll(/\s|\r\n|\n|\r/g, ''), ()=>null);
166
+ return !content || content === '{}' || // .eslintrc.json
167
+ content === '---' || // .eslintrc.yaml / .eslintrc.yml
168
+ content.startsWith('module.exports={}') || // .eslintrc.js / .eslintrc.cjs / eslint.config.js / eslint.config.cjs
169
+ content.startsWith('exportdefault{}') || // .eslint.config.mjs
170
+ content.startsWith('exportdefault[]') // .eslint.config.mjs
165
171
  ;
166
172
  }
167
173
  async function lintScriptIsConfigured(projectRoot) {
168
- var ref;
169
- const packageFile = await _jsonFile().default.readAsync(_path().default.join(projectRoot, "package.json"));
170
- return typeof ((ref = packageFile.scripts) == null ? void 0 : ref.lint) === "string";
174
+ var _packageFile_scripts;
175
+ const packageFile = await _jsonfile().default.readAsync(_path().default.join(projectRoot, 'package.json'));
176
+ return typeof ((_packageFile_scripts = packageFile.scripts) == null ? void 0 : _packageFile_scripts.lint) === 'string';
171
177
  }
172
178
 
173
179
  //# sourceMappingURL=ESlintPrerequisite.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lint/ESlintPrerequisite.ts"],"sourcesContent":["import JsonFile, { JSONObject } from '@expo/json-file';\nimport fs from 'fs/promises';\nimport path from 'path';\n\nimport { Log } from '../log';\nimport { PrerequisiteCommandError, ProjectPrerequisite } from '../start/doctor/Prerequisite';\nimport { ensureDependenciesAsync } from '../start/doctor/dependencies/ensureDependenciesAsync';\nimport { findFileInParents } from '../utils/findUp';\nimport { isInteractive } from '../utils/interactive';\nimport { confirmAsync } from '../utils/prompts';\n\nconst debug = require('debug')('expo:lint') as typeof console.log;\n\n// TODO(cedric): if we want to add prettier, also configure proper prettier rules\n// const ESLINT_TEMPLATE_PRETTIER = `// https://docs.expo.dev/guides/using-eslint/\n// module.exports = {\n// extends: ['expo', 'prettier'],\n// plugins: ['prettier'],\n// rules: {\n// 'prettier/prettier': ['warn'],\n// },\n// };\n// `;\n\n/** Ensure the project has the required ESlint config. */\nexport class ESLintProjectPrerequisite extends ProjectPrerequisite<boolean> {\n async assertImplementation(): Promise<boolean> {\n const hasEslintConfig = await eslintIsConfigured(this.projectRoot);\n const hasLintScript = await lintScriptIsConfigured(this.projectRoot);\n\n return hasEslintConfig && hasLintScript;\n }\n\n async bootstrapAsync(): Promise<boolean> {\n debug('Setting up ESLint');\n\n const hasEslintConfig = await eslintIsConfigured(this.projectRoot);\n if (!hasEslintConfig) {\n if (!isInteractive()) {\n Log.warn(`No ESLint config found. Configuring automatically.`);\n } else {\n const shouldSetupLint = await confirmAsync({\n message: 'No ESLint config found. Install and configure ESLint in this project?',\n });\n if (!shouldSetupLint) {\n throw new PrerequisiteCommandError('ESLint is not configured for this project.');\n }\n }\n\n // TODO(cedric): if we want to add prettier, also configure proper prettier rules\n // const shouldIncludePrettier = await confirmAsync({\n // message: 'Include Prettier?',\n // });\n\n // if (shouldIncludePrettier) {\n // packages.push({ file: 'prettier/package.json', pkg: 'prettier', dev: true });\n // packages.push({\n // file: 'eslint-config-prettier/package.json',\n // pkg: 'eslint-config-prettier',\n // dev: true,\n // });\n // packages.push({\n // file: 'eslint-plugin-prettier/package.json',\n // pkg: 'eslint-plugin-prettier',\n // dev: true,\n // });\n // }\n\n await this._ensureDependenciesInstalledAsync({ skipPrompt: true, isProjectMutable: true });\n\n // TODO(cedric): if we want to add prettier, also configure proper prettier rules\n // if (shouldIncludePrettier) {\n // await fs.writeFile(path.join(this.projectRoot, '.prettierrc'), '{}', 'utf8');\n // }\n\n await fs.writeFile(\n path.join(this.projectRoot, '.eslintrc.js'),\n await fs.readFile(require.resolve(`@expo/cli/static/template/.eslintrc.js`), 'utf8'),\n 'utf8'\n );\n }\n\n const hasLintScript = await lintScriptIsConfigured(this.projectRoot);\n if (!hasLintScript) {\n const scripts = JsonFile.read(path.join(this.projectRoot, 'package.json')).scripts;\n await JsonFile.setAsync(\n path.join(this.projectRoot, 'package.json'),\n 'scripts',\n typeof scripts === 'object' ? { ...scripts, lint: 'eslint .' } : { lint: 'eslint .' },\n { json5: false }\n );\n }\n\n Log.log();\n Log.log('ESlint has been configured 🎉');\n Log.log();\n\n return true;\n }\n\n async _ensureDependenciesInstalledAsync({\n skipPrompt,\n isProjectMutable,\n }: {\n skipPrompt?: boolean;\n isProjectMutable?: boolean;\n }): Promise<boolean> {\n try {\n return await ensureDependenciesAsync(this.projectRoot, {\n skipPrompt,\n isProjectMutable,\n installMessage: 'ESLint is required to lint your project.',\n warningMessage: 'ESLint not installed, unable to set up linting for your project.',\n requiredPackages: [\n { version: '^8.57.0', pkg: 'eslint', file: 'eslint/package.json', dev: true },\n {\n pkg: 'eslint-config-expo',\n file: 'eslint-config-expo/package.json',\n dev: true,\n },\n ],\n });\n } catch (error) {\n this.resetAssertion();\n throw error;\n }\n }\n}\n\nasync function eslintIsConfigured(projectRoot: string) {\n debug('Ensuring ESlint is configured in', projectRoot);\n\n // TODO(cedric): drop `package.json` check once we swap to flat config\n const packageFile = await JsonFile.readAsync(path.join(projectRoot, 'package.json'));\n if (\n typeof packageFile.eslintConfig === 'object' &&\n Object.keys(packageFile.eslintConfig as JSONObject).length > 0\n ) {\n debug('Found ESlint config in package.json');\n return true;\n }\n\n const eslintConfigFiles = [\n // TODO(cedric): drop these files once we swap to flat config\n // See: https://eslint.org/docs/latest/use/configure/configuration-files-deprecated\n '.eslintrc.js',\n '.eslintrc.cjs',\n '.eslintrc.yaml',\n '.eslintrc.yml',\n '.eslintrc.json',\n // TODO(cedric): use these files once we swap to flat config\n // See: https://eslint.org/docs/latest/use/configure/configuration-files\n // 'eslint.config.js',\n // 'eslint.config.mjs',\n // 'eslint.config.cjs',\n ];\n for (const configFile of eslintConfigFiles) {\n const configPath = findFileInParents(projectRoot, configFile);\n const configIsEmpty = configPath ? await eslintConfigIsEmpty(configPath) : null;\n\n if (configPath && !configIsEmpty) {\n debug('Found ESlint config file:', configPath);\n return true;\n } else if (configPath && configIsEmpty) {\n debug('Skipping empty ESlint config file:', configPath);\n }\n }\n\n return false;\n}\n\n/** Determine if the eslint config file is empty. */\nasync function eslintConfigIsEmpty(filePath: string) {\n const content = await fs.readFile(filePath, 'utf8').then(\n (text) => text.trim().replaceAll(/\\s|\\r\\n|\\n|\\r/g, ''),\n () => null\n );\n\n return (\n !content ||\n content === '{}' || // .eslintrc.json\n content === '---' || // .eslintrc.yaml / .eslintrc.yml\n content.startsWith('module.exports={}') || // .eslintrc.js / .eslintrc.cjs / eslint.config.js / eslint.config.cjs\n content.startsWith('exportdefault{}') || // .eslint.config.mjs\n content.startsWith('exportdefault[]') // .eslint.config.mjs\n );\n}\n\nasync function lintScriptIsConfigured(projectRoot: string) {\n const packageFile = await JsonFile.readAsync(path.join(projectRoot, 'package.json'));\n return typeof (packageFile.scripts as JSONObject | undefined)?.lint === 'string';\n}\n"],"names":["ESLintProjectPrerequisite","debug","require","ProjectPrerequisite","assertImplementation","hasEslintConfig","eslintIsConfigured","projectRoot","hasLintScript","lintScriptIsConfigured","bootstrapAsync","isInteractive","Log","warn","shouldSetupLint","confirmAsync","message","PrerequisiteCommandError","_ensureDependenciesInstalledAsync","skipPrompt","isProjectMutable","fs","writeFile","path","join","readFile","resolve","scripts","JsonFile","read","setAsync","lint","json5","log","ensureDependenciesAsync","installMessage","warningMessage","requiredPackages","version","pkg","file","dev","error","resetAssertion","packageFile","readAsync","eslintConfig","Object","keys","length","eslintConfigFiles","configFile","configPath","findFileInParents","configIsEmpty","eslintConfigIsEmpty","filePath","content","then","text","trim","replaceAll","startsWith"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lint/ESlintPrerequisite.ts"],"sourcesContent":["import JsonFile, { JSONObject } from '@expo/json-file';\nimport fs from 'fs/promises';\nimport path from 'path';\n\nimport { Log } from '../log';\nimport { PrerequisiteCommandError, ProjectPrerequisite } from '../start/doctor/Prerequisite';\nimport { ensureDependenciesAsync } from '../start/doctor/dependencies/ensureDependenciesAsync';\nimport { findFileInParents } from '../utils/findUp';\nimport { isInteractive } from '../utils/interactive';\nimport { confirmAsync } from '../utils/prompts';\n\nconst debug = require('debug')('expo:lint') as typeof console.log;\n\n// TODO(cedric): if we want to add prettier, also configure proper prettier rules\n// const ESLINT_TEMPLATE_PRETTIER = `// https://docs.expo.dev/guides/using-eslint/\n// module.exports = {\n// extends: ['expo', 'prettier'],\n// plugins: ['prettier'],\n// rules: {\n// 'prettier/prettier': ['warn'],\n// },\n// };\n// `;\n\n/** Ensure the project has the required ESlint config. */\nexport class ESLintProjectPrerequisite extends ProjectPrerequisite<boolean> {\n async assertImplementation(): Promise<boolean> {\n const hasEslintConfig = await eslintIsConfigured(this.projectRoot);\n const hasLintScript = await lintScriptIsConfigured(this.projectRoot);\n\n return hasEslintConfig && hasLintScript;\n }\n\n async bootstrapAsync(): Promise<boolean> {\n debug('Setting up ESLint');\n\n const hasEslintConfig = await eslintIsConfigured(this.projectRoot);\n if (!hasEslintConfig) {\n if (!isInteractive()) {\n Log.warn(`No ESLint config found. Configuring automatically.`);\n } else {\n const shouldSetupLint = await confirmAsync({\n message: 'No ESLint config found. Install and configure ESLint in this project?',\n });\n if (!shouldSetupLint) {\n throw new PrerequisiteCommandError('ESLint is not configured for this project.');\n }\n }\n\n // TODO(cedric): if we want to add prettier, also configure proper prettier rules\n // const shouldIncludePrettier = await confirmAsync({\n // message: 'Include Prettier?',\n // });\n\n // if (shouldIncludePrettier) {\n // packages.push({ file: 'prettier/package.json', pkg: 'prettier', dev: true });\n // packages.push({\n // file: 'eslint-config-prettier/package.json',\n // pkg: 'eslint-config-prettier',\n // dev: true,\n // });\n // packages.push({\n // file: 'eslint-plugin-prettier/package.json',\n // pkg: 'eslint-plugin-prettier',\n // dev: true,\n // });\n // }\n\n await this._ensureDependenciesInstalledAsync({ skipPrompt: true, isProjectMutable: true });\n\n // TODO(cedric): if we want to add prettier, also configure proper prettier rules\n // if (shouldIncludePrettier) {\n // await fs.writeFile(path.join(this.projectRoot, '.prettierrc'), '{}', 'utf8');\n // }\n\n await fs.writeFile(\n path.join(this.projectRoot, '.eslintrc.js'),\n await fs.readFile(require.resolve(`@expo/cli/static/template/.eslintrc.js`), 'utf8'),\n 'utf8'\n );\n }\n\n const hasLintScript = await lintScriptIsConfigured(this.projectRoot);\n if (!hasLintScript) {\n const scripts = JsonFile.read(path.join(this.projectRoot, 'package.json')).scripts;\n await JsonFile.setAsync(\n path.join(this.projectRoot, 'package.json'),\n 'scripts',\n typeof scripts === 'object' ? { ...scripts, lint: 'eslint .' } : { lint: 'eslint .' },\n { json5: false }\n );\n }\n\n Log.log();\n Log.log('ESlint has been configured 🎉');\n Log.log();\n\n return true;\n }\n\n async _ensureDependenciesInstalledAsync({\n skipPrompt,\n isProjectMutable,\n }: {\n skipPrompt?: boolean;\n isProjectMutable?: boolean;\n }): Promise<boolean> {\n try {\n return await ensureDependenciesAsync(this.projectRoot, {\n skipPrompt,\n isProjectMutable,\n installMessage: 'ESLint is required to lint your project.',\n warningMessage: 'ESLint not installed, unable to set up linting for your project.',\n requiredPackages: [\n { version: '^8.57.0', pkg: 'eslint', file: 'eslint/package.json', dev: true },\n {\n pkg: 'eslint-config-expo',\n file: 'eslint-config-expo/package.json',\n dev: true,\n },\n ],\n });\n } catch (error) {\n this.resetAssertion();\n throw error;\n }\n }\n}\n\nasync function eslintIsConfigured(projectRoot: string) {\n debug('Ensuring ESlint is configured in', projectRoot);\n\n // TODO(cedric): drop `package.json` check once we swap to flat config\n const packageFile = await JsonFile.readAsync(path.join(projectRoot, 'package.json'));\n if (\n typeof packageFile.eslintConfig === 'object' &&\n Object.keys(packageFile.eslintConfig as JSONObject).length > 0\n ) {\n debug('Found ESlint config in package.json');\n return true;\n }\n\n const eslintConfigFiles = [\n // TODO(cedric): drop these files once we swap to flat config\n // See: https://eslint.org/docs/latest/use/configure/configuration-files-deprecated\n '.eslintrc.js',\n '.eslintrc.cjs',\n '.eslintrc.yaml',\n '.eslintrc.yml',\n '.eslintrc.json',\n // TODO(cedric): use these files once we swap to flat config\n // See: https://eslint.org/docs/latest/use/configure/configuration-files\n // 'eslint.config.js',\n // 'eslint.config.mjs',\n // 'eslint.config.cjs',\n ];\n for (const configFile of eslintConfigFiles) {\n const configPath = findFileInParents(projectRoot, configFile);\n const configIsEmpty = configPath ? await eslintConfigIsEmpty(configPath) : null;\n\n if (configPath && !configIsEmpty) {\n debug('Found ESlint config file:', configPath);\n return true;\n } else if (configPath && configIsEmpty) {\n debug('Skipping empty ESlint config file:', configPath);\n }\n }\n\n return false;\n}\n\n/** Determine if the eslint config file is empty. */\nasync function eslintConfigIsEmpty(filePath: string) {\n const content = await fs.readFile(filePath, 'utf8').then(\n (text) => text.trim().replaceAll(/\\s|\\r\\n|\\n|\\r/g, ''),\n () => null\n );\n\n return (\n !content ||\n content === '{}' || // .eslintrc.json\n content === '---' || // .eslintrc.yaml / .eslintrc.yml\n content.startsWith('module.exports={}') || // .eslintrc.js / .eslintrc.cjs / eslint.config.js / eslint.config.cjs\n content.startsWith('exportdefault{}') || // .eslint.config.mjs\n content.startsWith('exportdefault[]') // .eslint.config.mjs\n );\n}\n\nasync function lintScriptIsConfigured(projectRoot: string) {\n const packageFile = await JsonFile.readAsync(path.join(projectRoot, 'package.json'));\n return typeof (packageFile.scripts as JSONObject | undefined)?.lint === 'string';\n}\n"],"names":["ESLintProjectPrerequisite","debug","require","ProjectPrerequisite","assertImplementation","hasEslintConfig","eslintIsConfigured","projectRoot","hasLintScript","lintScriptIsConfigured","bootstrapAsync","isInteractive","Log","warn","shouldSetupLint","confirmAsync","message","PrerequisiteCommandError","_ensureDependenciesInstalledAsync","skipPrompt","isProjectMutable","fs","writeFile","path","join","readFile","resolve","scripts","JsonFile","read","setAsync","lint","json5","log","ensureDependenciesAsync","installMessage","warningMessage","requiredPackages","version","pkg","file","dev","error","resetAssertion","packageFile","readAsync","eslintConfig","Object","keys","length","eslintConfigFiles","configFile","configPath","findFileInParents","configIsEmpty","eslintConfigIsEmpty","filePath","content","then","text","trim","replaceAll","startsWith"],"mappings":"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"}
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "expoLint", {
6
6
  enumerable: true,
7
- get: ()=>expoLint
7
+ get: function() {
8
+ return expoLint;
9
+ }
8
10
  });
9
11
  const _args = require("../utils/args");
10
12
  const _errors = require("../utils/errors");
@@ -16,7 +18,7 @@ function _getRequireWildcardCache(nodeInterop) {
16
18
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
17
19
  })(nodeInterop);
18
20
  }
19
- function _interopRequireWildcard(obj, nodeInterop) {
21
+ function _interop_require_wildcard(obj, nodeInterop) {
20
22
  if (!nodeInterop && obj && obj.__esModule) {
21
23
  return obj;
22
24
  }
@@ -29,7 +31,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
29
31
  if (cache && cache.has(obj)) {
30
32
  return cache.get(obj);
31
33
  }
32
- var newObj = {};
34
+ var newObj = {
35
+ __proto__: null
36
+ };
33
37
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
34
38
  for(var key in obj){
35
39
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -50,15 +54,15 @@ function _interopRequireWildcard(obj, nodeInterop) {
50
54
  const expoLint = async (argv)=>{
51
55
  const args = (0, _args.assertArgs)({
52
56
  // Types
53
- "--help": Boolean,
57
+ '--help': Boolean,
54
58
  // Aliases
55
- "-h": "--help"
59
+ '-h': '--help'
56
60
  }, argv);
57
- if (args["--help"]) {
58
- (0, _args.printHelp)("Utility to run ESLint. Prompts to install and configure if not yet set up.", "npx expo lint", "-h, --help Usage info");
61
+ if (args['--help']) {
62
+ (0, _args.printHelp)('Utility to run ESLint. Prompts to install and configure if not yet set up.', 'npx expo lint', '-h, --help Usage info');
59
63
  }
60
64
  // Load modules after the help prompt so `npx expo lint -h` shows as fast as possible.
61
- const { lintAsync } = await Promise.resolve().then(()=>/*#__PURE__*/ _interopRequireWildcard(require("./lintAsync.js")));
65
+ const { lintAsync } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./lintAsync.js")));
62
66
  const projectRoot = (0, _args.getProjectRoot)(args);
63
67
  return lintAsync(projectRoot).catch(_errors.logCmdError);
64
68
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lint/index.ts"],"sourcesContent":["import type { Command } from '../../bin/cli';\nimport { assertArgs, getProjectRoot, printHelp } from '../utils/args';\nimport { logCmdError } from '../utils/errors';\n\nexport const expoLint: Command = async (argv) => {\n const args = assertArgs(\n {\n // Types\n '--help': Boolean,\n // Aliases\n '-h': '--help',\n },\n argv\n );\n\n if (args['--help']) {\n printHelp(\n 'Utility to run ESLint. Prompts to install and configure if not yet set up.',\n 'npx expo lint',\n '-h, --help Usage info'\n );\n }\n\n // Load modules after the help prompt so `npx expo lint -h` shows as fast as possible.\n const { lintAsync } = await import('./lintAsync.js');\n const projectRoot = getProjectRoot(args);\n\n return lintAsync(projectRoot).catch(logCmdError);\n};\n"],"names":["expoLint","argv","args","assertArgs","Boolean","printHelp","lintAsync","projectRoot","getProjectRoot","catch","logCmdError"],"mappings":"AAAA;;;;+BAIaA,UAAQ;;aAARA,QAAQ;;sBAHiC,eAAe;wBACzC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,MAAMA,QAAQ,GAAY,OAAOC,IAAI,GAAK;IAC/C,MAAMC,IAAI,GAAGC,IAAAA,KAAU,WAAA,EACrB;QACE,QAAQ;QACR,QAAQ,EAAEC,OAAO;QACjB,UAAU;QACV,IAAI,EAAE,QAAQ;KACf,EACDH,IAAI,CACL,AAAC;IAEF,IAAIC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClBG,IAAAA,KAAS,UAAA,EACP,4EAA4E,EAC5E,eAAe,EACf,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED,sFAAsF;IACtF,MAAM,EAAEC,SAAS,CAAA,EAAE,GAAG,MAAM,iEAAA,OAAM,CAAC,gBAAgB,GAAC,AAAC;IACrD,MAAMC,WAAW,GAAGC,IAAAA,KAAc,eAAA,EAACN,IAAI,CAAC,AAAC;IAEzC,OAAOI,SAAS,CAACC,WAAW,CAAC,CAACE,KAAK,CAACC,OAAW,YAAA,CAAC,CAAC;AACnD,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../../src/lint/index.ts"],"sourcesContent":["import type { Command } from '../../bin/cli';\nimport { assertArgs, getProjectRoot, printHelp } from '../utils/args';\nimport { logCmdError } from '../utils/errors';\n\nexport const expoLint: Command = async (argv) => {\n const args = assertArgs(\n {\n // Types\n '--help': Boolean,\n // Aliases\n '-h': '--help',\n },\n argv\n );\n\n if (args['--help']) {\n printHelp(\n 'Utility to run ESLint. Prompts to install and configure if not yet set up.',\n 'npx expo lint',\n '-h, --help Usage info'\n );\n }\n\n // Load modules after the help prompt so `npx expo lint -h` shows as fast as possible.\n const { lintAsync } = await import('./lintAsync.js');\n const projectRoot = getProjectRoot(args);\n\n return lintAsync(projectRoot).catch(logCmdError);\n};\n"],"names":["expoLint","argv","args","assertArgs","Boolean","printHelp","lintAsync","projectRoot","getProjectRoot","catch","logCmdError"],"mappings":";;;;+BAIaA;;;eAAAA;;;sBAHyC;wBAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAErB,MAAMA,WAAoB,OAAOC;IACtC,MAAMC,OAAOC,IAAAA,gBAAU,EACrB;QACE,QAAQ;QACR,UAAUC;QACV,UAAU;QACV,MAAM;IACR,GACAH;IAGF,IAAIC,IAAI,CAAC,SAAS,EAAE;QAClBG,IAAAA,eAAS,EACP,8EACA,iBACA;IAEJ;IAEA,sFAAsF;IACtF,MAAM,EAAEC,SAAS,EAAE,GAAG,MAAM,mEAAA,QAAO;IACnC,MAAMC,cAAcC,IAAAA,oBAAc,EAACN;IAEnC,OAAOI,UAAUC,aAAaE,KAAK,CAACC,mBAAW;AACjD"}
@@ -4,26 +4,28 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "lintAsync", {
6
6
  enumerable: true,
7
- get: ()=>lintAsync
7
+ get: function() {
8
+ return lintAsync;
9
+ }
8
10
  });
9
- function _packageManager() {
11
+ function _packagemanager() {
10
12
  const data = require("@expo/package-manager");
11
- _packageManager = function() {
13
+ _packagemanager = function() {
12
14
  return data;
13
15
  };
14
16
  return data;
15
17
  }
16
- const _eslintPrerequisite = require("./ESlintPrerequisite");
18
+ const _ESlintPrerequisite = require("./ESlintPrerequisite");
17
19
  const lintAsync = async (projectRoot)=>{
18
- const prerequisite = new _eslintPrerequisite.ESLintProjectPrerequisite(projectRoot);
20
+ const prerequisite = new _ESlintPrerequisite.ESLintProjectPrerequisite(projectRoot);
19
21
  if (!await prerequisite.assertAsync()) {
20
22
  await prerequisite.bootstrapAsync();
21
23
  }
22
- const manager = (0, _packageManager().createForProject)(projectRoot);
24
+ const manager = (0, _packagemanager().createForProject)(projectRoot);
23
25
  try {
24
26
  await manager.runBinAsync([
25
- "eslint",
26
- "."
27
+ 'eslint',
28
+ '.'
27
29
  ]);
28
30
  } catch (error) {
29
31
  process.exit(error.status);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lint/lintAsync.ts"],"sourcesContent":["import { createForProject } from '@expo/package-manager';\n\nimport { ESLintProjectPrerequisite } from './ESlintPrerequisite';\n\nexport const lintAsync = async (projectRoot: string) => {\n const prerequisite = new ESLintProjectPrerequisite(projectRoot);\n if (!(await prerequisite.assertAsync())) {\n await prerequisite.bootstrapAsync();\n }\n\n const manager = createForProject(projectRoot);\n try {\n await manager.runBinAsync(['eslint', '.']);\n } catch (error: any) {\n process.exit(error.status);\n }\n};\n"],"names":["lintAsync","projectRoot","prerequisite","ESLintProjectPrerequisite","assertAsync","bootstrapAsync","manager","createForProject","runBinAsync","error","process","exit","status"],"mappings":"AAAA;;;;+BAIaA,WAAS;;aAATA,SAAS;;;yBAJW,uBAAuB;;;;;;oCAEd,sBAAsB;AAEzD,MAAMA,SAAS,GAAG,OAAOC,WAAmB,GAAK;IACtD,MAAMC,YAAY,GAAG,IAAIC,mBAAyB,0BAAA,CAACF,WAAW,CAAC,AAAC;IAChE,IAAI,CAAE,MAAMC,YAAY,CAACE,WAAW,EAAE,AAAC,EAAE;QACvC,MAAMF,YAAY,CAACG,cAAc,EAAE,CAAC;IACtC,CAAC;IAED,MAAMC,OAAO,GAAGC,IAAAA,eAAgB,EAAA,iBAAA,EAACN,WAAW,CAAC,AAAC;IAC9C,IAAI;QACF,MAAMK,OAAO,CAACE,WAAW,CAAC;YAAC,QAAQ;YAAE,GAAG;SAAC,CAAC,CAAC;IAC7C,EAAE,OAAOC,KAAK,EAAO;QACnBC,OAAO,CAACC,IAAI,CAACF,KAAK,CAACG,MAAM,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../../src/lint/lintAsync.ts"],"sourcesContent":["import { createForProject } from '@expo/package-manager';\n\nimport { ESLintProjectPrerequisite } from './ESlintPrerequisite';\n\nexport const lintAsync = async (projectRoot: string) => {\n const prerequisite = new ESLintProjectPrerequisite(projectRoot);\n if (!(await prerequisite.assertAsync())) {\n await prerequisite.bootstrapAsync();\n }\n\n const manager = createForProject(projectRoot);\n try {\n await manager.runBinAsync(['eslint', '.']);\n } catch (error: any) {\n process.exit(error.status);\n }\n};\n"],"names":["lintAsync","projectRoot","prerequisite","ESLintProjectPrerequisite","assertAsync","bootstrapAsync","manager","createForProject","runBinAsync","error","process","exit","status"],"mappings":";;;;+BAIaA;;;eAAAA;;;;yBAJoB;;;;;;oCAES;AAEnC,MAAMA,YAAY,OAAOC;IAC9B,MAAMC,eAAe,IAAIC,6CAAyB,CAACF;IACnD,IAAI,CAAE,MAAMC,aAAaE,WAAW,IAAK;QACvC,MAAMF,aAAaG,cAAc;IACnC;IAEA,MAAMC,UAAUC,IAAAA,kCAAgB,EAACN;IACjC,IAAI;QACF,MAAMK,QAAQE,WAAW,CAAC;YAAC;YAAU;SAAI;IAC3C,EAAE,OAAOC,OAAY;QACnBC,QAAQC,IAAI,CAACF,MAAMG,MAAM;IAC3B;AACF"}