@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
@@ -4,36 +4,38 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "Telemetry", {
6
6
  enumerable: true,
7
- get: ()=>Telemetry
7
+ get: function() {
8
+ return Telemetry;
9
+ }
8
10
  });
9
- function _nodeCrypto() {
10
- const data = /*#__PURE__*/ _interopRequireDefault(require("node:crypto"));
11
- _nodeCrypto = function() {
11
+ function _nodecrypto() {
12
+ const data = /*#__PURE__*/ _interop_require_default(require("node:crypto"));
13
+ _nodecrypto = function() {
12
14
  return data;
13
15
  };
14
16
  return data;
15
17
  }
16
- const _fetchClient = require("./clients/FetchClient");
17
- const _fetchDetachedClient = require("./clients/FetchDetachedClient");
18
+ const _FetchClient = require("./clients/FetchClient");
19
+ const _FetchDetachedClient = require("./clients/FetchDetachedClient");
18
20
  const _context = require("./utils/context");
19
- const _userSettings = require("../../api/user/UserSettings");
21
+ const _UserSettings = require("../../api/user/UserSettings");
20
22
  const _env = require("../env");
21
- function _interopRequireDefault(obj) {
23
+ function _interop_require_default(obj) {
22
24
  return obj && obj.__esModule ? obj : {
23
25
  default: obj
24
26
  };
25
27
  }
26
- const debug = require("debug")("expo:telemetry");
28
+ const debug = require('debug')('expo:telemetry');
27
29
  class Telemetry {
28
- context = (0, _context.createContext)();
29
- client = new _fetchDetachedClient.FetchDetachedClient();
30
- /** A list of all events, recorded before the telemetry was fully initialized */ earlyRecords = [];
31
- constructor({ anonymousId =(0, _userSettings.getAnonymousId)() , sessionId =_nodeCrypto().default.randomUUID() , userId , strategy ="detached" } = {}){
30
+ constructor({ anonymousId = (0, _UserSettings.getAnonymousId)(), sessionId = _nodecrypto().default.randomUUID(), userId, strategy = 'detached' } = {}){
31
+ this.context = (0, _context.createContext)();
32
+ this.client = new _FetchDetachedClient.FetchDetachedClient();
33
+ /** A list of all events, recorded before the telemetry was fully initialized */ this.earlyRecords = [];
32
34
  this.actor = {
33
35
  anonymousId,
34
36
  sessionId
35
37
  };
36
- this.setStrategy(_env.env.EXPO_NO_TELEMETRY_DETACH ? "debug" : strategy);
38
+ this.setStrategy(_env.env.EXPO_NO_TELEMETRY_DETACH ? 'debug' : strategy);
37
39
  if (userId) {
38
40
  this.initialize({
39
41
  userId
@@ -47,8 +49,8 @@ class Telemetry {
47
49
  // Abort when client is already using the correct strategy
48
50
  if (this.client.strategy === strategy) return;
49
51
  // Abort when debugging the telemetry
50
- if (_env.env.EXPO_NO_TELEMETRY_DETACH && strategy !== "debug") return;
51
- debug("Switching strategy from %s to %s", this.client.strategy, strategy);
52
+ if (_env.env.EXPO_NO_TELEMETRY_DETACH && strategy !== 'debug') return;
53
+ debug('Switching strategy from %s to %s', this.client.strategy, strategy);
52
54
  // Load and instantiate the correct client, based on strategy
53
55
  const client = createClientFromStrategy(strategy);
54
56
  // Replace the client, and re-record any pending records
@@ -61,7 +63,7 @@ class Telemetry {
61
63
  get isInitialized() {
62
64
  return this.actor.userHash !== undefined;
63
65
  }
64
- initialize({ userId }) {
66
+ initialize({ userId }) {
65
67
  this.actor.userHash = userId ? hashUserId(userId) : null;
66
68
  this.flushEarlyRecords();
67
69
  }
@@ -74,7 +76,7 @@ class Telemetry {
74
76
  recordInternal(records) {
75
77
  return this.client.record(records.map((record)=>({
76
78
  ...record,
77
- type: "track",
79
+ type: 'track',
78
80
  sentAt: new Date(),
79
81
  messageId: createMessageId(record),
80
82
  anonymousId: this.actor.anonymousId,
@@ -92,7 +94,7 @@ class Telemetry {
92
94
  const records = Array.isArray(record) ? record : [
93
95
  record
94
96
  ];
95
- debug("Recording %d event(s)", records.length);
97
+ debug('Recording %d event(s)', records.length);
96
98
  if (!this.isInitialized) {
97
99
  this.earlyRecords.push(...records);
98
100
  return;
@@ -100,30 +102,30 @@ class Telemetry {
100
102
  return this.recordInternal(records);
101
103
  }
102
104
  flush() {
103
- debug("Flushing events...");
105
+ debug('Flushing events...');
104
106
  this.flushEarlyRecords();
105
107
  return this.client.flush();
106
108
  }
107
109
  flushOnExit() {
108
- this.setStrategy("detached");
110
+ this.setStrategy('detached');
109
111
  this.flushEarlyRecords();
110
112
  return this.client.flush();
111
113
  }
112
114
  }
113
115
  function createClientFromStrategy(strategy) {
114
116
  // When debugging, use the actual Rudderstack client, but lazy load it
115
- if (_env.env.EXPO_NO_TELEMETRY_DETACH || strategy === "debug" || strategy === "instant") {
116
- return new _fetchClient.FetchClient();
117
+ if (_env.env.EXPO_NO_TELEMETRY_DETACH || strategy === 'debug' || strategy === 'instant') {
118
+ return new _FetchClient.FetchClient();
117
119
  }
118
- return new _fetchDetachedClient.FetchDetachedClient();
120
+ return new _FetchDetachedClient.FetchDetachedClient();
119
121
  }
120
122
  /** Generate a unique message ID using a random hash and UUID */ function createMessageId(record) {
121
- const uuid = _nodeCrypto().default.randomUUID();
122
- const md5 = _nodeCrypto().default.createHash("md5").update(JSON.stringify(record)).digest("hex");
123
+ const uuid = _nodecrypto().default.randomUUID();
124
+ const md5 = _nodecrypto().default.createHash('md5').update(JSON.stringify(record)).digest('hex');
123
125
  return `node-${md5}-${uuid}`;
124
126
  }
125
127
  /** Hash the user identifier to make it untracable */ function hashUserId(userId) {
126
- return _nodeCrypto().default.createHash("sha256").update(userId).digest("hex");
128
+ return _nodecrypto().default.createHash('sha256').update(userId).digest('hex');
127
129
  }
128
130
 
129
131
  //# sourceMappingURL=Telemetry.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/telemetry/Telemetry.ts"],"sourcesContent":["import crypto from 'node:crypto';\n\nimport { FetchClient } from './clients/FetchClient';\nimport { FetchDetachedClient } from './clients/FetchDetachedClient';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecord } from './types';\nimport { createContext } from './utils/context';\nimport { getAnonymousId } from '../../api/user/UserSettings';\nimport { env } from '../env';\n\nconst debug = require('debug')('expo:telemetry') as typeof console.log;\n\ntype TelemetryOptions = {\n /** A locally generated ID, untracable to an actual user */\n anonymousId?: string;\n /** A locally generated ID, per CLI invocation */\n sessionId?: string;\n /** The authenticated user ID, this is used to generate an untracable hash */\n userId?: string;\n /** The underlying telemetry strategy to use */\n strategy?: TelemetryClientStrategy;\n};\n\ntype TelemetryActor = Required<Pick<TelemetryOptions, 'anonymousId' | 'sessionId'>> & {\n /**\n * Hashed version of the user ID, untracable to an actual user.\n * If this value is set to `undefined`, telemetry is considered uninitialized and will wait until its set.\n * If this value is set to `null`, telemetry is considered initialized without an authenticated user.\n * If this value is set to a string, telemetry is considered initialized with an authenticated user.\n */\n userHash?: string | null;\n};\n\nexport class Telemetry {\n private context = createContext();\n private client: TelemetryClient = new FetchDetachedClient();\n private actor: TelemetryActor;\n\n /** A list of all events, recorded before the telemetry was fully initialized */\n private earlyRecords: TelemetryRecord[] = [];\n\n constructor({\n anonymousId = getAnonymousId(),\n sessionId = crypto.randomUUID(),\n userId,\n strategy = 'detached',\n }: TelemetryOptions = {}) {\n this.actor = { anonymousId, sessionId };\n this.setStrategy(env.EXPO_NO_TELEMETRY_DETACH ? 'debug' : strategy);\n\n if (userId) {\n this.initialize({ userId });\n }\n }\n\n get strategy() {\n return this.client.strategy;\n }\n\n setStrategy(strategy: TelemetryOptions['strategy']) {\n // Abort when client is already using the correct strategy\n if (this.client.strategy === strategy) return;\n // Abort when debugging the telemetry\n if (env.EXPO_NO_TELEMETRY_DETACH && strategy !== 'debug') return;\n\n debug('Switching strategy from %s to %s', this.client.strategy, strategy);\n\n // Load and instantiate the correct client, based on strategy\n const client = createClientFromStrategy(strategy);\n // Replace the client, and re-record any pending records\n this.client.abort().forEach((record) => client.record([record]));\n this.client = client;\n\n return this;\n }\n\n get isInitialized() {\n return this.actor.userHash !== undefined;\n }\n\n initialize({ userId }: { userId: string | null }) {\n this.actor.userHash = userId ? hashUserId(userId) : null;\n this.flushEarlyRecords();\n }\n\n private flushEarlyRecords() {\n if (this.earlyRecords.length) {\n this.recordInternal(this.earlyRecords);\n this.earlyRecords = [];\n }\n }\n\n private recordInternal(records: TelemetryRecord[]) {\n return this.client.record(\n records.map((record) => ({\n ...record,\n type: 'track' as const,\n sentAt: new Date(),\n messageId: createMessageId(record),\n anonymousId: this.actor.anonymousId,\n userHash: this.actor.userHash,\n context: {\n ...this.context,\n sessionId: this.actor.sessionId,\n client: { mode: this.client.strategy },\n },\n }))\n );\n }\n\n record(record: TelemetryRecord | TelemetryRecord[]) {\n const records = Array.isArray(record) ? record : [record];\n\n debug('Recording %d event(s)', records.length);\n\n if (!this.isInitialized) {\n this.earlyRecords.push(...records);\n return;\n }\n\n return this.recordInternal(records);\n }\n\n flush() {\n debug('Flushing events...');\n this.flushEarlyRecords();\n return this.client.flush();\n }\n\n flushOnExit() {\n this.setStrategy('detached');\n this.flushEarlyRecords();\n return this.client.flush();\n }\n}\n\nfunction createClientFromStrategy(strategy: TelemetryOptions['strategy']) {\n // When debugging, use the actual Rudderstack client, but lazy load it\n if (env.EXPO_NO_TELEMETRY_DETACH || strategy === 'debug' || strategy === 'instant') {\n return new FetchClient();\n }\n\n return new FetchDetachedClient();\n}\n\n/** Generate a unique message ID using a random hash and UUID */\nfunction createMessageId(record: TelemetryRecord) {\n const uuid = crypto.randomUUID();\n const md5 = crypto.createHash('md5').update(JSON.stringify(record)).digest('hex');\n\n return `node-${md5}-${uuid}`;\n}\n\n/** Hash the user identifier to make it untracable */\nfunction hashUserId(userId: string) {\n return crypto.createHash('sha256').update(userId).digest('hex');\n}\n"],"names":["Telemetry","debug","require","context","createContext","client","FetchDetachedClient","earlyRecords","constructor","anonymousId","getAnonymousId","sessionId","crypto","randomUUID","userId","strategy","actor","setStrategy","env","EXPO_NO_TELEMETRY_DETACH","initialize","createClientFromStrategy","abort","forEach","record","isInitialized","userHash","undefined","hashUserId","flushEarlyRecords","length","recordInternal","records","map","type","sentAt","Date","messageId","createMessageId","mode","Array","isArray","push","flush","flushOnExit","FetchClient","uuid","md5","createHash","update","JSON","stringify","digest"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/utils/telemetry/Telemetry.ts"],"sourcesContent":["import crypto from 'node:crypto';\n\nimport { FetchClient } from './clients/FetchClient';\nimport { FetchDetachedClient } from './clients/FetchDetachedClient';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecord } from './types';\nimport { createContext } from './utils/context';\nimport { getAnonymousId } from '../../api/user/UserSettings';\nimport { env } from '../env';\n\nconst debug = require('debug')('expo:telemetry') as typeof console.log;\n\ntype TelemetryOptions = {\n /** A locally generated ID, untracable to an actual user */\n anonymousId?: string;\n /** A locally generated ID, per CLI invocation */\n sessionId?: string;\n /** The authenticated user ID, this is used to generate an untracable hash */\n userId?: string;\n /** The underlying telemetry strategy to use */\n strategy?: TelemetryClientStrategy;\n};\n\ntype TelemetryActor = Required<Pick<TelemetryOptions, 'anonymousId' | 'sessionId'>> & {\n /**\n * Hashed version of the user ID, untracable to an actual user.\n * If this value is set to `undefined`, telemetry is considered uninitialized and will wait until its set.\n * If this value is set to `null`, telemetry is considered initialized without an authenticated user.\n * If this value is set to a string, telemetry is considered initialized with an authenticated user.\n */\n userHash?: string | null;\n};\n\nexport class Telemetry {\n private context = createContext();\n private client: TelemetryClient = new FetchDetachedClient();\n private actor: TelemetryActor;\n\n /** A list of all events, recorded before the telemetry was fully initialized */\n private earlyRecords: TelemetryRecord[] = [];\n\n constructor({\n anonymousId = getAnonymousId(),\n sessionId = crypto.randomUUID(),\n userId,\n strategy = 'detached',\n }: TelemetryOptions = {}) {\n this.actor = { anonymousId, sessionId };\n this.setStrategy(env.EXPO_NO_TELEMETRY_DETACH ? 'debug' : strategy);\n\n if (userId) {\n this.initialize({ userId });\n }\n }\n\n get strategy() {\n return this.client.strategy;\n }\n\n setStrategy(strategy: TelemetryOptions['strategy']) {\n // Abort when client is already using the correct strategy\n if (this.client.strategy === strategy) return;\n // Abort when debugging the telemetry\n if (env.EXPO_NO_TELEMETRY_DETACH && strategy !== 'debug') return;\n\n debug('Switching strategy from %s to %s', this.client.strategy, strategy);\n\n // Load and instantiate the correct client, based on strategy\n const client = createClientFromStrategy(strategy);\n // Replace the client, and re-record any pending records\n this.client.abort().forEach((record) => client.record([record]));\n this.client = client;\n\n return this;\n }\n\n get isInitialized() {\n return this.actor.userHash !== undefined;\n }\n\n initialize({ userId }: { userId: string | null }) {\n this.actor.userHash = userId ? hashUserId(userId) : null;\n this.flushEarlyRecords();\n }\n\n private flushEarlyRecords() {\n if (this.earlyRecords.length) {\n this.recordInternal(this.earlyRecords);\n this.earlyRecords = [];\n }\n }\n\n private recordInternal(records: TelemetryRecord[]) {\n return this.client.record(\n records.map((record) => ({\n ...record,\n type: 'track' as const,\n sentAt: new Date(),\n messageId: createMessageId(record),\n anonymousId: this.actor.anonymousId,\n userHash: this.actor.userHash,\n context: {\n ...this.context,\n sessionId: this.actor.sessionId,\n client: { mode: this.client.strategy },\n },\n }))\n );\n }\n\n record(record: TelemetryRecord | TelemetryRecord[]) {\n const records = Array.isArray(record) ? record : [record];\n\n debug('Recording %d event(s)', records.length);\n\n if (!this.isInitialized) {\n this.earlyRecords.push(...records);\n return;\n }\n\n return this.recordInternal(records);\n }\n\n flush() {\n debug('Flushing events...');\n this.flushEarlyRecords();\n return this.client.flush();\n }\n\n flushOnExit() {\n this.setStrategy('detached');\n this.flushEarlyRecords();\n return this.client.flush();\n }\n}\n\nfunction createClientFromStrategy(strategy: TelemetryOptions['strategy']) {\n // When debugging, use the actual Rudderstack client, but lazy load it\n if (env.EXPO_NO_TELEMETRY_DETACH || strategy === 'debug' || strategy === 'instant') {\n return new FetchClient();\n }\n\n return new FetchDetachedClient();\n}\n\n/** Generate a unique message ID using a random hash and UUID */\nfunction createMessageId(record: TelemetryRecord) {\n const uuid = crypto.randomUUID();\n const md5 = crypto.createHash('md5').update(JSON.stringify(record)).digest('hex');\n\n return `node-${md5}-${uuid}`;\n}\n\n/** Hash the user identifier to make it untracable */\nfunction hashUserId(userId: string) {\n return crypto.createHash('sha256').update(userId).digest('hex');\n}\n"],"names":["Telemetry","debug","require","constructor","anonymousId","getAnonymousId","sessionId","crypto","randomUUID","userId","strategy","context","createContext","client","FetchDetachedClient","earlyRecords","actor","setStrategy","env","EXPO_NO_TELEMETRY_DETACH","initialize","createClientFromStrategy","abort","forEach","record","isInitialized","userHash","undefined","hashUserId","flushEarlyRecords","length","recordInternal","records","map","type","sentAt","Date","messageId","createMessageId","mode","Array","isArray","push","flush","flushOnExit","FetchClient","uuid","md5","createHash","update","JSON","stringify","digest"],"mappings":"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"}
@@ -4,11 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "FetchClient", {
6
6
  enumerable: true,
7
- get: ()=>FetchClient
7
+ get: function() {
8
+ return FetchClient;
9
+ }
8
10
  });
9
- function _nodeBuffer() {
11
+ function _nodebuffer() {
10
12
  const data = require("node:buffer");
11
- _nodeBuffer = function() {
13
+ _nodebuffer = function() {
12
14
  return data;
13
15
  };
14
16
  return data;
@@ -23,16 +25,16 @@ function _undici() {
23
25
  const _fetch = require("../../../utils/fetch");
24
26
  const _constants = require("../utils/constants");
25
27
  class FetchClient {
26
- /** This client should be used for long-running commands */ strategy = "instant";
27
- /** All records that are queued and being sent */ entries = new Set();
28
- constructor({ fetch =createTelemetryFetch() , url =_constants.TELEMETRY_ENDPOINT , target =_constants.TELEMETRY_TARGET } = {}){
28
+ constructor({ fetch = createTelemetryFetch(), url = _constants.TELEMETRY_ENDPOINT, target = _constants.TELEMETRY_TARGET } = {}){
29
+ /** This client should be used for long-running commands */ this.strategy = 'instant';
30
+ /** All records that are queued and being sent */ this.entries = new Set();
29
31
  this.fetch = fetch;
30
32
  this.url = url;
31
33
  this.headers = {
32
- accept: "application/json",
33
- "content-type": "application/json",
34
- "user-agent": `expo-cli/${"1.0.0-canary-20250320-7a205d3"}`,
35
- authorization: "Basic " + _nodeBuffer().Buffer.from(`${target}:`).toString("base64")
34
+ accept: 'application/json',
35
+ 'content-type': 'application/json',
36
+ 'user-agent': `expo-cli/${"1.0.0-canary-20250402-161f57b"}`,
37
+ authorization: 'Basic ' + _nodebuffer().Buffer.from(`${target}:`).toString('base64')
36
38
  };
37
39
  }
38
40
  queue(records, controller, request) {
@@ -55,7 +57,7 @@ class FetchClient {
55
57
  });
56
58
  return this.queue(records, controller, this.fetch(this.url, {
57
59
  body,
58
- method: "POST",
60
+ method: 'POST',
59
61
  signal: controller.signal,
60
62
  headers: this.headers
61
63
  }));
@@ -90,8 +92,8 @@ function createTelemetryFetch() {
90
92
  });
91
93
  }
92
94
  /** Extract the URL string from either `RequestInfo` or `URL` */ function extractUrl(info) {
93
- if (typeof info === "string") return info;
94
- if ("url" in info) return info.url;
95
+ if (typeof info === 'string') return info;
96
+ if ('url' in info) return info.url;
95
97
  return info.toString();
96
98
  }
97
99
  /** Mute a promise by removing the original return type and hide errors */ function mutePromise(promise) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchClient.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\nimport { URL } from 'node:url';\nimport { Agent, RetryAgent, type RequestInfo, type RequestInit } from 'undici';\n\nimport { fetch } from '../../../utils/fetch';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\ntype FetchClientOptions = {\n /** The fetch method for sending events, should handle retries and timeouts */\n fetch?: typeof fetch;\n /** The endpoint for recorded events */\n url?: string;\n /** The telemetry target for all events */\n target?: string;\n};\n\ntype FetchClientEntry = Promise<void> & {\n records: TelemetryRecordInternal[];\n controller: AbortController;\n};\n\nexport class FetchClient implements TelemetryClient {\n /** This client should be used for long-running commands */\n readonly strategy: TelemetryClientStrategy = 'instant';\n /** The fetch instance used to transport telemetry to the backend */\n private fetch: typeof fetch;\n /** The endpoint to send events to */\n private url: string;\n /** Additional headers to send with every event */\n private headers: RequestInit['headers'];\n /** All records that are queued and being sent */\n private entries: Set<FetchClientEntry> = new Set();\n\n constructor({\n fetch = createTelemetryFetch(),\n url = TELEMETRY_ENDPOINT,\n target = TELEMETRY_TARGET,\n }: FetchClientOptions = {}) {\n this.fetch = fetch;\n this.url = url;\n this.headers = {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'user-agent': `expo-cli/${process.env.__EXPO_VERSION}`,\n authorization: 'Basic ' + Buffer.from(`${target}:`).toString('base64'),\n };\n }\n\n private queue(\n records: TelemetryRecordInternal[],\n controller: AbortController,\n request: ReturnType<typeof fetch>\n ) {\n const entry: FetchClientEntry = mutePromise(request) as any;\n entry.finally(() => this.entries.delete(entry));\n entry.controller = controller;\n entry.records = records;\n\n this.entries.add(entry);\n\n return entry;\n }\n\n record(record: TelemetryRecordInternal[]) {\n const records = Array.isArray(record) ? record : [record];\n\n if (!records.length) return;\n\n const controller = new AbortController();\n const body = JSON.stringify({\n sentAt: new Date(),\n batch: records,\n });\n\n return this.queue(\n records,\n controller,\n this.fetch(this.url, {\n body,\n method: 'POST',\n signal: controller.signal,\n headers: this.headers,\n })\n );\n }\n\n flush() {\n return mutePromise(Promise.all(this.entries));\n }\n\n abort() {\n const records: TelemetryRecordInternal[] = [];\n\n this.entries.forEach((entry) => {\n try {\n entry.controller.abort();\n records.push(...entry.records);\n } catch {\n // Ignore abort errors\n }\n });\n\n return records;\n }\n}\n\nfunction createTelemetryFetch(): typeof fetch {\n const agent = new RetryAgent(new Agent(), {\n maxRetries: 3,\n retryAfter: true,\n minTimeout: 500,\n maxTimeout: 2000,\n timeoutFactor: 2,\n });\n\n return (info: RequestInfo | URL, init: RequestInit = {}) =>\n fetch(extractUrl(info), { ...init, dispatcher: agent });\n}\n\n/** Extract the URL string from either `RequestInfo` or `URL` */\nfunction extractUrl(info: RequestInfo | URL) {\n if (typeof info === 'string') return info;\n if ('url' in info) return info.url;\n return info.toString();\n}\n\n/** Mute a promise by removing the original return type and hide errors */\nfunction mutePromise(promise: Promise<any>) {\n return promise.then(\n () => {},\n () => {}\n );\n}\n"],"names":["FetchClient","strategy","entries","Set","constructor","fetch","createTelemetryFetch","url","TELEMETRY_ENDPOINT","target","TELEMETRY_TARGET","headers","accept","process","env","__EXPO_VERSION","authorization","Buffer","from","toString","queue","records","controller","request","entry","mutePromise","finally","delete","add","record","Array","isArray","length","AbortController","body","JSON","stringify","sentAt","Date","batch","method","signal","flush","Promise","all","abort","forEach","push","agent","RetryAgent","Agent","maxRetries","retryAfter","minTimeout","maxTimeout","timeoutFactor","info","init","extractUrl","dispatcher","promise","then"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchClient.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\nimport { URL } from 'node:url';\nimport { Agent, RetryAgent, type RequestInfo, type RequestInit } from 'undici';\n\nimport { fetch } from '../../../utils/fetch';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\ntype FetchClientOptions = {\n /** The fetch method for sending events, should handle retries and timeouts */\n fetch?: typeof fetch;\n /** The endpoint for recorded events */\n url?: string;\n /** The telemetry target for all events */\n target?: string;\n};\n\ntype FetchClientEntry = Promise<void> & {\n records: TelemetryRecordInternal[];\n controller: AbortController;\n};\n\nexport class FetchClient implements TelemetryClient {\n /** This client should be used for long-running commands */\n readonly strategy: TelemetryClientStrategy = 'instant';\n /** The fetch instance used to transport telemetry to the backend */\n private fetch: typeof fetch;\n /** The endpoint to send events to */\n private url: string;\n /** Additional headers to send with every event */\n private headers: RequestInit['headers'];\n /** All records that are queued and being sent */\n private entries: Set<FetchClientEntry> = new Set();\n\n constructor({\n fetch = createTelemetryFetch(),\n url = TELEMETRY_ENDPOINT,\n target = TELEMETRY_TARGET,\n }: FetchClientOptions = {}) {\n this.fetch = fetch;\n this.url = url;\n this.headers = {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'user-agent': `expo-cli/${process.env.__EXPO_VERSION}`,\n authorization: 'Basic ' + Buffer.from(`${target}:`).toString('base64'),\n };\n }\n\n private queue(\n records: TelemetryRecordInternal[],\n controller: AbortController,\n request: ReturnType<typeof fetch>\n ) {\n const entry: FetchClientEntry = mutePromise(request) as any;\n entry.finally(() => this.entries.delete(entry));\n entry.controller = controller;\n entry.records = records;\n\n this.entries.add(entry);\n\n return entry;\n }\n\n record(record: TelemetryRecordInternal[]) {\n const records = Array.isArray(record) ? record : [record];\n\n if (!records.length) return;\n\n const controller = new AbortController();\n const body = JSON.stringify({\n sentAt: new Date(),\n batch: records,\n });\n\n return this.queue(\n records,\n controller,\n this.fetch(this.url, {\n body,\n method: 'POST',\n signal: controller.signal,\n headers: this.headers,\n })\n );\n }\n\n flush() {\n return mutePromise(Promise.all(this.entries));\n }\n\n abort() {\n const records: TelemetryRecordInternal[] = [];\n\n this.entries.forEach((entry) => {\n try {\n entry.controller.abort();\n records.push(...entry.records);\n } catch {\n // Ignore abort errors\n }\n });\n\n return records;\n }\n}\n\nfunction createTelemetryFetch(): typeof fetch {\n const agent = new RetryAgent(new Agent(), {\n maxRetries: 3,\n retryAfter: true,\n minTimeout: 500,\n maxTimeout: 2000,\n timeoutFactor: 2,\n });\n\n return (info: RequestInfo | URL, init: RequestInit = {}) =>\n fetch(extractUrl(info), { ...init, dispatcher: agent });\n}\n\n/** Extract the URL string from either `RequestInfo` or `URL` */\nfunction extractUrl(info: RequestInfo | URL) {\n if (typeof info === 'string') return info;\n if ('url' in info) return info.url;\n return info.toString();\n}\n\n/** Mute a promise by removing the original return type and hide errors */\nfunction mutePromise(promise: Promise<any>) {\n return promise.then(\n () => {},\n () => {}\n );\n}\n"],"names":["FetchClient","constructor","fetch","createTelemetryFetch","url","TELEMETRY_ENDPOINT","target","TELEMETRY_TARGET","strategy","entries","Set","headers","accept","process","env","__EXPO_VERSION","authorization","Buffer","from","toString","queue","records","controller","request","entry","mutePromise","finally","delete","add","record","Array","isArray","length","AbortController","body","JSON","stringify","sentAt","Date","batch","method","signal","flush","Promise","all","abort","forEach","push","agent","RetryAgent","Agent","maxRetries","retryAfter","minTimeout","maxTimeout","timeoutFactor","info","init","extractUrl","dispatcher","promise","then"],"mappings":";;;;+BAsBaA;;;eAAAA;;;;yBAtBU;;;;;;;yBAE+C;;;;;;uBAEhD;2BAE+B;AAgB9C,MAAMA;IAYXC,YAAY,EACVC,QAAQC,sBAAsB,EAC9BC,MAAMC,6BAAkB,EACxBC,SAASC,2BAAgB,EACN,GAAG,CAAC,CAAC,CAAE;QAf5B,yDAAyD,QAChDC,WAAoC;QAO7C,+CAA+C,QACvCC,UAAiC,IAAIC;QAO3C,IAAI,CAACR,KAAK,GAAGA;QACb,IAAI,CAACE,GAAG,GAAGA;QACX,IAAI,CAACO,OAAO,GAAG;YACbC,QAAQ;YACR,gBAAgB;YAChB,cAAc,CAAC,SAAS,EAAEC,QAAQC,GAAG,CAACC,cAAc,EAAE;YACtDC,eAAe,WAAWC,oBAAM,CAACC,IAAI,CAAC,GAAGZ,OAAO,CAAC,CAAC,EAAEa,QAAQ,CAAC;QAC/D;IACF;IAEQC,MACNC,OAAkC,EAClCC,UAA2B,EAC3BC,OAAiC,EACjC;QACA,MAAMC,QAA0BC,YAAYF;QAC5CC,MAAME,OAAO,CAAC,IAAM,IAAI,CAACjB,OAAO,CAACkB,MAAM,CAACH;QACxCA,MAAMF,UAAU,GAAGA;QACnBE,MAAMH,OAAO,GAAGA;QAEhB,IAAI,CAACZ,OAAO,CAACmB,GAAG,CAACJ;QAEjB,OAAOA;IACT;IAEAK,OAAOA,MAAiC,EAAE;QACxC,MAAMR,UAAUS,MAAMC,OAAO,CAACF,UAAUA,SAAS;YAACA;SAAO;QAEzD,IAAI,CAACR,QAAQW,MAAM,EAAE;QAErB,MAAMV,aAAa,IAAIW;QACvB,MAAMC,OAAOC,KAAKC,SAAS,CAAC;YAC1BC,QAAQ,IAAIC;YACZC,OAAOlB;QACT;QAEA,OAAO,IAAI,CAACD,KAAK,CACfC,SACAC,YACA,IAAI,CAACpB,KAAK,CAAC,IAAI,CAACE,GAAG,EAAE;YACnB8B;YACAM,QAAQ;YACRC,QAAQnB,WAAWmB,MAAM;YACzB9B,SAAS,IAAI,CAACA,OAAO;QACvB;IAEJ;IAEA+B,QAAQ;QACN,OAAOjB,YAAYkB,QAAQC,GAAG,CAAC,IAAI,CAACnC,OAAO;IAC7C;IAEAoC,QAAQ;QACN,MAAMxB,UAAqC,EAAE;QAE7C,IAAI,CAACZ,OAAO,CAACqC,OAAO,CAAC,CAACtB;YACpB,IAAI;gBACFA,MAAMF,UAAU,CAACuB,KAAK;gBACtBxB,QAAQ0B,IAAI,IAAIvB,MAAMH,OAAO;YAC/B,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF;QAEA,OAAOA;IACT;AACF;AAEA,SAASlB;IACP,MAAM6C,QAAQ,IAAIC,CAAAA,SAAS,YAAC,CAAC,IAAIC,CAAAA,SAAI,OAAC,IAAI;QACxCC,YAAY;QACZC,YAAY;QACZC,YAAY;QACZC,YAAY;QACZC,eAAe;IACjB;IAEA,OAAO,CAACC,MAAyBC,OAAoB,CAAC,CAAC,GACrDvD,IAAAA,YAAK,EAACwD,WAAWF,OAAO;YAAE,GAAGC,IAAI;YAAEE,YAAYX;QAAM;AACzD;AAEA,8DAA8D,GAC9D,SAASU,WAAWF,IAAuB;IACzC,IAAI,OAAOA,SAAS,UAAU,OAAOA;IACrC,IAAI,SAASA,MAAM,OAAOA,KAAKpD,GAAG;IAClC,OAAOoD,KAAKrC,QAAQ;AACtB;AAEA,wEAAwE,GACxE,SAASM,YAAYmC,OAAqB;IACxC,OAAOA,QAAQC,IAAI,CACjB,KAAO,GACP,KAAO;AAEX"}
@@ -4,39 +4,39 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "FetchDetachedClient", {
6
6
  enumerable: true,
7
- get: ()=>FetchDetachedClient
7
+ get: function() {
8
+ return FetchDetachedClient;
9
+ }
8
10
  });
9
- function _nodeChildProcess() {
11
+ function _nodechild_process() {
10
12
  const data = require("node:child_process");
11
- _nodeChildProcess = function() {
13
+ _nodechild_process = function() {
12
14
  return data;
13
15
  };
14
16
  return data;
15
17
  }
16
- function _nodeFs() {
17
- const data = /*#__PURE__*/ _interopRequireDefault(require("node:fs"));
18
- _nodeFs = function() {
18
+ function _nodefs() {
19
+ const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
20
+ _nodefs = function() {
19
21
  return data;
20
22
  };
21
23
  return data;
22
24
  }
23
- function _nodePath() {
24
- const data = /*#__PURE__*/ _interopRequireDefault(require("node:path"));
25
- _nodePath = function() {
25
+ function _nodepath() {
26
+ const data = /*#__PURE__*/ _interop_require_default(require("node:path"));
27
+ _nodepath = function() {
26
28
  return data;
27
29
  };
28
30
  return data;
29
31
  }
30
32
  const _createTempPath = require("../../createTempPath");
31
- function _interopRequireDefault(obj) {
33
+ function _interop_require_default(obj) {
32
34
  return obj && obj.__esModule ? obj : {
33
35
  default: obj
34
36
  };
35
37
  }
36
- const debug = require("debug")("expo:telemetry:client:detached");
38
+ const debug = require('debug')('expo:telemetry:client:detached');
37
39
  class FetchDetachedClient {
38
- /** This client should be used for short-lived commands */ strategy = "detached";
39
- /** All recorded telemetry events */ records = [];
40
40
  abort() {
41
41
  return this.records;
42
42
  }
@@ -49,33 +49,37 @@ class FetchDetachedClient {
49
49
  async flush() {
50
50
  try {
51
51
  if (!this.records.length) {
52
- return debug("No records to flush, skipping...");
52
+ return debug('No records to flush, skipping...');
53
53
  }
54
- const file = (0, _createTempPath.createTempFilePath)("expo-telemetry.json");
54
+ const file = (0, _createTempPath.createTempFilePath)('expo-telemetry.json');
55
55
  const data = JSON.stringify({
56
56
  records: this.records
57
57
  });
58
58
  this.records = [];
59
- await _nodeFs().default.promises.mkdir(_nodePath().default.dirname(file), {
59
+ await _nodefs().default.promises.mkdir(_nodepath().default.dirname(file), {
60
60
  recursive: true
61
61
  });
62
- await _nodeFs().default.promises.writeFile(file, data);
63
- const child = (0, _nodeChildProcess().spawn)(process.execPath, [
64
- require.resolve("./flushFetchDetached"),
62
+ await _nodefs().default.promises.writeFile(file, data);
63
+ const child = (0, _nodechild_process().spawn)(process.execPath, [
64
+ require.resolve('./flushFetchDetached'),
65
65
  file
66
66
  ], {
67
67
  detached: true,
68
68
  windowsHide: true,
69
69
  shell: false,
70
- stdio: "ignore"
70
+ stdio: 'ignore'
71
71
  });
72
72
  child.unref();
73
73
  } catch (error) {
74
74
  // This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,
75
75
  // since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.
76
- debug("Exception while initiating detached flush:", error);
76
+ debug('Exception while initiating detached flush:', error);
77
77
  }
78
- debug("Detached flush started");
78
+ debug('Detached flush started');
79
+ }
80
+ constructor(){
81
+ /** This client should be used for short-lived commands */ this.strategy = 'detached';
82
+ /** All recorded telemetry events */ this.records = [];
79
83
  }
80
84
  }
81
85
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchDetachedClient.ts"],"sourcesContent":["import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createTempFilePath } from '../../createTempPath';\nimport type { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\n\nconst debug = require('debug')('expo:telemetry:client:detached') as typeof console.log;\n\nexport class FetchDetachedClient implements TelemetryClient {\n /** This client should be used for short-lived commands */\n readonly strategy: TelemetryClientStrategy = 'detached';\n /** All recorded telemetry events */\n private records: TelemetryRecordInternal[] = [];\n\n abort() {\n return this.records;\n }\n\n record(record: TelemetryRecordInternal[]) {\n this.records.push(\n ...record.map((record) => ({\n ...record,\n originalTimestamp: record.sentAt,\n }))\n );\n }\n\n async flush() {\n try {\n if (!this.records.length) {\n return debug('No records to flush, skipping...');\n }\n\n const file = createTempFilePath('expo-telemetry.json');\n const data = JSON.stringify({ records: this.records });\n\n this.records = [];\n\n await fs.promises.mkdir(path.dirname(file), { recursive: true });\n await fs.promises.writeFile(file, data);\n\n const child = spawn(process.execPath, [require.resolve('./flushFetchDetached'), file], {\n detached: true,\n windowsHide: true,\n shell: false,\n stdio: 'ignore',\n });\n\n child.unref();\n } catch (error) {\n // This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,\n // since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.\n debug('Exception while initiating detached flush:', error);\n }\n\n debug('Detached flush started');\n }\n}\n"],"names":["FetchDetachedClient","debug","require","strategy","records","abort","record","push","map","originalTimestamp","sentAt","flush","length","file","createTempFilePath","data","JSON","stringify","fs","promises","mkdir","path","dirname","recursive","writeFile","child","spawn","process","execPath","resolve","detached","windowsHide","shell","stdio","unref","error"],"mappings":"AAAA;;;;+BASaA,qBAAmB;;aAAnBA,mBAAmB;;;yBATV,oBAAoB;;;;;;;8DAC3B,SAAS;;;;;;;8DACP,WAAW;;;;;;gCAEO,sBAAsB;;;;;;AAGzD,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,gCAAgC,CAAC,AAAsB,AAAC;AAEhF,MAAMF,mBAAmB;IAC9B,wDAAwD,GACxD,AAASG,QAAQ,GAA4B,UAAU,CAAC;IACxD,kCAAkC,GAClC,AAAQC,OAAO,GAA8B,EAAE,CAAC;IAEhDC,KAAK,GAAG;QACN,OAAO,IAAI,CAACD,OAAO,CAAC;IACtB;IAEAE,MAAM,CAACA,MAAiC,EAAE;QACxC,IAAI,CAACF,OAAO,CAACG,IAAI,IACZD,MAAM,CAACE,GAAG,CAAC,CAACF,MAAM,GAAK,CAAC;gBACzB,GAAGA,MAAM;gBACTG,iBAAiB,EAAEH,MAAM,CAACI,MAAM;aACjC,CAAC,CAAC,CACJ,CAAC;IACJ;UAEMC,KAAK,GAAG;QACZ,IAAI;YACF,IAAI,CAAC,IAAI,CAACP,OAAO,CAACQ,MAAM,EAAE;gBACxB,OAAOX,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACnD,CAAC;YAED,MAAMY,IAAI,GAAGC,IAAAA,eAAkB,mBAAA,EAAC,qBAAqB,CAAC,AAAC;YACvD,MAAMC,IAAI,GAAGC,IAAI,CAACC,SAAS,CAAC;gBAAEb,OAAO,EAAE,IAAI,CAACA,OAAO;aAAE,CAAC,AAAC;YAEvD,IAAI,CAACA,OAAO,GAAG,EAAE,CAAC;YAElB,MAAMc,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACC,KAAK,CAACC,SAAI,EAAA,QAAA,CAACC,OAAO,CAACT,IAAI,CAAC,EAAE;gBAAEU,SAAS,EAAE,IAAI;aAAE,CAAC,CAAC;YACjE,MAAML,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACK,SAAS,CAACX,IAAI,EAAEE,IAAI,CAAC,CAAC;YAExC,MAAMU,KAAK,GAAGC,IAAAA,iBAAK,EAAA,MAAA,EAACC,OAAO,CAACC,QAAQ,EAAE;gBAAC1B,OAAO,CAAC2B,OAAO,CAAC,sBAAsB,CAAC;gBAAEhB,IAAI;aAAC,EAAE;gBACrFiB,QAAQ,EAAE,IAAI;gBACdC,WAAW,EAAE,IAAI;gBACjBC,KAAK,EAAE,KAAK;gBACZC,KAAK,EAAE,QAAQ;aAChB,CAAC,AAAC;YAEHR,KAAK,CAACS,KAAK,EAAE,CAAC;QAChB,EAAE,OAAOC,KAAK,EAAE;YACd,oIAAoI;YACpI,mIAAmI;YACnIlC,KAAK,CAAC,4CAA4C,EAAEkC,KAAK,CAAC,CAAC;QAC7D,CAAC;QAEDlC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClC;CACD"}
1
+ {"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchDetachedClient.ts"],"sourcesContent":["import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createTempFilePath } from '../../createTempPath';\nimport type { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\n\nconst debug = require('debug')('expo:telemetry:client:detached') as typeof console.log;\n\nexport class FetchDetachedClient implements TelemetryClient {\n /** This client should be used for short-lived commands */\n readonly strategy: TelemetryClientStrategy = 'detached';\n /** All recorded telemetry events */\n private records: TelemetryRecordInternal[] = [];\n\n abort() {\n return this.records;\n }\n\n record(record: TelemetryRecordInternal[]) {\n this.records.push(\n ...record.map((record) => ({\n ...record,\n originalTimestamp: record.sentAt,\n }))\n );\n }\n\n async flush() {\n try {\n if (!this.records.length) {\n return debug('No records to flush, skipping...');\n }\n\n const file = createTempFilePath('expo-telemetry.json');\n const data = JSON.stringify({ records: this.records });\n\n this.records = [];\n\n await fs.promises.mkdir(path.dirname(file), { recursive: true });\n await fs.promises.writeFile(file, data);\n\n const child = spawn(process.execPath, [require.resolve('./flushFetchDetached'), file], {\n detached: true,\n windowsHide: true,\n shell: false,\n stdio: 'ignore',\n });\n\n child.unref();\n } catch (error) {\n // This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,\n // since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.\n debug('Exception while initiating detached flush:', error);\n }\n\n debug('Detached flush started');\n }\n}\n"],"names":["FetchDetachedClient","debug","require","abort","records","record","push","map","originalTimestamp","sentAt","flush","length","file","createTempFilePath","data","JSON","stringify","fs","promises","mkdir","path","dirname","recursive","writeFile","child","spawn","process","execPath","resolve","detached","windowsHide","shell","stdio","unref","error","strategy"],"mappings":";;;;+BASaA;;;eAAAA;;;;yBATS;;;;;;;gEACP;;;;;;;gEACE;;;;;;gCAEkB;;;;;;AAGnC,MAAMC,QAAQC,QAAQ,SAAS;AAExB,MAAMF;IAMXG,QAAQ;QACN,OAAO,IAAI,CAACC,OAAO;IACrB;IAEAC,OAAOA,MAAiC,EAAE;QACxC,IAAI,CAACD,OAAO,CAACE,IAAI,IACZD,OAAOE,GAAG,CAAC,CAACF,SAAY,CAAA;gBACzB,GAAGA,MAAM;gBACTG,mBAAmBH,OAAOI,MAAM;YAClC,CAAA;IAEJ;IAEA,MAAMC,QAAQ;QACZ,IAAI;YACF,IAAI,CAAC,IAAI,CAACN,OAAO,CAACO,MAAM,EAAE;gBACxB,OAAOV,MAAM;YACf;YAEA,MAAMW,OAAOC,IAAAA,kCAAkB,EAAC;YAChC,MAAMC,OAAOC,KAAKC,SAAS,CAAC;gBAAEZ,SAAS,IAAI,CAACA,OAAO;YAAC;YAEpD,IAAI,CAACA,OAAO,GAAG,EAAE;YAEjB,MAAMa,iBAAE,CAACC,QAAQ,CAACC,KAAK,CAACC,mBAAI,CAACC,OAAO,CAACT,OAAO;gBAAEU,WAAW;YAAK;YAC9D,MAAML,iBAAE,CAACC,QAAQ,CAACK,SAAS,CAACX,MAAME;YAElC,MAAMU,QAAQC,IAAAA,0BAAK,EAACC,QAAQC,QAAQ,EAAE;gBAACzB,QAAQ0B,OAAO,CAAC;gBAAyBhB;aAAK,EAAE;gBACrFiB,UAAU;gBACVC,aAAa;gBACbC,OAAO;gBACPC,OAAO;YACT;YAEAR,MAAMS,KAAK;QACb,EAAE,OAAOC,OAAO;YACd,oIAAoI;YACpI,mIAAmI;YACnIjC,MAAM,8CAA8CiC;QACtD;QAEAjC,MAAM;IACR;;QA/CA,wDAAwD,QAC/CkC,WAAoC;QAC7C,kCAAkC,QAC1B/B,UAAqC,EAAE;;AA6CjD"}
@@ -2,38 +2,38 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _nodeFs() {
6
- const data = /*#__PURE__*/ _interopRequireDefault(require("node:fs"));
7
- _nodeFs = function() {
5
+ function _nodefs() {
6
+ const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
7
+ _nodefs = function() {
8
8
  return data;
9
9
  };
10
10
  return data;
11
11
  }
12
- const _fetchClient = require("./FetchClient");
13
- function _interopRequireDefault(obj) {
12
+ const _FetchClient = require("./FetchClient");
13
+ function _interop_require_default(obj) {
14
14
  return obj && obj.__esModule ? obj : {
15
15
  default: obj
16
16
  };
17
17
  }
18
18
  const telemetryFile = process.argv[2];
19
- flush().catch(()=>_nodeFs().default.promises.unlink(telemetryFile)).finally(()=>process.exit(0));
19
+ flush().catch(()=>_nodefs().default.promises.unlink(telemetryFile)).finally(()=>process.exit(0));
20
20
  async function flush() {
21
21
  if (!telemetryFile) return;
22
22
  let json;
23
23
  let data;
24
24
  try {
25
- json = await _nodeFs().default.promises.readFile(telemetryFile, "utf8");
25
+ json = await _nodefs().default.promises.readFile(telemetryFile, 'utf8');
26
26
  data = JSON.parse(json);
27
27
  } catch (error) {
28
- if (error.code === "ENOENT") return;
28
+ if (error.code === 'ENOENT') return;
29
29
  throw error;
30
30
  }
31
31
  if (data.records.length) {
32
- const client = new _fetchClient.FetchClient();
32
+ const client = new _FetchClient.FetchClient();
33
33
  await client.record(data.records);
34
34
  await client.flush();
35
35
  }
36
- await _nodeFs().default.promises.unlink(telemetryFile);
36
+ await _nodefs().default.promises.unlink(telemetryFile);
37
37
  }
38
38
 
39
39
  //# sourceMappingURL=flushFetchDetached.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/utils/telemetry/clients/flushFetchDetached.ts"],"sourcesContent":["import fs from 'node:fs';\n\nimport { FetchClient } from './FetchClient';\nimport type { TelemetryRecordInternal } from '../types';\n\nconst telemetryFile = process.argv[2];\n\nflush()\n .catch(() => fs.promises.unlink(telemetryFile))\n .finally(() => process.exit(0));\n\nasync function flush() {\n if (!telemetryFile) return;\n\n let json: string;\n let data: { records: TelemetryRecordInternal[] };\n\n try {\n json = await fs.promises.readFile(telemetryFile, 'utf8');\n data = JSON.parse(json) as any;\n } catch (error: any) {\n if (error.code === 'ENOENT') return;\n throw error;\n }\n\n if (data.records.length) {\n const client = new FetchClient();\n await client.record(data.records);\n await client.flush();\n }\n\n await fs.promises.unlink(telemetryFile);\n}\n"],"names":["telemetryFile","process","argv","flush","catch","fs","promises","unlink","finally","exit","json","data","readFile","JSON","parse","error","code","records","length","client","FetchClient","record"],"mappings":"AAAA;;;;;8DAAe,SAAS;;;;;;6BAEI,eAAe;;;;;;AAG3C,MAAMA,aAAa,GAAGC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,AAAC;AAEtCC,KAAK,EAAE,CACJC,KAAK,CAAC,IAAMC,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACC,MAAM,CAACP,aAAa,CAAC,CAAC,CAC9CQ,OAAO,CAAC,IAAMP,OAAO,CAACQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC,eAAeN,KAAK,GAAG;IACrB,IAAI,CAACH,aAAa,EAAE,OAAO;IAE3B,IAAIU,IAAI,AAAQ,AAAC;IACjB,IAAIC,IAAI,AAAwC,AAAC;IAEjD,IAAI;QACFD,IAAI,GAAG,MAAML,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACM,QAAQ,CAACZ,aAAa,EAAE,MAAM,CAAC,CAAC;QACzDW,IAAI,GAAGE,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC,AAAO,CAAC;IACjC,EAAE,OAAOK,KAAK,EAAO;QACnB,IAAIA,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE,OAAO;QACpC,MAAMD,KAAK,CAAC;IACd,CAAC;IAED,IAAIJ,IAAI,CAACM,OAAO,CAACC,MAAM,EAAE;QACvB,MAAMC,MAAM,GAAG,IAAIC,YAAW,YAAA,EAAE,AAAC;QACjC,MAAMD,MAAM,CAACE,MAAM,CAACV,IAAI,CAACM,OAAO,CAAC,CAAC;QAClC,MAAME,MAAM,CAAChB,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,MAAME,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACC,MAAM,CAACP,aAAa,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/utils/telemetry/clients/flushFetchDetached.ts"],"sourcesContent":["import fs from 'node:fs';\n\nimport { FetchClient } from './FetchClient';\nimport type { TelemetryRecordInternal } from '../types';\n\nconst telemetryFile = process.argv[2];\n\nflush()\n .catch(() => fs.promises.unlink(telemetryFile))\n .finally(() => process.exit(0));\n\nasync function flush() {\n if (!telemetryFile) return;\n\n let json: string;\n let data: { records: TelemetryRecordInternal[] };\n\n try {\n json = await fs.promises.readFile(telemetryFile, 'utf8');\n data = JSON.parse(json) as any;\n } catch (error: any) {\n if (error.code === 'ENOENT') return;\n throw error;\n }\n\n if (data.records.length) {\n const client = new FetchClient();\n await client.record(data.records);\n await client.flush();\n }\n\n await fs.promises.unlink(telemetryFile);\n}\n"],"names":["telemetryFile","process","argv","flush","catch","fs","promises","unlink","finally","exit","json","data","readFile","JSON","parse","error","code","records","length","client","FetchClient","record"],"mappings":";;;;;gEAAe;;;;;;6BAEa;;;;;;AAG5B,MAAMA,gBAAgBC,QAAQC,IAAI,CAAC,EAAE;AAErCC,QACGC,KAAK,CAAC,IAAMC,iBAAE,CAACC,QAAQ,CAACC,MAAM,CAACP,gBAC/BQ,OAAO,CAAC,IAAMP,QAAQQ,IAAI,CAAC;AAE9B,eAAeN;IACb,IAAI,CAACH,eAAe;IAEpB,IAAIU;IACJ,IAAIC;IAEJ,IAAI;QACFD,OAAO,MAAML,iBAAE,CAACC,QAAQ,CAACM,QAAQ,CAACZ,eAAe;QACjDW,OAAOE,KAAKC,KAAK,CAACJ;IACpB,EAAE,OAAOK,OAAY;QACnB,IAAIA,MAAMC,IAAI,KAAK,UAAU;QAC7B,MAAMD;IACR;IAEA,IAAIJ,KAAKM,OAAO,CAACC,MAAM,EAAE;QACvB,MAAMC,SAAS,IAAIC,wBAAW;QAC9B,MAAMD,OAAOE,MAAM,CAACV,KAAKM,OAAO;QAChC,MAAME,OAAOhB,KAAK;IACpB;IAEA,MAAME,iBAAE,CAACC,QAAQ,CAACC,MAAM,CAACP;AAC3B"}
@@ -4,11 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "commandEvent", {
6
6
  enumerable: true,
7
- get: ()=>commandEvent
7
+ get: function() {
8
+ return commandEvent;
9
+ }
8
10
  });
9
11
  function commandEvent(commandName) {
10
12
  return {
11
- event: "action",
13
+ event: 'action',
12
14
  properties: {
13
15
  action: `expo ${commandName}`
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/telemetry/events.ts"],"sourcesContent":["import type { TelemetryRecord } from './types';\n\n/** A single command invocation, with the invoked command name */\nexport function commandEvent(commandName: string): TelemetryRecord {\n return {\n event: 'action',\n properties: {\n action: `expo ${commandName}`,\n },\n };\n}\n"],"names":["commandEvent","commandName","event","properties","action"],"mappings":"AAAA;;;;+BAGgBA,cAAY;;aAAZA,YAAY;;AAArB,SAASA,YAAY,CAACC,WAAmB,EAAmB;IACjE,OAAO;QACLC,KAAK,EAAE,QAAQ;QACfC,UAAU,EAAE;YACVC,MAAM,EAAE,CAAC,KAAK,EAAEH,WAAW,CAAC,CAAC;SAC9B;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"sources":["../../../../src/utils/telemetry/events.ts"],"sourcesContent":["import type { TelemetryRecord } from './types';\n\n/** A single command invocation, with the invoked command name */\nexport function commandEvent(commandName: string): TelemetryRecord {\n return {\n event: 'action',\n properties: {\n action: `expo ${commandName}`,\n },\n };\n}\n"],"names":["commandEvent","commandName","event","properties","action"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,aAAaC,WAAmB;IAC9C,OAAO;QACLC,OAAO;QACPC,YAAY;YACVC,QAAQ,CAAC,KAAK,EAAEH,aAAa;QAC/B;IACF;AACF"}
@@ -9,13 +9,19 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- getTelemetry: ()=>getTelemetry,
13
- record: ()=>record,
14
- recordCommand: ()=>recordCommand
12
+ getTelemetry: function() {
13
+ return getTelemetry;
14
+ },
15
+ record: function() {
16
+ return record;
17
+ },
18
+ recordCommand: function() {
19
+ return recordCommand;
20
+ }
15
21
  });
16
- function _nodeProcess() {
17
- const data = /*#__PURE__*/ _interopRequireDefault(require("node:process"));
18
- _nodeProcess = function() {
22
+ function _nodeprocess() {
23
+ const data = /*#__PURE__*/ _interop_require_default(require("node:process"));
24
+ _nodeprocess = function() {
19
25
  return data;
20
26
  };
21
27
  return data;
@@ -23,7 +29,7 @@ function _nodeProcess() {
23
29
  const _events = require("./events");
24
30
  const _user = require("../../api/user/user");
25
31
  const _env = require("../env");
26
- function _interopRequireDefault(obj) {
32
+ function _interop_require_default(obj) {
27
33
  return obj && obj.__esModule ? obj : {
28
34
  default: obj
29
35
  };
@@ -33,44 +39,34 @@ function getTelemetry() {
33
39
  if (_env.env.EXPO_NO_TELEMETRY || _env.env.EXPO_OFFLINE) return null;
34
40
  if (!telemetry) {
35
41
  // Lazy load the telemetry client, only when enabled
36
- const { Telemetry } = require("./Telemetry");
42
+ const { Telemetry } = require('./Telemetry');
37
43
  telemetry = new Telemetry();
38
44
  // Flush any pending events on exit
39
- _nodeProcess().default.once("SIGINT", ()=>{
40
- return telemetry == null ? void 0 : telemetry.flushOnExit();
41
- });
42
- _nodeProcess().default.once("SIGTERM", ()=>{
43
- return telemetry == null ? void 0 : telemetry.flushOnExit();
44
- });
45
- _nodeProcess().default.once("beforeExit", ()=>{
46
- return telemetry == null ? void 0 : telemetry.flushOnExit();
47
- });
45
+ _nodeprocess().default.once('SIGINT', ()=>telemetry == null ? void 0 : telemetry.flushOnExit());
46
+ _nodeprocess().default.once('SIGTERM', ()=>telemetry == null ? void 0 : telemetry.flushOnExit());
47
+ _nodeprocess().default.once('beforeExit', ()=>telemetry == null ? void 0 : telemetry.flushOnExit());
48
48
  // Initialize the telemetry
49
- (0, _user.getUserAsync)().then((actor)=>{
50
- return telemetry == null ? void 0 : telemetry.initialize({
49
+ (0, _user.getUserAsync)().then((actor)=>telemetry == null ? void 0 : telemetry.initialize({
51
50
  userId: (actor == null ? void 0 : actor.id) ?? null
52
- });
53
- }).catch(()=>{
54
- return telemetry == null ? void 0 : telemetry.initialize({
51
+ })).catch(()=>telemetry == null ? void 0 : telemetry.initialize({
55
52
  userId: null
56
- });
57
- });
53
+ }));
58
54
  }
59
55
  return telemetry;
60
56
  }
61
57
  function record(records) {
62
- var ref;
63
- return (ref = getTelemetry()) == null ? void 0 : ref.record(records);
58
+ var _getTelemetry;
59
+ return (_getTelemetry = getTelemetry()) == null ? void 0 : _getTelemetry.record(records);
64
60
  }
65
61
  function recordCommand(command) {
66
62
  if (isLongRunningCommand(command)) {
67
- var ref;
68
- (ref = getTelemetry()) == null ? void 0 : ref.setStrategy("instant");
63
+ var _getTelemetry;
64
+ (_getTelemetry = getTelemetry()) == null ? void 0 : _getTelemetry.setStrategy('instant');
69
65
  }
70
66
  return record((0, _events.commandEvent)(command));
71
67
  }
72
68
  /** Determine if the command is a long-running command, based on the command name */ function isLongRunningCommand(command) {
73
- return command === "start" || command.startsWith("run") || command.startsWith("export");
69
+ return command === 'start' || command.startsWith('run') || command.startsWith('export');
74
70
  }
75
71
 
76
72
  //# sourceMappingURL=index.js.map