@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,12 +9,18 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- createSessionInfo: ()=>createSessionInfo,
13
- updateDevelopmentSessionAsync: ()=>updateDevelopmentSessionAsync,
14
- closeDevelopmentSessionAsync: ()=>closeDevelopmentSessionAsync
12
+ closeDevelopmentSessionAsync: function() {
13
+ return closeDevelopmentSessionAsync;
14
+ },
15
+ createSessionInfo: function() {
16
+ return createSessionInfo;
17
+ },
18
+ updateDevelopmentSessionAsync: function() {
19
+ return updateDevelopmentSessionAsync;
20
+ }
15
21
  });
16
22
  function _os() {
17
- const data = /*#__PURE__*/ _interopRequireDefault(require("os"));
23
+ const data = /*#__PURE__*/ _interop_require_default(require("os"));
18
24
  _os = function() {
19
25
  return data;
20
26
  };
@@ -29,12 +35,12 @@ function _url() {
29
35
  }
30
36
  const _client = require("./rest/client");
31
37
  const _errors = require("../utils/errors");
32
- function _interopRequireDefault(obj) {
38
+ function _interop_require_default(obj) {
33
39
  return obj && obj.__esModule ? obj : {
34
40
  default: obj
35
41
  };
36
42
  }
37
- function createSessionInfo({ exp , runtime , url }) {
43
+ function createSessionInfo({ exp, runtime, url }) {
38
44
  return {
39
45
  session: {
40
46
  description: `${exp.name} on ${_os().default.hostname()}`,
@@ -48,18 +54,18 @@ function createSessionInfo({ exp , runtime , url }) {
48
54
  primaryColor: exp.primaryColor
49
55
  },
50
56
  url,
51
- source: "desktop"
57
+ source: 'desktop'
52
58
  }
53
59
  };
54
60
  }
55
- async function updateDevelopmentSessionAsync({ deviceIds , exp , runtime , url }) {
61
+ async function updateDevelopmentSessionAsync({ deviceIds, exp, runtime, url }) {
56
62
  const searchParams = new (_url()).URLSearchParams();
57
63
  deviceIds.forEach((id)=>{
58
- searchParams.append("deviceId", id);
64
+ searchParams.append('deviceId', id);
59
65
  });
60
- const results = await (0, _client.fetchAsync)("development-sessions/notify-alive", {
66
+ const results = await (0, _client.fetchAsync)('development-sessions/notify-alive', {
61
67
  searchParams,
62
- method: "POST",
68
+ method: 'POST',
63
69
  body: JSON.stringify({
64
70
  data: createSessionInfo({
65
71
  exp,
@@ -69,17 +75,17 @@ async function updateDevelopmentSessionAsync({ deviceIds , exp , runtime , url
69
75
  })
70
76
  });
71
77
  if (!results.ok) {
72
- throw new _errors.CommandError("API", `Unexpected response when updating the development session on Expo servers: ${results.statusText}.`);
78
+ throw new _errors.CommandError('API', `Unexpected response when updating the development session on Expo servers: ${results.statusText}.`);
73
79
  }
74
80
  }
75
- async function closeDevelopmentSessionAsync({ deviceIds , url }) {
81
+ async function closeDevelopmentSessionAsync({ deviceIds, url }) {
76
82
  const searchParams = new (_url()).URLSearchParams();
77
83
  deviceIds.forEach((id)=>{
78
- searchParams.append("deviceId", id);
84
+ searchParams.append('deviceId', id);
79
85
  });
80
- const results = await (0, _client.fetchAsync)("development-sessions/notify-close", {
86
+ const results = await (0, _client.fetchAsync)('development-sessions/notify-close', {
81
87
  searchParams,
82
- method: "POST",
88
+ method: 'POST',
83
89
  body: JSON.stringify({
84
90
  session: {
85
91
  url
@@ -87,7 +93,7 @@ async function closeDevelopmentSessionAsync({ deviceIds , url }) {
87
93
  })
88
94
  });
89
95
  if (!results.ok) {
90
- throw new _errors.CommandError("API", `Unexpected response when closing the development session on Expo servers: ${results.statusText}.`);
96
+ throw new _errors.CommandError('API', `Unexpected response when closing the development session on Expo servers: ${results.statusText}.`);
91
97
  }
92
98
  }
93
99
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/updateDevelopmentSession.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport os from 'os';\nimport { URLSearchParams } from 'url';\n\nimport { fetchAsync } from './rest/client';\nimport { CommandError } from '../utils/errors';\n\n/** Create the expected session info. */\nexport function createSessionInfo({\n exp,\n runtime,\n url,\n}: {\n exp: Pick<ExpoConfig, 'name' | 'description' | 'slug' | 'primaryColor'>;\n runtime: 'native' | 'web';\n url: string;\n}) {\n return {\n session: {\n description: `${exp.name} on ${os.hostname()}`,\n hostname: os.hostname(),\n platform: runtime,\n config: {\n // TODO: if icons are specified, upload a url for them too so people can distinguish\n description: exp.description,\n name: exp.name,\n slug: exp.slug,\n primaryColor: exp.primaryColor,\n },\n url,\n source: 'desktop',\n },\n };\n}\n\n/** Send a request to Expo API to keep the 'development session' alive for the provided devices. */\nexport async function updateDevelopmentSessionAsync({\n deviceIds,\n exp,\n runtime,\n url,\n}: {\n deviceIds: string[];\n exp: Pick<ExpoConfig, 'name' | 'description' | 'slug' | 'primaryColor'>;\n runtime: 'native' | 'web';\n url: string;\n}) {\n const searchParams = new URLSearchParams();\n deviceIds.forEach((id) => {\n searchParams.append('deviceId', id);\n });\n\n const results = await fetchAsync('development-sessions/notify-alive', {\n searchParams,\n method: 'POST',\n body: JSON.stringify({\n data: createSessionInfo({ exp, runtime, url }),\n }),\n });\n\n if (!results.ok) {\n throw new CommandError(\n 'API',\n `Unexpected response when updating the development session on Expo servers: ${results.statusText}.`\n );\n }\n}\n\n/** Send a request to Expo API to close the 'development session' for the provided devices. */\nexport async function closeDevelopmentSessionAsync({\n deviceIds,\n url,\n}: {\n deviceIds: string[];\n url: string;\n}) {\n const searchParams = new URLSearchParams();\n deviceIds.forEach((id) => {\n searchParams.append('deviceId', id);\n });\n\n const results = await fetchAsync('development-sessions/notify-close', {\n searchParams,\n method: 'POST',\n body: JSON.stringify({\n session: { url },\n }),\n });\n\n if (!results.ok) {\n throw new CommandError(\n 'API',\n `Unexpected response when closing the development session on Expo servers: ${results.statusText}.`\n );\n }\n}\n"],"names":["createSessionInfo","updateDevelopmentSessionAsync","closeDevelopmentSessionAsync","exp","runtime","url","session","description","name","os","hostname","platform","config","slug","primaryColor","source","deviceIds","searchParams","URLSearchParams","forEach","id","append","results","fetchAsync","method","body","JSON","stringify","data","ok","CommandError","statusText"],"mappings":"AAAA;;;;;;;;;;;IAQgBA,iBAAiB,MAAjBA,iBAAiB;IA4BXC,6BAA6B,MAA7BA,6BAA6B;IAiC7BC,4BAA4B,MAA5BA,4BAA4B;;;8DApEnC,IAAI;;;;;;;yBACa,KAAK;;;;;;wBAEV,eAAe;wBACb,iBAAiB;;;;;;AAGvC,SAASF,iBAAiB,CAAC,EAChCG,GAAG,CAAA,EACHC,OAAO,CAAA,EACPC,GAAG,CAAA,EAKJ,EAAE;IACD,OAAO;QACLC,OAAO,EAAE;YACPC,WAAW,EAAE,CAAC,EAAEJ,GAAG,CAACK,IAAI,CAAC,IAAI,EAAEC,GAAE,EAAA,QAAA,CAACC,QAAQ,EAAE,CAAC,CAAC;YAC9CA,QAAQ,EAAED,GAAE,EAAA,QAAA,CAACC,QAAQ,EAAE;YACvBC,QAAQ,EAAEP,OAAO;YACjBQ,MAAM,EAAE;gBACN,oFAAoF;gBACpFL,WAAW,EAAEJ,GAAG,CAACI,WAAW;gBAC5BC,IAAI,EAAEL,GAAG,CAACK,IAAI;gBACdK,IAAI,EAAEV,GAAG,CAACU,IAAI;gBACdC,YAAY,EAAEX,GAAG,CAACW,YAAY;aAC/B;YACDT,GAAG;YACHU,MAAM,EAAE,SAAS;SAClB;KACF,CAAC;AACJ,CAAC;AAGM,eAAed,6BAA6B,CAAC,EAClDe,SAAS,CAAA,EACTb,GAAG,CAAA,EACHC,OAAO,CAAA,EACPC,GAAG,CAAA,EAMJ,EAAE;IACD,MAAMY,YAAY,GAAG,IAAIC,CAAAA,IAAe,EAAA,CAAA,gBAAA,EAAE,AAAC;IAC3CF,SAAS,CAACG,OAAO,CAAC,CAACC,EAAE,GAAK;QACxBH,YAAY,CAACI,MAAM,CAAC,UAAU,EAAED,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,MAAME,OAAO,GAAG,MAAMC,IAAAA,OAAU,WAAA,EAAC,mCAAmC,EAAE;QACpEN,YAAY;QACZO,MAAM,EAAE,MAAM;QACdC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;YACnBC,IAAI,EAAE5B,iBAAiB,CAAC;gBAAEG,GAAG;gBAAEC,OAAO;gBAAEC,GAAG;aAAE,CAAC;SAC/C,CAAC;KACH,CAAC,AAAC;IAEH,IAAI,CAACiB,OAAO,CAACO,EAAE,EAAE;QACf,MAAM,IAAIC,OAAY,aAAA,CACpB,KAAK,EACL,CAAC,2EAA2E,EAAER,OAAO,CAACS,UAAU,CAAC,CAAC,CAAC,CACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAGM,eAAe7B,4BAA4B,CAAC,EACjDc,SAAS,CAAA,EACTX,GAAG,CAAA,EAIJ,EAAE;IACD,MAAMY,YAAY,GAAG,IAAIC,CAAAA,IAAe,EAAA,CAAA,gBAAA,EAAE,AAAC;IAC3CF,SAAS,CAACG,OAAO,CAAC,CAACC,EAAE,GAAK;QACxBH,YAAY,CAACI,MAAM,CAAC,UAAU,EAAED,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,MAAME,OAAO,GAAG,MAAMC,IAAAA,OAAU,WAAA,EAAC,mCAAmC,EAAE;QACpEN,YAAY;QACZO,MAAM,EAAE,MAAM;QACdC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;YACnBrB,OAAO,EAAE;gBAAED,GAAG;aAAE;SACjB,CAAC;KACH,CAAC,AAAC;IAEH,IAAI,CAACiB,OAAO,CAACO,EAAE,EAAE;QACf,MAAM,IAAIC,OAAY,aAAA,CACpB,KAAK,EACL,CAAC,0EAA0E,EAAER,OAAO,CAACS,UAAU,CAAC,CAAC,CAAC,CACnG,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/api/updateDevelopmentSession.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport os from 'os';\nimport { URLSearchParams } from 'url';\n\nimport { fetchAsync } from './rest/client';\nimport { CommandError } from '../utils/errors';\n\n/** Create the expected session info. */\nexport function createSessionInfo({\n exp,\n runtime,\n url,\n}: {\n exp: Pick<ExpoConfig, 'name' | 'description' | 'slug' | 'primaryColor'>;\n runtime: 'native' | 'web';\n url: string;\n}) {\n return {\n session: {\n description: `${exp.name} on ${os.hostname()}`,\n hostname: os.hostname(),\n platform: runtime,\n config: {\n // TODO: if icons are specified, upload a url for them too so people can distinguish\n description: exp.description,\n name: exp.name,\n slug: exp.slug,\n primaryColor: exp.primaryColor,\n },\n url,\n source: 'desktop',\n },\n };\n}\n\n/** Send a request to Expo API to keep the 'development session' alive for the provided devices. */\nexport async function updateDevelopmentSessionAsync({\n deviceIds,\n exp,\n runtime,\n url,\n}: {\n deviceIds: string[];\n exp: Pick<ExpoConfig, 'name' | 'description' | 'slug' | 'primaryColor'>;\n runtime: 'native' | 'web';\n url: string;\n}) {\n const searchParams = new URLSearchParams();\n deviceIds.forEach((id) => {\n searchParams.append('deviceId', id);\n });\n\n const results = await fetchAsync('development-sessions/notify-alive', {\n searchParams,\n method: 'POST',\n body: JSON.stringify({\n data: createSessionInfo({ exp, runtime, url }),\n }),\n });\n\n if (!results.ok) {\n throw new CommandError(\n 'API',\n `Unexpected response when updating the development session on Expo servers: ${results.statusText}.`\n );\n }\n}\n\n/** Send a request to Expo API to close the 'development session' for the provided devices. */\nexport async function closeDevelopmentSessionAsync({\n deviceIds,\n url,\n}: {\n deviceIds: string[];\n url: string;\n}) {\n const searchParams = new URLSearchParams();\n deviceIds.forEach((id) => {\n searchParams.append('deviceId', id);\n });\n\n const results = await fetchAsync('development-sessions/notify-close', {\n searchParams,\n method: 'POST',\n body: JSON.stringify({\n session: { url },\n }),\n });\n\n if (!results.ok) {\n throw new CommandError(\n 'API',\n `Unexpected response when closing the development session on Expo servers: ${results.statusText}.`\n );\n }\n}\n"],"names":["closeDevelopmentSessionAsync","createSessionInfo","updateDevelopmentSessionAsync","exp","runtime","url","session","description","name","os","hostname","platform","config","slug","primaryColor","source","deviceIds","searchParams","URLSearchParams","forEach","id","append","results","fetchAsync","method","body","JSON","stringify","data","ok","CommandError","statusText"],"mappings":";;;;;;;;;;;IAqEsBA,4BAA4B;eAA5BA;;IA7DNC,iBAAiB;eAAjBA;;IA4BMC,6BAA6B;eAA7BA;;;;gEAnCP;;;;;;;yBACiB;;;;;;wBAEL;wBACE;;;;;;AAGtB,SAASD,kBAAkB,EAChCE,GAAG,EACHC,OAAO,EACPC,GAAG,EAKJ;IACC,OAAO;QACLC,SAAS;YACPC,aAAa,GAAGJ,IAAIK,IAAI,CAAC,IAAI,EAAEC,aAAE,CAACC,QAAQ,IAAI;YAC9CA,UAAUD,aAAE,CAACC,QAAQ;YACrBC,UAAUP;YACVQ,QAAQ;gBACN,oFAAoF;gBACpFL,aAAaJ,IAAII,WAAW;gBAC5BC,MAAML,IAAIK,IAAI;gBACdK,MAAMV,IAAIU,IAAI;gBACdC,cAAcX,IAAIW,YAAY;YAChC;YACAT;YACAU,QAAQ;QACV;IACF;AACF;AAGO,eAAeb,8BAA8B,EAClDc,SAAS,EACTb,GAAG,EACHC,OAAO,EACPC,GAAG,EAMJ;IACC,MAAMY,eAAe,IAAIC,CAAAA,MAAc,iBAAC;IACxCF,UAAUG,OAAO,CAAC,CAACC;QACjBH,aAAaI,MAAM,CAAC,YAAYD;IAClC;IAEA,MAAME,UAAU,MAAMC,IAAAA,kBAAU,EAAC,qCAAqC;QACpEN;QACAO,QAAQ;QACRC,MAAMC,KAAKC,SAAS,CAAC;YACnBC,MAAM3B,kBAAkB;gBAAEE;gBAAKC;gBAASC;YAAI;QAC9C;IACF;IAEA,IAAI,CAACiB,QAAQO,EAAE,EAAE;QACf,MAAM,IAAIC,oBAAY,CACpB,OACA,CAAC,2EAA2E,EAAER,QAAQS,UAAU,CAAC,CAAC,CAAC;IAEvG;AACF;AAGO,eAAe/B,6BAA6B,EACjDgB,SAAS,EACTX,GAAG,EAIJ;IACC,MAAMY,eAAe,IAAIC,CAAAA,MAAc,iBAAC;IACxCF,UAAUG,OAAO,CAAC,CAACC;QACjBH,aAAaI,MAAM,CAAC,YAAYD;IAClC;IAEA,MAAME,UAAU,MAAMC,IAAAA,kBAAU,EAAC,qCAAqC;QACpEN;QACAO,QAAQ;QACRC,MAAMC,KAAKC,SAAS,CAAC;YACnBrB,SAAS;gBAAED;YAAI;QACjB;IACF;IAEA,IAAI,CAACiB,QAAQO,EAAE,EAAE;QACf,MAAM,IAAIC,oBAAY,CACpB,OACA,CAAC,0EAA0E,EAAER,QAAQS,UAAU,CAAC,CAAC,CAAC;IAEtG;AACF"}
@@ -9,15 +9,33 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- getSettingsDirectory: ()=>getSettingsDirectory,
13
- getSettingsFilePath: ()=>getSettingsFilePath,
14
- getSettings: ()=>getSettings,
15
- getAccessToken: ()=>getAccessToken,
16
- getSession: ()=>getSession,
17
- setSessionAsync: ()=>setSessionAsync,
18
- hasCredentials: ()=>hasCredentials,
19
- getAnonymousIdAsync: ()=>getAnonymousIdAsync,
20
- getAnonymousId: ()=>getAnonymousId
12
+ getAccessToken: function() {
13
+ return getAccessToken;
14
+ },
15
+ getAnonymousId: function() {
16
+ return getAnonymousId;
17
+ },
18
+ getAnonymousIdAsync: function() {
19
+ return getAnonymousIdAsync;
20
+ },
21
+ getSession: function() {
22
+ return getSession;
23
+ },
24
+ getSettings: function() {
25
+ return getSettings;
26
+ },
27
+ getSettingsDirectory: function() {
28
+ return getSettingsDirectory;
29
+ },
30
+ getSettingsFilePath: function() {
31
+ return getSettingsFilePath;
32
+ },
33
+ hasCredentials: function() {
34
+ return hasCredentials;
35
+ },
36
+ setSessionAsync: function() {
37
+ return setSessionAsync;
38
+ }
21
39
  });
22
40
  function _getUserState() {
23
41
  const data = require("@expo/config/build/getUserState");
@@ -26,21 +44,21 @@ function _getUserState() {
26
44
  };
27
45
  return data;
28
46
  }
29
- function _jsonFile() {
30
- const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/json-file"));
31
- _jsonFile = function() {
47
+ function _jsonfile() {
48
+ const data = /*#__PURE__*/ _interop_require_default(require("@expo/json-file"));
49
+ _jsonfile = function() {
32
50
  return data;
33
51
  };
34
52
  return data;
35
53
  }
36
54
  function _crypto() {
37
- const data = /*#__PURE__*/ _interopRequireDefault(require("crypto"));
55
+ const data = /*#__PURE__*/ _interop_require_default(require("crypto"));
38
56
  _crypto = function() {
39
57
  return data;
40
58
  };
41
59
  return data;
42
60
  }
43
- function _interopRequireDefault(obj) {
61
+ function _interop_require_default(obj) {
44
62
  return obj && obj.__esModule ? obj : {
45
63
  default: obj
46
64
  };
@@ -52,7 +70,7 @@ function getSettingsFilePath() {
52
70
  return (0, _getUserState().getUserStatePath)();
53
71
  }
54
72
  function getSettings() {
55
- return new (_jsonFile()).default(getSettingsFilePath(), {
73
+ return new (_jsonfile()).default(getSettingsFilePath(), {
56
74
  ensureDir: true,
57
75
  jsonParseErrorDefault: {},
58
76
  cantReadFileDefault: {}
@@ -62,10 +80,10 @@ function getAccessToken() {
62
80
  return process.env.EXPO_TOKEN ?? null;
63
81
  }
64
82
  function getSession() {
65
- return getSettings().get("auth", null);
83
+ return getSettings().get('auth', null);
66
84
  }
67
85
  async function setSessionAsync(sessionData) {
68
- await getSettings().setAsync("auth", sessionData, {
86
+ await getSettings().setAsync('auth', sessionData, {
69
87
  default: {},
70
88
  ensureDir: true
71
89
  });
@@ -75,19 +93,19 @@ function hasCredentials() {
75
93
  }
76
94
  async function getAnonymousIdAsync() {
77
95
  const settings = getSettings();
78
- let id = await settings.getAsync("uuid", null);
96
+ let id = await settings.getAsync('uuid', null);
79
97
  if (!id) {
80
98
  id = _crypto().default.randomUUID();
81
- await settings.setAsync("uuid", id);
99
+ await settings.setAsync('uuid', id);
82
100
  }
83
101
  return id;
84
102
  }
85
103
  function getAnonymousId() {
86
104
  const settings = getSettings();
87
- let id = settings.get("uuid", null);
105
+ let id = settings.get('uuid', null);
88
106
  if (!id) {
89
107
  id = _crypto().default.randomUUID();
90
- settings.set("uuid", id);
108
+ settings.set('uuid', id);
91
109
  }
92
110
  return id;
93
111
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/api/user/UserSettings.ts"],"sourcesContent":["import { getExpoHomeDirectory, getUserStatePath } from '@expo/config/build/getUserState';\nimport JsonFile from '@expo/json-file';\nimport crypto from 'crypto';\n\ntype SessionData = {\n sessionSecret: string;\n // These fields are potentially used by Expo CLI.\n userId: string;\n username: string;\n currentConnection: 'Username-Password-Authentication' | 'Browser-Flow-Authentication';\n};\n\nexport type UserSettingsData = {\n auth?: SessionData | null;\n ignoreBundledBinaries?: string[];\n PATH?: string;\n /** Last development code signing ID used for `npx expo run:ios`. */\n developmentCodeSigningId?: string;\n /** Unique user ID which is generated anonymously and can be cleared locally. */\n uuid?: string;\n};\n\n/** Return the user cache directory. */\nexport function getSettingsDirectory() {\n return getExpoHomeDirectory();\n}\n\n/** Return the file path of the settings file */\nexport function getSettingsFilePath(): string {\n return getUserStatePath();\n}\n\n/** Get a new JsonFile instance pointed towards the settings file */\nexport function getSettings(): JsonFile<UserSettingsData> {\n return new JsonFile<UserSettingsData>(getSettingsFilePath(), {\n ensureDir: true,\n jsonParseErrorDefault: {},\n cantReadFileDefault: {},\n });\n}\n\nexport function getAccessToken(): string | null {\n return process.env.EXPO_TOKEN ?? null;\n}\n\nexport function getSession() {\n return getSettings().get('auth', null);\n}\n\nexport async function setSessionAsync(sessionData?: SessionData) {\n await getSettings().setAsync('auth', sessionData, {\n default: {},\n ensureDir: true,\n });\n}\n\n/**\n * Check if there are credentials available, without fetching the user information.\n * This can be used as a faster check to see if users are authenticated.\n * Note, this isn't checking the validity of the credentials.\n */\nexport function hasCredentials() {\n return !!getAccessToken() || !!getSession();\n}\n\n/**\n * Get an anonymous and randomly generated identifier.\n * This is used to group telemetry event by unknown actor,\n * and cannot be used to identify a single user.\n */\nexport async function getAnonymousIdAsync(): Promise<string> {\n const settings = getSettings();\n let id = await settings.getAsync('uuid', null);\n\n if (!id) {\n id = crypto.randomUUID();\n await settings.setAsync('uuid', id);\n }\n\n return id;\n}\n\n/**\n * Get an anonymous and randomly generated identifier.\n * This is used to group telemetry event by unknown actor,\n * and cannot be used to identify a single user.\n */\nexport function getAnonymousId(): string {\n const settings = getSettings();\n let id = settings.get('uuid', null);\n\n if (!id) {\n id = crypto.randomUUID();\n settings.set('uuid', id);\n }\n\n return id;\n}\n"],"names":["getSettingsDirectory","getSettingsFilePath","getSettings","getAccessToken","getSession","setSessionAsync","hasCredentials","getAnonymousIdAsync","getAnonymousId","getExpoHomeDirectory","getUserStatePath","JsonFile","ensureDir","jsonParseErrorDefault","cantReadFileDefault","process","env","EXPO_TOKEN","get","sessionData","setAsync","default","settings","id","getAsync","crypto","randomUUID","set"],"mappings":"AAAA;;;;;;;;;;;IAuBgBA,oBAAoB,MAApBA,oBAAoB;IAKpBC,mBAAmB,MAAnBA,mBAAmB;IAKnBC,WAAW,MAAXA,WAAW;IAQXC,cAAc,MAAdA,cAAc;IAIdC,UAAU,MAAVA,UAAU;IAIJC,eAAe,MAAfA,eAAe;IAYrBC,cAAc,MAAdA,cAAc;IASRC,mBAAmB,MAAnBA,mBAAmB;IAiBzBC,cAAc,MAAdA,cAAc;;;yBAvFyB,iCAAiC;;;;;;;8DACnE,iBAAiB;;;;;;;8DACnB,QAAQ;;;;;;;;;;;AAqBpB,SAASR,oBAAoB,GAAG;IACrC,OAAOS,IAAAA,aAAoB,EAAA,qBAAA,GAAE,CAAC;AAChC,CAAC;AAGM,SAASR,mBAAmB,GAAW;IAC5C,OAAOS,IAAAA,aAAgB,EAAA,iBAAA,GAAE,CAAC;AAC5B,CAAC;AAGM,SAASR,WAAW,GAA+B;IACxD,OAAO,IAAIS,CAAAA,SAAQ,EAAA,CAAA,QAAA,CAAmBV,mBAAmB,EAAE,EAAE;QAC3DW,SAAS,EAAE,IAAI;QACfC,qBAAqB,EAAE,EAAE;QACzBC,mBAAmB,EAAE,EAAE;KACxB,CAAC,CAAC;AACL,CAAC;AAEM,SAASX,cAAc,GAAkB;IAC9C,OAAOY,OAAO,CAACC,GAAG,CAACC,UAAU,IAAI,IAAI,CAAC;AACxC,CAAC;AAEM,SAASb,UAAU,GAAG;IAC3B,OAAOF,WAAW,EAAE,CAACgB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAEM,eAAeb,eAAe,CAACc,WAAyB,EAAE;IAC/D,MAAMjB,WAAW,EAAE,CAACkB,QAAQ,CAAC,MAAM,EAAED,WAAW,EAAE;QAChDE,OAAO,EAAE,EAAE;QACXT,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC;AAOM,SAASN,cAAc,GAAG;IAC/B,OAAO,CAAC,CAACH,cAAc,EAAE,IAAI,CAAC,CAACC,UAAU,EAAE,CAAC;AAC9C,CAAC;AAOM,eAAeG,mBAAmB,GAAoB;IAC3D,MAAMe,QAAQ,GAAGpB,WAAW,EAAE,AAAC;IAC/B,IAAIqB,EAAE,GAAG,MAAMD,QAAQ,CAACE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,AAAC;IAE/C,IAAI,CAACD,EAAE,EAAE;QACPA,EAAE,GAAGE,OAAM,EAAA,QAAA,CAACC,UAAU,EAAE,CAAC;QACzB,MAAMJ,QAAQ,CAACF,QAAQ,CAAC,MAAM,EAAEG,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,OAAOA,EAAE,CAAC;AACZ,CAAC;AAOM,SAASf,cAAc,GAAW;IACvC,MAAMc,QAAQ,GAAGpB,WAAW,EAAE,AAAC;IAC/B,IAAIqB,EAAE,GAAGD,QAAQ,CAACJ,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,AAAC;IAEpC,IAAI,CAACK,EAAE,EAAE;QACPA,EAAE,GAAGE,OAAM,EAAA,QAAA,CAACC,UAAU,EAAE,CAAC;QACzBJ,QAAQ,CAACK,GAAG,CAAC,MAAM,EAAEJ,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,OAAOA,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"sources":["../../../../src/api/user/UserSettings.ts"],"sourcesContent":["import { getExpoHomeDirectory, getUserStatePath } from '@expo/config/build/getUserState';\nimport JsonFile from '@expo/json-file';\nimport crypto from 'crypto';\n\ntype SessionData = {\n sessionSecret: string;\n // These fields are potentially used by Expo CLI.\n userId: string;\n username: string;\n currentConnection: 'Username-Password-Authentication' | 'Browser-Flow-Authentication';\n};\n\nexport type UserSettingsData = {\n auth?: SessionData | null;\n ignoreBundledBinaries?: string[];\n PATH?: string;\n /** Last development code signing ID used for `npx expo run:ios`. */\n developmentCodeSigningId?: string;\n /** Unique user ID which is generated anonymously and can be cleared locally. */\n uuid?: string;\n};\n\n/** Return the user cache directory. */\nexport function getSettingsDirectory() {\n return getExpoHomeDirectory();\n}\n\n/** Return the file path of the settings file */\nexport function getSettingsFilePath(): string {\n return getUserStatePath();\n}\n\n/** Get a new JsonFile instance pointed towards the settings file */\nexport function getSettings(): JsonFile<UserSettingsData> {\n return new JsonFile<UserSettingsData>(getSettingsFilePath(), {\n ensureDir: true,\n jsonParseErrorDefault: {},\n cantReadFileDefault: {},\n });\n}\n\nexport function getAccessToken(): string | null {\n return process.env.EXPO_TOKEN ?? null;\n}\n\nexport function getSession() {\n return getSettings().get('auth', null);\n}\n\nexport async function setSessionAsync(sessionData?: SessionData) {\n await getSettings().setAsync('auth', sessionData, {\n default: {},\n ensureDir: true,\n });\n}\n\n/**\n * Check if there are credentials available, without fetching the user information.\n * This can be used as a faster check to see if users are authenticated.\n * Note, this isn't checking the validity of the credentials.\n */\nexport function hasCredentials() {\n return !!getAccessToken() || !!getSession();\n}\n\n/**\n * Get an anonymous and randomly generated identifier.\n * This is used to group telemetry event by unknown actor,\n * and cannot be used to identify a single user.\n */\nexport async function getAnonymousIdAsync(): Promise<string> {\n const settings = getSettings();\n let id = await settings.getAsync('uuid', null);\n\n if (!id) {\n id = crypto.randomUUID();\n await settings.setAsync('uuid', id);\n }\n\n return id;\n}\n\n/**\n * Get an anonymous and randomly generated identifier.\n * This is used to group telemetry event by unknown actor,\n * and cannot be used to identify a single user.\n */\nexport function getAnonymousId(): string {\n const settings = getSettings();\n let id = settings.get('uuid', null);\n\n if (!id) {\n id = crypto.randomUUID();\n settings.set('uuid', id);\n }\n\n return id;\n}\n"],"names":["getAccessToken","getAnonymousId","getAnonymousIdAsync","getSession","getSettings","getSettingsDirectory","getSettingsFilePath","hasCredentials","setSessionAsync","getExpoHomeDirectory","getUserStatePath","JsonFile","ensureDir","jsonParseErrorDefault","cantReadFileDefault","process","env","EXPO_TOKEN","get","sessionData","setAsync","default","settings","id","getAsync","crypto","randomUUID","set"],"mappings":";;;;;;;;;;;IAyCgBA,cAAc;eAAdA;;IA8CAC,cAAc;eAAdA;;IAjBMC,mBAAmB;eAAnBA;;IAzBNC,UAAU;eAAVA;;IAZAC,WAAW;eAAXA;;IAVAC,oBAAoB;eAApBA;;IAKAC,mBAAmB;eAAnBA;;IAiCAC,cAAc;eAAdA;;IAZMC,eAAe;eAAfA;;;;yBAjDiC;;;;;;;gEAClC;;;;;;;gEACF;;;;;;;;;;;AAqBZ,SAASH;IACd,OAAOI,IAAAA,oCAAoB;AAC7B;AAGO,SAASH;IACd,OAAOI,IAAAA,gCAAgB;AACzB;AAGO,SAASN;IACd,OAAO,IAAIO,CAAAA,WAAO,SAAC,CAAmBL,uBAAuB;QAC3DM,WAAW;QACXC,uBAAuB,CAAC;QACxBC,qBAAqB,CAAC;IACxB;AACF;AAEO,SAASd;IACd,OAAOe,QAAQC,GAAG,CAACC,UAAU,IAAI;AACnC;AAEO,SAASd;IACd,OAAOC,cAAcc,GAAG,CAAC,QAAQ;AACnC;AAEO,eAAeV,gBAAgBW,WAAyB;IAC7D,MAAMf,cAAcgB,QAAQ,CAAC,QAAQD,aAAa;QAChDE,SAAS,CAAC;QACVT,WAAW;IACb;AACF;AAOO,SAASL;IACd,OAAO,CAAC,CAACP,oBAAoB,CAAC,CAACG;AACjC;AAOO,eAAeD;IACpB,MAAMoB,WAAWlB;IACjB,IAAImB,KAAK,MAAMD,SAASE,QAAQ,CAAC,QAAQ;IAEzC,IAAI,CAACD,IAAI;QACPA,KAAKE,iBAAM,CAACC,UAAU;QACtB,MAAMJ,SAASF,QAAQ,CAAC,QAAQG;IAClC;IAEA,OAAOA;AACT;AAOO,SAAStB;IACd,MAAMqB,WAAWlB;IACjB,IAAImB,KAAKD,SAASJ,GAAG,CAAC,QAAQ;IAE9B,IAAI,CAACK,IAAI;QACPA,KAAKE,iBAAM,CAACC,UAAU;QACtBJ,SAASK,GAAG,CAAC,QAAQJ;IACvB;IAEA,OAAOA;AACT"}
@@ -9,18 +9,22 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- showLoginPromptAsync: ()=>showLoginPromptAsync,
13
- ensureLoggedInAsync: ()=>ensureLoggedInAsync
12
+ ensureLoggedInAsync: function() {
13
+ return ensureLoggedInAsync;
14
+ },
15
+ showLoginPromptAsync: function() {
16
+ return showLoginPromptAsync;
17
+ }
14
18
  });
15
19
  function _assert() {
16
- const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
20
+ const data = /*#__PURE__*/ _interop_require_default(require("assert"));
17
21
  _assert = function() {
18
22
  return data;
19
23
  };
20
24
  return data;
21
25
  }
22
26
  function _chalk() {
23
- const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
27
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
24
28
  _chalk = function() {
25
29
  return data;
26
30
  };
@@ -28,13 +32,13 @@ function _chalk() {
28
32
  }
29
33
  const _otp = require("./otp");
30
34
  const _user = require("./user");
31
- const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../log"));
35
+ const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../log"));
32
36
  const _env = require("../../utils/env");
33
37
  const _errors = require("../../utils/errors");
34
38
  const _link = require("../../utils/link");
35
- const _prompts = /*#__PURE__*/ _interopRequireDefault(require("../../utils/prompts"));
39
+ const _prompts = /*#__PURE__*/ _interop_require_default(require("../../utils/prompts"));
36
40
  const _client = require("../rest/client");
37
- function _interopRequireDefault(obj) {
41
+ function _interop_require_default(obj) {
38
42
  return obj && obj.__esModule ? obj : {
39
43
  default: obj
40
44
  };
@@ -47,7 +51,7 @@ function _getRequireWildcardCache(nodeInterop) {
47
51
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
48
52
  })(nodeInterop);
49
53
  }
50
- function _interopRequireWildcard(obj, nodeInterop) {
54
+ function _interop_require_wildcard(obj, nodeInterop) {
51
55
  if (!nodeInterop && obj && obj.__esModule) {
52
56
  return obj;
53
57
  }
@@ -60,7 +64,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
60
64
  if (cache && cache.has(obj)) {
61
65
  return cache.get(obj);
62
66
  }
63
- var newObj = {};
67
+ var newObj = {
68
+ __proto__: null
69
+ };
64
70
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
65
71
  for(var key in obj){
66
72
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -78,9 +84,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
78
84
  }
79
85
  return newObj;
80
86
  }
81
- async function showLoginPromptAsync({ printNewLine =false , otp , ...options } = {}) {
87
+ async function showLoginPromptAsync({ printNewLine = false, otp, ...options } = {}) {
82
88
  if (_env.env.EXPO_OFFLINE) {
83
- throw new _errors.CommandError("OFFLINE", "Cannot authenticate in offline-mode");
89
+ throw new _errors.CommandError('OFFLINE', 'Cannot authenticate in offline-mode');
84
90
  }
85
91
  const hasCredentials = options.username && options.password;
86
92
  const sso = options.sso;
@@ -97,17 +103,17 @@ async function showLoginPromptAsync({ printNewLine =false , otp , ...options } =
97
103
  if (!hasCredentials) {
98
104
  const resolved = await (0, _prompts.default)([
99
105
  !options.username && {
100
- type: "text",
101
- name: "username",
102
- message: "Email or username"
106
+ type: 'text',
107
+ name: 'username',
108
+ message: 'Email or username'
103
109
  },
104
110
  !options.password && {
105
- type: "password",
106
- name: "password",
107
- message: "Password"
108
- },
111
+ type: 'password',
112
+ name: 'password',
113
+ message: 'Password'
114
+ }
109
115
  ].filter(Boolean), {
110
- nonInteractiveHelp: `Use the EXPO_TOKEN environment variable to authenticate in CI (${(0, _link.learnMore)("https://docs.expo.dev/accounts/programmatic-access/")})`
116
+ nonInteractiveHelp: `Use the EXPO_TOKEN environment variable to authenticate in CI (${(0, _link.learnMore)('https://docs.expo.dev/accounts/programmatic-access/')})`
111
117
  });
112
118
  username ??= resolved.username;
113
119
  password ??= resolved.password;
@@ -121,7 +127,7 @@ async function showLoginPromptAsync({ printNewLine =false , otp , ...options } =
121
127
  otp
122
128
  });
123
129
  } catch (e) {
124
- if (e instanceof _client.ApiV2Error && e.expoApiV2ErrorCode === "ONE_TIME_PASSWORD_REQUIRED") {
130
+ if (e instanceof _client.ApiV2Error && e.expoApiV2ErrorCode === 'ONE_TIME_PASSWORD_REQUIRED') {
125
131
  await (0, _otp.retryUsernamePasswordAuthWithOTPAsync)(username, password, e.expoApiV2ErrorMetadata);
126
132
  } else {
127
133
  throw e;
@@ -137,7 +143,7 @@ async function ensureLoggedInAsync() {
137
143
  });
138
144
  user = await (0, _user.getUserAsync)();
139
145
  }
140
- (0, _assert().default)(user, "User should be logged in");
146
+ (0, _assert().default)(user, 'User should be logged in');
141
147
  return user;
142
148
  }
143
149
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/api/user/actions.ts"],"sourcesContent":["import assert from 'assert';\nimport chalk from 'chalk';\n\nimport { retryUsernamePasswordAuthWithOTPAsync } from './otp';\nimport { Actor, getUserAsync, loginAsync, ssoLoginAsync } from './user';\nimport * as Log from '../../log';\nimport { env } from '../../utils/env';\nimport { CommandError } from '../../utils/errors';\nimport { learnMore } from '../../utils/link';\nimport promptAsync, { Question } from '../../utils/prompts';\nimport { ApiV2Error } from '../rest/client';\n\n/** Show login prompt while prompting for missing credentials. */\nexport async function showLoginPromptAsync({\n printNewLine = false,\n otp,\n ...options\n}: {\n printNewLine?: boolean;\n username?: string;\n password?: string;\n otp?: string;\n sso?: boolean | undefined;\n} = {}): Promise<void> {\n if (env.EXPO_OFFLINE) {\n throw new CommandError('OFFLINE', 'Cannot authenticate in offline-mode');\n }\n const hasCredentials = options.username && options.password;\n const sso = options.sso;\n\n if (printNewLine) {\n Log.log();\n }\n\n if (sso) {\n await ssoLoginAsync();\n return;\n }\n\n Log.log(\n hasCredentials\n ? `Logging in to EAS with email or username (exit and run 'npx expo login --help' for other login options)`\n : `Log in to EAS with email or username (exit and run 'npx expo login --help' for other login options)`\n );\n\n let username = options.username;\n let password = options.password;\n\n if (!hasCredentials) {\n const resolved = await promptAsync(\n [\n !options.username && {\n type: 'text',\n name: 'username',\n message: 'Email or username',\n },\n !options.password && {\n type: 'password',\n name: 'password',\n message: 'Password',\n },\n ].filter(Boolean) as Question<string>[],\n {\n nonInteractiveHelp: `Use the EXPO_TOKEN environment variable to authenticate in CI (${learnMore(\n 'https://docs.expo.dev/accounts/programmatic-access/'\n )})`,\n }\n );\n username ??= resolved.username;\n password ??= resolved.password;\n }\n // This is just for the types.\n assert(username && password);\n\n try {\n await loginAsync({\n username,\n password,\n otp,\n });\n } catch (e) {\n if (e instanceof ApiV2Error && e.expoApiV2ErrorCode === 'ONE_TIME_PASSWORD_REQUIRED') {\n await retryUsernamePasswordAuthWithOTPAsync(\n username,\n password,\n e.expoApiV2ErrorMetadata as any\n );\n } else {\n throw e;\n }\n }\n}\n\n/** Ensure the user is logged in, if not, prompt to login. */\nexport async function ensureLoggedInAsync(): Promise<Actor> {\n let user = await getUserAsync().catch(() => null);\n\n if (!user) {\n Log.warn(chalk.yellow`An Expo user account is required to proceed.`);\n await showLoginPromptAsync({ printNewLine: true });\n user = await getUserAsync();\n }\n\n assert(user, 'User should be logged in');\n return user;\n}\n"],"names":["showLoginPromptAsync","ensureLoggedInAsync","printNewLine","otp","options","env","EXPO_OFFLINE","CommandError","hasCredentials","username","password","sso","Log","log","ssoLoginAsync","resolved","promptAsync","type","name","message","filter","Boolean","nonInteractiveHelp","learnMore","assert","loginAsync","e","ApiV2Error","expoApiV2ErrorCode","retryUsernamePasswordAuthWithOTPAsync","expoApiV2ErrorMetadata","user","getUserAsync","catch","warn","chalk","yellow"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/api/user/actions.ts"],"sourcesContent":["import assert from 'assert';\nimport chalk from 'chalk';\n\nimport { retryUsernamePasswordAuthWithOTPAsync } from './otp';\nimport { Actor, getUserAsync, loginAsync, ssoLoginAsync } from './user';\nimport * as Log from '../../log';\nimport { env } from '../../utils/env';\nimport { CommandError } from '../../utils/errors';\nimport { learnMore } from '../../utils/link';\nimport promptAsync, { Question } from '../../utils/prompts';\nimport { ApiV2Error } from '../rest/client';\n\n/** Show login prompt while prompting for missing credentials. */\nexport async function showLoginPromptAsync({\n printNewLine = false,\n otp,\n ...options\n}: {\n printNewLine?: boolean;\n username?: string;\n password?: string;\n otp?: string;\n sso?: boolean | undefined;\n} = {}): Promise<void> {\n if (env.EXPO_OFFLINE) {\n throw new CommandError('OFFLINE', 'Cannot authenticate in offline-mode');\n }\n const hasCredentials = options.username && options.password;\n const sso = options.sso;\n\n if (printNewLine) {\n Log.log();\n }\n\n if (sso) {\n await ssoLoginAsync();\n return;\n }\n\n Log.log(\n hasCredentials\n ? `Logging in to EAS with email or username (exit and run 'npx expo login --help' for other login options)`\n : `Log in to EAS with email or username (exit and run 'npx expo login --help' for other login options)`\n );\n\n let username = options.username;\n let password = options.password;\n\n if (!hasCredentials) {\n const resolved = await promptAsync(\n [\n !options.username && {\n type: 'text',\n name: 'username',\n message: 'Email or username',\n },\n !options.password && {\n type: 'password',\n name: 'password',\n message: 'Password',\n },\n ].filter(Boolean) as Question<string>[],\n {\n nonInteractiveHelp: `Use the EXPO_TOKEN environment variable to authenticate in CI (${learnMore(\n 'https://docs.expo.dev/accounts/programmatic-access/'\n )})`,\n }\n );\n username ??= resolved.username;\n password ??= resolved.password;\n }\n // This is just for the types.\n assert(username && password);\n\n try {\n await loginAsync({\n username,\n password,\n otp,\n });\n } catch (e) {\n if (e instanceof ApiV2Error && e.expoApiV2ErrorCode === 'ONE_TIME_PASSWORD_REQUIRED') {\n await retryUsernamePasswordAuthWithOTPAsync(\n username,\n password,\n e.expoApiV2ErrorMetadata as any\n );\n } else {\n throw e;\n }\n }\n}\n\n/** Ensure the user is logged in, if not, prompt to login. */\nexport async function ensureLoggedInAsync(): Promise<Actor> {\n let user = await getUserAsync().catch(() => null);\n\n if (!user) {\n Log.warn(chalk.yellow`An Expo user account is required to proceed.`);\n await showLoginPromptAsync({ printNewLine: true });\n user = await getUserAsync();\n }\n\n assert(user, 'User should be logged in');\n return user;\n}\n"],"names":["ensureLoggedInAsync","showLoginPromptAsync","printNewLine","otp","options","env","EXPO_OFFLINE","CommandError","hasCredentials","username","password","sso","Log","log","ssoLoginAsync","resolved","promptAsync","type","name","message","filter","Boolean","nonInteractiveHelp","learnMore","assert","loginAsync","e","ApiV2Error","expoApiV2ErrorCode","retryUsernamePasswordAuthWithOTPAsync","expoApiV2ErrorMetadata","user","getUserAsync","catch","warn","chalk","yellow"],"mappings":";;;;;;;;;;;IA8FsBA,mBAAmB;eAAnBA;;IAjFAC,oBAAoB;eAApBA;;;;gEAbH;;;;;;;gEACD;;;;;;qBAEoC;sBACS;6DAC1C;qBACD;wBACS;sBACH;gEACY;wBACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGpB,eAAeA,qBAAqB,EACzCC,eAAe,KAAK,EACpBC,GAAG,EACH,GAAGC,SAOJ,GAAG,CAAC,CAAC;IACJ,IAAIC,QAAG,CAACC,YAAY,EAAE;QACpB,MAAM,IAAIC,oBAAY,CAAC,WAAW;IACpC;IACA,MAAMC,iBAAiBJ,QAAQK,QAAQ,IAAIL,QAAQM,QAAQ;IAC3D,MAAMC,MAAMP,QAAQO,GAAG;IAEvB,IAAIT,cAAc;QAChBU,KAAIC,GAAG;IACT;IAEA,IAAIF,KAAK;QACP,MAAMG,IAAAA,mBAAa;QACnB;IACF;IAEAF,KAAIC,GAAG,CACLL,iBACI,CAAC,uGAAuG,CAAC,GACzG,CAAC,mGAAmG,CAAC;IAG3G,IAAIC,WAAWL,QAAQK,QAAQ;IAC/B,IAAIC,WAAWN,QAAQM,QAAQ;IAE/B,IAAI,CAACF,gBAAgB;QACnB,MAAMO,WAAW,MAAMC,IAAAA,gBAAW,EAChC;YACE,CAACZ,QAAQK,QAAQ,IAAI;gBACnBQ,MAAM;gBACNC,MAAM;gBACNC,SAAS;YACX;YACA,CAACf,QAAQM,QAAQ,IAAI;gBACnBO,MAAM;gBACNC,MAAM;gBACNC,SAAS;YACX;SACD,CAACC,MAAM,CAACC,UACT;YACEC,oBAAoB,CAAC,+DAA+D,EAAEC,IAAAA,eAAS,EAC7F,uDACA,CAAC,CAAC;QACN;QAEFd,aAAaM,SAASN,QAAQ;QAC9BC,aAAaK,SAASL,QAAQ;IAChC;IACA,8BAA8B;IAC9Bc,IAAAA,iBAAM,EAACf,YAAYC;IAEnB,IAAI;QACF,MAAMe,IAAAA,gBAAU,EAAC;YACfhB;YACAC;YACAP;QACF;IACF,EAAE,OAAOuB,GAAG;QACV,IAAIA,aAAaC,kBAAU,IAAID,EAAEE,kBAAkB,KAAK,8BAA8B;YACpF,MAAMC,IAAAA,0CAAqC,EACzCpB,UACAC,UACAgB,EAAEI,sBAAsB;QAE5B,OAAO;YACL,MAAMJ;QACR;IACF;AACF;AAGO,eAAe1B;IACpB,IAAI+B,OAAO,MAAMC,IAAAA,kBAAY,IAAGC,KAAK,CAAC,IAAM;IAE5C,IAAI,CAACF,MAAM;QACTnB,KAAIsB,IAAI,CAACC,gBAAK,CAACC,MAAM,CAAC,4CAA4C,CAAC;QACnE,MAAMnC,qBAAqB;YAAEC,cAAc;QAAK;QAChD6B,OAAO,MAAMC,IAAAA,kBAAY;IAC3B;IAEAR,IAAAA,iBAAM,EAACO,MAAM;IACb,OAAOA;AACT"}
@@ -4,38 +4,40 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "getSessionUsingBrowserAuthFlowAsync", {
6
6
  enumerable: true,
7
- get: ()=>getSessionUsingBrowserAuthFlowAsync
7
+ get: function() {
8
+ return getSessionUsingBrowserAuthFlowAsync;
9
+ }
8
10
  });
9
11
  function _assert() {
10
- const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
12
+ const data = /*#__PURE__*/ _interop_require_default(require("assert"));
11
13
  _assert = function() {
12
14
  return data;
13
15
  };
14
16
  return data;
15
17
  }
16
- function _betterOpn() {
17
- const data = /*#__PURE__*/ _interopRequireDefault(require("better-opn"));
18
- _betterOpn = function() {
18
+ function _betteropn() {
19
+ const data = /*#__PURE__*/ _interop_require_default(require("better-opn"));
20
+ _betteropn = function() {
19
21
  return data;
20
22
  };
21
23
  return data;
22
24
  }
23
25
  function _http() {
24
- const data = /*#__PURE__*/ _interopRequireDefault(require("http"));
26
+ const data = /*#__PURE__*/ _interop_require_default(require("http"));
25
27
  _http = function() {
26
28
  return data;
27
29
  };
28
30
  return data;
29
31
  }
30
32
  function _querystring() {
31
- const data = /*#__PURE__*/ _interopRequireDefault(require("querystring"));
33
+ const data = /*#__PURE__*/ _interop_require_default(require("querystring"));
32
34
  _querystring = function() {
33
35
  return data;
34
36
  };
35
37
  return data;
36
38
  }
37
- const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../log"));
38
- function _interopRequireDefault(obj) {
39
+ const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../log"));
40
+ function _interop_require_default(obj) {
39
41
  return obj && obj.__esModule ? obj : {
40
42
  default: obj
41
43
  };
@@ -48,7 +50,7 @@ function _getRequireWildcardCache(nodeInterop) {
48
50
  return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
49
51
  })(nodeInterop);
50
52
  }
51
- function _interopRequireWildcard(obj, nodeInterop) {
53
+ function _interop_require_wildcard(obj, nodeInterop) {
52
54
  if (!nodeInterop && obj && obj.__esModule) {
53
55
  return obj;
54
56
  }
@@ -61,7 +63,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
61
63
  if (cache && cache.has(obj)) {
62
64
  return cache.get(obj);
63
65
  }
64
- var newObj = {};
66
+ var newObj = {
67
+ __proto__: null
68
+ };
65
69
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
66
70
  for(var key in obj){
67
71
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -108,10 +112,10 @@ const successBody = `
108
112
  SSO login complete. You may now close this tab and return to the command prompt.
109
113
  </body>
110
114
  </html>`;
111
- async function getSessionUsingBrowserAuthFlowAsync({ expoWebsiteUrl }) {
112
- const scheme = "http";
113
- const hostname = "localhost";
114
- const path = "/auth/callback";
115
+ async function getSessionUsingBrowserAuthFlowAsync({ expoWebsiteUrl }) {
116
+ const scheme = 'http';
117
+ const hostname = 'localhost';
118
+ const path = '/auth/callback';
115
119
  const buildExpoSsoLoginUrl = (port)=>{
116
120
  const data = {
117
121
  app_redirect_uri: `${scheme}://${hostname}:${port}${path}`
@@ -125,18 +129,18 @@ async function getSessionUsingBrowserAuthFlowAsync({ expoWebsiteUrl }) {
125
129
  const connections = new Set();
126
130
  const server = _http().default.createServer((request, response)=>{
127
131
  try {
128
- var ref;
129
- if (!(request.method === "GET" && ((ref = request.url) == null ? void 0 : ref.includes(path)))) {
130
- throw new Error("Unexpected SSO login response.");
132
+ var _request_url;
133
+ if (!(request.method === 'GET' && ((_request_url = request.url) == null ? void 0 : _request_url.includes(path)))) {
134
+ throw new Error('Unexpected SSO login response.');
131
135
  }
132
136
  const url = new URL(request.url, `http:${request.headers.host}`);
133
- const sessionSecret = url.searchParams.get("session_secret");
137
+ const sessionSecret = url.searchParams.get('session_secret');
134
138
  if (!sessionSecret) {
135
- throw new Error("Request missing session_secret search parameter.");
139
+ throw new Error('Request missing session_secret search parameter.');
136
140
  }
137
141
  resolve(sessionSecret);
138
142
  response.writeHead(200, {
139
- "Content-Type": "text/html"
143
+ 'Content-Type': 'text/html'
140
144
  });
141
145
  response.write(successBody);
142
146
  response.end();
@@ -151,16 +155,16 @@ async function getSessionUsingBrowserAuthFlowAsync({ expoWebsiteUrl }) {
151
155
  }
152
156
  });
153
157
  server.listen(0, hostname, ()=>{
154
- _log.log("Waiting for browser login...");
158
+ _log.log('Waiting for browser login...');
155
159
  const address = server.address();
156
- (0, _assert().default)(address !== null && typeof address === "object", "Server address and port should be set after listening has begun");
160
+ (0, _assert().default)(address !== null && typeof address === 'object', 'Server address and port should be set after listening has begun');
157
161
  const port = address.port;
158
162
  const authorizeUrl = buildExpoSsoLoginUrl(port);
159
- (0, _betterOpn().default)(authorizeUrl);
163
+ (0, _betteropn().default)(authorizeUrl);
160
164
  });
161
- server.on("connection", (connection)=>{
165
+ server.on('connection', (connection)=>{
162
166
  connections.add(connection);
163
- connection.on("close", ()=>{
167
+ connection.on('close', ()=>{
164
168
  connections.delete(connection);
165
169
  });
166
170
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/api/user/expoSsoLauncher.ts"],"sourcesContent":["import assert from 'assert';\nimport openBrowserAsync from 'better-opn';\nimport http from 'http';\nimport { Socket } from 'node:net';\nimport querystring from 'querystring';\n\nimport * as Log from '../../log';\n\nconst successBody = `\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <title>Expo SSO Login</title>\n <meta charset=\"utf-8\">\n <style type=\"text/css\">\n html {\n margin: 0;\n padding: 0\n }\n\n body {\n background-color: #fff;\n font-family: Tahoma,Verdana;\n font-size: 16px;\n color: #000;\n max-width: 100%;\n box-sizing: border-box;\n padding: .5rem;\n margin: 1em;\n overflow-wrap: break-word\n }\n </style>\n</head>\n<body>\n SSO login complete. You may now close this tab and return to the command prompt.\n</body>\n</html>`;\n\nexport async function getSessionUsingBrowserAuthFlowAsync({\n expoWebsiteUrl,\n}: {\n expoWebsiteUrl: string;\n}): Promise<string> {\n const scheme = 'http';\n const hostname = 'localhost';\n const path = '/auth/callback';\n\n const buildExpoSsoLoginUrl = (port: number): string => {\n const data = {\n app_redirect_uri: `${scheme}://${hostname}:${port}${path}`,\n };\n const params = querystring.stringify(data);\n return `${expoWebsiteUrl}/sso-login?${params}`;\n };\n\n // Start server and begin auth flow\n const executeAuthFlow = (): Promise<string> => {\n return new Promise<string>(async (resolve, reject) => {\n const connections = new Set<Socket>();\n\n const server = http.createServer(\n (request: http.IncomingMessage, response: http.ServerResponse) => {\n try {\n if (!(request.method === 'GET' && request.url?.includes(path))) {\n throw new Error('Unexpected SSO login response.');\n }\n const url = new URL(request.url, `http:${request.headers.host}`);\n const sessionSecret = url.searchParams.get('session_secret');\n\n if (!sessionSecret) {\n throw new Error('Request missing session_secret search parameter.');\n }\n resolve(sessionSecret);\n response.writeHead(200, { 'Content-Type': 'text/html' });\n response.write(successBody);\n response.end();\n } catch (error) {\n reject(error);\n } finally {\n server.close();\n // Ensure that the server shuts down\n for (const connection of connections) {\n connection.destroy();\n }\n }\n }\n );\n\n server.listen(0, hostname, () => {\n Log.log('Waiting for browser login...');\n\n const address = server.address();\n assert(\n address !== null && typeof address === 'object',\n 'Server address and port should be set after listening has begun'\n );\n const port = address.port;\n const authorizeUrl = buildExpoSsoLoginUrl(port);\n openBrowserAsync(authorizeUrl);\n });\n\n server.on('connection', (connection) => {\n connections.add(connection);\n\n connection.on('close', () => {\n connections.delete(connection);\n });\n });\n });\n };\n\n return await executeAuthFlow();\n}\n"],"names":["getSessionUsingBrowserAuthFlowAsync","successBody","expoWebsiteUrl","scheme","hostname","path","buildExpoSsoLoginUrl","port","data","app_redirect_uri","params","querystring","stringify","executeAuthFlow","Promise","resolve","reject","connections","Set","server","http","createServer","request","response","method","url","includes","Error","URL","headers","host","sessionSecret","searchParams","get","writeHead","write","end","error","close","connection","destroy","listen","Log","log","address","assert","authorizeUrl","openBrowserAsync","on","add","delete"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/api/user/expoSsoLauncher.ts"],"sourcesContent":["import assert from 'assert';\nimport openBrowserAsync from 'better-opn';\nimport http from 'http';\nimport { Socket } from 'node:net';\nimport querystring from 'querystring';\n\nimport * as Log from '../../log';\n\nconst successBody = `\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <title>Expo SSO Login</title>\n <meta charset=\"utf-8\">\n <style type=\"text/css\">\n html {\n margin: 0;\n padding: 0\n }\n\n body {\n background-color: #fff;\n font-family: Tahoma,Verdana;\n font-size: 16px;\n color: #000;\n max-width: 100%;\n box-sizing: border-box;\n padding: .5rem;\n margin: 1em;\n overflow-wrap: break-word\n }\n </style>\n</head>\n<body>\n SSO login complete. You may now close this tab and return to the command prompt.\n</body>\n</html>`;\n\nexport async function getSessionUsingBrowserAuthFlowAsync({\n expoWebsiteUrl,\n}: {\n expoWebsiteUrl: string;\n}): Promise<string> {\n const scheme = 'http';\n const hostname = 'localhost';\n const path = '/auth/callback';\n\n const buildExpoSsoLoginUrl = (port: number): string => {\n const data = {\n app_redirect_uri: `${scheme}://${hostname}:${port}${path}`,\n };\n const params = querystring.stringify(data);\n return `${expoWebsiteUrl}/sso-login?${params}`;\n };\n\n // Start server and begin auth flow\n const executeAuthFlow = (): Promise<string> => {\n return new Promise<string>(async (resolve, reject) => {\n const connections = new Set<Socket>();\n\n const server = http.createServer(\n (request: http.IncomingMessage, response: http.ServerResponse) => {\n try {\n if (!(request.method === 'GET' && request.url?.includes(path))) {\n throw new Error('Unexpected SSO login response.');\n }\n const url = new URL(request.url, `http:${request.headers.host}`);\n const sessionSecret = url.searchParams.get('session_secret');\n\n if (!sessionSecret) {\n throw new Error('Request missing session_secret search parameter.');\n }\n resolve(sessionSecret);\n response.writeHead(200, { 'Content-Type': 'text/html' });\n response.write(successBody);\n response.end();\n } catch (error) {\n reject(error);\n } finally {\n server.close();\n // Ensure that the server shuts down\n for (const connection of connections) {\n connection.destroy();\n }\n }\n }\n );\n\n server.listen(0, hostname, () => {\n Log.log('Waiting for browser login...');\n\n const address = server.address();\n assert(\n address !== null && typeof address === 'object',\n 'Server address and port should be set after listening has begun'\n );\n const port = address.port;\n const authorizeUrl = buildExpoSsoLoginUrl(port);\n openBrowserAsync(authorizeUrl);\n });\n\n server.on('connection', (connection) => {\n connections.add(connection);\n\n connection.on('close', () => {\n connections.delete(connection);\n });\n });\n });\n };\n\n return await executeAuthFlow();\n}\n"],"names":["getSessionUsingBrowserAuthFlowAsync","successBody","expoWebsiteUrl","scheme","hostname","path","buildExpoSsoLoginUrl","port","data","app_redirect_uri","params","querystring","stringify","executeAuthFlow","Promise","resolve","reject","connections","Set","server","http","createServer","request","response","method","url","includes","Error","URL","headers","host","sessionSecret","searchParams","get","writeHead","write","end","error","close","connection","destroy","listen","Log","log","address","assert","authorizeUrl","openBrowserAsync","on","add","delete"],"mappings":";;;;+BAsCsBA;;;eAAAA;;;;gEAtCH;;;;;;;gEACU;;;;;;;gEACZ;;;;;;;gEAEO;;;;;;6DAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAErB,MAAMC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4Bd,CAAC;AAED,eAAeD,oCAAoC,EACxDE,cAAc,EAGf;IACC,MAAMC,SAAS;IACf,MAAMC,WAAW;IACjB,MAAMC,OAAO;IAEb,MAAMC,uBAAuB,CAACC;QAC5B,MAAMC,OAAO;YACXC,kBAAkB,GAAGN,OAAO,GAAG,EAAEC,SAAS,CAAC,EAAEG,OAAOF,MAAM;QAC5D;QACA,MAAMK,SAASC,sBAAW,CAACC,SAAS,CAACJ;QACrC,OAAO,GAAGN,eAAe,WAAW,EAAEQ,QAAQ;IAChD;IAEA,mCAAmC;IACnC,MAAMG,kBAAkB;QACtB,OAAO,IAAIC,QAAgB,OAAOC,SAASC;YACzC,MAAMC,cAAc,IAAIC;YAExB,MAAMC,SAASC,eAAI,CAACC,YAAY,CAC9B,CAACC,SAA+BC;gBAC9B,IAAI;wBACgCD;oBAAlC,IAAI,CAAEA,CAAAA,QAAQE,MAAM,KAAK,WAASF,eAAAA,QAAQG,GAAG,qBAAXH,aAAaI,QAAQ,CAACrB,MAAI,GAAI;wBAC9D,MAAM,IAAIsB,MAAM;oBAClB;oBACA,MAAMF,MAAM,IAAIG,IAAIN,QAAQG,GAAG,EAAE,CAAC,KAAK,EAAEH,QAAQO,OAAO,CAACC,IAAI,EAAE;oBAC/D,MAAMC,gBAAgBN,IAAIO,YAAY,CAACC,GAAG,CAAC;oBAE3C,IAAI,CAACF,eAAe;wBAClB,MAAM,IAAIJ,MAAM;oBAClB;oBACAZ,QAAQgB;oBACRR,SAASW,SAAS,CAAC,KAAK;wBAAE,gBAAgB;oBAAY;oBACtDX,SAASY,KAAK,CAAClC;oBACfsB,SAASa,GAAG;gBACd,EAAE,OAAOC,OAAO;oBACdrB,OAAOqB;gBACT,SAAU;oBACRlB,OAAOmB,KAAK;oBACZ,oCAAoC;oBACpC,KAAK,MAAMC,cAActB,YAAa;wBACpCsB,WAAWC,OAAO;oBACpB;gBACF;YACF;YAGFrB,OAAOsB,MAAM,CAAC,GAAGrC,UAAU;gBACzBsC,KAAIC,GAAG,CAAC;gBAER,MAAMC,UAAUzB,OAAOyB,OAAO;gBAC9BC,IAAAA,iBAAM,EACJD,YAAY,QAAQ,OAAOA,YAAY,UACvC;gBAEF,MAAMrC,OAAOqC,QAAQrC,IAAI;gBACzB,MAAMuC,eAAexC,qBAAqBC;gBAC1CwC,IAAAA,oBAAgB,EAACD;YACnB;YAEA3B,OAAO6B,EAAE,CAAC,cAAc,CAACT;gBACvBtB,YAAYgC,GAAG,CAACV;gBAEhBA,WAAWS,EAAE,CAAC,SAAS;oBACrB/B,YAAYiC,MAAM,CAACX;gBACrB;YACF;QACF;IACF;IAEA,OAAO,MAAM1B;AACf"}