@expo/cli 0.17.10 → 0.18.1

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 (693) hide show
  1. package/build/bin/cli +98 -118
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/endpoint.js +11 -3
  4. package/build/src/api/endpoint.js.map +1 -1
  5. package/build/src/api/getExpoGoIntermediateCertificate.js +7 -4
  6. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  7. package/build/src/api/getExpoSchema.js +32 -12
  8. package/build/src/api/getExpoSchema.js.map +1 -1
  9. package/build/src/api/getNativeModuleVersions.js +7 -4
  10. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  11. package/build/src/api/getProjectDevelopmentCertificate.js +7 -4
  12. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  13. package/build/src/api/getVersions.js +7 -4
  14. package/build/src/api/getVersions.js.map +1 -1
  15. package/build/src/api/graphql/client.js +78 -40
  16. package/build/src/api/graphql/client.js.map +1 -1
  17. package/build/src/api/graphql/queries/AppQuery.js +22 -8
  18. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  19. package/build/src/api/graphql/queries/UserQuery.js +13 -5
  20. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  21. package/build/src/api/graphql/types/App.js +12 -4
  22. package/build/src/api/graphql/types/App.js.map +1 -1
  23. package/build/src/api/rest/cache/FileSystemCache.js +25 -11
  24. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  25. package/build/src/api/rest/cache/response.js +13 -4
  26. package/build/src/api/rest/cache/response.js.map +1 -1
  27. package/build/src/api/rest/cache/wrapFetchWithCache.js +51 -18
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  29. package/build/src/api/rest/client.js +55 -30
  30. package/build/src/api/rest/client.js.map +1 -1
  31. package/build/src/api/rest/wrapFetchWithBaseUrl.js +13 -5
  32. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithOffline.js +5 -2
  34. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithProgress.js +40 -19
  36. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProxy.js +13 -4
  38. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  39. package/build/src/api/settings.js +16 -5
  40. package/build/src/api/settings.js.map +1 -1
  41. package/build/src/api/updateDevelopmentSession.js +33 -13
  42. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  43. package/build/src/api/user/UserSettings.js +31 -11
  44. package/build/src/api/user/UserSettings.js.map +1 -1
  45. package/build/src/api/user/actions.js +78 -41
  46. package/build/src/api/user/actions.js.map +1 -1
  47. package/build/src/api/user/expoSsoLauncher.js +72 -27
  48. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  49. package/build/src/api/user/otp.js +82 -50
  50. package/build/src/api/user/otp.js.map +1 -1
  51. package/build/src/api/user/user.js +80 -48
  52. package/build/src/api/user/user.js.map +1 -1
  53. package/build/src/config/configAsync.js +82 -45
  54. package/build/src/config/configAsync.js.map +1 -1
  55. package/build/src/config/index.js +52 -30
  56. package/build/src/config/index.js.map +1 -1
  57. package/build/src/customize/customizeAsync.js +21 -12
  58. package/build/src/customize/customizeAsync.js.map +1 -1
  59. package/build/src/customize/generate.js +74 -47
  60. package/build/src/customize/generate.js.map +1 -1
  61. package/build/src/customize/index.js +16 -8
  62. package/build/src/customize/index.js.map +1 -1
  63. package/build/src/customize/resolveOptions.js +7 -4
  64. package/build/src/customize/resolveOptions.js.map +1 -1
  65. package/build/src/customize/templates.js +58 -37
  66. package/build/src/customize/templates.js.map +1 -1
  67. package/build/src/customize/typescript.js +50 -29
  68. package/build/src/customize/typescript.js.map +1 -1
  69. package/build/src/export/createMetadataJson.js +14 -7
  70. package/build/src/export/createMetadataJson.js.map +1 -1
  71. package/build/src/export/embed/exportEmbedAsync.js +103 -50
  72. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  73. package/build/src/export/embed/index.js +61 -37
  74. package/build/src/export/embed/index.js.map +1 -1
  75. package/build/src/export/embed/resolveOptions.js +14 -5
  76. package/build/src/export/embed/resolveOptions.js.map +1 -1
  77. package/build/src/export/embed/xcodeCompilerLogger.js +33 -9
  78. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  79. package/build/src/export/exportApp.js +110 -73
  80. package/build/src/export/exportApp.js.map +1 -1
  81. package/build/src/export/exportAssets.js +84 -47
  82. package/build/src/export/exportAssets.js.map +1 -1
  83. package/build/src/export/exportAsync.js +56 -27
  84. package/build/src/export/exportAsync.js.map +1 -1
  85. package/build/src/export/exportHermes.js +46 -26
  86. package/build/src/export/exportHermes.js.map +1 -1
  87. package/build/src/export/exportStaticAsync.js +109 -66
  88. package/build/src/export/exportStaticAsync.js.map +1 -1
  89. package/build/src/export/favicon.js +47 -15
  90. package/build/src/export/favicon.js.map +1 -1
  91. package/build/src/export/fork-bundleAsync.js +92 -44
  92. package/build/src/export/fork-bundleAsync.js.map +1 -1
  93. package/build/src/export/getPublicExpoManifest.js +16 -7
  94. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  95. package/build/src/export/getResolvedLocales.js +20 -5
  96. package/build/src/export/getResolvedLocales.js.map +1 -1
  97. package/build/src/export/html.js +12 -4
  98. package/build/src/export/html.js.map +1 -1
  99. package/build/src/export/index.js +55 -33
  100. package/build/src/export/index.js.map +1 -1
  101. package/build/src/export/metroAssetLocalPath.js +30 -8
  102. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  103. package/build/src/export/persistMetroAssets.js +59 -33
  104. package/build/src/export/persistMetroAssets.js.map +1 -1
  105. package/build/src/export/publicFolder.js +31 -11
  106. package/build/src/export/publicFolder.js.map +1 -1
  107. package/build/src/export/resolveOptions.js +26 -16
  108. package/build/src/export/resolveOptions.js.map +1 -1
  109. package/build/src/export/saveAssets.js +77 -49
  110. package/build/src/export/saveAssets.js.map +1 -1
  111. package/build/src/export/web/exportWebAsync.js +28 -13
  112. package/build/src/export/web/exportWebAsync.js.map +1 -1
  113. package/build/src/export/web/index.js +53 -31
  114. package/build/src/export/web/index.js.map +1 -1
  115. package/build/src/export/web/resolveOptions.js +4 -1
  116. package/build/src/export/web/resolveOptions.js.map +1 -1
  117. package/build/src/export/writeContents.js +12 -7
  118. package/build/src/export/writeContents.js.map +1 -1
  119. package/build/src/graphql/generated.js +141 -128
  120. package/build/src/graphql/generated.js.map +1 -1
  121. package/build/src/install/applyPlugins.js +50 -26
  122. package/build/src/install/applyPlugins.js.map +1 -1
  123. package/build/src/install/checkPackages.js +68 -36
  124. package/build/src/install/checkPackages.js.map +1 -1
  125. package/build/src/install/fixPackages.js +58 -35
  126. package/build/src/install/fixPackages.js.map +1 -1
  127. package/build/src/install/index.js +21 -13
  128. package/build/src/install/index.js.map +1 -1
  129. package/build/src/install/installAsync.js +107 -64
  130. package/build/src/install/installAsync.js.map +1 -1
  131. package/build/src/install/installExpoPackage.js +60 -27
  132. package/build/src/install/installExpoPackage.js.map +1 -1
  133. package/build/src/install/resolveOptions.js +8 -5
  134. package/build/src/install/resolveOptions.js.map +1 -1
  135. package/build/src/install/utils/autoAddConfigPlugins.js +29 -9
  136. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  137. package/build/src/lint/ESlintPrerequisite.js +174 -0
  138. package/build/src/lint/ESlintPrerequisite.js.map +1 -0
  139. package/build/src/lint/index.js +66 -0
  140. package/build/src/lint/index.js.map +1 -0
  141. package/build/src/lint/lintAsync.js +33 -0
  142. package/build/src/lint/lintAsync.js.map +1 -0
  143. package/build/src/log.js +27 -15
  144. package/build/src/log.js.map +1 -1
  145. package/build/src/login/index.js +43 -25
  146. package/build/src/login/index.js.map +1 -1
  147. package/build/src/logout/index.js +43 -25
  148. package/build/src/logout/index.js.map +1 -1
  149. package/build/src/prebuild/clearNativeFolder.js +97 -50
  150. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  151. package/build/src/prebuild/configureProjectAsync.js +64 -31
  152. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  153. package/build/src/prebuild/copyTemplateFiles.js +41 -17
  154. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  155. package/build/src/prebuild/ensureConfigAsync.js +74 -30
  156. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  157. package/build/src/prebuild/index.js +58 -38
  158. package/build/src/prebuild/index.js.map +1 -1
  159. package/build/src/prebuild/prebuildAsync.js +75 -52
  160. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  161. package/build/src/prebuild/renameTemplateAppName.js +124 -0
  162. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  163. package/build/src/prebuild/resolveOptions.js +85 -36
  164. package/build/src/prebuild/resolveOptions.js.map +1 -1
  165. package/build/src/prebuild/resolveTemplate.js +102 -46
  166. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  167. package/build/src/prebuild/updateFromTemplate.js +80 -41
  168. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  169. package/build/src/prebuild/updatePackageJson.js +111 -54
  170. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  171. package/build/src/prebuild/validateTemplatePlatforms.js +56 -23
  172. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  173. package/build/src/register/index.js +43 -25
  174. package/build/src/register/index.js.map +1 -1
  175. package/build/src/register/registerAsync.js +14 -11
  176. package/build/src/register/registerAsync.js.map +1 -1
  177. package/build/src/run/android/index.js +64 -32
  178. package/build/src/run/android/index.js.map +1 -1
  179. package/build/src/run/android/resolveDevice.js +9 -6
  180. package/build/src/run/android/resolveDevice.js.map +1 -1
  181. package/build/src/run/android/resolveGradlePropsAsync.js +56 -0
  182. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  183. package/build/src/run/android/resolveInstallApkName.js +28 -14
  184. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  185. package/build/src/run/android/resolveLaunchProps.js +16 -7
  186. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  187. package/build/src/run/android/resolveOptions.js +14 -9
  188. package/build/src/run/android/resolveOptions.js.map +1 -1
  189. package/build/src/run/android/runAndroidAsync.js +39 -27
  190. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  191. package/build/src/run/ensureNativeProject.js +24 -9
  192. package/build/src/run/ensureNativeProject.js.map +1 -1
  193. package/build/src/run/hints.js +23 -9
  194. package/build/src/run/hints.js.map +1 -1
  195. package/build/src/run/index.js +55 -35
  196. package/build/src/run/index.js.map +1 -1
  197. package/build/src/run/ios/XcodeBuild.js +126 -66
  198. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  199. package/build/src/run/ios/appleDevice/AppleDevice.js +52 -27
  200. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  201. package/build/src/run/ios/appleDevice/ClientManager.js +70 -31
  202. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  203. package/build/src/run/ios/appleDevice/client/AFCClient.js +94 -44
  204. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  205. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +63 -24
  206. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  207. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -6
  208. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  209. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +64 -25
  210. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  211. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +66 -28
  212. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  213. package/build/src/run/ios/appleDevice/client/ServiceClient.js +18 -4
  214. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  215. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +42 -15
  216. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  217. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +78 -34
  218. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  219. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +85 -66
  220. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  221. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +41 -15
  222. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  223. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +30 -11
  224. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  225. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +39 -14
  226. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  227. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +36 -11
  228. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  229. package/build/src/run/ios/codeSigning/Security.js +40 -21
  230. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  231. package/build/src/run/ios/codeSigning/configureCodeSigning.js +55 -28
  232. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  233. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +67 -36
  234. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  235. package/build/src/run/ios/codeSigning/settings.js +11 -3
  236. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  237. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +30 -10
  238. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  239. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +33 -15
  240. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  241. package/build/src/run/ios/index.js +63 -35
  242. package/build/src/run/ios/index.js.map +1 -1
  243. package/build/src/run/ios/launchApp.js +65 -32
  244. package/build/src/run/ios/launchApp.js.map +1 -1
  245. package/build/src/run/ios/options/promptDevice.js +24 -14
  246. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  247. package/build/src/run/ios/options/resolveDevice.js +64 -41
  248. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  249. package/build/src/run/ios/options/resolveNativeScheme.js +80 -39
  250. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  251. package/build/src/run/ios/options/resolveOptions.js +15 -12
  252. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  253. package/build/src/run/ios/options/resolveXcodeProject.js +13 -4
  254. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  255. package/build/src/run/ios/runIosAsync.js +71 -42
  256. package/build/src/run/ios/runIosAsync.js.map +1 -1
  257. package/build/src/run/resolveBundlerProps.js +8 -5
  258. package/build/src/run/resolveBundlerProps.js.map +1 -1
  259. package/build/src/run/startBundler.js +60 -27
  260. package/build/src/run/startBundler.js.map +1 -1
  261. package/build/src/start/detectDevClient.js +32 -0
  262. package/build/src/start/detectDevClient.js.map +1 -0
  263. package/build/src/start/doctor/Prerequisite.js +15 -7
  264. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  265. package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -4
  266. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  267. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +57 -24
  268. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  269. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +57 -24
  270. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  271. package/build/src/start/doctor/apple/XcodePrerequisite.js +132 -57
  272. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  273. package/build/src/start/doctor/apple/XcrunPrerequisite.js +34 -13
  274. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  275. package/build/src/start/doctor/dependencies/bundledNativeModules.js +69 -30
  276. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  277. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +120 -57
  278. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  279. package/build/src/start/doctor/dependencies/getMissingPackages.js +38 -12
  280. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  281. package/build/src/start/doctor/dependencies/getVersionedPackages.js +29 -15
  282. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  283. package/build/src/start/doctor/dependencies/resolvePackages.js +39 -15
  284. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  285. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +88 -55
  286. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  287. package/build/src/start/doctor/ngrok/ExternalModule.js +88 -39
  288. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  289. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -5
  290. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  291. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +75 -45
  292. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  293. package/build/src/start/doctor/typescript/updateTSConfig.js +81 -40
  294. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  295. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +70 -32
  296. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  297. package/build/src/start/index.js +62 -42
  298. package/build/src/start/index.js.map +1 -1
  299. package/build/src/start/interface/KeyPressHandler.js +43 -22
  300. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  301. package/build/src/start/interface/commandsTable.js +81 -41
  302. package/build/src/start/interface/commandsTable.js.map +1 -1
  303. package/build/src/start/interface/interactiveActions.js +91 -68
  304. package/build/src/start/interface/interactiveActions.js.map +1 -1
  305. package/build/src/start/interface/startInterface.js +84 -57
  306. package/build/src/start/interface/startInterface.js.map +1 -1
  307. package/build/src/start/platforms/AppIdResolver.js +16 -7
  308. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  309. package/build/src/start/platforms/DeviceManager.js +47 -20
  310. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  311. package/build/src/start/platforms/ExpoGoInstaller.js +81 -45
  312. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  313. package/build/src/start/platforms/PlatformManager.js +42 -20
  314. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  315. package/build/src/start/platforms/android/ADBServer.js +28 -13
  316. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  317. package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -10
  318. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  319. package/build/src/start/platforms/android/AndroidDeviceManager.js +86 -54
  320. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  321. package/build/src/start/platforms/android/AndroidPlatformManager.js +9 -6
  322. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  323. package/build/src/start/platforms/android/AndroidSdk.js +38 -11
  324. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  325. package/build/src/start/platforms/android/activateWindow.js +54 -21
  326. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  327. package/build/src/start/platforms/android/adb.js +89 -51
  328. package/build/src/start/platforms/android/adb.js.map +1 -1
  329. package/build/src/start/platforms/android/adbReverse.js +57 -31
  330. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  331. package/build/src/start/platforms/android/emulator.js +89 -44
  332. package/build/src/start/platforms/android/emulator.js.map +1 -1
  333. package/build/src/start/platforms/android/getDevices.js +11 -10
  334. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  335. package/build/src/start/platforms/android/gradle.js +38 -14
  336. package/build/src/start/platforms/android/gradle.js.map +1 -1
  337. package/build/src/start/platforms/android/promptAndroidDevice.js +22 -16
  338. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  339. package/build/src/start/platforms/ios/AppleAppIdResolver.js +31 -10
  340. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  341. package/build/src/start/platforms/ios/AppleDeviceManager.js +120 -62
  342. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  343. package/build/src/start/platforms/ios/ApplePlatformManager.js +7 -4
  344. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  345. package/build/src/start/platforms/ios/assertSystemRequirements.js +11 -7
  346. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  347. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +60 -27
  348. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  349. package/build/src/start/platforms/ios/getBestSimulator.js +60 -30
  350. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  351. package/build/src/start/platforms/ios/promptAppleDevice.js +25 -13
  352. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  353. package/build/src/start/platforms/ios/simctl.js +75 -46
  354. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  355. package/build/src/start/platforms/ios/simctlLogging.js +100 -47
  356. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  357. package/build/src/start/platforms/ios/xcrun.js +21 -6
  358. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  359. package/build/src/start/project/devices.js +19 -16
  360. package/build/src/start/project/devices.js.map +1 -1
  361. package/build/src/start/project/dotExpo.js +37 -11
  362. package/build/src/start/project/dotExpo.js.map +1 -1
  363. package/build/src/start/project/settings.js +6 -4
  364. package/build/src/start/project/settings.js.map +1 -1
  365. package/build/src/start/resolveOptions.js +52 -27
  366. package/build/src/start/resolveOptions.js.map +1 -1
  367. package/build/src/start/server/AsyncNgrok.js +91 -47
  368. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  369. package/build/src/start/server/BundlerDevServer.js +77 -45
  370. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  371. package/build/src/start/server/DevServerManager.js +100 -70
  372. package/build/src/start/server/DevServerManager.js.map +1 -1
  373. package/build/src/start/server/DevToolsPluginManager.js +35 -18
  374. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  375. package/build/src/start/server/DevelopmentSession.js +57 -33
  376. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  377. package/build/src/start/server/ReactDevToolsProxy.js +37 -11
  378. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  379. package/build/src/start/server/UrlCreator.js +61 -27
  380. package/build/src/start/server/UrlCreator.js.map +1 -1
  381. package/build/src/start/server/getStaticRenderFunctions.js +125 -77
  382. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  383. package/build/src/start/server/metro/MetroBundlerDevServer.js +333 -158
  384. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  385. package/build/src/start/server/metro/MetroTerminalReporter.js +50 -28
  386. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  387. package/build/src/start/server/metro/TerminalReporter.js +40 -12
  388. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  389. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  390. package/build/src/start/server/metro/createExpoMetroResolver.js +82 -35
  391. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  392. package/build/src/start/server/metro/createJResolver.js +143 -73
  393. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  394. package/build/src/start/server/metro/createServerRouteMiddleware.js +47 -38
  395. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  396. package/build/src/start/server/metro/debugging/MessageHandler.js +30 -0
  397. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  398. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +18 -14
  399. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  400. package/build/src/start/server/metro/debugging/createHandlersFactory.js +64 -0
  401. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  402. package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +6 -8
  403. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  404. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +12 -6
  405. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  406. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +26 -0
  407. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
  408. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +28 -0
  409. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  410. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +25 -0
  411. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  412. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +31 -0
  413. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  414. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +14 -7
  415. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  416. package/build/src/start/server/metro/debugging/pageIsSupported.js +17 -0
  417. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  418. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  419. package/build/src/start/server/metro/externals.js +67 -69
  420. package/build/src/start/server/metro/externals.js.map +1 -1
  421. package/build/src/start/server/metro/fetchRouterManifest.js +26 -7
  422. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  423. package/build/src/start/server/metro/formatFileCandidates.js +28 -18
  424. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  425. package/build/src/start/server/metro/getCssModulesFromBundler.js +44 -12
  426. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  427. package/build/src/start/server/metro/instantiateMetro.js +141 -62
  428. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  429. package/build/src/start/server/metro/metroErrorInterface.js +75 -47
  430. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  431. package/build/src/start/server/metro/metroErrors.js +11 -2
  432. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  433. package/build/src/start/server/metro/metroVirtualModules.js +90 -0
  434. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  435. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +12 -3
  436. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  437. package/build/src/start/server/metro/router.js +64 -30
  438. package/build/src/start/server/metro/router.js.map +1 -1
  439. package/build/src/start/server/metro/runServer-fork.js +68 -19
  440. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  441. package/build/src/start/server/metro/serializeHtml.js +32 -19
  442. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  443. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +19 -5
  444. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  445. package/build/src/start/server/metro/withMetroMultiPlatform.js +232 -104
  446. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  447. package/build/src/start/server/metro/withMetroResolvers.js +95 -47
  448. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  449. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
  450. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  451. package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
  452. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  453. package/build/src/start/server/middleware/CreateFileMiddleware.js +33 -13
  454. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  455. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +27 -12
  456. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  457. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +65 -28
  458. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  459. package/build/src/start/server/middleware/ExpoMiddleware.js +54 -22
  460. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  461. package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
  462. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  463. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
  464. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  465. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +58 -21
  466. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  467. package/build/src/start/server/middleware/ManifestMiddleware.js +117 -63
  468. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  469. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +35 -10
  470. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  471. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +54 -27
  472. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  473. package/build/src/start/server/middleware/ServeStaticMiddleware.js +31 -10
  474. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  475. package/build/src/start/server/middleware/inspector/JsInspector.js +45 -22
  476. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  477. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +25 -11
  478. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  479. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
  480. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
  481. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +36 -14
  482. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  483. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +84 -38
  484. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  485. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +42 -20
  486. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  487. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +40 -13
  488. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  489. package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
  490. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  491. package/build/src/start/server/middleware/metroOptions.js +36 -18
  492. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  493. package/build/src/start/server/middleware/mutations.js +11 -4
  494. package/build/src/start/server/middleware/mutations.js.map +1 -1
  495. package/build/src/start/server/middleware/resolveAssets.js +78 -42
  496. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  497. package/build/src/start/server/middleware/resolvePlatform.js +21 -7
  498. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  499. package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
  500. package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
  501. package/build/src/start/server/openPlatforms.js +7 -6
  502. package/build/src/start/server/openPlatforms.js.map +1 -1
  503. package/build/src/start/server/platformBundlers.js +12 -3
  504. package/build/src/start/server/platformBundlers.js.map +1 -1
  505. package/build/src/start/server/serverLogLikeMetro.js +93 -40
  506. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  507. package/build/src/start/server/type-generation/expo-env.js +26 -6
  508. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  509. package/build/src/start/server/type-generation/routes.js +137 -82
  510. package/build/src/start/server/type-generation/routes.js.map +1 -1
  511. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +44 -23
  512. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  513. package/build/src/start/server/type-generation/tsconfig.js +41 -16
  514. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  515. package/build/src/start/server/webTemplate.js +43 -19
  516. package/build/src/start/server/webTemplate.js.map +1 -1
  517. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +105 -56
  518. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  519. package/build/src/start/server/webpack/compile.js +60 -27
  520. package/build/src/start/server/webpack/compile.js.map +1 -1
  521. package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
  522. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  523. package/build/src/start/server/webpack/resolveFromProject.js +20 -6
  524. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  525. package/build/src/start/server/webpack/tls.js +84 -34
  526. package/build/src/start/server/webpack/tls.js.map +1 -1
  527. package/build/src/start/startAsync.js +98 -52
  528. package/build/src/start/startAsync.js.map +1 -1
  529. package/build/src/utils/FileNotifier.js +73 -28
  530. package/build/src/utils/FileNotifier.js.map +1 -1
  531. package/build/src/utils/analytics/getDevClientProperties.js +48 -22
  532. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  533. package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
  534. package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
  535. package/build/src/utils/analytics/getMetroProperties.js +4 -1
  536. package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
  537. package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
  538. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  539. package/build/src/utils/ansi.js +5 -2
  540. package/build/src/utils/ansi.js.map +1 -1
  541. package/build/src/utils/args.js +83 -31
  542. package/build/src/utils/args.js.map +1 -1
  543. package/build/src/utils/array.js +16 -9
  544. package/build/src/utils/array.js.map +1 -1
  545. package/build/src/utils/cocoapods.js +127 -67
  546. package/build/src/utils/cocoapods.js.map +1 -1
  547. package/build/src/utils/codesigning.js +144 -72
  548. package/build/src/utils/codesigning.js.map +1 -1
  549. package/build/src/utils/createFileTransform.js +34 -71
  550. package/build/src/utils/createFileTransform.js.map +1 -1
  551. package/build/src/utils/delay.js +13 -6
  552. package/build/src/utils/delay.js.map +1 -1
  553. package/build/src/utils/dir.js +50 -40
  554. package/build/src/utils/dir.js.map +1 -1
  555. package/build/src/utils/downloadAppAsync.js +51 -18
  556. package/build/src/utils/downloadAppAsync.js.map +1 -1
  557. package/build/src/utils/downloadExpoGoAsync.js +47 -26
  558. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  559. package/build/src/utils/editor.js +65 -27
  560. package/build/src/utils/editor.js.map +1 -1
  561. package/build/src/utils/env.js +44 -33
  562. package/build/src/utils/env.js.map +1 -1
  563. package/build/src/utils/errors.js +35 -12
  564. package/build/src/utils/errors.js.map +1 -1
  565. package/build/src/utils/exit.js +10 -7
  566. package/build/src/utils/exit.js.map +1 -1
  567. package/build/src/utils/findUp.js +38 -8
  568. package/build/src/utils/findUp.js.map +1 -1
  569. package/build/src/utils/fn.js +11 -3
  570. package/build/src/utils/fn.js.map +1 -1
  571. package/build/src/utils/getOrPromptApplicationId.js +84 -46
  572. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  573. package/build/src/utils/getRunningProcess.js +63 -25
  574. package/build/src/utils/getRunningProcess.js.map +1 -1
  575. package/build/src/utils/git.js +76 -38
  576. package/build/src/utils/git.js.map +1 -1
  577. package/build/src/utils/glob.js +23 -12
  578. package/build/src/utils/glob.js.map +1 -1
  579. package/build/src/utils/interactive.js +5 -2
  580. package/build/src/utils/interactive.js.map +1 -1
  581. package/build/src/utils/ip.js +12 -3
  582. package/build/src/utils/ip.js.map +1 -1
  583. package/build/src/utils/isModuleSymlinked.js +20 -5
  584. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  585. package/build/src/utils/link.js +28 -8
  586. package/build/src/utils/link.js.map +1 -1
  587. package/build/src/utils/mergeGitIgnorePaths.js +45 -28
  588. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  589. package/build/src/utils/modifyConfigAsync.js +69 -31
  590. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  591. package/build/src/utils/modifyConfigPlugins.js +50 -23
  592. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  593. package/build/src/utils/nodeEnv.js +8 -1
  594. package/build/src/utils/nodeEnv.js.map +1 -1
  595. package/build/src/utils/nodeModules.js +29 -8
  596. package/build/src/utils/nodeModules.js.map +1 -1
  597. package/build/src/utils/npm.js +86 -31
  598. package/build/src/utils/npm.js.map +1 -1
  599. package/build/src/utils/obj.js +12 -4
  600. package/build/src/utils/obj.js.map +1 -1
  601. package/build/src/utils/open.js +13 -4
  602. package/build/src/utils/open.js.map +1 -1
  603. package/build/src/utils/ora.js +38 -22
  604. package/build/src/utils/ora.js.map +1 -1
  605. package/build/src/utils/plist.js +73 -29
  606. package/build/src/utils/plist.js.map +1 -1
  607. package/build/src/utils/port.js +74 -36
  608. package/build/src/utils/port.js.map +1 -1
  609. package/build/src/utils/profile.js +56 -29
  610. package/build/src/utils/profile.js.map +1 -1
  611. package/build/src/utils/progress.js +23 -13
  612. package/build/src/utils/progress.js.map +1 -1
  613. package/build/src/utils/prompts.js +45 -28
  614. package/build/src/utils/prompts.js.map +1 -1
  615. package/build/src/utils/resolveArgs.js +23 -20
  616. package/build/src/utils/resolveArgs.js.map +1 -1
  617. package/build/src/utils/scheme.js +128 -52
  618. package/build/src/utils/scheme.js.map +1 -1
  619. package/build/src/utils/strings.js +11 -4
  620. package/build/src/utils/strings.js.map +1 -1
  621. package/build/src/utils/tar.js +56 -23
  622. package/build/src/utils/tar.js.map +1 -1
  623. package/build/src/utils/telemetry/DetachedClient.js +90 -0
  624. package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
  625. package/build/src/utils/telemetry/RudderClient.js +101 -0
  626. package/build/src/utils/telemetry/RudderClient.js.map +1 -0
  627. package/build/src/utils/telemetry/flushDetached.js +44 -0
  628. package/build/src/utils/telemetry/flushDetached.js.map +1 -0
  629. package/build/src/utils/telemetry/getContext.js +112 -0
  630. package/build/src/utils/telemetry/getContext.js.map +1 -0
  631. package/build/src/utils/telemetry/index.js +37 -0
  632. package/build/src/utils/telemetry/index.js.map +1 -0
  633. package/build/src/utils/telemetry/types.js +6 -0
  634. package/build/src/utils/telemetry/types.js.map +1 -0
  635. package/build/src/utils/template.js +27 -2
  636. package/build/src/utils/template.js.map +1 -1
  637. package/build/src/utils/terminal.js +5 -2
  638. package/build/src/utils/terminal.js.map +1 -1
  639. package/build/src/utils/tsconfig/evaluateTsConfig.js +32 -14
  640. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  641. package/build/src/utils/tsconfig/loadTsConfigPaths.js +34 -14
  642. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  643. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
  644. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  645. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +20 -11
  646. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  647. package/build/src/utils/url.js +35 -19
  648. package/build/src/utils/url.js.map +1 -1
  649. package/build/src/utils/validateApplicationId.js +47 -28
  650. package/build/src/utils/validateApplicationId.js.map +1 -1
  651. package/build/src/utils/variadic.js +15 -11
  652. package/build/src/utils/variadic.js.map +1 -1
  653. package/build/src/whoami/index.js +43 -25
  654. package/build/src/whoami/index.js.map +1 -1
  655. package/build/src/whoami/whoamiAsync.js +50 -23
  656. package/build/src/whoami/whoamiAsync.js.map +1 -1
  657. package/package.json +16 -17
  658. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
  659. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
  660. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
  661. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
  662. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
  663. package/build/src/run/android/resolveGradleProps.js +0 -37
  664. package/build/src/run/android/resolveGradleProps.js.map +0 -1
  665. package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
  666. package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
  667. package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
  668. package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
  669. package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
  670. package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
  671. package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
  672. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js +0 -22
  673. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
  674. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
  675. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
  676. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
  677. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
  678. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
  679. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
  680. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
  681. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
  682. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
  683. package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
  684. package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
  685. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
  686. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
  687. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
  688. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
  689. package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
  690. package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
  691. package/build/src/utils/analytics/rudderstackClient.js +0 -147
  692. package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
  693. /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
@@ -1,27 +1,77 @@
1
- "use strict";
1
+ /**
2
+ * Copyright © 2022 650 Industries.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */ "use strict";
2
7
  Object.defineProperty(exports, "__esModule", {
3
8
  value: true
4
9
  });
5
- exports.unstable_exportStaticAsync = unstable_exportStaticAsync;
6
- exports.getFilesToExportFromServerAsync = getFilesToExportFromServerAsync;
7
- exports.getHtmlFiles = getHtmlFiles;
8
- exports.getPathVariations = getPathVariations;
9
- var _assert = _interopRequireDefault(require("assert"));
10
- var _chalk = _interopRequireDefault(require("chalk"));
11
- var _path = _interopRequireDefault(require("path"));
12
- var _resolveFrom = _interopRequireDefault(require("resolve-from"));
13
- var _util = require("util");
14
- var _favicon = require("./favicon");
15
- var _persistMetroAssets = require("./persistMetroAssets");
16
- var _saveAssets = require("./saveAssets");
17
- var _log = require("../log");
18
- var _devServerManager = require("../start/server/DevServerManager");
19
- var _metroBundlerDevServer = require("../start/server/metro/MetroBundlerDevServer");
20
- var _metroErrorInterface = require("../start/server/metro/metroErrorInterface");
21
- var _router = require("../start/server/metro/router");
22
- var _serializeHtml = require("../start/server/metro/serializeHtml");
23
- var _link = require("../utils/link");
24
- var _port = require("../utils/port");
10
+ function _export(target, all) {
11
+ for(var name in all)Object.defineProperty(target, name, {
12
+ enumerable: true,
13
+ get: all[name]
14
+ });
15
+ }
16
+ _export(exports, {
17
+ unstable_exportStaticAsync: ()=>unstable_exportStaticAsync,
18
+ getFilesToExportFromServerAsync: ()=>getFilesToExportFromServerAsync,
19
+ getHtmlFiles: ()=>getHtmlFiles,
20
+ getPathVariations: ()=>getPathVariations
21
+ });
22
+ function _assert() {
23
+ const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
24
+ _assert = function() {
25
+ return data;
26
+ };
27
+ return data;
28
+ }
29
+ function _chalk() {
30
+ const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
31
+ _chalk = function() {
32
+ return data;
33
+ };
34
+ return data;
35
+ }
36
+ function _matchers() {
37
+ const data = require("expo-router/build/matchers");
38
+ _matchers = function() {
39
+ return data;
40
+ };
41
+ return data;
42
+ }
43
+ function _path() {
44
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
45
+ _path = function() {
46
+ return data;
47
+ };
48
+ return data;
49
+ }
50
+ function _resolveFrom() {
51
+ const data = /*#__PURE__*/ _interopRequireDefault(require("resolve-from"));
52
+ _resolveFrom = function() {
53
+ return data;
54
+ };
55
+ return data;
56
+ }
57
+ function _util() {
58
+ const data = require("util");
59
+ _util = function() {
60
+ return data;
61
+ };
62
+ return data;
63
+ }
64
+ const _favicon = require("./favicon");
65
+ const _persistMetroAssets = require("./persistMetroAssets");
66
+ const _saveAssets = require("./saveAssets");
67
+ const _log = require("../log");
68
+ const _devServerManager = require("../start/server/DevServerManager");
69
+ const _metroBundlerDevServer = require("../start/server/metro/MetroBundlerDevServer");
70
+ const _metroErrorInterface = require("../start/server/metro/metroErrorInterface");
71
+ const _router = require("../start/server/metro/router");
72
+ const _serializeHtml = require("../start/server/metro/serializeHtml");
73
+ const _link = require("../utils/link");
74
+ const _port = require("../utils/port");
25
75
  function _interopRequireDefault(obj) {
26
76
  return obj && obj.__esModule ? obj : {
27
77
  default: obj
@@ -29,14 +79,15 @@ function _interopRequireDefault(obj) {
29
79
  }
30
80
  const debug = require("debug")("expo:export:generateStaticRoutes");
31
81
  async function unstable_exportStaticAsync(projectRoot, options) {
32
- _log.Log.log(`Static rendering is enabled. ` + (0, _link).learnMore("https://docs.expo.dev/router/reference/static-rendering/"));
82
+ _log.Log.log(`Static rendering is enabled. ` + (0, _link.learnMore)("https://docs.expo.dev/router/reference/static-rendering/"));
33
83
  // Useful for running parallel e2e tests in CI.
34
- const port = await (0, _port).getFreePortAsync(8082);
84
+ const port = await (0, _port.getFreePortAsync)(8082);
35
85
  // TODO: Prevent starting the watcher.
36
86
  const devServerManager = new _devServerManager.DevServerManager(projectRoot, {
37
87
  minify: options.minify,
38
- mode: "production",
88
+ mode: options.mode,
39
89
  port,
90
+ isExporting: true,
40
91
  location: {},
41
92
  resetDevServer: options.clear,
42
93
  maxWorkers: options.maxWorkers
@@ -46,8 +97,10 @@ async function unstable_exportStaticAsync(projectRoot, options) {
46
97
  type: "metro",
47
98
  options: {
48
99
  port,
100
+ mode: options.mode,
49
101
  location: {},
50
102
  isExporting: true,
103
+ minify: options.minify,
51
104
  resetDevServer: options.clear,
52
105
  maxWorkers: options.maxWorkers
53
106
  }
@@ -89,7 +142,7 @@ files =new Map() }) {
89
142
  targetDomain
90
143
  });
91
144
  } catch (e) {
92
- await (0, _metroErrorInterface).logMetroErrorAsync({
145
+ await (0, _metroErrorInterface.logMetroErrorAsync)({
93
146
  error: e,
94
147
  projectRoot
95
148
  });
@@ -115,43 +168,34 @@ function makeRuntimeEntryPointsAbsolute(manifest, appDir) {
115
168
  if (Array.isArray(route.entryPoints)) {
116
169
  route.entryPoints = route.entryPoints.map((entryPoint)=>{
117
170
  if (entryPoint.startsWith(".")) {
118
- return _path.default.resolve(appDir, entryPoint);
119
- } else if (!_path.default.isAbsolute(entryPoint)) {
120
- return (0, _resolveFrom).default(appDir, entryPoint);
171
+ return _path().default.resolve(appDir, entryPoint);
172
+ } else if (!_path().default.isAbsolute(entryPoint)) {
173
+ return (0, _resolveFrom().default)(appDir, entryPoint);
121
174
  }
122
175
  return entryPoint;
123
176
  });
124
177
  }
125
178
  });
126
179
  }
127
- /** Perform all fs commits */ async function exportFromServerAsync(projectRoot, devServerManager, { outputDir , baseUrl , exportServer , minify , includeSourceMaps , routerRoot , asyncRoutes , files =new Map() }) {
128
- const appDir = _path.default.join(projectRoot, routerRoot);
129
- const injectFaviconTag = await (0, _favicon).getVirtualFaviconAssetsAsync(projectRoot, {
180
+ /** Perform all fs commits */ async function exportFromServerAsync(projectRoot, devServerManager, { outputDir , baseUrl , exportServer , includeSourceMaps , routerRoot , files =new Map() }) {
181
+ const platform = "web";
182
+ const isExporting = true;
183
+ const appDir = _path().default.join(projectRoot, routerRoot);
184
+ const injectFaviconTag = await (0, _favicon.getVirtualFaviconAssetsAsync)(projectRoot, {
130
185
  outputDir,
131
186
  baseUrl,
132
187
  files
133
188
  });
134
189
  const devServer = devServerManager.getDefaultDevServer();
135
- (0, _assert).default(devServer instanceof _metroBundlerDevServer.MetroBundlerDevServer);
190
+ (0, _assert().default)(devServer instanceof _metroBundlerDevServer.MetroBundlerDevServer);
136
191
  const [resources, { manifest , serverManifest , renderAsync }] = await Promise.all([
137
192
  devServer.getStaticResourcesAsync({
138
- isExporting: true,
139
- mode: "production",
140
- minify,
141
- includeSourceMaps,
142
- baseUrl,
143
- asyncRoutes,
144
- routerRoot
193
+ includeSourceMaps
145
194
  }),
146
- devServer.getStaticRenderFunctionAsync({
147
- mode: "production",
148
- minify,
149
- baseUrl,
150
- routerRoot
151
- }),
195
+ devServer.getStaticRenderFunctionAsync(),
152
196
  ]);
153
197
  makeRuntimeEntryPointsAbsolute(manifest, appDir);
154
- debug("Routes:\n", (0, _util).inspect(manifest, {
198
+ debug("Routes:\n", (0, _util().inspect)(manifest, {
155
199
  colors: true,
156
200
  depth: null
157
201
  }));
@@ -161,8 +205,8 @@ function makeRuntimeEntryPointsAbsolute(manifest, appDir) {
161
205
  exportServer,
162
206
  async renderAsync ({ pathname , route }) {
163
207
  const template = await renderAsync(pathname);
164
- let html = await (0, _serializeHtml).serializeHtmlWithAssets({
165
- mode: "production",
208
+ let html = await (0, _serializeHtml.serializeHtmlWithAssets)({
209
+ isExporting,
166
210
  resources: resources.artifacts,
167
211
  template,
168
212
  baseUrl,
@@ -174,17 +218,17 @@ function makeRuntimeEntryPointsAbsolute(manifest, appDir) {
174
218
  return html;
175
219
  }
176
220
  });
177
- (0, _saveAssets).getFilesFromSerialAssets(resources.artifacts, {
178
- platform: "web",
221
+ (0, _saveAssets.getFilesFromSerialAssets)(resources.artifacts, {
222
+ platform,
179
223
  includeSourceMaps,
180
224
  files
181
225
  });
182
226
  if (resources.assets) {
183
227
  // TODO: Collect files without writing to disk.
184
228
  // NOTE(kitten): Re. above, this is now using `files` except for iOS catalog output, which isn't used here
185
- await (0, _persistMetroAssets).persistMetroAssetsAsync(resources.assets, {
229
+ await (0, _persistMetroAssets.persistMetroAssetsAsync)(resources.assets, {
186
230
  files,
187
- platform: "web",
231
+ platform,
188
232
  outputDirectory: outputDir,
189
233
  baseUrl
190
234
  });
@@ -193,9 +237,9 @@ function makeRuntimeEntryPointsAbsolute(manifest, appDir) {
193
237
  const apiRoutes = await exportApiRoutesAsync({
194
238
  outputDir,
195
239
  server: devServer,
196
- routerRoot,
197
240
  manifest: serverManifest,
198
- baseUrl
241
+ // NOTE(kitten): For now, we always output source maps for API route exports
242
+ includeSourceMaps: true
199
243
  });
200
244
  // Add the api routes to the files to export.
201
245
  for (const [route, contents] of apiRoutes){
@@ -222,6 +266,9 @@ function getHtmlFiles({ manifest , includeGroupVariations }) {
222
266
  let filePath = baseUrl + leaf;
223
267
  if (leaf === "") {
224
268
  filePath = baseUrl === "" ? "index" : baseUrl.endsWith("/") ? baseUrl + "index" : baseUrl.slice(0, -1);
269
+ } else if (// If the path is a collection of group segments leading to an index route, append `/index`.
270
+ (0, _matchers().stripGroupSegmentsFromPath)(filePath) === "") {
271
+ filePath += "/index";
225
272
  }
226
273
  // This should never happen, the type of `string | object` originally comes from React Navigation.
227
274
  if (!route) {
@@ -253,8 +300,7 @@ function getHtmlFiles({ manifest , includeGroupVariations }) {
253
300
  }
254
301
  }
255
302
  traverseScreens(manifest.screens, null);
256
- return uniqueBy(Array.from(htmlFiles), (value)=>value.filePath
257
- ).map((value)=>{
303
+ return uniqueBy(Array.from(htmlFiles), (value)=>value.filePath).map((value)=>{
258
304
  const parts = value.filePath.split("/");
259
305
  // Replace `:foo` with `[foo]` and `*foo` with `[...foo]`
260
306
  const partsWithGroups = parts.map((part)=>{
@@ -290,7 +336,7 @@ function uniqueBy(array, key) {
290
336
  }
291
337
  function getPathVariations(routePath) {
292
338
  const variations = new Set();
293
- const segments1 = routePath.split("/");
339
+ const segments = routePath.split("/");
294
340
  function generateVariations(segments, current = "") {
295
341
  if (segments.length === 0) {
296
342
  if (current) variations.add(current);
@@ -320,18 +366,16 @@ function getPathVariations(routePath) {
320
366
  }
321
367
  generateVariations(rest, current);
322
368
  }
323
- generateVariations(segments1);
369
+ generateVariations(segments);
324
370
  return Array.from(variations);
325
371
  }
326
- async function exportApiRoutesAsync({ outputDir , server , routerRoot , baseUrl , ...props }) {
372
+ async function exportApiRoutesAsync({ includeSourceMaps , outputDir , server , ...props }) {
327
373
  const { manifest , files } = await server.exportExpoRouterApiRoutesAsync({
328
- mode: "production",
329
- routerRoot,
330
374
  outputDir: "_expo/functions",
331
375
  prerenderManifest: props.manifest,
332
- baseUrl
376
+ includeSourceMaps
333
377
  });
334
- _log.Log.log(_chalk.default.bold`Exporting ${files.size} API Routes.`);
378
+ _log.Log.log(_chalk().default.bold`Exporting ${files.size} API Routes.`);
335
379
  files.set("_expo/routes.json", {
336
380
  contents: JSON.stringify(manifest, null, 2),
337
381
  targetDomain: "server"
@@ -339,11 +383,10 @@ async function exportApiRoutesAsync({ outputDir , server , routerRoot , baseUrl
339
383
  return files;
340
384
  }
341
385
  function warnPossibleInvalidExportType(appDir) {
342
- const apiRoutes = (0, _router).getApiRoutesForDirectory(appDir);
386
+ const apiRoutes = (0, _router.getApiRoutesForDirectory)(appDir);
343
387
  if (apiRoutes.length) {
344
388
  // TODO: Allow API Routes for native-only.
345
- _log.Log.warn(_chalk.default.yellow`Skipping export for API routes because \`web.output\` is not "server". You may want to remove the routes: ${apiRoutes.map((v)=>_path.default.relative(appDir, v)
346
- ).join(", ")}`);
389
+ _log.Log.warn(_chalk().default.yellow`Skipping export for API routes because \`web.output\` is not "server". You may want to remove the routes: ${apiRoutes.map((v)=>_path().default.relative(appDir, v)).join(", ")}`);
347
390
  }
348
391
  }
349
392
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/export/exportStaticAsync.ts"],"sourcesContent":["/**\n * Copyright © 2022 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport assert from 'assert';\nimport chalk from 'chalk';\nimport { RouteNode } from 'expo-router/build/Route';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport { inspect } from 'util';\n\nimport { getVirtualFaviconAssetsAsync } from './favicon';\nimport { persistMetroAssetsAsync } from './persistMetroAssets';\nimport { ExportAssetMap, getFilesFromSerialAssets } from './saveAssets';\nimport { Log } from '../log';\nimport { DevServerManager } from '../start/server/DevServerManager';\nimport {\n ExpoRouterRuntimeManifest,\n MetroBundlerDevServer,\n} from '../start/server/metro/MetroBundlerDevServer';\nimport { ExpoRouterServerManifestV1 } from '../start/server/metro/fetchRouterManifest';\nimport { logMetroErrorAsync } from '../start/server/metro/metroErrorInterface';\nimport { getApiRoutesForDirectory } from '../start/server/metro/router';\nimport { serializeHtmlWithAssets } from '../start/server/metro/serializeHtml';\nimport { learnMore } from '../utils/link';\nimport { getFreePortAsync } from '../utils/port';\n\nconst debug = require('debug')('expo:export:generateStaticRoutes') as typeof console.log;\n\ntype Options = {\n files?: ExportAssetMap;\n outputDir: string;\n minify: boolean;\n exportServer: boolean;\n baseUrl: string;\n includeSourceMaps: boolean;\n entryPoint?: string;\n clear: boolean;\n asyncRoutes: boolean;\n routerRoot: string;\n maxWorkers?: number;\n};\n\ntype HtmlRequestLocation = {\n /** The output file path name to use relative to the static folder. */\n filePath: string;\n /** The pathname to make requests to in order to fetch the HTML. */\n pathname: string;\n /** The runtime route node object, used to associate async modules with the static HTML. */\n route: RouteNode;\n};\n\n/** @private */\nexport async function unstable_exportStaticAsync(projectRoot: string, options: Options) {\n Log.log(\n `Static rendering is enabled. ` +\n learnMore('https://docs.expo.dev/router/reference/static-rendering/')\n );\n\n // Useful for running parallel e2e tests in CI.\n const port = await getFreePortAsync(8082);\n\n // TODO: Prevent starting the watcher.\n const devServerManager = new DevServerManager(projectRoot, {\n minify: options.minify,\n mode: 'production',\n port,\n location: {},\n resetDevServer: options.clear,\n maxWorkers: options.maxWorkers,\n });\n await devServerManager.startAsync([\n {\n type: 'metro',\n options: {\n port,\n location: {},\n isExporting: true,\n resetDevServer: options.clear,\n maxWorkers: options.maxWorkers,\n },\n },\n ]);\n\n try {\n return await exportFromServerAsync(projectRoot, devServerManager, options);\n } finally {\n await devServerManager.stopAsync();\n }\n}\n\n/** Match `(page)` -> `page` */\nfunction matchGroupName(name: string): string | undefined {\n return name.match(/^\\(([^/]+?)\\)$/)?.[1];\n}\n\nexport async function getFilesToExportFromServerAsync(\n projectRoot: string,\n {\n manifest,\n renderAsync,\n // Servers can handle group routes automatically and therefore\n // don't require the build-time generation of every possible group\n // variation.\n exportServer,\n // name : contents\n files = new Map(),\n }: {\n manifest: ExpoRouterRuntimeManifest;\n renderAsync: (requestLocation: HtmlRequestLocation) => Promise<string>;\n exportServer?: boolean;\n files?: ExportAssetMap;\n }\n): Promise<ExportAssetMap> {\n await Promise.all(\n getHtmlFiles({ manifest, includeGroupVariations: !exportServer }).map(\n async ({ route, filePath, pathname }) => {\n try {\n const targetDomain = exportServer ? 'server' : 'client';\n files.set(filePath, { contents: '', targetDomain });\n const data = await renderAsync({ route, filePath, pathname });\n files.set(filePath, {\n contents: data,\n routeId: pathname,\n targetDomain,\n });\n } catch (e: any) {\n await logMetroErrorAsync({ error: e, projectRoot });\n throw new Error('Failed to statically export route: ' + pathname);\n }\n }\n )\n );\n\n return files;\n}\n\nfunction modifyRouteNodeInRuntimeManifest(\n manifest: ExpoRouterRuntimeManifest,\n callback: (route: RouteNode) => any\n) {\n const iterateScreens = (screens: ExpoRouterRuntimeManifest['screens']) => {\n Object.values(screens).map((value) => {\n if (typeof value !== 'string') {\n if (value._route) callback(value._route);\n iterateScreens(value.screens);\n }\n });\n };\n\n iterateScreens(manifest.screens);\n}\n\n// TODO: Do this earlier in the process.\nfunction makeRuntimeEntryPointsAbsolute(manifest: ExpoRouterRuntimeManifest, appDir: string) {\n modifyRouteNodeInRuntimeManifest(manifest, (route) => {\n if (Array.isArray(route.entryPoints)) {\n route.entryPoints = route.entryPoints.map((entryPoint) => {\n if (entryPoint.startsWith('.')) {\n return path.resolve(appDir, entryPoint);\n } else if (!path.isAbsolute(entryPoint)) {\n return resolveFrom(appDir, entryPoint);\n }\n return entryPoint;\n });\n }\n });\n}\n\n/** Perform all fs commits */\nasync function exportFromServerAsync(\n projectRoot: string,\n devServerManager: DevServerManager,\n {\n outputDir,\n baseUrl,\n exportServer,\n minify,\n includeSourceMaps,\n routerRoot,\n asyncRoutes,\n files = new Map(),\n }: Options\n): Promise<ExportAssetMap> {\n const appDir = path.join(projectRoot, routerRoot);\n const injectFaviconTag = await getVirtualFaviconAssetsAsync(projectRoot, {\n outputDir,\n baseUrl,\n files,\n });\n\n const devServer = devServerManager.getDefaultDevServer();\n assert(devServer instanceof MetroBundlerDevServer);\n\n const [resources, { manifest, serverManifest, renderAsync }] = await Promise.all([\n devServer.getStaticResourcesAsync({\n isExporting: true,\n mode: 'production',\n minify,\n includeSourceMaps,\n baseUrl,\n asyncRoutes,\n routerRoot,\n }),\n devServer.getStaticRenderFunctionAsync({\n mode: 'production',\n minify,\n baseUrl,\n routerRoot,\n }),\n ]);\n\n makeRuntimeEntryPointsAbsolute(manifest, appDir);\n\n debug('Routes:\\n', inspect(manifest, { colors: true, depth: null }));\n\n await getFilesToExportFromServerAsync(projectRoot, {\n files,\n manifest,\n exportServer,\n async renderAsync({ pathname, route }) {\n const template = await renderAsync(pathname);\n let html = await serializeHtmlWithAssets({\n mode: 'production',\n resources: resources.artifacts,\n template,\n baseUrl,\n route,\n });\n\n if (injectFaviconTag) {\n html = injectFaviconTag(html);\n }\n\n return html;\n },\n });\n\n getFilesFromSerialAssets(resources.artifacts, {\n platform: 'web',\n includeSourceMaps,\n files,\n });\n\n if (resources.assets) {\n // TODO: Collect files without writing to disk.\n // NOTE(kitten): Re. above, this is now using `files` except for iOS catalog output, which isn't used here\n await persistMetroAssetsAsync(resources.assets, {\n files,\n platform: 'web',\n outputDirectory: outputDir,\n baseUrl,\n });\n }\n\n if (exportServer) {\n const apiRoutes = await exportApiRoutesAsync({\n outputDir,\n server: devServer,\n routerRoot,\n manifest: serverManifest,\n baseUrl,\n });\n\n // Add the api routes to the files to export.\n for (const [route, contents] of apiRoutes) {\n files.set(route, contents);\n }\n } else {\n warnPossibleInvalidExportType(appDir);\n }\n\n return files;\n}\n\nexport function getHtmlFiles({\n manifest,\n includeGroupVariations,\n}: {\n manifest: ExpoRouterRuntimeManifest;\n includeGroupVariations?: boolean;\n}): HtmlRequestLocation[] {\n const htmlFiles = new Set<Omit<HtmlRequestLocation, 'pathname'>>();\n\n function traverseScreens(\n screens: ExpoRouterRuntimeManifest['screens'],\n route: RouteNode | null,\n baseUrl = ''\n ) {\n for (const value of Object.values(screens)) {\n let leaf: string | null = null;\n if (typeof value === 'string') {\n leaf = value;\n } else if (Object.keys(value.screens).length === 0) {\n leaf = value.path;\n route = value._route ?? null;\n }\n\n if (leaf != null) {\n let filePath = baseUrl + leaf;\n if (leaf === '') {\n filePath =\n baseUrl === ''\n ? 'index'\n : baseUrl.endsWith('/')\n ? baseUrl + 'index'\n : baseUrl.slice(0, -1);\n }\n\n // This should never happen, the type of `string | object` originally comes from React Navigation.\n if (!route) {\n throw new Error(\n `Internal error: Route not found for \"${filePath}\" while collecting static export paths.`\n );\n }\n\n if (includeGroupVariations) {\n // TODO: Dedupe requests for alias routes.\n addOptionalGroups(filePath, route);\n } else {\n htmlFiles.add({\n filePath,\n route,\n });\n }\n } else if (typeof value === 'object' && value?.screens) {\n const newPath = baseUrl + value.path + '/';\n traverseScreens(value.screens, value._route ?? null, newPath);\n }\n }\n }\n\n function addOptionalGroups(path: string, route: RouteNode) {\n const variations = getPathVariations(path);\n for (const variation of variations) {\n htmlFiles.add({ filePath: variation, route });\n }\n }\n\n traverseScreens(manifest.screens, null);\n\n return uniqueBy(Array.from(htmlFiles), (value) => value.filePath).map((value) => {\n const parts = value.filePath.split('/');\n // Replace `:foo` with `[foo]` and `*foo` with `[...foo]`\n const partsWithGroups = parts.map((part) => {\n if (part === '*not-found') {\n return `+not-found`;\n } else if (part.startsWith(':')) {\n return `[${part.slice(1)}]`;\n } else if (part.startsWith('*')) {\n return `[...${part.slice(1)}]`;\n }\n return part;\n });\n const filePathLocation = partsWithGroups.join('/');\n const filePath = filePathLocation + '.html';\n return {\n ...value,\n filePath,\n pathname: filePathLocation.replace(/(\\/?index)?$/, ''),\n };\n });\n}\n\nfunction uniqueBy<T>(array: T[], key: (value: T) => string): T[] {\n const seen = new Set<string>();\n const result: T[] = [];\n for (const value of array) {\n const id = key(value);\n if (!seen.has(id)) {\n seen.add(id);\n result.push(value);\n }\n }\n return result;\n}\n\n// Given a route like `(foo)/bar/(baz)`, return all possible variations of the route.\n// e.g. `(foo)/bar/(baz)`, `(foo)/bar/baz`, `foo/bar/(baz)`, `foo/bar/baz`,\nexport function getPathVariations(routePath: string): string[] {\n const variations = new Set<string>();\n const segments = routePath.split('/');\n\n function generateVariations(segments: string[], current = ''): void {\n if (segments.length === 0) {\n if (current) variations.add(current);\n return;\n }\n\n const [head, ...rest] = segments;\n\n if (matchGroupName(head)) {\n const groups = head.slice(1, -1).split(',');\n\n if (groups.length > 1) {\n for (const group of groups) {\n // If there are multiple groups, recurse on each group.\n generateVariations([`(${group.trim()})`, ...rest], current);\n }\n return;\n } else {\n // Start a fork where this group is included\n generateVariations(rest, current ? `${current}/(${groups[0]})` : `(${groups[0]})`);\n // This code will continue and add paths without this group included`\n }\n } else if (current) {\n current = `${current}/${head}`;\n } else {\n current = head;\n }\n\n generateVariations(rest, current);\n }\n\n generateVariations(segments);\n\n return Array.from(variations);\n}\n\nasync function exportApiRoutesAsync({\n outputDir,\n server,\n routerRoot,\n baseUrl,\n ...props\n}: {\n outputDir: string;\n server: MetroBundlerDevServer;\n routerRoot: string;\n manifest: ExpoRouterServerManifestV1;\n baseUrl: string;\n}): Promise<ExportAssetMap> {\n const { manifest, files } = await server.exportExpoRouterApiRoutesAsync({\n mode: 'production',\n routerRoot,\n outputDir: '_expo/functions',\n prerenderManifest: props.manifest,\n baseUrl,\n });\n\n Log.log(chalk.bold`Exporting ${files.size} API Routes.`);\n\n files.set('_expo/routes.json', {\n contents: JSON.stringify(manifest, null, 2),\n targetDomain: 'server',\n });\n\n return files;\n}\n\nfunction warnPossibleInvalidExportType(appDir: string) {\n const apiRoutes = getApiRoutesForDirectory(appDir);\n if (apiRoutes.length) {\n // TODO: Allow API Routes for native-only.\n Log.warn(\n chalk.yellow`Skipping export for API routes because \\`web.output\\` is not \"server\". You may want to remove the routes: ${apiRoutes\n .map((v) => path.relative(appDir, v))\n .join(', ')}`\n );\n }\n}\n"],"names":["unstable_exportStaticAsync","getFilesToExportFromServerAsync","getHtmlFiles","getPathVariations","debug","require","projectRoot","options","Log","log","learnMore","port","getFreePortAsync","devServerManager","DevServerManager","minify","mode","location","resetDevServer","clear","maxWorkers","startAsync","type","isExporting","exportFromServerAsync","stopAsync","matchGroupName","name","match","manifest","renderAsync","exportServer","files","Map","Promise","all","includeGroupVariations","map","route","filePath","pathname","targetDomain","set","contents","data","routeId","e","logMetroErrorAsync","error","Error","modifyRouteNodeInRuntimeManifest","callback","iterateScreens","screens","Object","values","value","_route","makeRuntimeEntryPointsAbsolute","appDir","Array","isArray","entryPoints","entryPoint","startsWith","path","resolve","isAbsolute","resolveFrom","outputDir","baseUrl","includeSourceMaps","routerRoot","asyncRoutes","join","injectFaviconTag","getVirtualFaviconAssetsAsync","devServer","getDefaultDevServer","assert","MetroBundlerDevServer","resources","serverManifest","getStaticResourcesAsync","getStaticRenderFunctionAsync","inspect","colors","depth","template","html","serializeHtmlWithAssets","artifacts","getFilesFromSerialAssets","platform","assets","persistMetroAssetsAsync","outputDirectory","apiRoutes","exportApiRoutesAsync","server","warnPossibleInvalidExportType","htmlFiles","Set","traverseScreens","leaf","keys","length","endsWith","slice","addOptionalGroups","add","newPath","variations","variation","uniqueBy","from","parts","split","partsWithGroups","part","filePathLocation","replace","array","key","seen","result","id","has","push","routePath","segments","generateVariations","current","head","rest","groups","group","trim","props","exportExpoRouterApiRoutesAsync","prerenderManifest","chalk","bold","size","JSON","stringify","getApiRoutesForDirectory","warn","yellow","v","relative"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/export/exportStaticAsync.ts"],"sourcesContent":["/**\n * Copyright © 2022 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport assert from 'assert';\nimport chalk from 'chalk';\nimport { RouteNode } from 'expo-router/build/Route';\nimport { stripGroupSegmentsFromPath } from 'expo-router/build/matchers';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport { inspect } from 'util';\n\nimport { getVirtualFaviconAssetsAsync } from './favicon';\nimport { persistMetroAssetsAsync } from './persistMetroAssets';\nimport { ExportAssetMap, getFilesFromSerialAssets } from './saveAssets';\nimport { Log } from '../log';\nimport { DevServerManager } from '../start/server/DevServerManager';\nimport {\n ExpoRouterRuntimeManifest,\n MetroBundlerDevServer,\n} from '../start/server/metro/MetroBundlerDevServer';\nimport { ExpoRouterServerManifestV1 } from '../start/server/metro/fetchRouterManifest';\nimport { logMetroErrorAsync } from '../start/server/metro/metroErrorInterface';\nimport { getApiRoutesForDirectory } from '../start/server/metro/router';\nimport { serializeHtmlWithAssets } from '../start/server/metro/serializeHtml';\nimport { learnMore } from '../utils/link';\nimport { getFreePortAsync } from '../utils/port';\n\nconst debug = require('debug')('expo:export:generateStaticRoutes') as typeof console.log;\n\ntype Options = {\n mode: 'production' | 'development';\n files?: ExportAssetMap;\n outputDir: string;\n minify: boolean;\n exportServer: boolean;\n baseUrl: string;\n includeSourceMaps: boolean;\n entryPoint?: string;\n clear: boolean;\n routerRoot: string;\n maxWorkers?: number;\n isExporting: boolean;\n};\n\ntype HtmlRequestLocation = {\n /** The output file path name to use relative to the static folder. */\n filePath: string;\n /** The pathname to make requests to in order to fetch the HTML. */\n pathname: string;\n /** The runtime route node object, used to associate async modules with the static HTML. */\n route: RouteNode;\n};\n\n/** @private */\nexport async function unstable_exportStaticAsync(projectRoot: string, options: Options) {\n Log.log(\n `Static rendering is enabled. ` +\n learnMore('https://docs.expo.dev/router/reference/static-rendering/')\n );\n\n // Useful for running parallel e2e tests in CI.\n const port = await getFreePortAsync(8082);\n\n // TODO: Prevent starting the watcher.\n const devServerManager = new DevServerManager(projectRoot, {\n minify: options.minify,\n mode: options.mode,\n port,\n isExporting: true,\n location: {},\n resetDevServer: options.clear,\n maxWorkers: options.maxWorkers,\n });\n\n await devServerManager.startAsync([\n {\n type: 'metro',\n options: {\n port,\n mode: options.mode,\n location: {},\n isExporting: true,\n minify: options.minify,\n resetDevServer: options.clear,\n maxWorkers: options.maxWorkers,\n },\n },\n ]);\n\n try {\n return await exportFromServerAsync(projectRoot, devServerManager, options);\n } finally {\n await devServerManager.stopAsync();\n }\n}\n\n/** Match `(page)` -> `page` */\nfunction matchGroupName(name: string): string | undefined {\n return name.match(/^\\(([^/]+?)\\)$/)?.[1];\n}\n\nexport async function getFilesToExportFromServerAsync(\n projectRoot: string,\n {\n manifest,\n renderAsync,\n // Servers can handle group routes automatically and therefore\n // don't require the build-time generation of every possible group\n // variation.\n exportServer,\n // name : contents\n files = new Map(),\n }: {\n manifest: ExpoRouterRuntimeManifest;\n renderAsync: (requestLocation: HtmlRequestLocation) => Promise<string>;\n exportServer?: boolean;\n files?: ExportAssetMap;\n }\n): Promise<ExportAssetMap> {\n await Promise.all(\n getHtmlFiles({ manifest, includeGroupVariations: !exportServer }).map(\n async ({ route, filePath, pathname }) => {\n try {\n const targetDomain = exportServer ? 'server' : 'client';\n files.set(filePath, { contents: '', targetDomain });\n const data = await renderAsync({ route, filePath, pathname });\n files.set(filePath, {\n contents: data,\n routeId: pathname,\n targetDomain,\n });\n } catch (e: any) {\n await logMetroErrorAsync({ error: e, projectRoot });\n throw new Error('Failed to statically export route: ' + pathname);\n }\n }\n )\n );\n\n return files;\n}\n\nfunction modifyRouteNodeInRuntimeManifest(\n manifest: ExpoRouterRuntimeManifest,\n callback: (route: RouteNode) => any\n) {\n const iterateScreens = (screens: ExpoRouterRuntimeManifest['screens']) => {\n Object.values(screens).map((value) => {\n if (typeof value !== 'string') {\n if (value._route) callback(value._route);\n iterateScreens(value.screens);\n }\n });\n };\n\n iterateScreens(manifest.screens);\n}\n\n// TODO: Do this earlier in the process.\nfunction makeRuntimeEntryPointsAbsolute(manifest: ExpoRouterRuntimeManifest, appDir: string) {\n modifyRouteNodeInRuntimeManifest(manifest, (route) => {\n if (Array.isArray(route.entryPoints)) {\n route.entryPoints = route.entryPoints.map((entryPoint) => {\n if (entryPoint.startsWith('.')) {\n return path.resolve(appDir, entryPoint);\n } else if (!path.isAbsolute(entryPoint)) {\n return resolveFrom(appDir, entryPoint);\n }\n return entryPoint;\n });\n }\n });\n}\n\n/** Perform all fs commits */\nasync function exportFromServerAsync(\n projectRoot: string,\n devServerManager: DevServerManager,\n { outputDir, baseUrl, exportServer, includeSourceMaps, routerRoot, files = new Map() }: Options\n): Promise<ExportAssetMap> {\n const platform = 'web';\n const isExporting = true;\n const appDir = path.join(projectRoot, routerRoot);\n const injectFaviconTag = await getVirtualFaviconAssetsAsync(projectRoot, {\n outputDir,\n baseUrl,\n files,\n });\n\n const devServer = devServerManager.getDefaultDevServer();\n assert(devServer instanceof MetroBundlerDevServer);\n\n const [resources, { manifest, serverManifest, renderAsync }] = await Promise.all([\n devServer.getStaticResourcesAsync({\n includeSourceMaps,\n }),\n devServer.getStaticRenderFunctionAsync(),\n ]);\n\n makeRuntimeEntryPointsAbsolute(manifest, appDir);\n\n debug('Routes:\\n', inspect(manifest, { colors: true, depth: null }));\n\n await getFilesToExportFromServerAsync(projectRoot, {\n files,\n manifest,\n exportServer,\n async renderAsync({ pathname, route }) {\n const template = await renderAsync(pathname);\n let html = await serializeHtmlWithAssets({\n isExporting,\n resources: resources.artifacts,\n template,\n baseUrl,\n route,\n });\n\n if (injectFaviconTag) {\n html = injectFaviconTag(html);\n }\n\n return html;\n },\n });\n\n getFilesFromSerialAssets(resources.artifacts, {\n platform,\n includeSourceMaps,\n files,\n });\n\n if (resources.assets) {\n // TODO: Collect files without writing to disk.\n // NOTE(kitten): Re. above, this is now using `files` except for iOS catalog output, which isn't used here\n await persistMetroAssetsAsync(resources.assets, {\n files,\n platform,\n outputDirectory: outputDir,\n baseUrl,\n });\n }\n\n if (exportServer) {\n const apiRoutes = await exportApiRoutesAsync({\n outputDir,\n server: devServer,\n manifest: serverManifest,\n // NOTE(kitten): For now, we always output source maps for API route exports\n includeSourceMaps: true,\n });\n\n // Add the api routes to the files to export.\n for (const [route, contents] of apiRoutes) {\n files.set(route, contents);\n }\n } else {\n warnPossibleInvalidExportType(appDir);\n }\n\n return files;\n}\n\nexport function getHtmlFiles({\n manifest,\n includeGroupVariations,\n}: {\n manifest: ExpoRouterRuntimeManifest;\n includeGroupVariations?: boolean;\n}): HtmlRequestLocation[] {\n const htmlFiles = new Set<Omit<HtmlRequestLocation, 'pathname'>>();\n\n function traverseScreens(\n screens: ExpoRouterRuntimeManifest['screens'],\n route: RouteNode | null,\n baseUrl = ''\n ) {\n for (const value of Object.values(screens)) {\n let leaf: string | null = null;\n if (typeof value === 'string') {\n leaf = value;\n } else if (Object.keys(value.screens).length === 0) {\n leaf = value.path;\n route = value._route ?? null;\n }\n\n if (leaf != null) {\n let filePath = baseUrl + leaf;\n\n if (leaf === '') {\n filePath =\n baseUrl === ''\n ? 'index'\n : baseUrl.endsWith('/')\n ? baseUrl + 'index'\n : baseUrl.slice(0, -1);\n } else if (\n // If the path is a collection of group segments leading to an index route, append `/index`.\n stripGroupSegmentsFromPath(filePath) === ''\n ) {\n filePath += '/index';\n }\n\n // This should never happen, the type of `string | object` originally comes from React Navigation.\n if (!route) {\n throw new Error(\n `Internal error: Route not found for \"${filePath}\" while collecting static export paths.`\n );\n }\n\n if (includeGroupVariations) {\n // TODO: Dedupe requests for alias routes.\n addOptionalGroups(filePath, route);\n } else {\n htmlFiles.add({\n filePath,\n route,\n });\n }\n } else if (typeof value === 'object' && value?.screens) {\n const newPath = baseUrl + value.path + '/';\n traverseScreens(value.screens, value._route ?? null, newPath);\n }\n }\n }\n\n function addOptionalGroups(path: string, route: RouteNode) {\n const variations = getPathVariations(path);\n for (const variation of variations) {\n htmlFiles.add({ filePath: variation, route });\n }\n }\n\n traverseScreens(manifest.screens, null);\n\n return uniqueBy(Array.from(htmlFiles), (value) => value.filePath).map((value) => {\n const parts = value.filePath.split('/');\n // Replace `:foo` with `[foo]` and `*foo` with `[...foo]`\n const partsWithGroups = parts.map((part) => {\n if (part === '*not-found') {\n return `+not-found`;\n } else if (part.startsWith(':')) {\n return `[${part.slice(1)}]`;\n } else if (part.startsWith('*')) {\n return `[...${part.slice(1)}]`;\n }\n return part;\n });\n const filePathLocation = partsWithGroups.join('/');\n const filePath = filePathLocation + '.html';\n return {\n ...value,\n filePath,\n pathname: filePathLocation.replace(/(\\/?index)?$/, ''),\n };\n });\n}\n\nfunction uniqueBy<T>(array: T[], key: (value: T) => string): T[] {\n const seen = new Set<string>();\n const result: T[] = [];\n for (const value of array) {\n const id = key(value);\n if (!seen.has(id)) {\n seen.add(id);\n result.push(value);\n }\n }\n return result;\n}\n\n// Given a route like `(foo)/bar/(baz)`, return all possible variations of the route.\n// e.g. `(foo)/bar/(baz)`, `(foo)/bar/baz`, `foo/bar/(baz)`, `foo/bar/baz`,\nexport function getPathVariations(routePath: string): string[] {\n const variations = new Set<string>();\n const segments = routePath.split('/');\n\n function generateVariations(segments: string[], current = ''): void {\n if (segments.length === 0) {\n if (current) variations.add(current);\n return;\n }\n\n const [head, ...rest] = segments;\n\n if (matchGroupName(head)) {\n const groups = head.slice(1, -1).split(',');\n\n if (groups.length > 1) {\n for (const group of groups) {\n // If there are multiple groups, recurse on each group.\n generateVariations([`(${group.trim()})`, ...rest], current);\n }\n return;\n } else {\n // Start a fork where this group is included\n generateVariations(rest, current ? `${current}/(${groups[0]})` : `(${groups[0]})`);\n // This code will continue and add paths without this group included`\n }\n } else if (current) {\n current = `${current}/${head}`;\n } else {\n current = head;\n }\n\n generateVariations(rest, current);\n }\n\n generateVariations(segments);\n\n return Array.from(variations);\n}\n\nasync function exportApiRoutesAsync({\n includeSourceMaps,\n outputDir,\n server,\n ...props\n}: Pick<Options, 'outputDir' | 'includeSourceMaps'> & {\n server: MetroBundlerDevServer;\n manifest: ExpoRouterServerManifestV1;\n}): Promise<ExportAssetMap> {\n const { manifest, files } = await server.exportExpoRouterApiRoutesAsync({\n outputDir: '_expo/functions',\n prerenderManifest: props.manifest,\n includeSourceMaps,\n });\n\n Log.log(chalk.bold`Exporting ${files.size} API Routes.`);\n\n files.set('_expo/routes.json', {\n contents: JSON.stringify(manifest, null, 2),\n targetDomain: 'server',\n });\n\n return files;\n}\n\nfunction warnPossibleInvalidExportType(appDir: string) {\n const apiRoutes = getApiRoutesForDirectory(appDir);\n if (apiRoutes.length) {\n // TODO: Allow API Routes for native-only.\n Log.warn(\n chalk.yellow`Skipping export for API routes because \\`web.output\\` is not \"server\". You may want to remove the routes: ${apiRoutes\n .map((v) => path.relative(appDir, v))\n .join(', ')}`\n );\n }\n}\n"],"names":["unstable_exportStaticAsync","getFilesToExportFromServerAsync","getHtmlFiles","getPathVariations","debug","require","projectRoot","options","Log","log","learnMore","port","getFreePortAsync","devServerManager","DevServerManager","minify","mode","isExporting","location","resetDevServer","clear","maxWorkers","startAsync","type","exportFromServerAsync","stopAsync","matchGroupName","name","match","manifest","renderAsync","exportServer","files","Map","Promise","all","includeGroupVariations","map","route","filePath","pathname","targetDomain","set","contents","data","routeId","e","logMetroErrorAsync","error","Error","modifyRouteNodeInRuntimeManifest","callback","iterateScreens","screens","Object","values","value","_route","makeRuntimeEntryPointsAbsolute","appDir","Array","isArray","entryPoints","entryPoint","startsWith","path","resolve","isAbsolute","resolveFrom","outputDir","baseUrl","includeSourceMaps","routerRoot","platform","join","injectFaviconTag","getVirtualFaviconAssetsAsync","devServer","getDefaultDevServer","assert","MetroBundlerDevServer","resources","serverManifest","getStaticResourcesAsync","getStaticRenderFunctionAsync","inspect","colors","depth","template","html","serializeHtmlWithAssets","artifacts","getFilesFromSerialAssets","assets","persistMetroAssetsAsync","outputDirectory","apiRoutes","exportApiRoutesAsync","server","warnPossibleInvalidExportType","htmlFiles","Set","traverseScreens","leaf","keys","length","endsWith","slice","stripGroupSegmentsFromPath","addOptionalGroups","add","newPath","variations","variation","uniqueBy","from","parts","split","partsWithGroups","part","filePathLocation","replace","array","key","seen","result","id","has","push","routePath","segments","generateVariations","current","head","rest","groups","group","trim","props","exportExpoRouterApiRoutesAsync","prerenderManifest","chalk","bold","size","JSON","stringify","getApiRoutesForDirectory","warn","yellow","v","relative"],"mappings":"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"}
@@ -2,15 +2,47 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.getUserDefinedFaviconFile = getUserDefinedFaviconFile;
6
- exports.getVirtualFaviconAssetsAsync = getVirtualFaviconAssetsAsync;
7
- exports.getFaviconFromExpoConfigAsync = getFaviconFromExpoConfigAsync;
8
- var _config = require("@expo/config");
9
- var _imageUtils = require("@expo/image-utils");
10
- var _fs = _interopRequireDefault(require("fs"));
11
- var _path = _interopRequireDefault(require("path"));
12
- var _publicFolder = require("./publicFolder");
13
- var _log = require("../log");
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ getUserDefinedFaviconFile: ()=>getUserDefinedFaviconFile,
13
+ getVirtualFaviconAssetsAsync: ()=>getVirtualFaviconAssetsAsync,
14
+ getFaviconFromExpoConfigAsync: ()=>getFaviconFromExpoConfigAsync
15
+ });
16
+ function _config() {
17
+ const data = require("@expo/config");
18
+ _config = function() {
19
+ return data;
20
+ };
21
+ return data;
22
+ }
23
+ function _imageUtils() {
24
+ const data = require("@expo/image-utils");
25
+ _imageUtils = function() {
26
+ return data;
27
+ };
28
+ return data;
29
+ }
30
+ function _fs() {
31
+ const data = /*#__PURE__*/ _interopRequireDefault(require("fs"));
32
+ _fs = function() {
33
+ return data;
34
+ };
35
+ return data;
36
+ }
37
+ function _path() {
38
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
39
+ _path = function() {
40
+ return data;
41
+ };
42
+ return data;
43
+ }
44
+ const _publicFolder = require("./publicFolder");
45
+ const _log = require("../log");
14
46
  function _interopRequireDefault(obj) {
15
47
  return obj && obj.__esModule ? obj : {
16
48
  default: obj
@@ -18,7 +50,7 @@ function _interopRequireDefault(obj) {
18
50
  }
19
51
  const debug = require("debug")("expo:favicon");
20
52
  function getUserDefinedFaviconFile(projectRoot) {
21
- return (0, _publicFolder).getUserDefinedFile(projectRoot, [
53
+ return (0, _publicFolder.getUserDefinedFile)(projectRoot, [
22
54
  "./favicon.ico"
23
55
  ]);
24
56
  }
@@ -35,7 +67,7 @@ async function getVirtualFaviconAssetsAsync(projectRoot, { baseUrl , outputDir ,
35
67
  await Promise.all([
36
68
  data
37
69
  ].map(async (asset)=>{
38
- const assetPath = _path.default.join(outputDir, asset.path);
70
+ const assetPath = _path().default.join(outputDir, asset.path);
39
71
  if (files) {
40
72
  debug("Storing asset for persisting: " + assetPath);
41
73
  files == null ? void 0 : files.set(asset.path, {
@@ -44,7 +76,7 @@ async function getVirtualFaviconAssetsAsync(projectRoot, { baseUrl , outputDir ,
44
76
  });
45
77
  } else {
46
78
  debug("Writing asset to disk: " + assetPath);
47
- await _fs.default.promises.writeFile(assetPath, asset.source);
79
+ await _fs().default.promises.writeFile(assetPath, asset.source);
48
80
  }
49
81
  }));
50
82
  function injectFaviconTag(html) {
@@ -57,7 +89,7 @@ async function getVirtualFaviconAssetsAsync(projectRoot, { baseUrl , outputDir ,
57
89
  }
58
90
  async function getFaviconFromExpoConfigAsync(projectRoot, { force =false } = {}) {
59
91
  var ref;
60
- const { exp } = (0, _config).getConfig(projectRoot);
92
+ const { exp } = (0, _config().getConfig)(projectRoot);
61
93
  var ref1;
62
94
  const src = (ref1 = (ref = exp.web) == null ? void 0 : ref.favicon) != null ? ref1 : null;
63
95
  if (!src) {
@@ -71,7 +103,7 @@ async function getFaviconFromExpoConfigAsync(projectRoot, { force =false } = {}
71
103
  const cacheType = "favicon";
72
104
  const size = dims[dims.length - 1];
73
105
  try {
74
- const { source } = await (0, _imageUtils).generateImageAsync({
106
+ const { source } = await (0, _imageUtils().generateImageAsync)({
75
107
  projectRoot,
76
108
  cacheType
77
109
  }, {
@@ -82,7 +114,7 @@ async function getFaviconFromExpoConfigAsync(projectRoot, { force =false } = {}
82
114
  height: size,
83
115
  name: `favicon-${size}.png`
84
116
  });
85
- const faviconBuffer = await (0, _imageUtils).generateFaviconAsync(source, dims);
117
+ const faviconBuffer = await (0, _imageUtils().generateFaviconAsync)(source, dims);
86
118
  return {
87
119
  source: faviconBuffer,
88
120
  path: "favicon.ico"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/export/favicon.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport { generateFaviconAsync, generateImageAsync } from '@expo/image-utils';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { getUserDefinedFile } from './publicFolder';\nimport { ExportAssetMap } from './saveAssets';\nimport { Log } from '../log';\n\nconst debug = require('debug')('expo:favicon') as typeof console.log;\n\n/** @returns the file system path for a user-defined favicon.ico file in the public folder. */\nexport function getUserDefinedFaviconFile(projectRoot: string): string | null {\n return getUserDefinedFile(projectRoot, ['./favicon.ico']);\n}\n\nexport async function getVirtualFaviconAssetsAsync(\n projectRoot: string,\n { baseUrl, outputDir, files }: { outputDir: string; baseUrl: string; files?: ExportAssetMap }\n): Promise<((html: string) => string) | null> {\n const existing = getUserDefinedFaviconFile(projectRoot);\n if (existing) {\n debug('Using user-defined favicon.ico file.');\n return null;\n }\n\n const data = await getFaviconFromExpoConfigAsync(projectRoot);\n\n if (!data) {\n return null;\n }\n\n await Promise.all(\n [data].map(async (asset) => {\n const assetPath = path.join(outputDir, asset.path);\n if (files) {\n debug('Storing asset for persisting: ' + assetPath);\n files?.set(asset.path, {\n contents: asset.source,\n targetDomain: 'client',\n });\n } else {\n debug('Writing asset to disk: ' + assetPath);\n await fs.promises.writeFile(assetPath, asset.source);\n }\n })\n );\n\n function injectFaviconTag(html: string): string {\n if (!html.includes('</head>')) {\n return html;\n }\n return html.replace(\n '</head>',\n `<link rel=\"shortcut icon\" href=\"${baseUrl}/favicon.ico\" /></head>`\n );\n }\n\n return injectFaviconTag;\n}\n\nexport async function getFaviconFromExpoConfigAsync(\n projectRoot: string,\n { force = false }: { force?: boolean } = {}\n) {\n const { exp } = getConfig(projectRoot);\n\n const src = exp.web?.favicon ?? null;\n if (!src) {\n return null;\n }\n\n const dims = [16, 32, 48];\n const cacheType = 'favicon';\n\n const size = dims[dims.length - 1];\n try {\n const { source } = await generateImageAsync(\n { projectRoot, cacheType },\n {\n resizeMode: 'contain',\n src,\n backgroundColor: 'transparent',\n width: size,\n height: size,\n name: `favicon-${size}.png`,\n }\n );\n\n const faviconBuffer = await generateFaviconAsync(source, dims);\n\n return { source: faviconBuffer, path: 'favicon.ico' };\n } catch (error: any) {\n // Check for ENOENT\n if (!force && error.code === 'ENOENT') {\n Log.warn(`Favicon source file in Expo config (web.favicon) does not exist: ${src}`);\n return null;\n }\n throw error;\n }\n}\n"],"names":["getUserDefinedFaviconFile","getVirtualFaviconAssetsAsync","getFaviconFromExpoConfigAsync","debug","require","projectRoot","getUserDefinedFile","baseUrl","outputDir","files","existing","data","Promise","all","map","asset","assetPath","path","join","set","contents","source","targetDomain","fs","promises","writeFile","injectFaviconTag","html","includes","replace","force","exp","getConfig","src","web","favicon","dims","cacheType","size","length","generateImageAsync","resizeMode","backgroundColor","width","height","name","faviconBuffer","generateFaviconAsync","error","code","Log","warn"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/export/favicon.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport { generateFaviconAsync, generateImageAsync } from '@expo/image-utils';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { getUserDefinedFile } from './publicFolder';\nimport { ExportAssetMap } from './saveAssets';\nimport { Log } from '../log';\n\nconst debug = require('debug')('expo:favicon') as typeof console.log;\n\n/** @returns the file system path for a user-defined favicon.ico file in the public folder. */\nexport function getUserDefinedFaviconFile(projectRoot: string): string | null {\n return getUserDefinedFile(projectRoot, ['./favicon.ico']);\n}\n\nexport async function getVirtualFaviconAssetsAsync(\n projectRoot: string,\n { baseUrl, outputDir, files }: { outputDir: string; baseUrl: string; files?: ExportAssetMap }\n): Promise<((html: string) => string) | null> {\n const existing = getUserDefinedFaviconFile(projectRoot);\n if (existing) {\n debug('Using user-defined favicon.ico file.');\n return null;\n }\n\n const data = await getFaviconFromExpoConfigAsync(projectRoot);\n\n if (!data) {\n return null;\n }\n\n await Promise.all(\n [data].map(async (asset) => {\n const assetPath = path.join(outputDir, asset.path);\n if (files) {\n debug('Storing asset for persisting: ' + assetPath);\n files?.set(asset.path, {\n contents: asset.source,\n targetDomain: 'client',\n });\n } else {\n debug('Writing asset to disk: ' + assetPath);\n await fs.promises.writeFile(assetPath, asset.source);\n }\n })\n );\n\n function injectFaviconTag(html: string): string {\n if (!html.includes('</head>')) {\n return html;\n }\n return html.replace(\n '</head>',\n `<link rel=\"shortcut icon\" href=\"${baseUrl}/favicon.ico\" /></head>`\n );\n }\n\n return injectFaviconTag;\n}\n\nexport async function getFaviconFromExpoConfigAsync(\n projectRoot: string,\n { force = false }: { force?: boolean } = {}\n) {\n const { exp } = getConfig(projectRoot);\n\n const src = exp.web?.favicon ?? null;\n if (!src) {\n return null;\n }\n\n const dims = [16, 32, 48];\n const cacheType = 'favicon';\n\n const size = dims[dims.length - 1];\n try {\n const { source } = await generateImageAsync(\n { projectRoot, cacheType },\n {\n resizeMode: 'contain',\n src,\n backgroundColor: 'transparent',\n width: size,\n height: size,\n name: `favicon-${size}.png`,\n }\n );\n\n const faviconBuffer = await generateFaviconAsync(source, dims);\n\n return { source: faviconBuffer, path: 'favicon.ico' };\n } catch (error: any) {\n // Check for ENOENT\n if (!force && error.code === 'ENOENT') {\n Log.warn(`Favicon source file in Expo config (web.favicon) does not exist: ${src}`);\n return null;\n }\n throw error;\n }\n}\n"],"names":["getUserDefinedFaviconFile","getVirtualFaviconAssetsAsync","getFaviconFromExpoConfigAsync","debug","require","projectRoot","getUserDefinedFile","baseUrl","outputDir","files","existing","data","Promise","all","map","asset","assetPath","path","join","set","contents","source","targetDomain","fs","promises","writeFile","injectFaviconTag","html","includes","replace","force","exp","getConfig","src","web","favicon","dims","cacheType","size","length","generateImageAsync","resizeMode","backgroundColor","width","height","name","faviconBuffer","generateFaviconAsync","error","code","Log","warn"],"mappings":"AAAA;;;;;;;;;;;IAYgBA,yBAAyB,MAAzBA,yBAAyB;IAInBC,4BAA4B,MAA5BA,4BAA4B;IA6C5BC,6BAA6B,MAA7BA,6BAA6B;;;yBA7DzB,cAAc;;;;;;;yBACiB,mBAAmB;;;;;;;8DAC7D,IAAI;;;;;;;8DACF,MAAM;;;;;;8BAEY,gBAAgB;qBAE/B,QAAQ;;;;;;AAE5B,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,AAAsB,AAAC;AAG9D,SAASJ,yBAAyB,CAACK,WAAmB,EAAiB;IAC5E,OAAOC,IAAAA,aAAkB,mBAAA,EAACD,WAAW,EAAE;QAAC,eAAe;KAAC,CAAC,CAAC;AAC5D,CAAC;AAEM,eAAeJ,4BAA4B,CAChDI,WAAmB,EACnB,EAAEE,OAAO,CAAA,EAAEC,SAAS,CAAA,EAAEC,KAAK,CAAA,EAAkE,EACjD;IAC5C,MAAMC,QAAQ,GAAGV,yBAAyB,CAACK,WAAW,CAAC,AAAC;IACxD,IAAIK,QAAQ,EAAE;QACZP,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMQ,IAAI,GAAG,MAAMT,6BAA6B,CAACG,WAAW,CAAC,AAAC;IAE9D,IAAI,CAACM,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMC,OAAO,CAACC,GAAG,CACf;QAACF,IAAI;KAAC,CAACG,GAAG,CAAC,OAAOC,KAAK,GAAK;QAC1B,MAAMC,SAAS,GAAGC,KAAI,EAAA,QAAA,CAACC,IAAI,CAACV,SAAS,EAAEO,KAAK,CAACE,IAAI,CAAC,AAAC;QACnD,IAAIR,KAAK,EAAE;YACTN,KAAK,CAAC,gCAAgC,GAAGa,SAAS,CAAC,CAAC;YACpDP,KAAK,QAAK,GAAVA,KAAAA,CAAU,GAAVA,KAAK,CAAEU,GAAG,CAACJ,KAAK,CAACE,IAAI,EAAE;gBACrBG,QAAQ,EAAEL,KAAK,CAACM,MAAM;gBACtBC,YAAY,EAAE,QAAQ;aACvB,CAAC,CAAC;QACL,OAAO;YACLnB,KAAK,CAAC,yBAAyB,GAAGa,SAAS,CAAC,CAAC;YAC7C,MAAMO,GAAE,EAAA,QAAA,CAACC,QAAQ,CAACC,SAAS,CAACT,SAAS,EAAED,KAAK,CAACM,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,SAASK,gBAAgB,CAACC,IAAY,EAAU;QAC9C,IAAI,CAACA,IAAI,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC7B,OAAOD,IAAI,CAAC;QACd,CAAC;QACD,OAAOA,IAAI,CAACE,OAAO,CACjB,SAAS,EACT,CAAC,gCAAgC,EAAEtB,OAAO,CAAC,uBAAuB,CAAC,CACpE,CAAC;IACJ,CAAC;IAED,OAAOmB,gBAAgB,CAAC;AAC1B,CAAC;AAEM,eAAexB,6BAA6B,CACjDG,WAAmB,EACnB,EAAEyB,KAAK,EAAG,KAAK,CAAA,EAAuB,GAAG,EAAE,EAC3C;QAGYC,GAAO;IAFnB,MAAM,EAAEA,GAAG,CAAA,EAAE,GAAGC,IAAAA,OAAS,EAAA,UAAA,EAAC3B,WAAW,CAAC,AAAC;QAE3B0B,IAAgB;IAA5B,MAAME,GAAG,GAAGF,CAAAA,IAAgB,GAAhBA,CAAAA,GAAO,GAAPA,GAAG,CAACG,GAAG,SAAS,GAAhBH,KAAAA,CAAgB,GAAhBA,GAAO,CAAEI,OAAO,YAAhBJ,IAAgB,GAAI,IAAI,AAAC;IACrC,IAAI,CAACE,GAAG,EAAE;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMG,IAAI,GAAG;AAAC,UAAE;AAAE,UAAE;AAAE,UAAE;KAAC,AAAC;IAC1B,MAAMC,SAAS,GAAG,SAAS,AAAC;IAE5B,MAAMC,IAAI,GAAGF,IAAI,CAACA,IAAI,CAACG,MAAM,GAAG,CAAC,CAAC,AAAC;IACnC,IAAI;QACF,MAAM,EAAElB,MAAM,CAAA,EAAE,GAAG,MAAMmB,IAAAA,WAAkB,EAAA,mBAAA,EACzC;YAAEnC,WAAW;YAAEgC,SAAS;SAAE,EAC1B;YACEI,UAAU,EAAE,SAAS;YACrBR,GAAG;YACHS,eAAe,EAAE,aAAa;YAC9BC,KAAK,EAAEL,IAAI;YACXM,MAAM,EAAEN,IAAI;YACZO,IAAI,EAAE,CAAC,QAAQ,EAAEP,IAAI,CAAC,IAAI,CAAC;SAC5B,CACF,AAAC;QAEF,MAAMQ,aAAa,GAAG,MAAMC,IAAAA,WAAoB,EAAA,qBAAA,EAAC1B,MAAM,EAAEe,IAAI,CAAC,AAAC;QAE/D,OAAO;YAAEf,MAAM,EAAEyB,aAAa;YAAE7B,IAAI,EAAE,aAAa;SAAE,CAAC;IACxD,EAAE,OAAO+B,KAAK,EAAO;QACnB,mBAAmB;QACnB,IAAI,CAAClB,KAAK,IAAIkB,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;YACrCC,IAAG,IAAA,CAACC,IAAI,CAAC,CAAC,iEAAiE,EAAElB,GAAG,CAAC,CAAC,CAAC,CAAC;YACpF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAMe,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}