@expo/cli 0.17.9 → 0.18.0

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 (570) hide show
  1. package/build/bin/cli +11 -7
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/getExpoSchema.js +23 -5
  4. package/build/src/api/getExpoSchema.js.map +1 -1
  5. package/build/src/api/graphql/client.js +28 -10
  6. package/build/src/api/graphql/client.js.map +1 -1
  7. package/build/src/api/graphql/queries/AppQuery.js +16 -4
  8. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  9. package/build/src/api/graphql/queries/UserQuery.js +8 -2
  10. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  11. package/build/src/api/graphql/types/App.js +8 -2
  12. package/build/src/api/graphql/types/App.js.map +1 -1
  13. package/build/src/api/rest/cache/FileSystemCache.js +21 -9
  14. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  15. package/build/src/api/rest/cache/response.js +9 -3
  16. package/build/src/api/rest/cache/response.js.map +1 -1
  17. package/build/src/api/rest/cache/wrapFetchWithCache.js +32 -8
  18. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  19. package/build/src/api/rest/client.js +23 -5
  20. package/build/src/api/rest/client.js.map +1 -1
  21. package/build/src/api/rest/wrapFetchWithBaseUrl.js +9 -4
  22. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  23. package/build/src/api/rest/wrapFetchWithProxy.js +8 -2
  24. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  25. package/build/src/api/settings.js +8 -2
  26. package/build/src/api/settings.js.map +1 -1
  27. package/build/src/api/updateDevelopmentSession.js +18 -6
  28. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  29. package/build/src/api/user/UserSettings.js +26 -8
  30. package/build/src/api/user/UserSettings.js.map +1 -1
  31. package/build/src/api/user/actions.js +17 -5
  32. package/build/src/api/user/actions.js.map +1 -1
  33. package/build/src/api/user/expoSsoLauncher.js +32 -8
  34. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  35. package/build/src/api/user/otp.js +17 -5
  36. package/build/src/api/user/otp.js.map +1 -1
  37. package/build/src/api/user/user.js +19 -12
  38. package/build/src/api/user/user.js.map +1 -1
  39. package/build/src/config/configAsync.js +25 -7
  40. package/build/src/config/configAsync.js.map +1 -1
  41. package/build/src/config/index.js +9 -3
  42. package/build/src/config/index.js.map +1 -1
  43. package/build/src/customize/customizeAsync.js +8 -2
  44. package/build/src/customize/customizeAsync.js.map +1 -1
  45. package/build/src/customize/generate.js +16 -4
  46. package/build/src/customize/generate.js.map +1 -1
  47. package/build/src/customize/index.js +10 -4
  48. package/build/src/customize/index.js.map +1 -1
  49. package/build/src/customize/templates.js +33 -9
  50. package/build/src/customize/templates.js.map +1 -1
  51. package/build/src/customize/typescript.js +8 -2
  52. package/build/src/customize/typescript.js.map +1 -1
  53. package/build/src/export/createMetadataJson.js +8 -2
  54. package/build/src/export/createMetadataJson.js.map +1 -1
  55. package/build/src/export/embed/exportEmbedAsync.js +58 -18
  56. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  57. package/build/src/export/embed/index.js +17 -5
  58. package/build/src/export/embed/index.js.map +1 -1
  59. package/build/src/export/embed/resolveOptions.js +8 -2
  60. package/build/src/export/embed/resolveOptions.js.map +1 -1
  61. package/build/src/export/embed/xcodeCompilerLogger.js +16 -4
  62. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  63. package/build/src/export/exportApp.js +32 -12
  64. package/build/src/export/exportApp.js.map +1 -1
  65. package/build/src/export/exportAssets.js +27 -9
  66. package/build/src/export/exportAssets.js.map +1 -1
  67. package/build/src/export/exportAsync.js +10 -2
  68. package/build/src/export/exportAsync.js.map +1 -1
  69. package/build/src/export/exportHermes.js +29 -17
  70. package/build/src/export/exportHermes.js.map +1 -1
  71. package/build/src/export/exportStaticAsync.js +69 -37
  72. package/build/src/export/exportStaticAsync.js.map +1 -1
  73. package/build/src/export/favicon.js +33 -9
  74. package/build/src/export/favicon.js.map +1 -1
  75. package/build/src/export/fork-bundleAsync.js +61 -16
  76. package/build/src/export/fork-bundleAsync.js.map +1 -1
  77. package/build/src/export/getPublicExpoManifest.js +8 -2
  78. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  79. package/build/src/export/getResolvedLocales.js +15 -3
  80. package/build/src/export/getResolvedLocales.js.map +1 -1
  81. package/build/src/export/index.js +11 -5
  82. package/build/src/export/index.js.map +1 -1
  83. package/build/src/export/metroAssetLocalPath.js +9 -3
  84. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  85. package/build/src/export/persistMetroAssets.js +27 -15
  86. package/build/src/export/persistMetroAssets.js.map +1 -1
  87. package/build/src/export/publicFolder.js +18 -6
  88. package/build/src/export/publicFolder.js.map +1 -1
  89. package/build/src/export/resolveOptions.js +8 -2
  90. package/build/src/export/resolveOptions.js.map +1 -1
  91. package/build/src/export/saveAssets.js +43 -19
  92. package/build/src/export/saveAssets.js.map +1 -1
  93. package/build/src/export/web/exportWebAsync.js +16 -4
  94. package/build/src/export/web/exportWebAsync.js.map +1 -1
  95. package/build/src/export/web/index.js +9 -3
  96. package/build/src/export/web/index.js.map +1 -1
  97. package/build/src/install/applyPlugins.js +8 -2
  98. package/build/src/install/applyPlugins.js.map +1 -1
  99. package/build/src/install/checkPackages.js +18 -6
  100. package/build/src/install/checkPackages.js.map +1 -1
  101. package/build/src/install/fixPackages.js +8 -2
  102. package/build/src/install/fixPackages.js.map +1 -1
  103. package/build/src/install/index.js +14 -8
  104. package/build/src/install/index.js.map +1 -1
  105. package/build/src/install/installAsync.js +27 -9
  106. package/build/src/install/installAsync.js.map +1 -1
  107. package/build/src/install/installExpoPackage.js +17 -5
  108. package/build/src/install/installExpoPackage.js.map +1 -1
  109. package/build/src/install/utils/autoAddConfigPlugins.js +17 -5
  110. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  111. package/build/src/log.js +9 -3
  112. package/build/src/log.js.map +1 -1
  113. package/build/src/prebuild/clearNativeFolder.js +37 -13
  114. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  115. package/build/src/prebuild/configureProjectAsync.js +16 -4
  116. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  117. package/build/src/prebuild/copyTemplateFiles.js +29 -11
  118. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  119. package/build/src/prebuild/ensureConfigAsync.js +24 -6
  120. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  121. package/build/src/prebuild/index.js +14 -8
  122. package/build/src/prebuild/index.js.map +1 -1
  123. package/build/src/prebuild/prebuildAsync.js +9 -3
  124. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  125. package/build/src/prebuild/renameTemplateAppName.js +119 -0
  126. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  127. package/build/src/prebuild/resolveOptions.js +32 -8
  128. package/build/src/prebuild/resolveOptions.js.map +1 -1
  129. package/build/src/prebuild/resolveTemplate.js +44 -14
  130. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  131. package/build/src/prebuild/updateFromTemplate.js +18 -2
  132. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  133. package/build/src/prebuild/updatePackageJson.js +49 -13
  134. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  135. package/build/src/prebuild/validateTemplatePlatforms.js +16 -4
  136. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  137. package/build/src/run/android/index.js +20 -4
  138. package/build/src/run/android/index.js.map +1 -1
  139. package/build/src/run/android/resolveGradlePropsAsync.js +55 -0
  140. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  141. package/build/src/run/android/resolveInstallApkName.js +18 -6
  142. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  143. package/build/src/run/android/resolveLaunchProps.js +10 -4
  144. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  145. package/build/src/run/android/resolveOptions.js +5 -3
  146. package/build/src/run/android/resolveOptions.js.map +1 -1
  147. package/build/src/run/android/runAndroidAsync.js +13 -4
  148. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  149. package/build/src/run/ensureNativeProject.js +15 -3
  150. package/build/src/run/ensureNativeProject.js.map +1 -1
  151. package/build/src/run/hints.js +10 -4
  152. package/build/src/run/hints.js.map +1 -1
  153. package/build/src/run/index.js +8 -2
  154. package/build/src/run/index.js.map +1 -1
  155. package/build/src/run/ios/XcodeBuild.js +57 -21
  156. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  157. package/build/src/run/ios/appleDevice/AppleDevice.js +25 -7
  158. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  159. package/build/src/run/ios/appleDevice/ClientManager.js +10 -4
  160. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  161. package/build/src/run/ios/appleDevice/client/AFCClient.js +34 -10
  162. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  163. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +16 -4
  164. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  165. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +8 -2
  166. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  167. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +17 -5
  168. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  169. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +17 -5
  170. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  171. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +25 -7
  172. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  173. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +24 -6
  174. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  175. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +8 -2
  176. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  177. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +16 -4
  178. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  179. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +8 -2
  180. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  181. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +16 -4
  182. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  183. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +16 -4
  184. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  185. package/build/src/run/ios/codeSigning/Security.js +17 -5
  186. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  187. package/build/src/run/ios/codeSigning/configureCodeSigning.js +8 -2
  188. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  189. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +9 -3
  190. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  191. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +25 -7
  192. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  193. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +22 -10
  194. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  195. package/build/src/run/ios/index.js +19 -7
  196. package/build/src/run/ios/index.js.map +1 -1
  197. package/build/src/run/ios/launchApp.js +17 -5
  198. package/build/src/run/ios/launchApp.js.map +1 -1
  199. package/build/src/run/ios/options/promptDevice.js +9 -3
  200. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  201. package/build/src/run/ios/options/resolveDevice.js +1 -2
  202. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  203. package/build/src/run/ios/options/resolveNativeScheme.js +27 -9
  204. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  205. package/build/src/run/ios/options/resolveXcodeProject.js +8 -2
  206. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  207. package/build/src/run/ios/runIosAsync.js +10 -2
  208. package/build/src/run/ios/runIosAsync.js.map +1 -1
  209. package/build/src/run/startBundler.js +16 -4
  210. package/build/src/run/startBundler.js.map +1 -1
  211. package/build/src/start/detectDevClient.js +29 -0
  212. package/build/src/start/detectDevClient.js.map +1 -0
  213. package/build/src/start/doctor/SecurityBinPrerequisite.js +8 -2
  214. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  215. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +16 -4
  216. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  217. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +16 -4
  218. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  219. package/build/src/start/doctor/apple/XcodePrerequisite.js +79 -29
  220. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  221. package/build/src/start/doctor/apple/XcrunPrerequisite.js +24 -6
  222. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  223. package/build/src/start/doctor/dependencies/bundledNativeModules.js +25 -7
  224. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  225. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +27 -9
  226. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  227. package/build/src/start/doctor/dependencies/getMissingPackages.js +24 -6
  228. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  229. package/build/src/start/doctor/dependencies/getVersionedPackages.js +8 -2
  230. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  231. package/build/src/start/doctor/dependencies/resolvePackages.js +25 -7
  232. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  233. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +32 -21
  234. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  235. package/build/src/start/doctor/ngrok/ExternalModule.js +33 -9
  236. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  237. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +18 -6
  238. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  239. package/build/src/start/doctor/typescript/updateTSConfig.js +29 -11
  240. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  241. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +18 -6
  242. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  243. package/build/src/start/index.js +17 -11
  244. package/build/src/start/index.js.map +1 -1
  245. package/build/src/start/interface/commandsTable.js +27 -9
  246. package/build/src/start/interface/commandsTable.js.map +1 -1
  247. package/build/src/start/interface/interactiveActions.js +17 -11
  248. package/build/src/start/interface/interactiveActions.js.map +1 -1
  249. package/build/src/start/interface/startInterface.js +8 -2
  250. package/build/src/start/interface/startInterface.js.map +1 -1
  251. package/build/src/start/platforms/AppIdResolver.js +9 -3
  252. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  253. package/build/src/start/platforms/DeviceManager.js +8 -2
  254. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  255. package/build/src/start/platforms/ExpoGoInstaller.js +30 -14
  256. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  257. package/build/src/start/platforms/PlatformManager.js +33 -13
  258. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  259. package/build/src/start/platforms/android/ADBServer.js +17 -5
  260. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  261. package/build/src/start/platforms/android/AndroidAppIdResolver.js +13 -7
  262. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  263. package/build/src/start/platforms/android/AndroidDeviceManager.js +19 -7
  264. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  265. package/build/src/start/platforms/android/AndroidSdk.js +34 -10
  266. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  267. package/build/src/start/platforms/android/activateWindow.js +16 -4
  268. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  269. package/build/src/start/platforms/android/adb.js +21 -4
  270. package/build/src/start/platforms/android/adb.js.map +1 -1
  271. package/build/src/start/platforms/android/emulator.js +32 -8
  272. package/build/src/start/platforms/android/emulator.js.map +1 -1
  273. package/build/src/start/platforms/android/gradle.js +23 -6
  274. package/build/src/start/platforms/android/gradle.js.map +1 -1
  275. package/build/src/start/platforms/android/promptAndroidDevice.js +10 -4
  276. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  277. package/build/src/start/platforms/ios/AppleAppIdResolver.js +26 -8
  278. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  279. package/build/src/start/platforms/ios/AppleDeviceManager.js +50 -18
  280. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  281. package/build/src/start/platforms/ios/assertSystemRequirements.js +4 -3
  282. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  283. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +16 -4
  284. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  285. package/build/src/start/platforms/ios/getBestSimulator.js +8 -2
  286. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  287. package/build/src/start/platforms/ios/promptAppleDevice.js +9 -3
  288. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  289. package/build/src/start/platforms/ios/simctl.js +12 -6
  290. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  291. package/build/src/start/platforms/ios/simctlLogging.js +40 -10
  292. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  293. package/build/src/start/platforms/ios/xcrun.js +16 -4
  294. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  295. package/build/src/start/project/dotExpo.js +27 -9
  296. package/build/src/start/project/dotExpo.js.map +1 -1
  297. package/build/src/start/resolveOptions.js +33 -15
  298. package/build/src/start/resolveOptions.js.map +1 -1
  299. package/build/src/start/server/AsyncNgrok.js +34 -10
  300. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  301. package/build/src/start/server/BundlerDevServer.js +16 -4
  302. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  303. package/build/src/start/server/DevServerManager.js +28 -10
  304. package/build/src/start/server/DevServerManager.js.map +1 -1
  305. package/build/src/start/server/DevToolsPluginManager.js +16 -4
  306. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  307. package/build/src/start/server/DevelopmentSession.js +9 -3
  308. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  309. package/build/src/start/server/ReactDevToolsProxy.js +26 -8
  310. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  311. package/build/src/start/server/UrlCreator.js +19 -6
  312. package/build/src/start/server/UrlCreator.js.map +1 -1
  313. package/build/src/start/server/getStaticRenderFunctions.js +91 -55
  314. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  315. package/build/src/start/server/metro/MetroBundlerDevServer.js +231 -83
  316. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  317. package/build/src/start/server/metro/MetroTerminalReporter.js +30 -15
  318. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  319. package/build/src/start/server/metro/TerminalReporter.js +26 -8
  320. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  321. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  322. package/build/src/start/server/metro/createExpoMetroResolver.js +56 -20
  323. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  324. package/build/src/start/server/metro/createJResolver.js +90 -45
  325. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  326. package/build/src/start/server/metro/createServerRouteMiddleware.js +29 -28
  327. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  328. package/build/src/start/server/metro/debugging/MessageHandler.js +27 -0
  329. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  330. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +11 -8
  331. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  332. package/build/src/start/server/metro/debugging/createHandlersFactory.js +63 -0
  333. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  334. package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +1 -6
  335. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  336. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +8 -5
  337. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  338. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/PageReload.js +7 -6
  339. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
  340. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +25 -0
  341. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  342. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +22 -0
  343. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  344. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +28 -0
  345. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  346. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +10 -6
  347. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  348. package/build/src/start/server/metro/debugging/pageIsSupported.js +14 -0
  349. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  350. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  351. package/build/src/start/server/metro/externals.js +51 -64
  352. package/build/src/start/server/metro/externals.js.map +1 -1
  353. package/build/src/start/server/metro/fetchRouterManifest.js +8 -2
  354. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  355. package/build/src/start/server/metro/formatFileCandidates.js +8 -2
  356. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  357. package/build/src/start/server/metro/getCssModulesFromBundler.js +34 -10
  358. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  359. package/build/src/start/server/metro/instantiateMetro.js +96 -30
  360. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  361. package/build/src/start/server/metro/metroErrorInterface.js +40 -21
  362. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  363. package/build/src/start/server/metro/metroVirtualModules.js +82 -0
  364. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  365. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +8 -2
  366. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  367. package/build/src/start/server/metro/router.js +44 -17
  368. package/build/src/start/server/metro/router.js.map +1 -1
  369. package/build/src/start/server/metro/runServer-fork.js +56 -14
  370. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  371. package/build/src/start/server/metro/serializeHtml.js +25 -12
  372. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  373. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +8 -2
  374. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  375. package/build/src/start/server/metro/withMetroMultiPlatform.js +148 -46
  376. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  377. package/build/src/start/server/metro/withMetroResolvers.js +31 -13
  378. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  379. package/build/src/start/server/middleware/CreateFileMiddleware.js +22 -10
  380. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  381. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +16 -4
  382. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  383. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +42 -12
  384. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  385. package/build/src/start/server/middleware/ExpoMiddleware.js +8 -2
  386. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  387. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +41 -11
  388. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  389. package/build/src/start/server/middleware/ManifestMiddleware.js +40 -10
  390. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  391. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +24 -6
  392. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  393. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +8 -2
  394. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  395. package/build/src/start/server/middleware/ServeStaticMiddleware.js +24 -6
  396. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  397. package/build/src/start/server/middleware/inspector/JsInspector.js +25 -8
  398. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  399. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +10 -4
  400. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  401. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +24 -6
  402. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  403. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +33 -9
  404. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  405. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +27 -11
  406. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  407. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +33 -9
  408. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  409. package/build/src/start/server/middleware/metroOptions.js +12 -2
  410. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  411. package/build/src/start/server/middleware/resolveAssets.js +17 -5
  412. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  413. package/build/src/start/server/middleware/resolvePlatform.js +8 -2
  414. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  415. package/build/src/start/server/platformBundlers.js +8 -2
  416. package/build/src/start/server/platformBundlers.js.map +1 -1
  417. package/build/src/start/server/serverLogLikeMetro.js +37 -13
  418. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  419. package/build/src/start/server/type-generation/expo-env.js +16 -4
  420. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  421. package/build/src/start/server/type-generation/routes.js +91 -37
  422. package/build/src/start/server/type-generation/routes.js.map +1 -1
  423. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +27 -9
  424. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  425. package/build/src/start/server/type-generation/tsconfig.js +27 -9
  426. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  427. package/build/src/start/server/webTemplate.js +26 -8
  428. package/build/src/start/server/webTemplate.js.map +1 -1
  429. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +36 -12
  430. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  431. package/build/src/start/server/webpack/compile.js +17 -5
  432. package/build/src/start/server/webpack/compile.js.map +1 -1
  433. package/build/src/start/server/webpack/resolveFromProject.js +8 -2
  434. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  435. package/build/src/start/server/webpack/tls.js +35 -11
  436. package/build/src/start/server/webpack/tls.js.map +1 -1
  437. package/build/src/start/startAsync.js +36 -11
  438. package/build/src/start/startAsync.js.map +1 -1
  439. package/build/src/utils/FileNotifier.js +32 -8
  440. package/build/src/utils/FileNotifier.js.map +1 -1
  441. package/build/src/utils/analytics/getDevClientProperties.js +26 -8
  442. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  443. package/build/src/utils/analytics/metroDebuggerMiddleware.js +2 -2
  444. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  445. package/build/src/utils/args.js +32 -8
  446. package/build/src/utils/args.js.map +1 -1
  447. package/build/src/utils/cocoapods.js +64 -28
  448. package/build/src/utils/cocoapods.js.map +1 -1
  449. package/build/src/utils/codesigning.js +79 -29
  450. package/build/src/utils/codesigning.js.map +1 -1
  451. package/build/src/utils/createFileTransform.js +24 -69
  452. package/build/src/utils/createFileTransform.js.map +1 -1
  453. package/build/src/utils/dir.js +33 -26
  454. package/build/src/utils/dir.js.map +1 -1
  455. package/build/src/utils/downloadAppAsync.js +40 -10
  456. package/build/src/utils/downloadAppAsync.js.map +1 -1
  457. package/build/src/utils/downloadExpoGoAsync.js +26 -11
  458. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  459. package/build/src/utils/editor.js +18 -6
  460. package/build/src/utils/editor.js.map +1 -1
  461. package/build/src/utils/env.js +40 -31
  462. package/build/src/utils/env.js.map +1 -1
  463. package/build/src/utils/errors.js +20 -5
  464. package/build/src/utils/errors.js.map +1 -1
  465. package/build/src/utils/findUp.js +18 -6
  466. package/build/src/utils/findUp.js.map +1 -1
  467. package/build/src/utils/getOrPromptApplicationId.js +19 -7
  468. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  469. package/build/src/utils/getRunningProcess.js +18 -6
  470. package/build/src/utils/getRunningProcess.js.map +1 -1
  471. package/build/src/utils/git.js +18 -6
  472. package/build/src/utils/git.js.map +1 -1
  473. package/build/src/utils/glob.js +9 -3
  474. package/build/src/utils/glob.js.map +1 -1
  475. package/build/src/utils/ip.js +8 -2
  476. package/build/src/utils/ip.js.map +1 -1
  477. package/build/src/utils/isModuleSymlinked.js +16 -4
  478. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  479. package/build/src/utils/link.js +18 -6
  480. package/build/src/utils/link.js.map +1 -1
  481. package/build/src/utils/mergeGitIgnorePaths.js +25 -13
  482. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  483. package/build/src/utils/modifyConfigAsync.js +18 -6
  484. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  485. package/build/src/utils/modifyConfigPlugins.js +8 -2
  486. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  487. package/build/src/utils/nodeEnv.js +2 -0
  488. package/build/src/utils/nodeEnv.js.map +1 -1
  489. package/build/src/utils/nodeModules.js +23 -5
  490. package/build/src/utils/nodeModules.js.map +1 -1
  491. package/build/src/utils/npm.js +64 -17
  492. package/build/src/utils/npm.js.map +1 -1
  493. package/build/src/utils/open.js +9 -3
  494. package/build/src/utils/open.js.map +1 -1
  495. package/build/src/utils/ora.js +16 -4
  496. package/build/src/utils/ora.js.map +1 -1
  497. package/build/src/utils/plist.js +24 -6
  498. package/build/src/utils/plist.js.map +1 -1
  499. package/build/src/utils/port.js +22 -10
  500. package/build/src/utils/port.js.map +1 -1
  501. package/build/src/utils/profile.js +8 -2
  502. package/build/src/utils/profile.js.map +1 -1
  503. package/build/src/utils/progress.js +8 -2
  504. package/build/src/utils/progress.js.map +1 -1
  505. package/build/src/utils/prompts.js +16 -4
  506. package/build/src/utils/prompts.js.map +1 -1
  507. package/build/src/utils/scheme.js +75 -23
  508. package/build/src/utils/scheme.js.map +1 -1
  509. package/build/src/utils/tar.js +16 -4
  510. package/build/src/utils/tar.js.map +1 -1
  511. package/build/src/utils/telemetry/DetachedClient.js +87 -0
  512. package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
  513. package/build/src/utils/telemetry/RudderClient.js +98 -0
  514. package/build/src/utils/telemetry/RudderClient.js.map +1 -0
  515. package/build/src/utils/telemetry/flushDetached.js +43 -0
  516. package/build/src/utils/telemetry/flushDetached.js.map +1 -0
  517. package/build/src/utils/telemetry/getContext.js +92 -0
  518. package/build/src/utils/telemetry/getContext.js.map +1 -0
  519. package/build/src/utils/telemetry/index.js +32 -0
  520. package/build/src/utils/telemetry/index.js.map +1 -0
  521. package/build/src/utils/telemetry/types.js +6 -0
  522. package/build/src/utils/telemetry/types.js.map +1 -0
  523. package/build/src/utils/tsconfig/evaluateTsConfig.js +16 -4
  524. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  525. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -6
  526. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  527. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +10 -4
  528. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  529. package/build/src/utils/url.js +19 -10
  530. package/build/src/utils/url.js.map +1 -1
  531. package/build/src/utils/validateApplicationId.js +18 -6
  532. package/build/src/utils/validateApplicationId.js.map +1 -1
  533. package/build/src/whoami/whoamiAsync.js +8 -2
  534. package/build/src/whoami/whoamiAsync.js.map +1 -1
  535. package/package.json +15 -16
  536. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
  537. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
  538. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
  539. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
  540. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
  541. package/build/src/run/android/resolveGradleProps.js +0 -37
  542. package/build/src/run/android/resolveGradleProps.js.map +0 -1
  543. package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
  544. package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
  545. package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
  546. package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
  547. package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
  548. package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
  549. package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
  550. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
  551. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
  552. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
  553. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
  554. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
  555. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
  556. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
  557. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
  558. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
  559. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
  560. package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
  561. package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
  562. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
  563. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
  564. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
  565. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
  566. package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
  567. package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
  568. package/build/src/utils/analytics/rudderstackClient.js +0 -147
  569. package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
  570. /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/LaunchBrowser.ts"],"sourcesContent":["import os from 'os';\n\nimport {\n LaunchBrowserTypesEnum,\n type LaunchBrowser,\n type LaunchBrowserInstance,\n type LaunchBrowserTypes,\n} from './LaunchBrowser.types';\nimport LaunchBrowserImplLinux from './LaunchBrowserImplLinux';\nimport LaunchBrowserImplMacOS from './LaunchBrowserImplMacOS';\nimport LaunchBrowserImplWindows from './LaunchBrowserImplWindows';\n\nexport type { LaunchBrowserInstance };\n\nconst IS_WSL = require('is-wsl') && !require('is-docker')();\n\n/**\n * A factory to create a LaunchBrowser instance based on the host platform\n */\nexport function createLaunchBrowser(): LaunchBrowser {\n let launchBrowser: LaunchBrowser;\n if (os.platform() === 'darwin') {\n launchBrowser = new LaunchBrowserImplMacOS();\n } else if (os.platform() === 'win32' || IS_WSL) {\n launchBrowser = new LaunchBrowserImplWindows();\n } else if (os.platform() === 'linux') {\n launchBrowser = new LaunchBrowserImplLinux();\n } else {\n throw new Error('[createLaunchBrowser] Unsupported host platform');\n }\n return launchBrowser;\n}\n\n/**\n * Find a supported browser type on the host\n */\nexport async function findSupportedBrowserTypeAsync(\n launchBrowser: LaunchBrowser\n): Promise<LaunchBrowserTypes> {\n const supportedBrowsers = Object.values(LaunchBrowserTypesEnum);\n for (const browserType of supportedBrowsers) {\n if (await launchBrowser.isSupportedBrowser(browserType)) {\n return browserType;\n }\n }\n\n throw new Error(\n `[findSupportedBrowserTypeAsync] Unable to find a browser on the host to open the inspector. Supported browsers: ${supportedBrowsers.join(\n ', '\n )}`\n );\n}\n\n/**\n * Launch a browser for inspector\n */\nexport async function launchInspectorBrowserAsync(\n url: string,\n browser?: LaunchBrowser,\n browserType?: LaunchBrowserTypes\n): Promise<LaunchBrowserInstance> {\n const launchBrowser = browser ?? createLaunchBrowser();\n const launchBrowserType = browserType ?? (await findSupportedBrowserTypeAsync(launchBrowser));\n\n const tempBrowserDir = await launchBrowser.createTempBrowserDir('expo-inspector');\n\n // For dev-client connecting metro in LAN, the request to fetch sourcemaps may be blocked by Chromium\n // with insecure-content (https page send xhr for http resource).\n // Adding `--allow-running-insecure-content` to overcome this limitation\n // without users manually allow insecure-content in site settings.\n // However, if there is existing chromium browser process, the argument will not take effect.\n // We also pass a `--user-data-dir=` as temporary profile and force chromium to create new browser process.\n const launchArgs = [\n `--app=${url}`,\n '--allow-running-insecure-content',\n `--user-data-dir=${tempBrowserDir}`,\n '--no-first-run',\n '--no-default-browser-check',\n ];\n\n return launchBrowser.launchAsync(launchBrowserType, launchArgs);\n}\n"],"names":["createLaunchBrowser","findSupportedBrowserTypeAsync","launchInspectorBrowserAsync","IS_WSL","require","launchBrowser","os","platform","LaunchBrowserImplMacOS","LaunchBrowserImplWindows","LaunchBrowserImplLinux","Error","supportedBrowsers","Object","values","LaunchBrowserTypesEnum","browserType","isSupportedBrowser","join","url","browser","launchBrowserType","tempBrowserDir","createTempBrowserDir","launchArgs","launchAsync"],"mappings":"AAAA;;;;QAmBgBA,mBAAmB,GAAnBA,mBAAmB;QAiBbC,6BAA6B,GAA7BA,6BAA6B;QAoB7BC,2BAA2B,GAA3BA,2BAA2B;AAxDlC,IAAA,GAAI,kCAAJ,IAAI,EAAA;AAOZ,IAAA,mBAAuB,WAAvB,uBAAuB,CAAA;AACK,IAAA,uBAA0B,kCAA1B,0BAA0B,EAAA;AAC1B,IAAA,uBAA0B,kCAA1B,0BAA0B,EAAA;AACxB,IAAA,yBAA4B,kCAA5B,4BAA4B,EAAA;;;;;;AAIjE,MAAMC,MAAM,GAAGC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAACA,OAAO,CAAC,WAAW,CAAC,EAAE,AAAC;AAKrD,SAASJ,mBAAmB,GAAkB;IACnD,IAAIK,aAAa,AAAe,AAAC;IACjC,IAAIC,GAAE,QAAA,CAACC,QAAQ,EAAE,KAAK,QAAQ,EAAE;QAC9BF,aAAa,GAAG,IAAIG,uBAAsB,QAAA,EAAE,CAAC;KAC9C,MAAM,IAAIF,GAAE,QAAA,CAACC,QAAQ,EAAE,KAAK,OAAO,IAAIJ,MAAM,EAAE;QAC9CE,aAAa,GAAG,IAAII,yBAAwB,QAAA,EAAE,CAAC;KAChD,MAAM,IAAIH,GAAE,QAAA,CAACC,QAAQ,EAAE,KAAK,OAAO,EAAE;QACpCF,aAAa,GAAG,IAAIK,uBAAsB,QAAA,EAAE,CAAC;KAC9C,MAAM;QACL,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;IACD,OAAON,aAAa,CAAC;CACtB;AAKM,eAAeJ,6BAA6B,CACjDI,aAA4B,EACC;IAC7B,MAAMO,iBAAiB,GAAGC,MAAM,CAACC,MAAM,CAACC,mBAAsB,uBAAA,CAAC,AAAC;IAChE,KAAK,MAAMC,WAAW,IAAIJ,iBAAiB,CAAE;QAC3C,IAAI,MAAMP,aAAa,CAACY,kBAAkB,CAACD,WAAW,CAAC,EAAE;YACvD,OAAOA,WAAW,CAAC;SACpB;KACF;IAED,MAAM,IAAIL,KAAK,CACb,CAAC,gHAAgH,EAAEC,iBAAiB,CAACM,IAAI,CACvI,IAAI,CACL,CAAC,CAAC,CACJ,CAAC;CACH;AAKM,eAAehB,2BAA2B,CAC/CiB,GAAW,EACXC,OAAuB,EACvBJ,WAAgC,EACA;IAChC,MAAMX,aAAa,GAAGe,OAAO,WAAPA,OAAO,GAAIpB,mBAAmB,EAAE,AAAC;IACvD,MAAMqB,iBAAiB,GAAGL,WAAW,WAAXA,WAAW,GAAK,MAAMf,6BAA6B,CAACI,aAAa,CAAC,AAAC,AAAC;IAE9F,MAAMiB,cAAc,GAAG,MAAMjB,aAAa,CAACkB,oBAAoB,CAAC,gBAAgB,CAAC,AAAC;IAElF,qGAAqG;IACrG,iEAAiE;IACjE,wEAAwE;IACxE,kEAAkE;IAClE,6FAA6F;IAC7F,2GAA2G;IAC3G,MAAMC,UAAU,GAAG;QACjB,CAAC,MAAM,EAAEL,GAAG,CAAC,CAAC;QACd,kCAAkC;QAClC,CAAC,gBAAgB,EAAEG,cAAc,CAAC,CAAC;QACnC,gBAAgB;QAChB,4BAA4B;KAC7B,AAAC;IAEF,OAAOjB,aAAa,CAACoB,WAAW,CAACJ,iBAAiB,EAAEG,UAAU,CAAC,CAAC;CACjE"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/LaunchBrowser.ts"],"sourcesContent":["import os from 'os';\n\nimport {\n LaunchBrowserTypesEnum,\n type LaunchBrowser,\n type LaunchBrowserInstance,\n type LaunchBrowserTypes,\n} from './LaunchBrowser.types';\nimport LaunchBrowserImplLinux from './LaunchBrowserImplLinux';\nimport LaunchBrowserImplMacOS from './LaunchBrowserImplMacOS';\nimport LaunchBrowserImplWindows from './LaunchBrowserImplWindows';\n\nexport type { LaunchBrowserInstance };\n\nconst IS_WSL = require('is-wsl') && !require('is-docker')();\n\n/**\n * A factory to create a LaunchBrowser instance based on the host platform\n */\nexport function createLaunchBrowser(): LaunchBrowser {\n let launchBrowser: LaunchBrowser;\n if (os.platform() === 'darwin') {\n launchBrowser = new LaunchBrowserImplMacOS();\n } else if (os.platform() === 'win32' || IS_WSL) {\n launchBrowser = new LaunchBrowserImplWindows();\n } else if (os.platform() === 'linux') {\n launchBrowser = new LaunchBrowserImplLinux();\n } else {\n throw new Error('[createLaunchBrowser] Unsupported host platform');\n }\n return launchBrowser;\n}\n\n/**\n * Find a supported browser type on the host\n */\nexport async function findSupportedBrowserTypeAsync(\n launchBrowser: LaunchBrowser\n): Promise<LaunchBrowserTypes> {\n const supportedBrowsers = Object.values(LaunchBrowserTypesEnum);\n for (const browserType of supportedBrowsers) {\n if (await launchBrowser.isSupportedBrowser(browserType)) {\n return browserType;\n }\n }\n\n throw new Error(\n `[findSupportedBrowserTypeAsync] Unable to find a browser on the host to open the inspector. Supported browsers: ${supportedBrowsers.join(\n ', '\n )}`\n );\n}\n\n/**\n * Launch a browser for inspector\n */\nexport async function launchInspectorBrowserAsync(\n url: string,\n browser?: LaunchBrowser,\n browserType?: LaunchBrowserTypes\n): Promise<LaunchBrowserInstance> {\n const launchBrowser = browser ?? createLaunchBrowser();\n const launchBrowserType = browserType ?? (await findSupportedBrowserTypeAsync(launchBrowser));\n\n const tempBrowserDir = await launchBrowser.createTempBrowserDir('expo-inspector');\n\n // For dev-client connecting metro in LAN, the request to fetch sourcemaps may be blocked by Chromium\n // with insecure-content (https page send xhr for http resource).\n // Adding `--allow-running-insecure-content` to overcome this limitation\n // without users manually allow insecure-content in site settings.\n // However, if there is existing chromium browser process, the argument will not take effect.\n // We also pass a `--user-data-dir=` as temporary profile and force chromium to create new browser process.\n const launchArgs = [\n `--app=${url}`,\n '--allow-running-insecure-content',\n `--user-data-dir=${tempBrowserDir}`,\n '--no-first-run',\n '--no-default-browser-check',\n ];\n\n return launchBrowser.launchAsync(launchBrowserType, launchArgs);\n}\n"],"names":["createLaunchBrowser","findSupportedBrowserTypeAsync","launchInspectorBrowserAsync","IS_WSL","require","launchBrowser","os","platform","LaunchBrowserImplMacOS","LaunchBrowserImplWindows","LaunchBrowserImplLinux","Error","supportedBrowsers","Object","values","LaunchBrowserTypesEnum","browserType","isSupportedBrowser","join","url","browser","launchBrowserType","tempBrowserDir","createTempBrowserDir","launchArgs","launchAsync"],"mappings":"AAAA;;;;QAmBgBA,mBAAmB,GAAnBA,mBAAmB;QAiBbC,6BAA6B,GAA7BA,6BAA6B;QAoB7BC,2BAA2B,GAA3BA,2BAA2B;SAxDlC,GAAI;gDAAJ,IAAI;IAAJ,GAAI;;;;;AAOZ,IAAA,mBAAuB,WAAvB,uBAAuB,CAAA;AACK,IAAA,uBAA0B,kCAA1B,0BAA0B,EAAA;AAC1B,IAAA,uBAA0B,kCAA1B,0BAA0B,EAAA;AACxB,IAAA,yBAA4B,kCAA5B,4BAA4B,EAAA;;;;;;AAIjE,MAAMC,MAAM,GAAGC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAACA,OAAO,CAAC,WAAW,CAAC,EAAE,AAAC;AAKrD,SAASJ,mBAAmB,GAAkB;IACnD,IAAIK,aAAa,AAAe,AAAC;IACjC,IAAIC,GAAE,UAAA,CAACC,QAAQ,EAAE,KAAK,QAAQ,EAAE;QAC9BF,aAAa,GAAG,IAAIG,uBAAsB,QAAA,EAAE,CAAC;KAC9C,MAAM,IAAIF,GAAE,UAAA,CAACC,QAAQ,EAAE,KAAK,OAAO,IAAIJ,MAAM,EAAE;QAC9CE,aAAa,GAAG,IAAII,yBAAwB,QAAA,EAAE,CAAC;KAChD,MAAM,IAAIH,GAAE,UAAA,CAACC,QAAQ,EAAE,KAAK,OAAO,EAAE;QACpCF,aAAa,GAAG,IAAIK,uBAAsB,QAAA,EAAE,CAAC;KAC9C,MAAM;QACL,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;IACD,OAAON,aAAa,CAAC;CACtB;AAKM,eAAeJ,6BAA6B,CACjDI,aAA4B,EACC;IAC7B,MAAMO,iBAAiB,GAAGC,MAAM,CAACC,MAAM,CAACC,mBAAsB,uBAAA,CAAC,AAAC;IAChE,KAAK,MAAMC,WAAW,IAAIJ,iBAAiB,CAAE;QAC3C,IAAI,MAAMP,aAAa,CAACY,kBAAkB,CAACD,WAAW,CAAC,EAAE;YACvD,OAAOA,WAAW,CAAC;SACpB;KACF;IAED,MAAM,IAAIL,KAAK,CACb,CAAC,gHAAgH,EAAEC,iBAAiB,CAACM,IAAI,CACvI,IAAI,CACL,CAAC,CAAC,CACJ,CAAC;CACH;AAKM,eAAehB,2BAA2B,CAC/CiB,GAAW,EACXC,OAAuB,EACvBJ,WAAgC,EACA;IAChC,MAAMX,aAAa,GAAGe,OAAO,WAAPA,OAAO,GAAIpB,mBAAmB,EAAE,AAAC;IACvD,MAAMqB,iBAAiB,GAAGL,WAAW,WAAXA,WAAW,GAAK,MAAMf,6BAA6B,CAACI,aAAa,CAAC,AAAC,AAAC;IAE9F,MAAMiB,cAAc,GAAG,MAAMjB,aAAa,CAACkB,oBAAoB,CAAC,gBAAgB,CAAC,AAAC;IAElF,qGAAqG;IACrG,iEAAiE;IACjE,wEAAwE;IACxE,kEAAkE;IAClE,6FAA6F;IAC7F,2GAA2G;IAC3G,MAAMC,UAAU,GAAG;QACjB,CAAC,MAAM,EAAEL,GAAG,CAAC,CAAC;QACd,kCAAkC;QAClC,CAAC,gBAAgB,EAAEG,cAAc,CAAC,CAAC;QACnC,gBAAgB;QAChB,4BAA4B;KAC7B,AAAC;IAEF,OAAOjB,aAAa,CAACoB,WAAW,CAACJ,iBAAiB,EAAEG,UAAU,CAAC,CAAC;CACjE"}
@@ -3,9 +3,27 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.default = void 0;
6
- var _spawnAsync = _interopRequireDefault(require("@expo/spawn-async"));
7
- var _open = _interopRequireDefault(require("open"));
8
- var _path = _interopRequireDefault(require("path"));
6
+ function _spawnAsync() {
7
+ const data = _interopRequireDefault(require("@expo/spawn-async"));
8
+ _spawnAsync = function() {
9
+ return data;
10
+ };
11
+ return data;
12
+ }
13
+ function _open() {
14
+ const data = _interopRequireDefault(require("open"));
15
+ _open = function() {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
20
+ function _path() {
21
+ const data = _interopRequireDefault(require("path"));
22
+ _path = function() {
23
+ return data;
24
+ };
25
+ return data;
26
+ }
9
27
  var _launchBrowserTypes = require("./LaunchBrowser.types");
10
28
  class LaunchBrowserImplLinux {
11
29
  MAP = {
@@ -28,7 +46,7 @@ class LaunchBrowserImplLinux {
28
46
  if (this._appId == null || !this.MAP[browserType].includes(this._appId)) {
29
47
  for (const appId of this.MAP[browserType]){
30
48
  try {
31
- const { status } = await (0, _spawnAsync).default("which", [
49
+ const { status } = await _spawnAsync().default("which", [
32
50
  appId
33
51
  ], {
34
52
  stdio: "ignore"
@@ -56,11 +74,11 @@ class LaunchBrowserImplLinux {
56
74
  return result;
57
75
  }
58
76
  async createTempBrowserDir(baseDirName) {
59
- return _path.default.join(require("temp-dir"), baseDirName);
77
+ return _path().default.join(require("temp-dir"), baseDirName);
60
78
  }
61
79
  async launchAsync(browserType, args) {
62
80
  const appId = await this.getAppId(browserType);
63
- this._process = await _open.default.openApp(appId, {
81
+ this._process = await _open().default.openApp(appId, {
64
82
  arguments: args
65
83
  });
66
84
  return this;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/LaunchBrowserImplLinux.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport { type ChildProcess } from 'child_process';\nimport open from 'open';\nimport path from 'path';\n\nimport {\n LaunchBrowserTypes,\n type LaunchBrowser,\n type LaunchBrowserInstance,\n LaunchBrowserTypesEnum,\n} from './LaunchBrowser.types';\n\n/**\n * Browser implementation for Linux\n */\nexport default class LaunchBrowserImplLinux implements LaunchBrowser, LaunchBrowserInstance {\n private _appId: string | undefined;\n private _process: ChildProcess | undefined;\n\n MAP = {\n [LaunchBrowserTypesEnum.CHROME]: ['google-chrome', 'google-chrome-stable', 'chromium'],\n [LaunchBrowserTypesEnum.EDGE]: ['microsoft-edge', 'microsoft-edge-dev'],\n [LaunchBrowserTypesEnum.BRAVE]: ['brave'],\n };\n\n /**\n * On Linux, the supported appId is an array, this function finds the available appId and caches it\n */\n private async getAppId(browserType: LaunchBrowserTypes): Promise<string> {\n if (this._appId == null || !this.MAP[browserType].includes(this._appId)) {\n for (const appId of this.MAP[browserType]) {\n try {\n const { status } = await spawnAsync('which', [appId], { stdio: 'ignore' });\n if (status === 0) {\n this._appId = appId;\n break;\n }\n } catch {}\n }\n }\n\n if (this._appId == null) {\n throw new Error(\n `Unable to find supported browser - tried[${this.MAP[browserType].join(', ')}]`\n );\n }\n\n return this._appId;\n }\n\n async isSupportedBrowser(browserType: LaunchBrowserTypes): Promise<boolean> {\n let result = false;\n try {\n await this.getAppId(browserType);\n result = true;\n } catch {\n result = false;\n }\n return result;\n }\n\n async createTempBrowserDir(baseDirName: string) {\n return path.join(require('temp-dir'), baseDirName);\n }\n\n async launchAsync(\n browserType: LaunchBrowserTypes,\n args: string[]\n ): Promise<LaunchBrowserInstance> {\n const appId = await this.getAppId(browserType);\n this._process = await open.openApp(appId, { arguments: args });\n return this;\n }\n\n async close(): Promise<void> {\n this._process?.kill();\n this._process = undefined;\n this._appId = undefined;\n }\n}\n"],"names":["LaunchBrowserImplLinux","MAP","LaunchBrowserTypesEnum","CHROME","EDGE","BRAVE","getAppId","browserType","_appId","includes","appId","status","spawnAsync","stdio","Error","join","isSupportedBrowser","result","createTempBrowserDir","baseDirName","path","require","launchAsync","args","_process","open","openApp","arguments","close","kill","undefined"],"mappings":"AAAA;;;;;AAAuB,IAAA,WAAmB,kCAAnB,mBAAmB,EAAA;AAEzB,IAAA,KAAM,kCAAN,MAAM,EAAA;AACN,IAAA,KAAM,kCAAN,MAAM,EAAA;AAOhB,IAAA,mBAAuB,WAAvB,uBAAuB,CAAA;AAKf,MAAMA,sBAAsB;IAIzCC,GAAG,GAAG;QACJ,CAACC,mBAAsB,uBAAA,CAACC,MAAM,CAAC,EAAE;YAAC,eAAe;YAAE,sBAAsB;YAAE,UAAU;SAAC;QACtF,CAACD,mBAAsB,uBAAA,CAACE,IAAI,CAAC,EAAE;YAAC,gBAAgB;YAAE,oBAAoB;SAAC;QACvE,CAACF,mBAAsB,uBAAA,CAACG,KAAK,CAAC,EAAE;YAAC,OAAO;SAAC;KAC1C,CAAC;IAEF;;KAEG,CACH,MAAcC,QAAQ,CAACC,WAA+B,EAAmB;QACvE,IAAI,IAAI,CAACC,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAACP,GAAG,CAACM,WAAW,CAAC,CAACE,QAAQ,CAAC,IAAI,CAACD,MAAM,CAAC,EAAE;YACvE,KAAK,MAAME,KAAK,IAAI,IAAI,CAACT,GAAG,CAACM,WAAW,CAAC,CAAE;gBACzC,IAAI;oBACF,MAAM,EAAEI,MAAM,CAAA,EAAE,GAAG,MAAMC,CAAAA,GAAAA,WAAU,AAAuC,CAAA,QAAvC,CAAC,OAAO,EAAE;wBAACF,KAAK;qBAAC,EAAE;wBAAEG,KAAK,EAAE,QAAQ;qBAAE,CAAC,AAAC;oBAC3E,IAAIF,MAAM,KAAK,CAAC,EAAE;wBAChB,IAAI,CAACH,MAAM,GAAGE,KAAK,CAAC;wBACpB,MAAM;qBACP;iBACF,CAAC,OAAM,EAAE;aACX;SACF;QAED,IAAI,IAAI,CAACF,MAAM,IAAI,IAAI,EAAE;YACvB,MAAM,IAAIM,KAAK,CACb,CAAC,yCAAyC,EAAE,IAAI,CAACb,GAAG,CAACM,WAAW,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC;SACH;QAED,OAAO,IAAI,CAACP,MAAM,CAAC;KACpB;IAED,MAAMQ,kBAAkB,CAACT,WAA+B,EAAoB;QAC1E,IAAIU,MAAM,GAAG,KAAK,AAAC;QACnB,IAAI;YACF,MAAM,IAAI,CAACX,QAAQ,CAACC,WAAW,CAAC,CAAC;YACjCU,MAAM,GAAG,IAAI,CAAC;SACf,CAAC,OAAM;YACNA,MAAM,GAAG,KAAK,CAAC;SAChB;QACD,OAAOA,MAAM,CAAC;KACf;IAED,MAAMC,oBAAoB,CAACC,WAAmB,EAAE;QAC9C,OAAOC,KAAI,QAAA,CAACL,IAAI,CAACM,OAAO,CAAC,UAAU,CAAC,EAAEF,WAAW,CAAC,CAAC;KACpD;IAED,MAAMG,WAAW,CACff,WAA+B,EAC/BgB,IAAc,EACkB;QAChC,MAAMb,KAAK,GAAG,MAAM,IAAI,CAACJ,QAAQ,CAACC,WAAW,CAAC,AAAC;QAC/C,IAAI,CAACiB,QAAQ,GAAG,MAAMC,KAAI,QAAA,CAACC,OAAO,CAAChB,KAAK,EAAE;YAAEiB,SAAS,EAAEJ,IAAI;SAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;KACb;IAED,MAAMK,KAAK,GAAkB;YAC3B,GAAa;QAAb,CAAA,GAAa,GAAb,IAAI,CAACJ,QAAQ,SAAM,GAAnB,KAAA,CAAmB,GAAnB,GAAa,CAAEK,IAAI,EAAE,AA3EzB,CA2E0B;QACtB,IAAI,CAACL,QAAQ,GAAGM,SAAS,CAAC;QAC1B,IAAI,CAACtB,MAAM,GAAGsB,SAAS,CAAC;KACzB;CACF;kBAhEoB9B,sBAAsB"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/LaunchBrowserImplLinux.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport { type ChildProcess } from 'child_process';\nimport open from 'open';\nimport path from 'path';\n\nimport {\n LaunchBrowserTypes,\n type LaunchBrowser,\n type LaunchBrowserInstance,\n LaunchBrowserTypesEnum,\n} from './LaunchBrowser.types';\n\n/**\n * Browser implementation for Linux\n */\nexport default class LaunchBrowserImplLinux implements LaunchBrowser, LaunchBrowserInstance {\n private _appId: string | undefined;\n private _process: ChildProcess | undefined;\n\n MAP = {\n [LaunchBrowserTypesEnum.CHROME]: ['google-chrome', 'google-chrome-stable', 'chromium'],\n [LaunchBrowserTypesEnum.EDGE]: ['microsoft-edge', 'microsoft-edge-dev'],\n [LaunchBrowserTypesEnum.BRAVE]: ['brave'],\n };\n\n /**\n * On Linux, the supported appId is an array, this function finds the available appId and caches it\n */\n private async getAppId(browserType: LaunchBrowserTypes): Promise<string> {\n if (this._appId == null || !this.MAP[browserType].includes(this._appId)) {\n for (const appId of this.MAP[browserType]) {\n try {\n const { status } = await spawnAsync('which', [appId], { stdio: 'ignore' });\n if (status === 0) {\n this._appId = appId;\n break;\n }\n } catch {}\n }\n }\n\n if (this._appId == null) {\n throw new Error(\n `Unable to find supported browser - tried[${this.MAP[browserType].join(', ')}]`\n );\n }\n\n return this._appId;\n }\n\n async isSupportedBrowser(browserType: LaunchBrowserTypes): Promise<boolean> {\n let result = false;\n try {\n await this.getAppId(browserType);\n result = true;\n } catch {\n result = false;\n }\n return result;\n }\n\n async createTempBrowserDir(baseDirName: string) {\n return path.join(require('temp-dir'), baseDirName);\n }\n\n async launchAsync(\n browserType: LaunchBrowserTypes,\n args: string[]\n ): Promise<LaunchBrowserInstance> {\n const appId = await this.getAppId(browserType);\n this._process = await open.openApp(appId, { arguments: args });\n return this;\n }\n\n async close(): Promise<void> {\n this._process?.kill();\n this._process = undefined;\n this._appId = undefined;\n }\n}\n"],"names":["LaunchBrowserImplLinux","MAP","LaunchBrowserTypesEnum","CHROME","EDGE","BRAVE","getAppId","browserType","_appId","includes","appId","status","spawnAsync","stdio","Error","join","isSupportedBrowser","result","createTempBrowserDir","baseDirName","path","require","launchAsync","args","_process","open","openApp","arguments","close","kill","undefined"],"mappings":"AAAA;;;;;SAAuB,WAAmB;gDAAnB,mBAAmB;IAAnB,WAAmB;;;;;SAEzB,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;SACN,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;AAOhB,IAAA,mBAAuB,WAAvB,uBAAuB,CAAA;AAKf,MAAMA,sBAAsB;IAIzCC,GAAG,GAAG;QACJ,CAACC,mBAAsB,uBAAA,CAACC,MAAM,CAAC,EAAE;YAAC,eAAe;YAAE,sBAAsB;YAAE,UAAU;SAAC;QACtF,CAACD,mBAAsB,uBAAA,CAACE,IAAI,CAAC,EAAE;YAAC,gBAAgB;YAAE,oBAAoB;SAAC;QACvE,CAACF,mBAAsB,uBAAA,CAACG,KAAK,CAAC,EAAE;YAAC,OAAO;SAAC;KAC1C,CAAC;IAEF;;KAEG,CACH,MAAcC,QAAQ,CAACC,WAA+B,EAAmB;QACvE,IAAI,IAAI,CAACC,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAACP,GAAG,CAACM,WAAW,CAAC,CAACE,QAAQ,CAAC,IAAI,CAACD,MAAM,CAAC,EAAE;YACvE,KAAK,MAAME,KAAK,IAAI,IAAI,CAACT,GAAG,CAACM,WAAW,CAAC,CAAE;gBACzC,IAAI;oBACF,MAAM,EAAEI,MAAM,CAAA,EAAE,GAAG,MAAMC,WAAU,UAAA,CAAC,OAAO,EAAE;wBAACF,KAAK;qBAAC,EAAE;wBAAEG,KAAK,EAAE,QAAQ;qBAAE,CAAC,AAAC;oBAC3E,IAAIF,MAAM,KAAK,CAAC,EAAE;wBAChB,IAAI,CAACH,MAAM,GAAGE,KAAK,CAAC;wBACpB,MAAM;qBACP;iBACF,CAAC,OAAM,EAAE;aACX;SACF;QAED,IAAI,IAAI,CAACF,MAAM,IAAI,IAAI,EAAE;YACvB,MAAM,IAAIM,KAAK,CACb,CAAC,yCAAyC,EAAE,IAAI,CAACb,GAAG,CAACM,WAAW,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC;SACH;QAED,OAAO,IAAI,CAACP,MAAM,CAAC;KACpB;IAED,MAAMQ,kBAAkB,CAACT,WAA+B,EAAoB;QAC1E,IAAIU,MAAM,GAAG,KAAK,AAAC;QACnB,IAAI;YACF,MAAM,IAAI,CAACX,QAAQ,CAACC,WAAW,CAAC,CAAC;YACjCU,MAAM,GAAG,IAAI,CAAC;SACf,CAAC,OAAM;YACNA,MAAM,GAAG,KAAK,CAAC;SAChB;QACD,OAAOA,MAAM,CAAC;KACf;IAED,MAAMC,oBAAoB,CAACC,WAAmB,EAAE;QAC9C,OAAOC,KAAI,UAAA,CAACL,IAAI,CAACM,OAAO,CAAC,UAAU,CAAC,EAAEF,WAAW,CAAC,CAAC;KACpD;IAED,MAAMG,WAAW,CACff,WAA+B,EAC/BgB,IAAc,EACkB;QAChC,MAAMb,KAAK,GAAG,MAAM,IAAI,CAACJ,QAAQ,CAACC,WAAW,CAAC,AAAC;QAC/C,IAAI,CAACiB,QAAQ,GAAG,MAAMC,KAAI,UAAA,CAACC,OAAO,CAAChB,KAAK,EAAE;YAAEiB,SAAS,EAAEJ,IAAI;SAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;KACb;IAED,MAAMK,KAAK,GAAkB;YAC3B,GAAa;QAAb,CAAA,GAAa,GAAb,IAAI,CAACJ,QAAQ,SAAM,GAAnB,KAAA,CAAmB,GAAnB,GAAa,CAAEK,IAAI,EAAE,AA3EzB,CA2E0B;QACtB,IAAI,CAACL,QAAQ,GAAGM,SAAS,CAAC;QAC1B,IAAI,CAACtB,MAAM,GAAGsB,SAAS,CAAC;KACzB;CACF;kBAhEoB9B,sBAAsB"}
@@ -3,10 +3,34 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.default = void 0;
6
- var osascript = _interopRequireWildcard(require("@expo/osascript"));
7
- var _childProcess = require("child_process");
8
- var _glob = require("glob");
9
- var _path = _interopRequireDefault(require("path"));
6
+ function osascript() {
7
+ const data = _interopRequireWildcard(require("@expo/osascript"));
8
+ osascript = function() {
9
+ return data;
10
+ };
11
+ return data;
12
+ }
13
+ function _childProcess() {
14
+ const data = require("child_process");
15
+ _childProcess = function() {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
20
+ function _glob() {
21
+ const data = require("glob");
22
+ _glob = function() {
23
+ return data;
24
+ };
25
+ return data;
26
+ }
27
+ function _path() {
28
+ const data = _interopRequireDefault(require("path"));
29
+ _path = function() {
30
+ return data;
31
+ };
32
+ return data;
33
+ }
10
34
  var _launchBrowserTypes = require("./LaunchBrowser.types");
11
35
  class LaunchBrowserImplMacOS {
12
36
  MAP = {
@@ -17,7 +41,7 @@ class LaunchBrowserImplMacOS {
17
41
  async isSupportedBrowser(browserType) {
18
42
  let result = false;
19
43
  try {
20
- await osascript.execAsync(`id of application "${this.MAP[browserType]}"`);
44
+ await osascript()().execAsync(`id of application "${this.MAP[browserType]}"`);
21
45
  result = true;
22
46
  } catch {
23
47
  result = false;
@@ -25,19 +49,19 @@ class LaunchBrowserImplMacOS {
25
49
  return result;
26
50
  }
27
51
  async createTempBrowserDir(baseDirName) {
28
- return _path.default.join(require("temp-dir"), baseDirName);
52
+ return _path().default.join(require("temp-dir"), baseDirName);
29
53
  }
30
54
  async launchAsync(browserType, args) {
31
55
  var ref;
32
- const appDirectory = await osascript.execAsync(`POSIX path of (path to application "${this.MAP[browserType]}")`);
33
- const appPath = (ref = (0, _glob).sync("Contents/MacOS/*", {
56
+ const appDirectory = await osascript()().execAsync(`POSIX path of (path to application "${this.MAP[browserType]}")`);
57
+ const appPath = (ref = _glob().sync("Contents/MacOS/*", {
34
58
  cwd: appDirectory.trim(),
35
59
  absolute: true
36
60
  })) == null ? void 0 : ref[0];
37
61
  if (!appPath) {
38
62
  throw new Error(`Cannot find application path from ${appDirectory}Contents/MacOS`);
39
63
  }
40
- this._process = (0, _childProcess).spawn(appPath, args, {
64
+ this._process = _childProcess().spawn(appPath, args, {
41
65
  stdio: "ignore"
42
66
  });
43
67
  return this;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/LaunchBrowserImplMacOS.ts"],"sourcesContent":["import * as osascript from '@expo/osascript';\nimport { spawn, type ChildProcess } from 'child_process';\nimport { sync as globSync } from 'glob';\nimport path from 'path';\n\nimport {\n LaunchBrowserTypes,\n type LaunchBrowser,\n type LaunchBrowserInstance,\n LaunchBrowserTypesEnum,\n} from './LaunchBrowser.types';\n\n/**\n * Browser implementation for macOS\n */\nexport default class LaunchBrowserImplMacOS implements LaunchBrowser, LaunchBrowserInstance {\n private _process: ChildProcess | undefined;\n\n MAP = {\n [LaunchBrowserTypesEnum.CHROME]: 'google chrome',\n [LaunchBrowserTypesEnum.EDGE]: 'microsoft edge',\n [LaunchBrowserTypesEnum.BRAVE]: 'brave browser',\n };\n\n async isSupportedBrowser(browserType: LaunchBrowserTypes): Promise<boolean> {\n let result = false;\n try {\n await osascript.execAsync(`id of application \"${this.MAP[browserType]}\"`);\n result = true;\n } catch {\n result = false;\n }\n return result;\n }\n\n async createTempBrowserDir(baseDirName: string) {\n return path.join(require('temp-dir'), baseDirName);\n }\n\n async launchAsync(\n browserType: LaunchBrowserTypes,\n args: string[]\n ): Promise<LaunchBrowserInstance> {\n const appDirectory = await osascript.execAsync(\n `POSIX path of (path to application \"${this.MAP[browserType]}\")`\n );\n const appPath = globSync('Contents/MacOS/*', { cwd: appDirectory.trim(), absolute: true })?.[0];\n if (!appPath) {\n throw new Error(`Cannot find application path from ${appDirectory}Contents/MacOS`);\n }\n this._process = spawn(appPath, args, { stdio: 'ignore' });\n\n return this;\n }\n\n async close(): Promise<void> {\n this._process?.kill();\n this._process = undefined;\n }\n}\n"],"names":["osascript","LaunchBrowserImplMacOS","MAP","LaunchBrowserTypesEnum","CHROME","EDGE","BRAVE","isSupportedBrowser","browserType","result","execAsync","createTempBrowserDir","baseDirName","path","join","require","launchAsync","args","globSync","appDirectory","appPath","cwd","trim","absolute","Error","_process","spawn","stdio","close","kill","undefined"],"mappings":"AAAA;;;;;AAAYA,IAAAA,SAAS,mCAAM,iBAAiB,EAAvB;AACoB,IAAA,aAAe,WAAf,eAAe,CAAA;AACvB,IAAA,KAAM,WAAN,MAAM,CAAA;AACtB,IAAA,KAAM,kCAAN,MAAM,EAAA;AAOhB,IAAA,mBAAuB,WAAvB,uBAAuB,CAAA;AAKf,MAAMC,sBAAsB;IAGzCC,GAAG,GAAG;QACJ,CAACC,mBAAsB,uBAAA,CAACC,MAAM,CAAC,EAAE,eAAe;QAChD,CAACD,mBAAsB,uBAAA,CAACE,IAAI,CAAC,EAAE,gBAAgB;QAC/C,CAACF,mBAAsB,uBAAA,CAACG,KAAK,CAAC,EAAE,eAAe;KAChD,CAAC;IAEF,MAAMC,kBAAkB,CAACC,WAA+B,EAAoB;QAC1E,IAAIC,MAAM,GAAG,KAAK,AAAC;QACnB,IAAI;YACF,MAAMT,SAAS,CAACU,SAAS,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAACR,GAAG,CAACM,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1EC,MAAM,GAAG,IAAI,CAAC;SACf,CAAC,OAAM;YACNA,MAAM,GAAG,KAAK,CAAC;SAChB;QACD,OAAOA,MAAM,CAAC;KACf;IAED,MAAME,oBAAoB,CAACC,WAAmB,EAAE;QAC9C,OAAOC,KAAI,QAAA,CAACC,IAAI,CAACC,OAAO,CAAC,UAAU,CAAC,EAAEH,WAAW,CAAC,CAAC;KACpD;IAED,MAAMI,WAAW,CACfR,WAA+B,EAC/BS,IAAc,EACkB;YAIhBC,GAA0E;QAH1F,MAAMC,YAAY,GAAG,MAAMnB,SAAS,CAACU,SAAS,CAC5C,CAAC,oCAAoC,EAAE,IAAI,CAACR,GAAG,CAACM,WAAW,CAAC,CAAC,EAAE,CAAC,CACjE,AAAC;QACF,MAAMY,OAAO,GAAGF,CAAAA,GAA0E,GAA1EA,CAAAA,GAAAA,KAAQ,AAAkE,CAAA,KAAlE,CAAC,kBAAkB,EAAE;YAAEG,GAAG,EAAEF,YAAY,CAACG,IAAI,EAAE;YAAEC,QAAQ,EAAE,IAAI;SAAE,CAAC,SAAK,GAA/EL,KAAAA,CAA+E,GAA/EA,GAA0E,AAAE,CAAC,CAAC,CAAC,AAAC;QAChG,IAAI,CAACE,OAAO,EAAE;YACZ,MAAM,IAAII,KAAK,CAAC,CAAC,kCAAkC,EAAEL,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;SACpF;QACD,IAAI,CAACM,QAAQ,GAAGC,CAAAA,GAAAA,aAAK,AAAoC,CAAA,MAApC,CAACN,OAAO,EAAEH,IAAI,EAAE;YAAEU,KAAK,EAAE,QAAQ;SAAE,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC;KACb;IAED,MAAMC,KAAK,GAAkB;YAC3B,GAAa;QAAb,CAAA,GAAa,GAAb,IAAI,CAACH,QAAQ,SAAM,GAAnB,KAAA,CAAmB,GAAnB,GAAa,CAAEI,IAAI,EAAE,AAxDzB,CAwD0B;QACtB,IAAI,CAACJ,QAAQ,GAAGK,SAAS,CAAC;KAC3B;CACF;kBA5CoB7B,sBAAsB"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/LaunchBrowserImplMacOS.ts"],"sourcesContent":["import * as osascript from '@expo/osascript';\nimport { spawn, type ChildProcess } from 'child_process';\nimport { sync as globSync } from 'glob';\nimport path from 'path';\n\nimport {\n LaunchBrowserTypes,\n type LaunchBrowser,\n type LaunchBrowserInstance,\n LaunchBrowserTypesEnum,\n} from './LaunchBrowser.types';\n\n/**\n * Browser implementation for macOS\n */\nexport default class LaunchBrowserImplMacOS implements LaunchBrowser, LaunchBrowserInstance {\n private _process: ChildProcess | undefined;\n\n MAP = {\n [LaunchBrowserTypesEnum.CHROME]: 'google chrome',\n [LaunchBrowserTypesEnum.EDGE]: 'microsoft edge',\n [LaunchBrowserTypesEnum.BRAVE]: 'brave browser',\n };\n\n async isSupportedBrowser(browserType: LaunchBrowserTypes): Promise<boolean> {\n let result = false;\n try {\n await osascript.execAsync(`id of application \"${this.MAP[browserType]}\"`);\n result = true;\n } catch {\n result = false;\n }\n return result;\n }\n\n async createTempBrowserDir(baseDirName: string) {\n return path.join(require('temp-dir'), baseDirName);\n }\n\n async launchAsync(\n browserType: LaunchBrowserTypes,\n args: string[]\n ): Promise<LaunchBrowserInstance> {\n const appDirectory = await osascript.execAsync(\n `POSIX path of (path to application \"${this.MAP[browserType]}\")`\n );\n const appPath = globSync('Contents/MacOS/*', { cwd: appDirectory.trim(), absolute: true })?.[0];\n if (!appPath) {\n throw new Error(`Cannot find application path from ${appDirectory}Contents/MacOS`);\n }\n this._process = spawn(appPath, args, { stdio: 'ignore' });\n\n return this;\n }\n\n async close(): Promise<void> {\n this._process?.kill();\n this._process = undefined;\n }\n}\n"],"names":["osascript","LaunchBrowserImplMacOS","MAP","LaunchBrowserTypesEnum","CHROME","EDGE","BRAVE","isSupportedBrowser","browserType","result","execAsync","createTempBrowserDir","baseDirName","path","join","require","launchAsync","args","globSync","appDirectory","appPath","cwd","trim","absolute","Error","_process","spawn","stdio","close","kill","undefined"],"mappings":"AAAA;;;;;SAAYA,SAAS;iDAAM,iBAAiB;IAAhCA,SAAS;;;;;SACoB,aAAe;yBAAf,eAAe;IAAf,aAAe;;;;;SACvB,KAAM;yBAAN,MAAM;IAAN,KAAM;;;;;SACtB,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;AAOhB,IAAA,mBAAuB,WAAvB,uBAAuB,CAAA;AAKf,MAAMC,sBAAsB;IAGzCC,GAAG,GAAG;QACJ,CAACC,mBAAsB,uBAAA,CAACC,MAAM,CAAC,EAAE,eAAe;QAChD,CAACD,mBAAsB,uBAAA,CAACE,IAAI,CAAC,EAAE,gBAAgB;QAC/C,CAACF,mBAAsB,uBAAA,CAACG,KAAK,CAAC,EAAE,eAAe;KAChD,CAAC;IAEF,MAAMC,kBAAkB,CAACC,WAA+B,EAAoB;QAC1E,IAAIC,MAAM,GAAG,KAAK,AAAC;QACnB,IAAI;YACF,MAAMT,SAAS,KAACU,SAAS,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAACR,GAAG,CAACM,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1EC,MAAM,GAAG,IAAI,CAAC;SACf,CAAC,OAAM;YACNA,MAAM,GAAG,KAAK,CAAC;SAChB;QACD,OAAOA,MAAM,CAAC;KACf;IAED,MAAME,oBAAoB,CAACC,WAAmB,EAAE;QAC9C,OAAOC,KAAI,UAAA,CAACC,IAAI,CAACC,OAAO,CAAC,UAAU,CAAC,EAAEH,WAAW,CAAC,CAAC;KACpD;IAED,MAAMI,WAAW,CACfR,WAA+B,EAC/BS,IAAc,EACkB;YAIhBC,GAA0E;QAH1F,MAAMC,YAAY,GAAG,MAAMnB,SAAS,KAACU,SAAS,CAC5C,CAAC,oCAAoC,EAAE,IAAI,CAACR,GAAG,CAACM,WAAW,CAAC,CAAC,EAAE,CAAC,CACjE,AAAC;QACF,MAAMY,OAAO,GAAGF,CAAAA,GAA0E,GAA1EA,KAAQ,OAAA,CAAC,kBAAkB,EAAE;YAAEG,GAAG,EAAEF,YAAY,CAACG,IAAI,EAAE;YAAEC,QAAQ,EAAE,IAAI;SAAE,CAAC,SAAK,GAA/EL,KAAAA,CAA+E,GAA/EA,GAA0E,AAAE,CAAC,CAAC,CAAC,AAAC;QAChG,IAAI,CAACE,OAAO,EAAE;YACZ,MAAM,IAAII,KAAK,CAAC,CAAC,kCAAkC,EAAEL,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;SACpF;QACD,IAAI,CAACM,QAAQ,GAAGC,aAAK,QAAA,CAACN,OAAO,EAAEH,IAAI,EAAE;YAAEU,KAAK,EAAE,QAAQ;SAAE,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC;KACb;IAED,MAAMC,KAAK,GAAkB;YAC3B,GAAa;QAAb,CAAA,GAAa,GAAb,IAAI,CAACH,QAAQ,SAAM,GAAnB,KAAA,CAAmB,GAAnB,GAAa,CAAEI,IAAI,EAAE,AAxDzB,CAwD0B;QACtB,IAAI,CAACJ,QAAQ,GAAGK,SAAS,CAAC;KAC3B;CACF;kBA5CoB7B,sBAAsB"}
@@ -3,9 +3,27 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.default = void 0;
6
- var _spawnAsync = _interopRequireDefault(require("@expo/spawn-async"));
7
- var _open = _interopRequireDefault(require("open"));
8
- var _path = _interopRequireDefault(require("path"));
6
+ function _spawnAsync() {
7
+ const data = _interopRequireDefault(require("@expo/spawn-async"));
8
+ _spawnAsync = function() {
9
+ return data;
10
+ };
11
+ return data;
12
+ }
13
+ function _open() {
14
+ const data = _interopRequireDefault(require("open"));
15
+ _open = function() {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
20
+ function _path() {
21
+ const data = _interopRequireDefault(require("path"));
22
+ _path = function() {
23
+ return data;
24
+ };
25
+ return data;
26
+ }
9
27
  var _launchBrowserTypes = require("./LaunchBrowser.types");
10
28
  class LaunchBrowserImplWindows {
11
29
  MAP = {
@@ -23,11 +41,10 @@ class LaunchBrowserImplWindows {
23
41
  let result = false;
24
42
  try {
25
43
  const env = await this.getPowershellEnv();
26
- const { status } = await (0, _spawnAsync).default("powershell.exe", [
44
+ const { status } = await _spawnAsync().default("powershell.exe", [
27
45
  "-c",
28
46
  `Get-Package -Name '${browserType}'`
29
47
  ], {
30
- // @ts-expect-error: Missing NODE_ENV
31
48
  env,
32
49
  stdio: "ignore"
33
50
  });
@@ -42,14 +59,14 @@ class LaunchBrowserImplWindows {
42
59
  if (IS_WSL) {
43
60
  // On WSL, the browser is actually launched in host, the `temp-dir` returns the linux /tmp path where host browsers cannot reach into.
44
61
  // We should get the temp path through the `$TEMP` windows environment variable.
45
- tmpDir = (await (0, _spawnAsync).default("powershell.exe", [
62
+ tmpDir = (await _spawnAsync().default("powershell.exe", [
46
63
  "-c",
47
64
  'echo "$Env:TEMP"'
48
65
  ])).stdout.trim();
49
66
  return `${tmpDir}\\${baseDirName}`;
50
67
  } else {
51
68
  tmpDir = require("temp-dir");
52
- return _path.default.join(tmpDir, baseDirName);
69
+ return _path().default.join(tmpDir, baseDirName);
53
70
  }
54
71
  }
55
72
  async launchAsync(browserType, args) {
@@ -68,11 +85,10 @@ class LaunchBrowserImplWindows {
68
85
  // The implementation tries to find the pid of target chromium browser process (with --app=https://chrome-devtools-frontend.appspot.com in command arguments),
69
86
  // and uses taskkill to terminate the process.
70
87
  const env = await this.getPowershellEnv();
71
- await (0, _spawnAsync).default("powershell.exe", [
88
+ await _spawnAsync().default("powershell.exe", [
72
89
  "-c",
73
90
  `taskkill.exe /pid @(Get-WmiObject Win32_Process -Filter "name = '${this._appId}.exe' AND CommandLine LIKE '%chrome-devtools-frontend.appspot.com%'" | Select-Object -ExpandProperty ProcessId)`,
74
91
  ], {
75
- // @ts-expect-error: Missing NODE_ENV
76
92
  env,
77
93
  stdio: "ignore"
78
94
  });
@@ -88,7 +104,7 @@ class LaunchBrowserImplWindows {
88
104
  if (this._powershellEnv) {
89
105
  return this._powershellEnv;
90
106
  }
91
- const PSModulePath = (await (0, _spawnAsync).default("powershell.exe", [
107
+ const PSModulePath = (await _spawnAsync().default("powershell.exe", [
92
108
  "-c",
93
109
  'echo "$PSHOME\\Modules"'
94
110
  ])).stdout.trim();
@@ -115,7 +131,7 @@ const IS_WSL = require("is-wsl") && !require("is-docker")();
115
131
  try {
116
132
  var _SYSTEMROOT;
117
133
  process.env.SYSTEMROOT = (_SYSTEMROOT = process.env.SYSTEMROOT) != null ? _SYSTEMROOT : process.env.SystemRoot;
118
- return await _open.default.openApp(appId, options);
134
+ return await _open().default.openApp(appId, options);
119
135
  } finally{
120
136
  process.env.SYSTEMROOT = oldSystemRoot;
121
137
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/LaunchBrowserImplWindows.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport open from 'open';\nimport path from 'path';\n\nimport {\n LaunchBrowserTypes,\n type LaunchBrowser,\n type LaunchBrowserInstance,\n LaunchBrowserTypesEnum,\n} from './LaunchBrowser.types';\n\nconst IS_WSL = require('is-wsl') && !require('is-docker')();\n\n/**\n * Browser implementation for Windows and WSL\n *\n * To minimize the difference between Windows and WSL, the implementation wraps all spawn calls through powershell.\n */\nexport default class LaunchBrowserImplWindows implements LaunchBrowser, LaunchBrowserInstance {\n private _appId: string | undefined;\n private _powershellEnv: { [key: string]: string } | undefined;\n\n MAP = {\n [LaunchBrowserTypesEnum.CHROME]: {\n appId: 'chrome',\n },\n [LaunchBrowserTypesEnum.EDGE]: {\n appId: 'msedge',\n },\n [LaunchBrowserTypesEnum.BRAVE]: {\n appId: 'brave',\n },\n };\n\n async isSupportedBrowser(browserType: LaunchBrowserTypes): Promise<boolean> {\n let result = false;\n try {\n const env = await this.getPowershellEnv();\n const { status } = await spawnAsync(\n 'powershell.exe',\n ['-c', `Get-Package -Name '${browserType}'`],\n {\n // @ts-expect-error: Missing NODE_ENV\n env,\n stdio: 'ignore',\n }\n );\n result = status === 0;\n } catch {\n result = false;\n }\n return result;\n }\n\n async createTempBrowserDir(baseDirName: string) {\n let tmpDir;\n if (IS_WSL) {\n // On WSL, the browser is actually launched in host, the `temp-dir` returns the linux /tmp path where host browsers cannot reach into.\n // We should get the temp path through the `$TEMP` windows environment variable.\n tmpDir = (await spawnAsync('powershell.exe', ['-c', 'echo \"$Env:TEMP\"'])).stdout.trim();\n return `${tmpDir}\\\\${baseDirName}`;\n } else {\n tmpDir = require('temp-dir');\n return path.join(tmpDir, baseDirName);\n }\n }\n\n async launchAsync(\n browserType: LaunchBrowserTypes,\n args: string[]\n ): Promise<LaunchBrowserInstance> {\n const appId = this.MAP[browserType].appId;\n await openWithSystemRootEnvironment(appId, { arguments: args });\n this._appId = appId;\n return this;\n }\n\n async close(): Promise<void> {\n if (this._appId != null) {\n try {\n // Since we wrap all spawn calls through powershell as well as from `open.openApp`, the returned ChildProcess is not the browser process.\n // And we cannot just call `process.kill()` kill it.\n // The implementation tries to find the pid of target chromium browser process (with --app=https://chrome-devtools-frontend.appspot.com in command arguments),\n // and uses taskkill to terminate the process.\n const env = await this.getPowershellEnv();\n await spawnAsync(\n 'powershell.exe',\n [\n '-c',\n `taskkill.exe /pid @(Get-WmiObject Win32_Process -Filter \"name = '${this._appId}.exe' AND CommandLine LIKE '%chrome-devtools-frontend.appspot.com%'\" | Select-Object -ExpandProperty ProcessId)`,\n ],\n {\n // @ts-expect-error: Missing NODE_ENV\n env,\n stdio: 'ignore',\n }\n );\n } catch {}\n this._appId = undefined;\n }\n }\n\n /**\n * This method is used to get the powershell environment variables for `Get-Package` command.\n * Especially for powershell 7, its default `PSModulePath` is different from powershell 5 and `Get-Package` command is not available.\n * We need to set the PSModulePath to include the default value of powershell 5.\n */\n private async getPowershellEnv(): Promise<{ [key: string]: string }> {\n if (this._powershellEnv) {\n return this._powershellEnv;\n }\n const PSModulePath = (\n await spawnAsync('powershell.exe', ['-c', 'echo \"$PSHOME\\\\Modules\"'])\n ).stdout.trim();\n this._powershellEnv = {\n PSModulePath,\n };\n return this._powershellEnv;\n }\n}\n\n/**\n * Due to a bug in `open` on Windows PowerShell, we need to ensure `process.env.SYSTEMROOT` is set.\n * This environment variable is set by Windows on `SystemRoot`, causing `open` to execute a command with an \"unknown\" drive letter.\n *\n * @see https://github.com/sindresorhus/open/issues/205\n */\nasync function openWithSystemRootEnvironment(\n appId: string | Readonly<string[]>,\n options?: open.OpenAppOptions\n): Promise<import('child_process').ChildProcess> {\n const oldSystemRoot = process.env.SYSTEMROOT;\n try {\n process.env.SYSTEMROOT = process.env.SYSTEMROOT ?? process.env.SystemRoot;\n return await open.openApp(appId, options);\n } finally {\n process.env.SYSTEMROOT = oldSystemRoot;\n }\n}\n"],"names":["LaunchBrowserImplWindows","MAP","LaunchBrowserTypesEnum","CHROME","appId","EDGE","BRAVE","isSupportedBrowser","browserType","result","env","getPowershellEnv","status","spawnAsync","stdio","createTempBrowserDir","baseDirName","tmpDir","IS_WSL","stdout","trim","require","path","join","launchAsync","args","openWithSystemRootEnvironment","arguments","_appId","close","undefined","_powershellEnv","PSModulePath","options","oldSystemRoot","process","SYSTEMROOT","SystemRoot","open","openApp"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/LaunchBrowserImplWindows.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport open from 'open';\nimport path from 'path';\n\nimport {\n LaunchBrowserTypes,\n type LaunchBrowser,\n type LaunchBrowserInstance,\n LaunchBrowserTypesEnum,\n} from './LaunchBrowser.types';\n\nconst IS_WSL = require('is-wsl') && !require('is-docker')();\n\n/**\n * Browser implementation for Windows and WSL\n *\n * To minimize the difference between Windows and WSL, the implementation wraps all spawn calls through powershell.\n */\nexport default class LaunchBrowserImplWindows implements LaunchBrowser, LaunchBrowserInstance {\n private _appId: string | undefined;\n private _powershellEnv: { [key: string]: string } | undefined;\n\n MAP = {\n [LaunchBrowserTypesEnum.CHROME]: {\n appId: 'chrome',\n },\n [LaunchBrowserTypesEnum.EDGE]: {\n appId: 'msedge',\n },\n [LaunchBrowserTypesEnum.BRAVE]: {\n appId: 'brave',\n },\n };\n\n async isSupportedBrowser(browserType: LaunchBrowserTypes): Promise<boolean> {\n let result = false;\n try {\n const env = await this.getPowershellEnv();\n const { status } = await spawnAsync(\n 'powershell.exe',\n ['-c', `Get-Package -Name '${browserType}'`],\n {\n env,\n stdio: 'ignore',\n }\n );\n result = status === 0;\n } catch {\n result = false;\n }\n return result;\n }\n\n async createTempBrowserDir(baseDirName: string) {\n let tmpDir;\n if (IS_WSL) {\n // On WSL, the browser is actually launched in host, the `temp-dir` returns the linux /tmp path where host browsers cannot reach into.\n // We should get the temp path through the `$TEMP` windows environment variable.\n tmpDir = (await spawnAsync('powershell.exe', ['-c', 'echo \"$Env:TEMP\"'])).stdout.trim();\n return `${tmpDir}\\\\${baseDirName}`;\n } else {\n tmpDir = require('temp-dir');\n return path.join(tmpDir, baseDirName);\n }\n }\n\n async launchAsync(\n browserType: LaunchBrowserTypes,\n args: string[]\n ): Promise<LaunchBrowserInstance> {\n const appId = this.MAP[browserType].appId;\n await openWithSystemRootEnvironment(appId, { arguments: args });\n this._appId = appId;\n return this;\n }\n\n async close(): Promise<void> {\n if (this._appId != null) {\n try {\n // Since we wrap all spawn calls through powershell as well as from `open.openApp`, the returned ChildProcess is not the browser process.\n // And we cannot just call `process.kill()` kill it.\n // The implementation tries to find the pid of target chromium browser process (with --app=https://chrome-devtools-frontend.appspot.com in command arguments),\n // and uses taskkill to terminate the process.\n const env = await this.getPowershellEnv();\n await spawnAsync(\n 'powershell.exe',\n [\n '-c',\n `taskkill.exe /pid @(Get-WmiObject Win32_Process -Filter \"name = '${this._appId}.exe' AND CommandLine LIKE '%chrome-devtools-frontend.appspot.com%'\" | Select-Object -ExpandProperty ProcessId)`,\n ],\n {\n env,\n stdio: 'ignore',\n }\n );\n } catch {}\n this._appId = undefined;\n }\n }\n\n /**\n * This method is used to get the powershell environment variables for `Get-Package` command.\n * Especially for powershell 7, its default `PSModulePath` is different from powershell 5 and `Get-Package` command is not available.\n * We need to set the PSModulePath to include the default value of powershell 5.\n */\n private async getPowershellEnv(): Promise<{ [key: string]: string }> {\n if (this._powershellEnv) {\n return this._powershellEnv;\n }\n const PSModulePath = (\n await spawnAsync('powershell.exe', ['-c', 'echo \"$PSHOME\\\\Modules\"'])\n ).stdout.trim();\n this._powershellEnv = {\n PSModulePath,\n };\n return this._powershellEnv;\n }\n}\n\n/**\n * Due to a bug in `open` on Windows PowerShell, we need to ensure `process.env.SYSTEMROOT` is set.\n * This environment variable is set by Windows on `SystemRoot`, causing `open` to execute a command with an \"unknown\" drive letter.\n *\n * @see https://github.com/sindresorhus/open/issues/205\n */\nasync function openWithSystemRootEnvironment(\n appId: string | Readonly<string[]>,\n options?: open.OpenAppOptions\n): Promise<import('child_process').ChildProcess> {\n const oldSystemRoot = process.env.SYSTEMROOT;\n try {\n process.env.SYSTEMROOT = process.env.SYSTEMROOT ?? process.env.SystemRoot;\n return await open.openApp(appId, options);\n } finally {\n process.env.SYSTEMROOT = oldSystemRoot;\n }\n}\n"],"names":["LaunchBrowserImplWindows","MAP","LaunchBrowserTypesEnum","CHROME","appId","EDGE","BRAVE","isSupportedBrowser","browserType","result","env","getPowershellEnv","status","spawnAsync","stdio","createTempBrowserDir","baseDirName","tmpDir","IS_WSL","stdout","trim","require","path","join","launchAsync","args","openWithSystemRootEnvironment","arguments","_appId","close","undefined","_powershellEnv","PSModulePath","options","oldSystemRoot","process","SYSTEMROOT","SystemRoot","open","openApp"],"mappings":"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"}
@@ -3,10 +3,34 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.createJsInspectorMiddleware = createJsInspectorMiddleware;
6
- var _chalk = _interopRequireDefault(require("chalk"));
7
- var _net = _interopRequireDefault(require("net"));
8
- var _tls = require("tls");
9
- var _url = require("url");
6
+ function _chalk() {
7
+ const data = _interopRequireDefault(require("chalk"));
8
+ _chalk = function() {
9
+ return data;
10
+ };
11
+ return data;
12
+ }
13
+ function _net() {
14
+ const data = _interopRequireDefault(require("net"));
15
+ _net = function() {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
20
+ function _tls() {
21
+ const data = require("tls");
22
+ _tls = function() {
23
+ return data;
24
+ };
25
+ return data;
26
+ }
27
+ function _url() {
28
+ const data = require("url");
29
+ _url = function() {
30
+ return data;
31
+ };
32
+ return data;
33
+ }
10
34
  var _jsInspector = require("./JsInspector");
11
35
  function _interopRequireDefault(obj) {
12
36
  return obj && obj.__esModule ? obj : {
@@ -16,7 +40,7 @@ function _interopRequireDefault(obj) {
16
40
  function createJsInspectorMiddleware() {
17
41
  return async function(req, res, next) {
18
42
  var _url1;
19
- const { origin , searchParams } = new _url.URL((_url1 = req.url) != null ? _url1 : "/", getServerBase(req));
43
+ const { origin , searchParams } = new (_url()).URL((_url1 = req.url) != null ? _url1 : "/", getServerBase(req));
20
44
  const appId = searchParams.get("appId") || searchParams.get("applicationId");
21
45
  if (!appId) {
22
46
  res.writeHead(400).end('Missing application identifier ("?appId=...")');
@@ -25,7 +49,7 @@ function createJsInspectorMiddleware() {
25
49
  const app = await (0, _jsInspector).queryInspectorAppAsync(origin, appId);
26
50
  if (!app) {
27
51
  res.writeHead(404).end("Unable to find inspector target from @react-native/dev-middleware");
28
- console.warn(_chalk.default.yellow("No compatible apps connected. JavaScript Debugging can only be used with the Hermes engine."));
52
+ console.warn(_chalk().default.yellow("No compatible apps connected. JavaScript Debugging can only be used with the Hermes engine."));
29
53
  return;
30
54
  }
31
55
  if (req.method === "GET") {
@@ -43,7 +67,7 @@ function createJsInspectorMiddleware() {
43
67
  var ref;
44
68
  // abort(Error: Command failed: osascript -e POSIX path of (path to application "google chrome")
45
69
  // 15:50: execution error: Google Chrome got an error: Application isn’t running. (-600)
46
- console.error(_chalk.default.red("Error launching JS inspector: " + ((ref = error == null ? void 0 : error.message) != null ? ref : "Unknown error occurred")));
70
+ console.error(_chalk().default.red("Error launching JS inspector: " + ((ref = error == null ? void 0 : error.message) != null ? ref : "Unknown error occurred")));
47
71
  res.writeHead(500);
48
72
  res.end();
49
73
  return;
@@ -55,9 +79,9 @@ function createJsInspectorMiddleware() {
55
79
  };
56
80
  }
57
81
  function getServerBase(req) {
58
- const scheme = req.socket instanceof _tls.TLSSocket && req.socket.encrypted === true ? "https" : "http";
82
+ const scheme = req.socket instanceof _tls().TLSSocket && req.socket.encrypted === true ? "https" : "http";
59
83
  const { localAddress , localPort } = req.socket;
60
- const address = localAddress && _net.default.isIPv6(localAddress) ? `[${localAddress}]` : localAddress;
84
+ const address = localAddress && _net().default.isIPv6(localAddress) ? `[${localAddress}]` : localAddress;
61
85
  return `${scheme}:${address}:${localPort}`;
62
86
  }
63
87
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/createJsInspectorMiddleware.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { NextHandleFunction } from 'connect';\nimport type { IncomingMessage, ServerResponse } from 'http';\nimport net from 'net';\nimport { TLSSocket } from 'tls';\nimport { URL } from 'url';\n\nimport { openJsInspector, queryInspectorAppAsync } from './JsInspector';\n\n/**\n * Create a middleware that handles new requests to open the debugger from the dev menu.\n * @todo(cedric): delete this middleware once we fully swap over to the new React Native JS Inspector.\n */\nexport function createJsInspectorMiddleware(): NextHandleFunction {\n return async function (req: IncomingMessage, res: ServerResponse, next: (err?: Error) => void) {\n const { origin, searchParams } = new URL(req.url ?? '/', getServerBase(req));\n const appId = searchParams.get('appId') || searchParams.get('applicationId');\n if (!appId) {\n res.writeHead(400).end('Missing application identifier (\"?appId=...\")');\n return;\n }\n\n const app = await queryInspectorAppAsync(origin, appId);\n if (!app) {\n res.writeHead(404).end('Unable to find inspector target from @react-native/dev-middleware');\n console.warn(\n chalk.yellow(\n 'No compatible apps connected. JavaScript Debugging can only be used with the Hermes engine.'\n )\n );\n return;\n }\n\n if (req.method === 'GET') {\n const data = JSON.stringify(app);\n res.writeHead(200, {\n 'Content-Type': 'application/json; charset=UTF-8',\n 'Cache-Control': 'no-cache',\n 'Content-Length': data.length.toString(),\n });\n res.end(data);\n } else if (req.method === 'POST' || req.method === 'PUT') {\n try {\n await openJsInspector(origin, app);\n } catch (error: any) {\n // abort(Error: Command failed: osascript -e POSIX path of (path to application \"google chrome\")\n // 15:50: execution error: Google Chrome got an error: Application isn’t running. (-600)\n\n console.error(\n chalk.red('Error launching JS inspector: ' + (error?.message ?? 'Unknown error occurred'))\n );\n res.writeHead(500);\n res.end();\n return;\n }\n res.end();\n } else {\n res.writeHead(405);\n }\n };\n}\n\nfunction getServerBase(req: IncomingMessage): string {\n const scheme =\n req.socket instanceof TLSSocket && req.socket.encrypted === true ? 'https' : 'http';\n const { localAddress, localPort } = req.socket;\n const address = localAddress && net.isIPv6(localAddress) ? `[${localAddress}]` : localAddress;\n return `${scheme}:${address}:${localPort}`;\n}\n"],"names":["createJsInspectorMiddleware","req","res","next","origin","searchParams","URL","url","getServerBase","appId","get","writeHead","end","app","queryInspectorAppAsync","console","warn","chalk","yellow","method","data","JSON","stringify","length","toString","openJsInspector","error","red","message","scheme","socket","TLSSocket","encrypted","localAddress","localPort","address","net","isIPv6"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/createJsInspectorMiddleware.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { NextHandleFunction } from 'connect';\nimport type { IncomingMessage, ServerResponse } from 'http';\nimport net from 'net';\nimport { TLSSocket } from 'tls';\nimport { URL } from 'url';\n\nimport { openJsInspector, queryInspectorAppAsync } from './JsInspector';\n\n/**\n * Create a middleware that handles new requests to open the debugger from the dev menu.\n * @todo(cedric): delete this middleware once we fully swap over to the new React Native JS Inspector.\n */\nexport function createJsInspectorMiddleware(): NextHandleFunction {\n return async function (req: IncomingMessage, res: ServerResponse, next: (err?: Error) => void) {\n const { origin, searchParams } = new URL(req.url ?? '/', getServerBase(req));\n const appId = searchParams.get('appId') || searchParams.get('applicationId');\n if (!appId) {\n res.writeHead(400).end('Missing application identifier (\"?appId=...\")');\n return;\n }\n\n const app = await queryInspectorAppAsync(origin, appId);\n if (!app) {\n res.writeHead(404).end('Unable to find inspector target from @react-native/dev-middleware');\n console.warn(\n chalk.yellow(\n 'No compatible apps connected. JavaScript Debugging can only be used with the Hermes engine.'\n )\n );\n return;\n }\n\n if (req.method === 'GET') {\n const data = JSON.stringify(app);\n res.writeHead(200, {\n 'Content-Type': 'application/json; charset=UTF-8',\n 'Cache-Control': 'no-cache',\n 'Content-Length': data.length.toString(),\n });\n res.end(data);\n } else if (req.method === 'POST' || req.method === 'PUT') {\n try {\n await openJsInspector(origin, app);\n } catch (error: any) {\n // abort(Error: Command failed: osascript -e POSIX path of (path to application \"google chrome\")\n // 15:50: execution error: Google Chrome got an error: Application isn’t running. (-600)\n\n console.error(\n chalk.red('Error launching JS inspector: ' + (error?.message ?? 'Unknown error occurred'))\n );\n res.writeHead(500);\n res.end();\n return;\n }\n res.end();\n } else {\n res.writeHead(405);\n }\n };\n}\n\nfunction getServerBase(req: IncomingMessage): string {\n const scheme =\n req.socket instanceof TLSSocket && req.socket.encrypted === true ? 'https' : 'http';\n const { localAddress, localPort } = req.socket;\n const address = localAddress && net.isIPv6(localAddress) ? `[${localAddress}]` : localAddress;\n return `${scheme}:${address}:${localPort}`;\n}\n"],"names":["createJsInspectorMiddleware","req","res","next","origin","searchParams","URL","url","getServerBase","appId","get","writeHead","end","app","queryInspectorAppAsync","console","warn","chalk","yellow","method","data","JSON","stringify","length","toString","openJsInspector","error","red","message","scheme","socket","TLSSocket","encrypted","localAddress","localPort","address","net","isIPv6"],"mappings":"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"}
@@ -3,13 +3,20 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.shouldEnableAsyncImports = shouldEnableAsyncImports;
6
+ exports.isServerEnvironment = isServerEnvironment;
6
7
  exports.getBaseUrlFromExpoConfig = getBaseUrlFromExpoConfig;
7
8
  exports.getAsyncRoutesFromExpoConfig = getAsyncRoutesFromExpoConfig;
8
9
  exports.getMetroDirectBundleOptionsForExpoConfig = getMetroDirectBundleOptionsForExpoConfig;
9
10
  exports.getMetroDirectBundleOptions = getMetroDirectBundleOptions;
10
11
  exports.createBundleUrlPathFromExpoConfig = createBundleUrlPathFromExpoConfig;
11
12
  exports.createBundleUrlPath = createBundleUrlPath;
12
- var _resolveFrom = _interopRequireDefault(require("resolve-from"));
13
+ function _resolveFrom() {
14
+ const data = _interopRequireDefault(require("resolve-from"));
15
+ _resolveFrom = function() {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
13
20
  var _env = require("../../../utils/env");
14
21
  var _errors = require("../../../utils/errors");
15
22
  var _router = require("../metro/router");
@@ -27,7 +34,10 @@ function shouldEnableAsyncImports(projectRoot) {
27
34
  // to support async imports. If it's not installed, we can't support async imports.
28
35
  // If it is installed, the user MUST import it somewhere in their project.
29
36
  // Expo Router automatically pulls this in, so we can check for it.
30
- return _resolveFrom.default.silent(projectRoot, "@expo/metro-runtime") != null;
37
+ return _resolveFrom().default.silent(projectRoot, "@expo/metro-runtime") != null;
38
+ }
39
+ function isServerEnvironment(environment) {
40
+ return environment === "node" || environment === "react-server";
31
41
  }
32
42
  function withDefaults({ mode ="development" , minify =mode === "production" , preserveEnvVars =_env.env.EXPO_NO_CLIENT_ENV_VARS , lazy , ...props }) {
33
43
  if (props.bytecode) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/metroOptions.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport type { BundleOptions as MetroBundleOptions } from 'metro/src/shared/types';\nimport resolveFrom from 'resolve-from';\n\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { getRouterDirectoryModuleIdWithManifest } from '../metro/router';\n\nconst debug = require('debug')('expo:metro:options') as typeof console.log;\n\nexport type ExpoMetroOptions = {\n platform: string;\n mainModuleName: string;\n mode: string;\n minify?: boolean;\n environment?: string;\n serializerOutput?: 'static';\n serializerIncludeMaps?: boolean;\n lazy?: boolean;\n engine?: 'hermes';\n preserveEnvVars?: boolean;\n bytecode: boolean;\n asyncRoutes?: boolean;\n\n baseUrl?: string;\n isExporting: boolean;\n /** Module ID relative to the projectRoot for the Expo Router app directory. */\n routerRoot: string;\n inlineSourceMap?: boolean;\n};\n\nexport type SerializerOptions = {\n includeSourceMaps?: boolean;\n output?: 'static';\n};\n\nexport type ExpoMetroBundleOptions = MetroBundleOptions & {\n serializerOptions?: SerializerOptions;\n};\n\nexport function shouldEnableAsyncImports(projectRoot: string): boolean {\n if (env.EXPO_NO_METRO_LAZY) {\n return false;\n }\n\n // `@expo/metro-runtime` includes support for the fetch + eval runtime code required\n // to support async imports. If it's not installed, we can't support async imports.\n // If it is installed, the user MUST import it somewhere in their project.\n // Expo Router automatically pulls this in, so we can check for it.\n return resolveFrom.silent(projectRoot, '@expo/metro-runtime') != null;\n}\n\nfunction withDefaults({\n mode = 'development',\n minify = mode === 'production',\n preserveEnvVars = env.EXPO_NO_CLIENT_ENV_VARS,\n lazy,\n ...props\n}: ExpoMetroOptions): ExpoMetroOptions {\n if (props.bytecode) {\n if (props.platform === 'web') {\n throw new CommandError('Cannot use bytecode with the web platform');\n }\n if (props.engine !== 'hermes') {\n throw new CommandError('Bytecode is only supported with the Hermes engine');\n }\n }\n\n return {\n mode,\n minify,\n preserveEnvVars,\n lazy: !props.isExporting && lazy,\n ...props,\n };\n}\n\nexport function getBaseUrlFromExpoConfig(exp: ExpoConfig) {\n return exp.experiments?.baseUrl?.trim().replace(/\\/+$/, '') ?? '';\n}\nexport function getAsyncRoutesFromExpoConfig(exp: ExpoConfig, mode: string, platform: string) {\n let asyncRoutesSetting;\n\n if (exp.extra?.router?.asyncRoutes) {\n const asyncRoutes = exp.extra?.router?.asyncRoutes;\n if (['boolean', 'string'].includes(typeof asyncRoutes)) {\n asyncRoutesSetting = asyncRoutes;\n } else if (typeof asyncRoutes === 'object') {\n asyncRoutesSetting = asyncRoutes[platform] ?? asyncRoutes.default;\n }\n }\n\n return [mode, true].includes(asyncRoutesSetting);\n}\n\nexport function getMetroDirectBundleOptionsForExpoConfig(\n projectRoot: string,\n exp: ExpoConfig,\n options: Omit<ExpoMetroOptions, 'baseUrl' | 'routerRoot' | 'asyncRoutes'>\n): Partial<ExpoMetroBundleOptions> {\n return getMetroDirectBundleOptions({\n ...options,\n baseUrl: getBaseUrlFromExpoConfig(exp),\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n asyncRoutes: getAsyncRoutesFromExpoConfig(exp, options.mode, options.platform),\n });\n}\n\nexport function getMetroDirectBundleOptions(\n options: ExpoMetroOptions\n): Partial<ExpoMetroBundleOptions> {\n const {\n mainModuleName,\n platform,\n mode,\n minify,\n environment,\n serializerOutput,\n serializerIncludeMaps,\n bytecode,\n lazy,\n engine,\n preserveEnvVars,\n asyncRoutes,\n baseUrl,\n routerRoot,\n isExporting,\n inlineSourceMap,\n } = withDefaults(options);\n\n const dev = mode !== 'production';\n const isHermes = engine === 'hermes';\n\n if (isExporting) {\n debug('Disabling lazy bundling for export build');\n options.lazy = false;\n }\n\n let fakeSourceUrl: string | undefined;\n let fakeSourceMapUrl: string | undefined;\n\n // TODO: Upstream support to Metro for passing custom serializer options.\n if (serializerIncludeMaps != null || serializerOutput != null) {\n fakeSourceUrl = new URL(\n createBundleUrlPath(options).replace(/^\\//, ''),\n 'http://localhost:8081'\n ).toString();\n if (serializerIncludeMaps) {\n fakeSourceMapUrl = fakeSourceUrl.replace('.bundle?', '.map?');\n }\n }\n\n const bundleOptions: Partial<ExpoMetroBundleOptions> = {\n platform,\n entryFile: mainModuleName,\n dev,\n minify: minify ?? !dev,\n inlineSourceMap: inlineSourceMap ?? false,\n lazy,\n unstable_transformProfile: isHermes ? 'hermes-stable' : 'default',\n customTransformOptions: {\n __proto__: null,\n engine,\n preserveEnvVars,\n asyncRoutes,\n environment,\n baseUrl,\n routerRoot,\n bytecode,\n },\n customResolverOptions: {\n __proto__: null,\n environment,\n },\n sourceMapUrl: fakeSourceMapUrl,\n sourceUrl: fakeSourceUrl,\n serializerOptions: {\n output: serializerOutput,\n includeSourceMaps: serializerIncludeMaps,\n },\n };\n\n return bundleOptions;\n}\n\nexport function createBundleUrlPathFromExpoConfig(\n projectRoot: string,\n exp: ExpoConfig,\n options: Omit<ExpoMetroOptions, 'baseUrl' | 'routerRoot'>\n): string {\n return createBundleUrlPath({\n ...options,\n baseUrl: getBaseUrlFromExpoConfig(exp),\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n });\n}\n\nexport function createBundleUrlPath(options: ExpoMetroOptions): string {\n const {\n platform,\n mainModuleName,\n mode,\n minify,\n environment,\n serializerOutput,\n serializerIncludeMaps,\n lazy,\n bytecode,\n engine,\n preserveEnvVars,\n asyncRoutes,\n baseUrl,\n routerRoot,\n inlineSourceMap,\n isExporting,\n } = withDefaults(options);\n\n const dev = String(mode !== 'production');\n const queryParams = new URLSearchParams({\n platform: encodeURIComponent(platform),\n dev,\n // TODO: Is this still needed?\n hot: String(false),\n });\n\n // Lazy bundling must be disabled for bundle splitting to work.\n if (!isExporting && lazy) {\n queryParams.append('lazy', String(lazy));\n }\n\n if (inlineSourceMap) {\n queryParams.append('inlineSourceMap', String(inlineSourceMap));\n }\n\n if (minify) {\n queryParams.append('minify', String(minify));\n }\n\n // We split bytecode from the engine since you could technically use Hermes without bytecode.\n // Hermes indicates the type of language features you want to transform out of the JS, whereas bytecode\n // indicates whether you want to use the Hermes bytecode format.\n if (engine) {\n queryParams.append('transform.engine', engine);\n }\n if (bytecode) {\n queryParams.append('transform.bytecode', String(bytecode));\n }\n\n if (asyncRoutes) {\n queryParams.append('transform.asyncRoutes', String(asyncRoutes));\n }\n if (preserveEnvVars) {\n queryParams.append('transform.preserveEnvVars', String(preserveEnvVars));\n }\n if (baseUrl) {\n queryParams.append('transform.baseUrl', baseUrl);\n }\n if (routerRoot != null) {\n queryParams.append('transform.routerRoot', routerRoot);\n }\n\n if (environment) {\n queryParams.append('resolver.environment', environment);\n queryParams.append('transform.environment', environment);\n }\n\n if (serializerOutput) {\n queryParams.append('serializer.output', serializerOutput);\n }\n if (serializerIncludeMaps) {\n queryParams.append('serializer.map', String(serializerIncludeMaps));\n }\n\n return `/${encodeURI(mainModuleName)}.bundle?${queryParams.toString()}`;\n}\n"],"names":["shouldEnableAsyncImports","getBaseUrlFromExpoConfig","getAsyncRoutesFromExpoConfig","getMetroDirectBundleOptionsForExpoConfig","getMetroDirectBundleOptions","createBundleUrlPathFromExpoConfig","createBundleUrlPath","debug","require","projectRoot","env","EXPO_NO_METRO_LAZY","resolveFrom","silent","withDefaults","mode","minify","preserveEnvVars","EXPO_NO_CLIENT_ENV_VARS","lazy","props","bytecode","platform","CommandError","engine","isExporting","exp","experiments","baseUrl","trim","replace","asyncRoutesSetting","extra","router","asyncRoutes","includes","default","options","routerRoot","getRouterDirectoryModuleIdWithManifest","mainModuleName","environment","serializerOutput","serializerIncludeMaps","inlineSourceMap","dev","isHermes","fakeSourceUrl","fakeSourceMapUrl","URL","toString","bundleOptions","entryFile","unstable_transformProfile","customTransformOptions","__proto__","customResolverOptions","sourceMapUrl","sourceUrl","serializerOptions","output","includeSourceMaps","String","queryParams","URLSearchParams","encodeURIComponent","hot","append","encodeURI"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/metroOptions.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport type { BundleOptions as MetroBundleOptions } from 'metro/src/shared/types';\nimport resolveFrom from 'resolve-from';\n\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { getRouterDirectoryModuleIdWithManifest } from '../metro/router';\n\nconst debug = require('debug')('expo:metro:options') as typeof console.log;\n\nexport type MetroEnvironment = 'node' | 'react-server' | 'client';\n\nexport type ExpoMetroOptions = {\n platform: string;\n mainModuleName: string;\n mode: string;\n minify?: boolean;\n environment?: MetroEnvironment;\n serializerOutput?: 'static';\n serializerIncludeMaps?: boolean;\n lazy?: boolean;\n engine?: 'hermes';\n preserveEnvVars?: boolean;\n bytecode: boolean;\n /** Enable async routes (route-based bundle splitting) in Expo Router. */\n asyncRoutes?: boolean;\n /** Module ID relative to the projectRoot for the Expo Router app directory. */\n routerRoot: string;\n baseUrl?: string;\n isExporting: boolean;\n inlineSourceMap?: boolean;\n};\n\nexport type SerializerOptions = {\n includeSourceMaps?: boolean;\n output?: 'static';\n};\n\nexport type ExpoMetroBundleOptions = MetroBundleOptions & {\n serializerOptions?: SerializerOptions;\n};\n\nexport function shouldEnableAsyncImports(projectRoot: string): boolean {\n if (env.EXPO_NO_METRO_LAZY) {\n return false;\n }\n\n // `@expo/metro-runtime` includes support for the fetch + eval runtime code required\n // to support async imports. If it's not installed, we can't support async imports.\n // If it is installed, the user MUST import it somewhere in their project.\n // Expo Router automatically pulls this in, so we can check for it.\n return resolveFrom.silent(projectRoot, '@expo/metro-runtime') != null;\n}\n\nexport function isServerEnvironment(environment?: any): boolean {\n return environment === 'node' || environment === 'react-server';\n}\n\nfunction withDefaults({\n mode = 'development',\n minify = mode === 'production',\n preserveEnvVars = env.EXPO_NO_CLIENT_ENV_VARS,\n lazy,\n ...props\n}: ExpoMetroOptions): ExpoMetroOptions {\n if (props.bytecode) {\n if (props.platform === 'web') {\n throw new CommandError('Cannot use bytecode with the web platform');\n }\n if (props.engine !== 'hermes') {\n throw new CommandError('Bytecode is only supported with the Hermes engine');\n }\n }\n\n return {\n mode,\n minify,\n preserveEnvVars,\n lazy: !props.isExporting && lazy,\n ...props,\n };\n}\n\nexport function getBaseUrlFromExpoConfig(exp: ExpoConfig) {\n return exp.experiments?.baseUrl?.trim().replace(/\\/+$/, '') ?? '';\n}\nexport function getAsyncRoutesFromExpoConfig(exp: ExpoConfig, mode: string, platform: string) {\n let asyncRoutesSetting;\n\n if (exp.extra?.router?.asyncRoutes) {\n const asyncRoutes = exp.extra?.router?.asyncRoutes;\n if (['boolean', 'string'].includes(typeof asyncRoutes)) {\n asyncRoutesSetting = asyncRoutes;\n } else if (typeof asyncRoutes === 'object') {\n asyncRoutesSetting = asyncRoutes[platform] ?? asyncRoutes.default;\n }\n }\n\n return [mode, true].includes(asyncRoutesSetting);\n}\n\nexport function getMetroDirectBundleOptionsForExpoConfig(\n projectRoot: string,\n exp: ExpoConfig,\n options: Omit<ExpoMetroOptions, 'baseUrl' | 'routerRoot' | 'asyncRoutes'>\n): Partial<ExpoMetroBundleOptions> {\n return getMetroDirectBundleOptions({\n ...options,\n baseUrl: getBaseUrlFromExpoConfig(exp),\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n asyncRoutes: getAsyncRoutesFromExpoConfig(exp, options.mode, options.platform),\n });\n}\n\nexport function getMetroDirectBundleOptions(\n options: ExpoMetroOptions\n): Partial<ExpoMetroBundleOptions> {\n const {\n mainModuleName,\n platform,\n mode,\n minify,\n environment,\n serializerOutput,\n serializerIncludeMaps,\n bytecode,\n lazy,\n engine,\n preserveEnvVars,\n asyncRoutes,\n baseUrl,\n routerRoot,\n isExporting,\n inlineSourceMap,\n } = withDefaults(options);\n\n const dev = mode !== 'production';\n const isHermes = engine === 'hermes';\n\n if (isExporting) {\n debug('Disabling lazy bundling for export build');\n options.lazy = false;\n }\n\n let fakeSourceUrl: string | undefined;\n let fakeSourceMapUrl: string | undefined;\n\n // TODO: Upstream support to Metro for passing custom serializer options.\n if (serializerIncludeMaps != null || serializerOutput != null) {\n fakeSourceUrl = new URL(\n createBundleUrlPath(options).replace(/^\\//, ''),\n 'http://localhost:8081'\n ).toString();\n if (serializerIncludeMaps) {\n fakeSourceMapUrl = fakeSourceUrl.replace('.bundle?', '.map?');\n }\n }\n\n const bundleOptions: Partial<ExpoMetroBundleOptions> = {\n platform,\n entryFile: mainModuleName,\n dev,\n minify: minify ?? !dev,\n inlineSourceMap: inlineSourceMap ?? false,\n lazy,\n unstable_transformProfile: isHermes ? 'hermes-stable' : 'default',\n customTransformOptions: {\n __proto__: null,\n engine,\n preserveEnvVars,\n asyncRoutes,\n environment,\n baseUrl,\n routerRoot,\n bytecode,\n },\n customResolverOptions: {\n __proto__: null,\n environment,\n },\n sourceMapUrl: fakeSourceMapUrl,\n sourceUrl: fakeSourceUrl,\n serializerOptions: {\n output: serializerOutput,\n includeSourceMaps: serializerIncludeMaps,\n },\n };\n\n return bundleOptions;\n}\n\nexport function createBundleUrlPathFromExpoConfig(\n projectRoot: string,\n exp: ExpoConfig,\n options: Omit<ExpoMetroOptions, 'baseUrl' | 'routerRoot'>\n): string {\n return createBundleUrlPath({\n ...options,\n baseUrl: getBaseUrlFromExpoConfig(exp),\n routerRoot: getRouterDirectoryModuleIdWithManifest(projectRoot, exp),\n });\n}\n\nexport function createBundleUrlPath(options: ExpoMetroOptions): string {\n const {\n platform,\n mainModuleName,\n mode,\n minify,\n environment,\n serializerOutput,\n serializerIncludeMaps,\n lazy,\n bytecode,\n engine,\n preserveEnvVars,\n asyncRoutes,\n baseUrl,\n routerRoot,\n inlineSourceMap,\n isExporting,\n } = withDefaults(options);\n\n const dev = String(mode !== 'production');\n const queryParams = new URLSearchParams({\n platform: encodeURIComponent(platform),\n dev,\n // TODO: Is this still needed?\n hot: String(false),\n });\n\n // Lazy bundling must be disabled for bundle splitting to work.\n if (!isExporting && lazy) {\n queryParams.append('lazy', String(lazy));\n }\n\n if (inlineSourceMap) {\n queryParams.append('inlineSourceMap', String(inlineSourceMap));\n }\n\n if (minify) {\n queryParams.append('minify', String(minify));\n }\n\n // We split bytecode from the engine since you could technically use Hermes without bytecode.\n // Hermes indicates the type of language features you want to transform out of the JS, whereas bytecode\n // indicates whether you want to use the Hermes bytecode format.\n if (engine) {\n queryParams.append('transform.engine', engine);\n }\n if (bytecode) {\n queryParams.append('transform.bytecode', String(bytecode));\n }\n\n if (asyncRoutes) {\n queryParams.append('transform.asyncRoutes', String(asyncRoutes));\n }\n if (preserveEnvVars) {\n queryParams.append('transform.preserveEnvVars', String(preserveEnvVars));\n }\n if (baseUrl) {\n queryParams.append('transform.baseUrl', baseUrl);\n }\n if (routerRoot != null) {\n queryParams.append('transform.routerRoot', routerRoot);\n }\n\n if (environment) {\n queryParams.append('resolver.environment', environment);\n queryParams.append('transform.environment', environment);\n }\n\n if (serializerOutput) {\n queryParams.append('serializer.output', serializerOutput);\n }\n if (serializerIncludeMaps) {\n queryParams.append('serializer.map', String(serializerIncludeMaps));\n }\n\n return `/${encodeURI(mainModuleName)}.bundle?${queryParams.toString()}`;\n}\n"],"names":["shouldEnableAsyncImports","isServerEnvironment","getBaseUrlFromExpoConfig","getAsyncRoutesFromExpoConfig","getMetroDirectBundleOptionsForExpoConfig","getMetroDirectBundleOptions","createBundleUrlPathFromExpoConfig","createBundleUrlPath","debug","require","projectRoot","env","EXPO_NO_METRO_LAZY","resolveFrom","silent","environment","withDefaults","mode","minify","preserveEnvVars","EXPO_NO_CLIENT_ENV_VARS","lazy","props","bytecode","platform","CommandError","engine","isExporting","exp","experiments","baseUrl","trim","replace","asyncRoutesSetting","extra","router","asyncRoutes","includes","default","options","routerRoot","getRouterDirectoryModuleIdWithManifest","mainModuleName","serializerOutput","serializerIncludeMaps","inlineSourceMap","dev","isHermes","fakeSourceUrl","fakeSourceMapUrl","URL","toString","bundleOptions","entryFile","unstable_transformProfile","customTransformOptions","__proto__","customResolverOptions","sourceMapUrl","sourceUrl","serializerOptions","output","includeSourceMaps","String","queryParams","URLSearchParams","encodeURIComponent","hot","append","encodeURI"],"mappings":"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"}
@@ -5,8 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.resolveGoogleServicesFile = resolveGoogleServicesFile;
6
6
  exports.getAssetFieldPathsForManifestAsync = getAssetFieldPathsForManifestAsync;
7
7
  exports.resolveManifestAssets = resolveManifestAssets;
8
- var _promises = _interopRequireDefault(require("fs/promises"));
9
- var _path = _interopRequireDefault(require("path"));
8
+ function _promises() {
9
+ const data = _interopRequireDefault(require("fs/promises"));
10
+ _promises = function() {
11
+ return data;
12
+ };
13
+ return data;
14
+ }
15
+ function _path() {
16
+ const data = _interopRequireDefault(require("path"));
17
+ _path = function() {
18
+ return data;
19
+ };
20
+ return data;
21
+ }
10
22
  var _getExpoSchema = require("../../../api/getExpoSchema");
11
23
  var Log = _interopRequireWildcard(require("../../../log"));
12
24
  var _dir = require("../../../utils/dir");
@@ -43,7 +55,7 @@ async function resolveGoogleServicesFile(projectRoot, manifest) {
43
55
  var ref, ref1;
44
56
  if ((ref = manifest.android) == null ? void 0 : ref.googleServicesFile) {
45
57
  try {
46
- const contents = await _promises.default.readFile(_path.default.resolve(projectRoot, manifest.android.googleServicesFile), "utf8");
58
+ const contents = await _promises().default.readFile(_path().default.resolve(projectRoot, manifest.android.googleServicesFile), "utf8");
47
59
  manifest.android.googleServicesFile = contents;
48
60
  } catch {
49
61
  Log.warn(`Could not parse Expo config: android.googleServicesFile: "${manifest.android.googleServicesFile}"`);
@@ -53,7 +65,7 @@ async function resolveGoogleServicesFile(projectRoot, manifest) {
53
65
  }
54
66
  if ((ref1 = manifest.ios) == null ? void 0 : ref1.googleServicesFile) {
55
67
  try {
56
- const contents = await _promises.default.readFile(_path.default.resolve(projectRoot, manifest.ios.googleServicesFile), "base64");
68
+ const contents = await _promises().default.readFile(_path().default.resolve(projectRoot, manifest.ios.googleServicesFile), "base64");
57
69
  manifest.ios.googleServicesFile = contents;
58
70
  } catch {
59
71
  Log.warn(`Could not parse Expo config: ios.googleServicesFile: "${manifest.ios.googleServicesFile}"`);
@@ -83,7 +95,7 @@ async function resolveManifestAssets(projectRoot, { manifest , resolver , strict
83
95
  return pathOrURL;
84
96
  }
85
97
  // File path
86
- if (await (0, _dir).fileExistsAsync(_path.default.resolve(projectRoot, pathOrURL))) {
98
+ if (await (0, _dir).fileExistsAsync(_path().default.resolve(projectRoot, pathOrURL))) {
87
99
  return await resolver(pathOrURL);
88
100
  }
89
101
  // Unknown