@expo/cli 1.0.0-canary-20250320-7a205d3 → 1.0.0-canary-20250402-161f57b

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 (719) hide show
  1. package/build/bin/cli +93 -91
  2. package/build/bin/cli.map +1 -1
  3. package/build/metro-require/require.js +53 -52
  4. package/build/src/api/endpoint.js +6 -2
  5. package/build/src/api/endpoint.js.map +1 -1
  6. package/build/src/api/getExpoGoIntermediateCertificate.js +5 -3
  7. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  8. package/build/src/api/getExpoSchema.js +16 -12
  9. package/build/src/api/getExpoSchema.js.map +1 -1
  10. package/build/src/api/getNativeModuleVersions.js +6 -4
  11. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  12. package/build/src/api/getProjectDevelopmentCertificate.js +5 -3
  13. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  14. package/build/src/api/getVersions.js +7 -5
  15. package/build/src/api/getVersions.js.map +1 -1
  16. package/build/src/api/graphql/client.js +32 -26
  17. package/build/src/api/graphql/client.js.map +1 -1
  18. package/build/src/api/graphql/queries/AppQuery.js +6 -4
  19. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  20. package/build/src/api/graphql/queries/UserQuery.js +5 -3
  21. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  22. package/build/src/api/graphql/types/App.js +3 -1
  23. package/build/src/api/graphql/types/App.js.map +1 -1
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +36 -32
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  26. package/build/src/api/rest/cache/ResponseCache.js +20 -12
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +13 -11
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  30. package/build/src/api/rest/client.js +55 -37
  31. package/build/src/api/rest/client.js.map +1 -1
  32. package/build/src/api/rest/client.types.js.map +1 -1
  33. package/build/src/api/rest/wrapFetchWithBaseUrl.js +5 -3
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithOffline.js +5 -3
  36. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProgress.js +11 -7
  38. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  39. package/build/src/api/rest/wrapFetchWithProxy.js +5 -3
  40. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js +8 -6
  42. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
  43. package/build/src/api/settings.js +7 -5
  44. package/build/src/api/settings.js.map +1 -1
  45. package/build/src/api/updateDevelopmentSession.js +23 -17
  46. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  47. package/build/src/api/user/UserSettings.js +53 -31
  48. package/build/src/api/user/UserSettings.js.map +1 -1
  49. package/build/src/api/user/actions.js +27 -21
  50. package/build/src/api/user/actions.js.map +1 -1
  51. package/build/src/api/user/expoSsoLauncher.js +30 -26
  52. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  53. package/build/src/api/user/otp.js +35 -29
  54. package/build/src/api/user/otp.js.map +1 -1
  55. package/build/src/api/user/user.js +44 -30
  56. package/build/src/api/user/user.js.map +1 -1
  57. package/build/src/config/configAsync.js +29 -23
  58. package/build/src/config/configAsync.js.map +1 -1
  59. package/build/src/config/index.js +25 -21
  60. package/build/src/config/index.js.map +1 -1
  61. package/build/src/customize/customizeAsync.js +8 -6
  62. package/build/src/customize/customizeAsync.js.map +1 -1
  63. package/build/src/customize/generate.js +20 -16
  64. package/build/src/customize/generate.js.map +1 -1
  65. package/build/src/customize/index.js +14 -12
  66. package/build/src/customize/index.js.map +1 -1
  67. package/build/src/customize/resolveOptions.js +4 -2
  68. package/build/src/customize/resolveOptions.js.map +1 -1
  69. package/build/src/customize/templates.js +58 -54
  70. package/build/src/customize/templates.js.map +1 -1
  71. package/build/src/customize/typescript.js +11 -7
  72. package/build/src/customize/typescript.js.map +1 -1
  73. package/build/src/export/createMetadataJson.js +11 -9
  74. package/build/src/export/createMetadataJson.js.map +1 -1
  75. package/build/src/export/embed/exportEager.js +8 -6
  76. package/build/src/export/embed/exportEager.js.map +1 -1
  77. package/build/src/export/embed/exportEmbedAsync.js +72 -62
  78. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  79. package/build/src/export/embed/exportServer.js +57 -55
  80. package/build/src/export/embed/exportServer.js.map +1 -1
  81. package/build/src/export/embed/index.js +44 -40
  82. package/build/src/export/embed/index.js.map +1 -1
  83. package/build/src/export/embed/resolveOptions.js +44 -36
  84. package/build/src/export/embed/resolveOptions.js.map +1 -1
  85. package/build/src/export/embed/xcodeCompilerLogger.js +39 -27
  86. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  87. package/build/src/export/exportApp.js +68 -64
  88. package/build/src/export/exportApp.js.map +1 -1
  89. package/build/src/export/exportAssets.js +34 -26
  90. package/build/src/export/exportAssets.js.map +1 -1
  91. package/build/src/export/exportAsync.js +13 -9
  92. package/build/src/export/exportAsync.js.map +1 -1
  93. package/build/src/export/exportDomComponents.js +53 -45
  94. package/build/src/export/exportDomComponents.js.map +1 -1
  95. package/build/src/export/exportHermes.js +75 -53
  96. package/build/src/export/exportHermes.js.map +1 -1
  97. package/build/src/export/exportStaticAsync.js +73 -62
  98. package/build/src/export/exportStaticAsync.js.map +1 -1
  99. package/build/src/export/favicon.js +33 -27
  100. package/build/src/export/favicon.js.map +1 -1
  101. package/build/src/export/getPublicExpoManifest.js +7 -5
  102. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  103. package/build/src/export/getResolvedLocales.js +11 -9
  104. package/build/src/export/getResolvedLocales.js.map +1 -1
  105. package/build/src/export/html.js +10 -6
  106. package/build/src/export/html.js.map +1 -1
  107. package/build/src/export/index.js +32 -28
  108. package/build/src/export/index.js.map +1 -1
  109. package/build/src/export/metroAssetLocalPath.js +36 -30
  110. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  111. package/build/src/export/persistMetroAssets.js +64 -34
  112. package/build/src/export/persistMetroAssets.js.map +1 -1
  113. package/build/src/export/publicFolder.js +10 -6
  114. package/build/src/export/publicFolder.js.map +1 -1
  115. package/build/src/export/resolveOptions.js +28 -24
  116. package/build/src/export/resolveOptions.js.map +1 -1
  117. package/build/src/export/saveAssets.js +50 -46
  118. package/build/src/export/saveAssets.js.map +1 -1
  119. package/build/src/export/web/exportWebAsync.js +13 -11
  120. package/build/src/export/web/exportWebAsync.js.map +1 -1
  121. package/build/src/export/web/index.js +19 -15
  122. package/build/src/export/web/index.js.map +1 -1
  123. package/build/src/export/web/resolveOptions.js +5 -3
  124. package/build/src/export/web/resolveOptions.js.map +1 -1
  125. package/build/src/export/writeContents.js +4 -2
  126. package/build/src/export/writeContents.js.map +1 -1
  127. package/build/src/graphql/generated.js +705 -479
  128. package/build/src/graphql/generated.js.map +1 -1
  129. package/build/src/install/applyPlugins.js +11 -7
  130. package/build/src/install/applyPlugins.js.map +1 -1
  131. package/build/src/install/checkPackages.js +26 -22
  132. package/build/src/install/checkPackages.js.map +1 -1
  133. package/build/src/install/fixPackages.js +16 -12
  134. package/build/src/install/fixPackages.js.map +1 -1
  135. package/build/src/install/index.js +18 -16
  136. package/build/src/install/index.js.map +1 -1
  137. package/build/src/install/installAsync.js +32 -26
  138. package/build/src/install/installAsync.js.map +1 -1
  139. package/build/src/install/installExpoPackage.js +22 -18
  140. package/build/src/install/installExpoPackage.js.map +1 -1
  141. package/build/src/install/resolveOptions.js +21 -19
  142. package/build/src/install/resolveOptions.js.map +1 -1
  143. package/build/src/install/utils/autoAddConfigPlugins.js +18 -14
  144. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  145. package/build/src/install/utils/checkPackagesCompatibility.js +14 -12
  146. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
  147. package/build/src/lint/ESlintPrerequisite.js +50 -44
  148. package/build/src/lint/ESlintPrerequisite.js.map +1 -1
  149. package/build/src/lint/index.js +12 -8
  150. package/build/src/lint/index.js.map +1 -1
  151. package/build/src/lint/lintAsync.js +10 -8
  152. package/build/src/lint/lintAsync.js.map +1 -1
  153. package/build/src/log.js +36 -16
  154. package/build/src/log.js.map +1 -1
  155. package/build/src/login/index.js +24 -20
  156. package/build/src/login/index.js.map +1 -1
  157. package/build/src/logout/index.js +11 -7
  158. package/build/src/logout/index.js.map +1 -1
  159. package/build/src/prebuild/clearNativeFolder.js +38 -26
  160. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  161. package/build/src/prebuild/configureProjectAsync.js +18 -14
  162. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  163. package/build/src/prebuild/copyTemplateFiles.js +17 -13
  164. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  165. package/build/src/prebuild/ensureConfigAsync.js +6 -4
  166. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  167. package/build/src/prebuild/index.js +36 -32
  168. package/build/src/prebuild/index.js.map +1 -1
  169. package/build/src/prebuild/prebuildAsync.js +29 -25
  170. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  171. package/build/src/prebuild/renameTemplateAppName.js +43 -37
  172. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  173. package/build/src/prebuild/resolveOptions.js +70 -53
  174. package/build/src/prebuild/resolveOptions.js.map +1 -1
  175. package/build/src/prebuild/resolveTemplate.js +36 -32
  176. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  177. package/build/src/prebuild/updateFromTemplate.js +19 -13
  178. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  179. package/build/src/prebuild/updatePackageJson.js +53 -39
  180. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  181. package/build/src/prebuild/validateTemplatePlatforms.js +12 -8
  182. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  183. package/build/src/register/index.js +11 -7
  184. package/build/src/register/index.js.map +1 -1
  185. package/build/src/register/registerAsync.js +5 -3
  186. package/build/src/register/registerAsync.js.map +1 -1
  187. package/build/src/run/android/index.js +36 -32
  188. package/build/src/run/android/index.js.map +1 -1
  189. package/build/src/run/android/resolveDevice.js +10 -8
  190. package/build/src/run/android/resolveDevice.js.map +1 -1
  191. package/build/src/run/android/resolveGradlePropsAsync.js +18 -16
  192. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  193. package/build/src/run/android/resolveInstallApkName.js +17 -15
  194. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  195. package/build/src/run/android/resolveLaunchProps.js +12 -10
  196. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  197. package/build/src/run/android/resolveOptions.js +4 -2
  198. package/build/src/run/android/resolveOptions.js.map +1 -1
  199. package/build/src/run/android/runAndroidAsync.js +23 -21
  200. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  201. package/build/src/run/ensureNativeProject.js +7 -5
  202. package/build/src/run/ensureNativeProject.js.map +1 -1
  203. package/build/src/run/hints.js +13 -7
  204. package/build/src/run/hints.js.map +1 -1
  205. package/build/src/run/index.js +27 -23
  206. package/build/src/run/index.js.map +1 -1
  207. package/build/src/run/ios/XcodeBuild.js +80 -60
  208. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  209. package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
  210. package/build/src/run/ios/appleDevice/AppleDevice.js +69 -63
  211. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  212. package/build/src/run/ios/appleDevice/ClientManager.js +29 -26
  213. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  214. package/build/src/run/ios/appleDevice/client/AFCClient.js +28 -25
  215. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  216. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +29 -26
  217. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  218. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +22 -21
  219. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  220. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +32 -29
  221. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  222. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +28 -24
  223. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  224. package/build/src/run/ios/appleDevice/client/ServiceClient.js +7 -4
  225. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  226. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +28 -27
  227. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  228. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +23 -17
  229. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  230. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +146 -132
  231. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  232. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +29 -21
  233. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  234. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +29 -21
  235. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  236. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +34 -22
  237. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  238. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +27 -17
  239. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  240. package/build/src/run/ios/codeSigning/Security.js +53 -39
  241. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  242. package/build/src/run/ios/codeSigning/configureCodeSigning.js +13 -9
  243. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  244. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +27 -19
  245. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  246. package/build/src/run/ios/codeSigning/settings.js +9 -5
  247. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  248. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +14 -12
  249. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  250. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +27 -21
  251. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  252. package/build/src/run/ios/index.js +40 -36
  253. package/build/src/run/ios/index.js.map +1 -1
  254. package/build/src/run/ios/launchApp.js +23 -17
  255. package/build/src/run/ios/launchApp.js.map +1 -1
  256. package/build/src/run/ios/options/appleDestinations.js +38 -36
  257. package/build/src/run/ios/options/appleDestinations.js.map +1 -1
  258. package/build/src/run/ios/options/promptDevice.js +20 -16
  259. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  260. package/build/src/run/ios/options/resolveDevice.js +30 -24
  261. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  262. package/build/src/run/ios/options/resolveNativeScheme.js +31 -23
  263. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  264. package/build/src/run/ios/options/resolveOptions.js +7 -5
  265. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  266. package/build/src/run/ios/options/resolveXcodeProject.js +7 -5
  267. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  268. package/build/src/run/ios/runIosAsync.js +48 -44
  269. package/build/src/run/ios/runIosAsync.js.map +1 -1
  270. package/build/src/run/ios/validateExternalBinary.js +24 -22
  271. package/build/src/run/ios/validateExternalBinary.js.map +1 -1
  272. package/build/src/run/resolveBundlerProps.js +4 -2
  273. package/build/src/run/resolveBundlerProps.js.map +1 -1
  274. package/build/src/run/startBundler.js +16 -12
  275. package/build/src/run/startBundler.js.map +1 -1
  276. package/build/src/serve/index.js +20 -16
  277. package/build/src/serve/index.js.map +1 -1
  278. package/build/src/serve/serveAsync.js +36 -32
  279. package/build/src/serve/serveAsync.js.map +1 -1
  280. package/build/src/start/detectDevClient.js +13 -9
  281. package/build/src/start/detectDevClient.js.map +1 -1
  282. package/build/src/start/doctor/Prerequisite.js +12 -7
  283. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  284. package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -11
  285. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  286. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +23 -19
  287. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  288. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +23 -19
  289. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  290. package/build/src/start/doctor/apple/XcodePrerequisite.js +51 -45
  291. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  292. package/build/src/start/doctor/apple/XcrunPrerequisite.js +18 -16
  293. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  294. package/build/src/start/doctor/dependencies/bundledNativeModules.js +23 -19
  295. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  296. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +31 -25
  297. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  298. package/build/src/start/doctor/dependencies/getMissingPackages.js +25 -17
  299. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  300. package/build/src/start/doctor/dependencies/getVersionedPackages.js +40 -32
  301. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  302. package/build/src/start/doctor/dependencies/resolvePackages.js +32 -26
  303. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  304. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +41 -31
  305. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  306. package/build/src/start/doctor/ngrok/ExternalModule.js +34 -29
  307. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  308. package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -8
  309. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  310. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +32 -28
  311. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  312. package/build/src/start/doctor/typescript/updateTSConfig.js +23 -17
  313. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  314. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +33 -27
  315. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  316. package/build/src/start/index.js +46 -42
  317. package/build/src/start/index.js.map +1 -1
  318. package/build/src/start/interface/KeyPressHandler.js +18 -14
  319. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  320. package/build/src/start/interface/commandsTable.js +94 -80
  321. package/build/src/start/interface/commandsTable.js.map +1 -1
  322. package/build/src/start/interface/interactiveActions.js +44 -40
  323. package/build/src/start/interface/interactiveActions.js.map +1 -1
  324. package/build/src/start/interface/startInterface.js +65 -61
  325. package/build/src/start/interface/startInterface.js.map +1 -1
  326. package/build/src/start/platforms/AppIdResolver.js +6 -4
  327. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  328. package/build/src/start/platforms/DeviceManager.js +10 -6
  329. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  330. package/build/src/start/platforms/ExpoGoInstaller.js +25 -20
  331. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  332. package/build/src/start/platforms/PlatformManager.js +17 -15
  333. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  334. package/build/src/start/platforms/android/ADBServer.js +39 -35
  335. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  336. package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -16
  337. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  338. package/build/src/start/platforms/android/AndroidDeviceManager.js +24 -20
  339. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  340. package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
  341. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
  342. package/build/src/start/platforms/android/AndroidSdk.js +11 -9
  343. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  344. package/build/src/start/platforms/android/activateWindow.js +26 -22
  345. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  346. package/build/src/start/platforms/android/adb.js +121 -83
  347. package/build/src/start/platforms/android/adb.js.map +1 -1
  348. package/build/src/start/platforms/android/adbReverse.js +20 -12
  349. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  350. package/build/src/start/platforms/android/emulator.js +36 -26
  351. package/build/src/start/platforms/android/emulator.js.map +1 -1
  352. package/build/src/start/platforms/android/getDevices.js +7 -5
  353. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  354. package/build/src/start/platforms/android/gradle.js +36 -28
  355. package/build/src/start/platforms/android/gradle.js.map +1 -1
  356. package/build/src/start/platforms/android/promptAndroidDevice.js +19 -15
  357. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  358. package/build/src/start/platforms/ios/AppleAppIdResolver.js +21 -19
  359. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  360. package/build/src/start/platforms/ios/AppleDeviceManager.js +37 -31
  361. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  362. package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
  363. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
  364. package/build/src/start/platforms/ios/assertSystemRequirements.js +9 -7
  365. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  366. package/build/src/start/platforms/ios/devicectl.js +88 -74
  367. package/build/src/start/platforms/ios/devicectl.js.map +1 -1
  368. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +22 -18
  369. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  370. package/build/src/start/platforms/ios/getBestSimulator.js +29 -19
  371. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  372. package/build/src/start/platforms/ios/promptAppleDevice.js +14 -10
  373. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  374. package/build/src/start/platforms/ios/simctl.js +102 -74
  375. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  376. package/build/src/start/platforms/ios/simctlLogging.js +57 -52
  377. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  378. package/build/src/start/platforms/ios/xcrun.js +22 -18
  379. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  380. package/build/src/start/project/devices.js +19 -9
  381. package/build/src/start/project/devices.js.map +1 -1
  382. package/build/src/start/project/dotExpo.js +15 -11
  383. package/build/src/start/project/dotExpo.js.map +1 -1
  384. package/build/src/start/project/settings.js +4 -2
  385. package/build/src/start/project/settings.js.map +1 -1
  386. package/build/src/start/resolveOptions.js +48 -40
  387. package/build/src/start/resolveOptions.js.map +1 -1
  388. package/build/src/start/server/AsyncNgrok.js +55 -51
  389. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  390. package/build/src/start/server/AsyncWsTunnel.js +37 -33
  391. package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
  392. package/build/src/start/server/BundlerDevServer.js +81 -79
  393. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  394. package/build/src/start/server/DevServerManager.js +42 -38
  395. package/build/src/start/server/DevServerManager.js.map +1 -1
  396. package/build/src/start/server/DevToolsPluginManager.js +18 -14
  397. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  398. package/build/src/start/server/DevelopmentSession.js +18 -14
  399. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  400. package/build/src/start/server/ReactDevToolsProxy.js +16 -10
  401. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  402. package/build/src/start/server/UrlCreator.js +36 -33
  403. package/build/src/start/server/UrlCreator.js.map +1 -1
  404. package/build/src/start/server/getStaticRenderFunctions.js +30 -22
  405. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  406. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +9 -5
  407. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  408. package/build/src/start/server/metro/MetroBundlerDevServer.js +293 -280
  409. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  410. package/build/src/start/server/metro/MetroTerminalReporter.js +63 -56
  411. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  412. package/build/src/start/server/metro/TerminalReporter.js +39 -33
  413. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  414. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  415. package/build/src/start/server/metro/createExpoFallbackResolver.js +13 -11
  416. package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
  417. package/build/src/start/server/metro/createExpoMetroResolver.js +47 -41
  418. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  419. package/build/src/start/server/metro/createJResolver.js +31 -27
  420. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  421. package/build/src/start/server/metro/createServerComponentsMiddleware.js +110 -98
  422. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  423. package/build/src/start/server/metro/createServerRouteMiddleware.js +34 -30
  424. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  425. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +13 -11
  426. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
  427. package/build/src/start/server/metro/debugging/MessageHandler.js +3 -1
  428. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  429. package/build/src/start/server/metro/debugging/attachAtlas.js +26 -22
  430. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  431. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +19 -17
  432. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  433. package/build/src/start/server/metro/debugging/createHandlersFactory.js +25 -31
  434. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  435. package/build/src/start/server/metro/debugging/getDebuggerType.js +6 -4
  436. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  437. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +14 -8
  438. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  439. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -5
  440. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  441. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +8 -6
  442. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  443. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -5
  444. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  445. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +14 -12
  446. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
  447. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +14 -10
  448. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  449. package/build/src/start/server/metro/debugging/pageIsSupported.js +6 -4
  450. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  451. package/build/src/start/server/metro/debugging/types.js.map +1 -1
  452. package/build/src/start/server/metro/dev-server/createEventSocket.js +18 -16
  453. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
  454. package/build/src/start/server/metro/dev-server/createMessageSocket.js +23 -21
  455. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  456. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +23 -21
  457. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  458. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +4 -2
  459. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
  460. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +4 -2
  461. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
  462. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +8 -4
  463. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  464. package/build/src/start/server/metro/externals.js +33 -25
  465. package/build/src/start/server/metro/externals.js.map +1 -1
  466. package/build/src/start/server/metro/fetchRouterManifest.js +28 -12
  467. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  468. package/build/src/start/server/metro/formatFileCandidates.js +11 -9
  469. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  470. package/build/src/start/server/metro/getCssModulesFromBundler.js +24 -20
  471. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  472. package/build/src/start/server/metro/instantiateMetro.js +87 -81
  473. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  474. package/build/src/start/server/metro/log-box/LogBoxLog.js +40 -36
  475. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  476. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +20 -14
  477. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  478. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +10 -6
  479. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  480. package/build/src/start/server/metro/metroErrorInterface.js +88 -78
  481. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  482. package/build/src/start/server/metro/metroErrors.js +8 -4
  483. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  484. package/build/src/start/server/metro/metroPrivateServer.js +9 -7
  485. package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
  486. package/build/src/start/server/metro/metroVirtualModules.js +10 -8
  487. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  488. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +24 -22
  489. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  490. package/build/src/start/server/metro/router.js +48 -32
  491. package/build/src/start/server/metro/router.js.map +1 -1
  492. package/build/src/start/server/metro/runServer-fork.js +24 -22
  493. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  494. package/build/src/start/server/metro/serializeHtml.js +24 -22
  495. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  496. package/build/src/start/server/metro/symbolicate.js.map +1 -1
  497. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +35 -29
  498. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  499. package/build/src/start/server/metro/withMetroMultiPlatform.js +150 -140
  500. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  501. package/build/src/start/server/metro/withMetroResolvers.js +49 -39
  502. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  503. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +8 -6
  504. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  505. package/build/src/start/server/middleware/CorsMiddleware.js +17 -15
  506. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  507. package/build/src/start/server/middleware/CreateFileMiddleware.js +32 -31
  508. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  509. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +22 -19
  510. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  511. package/build/src/start/server/middleware/DomComponentsMiddleware.js +33 -27
  512. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  513. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +61 -57
  514. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  515. package/build/src/start/server/middleware/ExpoMiddleware.js +15 -9
  516. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  517. package/build/src/start/server/middleware/FaviconMiddleware.js +16 -15
  518. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  519. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +4 -2
  520. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  521. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +34 -31
  522. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  523. package/build/src/start/server/middleware/ManifestMiddleware.js +64 -56
  524. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  525. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +23 -19
  526. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  527. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +20 -19
  528. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  529. package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -9
  530. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  531. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +17 -11
  532. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
  533. package/build/src/start/server/middleware/inspector/CdpClient.js +12 -10
  534. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
  535. package/build/src/start/server/middleware/inspector/JsInspector.js +35 -27
  536. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  537. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +21 -19
  538. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  539. package/build/src/start/server/middleware/inspector/middlwareMutations.js +6 -2
  540. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  541. package/build/src/start/server/middleware/metroOptions.js +120 -96
  542. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  543. package/build/src/start/server/middleware/mutations.js +7 -3
  544. package/build/src/start/server/middleware/mutations.js.map +1 -1
  545. package/build/src/start/server/middleware/resolveAssets.js +26 -18
  546. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  547. package/build/src/start/server/middleware/resolvePlatform.js +23 -15
  548. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  549. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +11 -9
  550. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  551. package/build/src/start/server/middleware/server.types.js.map +1 -1
  552. package/build/src/start/server/openPlatforms.js +10 -8
  553. package/build/src/start/server/openPlatforms.js.map +1 -1
  554. package/build/src/start/server/platformBundlers.js +13 -11
  555. package/build/src/start/server/platformBundlers.js.map +1 -1
  556. package/build/src/start/server/serverLogLikeMetro.js +58 -50
  557. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  558. package/build/src/start/server/type-generation/expo-env.js +11 -7
  559. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  560. package/build/src/start/server/type-generation/routes.js +72 -50
  561. package/build/src/start/server/type-generation/routes.js.map +1 -1
  562. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +21 -19
  563. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  564. package/build/src/start/server/type-generation/tsconfig.js +36 -28
  565. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  566. package/build/src/start/server/webTemplate.js +28 -24
  567. package/build/src/start/server/webTemplate.js.map +1 -1
  568. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +52 -46
  569. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  570. package/build/src/start/server/webpack/compile.js +15 -11
  571. package/build/src/start/server/webpack/compile.js.map +1 -1
  572. package/build/src/start/server/webpack/formatWebpackMessages.js +28 -26
  573. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  574. package/build/src/start/server/webpack/resolveFromProject.js +18 -12
  575. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  576. package/build/src/start/server/webpack/tls.js +18 -12
  577. package/build/src/start/server/webpack/tls.js.map +1 -1
  578. package/build/src/start/startAsync.js +31 -27
  579. package/build/src/start/startAsync.js.map +1 -1
  580. package/build/src/utils/FileNotifier.js +20 -17
  581. package/build/src/utils/FileNotifier.js.map +1 -1
  582. package/build/src/utils/ansi.js +7 -5
  583. package/build/src/utils/ansi.js.map +1 -1
  584. package/build/src/utils/args.js +24 -14
  585. package/build/src/utils/args.js.map +1 -1
  586. package/build/src/utils/array.js +18 -6
  587. package/build/src/utils/array.js.map +1 -1
  588. package/build/src/utils/cocoapods.js +54 -46
  589. package/build/src/utils/cocoapods.js.map +1 -1
  590. package/build/src/utils/codesigning.js +79 -69
  591. package/build/src/utils/codesigning.js.map +1 -1
  592. package/build/src/utils/createFileTransform.js +16 -12
  593. package/build/src/utils/createFileTransform.js.map +1 -1
  594. package/build/src/utils/createTempPath.js +12 -8
  595. package/build/src/utils/createTempPath.js.map +1 -1
  596. package/build/src/utils/delay.js +12 -6
  597. package/build/src/utils/delay.js.map +1 -1
  598. package/build/src/utils/dir.js +40 -22
  599. package/build/src/utils/dir.js.map +1 -1
  600. package/build/src/utils/downloadAppAsync.js +10 -8
  601. package/build/src/utils/downloadAppAsync.js.map +1 -1
  602. package/build/src/utils/downloadExpoGoAsync.js +27 -23
  603. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  604. package/build/src/utils/editor.js +41 -35
  605. package/build/src/utils/editor.js.map +1 -1
  606. package/build/src/utils/env.js +63 -59
  607. package/build/src/utils/env.js.map +1 -1
  608. package/build/src/utils/errors.js +37 -30
  609. package/build/src/utils/errors.js.map +1 -1
  610. package/build/src/utils/exit.js +35 -31
  611. package/build/src/utils/exit.js.map +1 -1
  612. package/build/src/utils/expoUpdatesCli.js +32 -22
  613. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  614. package/build/src/utils/fetch.js +8 -4
  615. package/build/src/utils/fetch.js.map +1 -1
  616. package/build/src/utils/filePath.js +10 -6
  617. package/build/src/utils/filePath.js.map +1 -1
  618. package/build/src/utils/findUp.js +13 -9
  619. package/build/src/utils/findUp.js.map +1 -1
  620. package/build/src/utils/fn.js +6 -2
  621. package/build/src/utils/fn.js.map +1 -1
  622. package/build/src/utils/getOrPromptApplicationId.js +41 -35
  623. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  624. package/build/src/utils/getRunningProcess.js +29 -21
  625. package/build/src/utils/getRunningProcess.js.map +1 -1
  626. package/build/src/utils/git.js +26 -20
  627. package/build/src/utils/git.js.map +1 -1
  628. package/build/src/utils/glob.js +8 -4
  629. package/build/src/utils/glob.js.map +1 -1
  630. package/build/src/utils/interactive.js +3 -1
  631. package/build/src/utils/interactive.js.map +1 -1
  632. package/build/src/utils/ip.js +21 -19
  633. package/build/src/utils/ip.js.map +1 -1
  634. package/build/src/utils/isModuleSymlinked.js +11 -9
  635. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  636. package/build/src/utils/jsonSchemaDeref.js +20 -18
  637. package/build/src/utils/jsonSchemaDeref.js.map +1 -1
  638. package/build/src/utils/link.js +17 -13
  639. package/build/src/utils/link.js.map +1 -1
  640. package/build/src/utils/mergeGitIgnorePaths.js +46 -28
  641. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  642. package/build/src/utils/modifyConfigAsync.js +16 -10
  643. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  644. package/build/src/utils/modifyConfigPlugins.js +10 -6
  645. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  646. package/build/src/utils/multipartMixed.js +13 -11
  647. package/build/src/utils/multipartMixed.js.map +1 -1
  648. package/build/src/utils/nodeEnv.js +12 -6
  649. package/build/src/utils/nodeEnv.js.map +1 -1
  650. package/build/src/utils/nodeModules.js +10 -8
  651. package/build/src/utils/nodeModules.js.map +1 -1
  652. package/build/src/utils/npm.js +49 -35
  653. package/build/src/utils/npm.js.map +1 -1
  654. package/build/src/utils/obj.js +11 -5
  655. package/build/src/utils/obj.js.map +1 -1
  656. package/build/src/utils/open.js +10 -8
  657. package/build/src/utils/open.js.map +1 -1
  658. package/build/src/utils/ora.js +13 -7
  659. package/build/src/utils/ora.js.map +1 -1
  660. package/build/src/utils/plist.js +21 -15
  661. package/build/src/utils/plist.js.map +1 -1
  662. package/build/src/utils/port.js +43 -33
  663. package/build/src/utils/port.js.map +1 -1
  664. package/build/src/utils/profile.js +11 -7
  665. package/build/src/utils/profile.js.map +1 -1
  666. package/build/src/utils/progress.js +11 -5
  667. package/build/src/utils/progress.js.map +1 -1
  668. package/build/src/utils/prompts.js +47 -29
  669. package/build/src/utils/prompts.js.map +1 -1
  670. package/build/src/utils/resolveArgs.js +36 -24
  671. package/build/src/utils/resolveArgs.js.map +1 -1
  672. package/build/src/utils/scheme.js +40 -32
  673. package/build/src/utils/scheme.js.map +1 -1
  674. package/build/src/utils/stream.js +5 -3
  675. package/build/src/utils/stream.js.map +1 -1
  676. package/build/src/utils/strings.js +6 -4
  677. package/build/src/utils/strings.js.map +1 -1
  678. package/build/src/utils/tar.js +18 -14
  679. package/build/src/utils/tar.js.map +1 -1
  680. package/build/src/utils/telemetry/Telemetry.js +29 -27
  681. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  682. package/build/src/utils/telemetry/clients/FetchClient.js +15 -13
  683. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  684. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +26 -22
  685. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
  686. package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
  687. package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
  688. package/build/src/utils/telemetry/events.js +4 -2
  689. package/build/src/utils/telemetry/events.js.map +1 -1
  690. package/build/src/utils/telemetry/index.js +25 -29
  691. package/build/src/utils/telemetry/index.js.map +1 -1
  692. package/build/src/utils/telemetry/types.js.map +1 -1
  693. package/build/src/utils/telemetry/utils/constants.js +8 -4
  694. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  695. package/build/src/utils/telemetry/utils/context.js +18 -14
  696. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  697. package/build/src/utils/template.js +6 -4
  698. package/build/src/utils/template.js.map +1 -1
  699. package/build/src/utils/terminal.js +4 -2
  700. package/build/src/utils/terminal.js.map +1 -1
  701. package/build/src/utils/tsconfig/evaluateTsConfig.js +21 -17
  702. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  703. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -14
  704. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  705. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +7 -5
  706. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  707. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +14 -12
  708. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  709. package/build/src/utils/url.js +23 -13
  710. package/build/src/utils/url.js.map +1 -1
  711. package/build/src/utils/validateApplicationId.js +108 -86
  712. package/build/src/utils/validateApplicationId.js.map +1 -1
  713. package/build/src/utils/variadic.js +22 -16
  714. package/build/src/utils/variadic.js.map +1 -1
  715. package/build/src/whoami/index.js +11 -7
  716. package/build/src/whoami/index.js.map +1 -1
  717. package/build/src/whoami/whoamiAsync.js +11 -7
  718. package/build/src/whoami/whoamiAsync.js.map +1 -1
  719. package/package.json +17 -16
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.ts"],"sourcesContent":["import type Protocol from 'devtools-protocol';\n\nimport { MessageHandler } from '../MessageHandler';\nimport { getDebuggerType } from '../getDebuggerType';\nimport type { CdpMessage, DebuggerRequest, DeviceResponse } from '../types';\n\n/**\n * Vscode is trying to inject a script to configure Node environment variables.\n * This won't work in Hermes, but vscode will retry this 200x.\n * Avoid sending this \"spam\" to the device.\n *\n * @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeAttacherBase.ts#L22-L54\n */\nexport class VscodeRuntimeEvaluateHandler extends MessageHandler {\n isEnabled() {\n return getDebuggerType(this.debugger.userAgent) === 'vscode';\n }\n\n handleDebuggerMessage(message: DebuggerRequest<RuntimeEvaluate>) {\n if (message.method === 'Runtime.evaluate' && isVscodeNodeAttachEnvironmentInjection(message)) {\n return this.sendToDebugger<DeviceResponse<RuntimeEvaluate>>({\n id: message.id,\n result: {\n result: {\n type: 'string',\n value: `Hermes doesn't support environment variables through process.env`,\n },\n },\n });\n }\n\n if (message.method === 'Runtime.evaluate' && isVscodeNodeTelemetry(message)) {\n return this.sendToDebugger<DeviceResponse<RuntimeEvaluate>>({\n id: message.id,\n result: {\n result: {\n type: 'object',\n value: {\n processId: this.page.id,\n nodeVersion: process.version,\n architecture: process.arch,\n },\n },\n },\n });\n }\n\n return false;\n }\n}\n\n/** @see https://chromedevtools.github.io/devtools-protocol/v8/Runtime/#method-evaluate */\nexport type RuntimeEvaluate = CdpMessage<\n 'Runtime.evaluate',\n Protocol.Runtime.EvaluateRequest,\n Protocol.Runtime.EvaluateResponse\n>;\n\n/** @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeAttacherBase.ts#L22-L54 */\nfunction isVscodeNodeAttachEnvironmentInjection(message: DebuggerRequest<RuntimeEvaluate>) {\n return (\n message.params?.expression.includes(`typeof process==='undefined'`) &&\n message.params?.expression.includes(`'process not defined'`) &&\n message.params?.expression.includes(`process.env[\"NODE_OPTIONS\"]`)\n );\n}\n\n/** @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeLauncherBase.ts#L523-L531 */\nfunction isVscodeNodeTelemetry(message: DebuggerRequest<RuntimeEvaluate>) {\n return (\n message.params?.expression.includes(`typeof process === 'undefined'`) &&\n message.params?.expression.includes(`'process not defined'`) &&\n message.params?.expression.includes(`process.pid`) &&\n message.params?.expression.includes(`process.version`) &&\n message.params?.expression.includes(`process.arch`)\n );\n}\n"],"names":["VscodeRuntimeEvaluateHandler","MessageHandler","isEnabled","getDebuggerType","debugger","userAgent","handleDebuggerMessage","message","method","isVscodeNodeAttachEnvironmentInjection","sendToDebugger","id","result","type","value","isVscodeNodeTelemetry","processId","page","nodeVersion","process","version","architecture","arch","params","expression","includes"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.ts"],"sourcesContent":["import type Protocol from 'devtools-protocol';\n\nimport { MessageHandler } from '../MessageHandler';\nimport { getDebuggerType } from '../getDebuggerType';\nimport type { CdpMessage, DebuggerRequest, DeviceResponse } from '../types';\n\n/**\n * Vscode is trying to inject a script to configure Node environment variables.\n * This won't work in Hermes, but vscode will retry this 200x.\n * Avoid sending this \"spam\" to the device.\n *\n * @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeAttacherBase.ts#L22-L54\n */\nexport class VscodeRuntimeEvaluateHandler extends MessageHandler {\n isEnabled() {\n return getDebuggerType(this.debugger.userAgent) === 'vscode';\n }\n\n handleDebuggerMessage(message: DebuggerRequest<RuntimeEvaluate>) {\n if (message.method === 'Runtime.evaluate' && isVscodeNodeAttachEnvironmentInjection(message)) {\n return this.sendToDebugger<DeviceResponse<RuntimeEvaluate>>({\n id: message.id,\n result: {\n result: {\n type: 'string',\n value: `Hermes doesn't support environment variables through process.env`,\n },\n },\n });\n }\n\n if (message.method === 'Runtime.evaluate' && isVscodeNodeTelemetry(message)) {\n return this.sendToDebugger<DeviceResponse<RuntimeEvaluate>>({\n id: message.id,\n result: {\n result: {\n type: 'object',\n value: {\n processId: this.page.id,\n nodeVersion: process.version,\n architecture: process.arch,\n },\n },\n },\n });\n }\n\n return false;\n }\n}\n\n/** @see https://chromedevtools.github.io/devtools-protocol/v8/Runtime/#method-evaluate */\nexport type RuntimeEvaluate = CdpMessage<\n 'Runtime.evaluate',\n Protocol.Runtime.EvaluateRequest,\n Protocol.Runtime.EvaluateResponse\n>;\n\n/** @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeAttacherBase.ts#L22-L54 */\nfunction isVscodeNodeAttachEnvironmentInjection(message: DebuggerRequest<RuntimeEvaluate>) {\n return (\n message.params?.expression.includes(`typeof process==='undefined'`) &&\n message.params?.expression.includes(`'process not defined'`) &&\n message.params?.expression.includes(`process.env[\"NODE_OPTIONS\"]`)\n );\n}\n\n/** @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeLauncherBase.ts#L523-L531 */\nfunction isVscodeNodeTelemetry(message: DebuggerRequest<RuntimeEvaluate>) {\n return (\n message.params?.expression.includes(`typeof process === 'undefined'`) &&\n message.params?.expression.includes(`'process not defined'`) &&\n message.params?.expression.includes(`process.pid`) &&\n message.params?.expression.includes(`process.version`) &&\n message.params?.expression.includes(`process.arch`)\n );\n}\n"],"names":["VscodeRuntimeEvaluateHandler","MessageHandler","isEnabled","getDebuggerType","debugger","userAgent","handleDebuggerMessage","message","method","isVscodeNodeAttachEnvironmentInjection","sendToDebugger","id","result","type","value","isVscodeNodeTelemetry","processId","page","nodeVersion","process","version","architecture","arch","params","expression","includes"],"mappings":";;;;+BAaaA;;;eAAAA;;;gCAXkB;iCACC;AAUzB,MAAMA,qCAAqCC,8BAAc;IAC9DC,YAAY;QACV,OAAOC,IAAAA,gCAAe,EAAC,IAAI,CAACC,QAAQ,CAACC,SAAS,MAAM;IACtD;IAEAC,sBAAsBC,OAAyC,EAAE;QAC/D,IAAIA,QAAQC,MAAM,KAAK,sBAAsBC,uCAAuCF,UAAU;YAC5F,OAAO,IAAI,CAACG,cAAc,CAAkC;gBAC1DC,IAAIJ,QAAQI,EAAE;gBACdC,QAAQ;oBACNA,QAAQ;wBACNC,MAAM;wBACNC,OAAO,CAAC,gEAAgE,CAAC;oBAC3E;gBACF;YACF;QACF;QAEA,IAAIP,QAAQC,MAAM,KAAK,sBAAsBO,sBAAsBR,UAAU;YAC3E,OAAO,IAAI,CAACG,cAAc,CAAkC;gBAC1DC,IAAIJ,QAAQI,EAAE;gBACdC,QAAQ;oBACNA,QAAQ;wBACNC,MAAM;wBACNC,OAAO;4BACLE,WAAW,IAAI,CAACC,IAAI,CAACN,EAAE;4BACvBO,aAAaC,QAAQC,OAAO;4BAC5BC,cAAcF,QAAQG,IAAI;wBAC5B;oBACF;gBACF;YACF;QACF;QAEA,OAAO;IACT;AACF;AASA,iJAAiJ,GACjJ,SAASb,uCAAuCF,OAAyC;QAErFA,iBACAA,kBACAA;IAHF,OACEA,EAAAA,kBAAAA,QAAQgB,MAAM,qBAAdhB,gBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,QAClElB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,QAC3DlB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,2BAA2B,CAAC;AAErE;AAEA,mJAAmJ,GACnJ,SAASV,sBAAsBR,OAAyC;QAEpEA,iBACAA,kBACAA,kBACAA,kBACAA;IALF,OACEA,EAAAA,kBAAAA,QAAQgB,MAAM,qBAAdhB,gBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,QACpElB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,QAC3DlB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,WAAW,CAAC,QACjDlB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,eAAe,CAAC,QACrDlB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,YAAY,CAAC;AAEtD"}
@@ -4,35 +4,36 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "VscodeRuntimeGetPropertiesHandler", {
6
6
  enumerable: true,
7
- get: ()=>VscodeRuntimeGetPropertiesHandler
7
+ get: function() {
8
+ return VscodeRuntimeGetPropertiesHandler;
9
+ }
8
10
  });
9
- const _messageHandler = require("../MessageHandler");
11
+ const _MessageHandler = require("../MessageHandler");
10
12
  const _getDebuggerType = require("../getDebuggerType");
11
- class VscodeRuntimeGetPropertiesHandler extends _messageHandler.MessageHandler {
12
- /** Keep track of `Runtime.getProperties` responses to intercept, by request id */ interceptGetProperties = new Set();
13
+ class VscodeRuntimeGetPropertiesHandler extends _MessageHandler.MessageHandler {
13
14
  isEnabled() {
14
- return (0, _getDebuggerType.getDebuggerType)(this.debugger.userAgent) === "vscode";
15
+ return (0, _getDebuggerType.getDebuggerType)(this.debugger.userAgent) === 'vscode';
15
16
  }
16
17
  handleDebuggerMessage(message) {
17
- if (message.method === "Runtime.getProperties") {
18
+ if (message.method === 'Runtime.getProperties') {
18
19
  this.interceptGetProperties.add(message.id);
19
20
  }
20
21
  // Do not block propagation of this message
21
22
  return false;
22
23
  }
23
24
  handleDeviceMessage(message) {
24
- if ("id" in message && this.interceptGetProperties.has(message.id)) {
25
+ if ('id' in message && this.interceptGetProperties.has(message.id)) {
25
26
  this.interceptGetProperties.delete(message.id);
26
27
  for (const item of message.result.result ?? []){
27
- var ref;
28
+ var _item_value;
28
29
  // Force-fully format the properties description to be an empty string
29
30
  if (item.value) {
30
- item.value.description = item.value.description ?? "";
31
+ item.value.description = item.value.description ?? '';
31
32
  }
32
33
  // Avoid passing the `objectId` for symbol types.
33
34
  // When collapsing in vscode, it will fetch information about the symbol using the `objectId`.
34
35
  // The `Runtime.getProperties` request of the symbol hard-crashes Hermes.
35
- if (((ref = item.value) == null ? void 0 : ref.type) === "symbol" && item.value.objectId) {
36
+ if (((_item_value = item.value) == null ? void 0 : _item_value.type) === 'symbol' && item.value.objectId) {
36
37
  delete item.value.objectId;
37
38
  }
38
39
  }
@@ -40,6 +41,9 @@ class VscodeRuntimeGetPropertiesHandler extends _messageHandler.MessageHandler {
40
41
  // Do not block propagation of this message
41
42
  return false;
42
43
  }
44
+ constructor(...args){
45
+ super(...args), /** Keep track of `Runtime.getProperties` responses to intercept, by request id */ this.interceptGetProperties = new Set();
46
+ }
43
47
  }
44
48
 
45
49
  //# sourceMappingURL=VscodeRuntimeGetProperties.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.ts"],"sourcesContent":["import type Protocol from 'devtools-protocol';\n\nimport { MessageHandler } from '../MessageHandler';\nimport { getDebuggerType } from '../getDebuggerType';\nimport type { CdpMessage, DebuggerRequest, DeviceResponse } from '../types';\n\n/**\n * Vscode doesn't seem to work nicely with missing `description` fields on `RemoteObject` instances.\n * It also tries to invoke `Runtime.callFunctionOn` on `Symbol` types, which crashes Hermes.\n * This handler tries to compensate for these two separate issues.\n *\n * @see https://github.com/facebook/hermes/issues/114\n * @see https://github.com/microsoft/vscode-js-debug/issues/1583\n */\nexport class VscodeRuntimeGetPropertiesHandler extends MessageHandler {\n /** Keep track of `Runtime.getProperties` responses to intercept, by request id */\n interceptGetProperties = new Set<number>();\n\n isEnabled() {\n return getDebuggerType(this.debugger.userAgent) === 'vscode';\n }\n\n handleDebuggerMessage(message: DebuggerRequest<RuntimeGetProperties>) {\n if (message.method === 'Runtime.getProperties') {\n this.interceptGetProperties.add(message.id);\n }\n\n // Do not block propagation of this message\n return false;\n }\n\n handleDeviceMessage(message: DeviceResponse<RuntimeGetProperties>) {\n if ('id' in message && this.interceptGetProperties.has(message.id)) {\n this.interceptGetProperties.delete(message.id);\n\n for (const item of message.result.result ?? []) {\n // Force-fully format the properties description to be an empty string\n if (item.value) {\n item.value.description = item.value.description ?? '';\n }\n\n // Avoid passing the `objectId` for symbol types.\n // When collapsing in vscode, it will fetch information about the symbol using the `objectId`.\n // The `Runtime.getProperties` request of the symbol hard-crashes Hermes.\n if (item.value?.type === 'symbol' && item.value.objectId) {\n delete item.value.objectId;\n }\n }\n }\n\n // Do not block propagation of this message\n return false;\n }\n}\n\n/** @see https://chromedevtools.github.io/devtools-protocol/v8/Runtime/#method-getProperties */\nexport type RuntimeGetProperties = CdpMessage<\n 'Runtime.getProperties',\n Protocol.Runtime.GetPropertiesRequest,\n Protocol.Runtime.GetPropertiesResponse\n>;\n"],"names":["VscodeRuntimeGetPropertiesHandler","MessageHandler","interceptGetProperties","Set","isEnabled","getDebuggerType","debugger","userAgent","handleDebuggerMessage","message","method","add","id","handleDeviceMessage","has","delete","item","result","value","description","type","objectId"],"mappings":"AAAA;;;;+BAcaA,mCAAiC;;aAAjCA,iCAAiC;;gCAZf,mBAAmB;iCAClB,oBAAoB;AAW7C,MAAMA,iCAAiC,SAASC,eAAc,eAAA;IACnE,gFAAgF,GAChFC,sBAAsB,GAAG,IAAIC,GAAG,EAAU,CAAC;IAE3CC,SAAS,GAAG;QACV,OAAOC,IAAAA,gBAAe,gBAAA,EAAC,IAAI,CAACC,QAAQ,CAACC,SAAS,CAAC,KAAK,QAAQ,CAAC;IAC/D;IAEAC,qBAAqB,CAACC,OAA8C,EAAE;QACpE,IAAIA,OAAO,CAACC,MAAM,KAAK,uBAAuB,EAAE;YAC9C,IAAI,CAACR,sBAAsB,CAACS,GAAG,CAACF,OAAO,CAACG,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,2CAA2C;QAC3C,OAAO,KAAK,CAAC;IACf;IAEAC,mBAAmB,CAACJ,OAA6C,EAAE;QACjE,IAAI,IAAI,IAAIA,OAAO,IAAI,IAAI,CAACP,sBAAsB,CAACY,GAAG,CAACL,OAAO,CAACG,EAAE,CAAC,EAAE;YAClE,IAAI,CAACV,sBAAsB,CAACa,MAAM,CAACN,OAAO,CAACG,EAAE,CAAC,CAAC;YAE/C,KAAK,MAAMI,IAAI,IAAIP,OAAO,CAACQ,MAAM,CAACA,MAAM,IAAI,EAAE,CAAE;oBAS1CD,GAAU;gBARd,sEAAsE;gBACtE,IAAIA,IAAI,CAACE,KAAK,EAAE;oBACdF,IAAI,CAACE,KAAK,CAACC,WAAW,GAAGH,IAAI,CAACE,KAAK,CAACC,WAAW,IAAI,EAAE,CAAC;gBACxD,CAAC;gBAED,iDAAiD;gBACjD,8FAA8F;gBAC9F,yEAAyE;gBACzE,IAAIH,CAAAA,CAAAA,GAAU,GAAVA,IAAI,CAACE,KAAK,SAAM,GAAhBF,KAAAA,CAAgB,GAAhBA,GAAU,CAAEI,IAAI,CAAA,KAAK,QAAQ,IAAIJ,IAAI,CAACE,KAAK,CAACG,QAAQ,EAAE;oBACxD,OAAOL,IAAI,CAACE,KAAK,CAACG,QAAQ,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,OAAO,KAAK,CAAC;IACf;CACD"}
1
+ {"version":3,"sources":["../../../../../../../src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.ts"],"sourcesContent":["import type Protocol from 'devtools-protocol';\n\nimport { MessageHandler } from '../MessageHandler';\nimport { getDebuggerType } from '../getDebuggerType';\nimport type { CdpMessage, DebuggerRequest, DeviceResponse } from '../types';\n\n/**\n * Vscode doesn't seem to work nicely with missing `description` fields on `RemoteObject` instances.\n * It also tries to invoke `Runtime.callFunctionOn` on `Symbol` types, which crashes Hermes.\n * This handler tries to compensate for these two separate issues.\n *\n * @see https://github.com/facebook/hermes/issues/114\n * @see https://github.com/microsoft/vscode-js-debug/issues/1583\n */\nexport class VscodeRuntimeGetPropertiesHandler extends MessageHandler {\n /** Keep track of `Runtime.getProperties` responses to intercept, by request id */\n interceptGetProperties = new Set<number>();\n\n isEnabled() {\n return getDebuggerType(this.debugger.userAgent) === 'vscode';\n }\n\n handleDebuggerMessage(message: DebuggerRequest<RuntimeGetProperties>) {\n if (message.method === 'Runtime.getProperties') {\n this.interceptGetProperties.add(message.id);\n }\n\n // Do not block propagation of this message\n return false;\n }\n\n handleDeviceMessage(message: DeviceResponse<RuntimeGetProperties>) {\n if ('id' in message && this.interceptGetProperties.has(message.id)) {\n this.interceptGetProperties.delete(message.id);\n\n for (const item of message.result.result ?? []) {\n // Force-fully format the properties description to be an empty string\n if (item.value) {\n item.value.description = item.value.description ?? '';\n }\n\n // Avoid passing the `objectId` for symbol types.\n // When collapsing in vscode, it will fetch information about the symbol using the `objectId`.\n // The `Runtime.getProperties` request of the symbol hard-crashes Hermes.\n if (item.value?.type === 'symbol' && item.value.objectId) {\n delete item.value.objectId;\n }\n }\n }\n\n // Do not block propagation of this message\n return false;\n }\n}\n\n/** @see https://chromedevtools.github.io/devtools-protocol/v8/Runtime/#method-getProperties */\nexport type RuntimeGetProperties = CdpMessage<\n 'Runtime.getProperties',\n Protocol.Runtime.GetPropertiesRequest,\n Protocol.Runtime.GetPropertiesResponse\n>;\n"],"names":["VscodeRuntimeGetPropertiesHandler","MessageHandler","isEnabled","getDebuggerType","debugger","userAgent","handleDebuggerMessage","message","method","interceptGetProperties","add","id","handleDeviceMessage","has","delete","item","result","value","description","type","objectId","Set"],"mappings":";;;;+BAcaA;;;eAAAA;;;gCAZkB;iCACC;AAWzB,MAAMA,0CAA0CC,8BAAc;IAInEC,YAAY;QACV,OAAOC,IAAAA,gCAAe,EAAC,IAAI,CAACC,QAAQ,CAACC,SAAS,MAAM;IACtD;IAEAC,sBAAsBC,OAA8C,EAAE;QACpE,IAAIA,QAAQC,MAAM,KAAK,yBAAyB;YAC9C,IAAI,CAACC,sBAAsB,CAACC,GAAG,CAACH,QAAQI,EAAE;QAC5C;QAEA,2CAA2C;QAC3C,OAAO;IACT;IAEAC,oBAAoBL,OAA6C,EAAE;QACjE,IAAI,QAAQA,WAAW,IAAI,CAACE,sBAAsB,CAACI,GAAG,CAACN,QAAQI,EAAE,GAAG;YAClE,IAAI,CAACF,sBAAsB,CAACK,MAAM,CAACP,QAAQI,EAAE;YAE7C,KAAK,MAAMI,QAAQR,QAAQS,MAAM,CAACA,MAAM,IAAI,EAAE,CAAE;oBAS1CD;gBARJ,sEAAsE;gBACtE,IAAIA,KAAKE,KAAK,EAAE;oBACdF,KAAKE,KAAK,CAACC,WAAW,GAAGH,KAAKE,KAAK,CAACC,WAAW,IAAI;gBACrD;gBAEA,iDAAiD;gBACjD,8FAA8F;gBAC9F,yEAAyE;gBACzE,IAAIH,EAAAA,cAAAA,KAAKE,KAAK,qBAAVF,YAAYI,IAAI,MAAK,YAAYJ,KAAKE,KAAK,CAACG,QAAQ,EAAE;oBACxD,OAAOL,KAAKE,KAAK,CAACG,QAAQ;gBAC5B;YACF;QACF;QAEA,2CAA2C;QAC3C,OAAO;IACT;;QAtCK,gBACL,gFAAgF,QAChFX,yBAAyB,IAAIY;;AAqC/B"}
@@ -4,13 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "pageIsSupported", {
6
6
  enumerable: true,
7
- get: ()=>pageIsSupported
7
+ get: function() {
8
+ return pageIsSupported;
9
+ }
8
10
  });
9
11
  function pageIsSupported(page) {
10
- var ref;
12
+ var _page_reactNative;
11
13
  // @ts-expect-error No good way to filter this properly in TypeScript
12
- const capabilities = page.capabilities ?? ((ref = page.reactNative) == null ? void 0 : ref.capabilities) ?? {};
13
- return page.title === "React Native Experimental (Improved Chrome Reloads)" || capabilities.nativePageReloads === true;
14
+ const capabilities = page.capabilities ?? ((_page_reactNative = page.reactNative) == null ? void 0 : _page_reactNative.capabilities) ?? {};
15
+ return page.title === 'React Native Experimental (Improved Chrome Reloads)' || capabilities.nativePageReloads === true;
14
16
  }
15
17
 
16
18
  //# sourceMappingURL=pageIsSupported.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/metro/debugging/pageIsSupported.ts"],"sourcesContent":["import { Page } from './types';\n\ntype DevicePageInternal = Pick<Page, 'title' | 'capabilities'>;\ntype DevicePageResponse = {\n title: string;\n reactNative?: {\n logicalDeviceId: string;\n capabilities: Page['capabilities'];\n };\n};\n\n/**\n * Determine if a page debug target is supported by our debugging extensions.\n * If it's not, the extended CDP handlers will not be enabled.\n */\nexport function pageIsSupported(page: DevicePageInternal | DevicePageResponse): boolean {\n // @ts-expect-error No good way to filter this properly in TypeScript\n const capabilities = page.capabilities ?? page.reactNative?.capabilities ?? {};\n\n return (\n page.title === 'React Native Experimental (Improved Chrome Reloads)' ||\n capabilities.nativePageReloads === true\n );\n}\n"],"names":["pageIsSupported","page","capabilities","reactNative","title","nativePageReloads"],"mappings":"AAAA;;;;+BAegBA,iBAAe;;aAAfA,eAAe;;AAAxB,SAASA,eAAe,CAACC,IAA6C,EAAW;QAE5CA,GAAgB;IAD1D,qEAAqE;IACrE,MAAMC,YAAY,GAAGD,IAAI,CAACC,YAAY,IAAID,CAAAA,CAAAA,GAAgB,GAAhBA,IAAI,CAACE,WAAW,SAAc,GAA9BF,KAAAA,CAA8B,GAA9BA,GAAgB,CAAEC,YAAY,CAAA,IAAI,EAAE,AAAC;IAE/E,OACED,IAAI,CAACG,KAAK,KAAK,qDAAqD,IACpEF,YAAY,CAACG,iBAAiB,KAAK,IAAI,CACvC;AACJ,CAAC"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/metro/debugging/pageIsSupported.ts"],"sourcesContent":["import { Page } from './types';\n\ntype DevicePageInternal = Pick<Page, 'title' | 'capabilities'>;\ntype DevicePageResponse = {\n title: string;\n reactNative?: {\n logicalDeviceId: string;\n capabilities: Page['capabilities'];\n };\n};\n\n/**\n * Determine if a page debug target is supported by our debugging extensions.\n * If it's not, the extended CDP handlers will not be enabled.\n */\nexport function pageIsSupported(page: DevicePageInternal | DevicePageResponse): boolean {\n // @ts-expect-error No good way to filter this properly in TypeScript\n const capabilities = page.capabilities ?? page.reactNative?.capabilities ?? {};\n\n return (\n page.title === 'React Native Experimental (Improved Chrome Reloads)' ||\n capabilities.nativePageReloads === true\n );\n}\n"],"names":["pageIsSupported","page","capabilities","reactNative","title","nativePageReloads"],"mappings":";;;;+BAegBA;;;eAAAA;;;AAAT,SAASA,gBAAgBC,IAA6C;QAEjCA;IAD1C,qEAAqE;IACrE,MAAMC,eAAeD,KAAKC,YAAY,MAAID,oBAAAA,KAAKE,WAAW,qBAAhBF,kBAAkBC,YAAY,KAAI,CAAC;IAE7E,OACED,KAAKG,KAAK,KAAK,yDACfF,aAAaG,iBAAiB,KAAK;AAEvC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/metro/debugging/types.ts"],"sourcesContent":["import type { CustomMessageHandlerConnection } from '@react-native/dev-middleware';\n\nexport type Connection = CustomMessageHandlerConnection;\nexport type DeviceMetadata = Connection['device'];\nexport type DebuggerMetadata = Connection['debugger'];\nexport type Page = Connection['page'];\nexport type TargetCapabilityFlags = Page['capabilities'];\n\n/**\n * The outline of a basic Chrome DevTools Protocol request, either from device or debugger.\n * Both the request and response parameters could be optional, use `never` to enforce these fields.\n */\nexport type CdpMessage<\n Method extends string = string,\n Request extends object = object,\n Response extends object = object,\n> = {\n id: number;\n method: Method;\n params: Request;\n result: Response;\n};\n\nexport type DeviceRequest<M extends CdpMessage = CdpMessage> = Pick<M, 'method' | 'params'>;\nexport type DeviceResponse<M extends CdpMessage = CdpMessage> = Pick<M, 'id' | 'result'>;\n\nexport type DebuggerRequest<M extends CdpMessage = CdpMessage> = Pick<\n M,\n 'id' | 'method' | 'params'\n>;\nexport type DebuggerResponse<M extends CdpMessage = CdpMessage> = Pick<M, 'result'>;\n"],"names":[],"mappings":"AAAA"}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -4,11 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "createEventsSocket", {
6
6
  enumerable: true,
7
- get: ()=>createEventsSocket
7
+ get: function() {
8
+ return createEventsSocket;
9
+ }
8
10
  });
9
- function _prettyFormat() {
11
+ function _prettyformat() {
10
12
  const data = require("pretty-format");
11
- _prettyFormat = function() {
13
+ _prettyformat = function() {
12
14
  return data;
13
15
  };
14
16
  return data;
@@ -23,31 +25,31 @@ function _ws() {
23
25
  const _createSocketBroadcaster = require("./utils/createSocketBroadcaster");
24
26
  const _createSocketMap = require("./utils/createSocketMap");
25
27
  const _socketMessages = require("./utils/socketMessages");
26
- const debug = require("debug")("expo:metro:devserver:eventsSocket");
28
+ const debug = require('debug')('expo:metro:devserver:eventsSocket');
27
29
  function createEventsSocket(options) {
28
30
  const clients = (0, _createSocketMap.createSocketMap)();
29
31
  const broadcast = (0, _createSocketBroadcaster.createBroadcaster)(clients.map);
30
32
  const server = new (_ws()).WebSocketServer({
31
33
  noServer: true,
32
- verifyClient ({ origin }) {
34
+ verifyClient ({ origin }) {
33
35
  // This exposes the full JS logs and enables issuing commands like reload
34
36
  // so let's make sure only locally running stuff can connect to it
35
37
  // origin is only checked if it is set, e.g. when the request is made from a (CORS) browser
36
38
  // any 'back-end' connection isn't CORS at all, and has full control over the origin header,
37
39
  // so there is no point in checking it security wise
38
- return !origin || origin.startsWith("http://localhost:") || origin.startsWith("file:");
40
+ return !origin || origin.startsWith('http://localhost:') || origin.startsWith('file:');
39
41
  }
40
42
  });
41
- server.on("connection", (socket)=>{
43
+ server.on('connection', (socket)=>{
42
44
  const client = clients.registerSocket(socket);
43
45
  // Register disconnect handlers
44
- socket.on("close", client.terminate);
45
- socket.on("error", client.terminate);
46
+ socket.on('close', client.terminate);
47
+ socket.on('error', client.terminate);
46
48
  // Register message handler
47
- socket.on("message", (data, isBinary)=>{
49
+ socket.on('message', (data, isBinary)=>{
48
50
  const message = (0, _socketMessages.parseRawMessage)(data, isBinary);
49
51
  if (!message) return;
50
- if (message.type === "command") {
52
+ if (message.type === 'command') {
51
53
  options.broadcast(message.command, message.params);
52
54
  } else {
53
55
  debug(`Received unknown message type: ${message.type}`);
@@ -55,7 +57,7 @@ function createEventsSocket(options) {
55
57
  });
56
58
  });
57
59
  return {
58
- endpoint: "/events",
60
+ endpoint: '/events',
59
61
  server: new (_ws()).WebSocketServer({
60
62
  noServer: true
61
63
  }),
@@ -73,7 +75,7 @@ function serializeMetroEvent(message) {
73
75
  if (message && message.error && message.error instanceof Error) {
74
76
  return (0, _socketMessages.serializeMessage)({
75
77
  ...message,
76
- error: (0, _prettyFormat().format)(message.error, {
78
+ error: (0, _prettyformat().format)(message.error, {
77
79
  escapeString: true,
78
80
  highlight: true,
79
81
  maxDepth: 3,
@@ -81,16 +83,16 @@ function serializeMetroEvent(message) {
81
83
  })
82
84
  });
83
85
  }
84
- if (message && message.type === "client_log") {
86
+ if (message && message.type === 'client_log') {
85
87
  return (0, _socketMessages.serializeMessage)({
86
88
  ...message,
87
- data: message.data.map((item)=>typeof item === "string" ? item : (0, _prettyFormat().format)(item, {
89
+ data: message.data.map((item)=>typeof item === 'string' ? item : (0, _prettyformat().format)(item, {
88
90
  escapeString: true,
89
91
  highlight: true,
90
92
  maxDepth: 3,
91
93
  min: true,
92
94
  plugins: [
93
- _prettyFormat().plugins.ReactElement
95
+ _prettyformat().plugins.ReactElement
94
96
  ]
95
97
  }))
96
98
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createEventSocket.ts"],"sourcesContent":["import { format as prettyFormat, plugins as prettyPlugins } from 'pretty-format';\nimport { WebSocketServer } from 'ws';\n\nimport type { createMessagesSocket } from './createMessageSocket';\nimport { createBroadcaster } from './utils/createSocketBroadcaster';\nimport { createSocketMap } from './utils/createSocketMap';\nimport { parseRawMessage, serializeMessage } from './utils/socketMessages';\n\nconst debug = require('debug')('expo:metro:devserver:eventsSocket') as typeof console.log;\n\ntype EventsSocketOptions = {\n /** The message endpoint broadcaster, used to relay commands from Metro */\n broadcast: ReturnType<typeof createMessagesSocket>['broadcast'];\n};\n\n/**\n * Metro events server that dispatches all Metro events to connected clients.\n * This includes logs, errors, bundling progression, etc.\n */\nexport function createEventsSocket(options: EventsSocketOptions) {\n const clients = createSocketMap();\n const broadcast = createBroadcaster(clients.map);\n\n const server = new WebSocketServer({\n noServer: true,\n verifyClient({ origin }: { origin: string }) {\n // This exposes the full JS logs and enables issuing commands like reload\n // so let's make sure only locally running stuff can connect to it\n // origin is only checked if it is set, e.g. when the request is made from a (CORS) browser\n // any 'back-end' connection isn't CORS at all, and has full control over the origin header,\n // so there is no point in checking it security wise\n return !origin || origin.startsWith('http://localhost:') || origin.startsWith('file:');\n },\n });\n\n server.on('connection', (socket) => {\n const client = clients.registerSocket(socket);\n\n // Register disconnect handlers\n socket.on('close', client.terminate);\n socket.on('error', client.terminate);\n // Register message handler\n socket.on('message', (data, isBinary) => {\n const message = parseRawMessage<Command>(data, isBinary);\n if (!message) return;\n\n if (message.type === 'command') {\n options.broadcast(message.command, message.params);\n } else {\n debug(`Received unknown message type: ${message.type}`);\n }\n });\n });\n\n return {\n endpoint: '/events' as const,\n server: new WebSocketServer({ noServer: true }),\n reportMetroEvent: (event: any) => {\n // Avoid serializing data if there are no clients\n if (!clients.map.size) {\n return;\n }\n\n return broadcast(null, serializeMetroEvent(event));\n },\n };\n}\n\ntype Command = {\n type: 'command';\n command: string;\n params?: any;\n};\n\nfunction serializeMetroEvent(message: any): string {\n // Some types reported by Metro are not serializable\n if (message && message.error && message.error instanceof Error) {\n return serializeMessage({\n ...message,\n error: prettyFormat(message.error, {\n escapeString: true,\n highlight: true,\n maxDepth: 3,\n min: true,\n }),\n });\n }\n\n if (message && message.type === 'client_log') {\n return serializeMessage({\n ...message,\n data: message.data.map((item: any) =>\n typeof item === 'string'\n ? item\n : prettyFormat(item, {\n escapeString: true,\n highlight: true,\n maxDepth: 3,\n min: true,\n plugins: [prettyPlugins.ReactElement],\n })\n ),\n });\n }\n\n return serializeMessage(message);\n}\n"],"names":["createEventsSocket","debug","require","options","clients","createSocketMap","broadcast","createBroadcaster","map","server","WebSocketServer","noServer","verifyClient","origin","startsWith","on","socket","client","registerSocket","terminate","data","isBinary","message","parseRawMessage","type","command","params","endpoint","reportMetroEvent","event","size","serializeMetroEvent","error","Error","serializeMessage","prettyFormat","escapeString","highlight","maxDepth","min","item","plugins","prettyPlugins","ReactElement"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createEventSocket.ts"],"sourcesContent":["import { format as prettyFormat, plugins as prettyPlugins } from 'pretty-format';\nimport { WebSocketServer } from 'ws';\n\nimport type { createMessagesSocket } from './createMessageSocket';\nimport { createBroadcaster } from './utils/createSocketBroadcaster';\nimport { createSocketMap } from './utils/createSocketMap';\nimport { parseRawMessage, serializeMessage } from './utils/socketMessages';\n\nconst debug = require('debug')('expo:metro:devserver:eventsSocket') as typeof console.log;\n\ntype EventsSocketOptions = {\n /** The message endpoint broadcaster, used to relay commands from Metro */\n broadcast: ReturnType<typeof createMessagesSocket>['broadcast'];\n};\n\n/**\n * Metro events server that dispatches all Metro events to connected clients.\n * This includes logs, errors, bundling progression, etc.\n */\nexport function createEventsSocket(options: EventsSocketOptions) {\n const clients = createSocketMap();\n const broadcast = createBroadcaster(clients.map);\n\n const server = new WebSocketServer({\n noServer: true,\n verifyClient({ origin }: { origin: string }) {\n // This exposes the full JS logs and enables issuing commands like reload\n // so let's make sure only locally running stuff can connect to it\n // origin is only checked if it is set, e.g. when the request is made from a (CORS) browser\n // any 'back-end' connection isn't CORS at all, and has full control over the origin header,\n // so there is no point in checking it security wise\n return !origin || origin.startsWith('http://localhost:') || origin.startsWith('file:');\n },\n });\n\n server.on('connection', (socket) => {\n const client = clients.registerSocket(socket);\n\n // Register disconnect handlers\n socket.on('close', client.terminate);\n socket.on('error', client.terminate);\n // Register message handler\n socket.on('message', (data, isBinary) => {\n const message = parseRawMessage<Command>(data, isBinary);\n if (!message) return;\n\n if (message.type === 'command') {\n options.broadcast(message.command, message.params);\n } else {\n debug(`Received unknown message type: ${message.type}`);\n }\n });\n });\n\n return {\n endpoint: '/events' as const,\n server: new WebSocketServer({ noServer: true }),\n reportMetroEvent: (event: any) => {\n // Avoid serializing data if there are no clients\n if (!clients.map.size) {\n return;\n }\n\n return broadcast(null, serializeMetroEvent(event));\n },\n };\n}\n\ntype Command = {\n type: 'command';\n command: string;\n params?: any;\n};\n\nfunction serializeMetroEvent(message: any): string {\n // Some types reported by Metro are not serializable\n if (message && message.error && message.error instanceof Error) {\n return serializeMessage({\n ...message,\n error: prettyFormat(message.error, {\n escapeString: true,\n highlight: true,\n maxDepth: 3,\n min: true,\n }),\n });\n }\n\n if (message && message.type === 'client_log') {\n return serializeMessage({\n ...message,\n data: message.data.map((item: any) =>\n typeof item === 'string'\n ? item\n : prettyFormat(item, {\n escapeString: true,\n highlight: true,\n maxDepth: 3,\n min: true,\n plugins: [prettyPlugins.ReactElement],\n })\n ),\n });\n }\n\n return serializeMessage(message);\n}\n"],"names":["createEventsSocket","debug","require","options","clients","createSocketMap","broadcast","createBroadcaster","map","server","WebSocketServer","noServer","verifyClient","origin","startsWith","on","socket","client","registerSocket","terminate","data","isBinary","message","parseRawMessage","type","command","params","endpoint","reportMetroEvent","event","size","serializeMetroEvent","error","Error","serializeMessage","prettyFormat","escapeString","highlight","maxDepth","min","item","plugins","prettyPlugins","ReactElement"],"mappings":";;;;+BAmBgBA;;;eAAAA;;;;yBAnBiD;;;;;;;yBACjC;;;;;;yCAGE;iCACF;gCACkB;AAElD,MAAMC,QAAQC,QAAQ,SAAS;AAWxB,SAASF,mBAAmBG,OAA4B;IAC7D,MAAMC,UAAUC,IAAAA,gCAAe;IAC/B,MAAMC,YAAYC,IAAAA,0CAAiB,EAACH,QAAQI,GAAG;IAE/C,MAAMC,SAAS,IAAIC,CAAAA,KAAc,iBAAC,CAAC;QACjCC,UAAU;QACVC,cAAa,EAAEC,MAAM,EAAsB;YACzC,yEAAyE;YACzE,kEAAkE;YAClE,2FAA2F;YAC3F,4FAA4F;YAC5F,oDAAoD;YACpD,OAAO,CAACA,UAAUA,OAAOC,UAAU,CAAC,wBAAwBD,OAAOC,UAAU,CAAC;QAChF;IACF;IAEAL,OAAOM,EAAE,CAAC,cAAc,CAACC;QACvB,MAAMC,SAASb,QAAQc,cAAc,CAACF;QAEtC,+BAA+B;QAC/BA,OAAOD,EAAE,CAAC,SAASE,OAAOE,SAAS;QACnCH,OAAOD,EAAE,CAAC,SAASE,OAAOE,SAAS;QACnC,2BAA2B;QAC3BH,OAAOD,EAAE,CAAC,WAAW,CAACK,MAAMC;YAC1B,MAAMC,UAAUC,IAAAA,+BAAe,EAAUH,MAAMC;YAC/C,IAAI,CAACC,SAAS;YAEd,IAAIA,QAAQE,IAAI,KAAK,WAAW;gBAC9BrB,QAAQG,SAAS,CAACgB,QAAQG,OAAO,EAAEH,QAAQI,MAAM;YACnD,OAAO;gBACLzB,MAAM,CAAC,+BAA+B,EAAEqB,QAAQE,IAAI,EAAE;YACxD;QACF;IACF;IAEA,OAAO;QACLG,UAAU;QACVlB,QAAQ,IAAIC,CAAAA,KAAc,iBAAC,CAAC;YAAEC,UAAU;QAAK;QAC7CiB,kBAAkB,CAACC;YACjB,iDAAiD;YACjD,IAAI,CAACzB,QAAQI,GAAG,CAACsB,IAAI,EAAE;gBACrB;YACF;YAEA,OAAOxB,UAAU,MAAMyB,oBAAoBF;QAC7C;IACF;AACF;AAQA,SAASE,oBAAoBT,OAAY;IACvC,oDAAoD;IACpD,IAAIA,WAAWA,QAAQU,KAAK,IAAIV,QAAQU,KAAK,YAAYC,OAAO;QAC9D,OAAOC,IAAAA,gCAAgB,EAAC;YACtB,GAAGZ,OAAO;YACVU,OAAOG,IAAAA,sBAAY,EAACb,QAAQU,KAAK,EAAE;gBACjCI,cAAc;gBACdC,WAAW;gBACXC,UAAU;gBACVC,KAAK;YACP;QACF;IACF;IAEA,IAAIjB,WAAWA,QAAQE,IAAI,KAAK,cAAc;QAC5C,OAAOU,IAAAA,gCAAgB,EAAC;YACtB,GAAGZ,OAAO;YACVF,MAAME,QAAQF,IAAI,CAACZ,GAAG,CAAC,CAACgC,OACtB,OAAOA,SAAS,WACZA,OACAL,IAAAA,sBAAY,EAACK,MAAM;oBACjBJ,cAAc;oBACdC,WAAW;oBACXC,UAAU;oBACVC,KAAK;oBACLE,SAAS;wBAACC,uBAAa,CAACC,YAAY;qBAAC;gBACvC;QAER;IACF;IAEA,OAAOT,IAAAA,gCAAgB,EAACZ;AAC1B"}
@@ -4,11 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "createMessagesSocket", {
6
6
  enumerable: true,
7
- get: ()=>createMessagesSocket
7
+ get: function() {
8
+ return createMessagesSocket;
9
+ }
8
10
  });
9
- function _nodeUrl() {
11
+ function _nodeurl() {
10
12
  const data = require("node:url");
11
- _nodeUrl = function() {
13
+ _nodeurl = function() {
12
14
  return data;
13
15
  };
14
16
  return data;
@@ -29,23 +31,23 @@ function createMessagesSocket(options) {
29
31
  const server = new (_ws()).WebSocketServer({
30
32
  noServer: true
31
33
  });
32
- server.on("connection", (socket, req)=>{
34
+ server.on('connection', (socket, req)=>{
33
35
  const client = clients.registerSocket(socket);
34
36
  // Assign the query parameters to the socket, used for `getpeers` requests
35
37
  // NOTE(cedric): this looks like a legacy feature, might be able to drop it
36
38
  if (req.url) {
37
- Object.defineProperty(socket, "_upgradeQuery", {
38
- value: (0, _nodeUrl().parse)(req.url).query
39
+ Object.defineProperty(socket, '_upgradeQuery', {
40
+ value: (0, _nodeurl().parse)(req.url).query
39
41
  });
40
42
  }
41
43
  // Register disconnect handlers
42
- socket.on("close", client.terminate);
43
- socket.on("error", client.terminate);
44
+ socket.on('close', client.terminate);
45
+ socket.on('error', client.terminate);
44
46
  // Register message handler
45
- socket.on("message", createClientMessageHandler(socket, client.id, clients, broadcast));
47
+ socket.on('message', createClientMessageHandler(socket, client.id, clients, broadcast));
46
48
  });
47
49
  return {
48
- endpoint: "/message",
50
+ endpoint: '/message',
49
51
  server,
50
52
  broadcast: (method, params)=>{
51
53
  if (clients.map.size === 0) {
@@ -62,17 +64,17 @@ function createClientMessageHandler(socket, clientId, clients, broadcast) {
62
64
  function handleServerRequest(message) {
63
65
  // Ignore messages without identifiers, unable to link responses
64
66
  if (!message.id) return;
65
- if (message.method === "getid") {
67
+ if (message.method === 'getid') {
66
68
  return socket.send((0, _socketMessages.serializeMessage)({
67
69
  id: message.id,
68
70
  result: clientId
69
71
  }));
70
72
  }
71
- if (message.method === "getpeers") {
73
+ if (message.method === 'getpeers') {
72
74
  const peers = {};
73
75
  clients.map.forEach((peerSocket, peerSocketId)=>{
74
76
  if (peerSocketId !== clientId) {
75
- peers[peerSocketId] = "_upgradeQuery" in peerSocket ? peerSocket._upgradeQuery : {};
77
+ peers[peerSocketId] = '_upgradeQuery' in peerSocket ? peerSocket._upgradeQuery : {};
76
78
  }
77
79
  });
78
80
  return socket.send((0, _socketMessages.serializeMessage)({
@@ -90,11 +92,11 @@ function createClientMessageHandler(socket, clientId, clients, broadcast) {
90
92
  }
91
93
  // Handle incoming requests from clients
92
94
  if (messageIsRequest(message)) {
93
- var ref;
94
- if (message.target === "server") {
95
+ var _clients_findSocket;
96
+ if (message.target === 'server') {
95
97
  return handleServerRequest(message);
96
98
  }
97
- return (ref = clients.findSocket(message.target)) == null ? void 0 : ref.send((0, _socketMessages.serializeMessage)({
99
+ return (_clients_findSocket = clients.findSocket(message.target)) == null ? void 0 : _clients_findSocket.send((0, _socketMessages.serializeMessage)({
98
100
  method: message.method,
99
101
  params: message.params,
100
102
  id: !message.id ? undefined : {
@@ -105,8 +107,8 @@ function createClientMessageHandler(socket, clientId, clients, broadcast) {
105
107
  }
106
108
  // Handle incoming responses
107
109
  if (messageIsResponse(message)) {
108
- var ref1;
109
- return (ref1 = clients.findSocket(message.id.clientId)) == null ? void 0 : ref1.send((0, _socketMessages.serializeMessage)({
110
+ var _clients_findSocket1;
111
+ return (_clients_findSocket1 = clients.findSocket(message.id.clientId)) == null ? void 0 : _clients_findSocket1.send((0, _socketMessages.serializeMessage)({
110
112
  id: message.id.requestId,
111
113
  result: message.result,
112
114
  error: message.error
@@ -115,13 +117,13 @@ function createClientMessageHandler(socket, clientId, clients, broadcast) {
115
117
  };
116
118
  }
117
119
  function messageIsBroadcast(message) {
118
- return "method" in message && typeof message.method === "string" && (!("id" in message) || message.id === undefined) && (!("target" in message) || message.target === undefined);
120
+ return 'method' in message && typeof message.method === 'string' && (!('id' in message) || message.id === undefined) && (!('target' in message) || message.target === undefined);
119
121
  }
120
122
  function messageIsRequest(message) {
121
- return "method" in message && typeof message.method === "string" && "target" in message && typeof message.target === "string";
123
+ return 'method' in message && typeof message.method === 'string' && 'target' in message && typeof message.target === 'string';
122
124
  }
123
125
  function messageIsResponse(message) {
124
- return "id" in message && typeof message.id === "object" && typeof message.id.requestId !== "undefined" && typeof message.id.clientId === "string" && ("result" in message && !!message.result || "error" in message && !!message.error);
126
+ return 'id' in message && typeof message.id === 'object' && typeof message.id.requestId !== 'undefined' && typeof message.id.clientId === 'string' && ('result' in message && !!message.result || 'error' in message && !!message.error);
125
127
  }
126
128
 
127
129
  //# sourceMappingURL=createMessageSocket.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createMessageSocket.ts"],"sourcesContent":["import { parse } from 'node:url';\nimport { type WebSocket, WebSocketServer, type RawData as WebSocketRawData } from 'ws';\n\nimport { createBroadcaster } from './utils/createSocketBroadcaster';\nimport { createSocketMap, type SocketId } from './utils/createSocketMap';\nimport { parseRawMessage, serializeMessage } from './utils/socketMessages';\n\ntype MessageSocketOptions = {\n logger: {\n warn: (message: string) => any;\n };\n};\n\n/**\n * Client \"command\" server that dispatches basic commands to connected clients.\n * This basic client to client communication, reload, or open dev menu cli commands.\n */\nexport function createMessagesSocket(options: MessageSocketOptions) {\n const clients = createSocketMap();\n const broadcast = createBroadcaster(clients.map);\n\n const server = new WebSocketServer({ noServer: true });\n\n server.on('connection', (socket, req) => {\n const client = clients.registerSocket(socket);\n\n // Assign the query parameters to the socket, used for `getpeers` requests\n // NOTE(cedric): this looks like a legacy feature, might be able to drop it\n if (req.url) {\n Object.defineProperty(socket, '_upgradeQuery', {\n value: parse(req.url).query,\n });\n }\n\n // Register disconnect handlers\n socket.on('close', client.terminate);\n socket.on('error', client.terminate);\n // Register message handler\n socket.on('message', createClientMessageHandler(socket, client.id, clients, broadcast));\n });\n\n return {\n endpoint: '/message' as const,\n server,\n broadcast: (method: BroadcastMessage['method'], params?: BroadcastMessage['params']) => {\n if (clients.map.size === 0) {\n return options.logger.warn(\n `No apps connected. Sending \"${method}\" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.`\n );\n }\n\n broadcast(null, serializeMessage({ method, params }));\n },\n };\n}\n\nfunction createClientMessageHandler(\n socket: WebSocket,\n clientId: SocketId,\n clients: ReturnType<typeof createSocketMap>,\n broadcast: ReturnType<typeof createBroadcaster>\n) {\n function handleServerRequest(message: RequestMessage) {\n // Ignore messages without identifiers, unable to link responses\n if (!message.id) return;\n\n if (message.method === 'getid') {\n return socket.send(serializeMessage({ id: message.id, result: clientId }));\n }\n\n if (message.method === 'getpeers') {\n const peers: Record<string, any> = {};\n clients.map.forEach((peerSocket, peerSocketId) => {\n if (peerSocketId !== clientId) {\n peers[peerSocketId] = '_upgradeQuery' in peerSocket ? peerSocket._upgradeQuery : {};\n }\n });\n return socket.send(serializeMessage({ id: message.id, result: peers }));\n }\n }\n\n return (data: WebSocketRawData, isBinary: boolean) => {\n const message = parseRawMessage<IncomingMessage>(data, isBinary);\n if (!message) return;\n\n // Handle broadcast messages\n if (messageIsBroadcast(message)) {\n return broadcast(null, data.toString());\n }\n\n // Handle incoming requests from clients\n if (messageIsRequest(message)) {\n if (message.target === 'server') {\n return handleServerRequest(message);\n }\n\n return clients.findSocket(message.target)?.send(\n serializeMessage({\n method: message.method,\n params: message.params,\n id: !message.id\n ? undefined\n : {\n requestId: message.id,\n clientId,\n },\n })\n );\n }\n\n // Handle incoming responses\n if (messageIsResponse(message)) {\n return clients.findSocket(message.id.clientId)?.send(\n serializeMessage({\n id: message.id.requestId,\n result: message.result,\n error: message.error,\n })\n );\n }\n };\n}\n\ntype MessageId = {\n requestId: string;\n clientId: SocketId;\n};\n\ntype IncomingMessage = BroadcastMessage | RequestMessage | ResponseMessage;\n\ntype BroadcastMessage = {\n method: string;\n params?: Record<string, any>;\n};\n\ntype RequestMessage = {\n method: string;\n params?: Record<string, any>;\n target: string;\n id?: string;\n};\n\ntype ResponseMessage = {\n result?: any;\n error?: Error;\n id: MessageId;\n};\n\nfunction messageIsBroadcast(message: IncomingMessage): message is BroadcastMessage {\n return (\n 'method' in message &&\n typeof message.method === 'string' &&\n (!('id' in message) || message.id === undefined) &&\n (!('target' in message) || message.target === undefined)\n );\n}\n\nfunction messageIsRequest(message: IncomingMessage): message is RequestMessage {\n return (\n 'method' in message &&\n typeof message.method === 'string' &&\n 'target' in message &&\n typeof message.target === 'string'\n );\n}\n\nfunction messageIsResponse(message: IncomingMessage): message is ResponseMessage {\n return (\n 'id' in message &&\n typeof message.id === 'object' &&\n typeof message.id.requestId !== 'undefined' &&\n typeof message.id.clientId === 'string' &&\n (('result' in message && !!message.result) || ('error' in message && !!message.error))\n );\n}\n"],"names":["createMessagesSocket","options","clients","createSocketMap","broadcast","createBroadcaster","map","server","WebSocketServer","noServer","on","socket","req","client","registerSocket","url","Object","defineProperty","value","parse","query","terminate","createClientMessageHandler","id","endpoint","method","params","size","logger","warn","serializeMessage","clientId","handleServerRequest","message","send","result","peers","forEach","peerSocket","peerSocketId","_upgradeQuery","data","isBinary","parseRawMessage","messageIsBroadcast","toString","messageIsRequest","target","findSocket","undefined","requestId","messageIsResponse","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createMessageSocket.ts"],"sourcesContent":["import { parse } from 'node:url';\nimport { type WebSocket, WebSocketServer, type RawData as WebSocketRawData } from 'ws';\n\nimport { createBroadcaster } from './utils/createSocketBroadcaster';\nimport { createSocketMap, type SocketId } from './utils/createSocketMap';\nimport { parseRawMessage, serializeMessage } from './utils/socketMessages';\n\ntype MessageSocketOptions = {\n logger: {\n warn: (message: string) => any;\n };\n};\n\n/**\n * Client \"command\" server that dispatches basic commands to connected clients.\n * This basic client to client communication, reload, or open dev menu cli commands.\n */\nexport function createMessagesSocket(options: MessageSocketOptions) {\n const clients = createSocketMap();\n const broadcast = createBroadcaster(clients.map);\n\n const server = new WebSocketServer({ noServer: true });\n\n server.on('connection', (socket, req) => {\n const client = clients.registerSocket(socket);\n\n // Assign the query parameters to the socket, used for `getpeers` requests\n // NOTE(cedric): this looks like a legacy feature, might be able to drop it\n if (req.url) {\n Object.defineProperty(socket, '_upgradeQuery', {\n value: parse(req.url).query,\n });\n }\n\n // Register disconnect handlers\n socket.on('close', client.terminate);\n socket.on('error', client.terminate);\n // Register message handler\n socket.on('message', createClientMessageHandler(socket, client.id, clients, broadcast));\n });\n\n return {\n endpoint: '/message' as const,\n server,\n broadcast: (method: BroadcastMessage['method'], params?: BroadcastMessage['params']) => {\n if (clients.map.size === 0) {\n return options.logger.warn(\n `No apps connected. Sending \"${method}\" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.`\n );\n }\n\n broadcast(null, serializeMessage({ method, params }));\n },\n };\n}\n\nfunction createClientMessageHandler(\n socket: WebSocket,\n clientId: SocketId,\n clients: ReturnType<typeof createSocketMap>,\n broadcast: ReturnType<typeof createBroadcaster>\n) {\n function handleServerRequest(message: RequestMessage) {\n // Ignore messages without identifiers, unable to link responses\n if (!message.id) return;\n\n if (message.method === 'getid') {\n return socket.send(serializeMessage({ id: message.id, result: clientId }));\n }\n\n if (message.method === 'getpeers') {\n const peers: Record<string, any> = {};\n clients.map.forEach((peerSocket, peerSocketId) => {\n if (peerSocketId !== clientId) {\n peers[peerSocketId] = '_upgradeQuery' in peerSocket ? peerSocket._upgradeQuery : {};\n }\n });\n return socket.send(serializeMessage({ id: message.id, result: peers }));\n }\n }\n\n return (data: WebSocketRawData, isBinary: boolean) => {\n const message = parseRawMessage<IncomingMessage>(data, isBinary);\n if (!message) return;\n\n // Handle broadcast messages\n if (messageIsBroadcast(message)) {\n return broadcast(null, data.toString());\n }\n\n // Handle incoming requests from clients\n if (messageIsRequest(message)) {\n if (message.target === 'server') {\n return handleServerRequest(message);\n }\n\n return clients.findSocket(message.target)?.send(\n serializeMessage({\n method: message.method,\n params: message.params,\n id: !message.id\n ? undefined\n : {\n requestId: message.id,\n clientId,\n },\n })\n );\n }\n\n // Handle incoming responses\n if (messageIsResponse(message)) {\n return clients.findSocket(message.id.clientId)?.send(\n serializeMessage({\n id: message.id.requestId,\n result: message.result,\n error: message.error,\n })\n );\n }\n };\n}\n\ntype MessageId = {\n requestId: string;\n clientId: SocketId;\n};\n\ntype IncomingMessage = BroadcastMessage | RequestMessage | ResponseMessage;\n\ntype BroadcastMessage = {\n method: string;\n params?: Record<string, any>;\n};\n\ntype RequestMessage = {\n method: string;\n params?: Record<string, any>;\n target: string;\n id?: string;\n};\n\ntype ResponseMessage = {\n result?: any;\n error?: Error;\n id: MessageId;\n};\n\nfunction messageIsBroadcast(message: IncomingMessage): message is BroadcastMessage {\n return (\n 'method' in message &&\n typeof message.method === 'string' &&\n (!('id' in message) || message.id === undefined) &&\n (!('target' in message) || message.target === undefined)\n );\n}\n\nfunction messageIsRequest(message: IncomingMessage): message is RequestMessage {\n return (\n 'method' in message &&\n typeof message.method === 'string' &&\n 'target' in message &&\n typeof message.target === 'string'\n );\n}\n\nfunction messageIsResponse(message: IncomingMessage): message is ResponseMessage {\n return (\n 'id' in message &&\n typeof message.id === 'object' &&\n typeof message.id.requestId !== 'undefined' &&\n typeof message.id.clientId === 'string' &&\n (('result' in message && !!message.result) || ('error' in message && !!message.error))\n );\n}\n"],"names":["createMessagesSocket","options","clients","createSocketMap","broadcast","createBroadcaster","map","server","WebSocketServer","noServer","on","socket","req","client","registerSocket","url","Object","defineProperty","value","parse","query","terminate","createClientMessageHandler","id","endpoint","method","params","size","logger","warn","serializeMessage","clientId","handleServerRequest","message","send","result","peers","forEach","peerSocket","peerSocketId","_upgradeQuery","data","isBinary","parseRawMessage","messageIsBroadcast","toString","messageIsRequest","target","findSocket","undefined","requestId","messageIsResponse","error"],"mappings":"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"}
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "createMetroMiddleware", {
6
6
  enumerable: true,
7
- get: ()=>createMetroMiddleware
7
+ get: function() {
8
+ return createMetroMiddleware;
9
+ }
8
10
  });
9
11
  function _connect() {
10
- const data = /*#__PURE__*/ _interopRequireDefault(require("connect"));
12
+ const data = /*#__PURE__*/ _interop_require_default(require("connect"));
11
13
  _connect = function() {
12
14
  return data;
13
15
  };
@@ -17,22 +19,22 @@ const _createEventSocket = require("./createEventSocket");
17
19
  const _createMessageSocket = require("./createMessageSocket");
18
20
  const _log = require("../../../../log");
19
21
  const _editor = require("../../../../utils/editor");
20
- function _interopRequireDefault(obj) {
22
+ function _interop_require_default(obj) {
21
23
  return obj && obj.__esModule ? obj : {
22
24
  default: obj
23
25
  };
24
26
  }
25
- const compression = require("compression");
27
+ const compression = require('compression');
26
28
  function createMetroMiddleware(metroConfig) {
27
29
  const messages = (0, _createMessageSocket.createMessagesSocket)({
28
30
  logger: _log.Log
29
31
  });
30
32
  const events = (0, _createEventSocket.createEventsSocket)(messages);
31
33
  const middleware = (0, _connect().default)().use(noCacheMiddleware).use(compression())// Support opening stack frames from clients directly in the editor
32
- .use("/open-stack-frame", rawBodyMiddleware).use("/open-stack-frame", metroOpenStackFrameMiddleware)// Support the symbolication endpoint of Metro
34
+ .use('/open-stack-frame', rawBodyMiddleware).use('/open-stack-frame', metroOpenStackFrameMiddleware)// Support the symbolication endpoint of Metro
33
35
  // See: https://github.com/facebook/metro/blob/a792d85ffde3c21c3fbf64ac9404ab0afe5ff957/packages/metro/src/Server.js#L1266
34
- .use("/symbolicate", rawBodyMiddleware)// Support status check to detect if the packager needs to be started from the native side
35
- .use("/status", createMetroStatusMiddleware(metroConfig));
36
+ .use('/symbolicate', rawBodyMiddleware)// Support status check to detect if the packager needs to be started from the native side
37
+ .use('/status', createMetroStatusMiddleware(metroConfig));
36
38
  return {
37
39
  middleware,
38
40
  messagesSocket: messages,
@@ -44,34 +46,34 @@ function createMetroMiddleware(metroConfig) {
44
46
  };
45
47
  }
46
48
  const noCacheMiddleware = (req, res, next)=>{
47
- res.setHeader("Surrogate-Control", "no-store");
48
- res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
49
- res.setHeader("Pragma", "no-cache");
50
- res.setHeader("Expires", "0");
49
+ res.setHeader('Surrogate-Control', 'no-store');
50
+ res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');
51
+ res.setHeader('Pragma', 'no-cache');
52
+ res.setHeader('Expires', '0');
51
53
  next();
52
54
  };
53
55
  const rawBodyMiddleware = (req, _res, next)=>{
54
56
  const reqWithBody = req;
55
- reqWithBody.setEncoding("utf8");
56
- reqWithBody.rawBody = "";
57
- reqWithBody.on("data", (chunk)=>reqWithBody.rawBody += chunk);
58
- reqWithBody.on("end", next);
57
+ reqWithBody.setEncoding('utf8');
58
+ reqWithBody.rawBody = '';
59
+ reqWithBody.on('data', (chunk)=>reqWithBody.rawBody += chunk);
60
+ reqWithBody.on('end', next);
59
61
  };
60
62
  const metroOpenStackFrameMiddleware = (req, res, next)=>{
61
63
  // Only accept POST requests
62
- if (req.method !== "POST") return next();
64
+ if (req.method !== 'POST') return next();
63
65
  // Only handle requests with a raw body
64
- if (!("rawBody" in req) || !req.rawBody) {
66
+ if (!('rawBody' in req) || !req.rawBody) {
65
67
  res.statusCode = 406;
66
- return res.end("Open stack frame requires the JSON stack frame as request body");
68
+ return res.end('Open stack frame requires the JSON stack frame as request body');
67
69
  }
68
70
  const frame = JSON.parse(req.rawBody);
69
- (0, _editor.openInEditorAsync)(frame.file, frame.lineNumber).finally(()=>res.end("OK"));
71
+ (0, _editor.openInEditorAsync)(frame.file, frame.lineNumber).finally(()=>res.end('OK'));
70
72
  };
71
73
  function createMetroStatusMiddleware(metroConfig) {
72
74
  return (_req, res)=>{
73
- res.setHeader("X-React-Native-Project-Root", metroConfig.projectRoot);
74
- res.end("packager-status:running");
75
+ res.setHeader('X-React-Native-Project-Root', metroConfig.projectRoot);
76
+ res.end('packager-status:running');
75
77
  };
76
78
  }
77
79
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createMetroMiddleware.ts"],"sourcesContent":["import connect from 'connect';\nimport type { MetroConfig } from 'metro';\n\nimport { createEventsSocket } from './createEventSocket';\nimport { createMessagesSocket } from './createMessageSocket';\nimport { Log } from '../../../../log';\nimport { openInEditorAsync } from '../../../../utils/editor';\n\nconst compression = require('compression');\n\nexport function createMetroMiddleware(metroConfig: Pick<MetroConfig, 'projectRoot'>) {\n const messages = createMessagesSocket({ logger: Log });\n const events = createEventsSocket(messages);\n\n const middleware = connect()\n .use(noCacheMiddleware)\n .use(compression())\n // Support opening stack frames from clients directly in the editor\n .use('/open-stack-frame', rawBodyMiddleware)\n .use('/open-stack-frame', metroOpenStackFrameMiddleware)\n // Support the symbolication endpoint of Metro\n // See: https://github.com/facebook/metro/blob/a792d85ffde3c21c3fbf64ac9404ab0afe5ff957/packages/metro/src/Server.js#L1266\n .use('/symbolicate', rawBodyMiddleware)\n // Support status check to detect if the packager needs to be started from the native side\n .use('/status', createMetroStatusMiddleware(metroConfig));\n\n return {\n middleware,\n messagesSocket: messages,\n eventsSocket: events,\n websocketEndpoints: {\n [messages.endpoint]: messages.server,\n [events.endpoint]: events.server,\n },\n };\n}\n\nconst noCacheMiddleware: connect.NextHandleFunction = (req, res, next) => {\n res.setHeader('Surrogate-Control', 'no-store');\n res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');\n res.setHeader('Pragma', 'no-cache');\n res.setHeader('Expires', '0');\n next();\n};\n\nconst rawBodyMiddleware: connect.NextHandleFunction = (req, _res, next) => {\n const reqWithBody = req as typeof req & { rawBody: string };\n reqWithBody.setEncoding('utf8');\n reqWithBody.rawBody = '';\n reqWithBody.on('data', (chunk) => (reqWithBody.rawBody += chunk));\n reqWithBody.on('end', next);\n};\n\nconst metroOpenStackFrameMiddleware: connect.NextHandleFunction = (req, res, next) => {\n // Only accept POST requests\n if (req.method !== 'POST') return next();\n // Only handle requests with a raw body\n if (!('rawBody' in req) || !req.rawBody) {\n res.statusCode = 406;\n return res.end('Open stack frame requires the JSON stack frame as request body');\n }\n\n const frame = JSON.parse(req.rawBody as string);\n openInEditorAsync(frame.file, frame.lineNumber).finally(() => res.end('OK'));\n};\n\nfunction createMetroStatusMiddleware(\n metroConfig: Pick<MetroConfig, 'projectRoot'>\n): connect.NextHandleFunction {\n return (_req, res) => {\n res.setHeader('X-React-Native-Project-Root', metroConfig.projectRoot!);\n res.end('packager-status:running');\n };\n}\n"],"names":["createMetroMiddleware","compression","require","metroConfig","messages","createMessagesSocket","logger","Log","events","createEventsSocket","middleware","connect","use","noCacheMiddleware","rawBodyMiddleware","metroOpenStackFrameMiddleware","createMetroStatusMiddleware","messagesSocket","eventsSocket","websocketEndpoints","endpoint","server","req","res","next","setHeader","_res","reqWithBody","setEncoding","rawBody","on","chunk","method","statusCode","end","frame","JSON","parse","openInEditorAsync","file","lineNumber","finally","_req","projectRoot"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createMetroMiddleware.ts"],"sourcesContent":["import connect from 'connect';\nimport type { MetroConfig } from 'metro';\n\nimport { createEventsSocket } from './createEventSocket';\nimport { createMessagesSocket } from './createMessageSocket';\nimport { Log } from '../../../../log';\nimport { openInEditorAsync } from '../../../../utils/editor';\n\nconst compression = require('compression');\n\nexport function createMetroMiddleware(metroConfig: Pick<MetroConfig, 'projectRoot'>) {\n const messages = createMessagesSocket({ logger: Log });\n const events = createEventsSocket(messages);\n\n const middleware = connect()\n .use(noCacheMiddleware)\n .use(compression())\n // Support opening stack frames from clients directly in the editor\n .use('/open-stack-frame', rawBodyMiddleware)\n .use('/open-stack-frame', metroOpenStackFrameMiddleware)\n // Support the symbolication endpoint of Metro\n // See: https://github.com/facebook/metro/blob/a792d85ffde3c21c3fbf64ac9404ab0afe5ff957/packages/metro/src/Server.js#L1266\n .use('/symbolicate', rawBodyMiddleware)\n // Support status check to detect if the packager needs to be started from the native side\n .use('/status', createMetroStatusMiddleware(metroConfig));\n\n return {\n middleware,\n messagesSocket: messages,\n eventsSocket: events,\n websocketEndpoints: {\n [messages.endpoint]: messages.server,\n [events.endpoint]: events.server,\n },\n };\n}\n\nconst noCacheMiddleware: connect.NextHandleFunction = (req, res, next) => {\n res.setHeader('Surrogate-Control', 'no-store');\n res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');\n res.setHeader('Pragma', 'no-cache');\n res.setHeader('Expires', '0');\n next();\n};\n\nconst rawBodyMiddleware: connect.NextHandleFunction = (req, _res, next) => {\n const reqWithBody = req as typeof req & { rawBody: string };\n reqWithBody.setEncoding('utf8');\n reqWithBody.rawBody = '';\n reqWithBody.on('data', (chunk) => (reqWithBody.rawBody += chunk));\n reqWithBody.on('end', next);\n};\n\nconst metroOpenStackFrameMiddleware: connect.NextHandleFunction = (req, res, next) => {\n // Only accept POST requests\n if (req.method !== 'POST') return next();\n // Only handle requests with a raw body\n if (!('rawBody' in req) || !req.rawBody) {\n res.statusCode = 406;\n return res.end('Open stack frame requires the JSON stack frame as request body');\n }\n\n const frame = JSON.parse(req.rawBody as string);\n openInEditorAsync(frame.file, frame.lineNumber).finally(() => res.end('OK'));\n};\n\nfunction createMetroStatusMiddleware(\n metroConfig: Pick<MetroConfig, 'projectRoot'>\n): connect.NextHandleFunction {\n return (_req, res) => {\n res.setHeader('X-React-Native-Project-Root', metroConfig.projectRoot!);\n res.end('packager-status:running');\n };\n}\n"],"names":["createMetroMiddleware","compression","require","metroConfig","messages","createMessagesSocket","logger","Log","events","createEventsSocket","middleware","connect","use","noCacheMiddleware","rawBodyMiddleware","metroOpenStackFrameMiddleware","createMetroStatusMiddleware","messagesSocket","eventsSocket","websocketEndpoints","endpoint","server","req","res","next","setHeader","_res","reqWithBody","setEncoding","rawBody","on","chunk","method","statusCode","end","frame","JSON","parse","openInEditorAsync","file","lineNumber","finally","_req","projectRoot"],"mappings":";;;;+BAUgBA;;;eAAAA;;;;gEAVI;;;;;;mCAGe;qCACE;qBACjB;wBACc;;;;;;AAElC,MAAMC,cAAcC,QAAQ;AAErB,SAASF,sBAAsBG,WAA6C;IACjF,MAAMC,WAAWC,IAAAA,yCAAoB,EAAC;QAAEC,QAAQC,QAAG;IAAC;IACpD,MAAMC,SAASC,IAAAA,qCAAkB,EAACL;IAElC,MAAMM,aAAaC,IAAAA,kBAAO,IACvBC,GAAG,CAACC,mBACJD,GAAG,CAACX,cACL,mEAAmE;KAClEW,GAAG,CAAC,qBAAqBE,mBACzBF,GAAG,CAAC,qBAAqBG,8BAC1B,8CAA8C;IAC9C,0HAA0H;KACzHH,GAAG,CAAC,gBAAgBE,kBACrB,0FAA0F;KACzFF,GAAG,CAAC,WAAWI,4BAA4Bb;IAE9C,OAAO;QACLO;QACAO,gBAAgBb;QAChBc,cAAcV;QACdW,oBAAoB;YAClB,CAACf,SAASgB,QAAQ,CAAC,EAAEhB,SAASiB,MAAM;YACpC,CAACb,OAAOY,QAAQ,CAAC,EAAEZ,OAAOa,MAAM;QAClC;IACF;AACF;AAEA,MAAMR,oBAAgD,CAACS,KAAKC,KAAKC;IAC/DD,IAAIE,SAAS,CAAC,qBAAqB;IACnCF,IAAIE,SAAS,CAAC,iBAAiB;IAC/BF,IAAIE,SAAS,CAAC,UAAU;IACxBF,IAAIE,SAAS,CAAC,WAAW;IACzBD;AACF;AAEA,MAAMV,oBAAgD,CAACQ,KAAKI,MAAMF;IAChE,MAAMG,cAAcL;IACpBK,YAAYC,WAAW,CAAC;IACxBD,YAAYE,OAAO,GAAG;IACtBF,YAAYG,EAAE,CAAC,QAAQ,CAACC,QAAWJ,YAAYE,OAAO,IAAIE;IAC1DJ,YAAYG,EAAE,CAAC,OAAON;AACxB;AAEA,MAAMT,gCAA4D,CAACO,KAAKC,KAAKC;IAC3E,4BAA4B;IAC5B,IAAIF,IAAIU,MAAM,KAAK,QAAQ,OAAOR;IAClC,uCAAuC;IACvC,IAAI,CAAE,CAAA,aAAaF,GAAE,KAAM,CAACA,IAAIO,OAAO,EAAE;QACvCN,IAAIU,UAAU,GAAG;QACjB,OAAOV,IAAIW,GAAG,CAAC;IACjB;IAEA,MAAMC,QAAQC,KAAKC,KAAK,CAACf,IAAIO,OAAO;IACpCS,IAAAA,yBAAiB,EAACH,MAAMI,IAAI,EAAEJ,MAAMK,UAAU,EAAEC,OAAO,CAAC,IAAMlB,IAAIW,GAAG,CAAC;AACxE;AAEA,SAASlB,4BACPb,WAA6C;IAE7C,OAAO,CAACuC,MAAMnB;QACZA,IAAIE,SAAS,CAAC,+BAA+BtB,YAAYwC,WAAW;QACpEpB,IAAIW,GAAG,CAAC;IACV;AACF"}
@@ -4,9 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "createBroadcaster", {
6
6
  enumerable: true,
7
- get: ()=>createBroadcaster
7
+ get: function() {
8
+ return createBroadcaster;
9
+ }
8
10
  });
9
- const debug = require("debug")("expo:metro:dev-server:broadcaster");
11
+ const debug = require('debug')('expo:metro:dev-server:broadcaster');
10
12
  function createBroadcaster(sockets) {
11
13
  return function broadcast(senderSocketId, message) {
12
14
  // Ignore if there are no connected sockets