@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,70 +1,139 @@
1
- "use strict";
1
+ /**
2
+ * Copyright © 2023 650 Industries.
3
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ *
8
+ * Fork of the jest resolver but with additional settings for Metro and pnp removed.
9
+ * https://github.com/jestjs/jest/blob/d1a2ed7fea4bdc19836274cd810c8360e3ab62f3/packages/jest-resolve/src/defaultResolver.ts#L1
10
+ */ "use strict";
2
11
  Object.defineProperty(exports, "__esModule", {
3
12
  value: true
4
13
  });
5
- exports.default = void 0;
6
- var _assert = _interopRequireDefault(require("assert"));
7
- var _path = require("path");
8
- var _resolve = require("resolve");
9
- var resolve = _interopRequireWildcard(require("resolve.exports"));
10
- var _dir = require("../../../utils/dir");
14
+ Object.defineProperty(exports, "default", {
15
+ enumerable: true,
16
+ get: ()=>_default
17
+ });
18
+ function _assert() {
19
+ const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
20
+ _assert = function() {
21
+ return data;
22
+ };
23
+ return data;
24
+ }
25
+ function _fs() {
26
+ const data = /*#__PURE__*/ _interopRequireDefault(require("fs"));
27
+ _fs = function() {
28
+ return data;
29
+ };
30
+ return data;
31
+ }
32
+ function _path() {
33
+ const data = require("path");
34
+ _path = function() {
35
+ return data;
36
+ };
37
+ return data;
38
+ }
39
+ function _resolve() {
40
+ const data = require("resolve");
41
+ _resolve = function() {
42
+ return data;
43
+ };
44
+ return data;
45
+ }
46
+ function _resolveExports() {
47
+ const data = /*#__PURE__*/ _interopRequireWildcard(require("resolve.exports"));
48
+ _resolveExports = function() {
49
+ return data;
50
+ };
51
+ return data;
52
+ }
53
+ const _dir = require("../../../utils/dir");
11
54
  function _interopRequireDefault(obj) {
12
55
  return obj && obj.__esModule ? obj : {
13
56
  default: obj
14
57
  };
15
58
  }
16
- function _interopRequireWildcard(obj) {
17
- if (obj && obj.__esModule) {
59
+ function _getRequireWildcardCache(nodeInterop) {
60
+ if (typeof WeakMap !== "function") return null;
61
+ var cacheBabelInterop = new WeakMap();
62
+ var cacheNodeInterop = new WeakMap();
63
+ return (_getRequireWildcardCache = function(nodeInterop) {
64
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
65
+ })(nodeInterop);
66
+ }
67
+ function _interopRequireWildcard(obj, nodeInterop) {
68
+ if (!nodeInterop && obj && obj.__esModule) {
18
69
  return obj;
19
- } else {
20
- var newObj = {};
21
- if (obj != null) {
22
- for(var key in obj){
23
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
24
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
25
- if (desc.get || desc.set) {
26
- Object.defineProperty(newObj, key, desc);
27
- } else {
28
- newObj[key] = obj[key];
29
- }
30
- }
70
+ }
71
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
72
+ return {
73
+ default: obj
74
+ };
75
+ }
76
+ var cache = _getRequireWildcardCache(nodeInterop);
77
+ if (cache && cache.has(obj)) {
78
+ return cache.get(obj);
79
+ }
80
+ var newObj = {};
81
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
82
+ for(var key in obj){
83
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
84
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
85
+ if (desc && (desc.get || desc.set)) {
86
+ Object.defineProperty(newObj, key, desc);
87
+ } else {
88
+ newObj[key] = obj[key];
31
89
  }
32
90
  }
33
- newObj.default = obj;
34
- return newObj;
35
91
  }
92
+ newObj.default = obj;
93
+ if (cache) {
94
+ cache.set(obj, newObj);
95
+ }
96
+ return newObj;
36
97
  }
37
98
  const defaultResolver = (path, { enablePackageExports , blockList =[] , ...options })=>{
38
99
  // @ts-expect-error
39
100
  const resolveOptions = {
40
101
  ...options,
41
102
  isDirectory (file) {
42
- if (blockList.some((regex)=>regex.test(file)
43
- )) {
103
+ if (blockList.some((regex)=>regex.test(file))) {
44
104
  return false;
45
105
  }
46
- return (0, _dir).directoryExistsSync(file);
106
+ return (0, _dir.directoryExistsSync)(file);
47
107
  },
48
108
  isFile (file) {
49
- if (blockList.some((regex)=>regex.test(file)
50
- )) {
109
+ if (blockList.some((regex)=>regex.test(file))) {
51
110
  return false;
52
111
  }
53
- return (0, _dir).fileExistsSync(file);
112
+ return (0, _dir.fileExistsSync)(file);
113
+ },
114
+ pathExists (file) {
115
+ if (blockList.some((regex)=>regex.test(file))) {
116
+ return false;
117
+ }
118
+ try {
119
+ _fs().default.accessSync(path, _fs().default.constants.F_OK);
120
+ return true; // File exists
121
+ } catch {
122
+ return false; // File doesn't exist
123
+ }
54
124
  },
55
125
  preserveSymlinks: options.preserveSymlinks,
56
126
  defaultResolver
57
127
  };
58
128
  // resolveSync dereferences symlinks to ensure we don't create a separate
59
129
  // module instance depending on how it was referenced.
60
- const result = (0, _resolve).sync(enablePackageExports ? getPathInModule(path, resolveOptions) : path, {
130
+ const result = (0, _resolve().sync)(enablePackageExports ? getPathInModule(path, resolveOptions) : path, {
61
131
  ...resolveOptions,
62
132
  preserveSymlinks: !options.preserveSymlinks
63
133
  });
64
134
  return result;
65
135
  };
66
- var _default = defaultResolver;
67
- exports.default = _default;
136
+ const _default = defaultResolver;
68
137
  /*
69
138
  * helper functions
70
139
  */ function getPathInModule(path, options) {
@@ -73,47 +142,49 @@ exports.default = _default;
73
142
  }
74
143
  const segments = path.split("/");
75
144
  let moduleName = segments.shift();
76
- if (moduleName) {
77
- if (moduleName.startsWith("@")) {
78
- moduleName = `${moduleName}/${segments.shift()}`;
79
- }
80
- // Disable package exports for babel/runtime for https://github.com/facebook/metro/issues/984/
81
- if (moduleName === "@babel/runtime") {
82
- return path;
83
- }
84
- // self-reference
85
- const closestPackageJson = findClosestPackageJson(options.basedir, options);
86
- if (closestPackageJson) {
87
- const pkg = options.readPackageSync(options.readFileSync, closestPackageJson);
88
- (0, _assert).default(pkg, "package.json should be read by `readPackageSync`");
89
- if (pkg.name === moduleName) {
90
- const resolved = resolve.exports(pkg, segments.join("/") || ".", createResolveOptions(options.conditions));
91
- if (resolved) {
92
- return (0, _path).resolve((0, _path).dirname(closestPackageJson), resolved[0]);
93
- }
94
- if (pkg.exports) {
95
- throw new Error("`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue");
96
- }
97
- }
98
- }
99
- let packageJsonPath = "";
100
- try {
101
- packageJsonPath = (0, _resolve).sync(`${moduleName}/package.json`, options);
102
- } catch {
103
- // ignore if package.json cannot be found
104
- }
105
- if (packageJsonPath && options.isFile(packageJsonPath)) {
106
- const pkg = options.readPackageSync(options.readFileSync, packageJsonPath);
107
- (0, _assert).default(pkg, "package.json should be read by `readPackageSync`");
108
- const resolved = resolve.exports(pkg, segments.join("/") || ".", createResolveOptions(options.conditions));
145
+ if (!moduleName) {
146
+ return path;
147
+ }
148
+ if (moduleName.startsWith("@")) {
149
+ moduleName = `${moduleName}/${segments.shift()}`;
150
+ }
151
+ // Disable package exports for babel/runtime for https://github.com/facebook/metro/issues/984/
152
+ if (moduleName === "@babel/runtime") {
153
+ return path;
154
+ }
155
+ // self-reference
156
+ const closestPackageJson = findClosestPackageJson(options.basedir, options);
157
+ if (closestPackageJson) {
158
+ const pkg = options.readPackageSync(options.readFileSync, closestPackageJson);
159
+ (0, _assert().default)(pkg, "package.json should be read by `readPackageSync`");
160
+ if (pkg.name === moduleName) {
161
+ const resolved = _resolveExports().exports(pkg, segments.join("/") || ".", createResolveOptions(options.conditions));
109
162
  if (resolved) {
110
- return (0, _path).resolve((0, _path).dirname(packageJsonPath), resolved[0]);
163
+ return (0, _path().resolve)((0, _path().dirname)(closestPackageJson), resolved[0]);
111
164
  }
112
165
  if (pkg.exports) {
113
166
  throw new Error("`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue");
114
167
  }
115
168
  }
116
169
  }
170
+ let packageJsonPath = "";
171
+ try {
172
+ packageJsonPath = (0, _resolve().sync)(`${moduleName}/package.json`, options);
173
+ } catch {
174
+ // ignore if package.json cannot be found
175
+ }
176
+ if (!packageJsonPath) {
177
+ return path;
178
+ }
179
+ const pkg1 = options.readPackageSync(options.readFileSync, packageJsonPath);
180
+ (0, _assert().default)(pkg1, "package.json should be read by `readPackageSync`");
181
+ const resolved1 = _resolveExports().exports(pkg1, segments.join("/") || ".", createResolveOptions(options.conditions));
182
+ if (resolved1) {
183
+ return (0, _path().resolve)((0, _path().dirname)(packageJsonPath), resolved1[0]);
184
+ }
185
+ if (pkg1.exports) {
186
+ throw new Error("`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue");
187
+ }
117
188
  return path;
118
189
  }
119
190
  function createResolveOptions(conditions) {
@@ -126,23 +197,22 @@ function createResolveOptions(conditions) {
126
197
  };
127
198
  }
128
199
  // if it's a relative import or an absolute path, imports/exports are ignored
129
- const shouldIgnoreRequestForExports = (path)=>path.startsWith(".") || (0, _path).isAbsolute(path)
130
- ;
200
+ const shouldIgnoreRequestForExports = (path)=>path.startsWith(".") || (0, _path().isAbsolute)(path);
131
201
  // adapted from
132
202
  // https://github.com/lukeed/escalade/blob/2477005062cdbd8407afc90d3f48f4930354252b/src/sync.js
133
203
  function findClosestPackageJson(start, options) {
134
- let dir = (0, _path).resolve(".", start);
204
+ let dir = (0, _path().resolve)(".", start);
135
205
  if (!options.isDirectory(dir)) {
136
- dir = (0, _path).dirname(dir);
206
+ dir = (0, _path().dirname)(dir);
137
207
  }
138
208
  while(true){
139
- const pkgJsonFile = (0, _path).resolve(dir, "./package.json");
140
- const hasPackageJson = options.isFile(pkgJsonFile);
209
+ const pkgJsonFile = (0, _path().resolve)(dir, "./package.json");
210
+ const hasPackageJson = options.pathExists(pkgJsonFile);
141
211
  if (hasPackageJson) {
142
212
  return pkgJsonFile;
143
213
  }
144
214
  const prevDir = dir;
145
- dir = (0, _path).dirname(dir);
215
+ dir = (0, _path().dirname)(dir);
146
216
  if (prevDir === dir) {
147
217
  return undefined;
148
218
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/metro/createJResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\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 *\n * Fork of the jest resolver but with additional settings for Metro and pnp removed.\n * https://github.com/jestjs/jest/blob/d1a2ed7fea4bdc19836274cd810c8360e3ab62f3/packages/jest-resolve/src/defaultResolver.ts#L1\n */\nimport type { JSONObject as PackageJSON } from '@expo/json-file';\nimport assert from 'assert';\nimport { dirname, isAbsolute, resolve as pathResolve } from 'path';\nimport { sync as resolveSync, SyncOpts as UpstreamResolveOptions } from 'resolve';\nimport * as resolve from 'resolve.exports';\n\nimport { directoryExistsSync, fileExistsSync } from '../../../utils/dir';\n\n/**\n * Allows transforming parsed `package.json` contents.\n *\n * @param pkg - Parsed `package.json` contents.\n * @param file - Path to `package.json` file.\n * @param dir - Directory that contains the `package.json`.\n *\n * @returns Transformed `package.json` contents.\n */\ntype PackageFilter = (pkg: PackageJSON, file: string, dir: string) => PackageJSON;\n\n/**\n * Allows transforming a path within a package.\n *\n * @param pkg - Parsed `package.json` contents.\n * @param path - Path being resolved.\n * @param relativePath - Path relative from the `package.json` location.\n *\n * @returns Relative path that will be joined from the `package.json` location.\n */\ntype PathFilter = (pkg: PackageJSON, path: string, relativePath: string) => string;\n\ntype ResolverOptions = {\n /** Directory to begin resolving from. */\n basedir: string;\n /** List of export conditions. */\n conditions?: string[];\n /** Instance of default resolver. */\n defaultResolver: typeof defaultResolver;\n /** List of file extensions to search in order. */\n extensions?: string[];\n /**\n * List of directory names to be looked up for modules recursively.\n *\n * @defaultValue\n * The default is `['node_modules']`.\n */\n moduleDirectory?: string[];\n /**\n * List of `require.paths` to use if nothing is found in `node_modules`.\n *\n * @defaultValue\n * The default is `undefined`.\n */\n paths?: string[];\n /** Allows transforming parsed `package.json` contents. */\n packageFilter?: PackageFilter;\n /** Allows transforms a path within a package. */\n pathFilter?: PathFilter;\n /** Current root directory. */\n rootDir?: string;\n\n enablePackageExports?: boolean;\n\n blockList: RegExp[];\n\n getPackageForModule: import('metro-resolver').CustomResolutionContext['getPackageForModule'];\n} & Pick<\n UpstreamResolveOptions,\n | 'readPackageSync'\n | 'realpathSync'\n | 'moduleDirectory'\n | 'extensions'\n | 'preserveSymlinks'\n | 'includeCoreModules'\n>;\n\ntype UpstreamResolveOptionsWithConditions = UpstreamResolveOptions & ResolverOptions;\n\nconst defaultResolver = (\n path: string,\n {\n enablePackageExports,\n blockList = [],\n ...options\n }: Omit<ResolverOptions, 'defaultResolver' | 'getPackageForModule'>\n): string => {\n // @ts-expect-error\n const resolveOptions: UpstreamResolveOptionsWithConditions = {\n ...options,\n\n isDirectory(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n return directoryExistsSync(file);\n },\n isFile(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n return fileExistsSync(file);\n },\n preserveSymlinks: options.preserveSymlinks,\n defaultResolver,\n };\n\n // resolveSync dereferences symlinks to ensure we don't create a separate\n // module instance depending on how it was referenced.\n const result = resolveSync(enablePackageExports ? getPathInModule(path, resolveOptions) : path, {\n ...resolveOptions,\n preserveSymlinks: !options.preserveSymlinks,\n });\n\n return result;\n};\n\nexport default defaultResolver;\n\n/*\n * helper functions\n */\n\nfunction getPathInModule(path: string, options: UpstreamResolveOptionsWithConditions): string {\n if (shouldIgnoreRequestForExports(path)) {\n return path;\n }\n\n const segments = path.split('/');\n\n let moduleName = segments.shift();\n\n if (moduleName) {\n if (moduleName.startsWith('@')) {\n moduleName = `${moduleName}/${segments.shift()}`;\n }\n\n // Disable package exports for babel/runtime for https://github.com/facebook/metro/issues/984/\n if (moduleName === '@babel/runtime') {\n return path;\n }\n\n // self-reference\n const closestPackageJson = findClosestPackageJson(options.basedir, options);\n if (closestPackageJson) {\n const pkg = options.readPackageSync!(options.readFileSync!, closestPackageJson);\n assert(pkg, 'package.json should be read by `readPackageSync`');\n\n if (pkg.name === moduleName) {\n const resolved = resolve.exports(\n pkg,\n (segments.join('/') || '.') as resolve.Exports.Entry,\n createResolveOptions(options.conditions)\n );\n\n if (resolved) {\n return pathResolve(dirname(closestPackageJson), resolved[0]);\n }\n\n if (pkg.exports) {\n throw new Error(\n \"`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue\"\n );\n }\n }\n }\n\n let packageJsonPath = '';\n\n try {\n packageJsonPath = resolveSync(`${moduleName}/package.json`, options);\n } catch {\n // ignore if package.json cannot be found\n }\n\n if (packageJsonPath && options.isFile!(packageJsonPath)) {\n const pkg = options.readPackageSync!(options.readFileSync!, packageJsonPath);\n assert(pkg, 'package.json should be read by `readPackageSync`');\n\n const resolved = resolve.exports(\n pkg,\n (segments.join('/') || '.') as resolve.Exports.Entry,\n createResolveOptions(options.conditions)\n );\n\n if (resolved) {\n return pathResolve(dirname(packageJsonPath), resolved[0]);\n }\n\n if (pkg.exports) {\n throw new Error(\n \"`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue\"\n );\n }\n }\n }\n\n return path;\n}\n\nfunction createResolveOptions(conditions: string[] | undefined): resolve.Options {\n return conditions\n ? { conditions, unsafe: true }\n : // no conditions were passed - let's assume this is Jest internal and it should be `require`\n { browser: false, require: true };\n}\n\n// if it's a relative import or an absolute path, imports/exports are ignored\nconst shouldIgnoreRequestForExports = (path: string) => path.startsWith('.') || isAbsolute(path);\n\n// adapted from\n// https://github.com/lukeed/escalade/blob/2477005062cdbd8407afc90d3f48f4930354252b/src/sync.js\nfunction findClosestPackageJson(\n start: string,\n options: UpstreamResolveOptions\n): string | undefined {\n let dir = pathResolve('.', start);\n if (!options.isDirectory!(dir)) {\n dir = dirname(dir);\n }\n\n while (true) {\n const pkgJsonFile = pathResolve(dir, './package.json');\n const hasPackageJson = options.isFile!(pkgJsonFile);\n\n if (hasPackageJson) {\n return pkgJsonFile;\n }\n\n const prevDir = dir;\n dir = dirname(dir);\n\n if (prevDir === dir) {\n return undefined;\n }\n }\n}\n"],"names":["resolve","defaultResolver","path","enablePackageExports","blockList","options","resolveOptions","isDirectory","file","some","regex","test","directoryExistsSync","isFile","fileExistsSync","preserveSymlinks","result","resolveSync","getPathInModule","shouldIgnoreRequestForExports","segments","split","moduleName","shift","startsWith","closestPackageJson","findClosestPackageJson","basedir","pkg","readPackageSync","readFileSync","assert","name","resolved","exports","join","createResolveOptions","conditions","pathResolve","dirname","Error","packageJsonPath","unsafe","browser","require","isAbsolute","start","dir","pkgJsonFile","hasPackageJson","prevDir","undefined"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/metro/createJResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\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 *\n * Fork of the jest resolver but with additional settings for Metro and pnp removed.\n * https://github.com/jestjs/jest/blob/d1a2ed7fea4bdc19836274cd810c8360e3ab62f3/packages/jest-resolve/src/defaultResolver.ts#L1\n */\nimport type { JSONObject as PackageJSON } from '@expo/json-file';\nimport assert from 'assert';\nimport fs from 'fs';\nimport { dirname, isAbsolute, resolve as pathResolve } from 'path';\nimport { sync as resolveSync, SyncOpts as UpstreamResolveOptions } from 'resolve';\nimport * as resolve from 'resolve.exports';\n\nimport { directoryExistsSync, fileExistsSync } from '../../../utils/dir';\n\n/**\n * Allows transforming parsed `package.json` contents.\n *\n * @param pkg - Parsed `package.json` contents.\n * @param file - Path to `package.json` file.\n * @param dir - Directory that contains the `package.json`.\n *\n * @returns Transformed `package.json` contents.\n */\ntype PackageFilter = (pkg: PackageJSON, file: string, dir: string) => PackageJSON;\n\n/**\n * Allows transforming a path within a package.\n *\n * @param pkg - Parsed `package.json` contents.\n * @param path - Path being resolved.\n * @param relativePath - Path relative from the `package.json` location.\n *\n * @returns Relative path that will be joined from the `package.json` location.\n */\ntype PathFilter = (pkg: PackageJSON, path: string, relativePath: string) => string;\n\ntype ResolverOptions = {\n /** Directory to begin resolving from. */\n basedir: string;\n /** List of export conditions. */\n conditions?: string[];\n /** Instance of default resolver. */\n defaultResolver: typeof defaultResolver;\n /** List of file extensions to search in order. */\n extensions?: string[];\n /**\n * List of directory names to be looked up for modules recursively.\n *\n * @defaultValue\n * The default is `['node_modules']`.\n */\n moduleDirectory?: string[];\n /**\n * List of `require.paths` to use if nothing is found in `node_modules`.\n *\n * @defaultValue\n * The default is `undefined`.\n */\n paths?: string[];\n /** Allows transforming parsed `package.json` contents. */\n packageFilter?: PackageFilter;\n /** Allows transforms a path within a package. */\n pathFilter?: PathFilter;\n /** Current root directory. */\n rootDir?: string;\n\n enablePackageExports?: boolean;\n\n blockList: RegExp[];\n\n getPackageForModule: import('metro-resolver').CustomResolutionContext['getPackageForModule'];\n} & Pick<\n UpstreamResolveOptions,\n | 'readPackageSync'\n | 'realpathSync'\n | 'moduleDirectory'\n | 'extensions'\n | 'preserveSymlinks'\n | 'includeCoreModules'\n>;\n\ntype UpstreamResolveOptionsWithConditions = UpstreamResolveOptions &\n ResolverOptions & {\n pathExists: (file: string) => boolean;\n };\n\nconst defaultResolver = (\n path: string,\n {\n enablePackageExports,\n blockList = [],\n ...options\n }: Omit<ResolverOptions, 'defaultResolver' | 'getPackageForModule'>\n): string => {\n // @ts-expect-error\n const resolveOptions: UpstreamResolveOptionsWithConditions = {\n ...options,\n\n isDirectory(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n return directoryExistsSync(file);\n },\n isFile(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n return fileExistsSync(file);\n },\n pathExists(file) {\n if (blockList.some((regex) => regex.test(file))) {\n return false;\n }\n try {\n fs.accessSync(path, fs.constants.F_OK);\n return true; // File exists\n } catch {\n return false; // File doesn't exist\n }\n },\n preserveSymlinks: options.preserveSymlinks,\n defaultResolver,\n };\n\n // resolveSync dereferences symlinks to ensure we don't create a separate\n // module instance depending on how it was referenced.\n const result = resolveSync(enablePackageExports ? getPathInModule(path, resolveOptions) : path, {\n ...resolveOptions,\n preserveSymlinks: !options.preserveSymlinks,\n });\n\n return result;\n};\n\nexport default defaultResolver;\n\n/*\n * helper functions\n */\n\nfunction getPathInModule(path: string, options: UpstreamResolveOptionsWithConditions): string {\n if (shouldIgnoreRequestForExports(path)) {\n return path;\n }\n\n const segments = path.split('/');\n\n let moduleName = segments.shift();\n\n if (!moduleName) {\n return path;\n }\n\n if (moduleName.startsWith('@')) {\n moduleName = `${moduleName}/${segments.shift()}`;\n }\n\n // Disable package exports for babel/runtime for https://github.com/facebook/metro/issues/984/\n if (moduleName === '@babel/runtime') {\n return path;\n }\n\n // self-reference\n const closestPackageJson = findClosestPackageJson(options.basedir, options);\n if (closestPackageJson) {\n const pkg = options.readPackageSync!(options.readFileSync!, closestPackageJson);\n assert(pkg, 'package.json should be read by `readPackageSync`');\n\n if (pkg.name === moduleName) {\n const resolved = resolve.exports(\n pkg,\n (segments.join('/') || '.') as resolve.Exports.Entry,\n createResolveOptions(options.conditions)\n );\n\n if (resolved) {\n return pathResolve(dirname(closestPackageJson), resolved[0]);\n }\n\n if (pkg.exports) {\n throw new Error(\n \"`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue\"\n );\n }\n }\n }\n\n let packageJsonPath = '';\n\n try {\n packageJsonPath = resolveSync(`${moduleName}/package.json`, options);\n } catch {\n // ignore if package.json cannot be found\n }\n\n if (!packageJsonPath) {\n return path;\n }\n\n const pkg = options.readPackageSync!(options.readFileSync!, packageJsonPath);\n assert(pkg, 'package.json should be read by `readPackageSync`');\n\n const resolved = resolve.exports(\n pkg,\n (segments.join('/') || '.') as resolve.Exports.Entry,\n createResolveOptions(options.conditions)\n );\n\n if (resolved) {\n return pathResolve(dirname(packageJsonPath), resolved[0]);\n }\n\n if (pkg.exports) {\n throw new Error(\n \"`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue\"\n );\n }\n\n return path;\n}\n\nfunction createResolveOptions(conditions: string[] | undefined): resolve.Options {\n return conditions\n ? { conditions, unsafe: true }\n : // no conditions were passed - let's assume this is Jest internal and it should be `require`\n { browser: false, require: true };\n}\n\n// if it's a relative import or an absolute path, imports/exports are ignored\nconst shouldIgnoreRequestForExports = (path: string) => path.startsWith('.') || isAbsolute(path);\n\n// adapted from\n// https://github.com/lukeed/escalade/blob/2477005062cdbd8407afc90d3f48f4930354252b/src/sync.js\nfunction findClosestPackageJson(\n start: string,\n options: UpstreamResolveOptionsWithConditions\n): string | undefined {\n let dir = pathResolve('.', start);\n if (!options.isDirectory!(dir)) {\n dir = dirname(dir);\n }\n\n while (true) {\n const pkgJsonFile = pathResolve(dir, './package.json');\n const hasPackageJson = options.pathExists!(pkgJsonFile);\n\n if (hasPackageJson) {\n return pkgJsonFile;\n }\n\n const prevDir = dir;\n dir = dirname(dir);\n\n if (prevDir === dir) {\n return undefined;\n }\n }\n}\n"],"names":["defaultResolver","path","enablePackageExports","blockList","options","resolveOptions","isDirectory","file","some","regex","test","directoryExistsSync","isFile","fileExistsSync","pathExists","fs","accessSync","constants","F_OK","preserveSymlinks","result","resolveSync","getPathInModule","shouldIgnoreRequestForExports","segments","split","moduleName","shift","startsWith","closestPackageJson","findClosestPackageJson","basedir","pkg","readPackageSync","readFileSync","assert","name","resolved","resolve","exports","join","createResolveOptions","conditions","pathResolve","dirname","Error","packageJsonPath","unsafe","browser","require","isAbsolute","start","dir","pkgJsonFile","hasPackageJson","prevDir","undefined"],"mappings":"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"}
@@ -1,37 +1,59 @@
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.createRouteHandlerMiddleware = createRouteHandlerMiddleware;
6
- var _requireFromString = _interopRequireDefault(require("require-from-string"));
7
- var _resolve = _interopRequireDefault(require("resolve"));
8
- var _resolveFrom = _interopRequireDefault(require("resolve-from"));
9
- var _util = require("util");
10
- var _metroBundlerDevServer = require("./MetroBundlerDevServer");
11
- var _bundleApiRoutes = require("./bundleApiRoutes");
12
- var _fetchRouterManifest = require("./fetchRouterManifest");
13
- var _metroErrorInterface = require("./metroErrorInterface");
14
- var _router = require("./router");
15
- var _log = require("../../../log");
16
- var _errors = require("../../../utils/errors");
10
+ Object.defineProperty(exports, "createRouteHandlerMiddleware", {
11
+ enumerable: true,
12
+ get: ()=>createRouteHandlerMiddleware
13
+ });
14
+ function _resolve() {
15
+ const data = /*#__PURE__*/ _interopRequireDefault(require("resolve"));
16
+ _resolve = function() {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _resolveFrom() {
22
+ const data = /*#__PURE__*/ _interopRequireDefault(require("resolve-from"));
23
+ _resolveFrom = function() {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _util() {
29
+ const data = require("util");
30
+ _util = function() {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
35
+ const _metroBundlerDevServer = require("./MetroBundlerDevServer");
36
+ const _fetchRouterManifest = require("./fetchRouterManifest");
37
+ const _metroErrorInterface = require("./metroErrorInterface");
38
+ const _router = require("./router");
39
+ const _errors = require("../../../utils/errors");
17
40
  function _interopRequireDefault(obj) {
18
41
  return obj && obj.__esModule ? obj : {
19
42
  default: obj
20
43
  };
21
44
  }
22
45
  const debug = require("debug")("expo:start:server:metro");
23
- const resolveAsync = (0, _util).promisify(_resolve.default);
46
+ const resolveAsync = (0, _util().promisify)(_resolve().default);
24
47
  function createRouteHandlerMiddleware(projectRoot, options) {
25
- if (!_resolveFrom.default.silent(projectRoot, "expo-router")) {
48
+ if (!_resolveFrom().default.silent(projectRoot, "expo-router")) {
26
49
  throw new _errors.CommandError("static and server rendering requires the expo-router package to be installed in your project.");
27
50
  }
28
- const { ExpoResponse } = require("@expo/server");
29
51
  const { createRequestHandler } = require("@expo/server/build/vendor/http");
30
52
  return createRequestHandler({
31
53
  build: ""
32
54
  }, {
33
55
  async getRoutesManifest () {
34
- const manifest = await (0, _fetchRouterManifest).fetchManifest(projectRoot, options);
56
+ const manifest = await (0, _fetchRouterManifest.fetchManifest)(projectRoot, options);
35
57
  debug("manifest", manifest);
36
58
  // NOTE: no app dir if null
37
59
  // TODO: Redirect to 404 page
@@ -56,7 +78,7 @@ function createRouteHandlerMiddleware(projectRoot, options) {
56
78
  } catch (error) {
57
79
  // Forward the Metro server response as-is. It won't be pretty, but at least it will be accurate.
58
80
  if (error instanceof _metroBundlerDevServer.ForwardHtmlError) {
59
- return new ExpoResponse(error.html, {
81
+ return new Response(error.html, {
60
82
  status: error.statusCode,
61
83
  headers: {
62
84
  "Content-Type": "text/html"
@@ -64,7 +86,7 @@ function createRouteHandlerMiddleware(projectRoot, options) {
64
86
  });
65
87
  }
66
88
  try {
67
- return new ExpoResponse(await (0, _metroErrorInterface).getErrorOverlayHtmlAsync({
89
+ return new Response(await (0, _metroErrorInterface.getErrorOverlayHtmlAsync)({
68
90
  error,
69
91
  projectRoot,
70
92
  routerRoot: options.routerRoot
@@ -77,7 +99,7 @@ function createRouteHandlerMiddleware(projectRoot, options) {
77
99
  } catch (staticError) {
78
100
  debug("Failed to render static error overlay:", staticError);
79
101
  // Fallback error for when Expo Router is misconfigured in the project.
80
- return new ExpoResponse("<span><h3>Internal Error:</h3><b>Project is not setup correctly for static rendering (check terminal for more info):</b><br/>" + error.message + "<br/><br/>" + staticError.message + "</span>", {
102
+ return new Response("<span><h3>Internal Error:</h3><b>Project is not setup correctly for static rendering (check terminal for more info):</b><br/>" + error.message + "<br/><br/>" + staticError.message + "</span>", {
81
103
  status: 500,
82
104
  headers: {
83
105
  "Content-Type": "text/html"
@@ -87,7 +109,7 @@ function createRouteHandlerMiddleware(projectRoot, options) {
87
109
  }
88
110
  },
89
111
  logApiRouteExecutionError (error) {
90
- (0, _metroErrorInterface).logMetroError(projectRoot, {
112
+ (0, _metroErrorInterface.logMetroError)(projectRoot, {
91
113
  error
92
114
  });
93
115
  },
@@ -95,9 +117,9 @@ function createRouteHandlerMiddleware(projectRoot, options) {
95
117
  var ref;
96
118
  const { exp } = options.config;
97
119
  if (((ref = exp.web) == null ? void 0 : ref.output) !== "server") {
98
- (0, _router).warnInvalidWebOutput();
120
+ (0, _router.warnInvalidWebOutput)();
99
121
  }
100
- const resolvedFunctionPath = await resolveAsync(route.page, {
122
+ const resolvedFunctionPath = await resolveAsync(route.file, {
101
123
  extensions: [
102
124
  ".js",
103
125
  ".jsx",
@@ -106,24 +128,11 @@ function createRouteHandlerMiddleware(projectRoot, options) {
106
128
  ],
107
129
  basedir: options.appDir
108
130
  });
109
- const middlewareContents = await (0, _bundleApiRoutes).bundleApiRoute(projectRoot, resolvedFunctionPath, options);
110
- if (!middlewareContents) {
111
- // TODO: Error handling
112
- return null;
113
- }
114
131
  try {
115
132
  debug(`Bundling middleware at: ${resolvedFunctionPath}`);
116
- return (0, _requireFromString).default(middlewareContents.src, middlewareContents.filename);
133
+ return await options.bundleApiRoute(resolvedFunctionPath);
117
134
  } catch (error) {
118
- if (error instanceof Error) {
119
- await (0, _metroErrorInterface).logMetroErrorAsync({
120
- projectRoot,
121
- error
122
- });
123
- } else {
124
- _log.Log.error("Failed to load middleware: " + error);
125
- }
126
- return new ExpoResponse("Failed to load middleware: " + resolvedFunctionPath + "\n\n" + error.message, {
135
+ return new Response("Failed to load API Route: " + resolvedFunctionPath + "\n\n" + error.message, {
127
136
  status: 500,
128
137
  headers: {
129
138
  "Content-Type": "text/html"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/metro/createServerRouteMiddleware.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 */\n\nimport type { ProjectConfig } from '@expo/config';\nimport requireString from 'require-from-string';\nimport resolve from 'resolve';\nimport resolveFrom from 'resolve-from';\nimport { promisify } from 'util';\n\nimport { ForwardHtmlError } from './MetroBundlerDevServer';\nimport { bundleApiRoute } from './bundleApiRoutes';\nimport { fetchManifest } from './fetchRouterManifest';\nimport { getErrorOverlayHtmlAsync, logMetroError, logMetroErrorAsync } from './metroErrorInterface';\nimport { warnInvalidWebOutput } from './router';\nimport { Log } from '../../../log';\nimport { CommandError } from '../../../utils/errors';\n\nconst debug = require('debug')('expo:start:server:metro') as typeof console.log;\n\nconst resolveAsync = promisify(resolve) as any as (\n id: string,\n opts: resolve.AsyncOpts\n) => Promise<string | null>;\n\nexport function createRouteHandlerMiddleware(\n projectRoot: string,\n options: {\n mode?: string;\n appDir: string;\n routerRoot: string;\n port?: number;\n baseUrl: string;\n getWebBundleUrl: () => string;\n getStaticPageAsync: (pathname: string) => Promise<{ content: string }>;\n config: ProjectConfig;\n }\n) {\n if (!resolveFrom.silent(projectRoot, 'expo-router')) {\n throw new CommandError(\n 'static and server rendering requires the expo-router package to be installed in your project.'\n );\n }\n\n const { ExpoResponse } = require('@expo/server') as typeof import('@expo/server');\n const { createRequestHandler } =\n require('@expo/server/build/vendor/http') as typeof import('@expo/server/build/vendor/http');\n\n return createRequestHandler(\n { build: '' },\n {\n async getRoutesManifest() {\n const manifest = await fetchManifest<RegExp>(projectRoot, options);\n debug('manifest', manifest);\n // NOTE: no app dir if null\n // TODO: Redirect to 404 page\n return (\n manifest ?? {\n // Support the onboarding screen if there's no manifest\n htmlRoutes: [\n {\n file: 'index.js',\n page: '/index',\n routeKeys: {},\n namedRegex: /^\\/(?:index)?\\/?$/i,\n },\n ],\n apiRoutes: [],\n notFoundRoutes: [],\n }\n );\n },\n async getHtml(request) {\n try {\n const { content } = await options.getStaticPageAsync(request.url);\n return content;\n } catch (error: any) {\n // Forward the Metro server response as-is. It won't be pretty, but at least it will be accurate.\n if (error instanceof ForwardHtmlError) {\n return new ExpoResponse(error.html, {\n status: error.statusCode,\n headers: {\n 'Content-Type': 'text/html',\n },\n });\n }\n\n try {\n return new ExpoResponse(\n await getErrorOverlayHtmlAsync({\n error,\n projectRoot,\n routerRoot: options.routerRoot,\n }),\n {\n status: 500,\n headers: {\n 'Content-Type': 'text/html',\n },\n }\n );\n } catch (staticError: any) {\n debug('Failed to render static error overlay:', staticError);\n // Fallback error for when Expo Router is misconfigured in the project.\n return new ExpoResponse(\n '<span><h3>Internal Error:</h3><b>Project is not setup correctly for static rendering (check terminal for more info):</b><br/>' +\n error.message +\n '<br/><br/>' +\n staticError.message +\n '</span>',\n {\n status: 500,\n headers: {\n 'Content-Type': 'text/html',\n },\n }\n );\n }\n }\n },\n logApiRouteExecutionError(error) {\n logMetroError(projectRoot, { error });\n },\n async getApiRoute(route) {\n const { exp } = options.config;\n if (exp.web?.output !== 'server') {\n warnInvalidWebOutput();\n }\n\n const resolvedFunctionPath = await resolveAsync(route.page, {\n extensions: ['.js', '.jsx', '.ts', '.tsx'],\n basedir: options.appDir,\n });\n\n const middlewareContents = await bundleApiRoute(\n projectRoot,\n resolvedFunctionPath!,\n options\n );\n if (!middlewareContents) {\n // TODO: Error handling\n return null;\n }\n\n try {\n debug(`Bundling middleware at: ${resolvedFunctionPath}`);\n return requireString(middlewareContents.src, middlewareContents.filename);\n } catch (error: any) {\n if (error instanceof Error) {\n await logMetroErrorAsync({ projectRoot, error });\n } else {\n Log.error('Failed to load middleware: ' + error);\n }\n return new ExpoResponse(\n 'Failed to load middleware: ' + resolvedFunctionPath + '\\n\\n' + error.message,\n {\n status: 500,\n headers: {\n 'Content-Type': 'text/html',\n },\n }\n );\n }\n },\n }\n );\n}\n"],"names":["createRouteHandlerMiddleware","debug","require","resolveAsync","promisify","resolve","projectRoot","options","resolveFrom","silent","CommandError","ExpoResponse","createRequestHandler","build","getRoutesManifest","manifest","fetchManifest","htmlRoutes","file","page","routeKeys","namedRegex","apiRoutes","notFoundRoutes","getHtml","request","content","getStaticPageAsync","url","error","ForwardHtmlError","html","status","statusCode","headers","getErrorOverlayHtmlAsync","routerRoot","staticError","message","logApiRouteExecutionError","logMetroError","getApiRoute","route","exp","config","web","output","warnInvalidWebOutput","resolvedFunctionPath","extensions","basedir","appDir","middlewareContents","bundleApiRoute","requireString","src","filename","Error","logMetroErrorAsync","Log"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/metro/createServerRouteMiddleware.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 */\n\nimport type { ProjectConfig } from '@expo/config';\nimport resolve from 'resolve';\nimport resolveFrom from 'resolve-from';\nimport { promisify } from 'util';\n\nimport { ForwardHtmlError } from './MetroBundlerDevServer';\nimport { fetchManifest } from './fetchRouterManifest';\nimport { getErrorOverlayHtmlAsync, logMetroError } from './metroErrorInterface';\nimport { warnInvalidWebOutput } from './router';\nimport { CommandError } from '../../../utils/errors';\n\nconst debug = require('debug')('expo:start:server:metro') as typeof console.log;\n\nconst resolveAsync = promisify(resolve) as any as (\n id: string,\n opts: resolve.AsyncOpts\n) => Promise<string | null>;\n\nexport function createRouteHandlerMiddleware(\n projectRoot: string,\n options: {\n appDir: string;\n routerRoot: string;\n getStaticPageAsync: (pathname: string) => Promise<{ content: string }>;\n bundleApiRoute: (\n functionFilePath: string\n ) => Promise<null | Record<string, Function> | Response>;\n config: ProjectConfig;\n }\n) {\n if (!resolveFrom.silent(projectRoot, 'expo-router')) {\n throw new CommandError(\n 'static and server rendering requires the expo-router package to be installed in your project.'\n );\n }\n\n const { createRequestHandler } =\n require('@expo/server/build/vendor/http') as typeof import('@expo/server/build/vendor/http');\n\n return createRequestHandler(\n { build: '' },\n {\n async getRoutesManifest() {\n const manifest = await fetchManifest<RegExp>(projectRoot, options);\n debug('manifest', manifest);\n // NOTE: no app dir if null\n // TODO: Redirect to 404 page\n return (\n manifest ?? {\n // Support the onboarding screen if there's no manifest\n htmlRoutes: [\n {\n file: 'index.js',\n page: '/index',\n routeKeys: {},\n namedRegex: /^\\/(?:index)?\\/?$/i,\n },\n ],\n apiRoutes: [],\n notFoundRoutes: [],\n }\n );\n },\n async getHtml(request) {\n try {\n const { content } = await options.getStaticPageAsync(request.url);\n return content;\n } catch (error: any) {\n // Forward the Metro server response as-is. It won't be pretty, but at least it will be accurate.\n if (error instanceof ForwardHtmlError) {\n return new Response(error.html, {\n status: error.statusCode,\n headers: {\n 'Content-Type': 'text/html',\n },\n });\n }\n\n try {\n return new Response(\n await getErrorOverlayHtmlAsync({\n error,\n projectRoot,\n routerRoot: options.routerRoot,\n }),\n {\n status: 500,\n headers: {\n 'Content-Type': 'text/html',\n },\n }\n );\n } catch (staticError: any) {\n debug('Failed to render static error overlay:', staticError);\n // Fallback error for when Expo Router is misconfigured in the project.\n return new Response(\n '<span><h3>Internal Error:</h3><b>Project is not setup correctly for static rendering (check terminal for more info):</b><br/>' +\n error.message +\n '<br/><br/>' +\n staticError.message +\n '</span>',\n {\n status: 500,\n headers: {\n 'Content-Type': 'text/html',\n },\n }\n );\n }\n }\n },\n logApiRouteExecutionError(error) {\n logMetroError(projectRoot, { error });\n },\n async getApiRoute(route) {\n const { exp } = options.config;\n if (exp.web?.output !== 'server') {\n warnInvalidWebOutput();\n }\n\n const resolvedFunctionPath = await resolveAsync(route.file, {\n extensions: ['.js', '.jsx', '.ts', '.tsx'],\n basedir: options.appDir,\n })!;\n\n try {\n debug(`Bundling middleware at: ${resolvedFunctionPath}`);\n return await options.bundleApiRoute(resolvedFunctionPath!);\n } catch (error: any) {\n return new Response(\n 'Failed to load API Route: ' + resolvedFunctionPath + '\\n\\n' + error.message,\n {\n status: 500,\n headers: {\n 'Content-Type': 'text/html',\n },\n }\n );\n }\n },\n }\n );\n}\n"],"names":["createRouteHandlerMiddleware","debug","require","resolveAsync","promisify","resolve","projectRoot","options","resolveFrom","silent","CommandError","createRequestHandler","build","getRoutesManifest","manifest","fetchManifest","htmlRoutes","file","page","routeKeys","namedRegex","apiRoutes","notFoundRoutes","getHtml","request","content","getStaticPageAsync","url","error","ForwardHtmlError","Response","html","status","statusCode","headers","getErrorOverlayHtmlAsync","routerRoot","staticError","message","logApiRouteExecutionError","logMetroError","getApiRoute","route","exp","config","web","output","warnInvalidWebOutput","resolvedFunctionPath","extensions","basedir","appDir","bundleApiRoute"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "MessageHandler", {
6
+ enumerable: true,
7
+ get: ()=>MessageHandler
8
+ });
9
+ class MessageHandler {
10
+ constructor(connection){
11
+ this.page = connection.page;
12
+ this.device = connection.device;
13
+ this.debugger = connection.debugger;
14
+ }
15
+ /** Determine if this middleware should be enabled or disabled, based on the page capabilities */ isEnabled() {
16
+ return true;
17
+ }
18
+ /** Send a message directly to the device */ sendToDevice(message) {
19
+ // @ts-expect-error Type `T` is json serializable, just not the same one from `@react-native/dev-middleware`
20
+ this.device.sendMessage(message);
21
+ return true;
22
+ }
23
+ /** Send a message directly to the debugger */ sendToDebugger(message) {
24
+ // @ts-expect-error Type `T` is json serializable, just not the same one from `@react-native/dev-middleware`
25
+ this.debugger.sendMessage(message);
26
+ return true;
27
+ }
28
+ }
29
+
30
+ //# sourceMappingURL=MessageHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/start/server/metro/debugging/MessageHandler.ts"],"sourcesContent":["import type {\n Connection,\n DebuggerMetadata,\n DebuggerRequest,\n DebuggerResponse,\n DeviceMetadata,\n DeviceRequest,\n DeviceResponse,\n Page,\n} from './types';\n\nexport abstract class MessageHandler {\n protected page: Page;\n protected device: DeviceMetadata;\n protected debugger: DebuggerMetadata;\n\n constructor(connection: Connection) {\n this.page = connection.page;\n this.device = connection.device;\n this.debugger = connection.debugger;\n }\n\n /** Determine if this middleware should be enabled or disabled, based on the page capabilities */\n isEnabled(): boolean {\n return true;\n }\n\n /** Send a message directly to the device */\n sendToDevice<T = DeviceResponse | DebuggerResponse>(message: T): true {\n // @ts-expect-error Type `T` is json serializable, just not the same one from `@react-native/dev-middleware`\n this.device.sendMessage(message);\n return true;\n }\n\n /** Send a message directly to the debugger */\n sendToDebugger<T = DeviceResponse | DebuggerResponse>(message: T): true {\n // @ts-expect-error Type `T` is json serializable, just not the same one from `@react-native/dev-middleware`\n this.debugger.sendMessage(message);\n return true;\n }\n\n /**\n * Intercept a message coming from the device, modify or respond to it through `this._sendMessageToDevice`.\n * Return `true` if the message was handled, this will stop the message propagation.\n */\n handleDeviceMessage?(message: DeviceRequest | DeviceResponse): boolean;\n\n /**\n * Intercept a message coming from the debugger, modify or respond to it through `socket.send`.\n * Return `true` if the message was handled, this will stop the message propagation.\n */\n handleDebuggerMessage?(message: DebuggerRequest | DebuggerResponse): boolean;\n}\n"],"names":["MessageHandler","constructor","connection","page","device","debugger","isEnabled","sendToDevice","message","sendMessage","sendToDebugger"],"mappings":"AAAA;;;;+BAWsBA,gBAAc;;aAAdA,cAAc;;AAA7B,MAAeA,cAAc;IAKlCC,YAAYC,UAAsB,CAAE;QAClC,IAAI,CAACC,IAAI,GAAGD,UAAU,CAACC,IAAI,CAAC;QAC5B,IAAI,CAACC,MAAM,GAAGF,UAAU,CAACE,MAAM,CAAC;QAChC,IAAI,CAACC,QAAQ,GAAGH,UAAU,CAACG,QAAQ,CAAC;IACtC;IAEA,+FAA+F,GAC/FC,SAAS,GAAY;QACnB,OAAO,IAAI,CAAC;IACd;IAEA,0CAA0C,GAC1CC,YAAY,CAAwCC,OAAU,EAAQ;QACpE,4GAA4G;QAC5G,IAAI,CAACJ,MAAM,CAACK,WAAW,CAACD,OAAO,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd;IAEA,4CAA4C,GAC5CE,cAAc,CAAwCF,OAAU,EAAQ;QACtE,4GAA4G;QAC5G,IAAI,CAACH,QAAQ,CAACI,WAAW,CAACD,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd;CAaD"}